define(['dart_sdk', 'packages/flutter/src/painting/_network_image_web', 'packages/flutter/src/widgets/actions', 'packages/flutter/src/animation/animation', 'packages/flutter/src/foundation/_bitfield_web', 'packages/syncfusion_flutter_core/theme', 'packages/flutter/src/rendering/animated_size', 'packages/syncfusion_flutter_core/core', 'packages/flutter/gestures', 'packages/flutter/src/gestures/arena', 'packages/flutter/material', 'packages/intl/intl', 'packages/vector_math/vector_math'], function(dart_sdk, packages__flutter__src__painting___network_image_web, packages__flutter__src__widgets__actions, packages__flutter__src__animation__animation, packages__flutter__src__foundation___bitfield_web, packages__syncfusion_flutter_core__theme, packages__flutter__src__rendering__animated_size, packages__syncfusion_flutter_core__core, packages__flutter__gestures, packages__flutter__src__gestures__arena, packages__flutter__material, packages__intl__intl, packages__vector_math__vector_math) {
  'use strict';
  const core = dart_sdk.core;
  const ui = dart_sdk.ui;
  const _interceptors = dart_sdk._interceptors;
  const math = dart_sdk.math;
  const _js_helper = dart_sdk._js_helper;
  const async = dart_sdk.async;
  const html = dart_sdk.html;
  const dart = dart_sdk.dart;
  const dartx = dart_sdk.dartx;
  const edge_insets = packages__flutter__src__painting___network_image_web.src__painting__edge_insets;
  const image_provider = packages__flutter__src__painting___network_image_web.src__painting__image_provider;
  const box_decoration = packages__flutter__src__painting___network_image_web.src__painting__box_decoration;
  const decoration_image = packages__flutter__src__painting___network_image_web.src__painting__decoration_image;
  const box_fit = packages__flutter__src__painting___network_image_web.src__painting__box_fit;
  const box_border = packages__flutter__src__painting___network_image_web.src__painting__box_border;
  const gradient$ = packages__flutter__src__painting___network_image_web.src__painting__gradient;
  const text_style = packages__flutter__src__painting___network_image_web.src__painting__text_style;
  const alignment = packages__flutter__src__painting___network_image_web.src__painting__alignment;
  const border_radius = packages__flutter__src__painting___network_image_web.src__painting__border_radius;
  const text_span = packages__flutter__src__painting___network_image_web.src__painting__text_span;
  const text_painter = packages__flutter__src__painting___network_image_web.src__painting__text_painter;
  const colors = packages__flutter__src__painting___network_image_web.src__painting__colors;
  const basic_types = packages__flutter__src__painting___network_image_web.src__painting__basic_types;
  const image_stream = packages__flutter__src__painting___network_image_web.src__painting__image_stream;
  const widget_inspector = packages__flutter__src__widgets__actions.src__widgets__widget_inspector;
  const framework = packages__flutter__src__widgets__actions.src__widgets__framework;
  const container = packages__flutter__src__widgets__actions.src__widgets__container;
  const gesture_detector = packages__flutter__src__widgets__actions.src__widgets__gesture_detector;
  const basic = packages__flutter__src__widgets__actions.src__widgets__basic;
  const layout_builder = packages__flutter__src__widgets__actions.src__widgets__layout_builder;
  const media_query = packages__flutter__src__widgets__actions.src__widgets__media_query;
  const ticker_provider = packages__flutter__src__widgets__actions.src__widgets__ticker_provider;
  const text = packages__flutter__src__widgets__actions.src__widgets__text;
  const transitions = packages__flutter__src__widgets__actions.src__widgets__transitions;
  const single_child_scroll_view = packages__flutter__src__widgets__actions.src__widgets__single_child_scroll_view;
  const animation_controller = packages__flutter__src__animation__animation.src__animation__animation_controller;
  const animation = packages__flutter__src__animation__animation.src__animation__animation;
  const tween = packages__flutter__src__animation__animation.src__animation__tween;
  const animations = packages__flutter__src__animation__animation.src__animation__animations;
  const curves = packages__flutter__src__animation__animation.src__animation__curves;
  const change_notifier = packages__flutter__src__foundation___bitfield_web.src__foundation__change_notifier;
  const key = packages__flutter__src__foundation___bitfield_web.src__foundation__key;
  const charts_theme = packages__syncfusion_flutter_core__theme.src__theme__charts_theme;
  const box = packages__flutter__src__rendering__animated_size.src__rendering__box;
  const custom_paint = packages__flutter__src__rendering__animated_size.src__rendering__custom_paint;
  const paragraph = packages__flutter__src__rendering__animated_size.src__rendering__paragraph;
  const object = packages__flutter__src__rendering__animated_size.src__rendering__object;
  const shifted_box = packages__flutter__src__rendering__animated_size.src__rendering__shifted_box;
  const flex = packages__flutter__src__rendering__animated_size.src__rendering__flex;
  const core$ = packages__syncfusion_flutter_core__core.core;
  const slider_controller = packages__syncfusion_flutter_core__core.src__slider_controller;
  const binding = packages__flutter__gestures.src__scheduler__binding;
  const events = packages__flutter__src__gestures__arena.src__gestures__events;
  const tap = packages__flutter__src__gestures__arena.src__gestures__tap;
  const long_press = packages__flutter__src__gestures__arena.src__gestures__long_press;
  const drag_details = packages__flutter__src__gestures__arena.src__gestures__drag_details;
  const colors$ = packages__flutter__material.src__material__colors;
  const intl = packages__intl__intl.intl;
  const vector_math = packages__vector_math__vector_math.vector_math;
  const charts = Object.create(dart.library);
  const web = Object.create(dart.library);
  const $_get = dartx._get;
  const $isNotEmpty = dartx.isNotEmpty;
  const $clear = dartx.clear;
  const $length = dartx.length;
  const $_set = dartx._set;
  const $isEmpty = dartx.isEmpty;
  const $toDouble = dartx.toDouble;
  const $add = dartx.add;
  const $toInt = dartx.toInt;
  const $sort = dartx.sort;
  const $toString = dartx.toString;
  const $abs = dartx.abs;
  const $modulo = dartx['%'];
  const $contains = dartx.contains;
  const $removeAt = dartx.removeAt;
  const $indexOf = dartx.indexOf;
  const $round = dartx.round;
  const $floor = dartx.floor;
  const $ceil = dartx.ceil;
  const $split = dartx.split;
  const $substring = dartx.substring;
  const $isNegative = dartx.isNegative;
  const $addAll = dartx.addAll;
  const $roundToDouble = dartx.roundToDouble;
  const $replaceAll = dartx.replaceAll;
  const $isFinite = dartx.isFinite;
  const $toStringAsFixed = dartx.toStringAsFixed;
  const $toUpperCase = dartx.toUpperCase;
  const $runtimeType = dartx.runtimeType;
  const $forEach = dartx.forEach;
  const $isNaN = dartx.isNaN;
  const $truncateToDouble = dartx.truncateToDouble;
  const $reduce = dartx.reduce;
  const $toLowerCase = dartx.toLowerCase;
  const $containsKey = dartx.containsKey;
  const $removeRange = dartx.removeRange;
  const $insertAll = dartx.insertAll;
  const $remove = dartx.remove;
  const $compareTo = dartx.compareTo;
  const $_equals = dartx._equals;
  const $map = dartx.map;
  const $toList = dartx.toList;
  const $cursor = dartx.cursor;
  const $document = dartx.document;
  let JSArrayOfCircularSeries = () => (JSArrayOfCircularSeries = dart.constFn(_interceptors.JSArray$(charts.CircularSeries)))();
  let JSArrayOfAnimationController = () => (JSArrayOfAnimationController = dart.constFn(_interceptors.JSArray$(animation_controller.AnimationController)))();
  let ValueNotifierOfint = () => (ValueNotifierOfint = dart.constFn(change_notifier.ValueNotifier$(core.int)))();
  let JSArrayOf_MeasureWidgetContext = () => (JSArrayOf_MeasureWidgetContext = dart.constFn(_interceptors.JSArray$(charts._MeasureWidgetContext)))();
  let JSArrayOfint = () => (JSArrayOfint = dart.constFn(_interceptors.JSArray$(core.int)))();
  let JSArrayOf_ChartTemplateInfo = () => (JSArrayOf_ChartTemplateInfo = dart.constFn(_interceptors.JSArray$(charts._ChartTemplateInfo)))();
  let JSArrayOf_LegendRenderContext = () => (JSArrayOf_LegendRenderContext = dart.constFn(_interceptors.JSArray$(charts._LegendRenderContext)))();
  let JSArrayOfChartPoint = () => (JSArrayOfChartPoint = dart.constFn(_interceptors.JSArray$(charts.ChartPoint)))();
  let JSArrayOf_Region = () => (JSArrayOf_Region = dart.constFn(_interceptors.JSArray$(charts._Region)))();
  let JSArrayOfRect = () => (JSArrayOfRect = dart.constFn(_interceptors.JSArray$(ui.Rect)))();
  let ListOfChartPoint = () => (ListOfChartPoint = dart.constFn(core.List$(charts.ChartPoint)))();
  let VoidToNull = () => (VoidToNull = dart.constFn(dart.fnType(core.Null, [])))();
  let JSArrayOfWidget = () => (JSArrayOfWidget = dart.constFn(_interceptors.JSArray$(framework.Widget)))();
  let DurationTovoid = () => (DurationTovoid = dart.constFn(dart.fnType(dart.void, [core.Duration])))();
  let BuildContextAndBoxConstraintsToWidget = () => (BuildContextAndBoxConstraintsToWidget = dart.constFn(dart.fnType(framework.Widget, [framework.BuildContext, box.BoxConstraints])))();
  let PointerEventTovoid = () => (PointerEventTovoid = dart.constFn(dart.fnType(dart.void, [events.PointerEvent])))();
  let PointerEventToNull = () => (PointerEventToNull = dart.constFn(dart.fnType(core.Null, [events.PointerEvent])))();
  let PointerUpEventTovoid = () => (PointerUpEventTovoid = dart.constFn(dart.fnType(dart.void, [events.PointerUpEvent])))();
  let PointerDownEventTovoid = () => (PointerDownEventTovoid = dart.constFn(dart.fnType(dart.void, [events.PointerDownEvent])))();
  let BuildContextAndBoxConstraintsToContainer = () => (BuildContextAndBoxConstraintsToContainer = dart.constFn(dart.fnType(container.Container, [framework.BuildContext, box.BoxConstraints])))();
  let StateOfStatefulWidget = () => (StateOfStatefulWidget = dart.constFn(framework.State$(framework.StatefulWidget)))();
  let GlobalKeyOfStateOfStatefulWidget = () => (GlobalKeyOfStateOfStatefulWidget = dart.constFn(framework.GlobalKey$(StateOfStatefulWidget())))();
  let TweenOfdouble = () => (TweenOfdouble = dart.constFn(tween.Tween$(core.double)))();
  let AnimationStatusToNull = () => (AnimationStatusToNull = dart.constFn(dart.fnType(core.Null, [animation.AnimationStatus])))();
  let ChartPointAndChartPointToint = () => (ChartPointAndChartPointToint = dart.constFn(dart.fnType(core.int, [charts.ChartPoint, charts.ChartPoint])))();
  let intTonum = () => (intTonum = dart.constFn(dart.fnType(core.num, [core.int])))();
  let intToColor = () => (intToColor = dart.constFn(dart.fnType(ui.Color, [core.int])))();
  let intToString = () => (intToString = dart.constFn(dart.fnType(core.String, [core.int])))();
  let JSArrayOfPyramidSeries = () => (JSArrayOfPyramidSeries = dart.constFn(_interceptors.JSArray$(charts.PyramidSeries)))();
  let JSArrayOfPointInfo = () => (JSArrayOfPointInfo = dart.constFn(_interceptors.JSArray$(charts.PointInfo)))();
  let JSArrayOfnum = () => (JSArrayOfnum = dart.constFn(_interceptors.JSArray$(core.num)))();
  let JSArrayOfOffset = () => (JSArrayOfOffset = dart.constFn(_interceptors.JSArray$(ui.Offset)))();
  let JSArrayOf_FunnelSeriesBase = () => (JSArrayOf_FunnelSeriesBase = dart.constFn(_interceptors.JSArray$(charts._FunnelSeriesBase)))();
  let JSArrayOfPlotBand = () => (JSArrayOfPlotBand = dart.constFn(_interceptors.JSArray$(charts.PlotBand)))();
  let JSArrayOfAxisLabel = () => (JSArrayOfAxisLabel = dart.constFn(_interceptors.JSArray$(charts.AxisLabel)))();
  let JSArrayOfCartesianSeries = () => (JSArrayOfCartesianSeries = dart.constFn(_interceptors.JSArray$(charts.CartesianSeries)))();
  let JSArrayOfString = () => (JSArrayOfString = dart.constFn(_interceptors.JSArray$(core.String)))();
  let JSArrayOfChartAxis = () => (JSArrayOfChartAxis = dart.constFn(_interceptors.JSArray$(charts.ChartAxis)))();
  let JSArrayOf_AxisSize = () => (JSArrayOf_AxisSize = dart.constFn(_interceptors.JSArray$(charts._AxisSize)))();
  let ListOfCartesianSeries = () => (ListOfCartesianSeries = dart.constFn(core.List$(charts.CartesianSeries)))();
  let JSArrayOfdouble = () => (JSArrayOfdouble = dart.constFn(_interceptors.JSArray$(core.double)))();
  let _CircularIntervalListOfdouble = () => (_CircularIntervalListOfdouble = dart.constFn(charts._CircularIntervalList$(core.double)))();
  let JSArrayOf_ChartPointInfo = () => (JSArrayOf_ChartPointInfo = dart.constFn(_interceptors.JSArray$(charts._ChartPointInfo)))();
  let JSArrayOfChartSeries = () => (JSArrayOfChartSeries = dart.constFn(_interceptors.JSArray$(charts.ChartSeries)))();
  let ListOfChartSeries = () => (ListOfChartSeries = dart.constFn(core.List$(charts.ChartSeries)))();
  let JSArrayOfTechnicalIndicators = () => (JSArrayOfTechnicalIndicators = dart.constFn(_interceptors.JSArray$(charts.TechnicalIndicators)))();
  let JSArrayOf_ZoomAxisRange = () => (JSArrayOf_ZoomAxisRange = dart.constFn(_interceptors.JSArray$(charts._ZoomAxisRange)))();
  let JSArrayOfChartSegment = () => (JSArrayOfChartSegment = dart.constFn(_interceptors.JSArray$(charts.ChartSegment)))();
  let JSArrayOfbool = () => (JSArrayOfbool = dart.constFn(_interceptors.JSArray$(core.bool)))();
  let JSArrayOfPointerEvent = () => (JSArrayOfPointerEvent = dart.constFn(_interceptors.JSArray$(events.PointerEvent)))();
  let JSArrayOf_PainterKey = () => (JSArrayOf_PainterKey = dart.constFn(_interceptors.JSArray$(charts._PainterKey)))();
  let ListOfbool = () => (ListOfbool = dart.constFn(core.List$(core.bool)))();
  let dynamicAnddynamicToNull = () => (dynamicAnddynamicToNull = dart.constFn(dart.fnType(core.Null, [dart.dynamic, dart.dynamic])))();
  let PointerDownEventToNull = () => (PointerDownEventToNull = dart.constFn(dart.fnType(core.Null, [events.PointerDownEvent])))();
  let PointerMoveEventToNull = () => (PointerMoveEventToNull = dart.constFn(dart.fnType(core.Null, [events.PointerMoveEvent])))();
  let PointerUpEventToNull = () => (PointerUpEventToNull = dart.constFn(dart.fnType(core.Null, [events.PointerUpEvent])))();
  let PointerSignalEventToNull = () => (PointerSignalEventToNull = dart.constFn(dart.fnType(core.Null, [events.PointerSignalEvent])))();
  let TapDownDetailsToNull = () => (TapDownDetailsToNull = dart.constFn(dart.fnType(core.Null, [tap.TapDownDetails])))();
  let LongPressMoveUpdateDetailsToNull = () => (LongPressMoveUpdateDetailsToNull = dart.constFn(dart.fnType(core.Null, [long_press.LongPressMoveUpdateDetails])))();
  let LongPressEndDetailsToNull = () => (LongPressEndDetailsToNull = dart.constFn(dart.fnType(core.Null, [long_press.LongPressEndDetails])))();
  let DragUpdateDetailsToNull = () => (DragUpdateDetailsToNull = dart.constFn(dart.fnType(core.Null, [drag_details.DragUpdateDetails])))();
  let DragEndDetailsToNull = () => (DragEndDetailsToNull = dart.constFn(dart.fnType(core.Null, [drag_details.DragEndDetails])))();
  let DragDownDetailsToNull = () => (DragDownDetailsToNull = dart.constFn(dart.fnType(core.Null, [drag_details.DragDownDetails])))();
  let JSArrayOfCartesianChartPoint = () => (JSArrayOfCartesianChartPoint = dart.constFn(_interceptors.JSArray$(charts.CartesianChartPoint)))();
  let CartesianChartPointAndCartesianChartPointToint = () => (CartesianChartPointAndCartesianChartPointToint = dart.constFn(dart.fnType(core.int, [charts.CartesianChartPoint, charts.CartesianChartPoint])))();
  let JSArrayOf_ClusterStackedItemInfo = () => (JSArrayOf_ClusterStackedItemInfo = dart.constFn(_interceptors.JSArray$(charts._ClusterStackedItemInfo)))();
  let JSArrayOf_StackedItemInfo = () => (JSArrayOf_StackedItemInfo = dart.constFn(_interceptors.JSArray$(charts._StackedItemInfo)))();
  let JSArrayOf_StackedValues = () => (JSArrayOf_StackedValues = dart.constFn(_interceptors.JSArray$(charts._StackedValues)))();
  let JSArrayOf_StackingInfo = () => (JSArrayOf_StackingInfo = dart.constFn(_interceptors.JSArray$(charts._StackingInfo)))();
  let TAndTToT = () => (TAndTToT = dart.constFn(dart.gFnType(T => [T, [T, T]], T => [core.num])))();
  let TAndTToT$ = () => (TAndTToT$ = dart.constFn(dart.gFnType(T => [T, [T, T]], T => [core.num])))();
  let LinkedMapOfString$int = () => (LinkedMapOfString$int = dart.constFn(_js_helper.LinkedMap$(core.String, core.int)))();
  let dynamicToint = () => (dynamicToint = dart.constFn(dart.fnType(core.int, [dart.dynamic])))();
  let IterableOfChartSeries = () => (IterableOfChartSeries = dart.constFn(core.Iterable$(charts.ChartSeries)))();
  let JSArrayOf_ListControlPoints = () => (JSArrayOf_ListControlPoints = dart.constFn(_interceptors.JSArray$(charts._ListControlPoints)))();
  let intTodynamic = () => (intTodynamic = dart.constFn(dart.fnType(dart.dynamic, [core.int])))();
  let JSArrayOf_ChartLocation = () => (JSArrayOf_ChartLocation = dart.constFn(_interceptors.JSArray$(charts._ChartLocation)))();
  let ListOfnum = () => (ListOfnum = dart.constFn(core.List$(core.num)))();
  let JSArrayOf_ControlPoints = () => (JSArrayOf_ControlPoints = dart.constFn(_interceptors.JSArray$(charts._ControlPoints)))();
  let JSArrayOf_TempData = () => (JSArrayOf_TempData = dart.constFn(_interceptors.JSArray$(charts._TempData)))();
  let ListOf_BollingerData = () => (ListOf_BollingerData = dart.constFn(core.List$(charts._BollingerData)))();
  let ListOfCartesianChartPoint = () => (ListOfCartesianChartPoint = dart.constFn(core.List$(charts.CartesianChartPoint)))();
  let JSArrayOfPath = () => (JSArrayOfPath = dart.constFn(_interceptors.JSArray$(ui.Path)))();
  let JSArrayOfXyDataSeries = () => (JSArrayOfXyDataSeries = dart.constFn(_interceptors.JSArray$(charts.XyDataSeries)))();
  let BuildContextAndWidgetToOpacity = () => (BuildContextAndWidgetToOpacity = dart.constFn(dart.fnType(basic.Opacity, [framework.BuildContext, framework.Widget])))();
  let _ChartPointInfoAnd_ChartPointInfoToint = () => (_ChartPointInfoAnd_ChartPointInfoToint = dart.constFn(dart.fnType(core.int, [charts._ChartPointInfo, charts._ChartPointInfo])))();
  let ListOf_ChartPointInfo = () => (ListOf_ChartPointInfo = dart.constFn(core.List$(charts._ChartPointInfo)))();
  let ListOf_LegendRenderContext = () => (ListOf_LegendRenderContext = dart.constFn(core.List$(charts._LegendRenderContext)))();
  let ListOfColor = () => (ListOfColor = dart.constFn(core.List$(ui.Color)))();
  let CanvasAndImageTovoid = () => (CanvasAndImageTovoid = dart.constFn(dart.fnType(dart.void, [ui.Canvas, ui.Image])))();
  let TapUpDetailsToNull = () => (TapUpDetailsToNull = dart.constFn(dart.fnType(core.Null, [tap.TapUpDetails])))();
  let ListOfRect = () => (ListOfRect = dart.constFn(core.List$(ui.Rect)))();
  let ListOf_MeasureWidgetContext = () => (ListOf_MeasureWidgetContext = dart.constFn(core.List$(charts._MeasureWidgetContext)))();
  let CompleterOfImageInfo = () => (CompleterOfImageInfo = dart.constFn(async.Completer$(image_stream.ImageInfo)))();
  let FutureOfImageInfo = () => (FutureOfImageInfo = dart.constFn(async.Future$(image_stream.ImageInfo)))();
  let ImageInfoAndboolToFutureOfImageInfo = () => (ImageInfoAndboolToFutureOfImageInfo = dart.constFn(dart.fnType(FutureOfImageInfo(), [image_stream.ImageInfo, core.bool])))();
  let ListOfString = () => (ListOfString = dart.constFn(core.List$(core.String)))();
  let OffsetTodouble = () => (OffsetTodouble = dart.constFn(dart.fnType(core.double, [ui.Offset])))();
  let CartesianChartPointTodynamic = () => (CartesianChartPointTodynamic = dart.constFn(dart.fnType(dart.dynamic, [charts.CartesianChartPoint])))();
  let JSArrayOf_StackingGroup = () => (JSArrayOf_StackingGroup = dart.constFn(_interceptors.JSArray$(charts._StackingGroup)))();
  let ChartSeriesTobool = () => (ChartSeriesTobool = dart.constFn(dart.fnType(core.bool, [charts.ChartSeries])))();
  let ListOfdouble = () => (ListOfdouble = dart.constFn(core.List$(core.double)))();
  let PointOfdouble = () => (PointOfdouble = dart.constFn(math.Point$(core.double)))();
  let CircularSeriesTobool = () => (CircularSeriesTobool = dart.constFn(dart.fnType(core.bool, [charts.CircularSeries])))();
  let ListOf_ChartTemplateInfo = () => (ListOf_ChartTemplateInfo = dart.constFn(core.List$(charts._ChartTemplateInfo)))();
  const CT = Object.create(null);
  dart.defineLazy(CT, {
    get C0() {
      return C0 = dart.const({
        __proto__: ui.Color.prototype,
        [Color_value]: 0
      });
    },
    get C2() {
      return C2 = dart.const({
        __proto__: ui.Color.prototype,
        [Color_value]: 4281687165.0
      });
    },
    get C3() {
      return C3 = dart.const({
        __proto__: ui.Color.prototype,
        [Color_value]: 4290800772.0
      });
    },
    get C4() {
      return C4 = dart.const({
        __proto__: ui.Color.prototype,
        [Color_value]: 4294341248.0
      });
    },
    get C5() {
      return C5 = dart.const({
        __proto__: ui.Color.prototype,
        [Color_value]: 4294488469.0
      });
    },
    get C6() {
      return C6 = dart.const({
        __proto__: ui.Color.prototype,
        [Color_value]: 4285838491.0
      });
    },
    get C7() {
      return C7 = dart.const({
        __proto__: ui.Color.prototype,
        [Color_value]: 4278233269.0
      });
    },
    get C8() {
      return C8 = dart.const({
        __proto__: ui.Color.prototype,
        [Color_value]: 4282993826.0
      });
    },
    get C9() {
      return C9 = dart.const({
        __proto__: ui.Color.prototype,
        [Color_value]: 4294954336.0
      });
    },
    get C10() {
      return C10 = dart.const({
        __proto__: ui.Color.prototype,
        [Color_value]: 4294963419.0
      });
    },
    get C11() {
      return C11 = dart.const({
        __proto__: ui.Color.prototype,
        [Color_value]: 4293848814.0
      });
    },
    get C1() {
      return C1 = dart.constList([C2 || CT.C2, C3 || CT.C3, C4 || CT.C4, C5 || CT.C5, C6 || CT.C6, C7 || CT.C7, C8 || CT.C8, C9 || CT.C9, C10 || CT.C10, C11 || CT.C11], ui.Color);
    },
    get C12() {
      return C12 = dart.const({
        __proto__: edge_insets.EdgeInsets.prototype,
        [EdgeInsets_bottom]: 10,
        [EdgeInsets_right]: 10,
        [EdgeInsets_top]: 10,
        [EdgeInsets_left]: 10
      });
    },
    get C14() {
      return C14 = dart.constList([], widget_inspector._Location);
    },
    get C13() {
      return C13 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C14 || CT.C14,
        [_Location_name]: null,
        [_Location_column]: 21,
        [_Location_line]: 98,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/circular_chart/base/circular_base.dart"
      });
    },
    get C17() {
      return C17 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "children",
        [_Location_column]: 11,
        [_Location_line]: 627,
        [_Location_file]: null
      });
    },
    get C16() {
      return C16 = dart.constList([C17 || CT.C17], widget_inspector._Location);
    },
    get C15() {
      return C15 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C16 || CT.C16,
        [_Location_name]: null,
        [_Location_column]: 16,
        [_Location_line]: 626,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/circular_chart/base/circular_base.dart"
      });
    },
    get C20() {
      return C20 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "decoration",
        [_Location_column]: 9,
        [_Location_line]: 617,
        [_Location_file]: null
      });
    },
    get C21() {
      return C21 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 9,
        [_Location_line]: 626,
        [_Location_file]: null
      });
    },
    get C19() {
      return C19 = dart.constList([C20 || CT.C20, C21 || CT.C21], widget_inspector._Location);
    },
    get C18() {
      return C18 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C19 || CT.C19,
        [_Location_name]: null,
        [_Location_column]: 18,
        [_Location_line]: 616,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/circular_chart/base/circular_base.dart"
      });
    },
    get C24() {
      return C24 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 11,
        [_Location_line]: 616,
        [_Location_file]: null
      });
    },
    get C23() {
      return C23 = dart.constList([C24 || CT.C24], widget_inspector._Location);
    },
    get C22() {
      return C22 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C23 || CT.C23,
        [_Location_name]: null,
        [_Location_column]: 14,
        [_Location_line]: 615,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/circular_chart/base/circular_base.dart"
      });
    },
    get C27() {
      return C27 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 7,
        [_Location_line]: 615,
        [_Location_file]: null
      });
    },
    get C26() {
      return C26 = dart.constList([C27 || CT.C27], widget_inspector._Location);
    },
    get C25() {
      return C25 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C26 || CT.C26,
        [_Location_name]: null,
        [_Location_column]: 12,
        [_Location_line]: 614,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/circular_chart/base/circular_base.dart"
      });
    },
    get C30() {
      return C30 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "children",
        [_Location_column]: 44,
        [_Location_line]: 643,
        [_Location_file]: null
      });
    },
    get C29() {
      return C29 = dart.constList([C30 || CT.C30], widget_inspector._Location);
    },
    get C28() {
      return C28 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C29 || CT.C29,
        [_Location_name]: null,
        [_Location_column]: 38,
        [_Location_line]: 643,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/circular_chart/base/circular_base.dart"
      });
    },
    get C33() {
      return C33 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 31,
        [_Location_line]: 643,
        [_Location_file]: null
      });
    },
    get C32() {
      return C32 = dart.constList([C33 || CT.C33], widget_inspector._Location);
    },
    get C31() {
      return C31 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C32 || CT.C32,
        [_Location_name]: null,
        [_Location_column]: 21,
        [_Location_line]: 643,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/circular_chart/base/circular_base.dart"
      });
    },
    get C36() {
      return C36 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "chart",
        [_Location_column]: 50,
        [_Location_line]: 649,
        [_Location_file]: null
      });
    },
    get C35() {
      return C35 = dart.constList([C36 || CT.C36], widget_inspector._Location);
    },
    get C34() {
      return C34 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C35 || CT.C35,
        [_Location_name]: null,
        [_Location_column]: 36,
        [_Location_line]: 649,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/circular_chart/base/circular_base.dart"
      });
    },
    get C39() {
      return C39 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "builder",
        [_Location_column]: 11,
        [_Location_line]: 636,
        [_Location_file]: null
      });
    },
    get C38() {
      return C38 = dart.constList([C39 || CT.C39], widget_inspector._Location);
    },
    get C37() {
      return C37 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C38 || CT.C38,
        [_Location_name]: null,
        [_Location_column]: 14,
        [_Location_line]: 635,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/circular_chart/base/circular_base.dart"
      });
    },
    get C42() {
      return C42 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 7,
        [_Location_line]: 635,
        [_Location_file]: null
      });
    },
    get C41() {
      return C41 = dart.constList([C42 || CT.C42], widget_inspector._Location);
    },
    get C40() {
      return C40 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C41 || CT.C41,
        [_Location_name]: null,
        [_Location_column]: 12,
        [_Location_line]: 634,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/circular_chart/base/circular_base.dart"
      });
    },
    get C44() {
      return C44 = dart.const({
        __proto__: box_border.BoxShape.prototype,
        [_name]: "BoxShape.rectangle",
        index: 0
      });
    },
    get C43() {
      return C43 = dart.const({
        __proto__: box_decoration.BoxDecoration.prototype,
        [BoxDecoration_shape]: C44 || CT.C44,
        [BoxDecoration_backgroundBlendMode]: null,
        [BoxDecoration_gradient]: null,
        [BoxDecoration_boxShadow]: null,
        [BoxDecoration_borderRadius]: null,
        [BoxDecoration_border]: null,
        [BoxDecoration_image]: null,
        [BoxDecoration_color]: C0 || CT.C0
      });
    },
    get C47() {
      return C47 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "height",
        [_Location_column]: 17,
        [_Location_line]: 689,
        [_Location_file]: null
      });
    },
    get C48() {
      return C48 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "width",
        [_Location_column]: 17,
        [_Location_line]: 690,
        [_Location_file]: null
      });
    },
    get C49() {
      return C49 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "decoration",
        [_Location_column]: 17,
        [_Location_line]: 691,
        [_Location_file]: null
      });
    },
    get C46() {
      return C46 = dart.constList([C47 || CT.C47, C48 || CT.C48, C49 || CT.C49], widget_inspector._Location);
    },
    get C45() {
      return C45 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C46 || CT.C46,
        [_Location_name]: null,
        [_Location_column]: 20,
        [_Location_line]: 688,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/circular_chart/base/circular_base.dart"
      });
    },
    get C52() {
      return C52 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 13,
        [_Location_line]: 688,
        [_Location_file]: null
      });
    },
    get C53() {
      return C53 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "onHover",
        [_Location_column]: 13,
        [_Location_line]: 692,
        [_Location_file]: null
      });
    },
    get C54() {
      return C54 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "onExit",
        [_Location_column]: 13,
        [_Location_line]: 693,
        [_Location_file]: null
      });
    },
    get C51() {
      return C51 = dart.constList([C52 || CT.C52, C53 || CT.C53, C54 || CT.C54], widget_inspector._Location);
    },
    get C50() {
      return C50 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C51 || CT.C51,
        [_Location_name]: null,
        [_Location_column]: 9,
        [_Location_line]: 687,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/circular_chart/base/circular_base.dart"
      });
    },
    get C57() {
      return C57 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "height",
        [_Location_column]: 17,
        [_Location_line]: 703,
        [_Location_file]: null
      });
    },
    get C58() {
      return C58 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "width",
        [_Location_column]: 17,
        [_Location_line]: 704,
        [_Location_file]: null
      });
    },
    get C59() {
      return C59 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "decoration",
        [_Location_column]: 17,
        [_Location_line]: 705,
        [_Location_file]: null
      });
    },
    get C56() {
      return C56 = dart.constList([C57 || CT.C57, C58 || CT.C58, C59 || CT.C59], widget_inspector._Location);
    },
    get C55() {
      return C55 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C56 || CT.C56,
        [_Location_name]: null,
        [_Location_column]: 22,
        [_Location_line]: 702,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/circular_chart/base/circular_base.dart"
      });
    },
    get C62() {
      return C62 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "onLongPress",
        [_Location_column]: 15,
        [_Location_line]: 700,
        [_Location_file]: null
      });
    },
    get C63() {
      return C63 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "onDoubleTap",
        [_Location_column]: 15,
        [_Location_line]: 701,
        [_Location_file]: null
      });
    },
    get C64() {
      return C64 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 15,
        [_Location_line]: 702,
        [_Location_file]: null
      });
    },
    get C61() {
      return C61 = dart.constList([C62 || CT.C62, C63 || CT.C63, C64 || CT.C64], widget_inspector._Location);
    },
    get C60() {
      return C60 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C61 || CT.C61,
        [_Location_name]: null,
        [_Location_column]: 18,
        [_Location_line]: 699,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/circular_chart/base/circular_base.dart"
      });
    },
    get C67() {
      return C67 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "onPointerUp",
        [_Location_column]: 11,
        [_Location_line]: 697,
        [_Location_file]: null
      });
    },
    get C68() {
      return C68 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "onPointerDown",
        [_Location_column]: 11,
        [_Location_line]: 698,
        [_Location_file]: null
      });
    },
    get C69() {
      return C69 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 11,
        [_Location_line]: 699,
        [_Location_file]: null
      });
    },
    get C66() {
      return C66 = dart.constList([C67 || CT.C67, C68 || CT.C68, C69 || CT.C69], widget_inspector._Location);
    },
    get C65() {
      return C65 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C66 || CT.C66,
        [_Location_name]: null,
        [_Location_column]: 9,
        [_Location_line]: 696,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/circular_chart/base/circular_base.dart"
      });
    },
    get C72() {
      return C72 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "children",
        [_Location_column]: 24,
        [_Location_line]: 685,
        [_Location_file]: null
      });
    },
    get C71() {
      return C71 = dart.constList([C72 || CT.C72], widget_inspector._Location);
    },
    get C70() {
      return C70 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C71 || CT.C71,
        [_Location_name]: null,
        [_Location_column]: 18,
        [_Location_line]: 685,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/circular_chart/base/circular_base.dart"
      });
    },
    get C75() {
      return C75 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 11,
        [_Location_line]: 685,
        [_Location_file]: null
      });
    },
    get C74() {
      return C74 = dart.constList([C75 || CT.C75], widget_inspector._Location);
    },
    get C73() {
      return C73 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C74 || CT.C74,
        [_Location_name]: null,
        [_Location_column]: 14,
        [_Location_line]: 684,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/circular_chart/base/circular_base.dart"
      });
    },
    get C78() {
      return C78 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "builder",
        [_Location_column]: 9,
        [_Location_line]: 683,
        [_Location_file]: null
      });
    },
    get C77() {
      return C77 = dart.constList([C78 || CT.C78], widget_inspector._Location);
    },
    get C76() {
      return C76 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C77 || CT.C77,
        [_Location_name]: null,
        [_Location_column]: 12,
        [_Location_line]: 682,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/circular_chart/base/circular_base.dart"
      });
    },
    get C81() {
      return C81 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "decoration",
        [_Location_column]: 9,
        [_Location_line]: 890,
        [_Location_file]: null
      });
    },
    get C82() {
      return C82 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 9,
        [_Location_line]: 891,
        [_Location_file]: null
      });
    },
    get C80() {
      return C80 = dart.constList([C81 || CT.C81, C82 || CT.C82], widget_inspector._Location);
    },
    get C79() {
      return C79 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C80 || CT.C80,
        [_Location_name]: null,
        [_Location_column]: 12,
        [_Location_line]: 889,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/circular_chart/base/circular_base.dart"
      });
    },
    get C85() {
      return C85 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "children",
        [_Location_column]: 35,
        [_Location_line]: 913,
        [_Location_file]: null
      });
    },
    get C84() {
      return C84 = dart.constList([C85 || CT.C85], widget_inspector._Location);
    },
    get C83() {
      return C83 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C84 || CT.C84,
        [_Location_name]: null,
        [_Location_column]: 29,
        [_Location_line]: 913,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/circular_chart/base/circular_base.dart"
      });
    },
    get C88() {
      return C88 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 22,
        [_Location_line]: 913,
        [_Location_file]: null
      });
    },
    get C87() {
      return C87 = dart.constList([C88 || CT.C88], widget_inspector._Location);
    },
    get C86() {
      return C86 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C87 || CT.C87,
        [_Location_name]: null,
        [_Location_column]: 12,
        [_Location_line]: 913,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/circular_chart/base/circular_base.dart"
      });
    },
    get C91() {
      return C91 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "height",
        [_Location_column]: 23,
        [_Location_line]: 995,
        [_Location_file]: null
      });
    },
    get C92() {
      return C92 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "width",
        [_Location_column]: 23,
        [_Location_line]: 996,
        [_Location_file]: null
      });
    },
    get C93() {
      return C93 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 23,
        [_Location_line]: 997,
        [_Location_file]: null
      });
    },
    get C90() {
      return C90 = dart.constList([C91 || CT.C91, C92 || CT.C92, C93 || CT.C93], widget_inspector._Location);
    },
    get C89() {
      return C89 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C90 || CT.C90,
        [_Location_name]: null,
        [_Location_column]: 21,
        [_Location_line]: 994,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/circular_chart/base/circular_base.dart"
      });
    },
    get C96() {
      return C96 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "templates",
        [_Location_column]: 11,
        [_Location_line]: 1018,
        [_Location_file]: null
      });
    },
    get C97() {
      return C97 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "render",
        [_Location_column]: 11,
        [_Location_line]: 1019,
        [_Location_file]: null
      });
    },
    get C98() {
      return C98 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "chart",
        [_Location_column]: 11,
        [_Location_line]: 1020,
        [_Location_file]: null
      });
    },
    get C95() {
      return C95 = dart.constList([C96 || CT.C96, C97 || CT.C97, C98 || CT.C98], widget_inspector._Location);
    },
    get C94() {
      return C94 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C95 || CT.C95,
        [_Location_name]: null,
        [_Location_column]: 42,
        [_Location_line]: 1017,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/circular_chart/base/circular_base.dart"
      });
    },
    get C101() {
      return C101 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "show",
        [_Location_column]: 13,
        [_Location_line]: 1029,
        [_Location_file]: null
      });
    },
    get C102() {
      return C102 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "clipRect",
        [_Location_column]: 26,
        [_Location_line]: 1029,
        [_Location_file]: null
      });
    },
    get C100() {
      return C100 = dart.constList([C101 || CT.C101, C102 || CT.C102], widget_inspector._Location);
    },
    get C99() {
      return C99 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C100 || CT.C100,
        [_Location_name]: null,
        [_Location_column]: 50,
        [_Location_line]: 1028,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/circular_chart/base/circular_base.dart"
      });
    },
    get C105() {
      return C105 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "chartWidget",
        [_Location_column]: 35,
        [_Location_line]: 1034,
        [_Location_file]: null
      });
    },
    get C104() {
      return C104 = dart.constList([C105 || CT.C105], widget_inspector._Location);
    },
    get C103() {
      return C103 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C104 || CT.C104,
        [_Location_name]: null,
        [_Location_column]: 13,
        [_Location_line]: 1034,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/circular_chart/base/circular_base.dart"
      });
    },
    get C107() {
      return C107 = dart.const({
        __proto__: curves._Linear.prototype
      });
    },
    get C106() {
      return C106 = dart.const({
        __proto__: curves.Interval.prototype,
        [Interval_curve]: C107 || CT.C107,
        [Interval_end]: 0.8,
        [Interval_begin]: 0.1
      });
    },
    get C109() {
      return C109 = dart.const({
        __proto__: curves._DecelerateCurve.prototype
      });
    },
    get C108() {
      return C108 = dart.const({
        __proto__: curves.Interval.prototype,
        [Interval_curve]: C109 || CT.C109,
        [Interval_end]: 1,
        [Interval_begin]: 0.85
      });
    },
    get C112() {
      return C112 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "painter",
        [_Location_column]: 51,
        [_Location_line]: 1118,
        [_Location_file]: null
      });
    },
    get C111() {
      return C111 = dart.constList([C112 || CT.C112], widget_inspector._Location);
    },
    get C110() {
      return C110 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C111 || CT.C111,
        [_Location_name]: null,
        [_Location_column]: 39,
        [_Location_line]: 1118,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/circular_chart/base/circular_base.dart"
      });
    },
    get C115() {
      return C115 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 32,
        [_Location_line]: 1118,
        [_Location_file]: null
      });
    },
    get C114() {
      return C114 = dart.constList([C115 || CT.C115], widget_inspector._Location);
    },
    get C113() {
      return C113 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C114 || CT.C114,
        [_Location_name]: null,
        [_Location_column]: 16,
        [_Location_line]: 1118,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/circular_chart/base/circular_base.dart"
      });
    },
    get C118() {
      return C118 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "circularChart",
        [_Location_column]: 11,
        [_Location_line]: 1120,
        [_Location_file]: null
      });
    },
    get C119() {
      return C119 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "show",
        [_Location_column]: 33,
        [_Location_line]: 1120,
        [_Location_file]: null
      });
    },
    get C117() {
      return C117 = dart.constList([C118 || CT.C118, C119 || CT.C119], widget_inspector._Location);
    },
    get C116() {
      return C116 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C117 || CT.C117,
        [_Location_name]: null,
        [_Location_column]: 43,
        [_Location_line]: 1119,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/circular_chart/base/circular_base.dart"
      });
    },
    get C120() {
      return C120 = dart.const({
        __proto__: charts.EmptyPointMode.prototype,
        [_name$]: "EmptyPointMode.average",
        index: 3
      });
    },
    get C121() {
      return C121 = dart.const({
        __proto__: charts.EmptyPointMode.prototype,
        [_name$]: "EmptyPointMode.zero",
        index: 1
      });
    },
    get C122() {
      return C122 = dart.const({
        __proto__: ui.Size.prototype,
        [OffsetBase__dy]: 0,
        [OffsetBase__dx]: 0
      });
    },
    get C123() {
      return C123 = dart.const({
        __proto__: core.Duration.prototype,
        [Duration__duration]: 500000
      });
    },
    get C124() {
      return C124 = dart.const({
        __proto__: curves.Interval.prototype,
        [Interval_curve]: C109 || CT.C109,
        [Interval_end]: 0.8,
        [Interval_begin]: 0.1
      });
    },
    get C125() {
      return C125 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C14 || CT.C14,
        [_Location_name]: null,
        [_Location_column]: 11,
        [_Location_line]: 71,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/circular_chart/renderer/data_label_renderer.dart"
      });
    },
    get C128() {
      return C128 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "painter",
        [_Location_column]: 17,
        [_Location_line]: 74,
        [_Location_file]: null
      });
    },
    get C127() {
      return C127 = dart.constList([C128 || CT.C128], widget_inspector._Location);
    },
    get C126() {
      return C126 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C127 || CT.C127,
        [_Location_name]: null,
        [_Location_column]: 20,
        [_Location_line]: 73,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/circular_chart/renderer/data_label_renderer.dart"
      });
    },
    get C131() {
      return C131 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 13,
        [_Location_line]: 73,
        [_Location_file]: null
      });
    },
    get C130() {
      return C130 = dart.constList([C131 || CT.C131], widget_inspector._Location);
    },
    get C129() {
      return C129 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C130 || CT.C130,
        [_Location_name]: null,
        [_Location_column]: 11,
        [_Location_line]: 72,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/circular_chart/renderer/data_label_renderer.dart"
      });
    },
    get C132() {
      return C132 = dart.const({
        __proto__: ui.Color.prototype,
        [Color_value]: 4293586159.0
      });
    },
    get C133() {
      return C133 = dart.const({
        __proto__: charts.CircularChartGroupMode.prototype,
        [_name$]: "CircularChartGroupMode.point",
        index: 0
      });
    },
    get C134() {
      return C134 = dart.const({
        __proto__: charts.CircularChartGroupMode.prototype,
        [_name$]: "CircularChartGroupMode.value",
        index: 1
      });
    },
    get C135() {
      return C135 = dart.constList([C133 || CT.C133, C134 || CT.C134], charts.CircularChartGroupMode);
    },
    get C136() {
      return C136 = dart.const({
        __proto__: charts.Position.prototype,
        [_name$]: "Position.left",
        index: 0
      });
    },
    get C137() {
      return C137 = dart.const({
        __proto__: charts.Position.prototype,
        [_name$]: "Position.right",
        index: 1
      });
    },
    get C138() {
      return C138 = dart.constList([C136 || CT.C136, C137 || CT.C137], charts.Position);
    },
    get C139() {
      return C139 = dart.const({
        __proto__: charts.LabelIntersectAction.prototype,
        [_name$]: "LabelIntersectAction.hide",
        index: 0
      });
    },
    get C140() {
      return C140 = dart.const({
        __proto__: charts.LabelIntersectAction.prototype,
        [_name$]: "LabelIntersectAction.none",
        index: 1
      });
    },
    get C141() {
      return C141 = dart.constList([C139 || CT.C139, C140 || CT.C140], charts.LabelIntersectAction);
    },
    get C142() {
      return C142 = dart.const({
        __proto__: charts.ConnectorType.prototype,
        [_name$]: "ConnectorType.curve",
        index: 0
      });
    },
    get C143() {
      return C143 = dart.const({
        __proto__: charts.ConnectorType.prototype,
        [_name$]: "ConnectorType.line",
        index: 1
      });
    },
    get C144() {
      return C144 = dart.constList([C142 || CT.C142, C143 || CT.C143], charts.ConnectorType);
    },
    get C145() {
      return C145 = dart.const({
        __proto__: charts.CornerStyle.prototype,
        [_name$]: "CornerStyle.bothFlat",
        index: 0
      });
    },
    get C146() {
      return C146 = dart.const({
        __proto__: charts.CornerStyle.prototype,
        [_name$]: "CornerStyle.bothCurve",
        index: 1
      });
    },
    get C147() {
      return C147 = dart.const({
        __proto__: charts.CornerStyle.prototype,
        [_name$]: "CornerStyle.startCurve",
        index: 2
      });
    },
    get C148() {
      return C148 = dart.const({
        __proto__: charts.CornerStyle.prototype,
        [_name$]: "CornerStyle.endCurve",
        index: 3
      });
    },
    get C149() {
      return C149 = dart.constList([C145 || CT.C145, C146 || CT.C146, C147 || CT.C147, C148 || CT.C148], charts.CornerStyle);
    },
    get C150() {
      return C150 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C14 || CT.C14,
        [_Location_name]: null,
        [_Location_column]: 22,
        [_Location_line]: 67,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/pyramid_chart/base/pyramid_base.dart"
      });
    },
    get C153() {
      return C153 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "children",
        [_Location_column]: 19,
        [_Location_line]: 408,
        [_Location_file]: null
      });
    },
    get C152() {
      return C152 = dart.constList([C153 || CT.C153], widget_inspector._Location);
    },
    get C151() {
      return C151 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C152 || CT.C152,
        [_Location_name]: null,
        [_Location_column]: 24,
        [_Location_line]: 407,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/pyramid_chart/base/pyramid_base.dart"
      });
    },
    get C156() {
      return C156 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "decoration",
        [_Location_column]: 17,
        [_Location_line]: 399,
        [_Location_file]: null
      });
    },
    get C157() {
      return C157 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 17,
        [_Location_line]: 407,
        [_Location_file]: null
      });
    },
    get C155() {
      return C155 = dart.constList([C156 || CT.C156, C157 || CT.C157], widget_inspector._Location);
    },
    get C154() {
      return C154 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C155 || CT.C155,
        [_Location_name]: null,
        [_Location_column]: 20,
        [_Location_line]: 398,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/pyramid_chart/base/pyramid_base.dart"
      });
    },
    get C160() {
      return C160 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 13,
        [_Location_line]: 398,
        [_Location_file]: null
      });
    },
    get C159() {
      return C159 = dart.constList([C160 || CT.C160], widget_inspector._Location);
    },
    get C158() {
      return C158 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C159 || CT.C159,
        [_Location_name]: null,
        [_Location_column]: 16,
        [_Location_line]: 397,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/pyramid_chart/base/pyramid_base.dart"
      });
    },
    get C163() {
      return C163 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 9,
        [_Location_line]: 397,
        [_Location_file]: null
      });
    },
    get C162() {
      return C162 = dart.constList([C163 || CT.C163], widget_inspector._Location);
    },
    get C161() {
      return C161 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C162 || CT.C162,
        [_Location_name]: null,
        [_Location_column]: 12,
        [_Location_line]: 396,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/pyramid_chart/base/pyramid_base.dart"
      });
    },
    get C166() {
      return C166 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "children",
        [_Location_column]: 44,
        [_Location_line]: 425,
        [_Location_file]: null
      });
    },
    get C165() {
      return C165 = dart.constList([C166 || CT.C166], widget_inspector._Location);
    },
    get C164() {
      return C164 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C165 || CT.C165,
        [_Location_name]: null,
        [_Location_column]: 38,
        [_Location_line]: 425,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/pyramid_chart/base/pyramid_base.dart"
      });
    },
    get C169() {
      return C169 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 31,
        [_Location_line]: 425,
        [_Location_file]: null
      });
    },
    get C168() {
      return C168 = dart.constList([C169 || CT.C169], widget_inspector._Location);
    },
    get C167() {
      return C167 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C168 || CT.C168,
        [_Location_name]: null,
        [_Location_column]: 21,
        [_Location_line]: 425,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/pyramid_chart/base/pyramid_base.dart"
      });
    },
    get C172() {
      return C172 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "chart",
        [_Location_column]: 40,
        [_Location_line]: 431,
        [_Location_file]: null
      });
    },
    get C171() {
      return C171 = dart.constList([C172 || CT.C172], widget_inspector._Location);
    },
    get C170() {
      return C170 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C171 || CT.C171,
        [_Location_name]: null,
        [_Location_column]: 23,
        [_Location_line]: 431,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/pyramid_chart/base/pyramid_base.dart"
      });
    },
    get C173() {
      return C173 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C14 || CT.C14,
        [_Location_name]: null,
        [_Location_column]: 19,
        [_Location_line]: 434,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/pyramid_chart/base/pyramid_base.dart"
      });
    },
    get C176() {
      return C176 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "builder",
        [_Location_column]: 9,
        [_Location_line]: 417,
        [_Location_file]: null
      });
    },
    get C175() {
      return C175 = dart.constList([C176 || CT.C176], widget_inspector._Location);
    },
    get C174() {
      return C174 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C175 || CT.C175,
        [_Location_name]: null,
        [_Location_column]: 28,
        [_Location_line]: 416,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/pyramid_chart/base/pyramid_base.dart"
      });
    },
    get C179() {
      return C179 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 21,
        [_Location_line]: 416,
        [_Location_file]: null
      });
    },
    get C178() {
      return C178 = dart.constList([C179 || CT.C179], widget_inspector._Location);
    },
    get C177() {
      return C177 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C178 || CT.C178,
        [_Location_name]: null,
        [_Location_column]: 12,
        [_Location_line]: 416,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/pyramid_chart/base/pyramid_base.dart"
      });
    },
    get C182() {
      return C182 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "height",
        [_Location_column]: 17,
        [_Location_line]: 496,
        [_Location_file]: null
      });
    },
    get C183() {
      return C183 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "width",
        [_Location_column]: 17,
        [_Location_line]: 497,
        [_Location_file]: null
      });
    },
    get C184() {
      return C184 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "decoration",
        [_Location_column]: 17,
        [_Location_line]: 498,
        [_Location_file]: null
      });
    },
    get C181() {
      return C181 = dart.constList([C182 || CT.C182, C183 || CT.C183, C184 || CT.C184], widget_inspector._Location);
    },
    get C180() {
      return C180 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C181 || CT.C181,
        [_Location_name]: null,
        [_Location_column]: 20,
        [_Location_line]: 495,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/pyramid_chart/base/pyramid_base.dart"
      });
    },
    get C187() {
      return C187 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 13,
        [_Location_line]: 495,
        [_Location_file]: null
      });
    },
    get C188() {
      return C188 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "onHover",
        [_Location_column]: 13,
        [_Location_line]: 499,
        [_Location_file]: null
      });
    },
    get C189() {
      return C189 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "onExit",
        [_Location_column]: 13,
        [_Location_line]: 500,
        [_Location_file]: null
      });
    },
    get C186() {
      return C186 = dart.constList([C187 || CT.C187, C188 || CT.C188, C189 || CT.C189], widget_inspector._Location);
    },
    get C185() {
      return C185 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C186 || CT.C186,
        [_Location_name]: null,
        [_Location_column]: 9,
        [_Location_line]: 494,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/pyramid_chart/base/pyramid_base.dart"
      });
    },
    get C192() {
      return C192 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "height",
        [_Location_column]: 17,
        [_Location_line]: 510,
        [_Location_file]: null
      });
    },
    get C193() {
      return C193 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "width",
        [_Location_column]: 17,
        [_Location_line]: 511,
        [_Location_file]: null
      });
    },
    get C194() {
      return C194 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "decoration",
        [_Location_column]: 17,
        [_Location_line]: 512,
        [_Location_file]: null
      });
    },
    get C191() {
      return C191 = dart.constList([C192 || CT.C192, C193 || CT.C193, C194 || CT.C194], widget_inspector._Location);
    },
    get C190() {
      return C190 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C191 || CT.C191,
        [_Location_name]: null,
        [_Location_column]: 22,
        [_Location_line]: 509,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/pyramid_chart/base/pyramid_base.dart"
      });
    },
    get C197() {
      return C197 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "onLongPress",
        [_Location_column]: 15,
        [_Location_line]: 507,
        [_Location_file]: null
      });
    },
    get C198() {
      return C198 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "onDoubleTap",
        [_Location_column]: 15,
        [_Location_line]: 508,
        [_Location_file]: null
      });
    },
    get C199() {
      return C199 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 15,
        [_Location_line]: 509,
        [_Location_file]: null
      });
    },
    get C196() {
      return C196 = dart.constList([C197 || CT.C197, C198 || CT.C198, C199 || CT.C199], widget_inspector._Location);
    },
    get C195() {
      return C195 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C196 || CT.C196,
        [_Location_name]: null,
        [_Location_column]: 18,
        [_Location_line]: 506,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/pyramid_chart/base/pyramid_base.dart"
      });
    },
    get C202() {
      return C202 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "onPointerUp",
        [_Location_column]: 11,
        [_Location_line]: 504,
        [_Location_file]: null
      });
    },
    get C203() {
      return C203 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "onPointerDown",
        [_Location_column]: 11,
        [_Location_line]: 505,
        [_Location_file]: null
      });
    },
    get C204() {
      return C204 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 11,
        [_Location_line]: 506,
        [_Location_file]: null
      });
    },
    get C201() {
      return C201 = dart.constList([C202 || CT.C202, C203 || CT.C203, C204 || CT.C204], widget_inspector._Location);
    },
    get C200() {
      return C200 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C201 || CT.C201,
        [_Location_name]: null,
        [_Location_column]: 9,
        [_Location_line]: 503,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/pyramid_chart/base/pyramid_base.dart"
      });
    },
    get C207() {
      return C207 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "children",
        [_Location_column]: 24,
        [_Location_line]: 492,
        [_Location_file]: null
      });
    },
    get C206() {
      return C206 = dart.constList([C207 || CT.C207], widget_inspector._Location);
    },
    get C205() {
      return C205 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C206 || CT.C206,
        [_Location_name]: null,
        [_Location_column]: 18,
        [_Location_line]: 492,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/pyramid_chart/base/pyramid_base.dart"
      });
    },
    get C210() {
      return C210 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 11,
        [_Location_line]: 492,
        [_Location_file]: null
      });
    },
    get C209() {
      return C209 = dart.constList([C210 || CT.C210], widget_inspector._Location);
    },
    get C208() {
      return C208 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C209 || CT.C209,
        [_Location_name]: null,
        [_Location_column]: 14,
        [_Location_line]: 491,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/pyramid_chart/base/pyramid_base.dart"
      });
    },
    get C213() {
      return C213 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "builder",
        [_Location_column]: 9,
        [_Location_line]: 490,
        [_Location_file]: null
      });
    },
    get C212() {
      return C212 = dart.constList([C213 || CT.C213], widget_inspector._Location);
    },
    get C211() {
      return C211 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C212 || CT.C212,
        [_Location_name]: null,
        [_Location_column]: 12,
        [_Location_line]: 489,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/pyramid_chart/base/pyramid_base.dart"
      });
    },
    get C216() {
      return C216 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "decoration",
        [_Location_column]: 13,
        [_Location_line]: 534,
        [_Location_file]: null
      });
    },
    get C217() {
      return C217 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 13,
        [_Location_line]: 535,
        [_Location_file]: null
      });
    },
    get C215() {
      return C215 = dart.constList([C216 || CT.C216, C217 || CT.C217], widget_inspector._Location);
    },
    get C214() {
      return C214 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C215 || CT.C215,
        [_Location_name]: null,
        [_Location_column]: 16,
        [_Location_line]: 533,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/pyramid_chart/base/pyramid_base.dart"
      });
    },
    get C220() {
      return C220 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 9,
        [_Location_line]: 533,
        [_Location_file]: null
      });
    },
    get C219() {
      return C219 = dart.constList([C220 || CT.C220], widget_inspector._Location);
    },
    get C218() {
      return C218 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C219 || CT.C219,
        [_Location_name]: null,
        [_Location_column]: 12,
        [_Location_line]: 532,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/pyramid_chart/base/pyramid_base.dart"
      });
    },
    get C223() {
      return C223 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "children",
        [_Location_column]: 35,
        [_Location_line]: 558,
        [_Location_file]: null
      });
    },
    get C222() {
      return C222 = dart.constList([C223 || CT.C223], widget_inspector._Location);
    },
    get C221() {
      return C221 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C222 || CT.C222,
        [_Location_name]: null,
        [_Location_column]: 29,
        [_Location_line]: 558,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/pyramid_chart/base/pyramid_base.dart"
      });
    },
    get C226() {
      return C226 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 22,
        [_Location_line]: 558,
        [_Location_file]: null
      });
    },
    get C225() {
      return C225 = dart.constList([C226 || CT.C226], widget_inspector._Location);
    },
    get C224() {
      return C224 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C225 || CT.C225,
        [_Location_name]: null,
        [_Location_column]: 12,
        [_Location_line]: 558,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/pyramid_chart/base/pyramid_base.dart"
      });
    },
    get C229() {
      return C229 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "painter",
        [_Location_column]: 51,
        [_Location_line]: 630,
        [_Location_file]: null
      });
    },
    get C228() {
      return C228 = dart.constList([C229 || CT.C229], widget_inspector._Location);
    },
    get C227() {
      return C227 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C228 || CT.C228,
        [_Location_name]: null,
        [_Location_column]: 39,
        [_Location_line]: 630,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/pyramid_chart/base/pyramid_base.dart"
      });
    },
    get C232() {
      return C232 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 32,
        [_Location_line]: 630,
        [_Location_file]: null
      });
    },
    get C231() {
      return C231 = dart.constList([C232 || CT.C232], widget_inspector._Location);
    },
    get C230() {
      return C230 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C231 || CT.C231,
        [_Location_name]: null,
        [_Location_column]: 16,
        [_Location_line]: 630,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/pyramid_chart/base/pyramid_base.dart"
      });
    },
    get C235() {
      return C235 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "pyramidChart",
        [_Location_column]: 11,
        [_Location_line]: 632,
        [_Location_file]: null
      });
    },
    get C236() {
      return C236 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "show",
        [_Location_column]: 11,
        [_Location_line]: 633,
        [_Location_file]: null
      });
    },
    get C234() {
      return C234 = dart.constList([C235 || CT.C235, C236 || CT.C236], widget_inspector._Location);
    },
    get C233() {
      return C233 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C234 || CT.C234,
        [_Location_name]: null,
        [_Location_column]: 43,
        [_Location_line]: 631,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/pyramid_chart/base/pyramid_base.dart"
      });
    },
    get C239() {
      return C239 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "show",
        [_Location_column]: 13,
        [_Location_line]: 644,
        [_Location_file]: null
      });
    },
    get C240() {
      return C240 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "clipRect",
        [_Location_column]: 26,
        [_Location_line]: 644,
        [_Location_file]: null
      });
    },
    get C238() {
      return C238 = dart.constList([C239 || CT.C239, C240 || CT.C240], widget_inspector._Location);
    },
    get C237() {
      return C237 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C238 || CT.C238,
        [_Location_name]: null,
        [_Location_column]: 50,
        [_Location_line]: 643,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/pyramid_chart/base/pyramid_base.dart"
      });
    },
    get C243() {
      return C243 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "chartWidget",
        [_Location_column]: 35,
        [_Location_line]: 649,
        [_Location_file]: null
      });
    },
    get C242() {
      return C242 = dart.constList([C243 || CT.C243], widget_inspector._Location);
    },
    get C241() {
      return C241 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C242 || CT.C242,
        [_Location_name]: null,
        [_Location_column]: 13,
        [_Location_line]: 649,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/pyramid_chart/base/pyramid_base.dart"
      });
    },
    get C244() {
      return C244 = dart.const({
        __proto__: core.Duration.prototype,
        [Duration__duration]: 300000
      });
    },
    get C245() {
      return C245 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C14 || CT.C14,
        [_Location_name]: null,
        [_Location_column]: 11,
        [_Location_line]: 71,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/pyramid_chart/renderer/data_label_renderer.dart"
      });
    },
    get C246() {
      return C246 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C127 || CT.C127,
        [_Location_name]: null,
        [_Location_column]: 20,
        [_Location_line]: 73,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/pyramid_chart/renderer/data_label_renderer.dart"
      });
    },
    get C247() {
      return C247 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C130 || CT.C130,
        [_Location_name]: null,
        [_Location_column]: 11,
        [_Location_line]: 72,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/pyramid_chart/renderer/data_label_renderer.dart"
      });
    },
    get C248() {
      return C248 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C14 || CT.C14,
        [_Location_name]: null,
        [_Location_column]: 23,
        [_Location_line]: 69,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/funnel_chart/base/funnel_base.dart"
      });
    },
    get C251() {
      return C251 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "children",
        [_Location_column]: 19,
        [_Location_line]: 416,
        [_Location_file]: null
      });
    },
    get C250() {
      return C250 = dart.constList([C251 || CT.C251], widget_inspector._Location);
    },
    get C249() {
      return C249 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C250 || CT.C250,
        [_Location_name]: null,
        [_Location_column]: 24,
        [_Location_line]: 415,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/funnel_chart/base/funnel_base.dart"
      });
    },
    get C254() {
      return C254 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "decoration",
        [_Location_column]: 17,
        [_Location_line]: 407,
        [_Location_file]: null
      });
    },
    get C255() {
      return C255 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 17,
        [_Location_line]: 415,
        [_Location_file]: null
      });
    },
    get C253() {
      return C253 = dart.constList([C254 || CT.C254, C255 || CT.C255], widget_inspector._Location);
    },
    get C252() {
      return C252 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C253 || CT.C253,
        [_Location_name]: null,
        [_Location_column]: 20,
        [_Location_line]: 406,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/funnel_chart/base/funnel_base.dart"
      });
    },
    get C258() {
      return C258 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 13,
        [_Location_line]: 406,
        [_Location_file]: null
      });
    },
    get C257() {
      return C257 = dart.constList([C258 || CT.C258], widget_inspector._Location);
    },
    get C256() {
      return C256 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C257 || CT.C257,
        [_Location_name]: null,
        [_Location_column]: 16,
        [_Location_line]: 405,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/funnel_chart/base/funnel_base.dart"
      });
    },
    get C261() {
      return C261 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 9,
        [_Location_line]: 405,
        [_Location_file]: null
      });
    },
    get C260() {
      return C260 = dart.constList([C261 || CT.C261], widget_inspector._Location);
    },
    get C259() {
      return C259 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C260 || CT.C260,
        [_Location_name]: null,
        [_Location_column]: 12,
        [_Location_line]: 404,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/funnel_chart/base/funnel_base.dart"
      });
    },
    get C264() {
      return C264 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "children",
        [_Location_column]: 44,
        [_Location_line]: 433,
        [_Location_file]: null
      });
    },
    get C263() {
      return C263 = dart.constList([C264 || CT.C264], widget_inspector._Location);
    },
    get C262() {
      return C262 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C263 || CT.C263,
        [_Location_name]: null,
        [_Location_column]: 38,
        [_Location_line]: 433,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/funnel_chart/base/funnel_base.dart"
      });
    },
    get C267() {
      return C267 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 31,
        [_Location_line]: 433,
        [_Location_file]: null
      });
    },
    get C266() {
      return C266 = dart.constList([C267 || CT.C267], widget_inspector._Location);
    },
    get C265() {
      return C265 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C266 || CT.C266,
        [_Location_name]: null,
        [_Location_column]: 21,
        [_Location_line]: 433,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/funnel_chart/base/funnel_base.dart"
      });
    },
    get C270() {
      return C270 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "chart",
        [_Location_column]: 52,
        [_Location_line]: 439,
        [_Location_file]: null
      });
    },
    get C269() {
      return C269 = dart.constList([C270 || CT.C270], widget_inspector._Location);
    },
    get C268() {
      return C268 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C269 || CT.C269,
        [_Location_name]: null,
        [_Location_column]: 36,
        [_Location_line]: 439,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/funnel_chart/base/funnel_base.dart"
      });
    },
    get C271() {
      return C271 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C14 || CT.C14,
        [_Location_name]: null,
        [_Location_column]: 19,
        [_Location_line]: 442,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/funnel_chart/base/funnel_base.dart"
      });
    },
    get C274() {
      return C274 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "builder",
        [_Location_column]: 9,
        [_Location_line]: 425,
        [_Location_file]: null
      });
    },
    get C273() {
      return C273 = dart.constList([C274 || CT.C274], widget_inspector._Location);
    },
    get C272() {
      return C272 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C273 || CT.C273,
        [_Location_name]: null,
        [_Location_column]: 28,
        [_Location_line]: 424,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/funnel_chart/base/funnel_base.dart"
      });
    },
    get C277() {
      return C277 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 21,
        [_Location_line]: 424,
        [_Location_file]: null
      });
    },
    get C276() {
      return C276 = dart.constList([C277 || CT.C277], widget_inspector._Location);
    },
    get C275() {
      return C275 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C276 || CT.C276,
        [_Location_name]: null,
        [_Location_column]: 12,
        [_Location_line]: 424,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/funnel_chart/base/funnel_base.dart"
      });
    },
    get C280() {
      return C280 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "height",
        [_Location_column]: 17,
        [_Location_line]: 504,
        [_Location_file]: null
      });
    },
    get C281() {
      return C281 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "width",
        [_Location_column]: 17,
        [_Location_line]: 505,
        [_Location_file]: null
      });
    },
    get C282() {
      return C282 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "decoration",
        [_Location_column]: 17,
        [_Location_line]: 506,
        [_Location_file]: null
      });
    },
    get C279() {
      return C279 = dart.constList([C280 || CT.C280, C281 || CT.C281, C282 || CT.C282], widget_inspector._Location);
    },
    get C278() {
      return C278 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C279 || CT.C279,
        [_Location_name]: null,
        [_Location_column]: 20,
        [_Location_line]: 503,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/funnel_chart/base/funnel_base.dart"
      });
    },
    get C285() {
      return C285 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 13,
        [_Location_line]: 503,
        [_Location_file]: null
      });
    },
    get C286() {
      return C286 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "onHover",
        [_Location_column]: 13,
        [_Location_line]: 507,
        [_Location_file]: null
      });
    },
    get C287() {
      return C287 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "onExit",
        [_Location_column]: 13,
        [_Location_line]: 508,
        [_Location_file]: null
      });
    },
    get C284() {
      return C284 = dart.constList([C285 || CT.C285, C286 || CT.C286, C287 || CT.C287], widget_inspector._Location);
    },
    get C283() {
      return C283 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C284 || CT.C284,
        [_Location_name]: null,
        [_Location_column]: 9,
        [_Location_line]: 502,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/funnel_chart/base/funnel_base.dart"
      });
    },
    get C290() {
      return C290 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "decoration",
        [_Location_column]: 21,
        [_Location_line]: 518,
        [_Location_file]: null
      });
    },
    get C291() {
      return C291 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 21,
        [_Location_line]: 519,
        [_Location_file]: null
      });
    },
    get C289() {
      return C289 = dart.constList([C290 || CT.C290, C291 || CT.C291], widget_inspector._Location);
    },
    get C288() {
      return C288 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C289 || CT.C289,
        [_Location_name]: null,
        [_Location_column]: 24,
        [_Location_line]: 517,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/funnel_chart/base/funnel_base.dart"
      });
    },
    get C294() {
      return C294 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "onLongPress",
        [_Location_column]: 17,
        [_Location_line]: 515,
        [_Location_file]: null
      });
    },
    get C295() {
      return C295 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "onDoubleTap",
        [_Location_column]: 17,
        [_Location_line]: 516,
        [_Location_file]: null
      });
    },
    get C296() {
      return C296 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 17,
        [_Location_line]: 517,
        [_Location_file]: null
      });
    },
    get C293() {
      return C293 = dart.constList([C294 || CT.C294, C295 || CT.C295, C296 || CT.C296], widget_inspector._Location);
    },
    get C292() {
      return C292 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C293 || CT.C293,
        [_Location_name]: null,
        [_Location_column]: 20,
        [_Location_line]: 514,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/funnel_chart/base/funnel_base.dart"
      });
    },
    get C299() {
      return C299 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "onPointerUp",
        [_Location_column]: 13,
        [_Location_line]: 512,
        [_Location_file]: null
      });
    },
    get C300() {
      return C300 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "onPointerDown",
        [_Location_column]: 13,
        [_Location_line]: 513,
        [_Location_file]: null
      });
    },
    get C301() {
      return C301 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 13,
        [_Location_line]: 514,
        [_Location_file]: null
      });
    },
    get C298() {
      return C298 = dart.constList([C299 || CT.C299, C300 || CT.C300, C301 || CT.C301], widget_inspector._Location);
    },
    get C297() {
      return C297 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C298 || CT.C298,
        [_Location_name]: null,
        [_Location_column]: 9,
        [_Location_line]: 511,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/funnel_chart/base/funnel_base.dart"
      });
    },
    get C304() {
      return C304 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "children",
        [_Location_column]: 24,
        [_Location_line]: 500,
        [_Location_file]: null
      });
    },
    get C303() {
      return C303 = dart.constList([C304 || CT.C304], widget_inspector._Location);
    },
    get C302() {
      return C302 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C303 || CT.C303,
        [_Location_name]: null,
        [_Location_column]: 18,
        [_Location_line]: 500,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/funnel_chart/base/funnel_base.dart"
      });
    },
    get C307() {
      return C307 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 11,
        [_Location_line]: 500,
        [_Location_file]: null
      });
    },
    get C306() {
      return C306 = dart.constList([C307 || CT.C307], widget_inspector._Location);
    },
    get C305() {
      return C305 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C306 || CT.C306,
        [_Location_name]: null,
        [_Location_column]: 14,
        [_Location_line]: 499,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/funnel_chart/base/funnel_base.dart"
      });
    },
    get C310() {
      return C310 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "builder",
        [_Location_column]: 9,
        [_Location_line]: 498,
        [_Location_file]: null
      });
    },
    get C309() {
      return C309 = dart.constList([C310 || CT.C310], widget_inspector._Location);
    },
    get C308() {
      return C308 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C309 || CT.C309,
        [_Location_name]: null,
        [_Location_column]: 12,
        [_Location_line]: 497,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/funnel_chart/base/funnel_base.dart"
      });
    },
    get C313() {
      return C313 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "decoration",
        [_Location_column]: 13,
        [_Location_line]: 528,
        [_Location_file]: null
      });
    },
    get C314() {
      return C314 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 13,
        [_Location_line]: 529,
        [_Location_file]: null
      });
    },
    get C312() {
      return C312 = dart.constList([C313 || CT.C313, C314 || CT.C314], widget_inspector._Location);
    },
    get C311() {
      return C311 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C312 || CT.C312,
        [_Location_name]: null,
        [_Location_column]: 16,
        [_Location_line]: 527,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/funnel_chart/base/funnel_base.dart"
      });
    },
    get C317() {
      return C317 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 9,
        [_Location_line]: 527,
        [_Location_file]: null
      });
    },
    get C316() {
      return C316 = dart.constList([C317 || CT.C317], widget_inspector._Location);
    },
    get C315() {
      return C315 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C316 || CT.C316,
        [_Location_name]: null,
        [_Location_column]: 12,
        [_Location_line]: 526,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/funnel_chart/base/funnel_base.dart"
      });
    },
    get C320() {
      return C320 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "children",
        [_Location_column]: 35,
        [_Location_line]: 552,
        [_Location_file]: null
      });
    },
    get C319() {
      return C319 = dart.constList([C320 || CT.C320], widget_inspector._Location);
    },
    get C318() {
      return C318 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C319 || CT.C319,
        [_Location_name]: null,
        [_Location_column]: 29,
        [_Location_line]: 552,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/funnel_chart/base/funnel_base.dart"
      });
    },
    get C323() {
      return C323 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 22,
        [_Location_line]: 552,
        [_Location_file]: null
      });
    },
    get C322() {
      return C322 = dart.constList([C323 || CT.C323], widget_inspector._Location);
    },
    get C321() {
      return C321 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C322 || CT.C322,
        [_Location_name]: null,
        [_Location_column]: 12,
        [_Location_line]: 552,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/funnel_chart/base/funnel_base.dart"
      });
    },
    get C326() {
      return C326 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "painter",
        [_Location_column]: 51,
        [_Location_line]: 622,
        [_Location_file]: null
      });
    },
    get C325() {
      return C325 = dart.constList([C326 || CT.C326], widget_inspector._Location);
    },
    get C324() {
      return C324 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C325 || CT.C325,
        [_Location_name]: null,
        [_Location_column]: 39,
        [_Location_line]: 622,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/funnel_chart/base/funnel_base.dart"
      });
    },
    get C329() {
      return C329 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 32,
        [_Location_line]: 622,
        [_Location_file]: null
      });
    },
    get C328() {
      return C328 = dart.constList([C329 || CT.C329], widget_inspector._Location);
    },
    get C327() {
      return C327 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C328 || CT.C328,
        [_Location_name]: null,
        [_Location_column]: 16,
        [_Location_line]: 622,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/funnel_chart/base/funnel_base.dart"
      });
    },
    get C332() {
      return C332 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "funnelChart",
        [_Location_column]: 11,
        [_Location_line]: 624,
        [_Location_file]: null
      });
    },
    get C333() {
      return C333 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "show",
        [_Location_column]: 11,
        [_Location_line]: 625,
        [_Location_file]: null
      });
    },
    get C331() {
      return C331 = dart.constList([C332 || CT.C332, C333 || CT.C333], widget_inspector._Location);
    },
    get C330() {
      return C330 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C331 || CT.C331,
        [_Location_name]: null,
        [_Location_column]: 43,
        [_Location_line]: 623,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/funnel_chart/base/funnel_base.dart"
      });
    },
    get C336() {
      return C336 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "show",
        [_Location_column]: 13,
        [_Location_line]: 636,
        [_Location_file]: null
      });
    },
    get C337() {
      return C337 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "clipRect",
        [_Location_column]: 26,
        [_Location_line]: 636,
        [_Location_file]: null
      });
    },
    get C335() {
      return C335 = dart.constList([C336 || CT.C336, C337 || CT.C337], widget_inspector._Location);
    },
    get C334() {
      return C334 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C335 || CT.C335,
        [_Location_name]: null,
        [_Location_column]: 50,
        [_Location_line]: 635,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/funnel_chart/base/funnel_base.dart"
      });
    },
    get C340() {
      return C340 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "chartWidget",
        [_Location_column]: 35,
        [_Location_line]: 641,
        [_Location_file]: null
      });
    },
    get C339() {
      return C339 = dart.constList([C340 || CT.C340], widget_inspector._Location);
    },
    get C338() {
      return C338 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C339 || CT.C339,
        [_Location_name]: null,
        [_Location_column]: 13,
        [_Location_line]: 641,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/funnel_chart/base/funnel_base.dart"
      });
    },
    get C341() {
      return C341 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C14 || CT.C14,
        [_Location_name]: null,
        [_Location_column]: 11,
        [_Location_line]: 69,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/funnel_chart/renderer/data_label_renderer.dart"
      });
    },
    get C344() {
      return C344 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "painter",
        [_Location_column]: 17,
        [_Location_line]: 72,
        [_Location_file]: null
      });
    },
    get C343() {
      return C343 = dart.constList([C344 || CT.C344], widget_inspector._Location);
    },
    get C342() {
      return C342 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C343 || CT.C343,
        [_Location_name]: null,
        [_Location_column]: 20,
        [_Location_line]: 71,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/funnel_chart/renderer/data_label_renderer.dart"
      });
    },
    get C347() {
      return C347 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 13,
        [_Location_line]: 71,
        [_Location_file]: null
      });
    },
    get C346() {
      return C346 = dart.constList([C347 || CT.C347], widget_inspector._Location);
    },
    get C345() {
      return C345 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C346 || CT.C346,
        [_Location_name]: null,
        [_Location_column]: 11,
        [_Location_line]: 70,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/funnel_chart/renderer/data_label_renderer.dart"
      });
    },
    get C348() {
      return C348 = dart.const({
        __proto__: ui.Rect.prototype,
        [Rect_bottom]: 0,
        [Rect_right]: 0,
        [Rect_top]: 0,
        [Rect_left]: 0
      });
    },
    get C349() {
      return C349 = dart.const({
        __proto__: charts.AxisOrientation.prototype,
        [_name$]: "AxisOrientation.horizontal",
        index: 1
      });
    },
    get C350() {
      return C350 = dart.const({
        __proto__: charts.AxisOrientation.prototype,
        [_name$]: "AxisOrientation.vertical",
        index: 0
      });
    },
    get C351() {
      return C351 = dart.const({
        __proto__: charts.AxisLabelIntersectAction.prototype,
        [_name$]: "AxisLabelIntersectAction.multipleRows",
        index: 3
      });
    },
    get C352() {
      return C352 = dart.const({
        __proto__: charts.AxisLabelIntersectAction.prototype,
        [_name$]: "AxisLabelIntersectAction.rotate45",
        index: 4
      });
    },
    get C353() {
      return C353 = dart.const({
        __proto__: charts.AxisLabelIntersectAction.prototype,
        [_name$]: "AxisLabelIntersectAction.rotate90",
        index: 5
      });
    },
    get C354() {
      return C354 = dart.const({
        __proto__: charts.AxisLabelIntersectAction.prototype,
        [_name$]: "AxisLabelIntersectAction.wrap",
        index: 2
      });
    },
    get C355() {
      return C355 = dart.const({
        __proto__: charts.ChartAlignment.prototype,
        [_name$]: "ChartAlignment.center",
        index: 1
      });
    },
    get C356() {
      return C356 = dart.const({
        __proto__: core.Duration.prototype,
        [Duration__duration]: 0
      });
    },
    get C357() {
      return C357 = dart.const({
        __proto__: curves.Interval.prototype,
        [Interval_curve]: C109 || CT.C109,
        [Interval_end]: 0.9,
        [Interval_begin]: 0.1
      });
    },
    get C360() {
      return C360 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "painter",
        [_Location_column]: 13,
        [_Location_line]: 962,
        [_Location_file]: null
      });
    },
    get C359() {
      return C359 = dart.constList([C360 || CT.C360], widget_inspector._Location);
    },
    get C358() {
      return C358 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C359 || CT.C359,
        [_Location_name]: null,
        [_Location_column]: 16,
        [_Location_line]: 961,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/chart/axis/axis_renderer.dart"
      });
    },
    get C363() {
      return C363 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 9,
        [_Location_line]: 961,
        [_Location_file]: null
      });
    },
    get C362() {
      return C362 = dart.constList([C363 || CT.C363], widget_inspector._Location);
    },
    get C361() {
      return C361 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C362 || CT.C362,
        [_Location_name]: null,
        [_Location_column]: 12,
        [_Location_line]: 960,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/chart/axis/axis_renderer.dart"
      });
    },
    get C364() {
      return C364 = dart.const({
        __proto__: charts.DateTimeIntervalType.prototype,
        [_name$]: "DateTimeIntervalType.years",
        index: 1
      });
    },
    get C365() {
      return C365 = dart.const({
        __proto__: charts.DateTimeIntervalType.prototype,
        [_name$]: "DateTimeIntervalType.months",
        index: 2
      });
    },
    get C366() {
      return C366 = dart.const({
        __proto__: charts.DateTimeIntervalType.prototype,
        [_name$]: "DateTimeIntervalType.days",
        index: 3
      });
    },
    get C367() {
      return C367 = dart.const({
        __proto__: charts.DateTimeIntervalType.prototype,
        [_name$]: "DateTimeIntervalType.hours",
        index: 4
      });
    },
    get C368() {
      return C368 = dart.const({
        __proto__: charts.DateTimeIntervalType.prototype,
        [_name$]: "DateTimeIntervalType.minutes",
        index: 5
      });
    },
    get C369() {
      return C369 = dart.const({
        __proto__: charts.DateTimeIntervalType.prototype,
        [_name$]: "DateTimeIntervalType.seconds",
        index: 6
      });
    },
    get C370() {
      return C370 = dart.const({
        __proto__: charts.DateTimeIntervalType.prototype,
        [_name$]: "DateTimeIntervalType.auto",
        index: 0
      });
    },
    get C371() {
      return C371 = dart.const({
        __proto__: ui.Color.prototype,
        [Color_value]: 4292598747.0
      });
    },
    get C373() {
      return C373 = dart.const({
        __proto__: ui.Color.prototype,
        [Color_value]: 4283140025.0
      });
    },
    get C372() {
      return C372 = dart.constList([C373 || CT.C373, C3 || CT.C3, C4 || CT.C4, C5 || CT.C5, C6 || CT.C6, C7 || CT.C7, C8 || CT.C8, C9 || CT.C9, C10 || CT.C10, C11 || CT.C11], ui.Color);
    },
    get C374() {
      return C374 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C14 || CT.C14,
        [_Location_name]: null,
        [_Location_column]: 22,
        [_Location_line]: 202,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/chart/base/chart_base.dart"
      });
    },
    get C377() {
      return C377 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "children",
        [_Location_column]: 13,
        [_Location_line]: 1178,
        [_Location_file]: null
      });
    },
    get C376() {
      return C376 = dart.constList([C377 || CT.C377], widget_inspector._Location);
    },
    get C375() {
      return C375 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C376 || CT.C376,
        [_Location_name]: null,
        [_Location_column]: 18,
        [_Location_line]: 1177,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/chart/base/chart_base.dart"
      });
    },
    get C380() {
      return C380 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "margin",
        [_Location_column]: 11,
        [_Location_line]: 1175,
        [_Location_file]: null
      });
    },
    get C381() {
      return C381 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 11,
        [_Location_line]: 1177,
        [_Location_file]: null
      });
    },
    get C379() {
      return C379 = dart.constList([C380 || CT.C380, C381 || CT.C381], widget_inspector._Location);
    },
    get C378() {
      return C378 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C379 || CT.C379,
        [_Location_name]: null,
        [_Location_column]: 14,
        [_Location_line]: 1174,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/chart/base/chart_base.dart"
      });
    },
    get C384() {
      return C384 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "decoration",
        [_Location_column]: 7,
        [_Location_line]: 1170,
        [_Location_file]: null
      });
    },
    get C385() {
      return C385 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 7,
        [_Location_line]: 1174,
        [_Location_file]: null
      });
    },
    get C383() {
      return C383 = dart.constList([C384 || CT.C384, C385 || CT.C385], widget_inspector._Location);
    },
    get C382() {
      return C382 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C383 || CT.C383,
        [_Location_name]: null,
        [_Location_column]: 16,
        [_Location_line]: 1169,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/chart/base/chart_base.dart"
      });
    },
    get C388() {
      return C388 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 9,
        [_Location_line]: 1169,
        [_Location_file]: null
      });
    },
    get C387() {
      return C387 = dart.constList([C388 || CT.C388], widget_inspector._Location);
    },
    get C386() {
      return C386 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C387 || CT.C387,
        [_Location_name]: null,
        [_Location_column]: 12,
        [_Location_line]: 1168,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/chart/base/chart_base.dart"
      });
    },
    get C391() {
      return C391 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "data",
        [_Location_column]: 36,
        [_Location_line]: 1203,
        [_Location_file]: null
      });
    },
    get C392() {
      return C392 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "overflow",
        [_Location_column]: 15,
        [_Location_line]: 1204,
        [_Location_file]: null
      });
    },
    get C393() {
      return C393 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "textAlign",
        [_Location_column]: 15,
        [_Location_line]: 1205,
        [_Location_file]: null
      });
    },
    get C394() {
      return C394 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "textScaleFactor",
        [_Location_column]: 15,
        [_Location_line]: 1206,
        [_Location_file]: null
      });
    },
    get C395() {
      return C395 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "style",
        [_Location_column]: 15,
        [_Location_line]: 1207,
        [_Location_file]: null
      });
    },
    get C390() {
      return C390 = dart.constList([C391 || CT.C391, C392 || CT.C392, C393 || CT.C393, C394 || CT.C394, C395 || CT.C395], widget_inspector._Location);
    },
    get C389() {
      return C389 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C390 || CT.C390,
        [_Location_name]: null,
        [_Location_column]: 18,
        [_Location_line]: 1203,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/chart/base/chart_base.dart"
      });
    },
    get C398() {
      return C398 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 11,
        [_Location_line]: 1203,
        [_Location_file]: null
      });
    },
    get C399() {
      return C399 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "decoration",
        [_Location_column]: 11,
        [_Location_line]: 1208,
        [_Location_file]: null
      });
    },
    get C397() {
      return C397 = dart.constList([C398 || CT.C398, C399 || CT.C399], widget_inspector._Location);
    },
    get C396() {
      return C396 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C397 || CT.C397,
        [_Location_name]: null,
        [_Location_column]: 16,
        [_Location_line]: 1202,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/chart/base/chart_base.dart"
      });
    },
    get C402() {
      return C402 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 9,
        [_Location_line]: 1202,
        [_Location_file]: null
      });
    },
    get C403() {
      return C403 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "alignment",
        [_Location_column]: 9,
        [_Location_line]: 1218,
        [_Location_file]: null
      });
    },
    get C401() {
      return C401 = dart.constList([C402 || CT.C402, C403 || CT.C403], widget_inspector._Location);
    },
    get C400() {
      return C400 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C401 || CT.C401,
        [_Location_name]: null,
        [_Location_column]: 21,
        [_Location_line]: 1201,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/chart/base/chart_base.dart"
      });
    },
    get C404() {
      return C404 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C14 || CT.C14,
        [_Location_name]: null,
        [_Location_column]: 21,
        [_Location_line]: 1227,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/chart/base/chart_base.dart"
      });
    },
    get C407() {
      return C407 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "children",
        [_Location_column]: 44,
        [_Location_line]: 1252,
        [_Location_file]: null
      });
    },
    get C406() {
      return C406 = dart.constList([C407 || CT.C407], widget_inspector._Location);
    },
    get C405() {
      return C405 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C406 || CT.C406,
        [_Location_name]: null,
        [_Location_column]: 38,
        [_Location_line]: 1252,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/chart/base/chart_base.dart"
      });
    },
    get C410() {
      return C410 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 31,
        [_Location_line]: 1252,
        [_Location_file]: null
      });
    },
    get C409() {
      return C409 = dart.constList([C410 || CT.C410], widget_inspector._Location);
    },
    get C408() {
      return C408 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C409 || CT.C409,
        [_Location_name]: null,
        [_Location_column]: 21,
        [_Location_line]: 1252,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/chart/base/chart_base.dart"
      });
    },
    get C413() {
      return C413 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "chart",
        [_Location_column]: 51,
        [_Location_line]: 1259,
        [_Location_file]: null
      });
    },
    get C412() {
      return C412 = dart.constList([C413 || CT.C413], widget_inspector._Location);
    },
    get C411() {
      return C411 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C412 || CT.C412,
        [_Location_name]: null,
        [_Location_column]: 36,
        [_Location_line]: 1259,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/chart/base/chart_base.dart"
      });
    },
    get C416() {
      return C416 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "builder",
        [_Location_column]: 11,
        [_Location_line]: 1247,
        [_Location_file]: null
      });
    },
    get C415() {
      return C415 = dart.constList([C416 || CT.C416], widget_inspector._Location);
    },
    get C414() {
      return C414 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C415 || CT.C415,
        [_Location_name]: null,
        [_Location_column]: 14,
        [_Location_line]: 1246,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/chart/base/chart_base.dart"
      });
    },
    get C419() {
      return C419 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 7,
        [_Location_line]: 1246,
        [_Location_file]: null
      });
    },
    get C418() {
      return C418 = dart.constList([C419 || CT.C419], widget_inspector._Location);
    },
    get C417() {
      return C417 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C418 || CT.C418,
        [_Location_name]: null,
        [_Location_column]: 12,
        [_Location_line]: 1245,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/chart/base/chart_base.dart"
      });
    },
    get C422() {
      return C422 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "chart",
        [_Location_column]: 15,
        [_Location_line]: 1276,
        [_Location_file]: null
      });
    },
    get C423() {
      return C423 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "seriesIndex",
        [_Location_column]: 15,
        [_Location_line]: 1277,
        [_Location_file]: null
      });
    },
    get C424() {
      return C424 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "pointIndex",
        [_Location_column]: 15,
        [_Location_line]: 1278,
        [_Location_file]: null
      });
    },
    get C425() {
      return C425 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "type",
        [_Location_column]: 15,
        [_Location_line]: 1279,
        [_Location_file]: null
      });
    },
    get C426() {
      return C426 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "currentKey",
        [_Location_column]: 15,
        [_Location_line]: 1280,
        [_Location_file]: null
      });
    },
    get C427() {
      return C427 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "currentWidget",
        [_Location_column]: 15,
        [_Location_line]: 1281,
        [_Location_file]: null
      });
    },
    get C428() {
      return C428 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "opacityValue",
        [_Location_column]: 15,
        [_Location_line]: 1282,
        [_Location_file]: null
      });
    },
    get C421() {
      return C421 = dart.constList([C422 || CT.C422, C423 || CT.C423, C424 || CT.C424, C425 || CT.C425, C426 || CT.C426, C427 || CT.C427, C428 || CT.C428], widget_inspector._Location);
    },
    get C420() {
      return C420 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C421 || CT.C421,
        [_Location_name]: null,
        [_Location_column]: 25,
        [_Location_line]: 1275,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/chart/base/chart_base.dart"
      });
    },
    get C431() {
      return C431 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "decoration",
        [_Location_column]: 11,
        [_Location_line]: 1528,
        [_Location_file]: null
      });
    },
    get C432() {
      return C432 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 11,
        [_Location_line]: 1529,
        [_Location_file]: null
      });
    },
    get C430() {
      return C430 = dart.constList([C431 || CT.C431, C432 || CT.C432], widget_inspector._Location);
    },
    get C429() {
      return C429 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C430 || CT.C430,
        [_Location_name]: null,
        [_Location_column]: 14,
        [_Location_line]: 1527,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/chart/base/chart_base.dart"
      });
    },
    get C435() {
      return C435 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "builder",
        [_Location_column]: 9,
        [_Location_line]: 1526,
        [_Location_file]: null
      });
    },
    get C434() {
      return C434 = dart.constList([C435 || CT.C435], widget_inspector._Location);
    },
    get C433() {
      return C433 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C434 || CT.C434,
        [_Location_name]: null,
        [_Location_column]: 12,
        [_Location_line]: 1525,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/chart/base/chart_base.dart"
      });
    },
    get C438() {
      return C438 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "decoration",
        [_Location_column]: 9,
        [_Location_line]: 1538,
        [_Location_file]: null
      });
    },
    get C439() {
      return C439 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 9,
        [_Location_line]: 1539,
        [_Location_file]: null
      });
    },
    get C437() {
      return C437 = dart.constList([C438 || CT.C438, C439 || CT.C439], widget_inspector._Location);
    },
    get C436() {
      return C436 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C437 || CT.C437,
        [_Location_name]: null,
        [_Location_column]: 12,
        [_Location_line]: 1537,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/chart/base/chart_base.dart"
      });
    },
    get C442() {
      return C442 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "children",
        [_Location_column]: 35,
        [_Location_line]: 1587,
        [_Location_file]: null
      });
    },
    get C441() {
      return C441 = dart.constList([C442 || CT.C442], widget_inspector._Location);
    },
    get C440() {
      return C440 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C441 || CT.C441,
        [_Location_name]: null,
        [_Location_column]: 29,
        [_Location_line]: 1587,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/chart/base/chart_base.dart"
      });
    },
    get C445() {
      return C445 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 22,
        [_Location_line]: 1587,
        [_Location_file]: null
      });
    },
    get C444() {
      return C444 = dart.constList([C445 || CT.C445], widget_inspector._Location);
    },
    get C443() {
      return C443 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C444 || CT.C444,
        [_Location_name]: null,
        [_Location_column]: 12,
        [_Location_line]: 1587,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/chart/base/chart_base.dart"
      });
    },
    get C448() {
      return C448 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "painter",
        [_Location_column]: 11,
        [_Location_line]: 1592,
        [_Location_file]: null
      });
    },
    get C447() {
      return C447 = dart.constList([C448 || CT.C448], widget_inspector._Location);
    },
    get C446() {
      return C446 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C447 || CT.C447,
        [_Location_name]: null,
        [_Location_column]: 25,
        [_Location_line]: 1591,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/chart/base/chart_base.dart"
      });
    },
    get C451() {
      return C451 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "painter",
        [_Location_column]: 13,
        [_Location_line]: 1621,
        [_Location_file]: null
      });
    },
    get C450() {
      return C450 = dart.constList([C451 || CT.C451], widget_inspector._Location);
    },
    get C449() {
      return C449 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C450 || CT.C450,
        [_Location_name]: null,
        [_Location_column]: 9,
        [_Location_line]: 1620,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/chart/base/chart_base.dart"
      });
    },
    get C454() {
      return C454 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "cartesianChart",
        [_Location_column]: 9,
        [_Location_line]: 1631,
        [_Location_file]: null
      });
    },
    get C455() {
      return C455 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "show",
        [_Location_column]: 32,
        [_Location_line]: 1631,
        [_Location_file]: null
      });
    },
    get C453() {
      return C453 = dart.constList([C454 || CT.C454, C455 || CT.C455], widget_inspector._Location);
    },
    get C452() {
      return C452 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C453 || CT.C453,
        [_Location_name]: null,
        [_Location_column]: 41,
        [_Location_line]: 1630,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/chart/base/chart_base.dart"
      });
    },
    get C458() {
      return C458 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "template",
        [_Location_column]: 13,
        [_Location_line]: 1666,
        [_Location_file]: null
      });
    },
    get C459() {
      return C459 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "templateIndex",
        [_Location_column]: 13,
        [_Location_line]: 1667,
        [_Location_file]: null
      });
    },
    get C460() {
      return C460 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "templateLength",
        [_Location_column]: 13,
        [_Location_line]: 1668,
        [_Location_file]: null
      });
    },
    get C461() {
      return C461 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "chart",
        [_Location_column]: 13,
        [_Location_line]: 1669,
        [_Location_file]: null
      });
    },
    get C457() {
      return C457 = dart.constList([C458 || CT.C458, C459 || CT.C459, C460 || CT.C460, C461 || CT.C461], widget_inspector._Location);
    },
    get C456() {
      return C456 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C457 || CT.C457,
        [_Location_name]: null,
        [_Location_column]: 27,
        [_Location_line]: 1665,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/chart/base/chart_base.dart"
      });
    },
    get C464() {
      return C464 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "painter",
        [_Location_column]: 9,
        [_Location_line]: 1827,
        [_Location_file]: null
      });
    },
    get C463() {
      return C463 = dart.constList([C464 || CT.C464], widget_inspector._Location);
    },
    get C462() {
      return C462 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C463 || CT.C463,
        [_Location_name]: null,
        [_Location_column]: 22,
        [_Location_line]: 1826,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/chart/base/chart_base.dart"
      });
    },
    get C467() {
      return C467 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 15,
        [_Location_line]: 1826,
        [_Location_file]: null
      });
    },
    get C466() {
      return C466 = dart.constList([C467 || CT.C467], widget_inspector._Location);
    },
    get C465() {
      return C465 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C466 || CT.C466,
        [_Location_name]: null,
        [_Location_column]: 18,
        [_Location_line]: 1825,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/chart/base/chart_base.dart"
      });
    },
    get C470() {
      return C470 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 11,
        [_Location_line]: 1825,
        [_Location_file]: null
      });
    },
    get C469() {
      return C469 = dart.constList([C470 || CT.C470], widget_inspector._Location);
    },
    get C468() {
      return C468 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C469 || CT.C469,
        [_Location_name]: null,
        [_Location_column]: 25,
        [_Location_line]: 1824,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/chart/base/chart_base.dart"
      });
    },
    get C473() {
      return C473 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "painter",
        [_Location_column]: 17,
        [_Location_line]: 1835,
        [_Location_file]: null
      });
    },
    get C472() {
      return C472 = dart.constList([C473 || CT.C473], widget_inspector._Location);
    },
    get C471() {
      return C471 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C472 || CT.C472,
        [_Location_name]: null,
        [_Location_column]: 20,
        [_Location_line]: 1834,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/chart/base/chart_base.dart"
      });
    },
    get C476() {
      return C476 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 13,
        [_Location_line]: 1834,
        [_Location_file]: null
      });
    },
    get C475() {
      return C475 = dart.constList([C476 || CT.C476], widget_inspector._Location);
    },
    get C474() {
      return C474 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C475 || CT.C475,
        [_Location_name]: null,
        [_Location_column]: 16,
        [_Location_line]: 1833,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/chart/base/chart_base.dart"
      });
    },
    get C479() {
      return C479 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "color",
        [_Location_column]: 9,
        [_Location_line]: 1832,
        [_Location_file]: null
      });
    },
    get C480() {
      return C480 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 9,
        [_Location_line]: 1833,
        [_Location_file]: null
      });
    },
    get C478() {
      return C478 = dart.constList([C479 || CT.C479, C480 || CT.C480], widget_inspector._Location);
    },
    get C477() {
      return C477 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C478 || CT.C478,
        [_Location_name]: null,
        [_Location_column]: 23,
        [_Location_line]: 1831,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/chart/base/chart_base.dart"
      });
    },
    get C483() {
      return C483 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "chart",
        [_Location_column]: 34,
        [_Location_line]: 1847,
        [_Location_file]: null
      });
    },
    get C484() {
      return C484 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "renderType",
        [_Location_column]: 48,
        [_Location_line]: 1847,
        [_Location_file]: null
      });
    },
    get C482() {
      return C482 = dart.constList([C483 || CT.C483, C484 || CT.C484], widget_inspector._Location);
    },
    get C481() {
      return C481 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C482 || CT.C482,
        [_Location_name]: null,
        [_Location_column]: 11,
        [_Location_line]: 1847,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/chart/base/chart_base.dart"
      });
    },
    get C487() {
      return C487 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "painter",
        [_Location_column]: 30,
        [_Location_line]: 2448,
        [_Location_file]: null
      });
    },
    get C486() {
      return C486 = dart.constList([C487 || CT.C487], widget_inspector._Location);
    },
    get C485() {
      return C485 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C486 || CT.C486,
        [_Location_name]: null,
        [_Location_column]: 18,
        [_Location_line]: 2448,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/chart/base/chart_base.dart"
      });
    },
    get C490() {
      return C490 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "height",
        [_Location_column]: 11,
        [_Location_line]: 2445,
        [_Location_file]: null
      });
    },
    get C491() {
      return C491 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "width",
        [_Location_column]: 11,
        [_Location_line]: 2446,
        [_Location_file]: null
      });
    },
    get C492() {
      return C492 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "decoration",
        [_Location_column]: 11,
        [_Location_line]: 2447,
        [_Location_file]: null
      });
    },
    get C493() {
      return C493 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 11,
        [_Location_line]: 2448,
        [_Location_file]: null
      });
    },
    get C489() {
      return C489 = dart.constList([C490 || CT.C490, C491 || CT.C491, C492 || CT.C492, C493 || CT.C493], widget_inspector._Location);
    },
    get C488() {
      return C488 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C489 || CT.C489,
        [_Location_name]: null,
        [_Location_column]: 25,
        [_Location_line]: 2444,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/chart/base/chart_base.dart"
      });
    },
    get C496() {
      return C496 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "painter",
        [_Location_column]: 30,
        [_Location_line]: 2459,
        [_Location_file]: null
      });
    },
    get C495() {
      return C495 = dart.constList([C496 || CT.C496], widget_inspector._Location);
    },
    get C494() {
      return C494 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C495 || CT.C495,
        [_Location_name]: null,
        [_Location_column]: 18,
        [_Location_line]: 2459,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/chart/base/chart_base.dart"
      });
    },
    get C499() {
      return C499 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "height",
        [_Location_column]: 11,
        [_Location_line]: 2456,
        [_Location_file]: null
      });
    },
    get C500() {
      return C500 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "width",
        [_Location_column]: 11,
        [_Location_line]: 2457,
        [_Location_file]: null
      });
    },
    get C501() {
      return C501 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "decoration",
        [_Location_column]: 11,
        [_Location_line]: 2458,
        [_Location_file]: null
      });
    },
    get C502() {
      return C502 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 11,
        [_Location_line]: 2459,
        [_Location_file]: null
      });
    },
    get C498() {
      return C498 = dart.constList([C499 || CT.C499, C500 || CT.C500, C501 || CT.C501, C502 || CT.C502], widget_inspector._Location);
    },
    get C497() {
      return C497 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C498 || CT.C498,
        [_Location_name]: null,
        [_Location_column]: 25,
        [_Location_line]: 2455,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/chart/base/chart_base.dart"
      });
    },
    get C505() {
      return C505 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "show",
        [_Location_column]: 13,
        [_Location_line]: 2466,
        [_Location_file]: null
      });
    },
    get C506() {
      return C506 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "clipRect",
        [_Location_column]: 26,
        [_Location_line]: 2466,
        [_Location_file]: null
      });
    },
    get C504() {
      return C504 = dart.constList([C505 || CT.C505, C506 || CT.C506], widget_inspector._Location);
    },
    get C503() {
      return C503 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C504 || CT.C504,
        [_Location_name]: null,
        [_Location_column]: 50,
        [_Location_line]: 2465,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/chart/base/chart_base.dart"
      });
    },
    get C509() {
      return C509 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "chartWidget",
        [_Location_column]: 35,
        [_Location_line]: 2470,
        [_Location_file]: null
      });
    },
    get C508() {
      return C508 = dart.constList([C509 || CT.C509], widget_inspector._Location);
    },
    get C507() {
      return C507 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C508 || CT.C508,
        [_Location_name]: null,
        [_Location_column]: 13,
        [_Location_line]: 2470,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/chart/base/chart_base.dart"
      });
    },
    get C512() {
      return C512 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "height",
        [_Location_column]: 17,
        [_Location_line]: 2532,
        [_Location_file]: null
      });
    },
    get C513() {
      return C513 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "width",
        [_Location_column]: 17,
        [_Location_line]: 2533,
        [_Location_file]: null
      });
    },
    get C514() {
      return C514 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "decoration",
        [_Location_column]: 17,
        [_Location_line]: 2534,
        [_Location_file]: null
      });
    },
    get C511() {
      return C511 = dart.constList([C512 || CT.C512, C513 || CT.C513, C514 || CT.C514], widget_inspector._Location);
    },
    get C510() {
      return C510 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C511 || CT.C511,
        [_Location_name]: null,
        [_Location_column]: 20,
        [_Location_line]: 2531,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/chart/base/chart_base.dart"
      });
    },
    get C517() {
      return C517 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "onTapDown",
        [_Location_column]: 13,
        [_Location_line]: 2499,
        [_Location_file]: null
      });
    },
    get C518() {
      return C518 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "onDoubleTap",
        [_Location_column]: 13,
        [_Location_line]: 2510,
        [_Location_file]: null
      });
    },
    get C519() {
      return C519 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "onLongPressMoveUpdate",
        [_Location_column]: 13,
        [_Location_line]: 2513,
        [_Location_file]: null
      });
    },
    get C520() {
      return C520 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "onLongPress",
        [_Location_column]: 13,
        [_Location_line]: 2516,
        [_Location_file]: null
      });
    },
    get C521() {
      return C521 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "onLongPressEnd",
        [_Location_column]: 13,
        [_Location_line]: 2519,
        [_Location_file]: null
      });
    },
    get C522() {
      return C522 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "onPanUpdate",
        [_Location_column]: 13,
        [_Location_line]: 2522,
        [_Location_file]: null
      });
    },
    get C523() {
      return C523 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "onPanEnd",
        [_Location_column]: 13,
        [_Location_line]: 2525,
        [_Location_file]: null
      });
    },
    get C524() {
      return C524 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "onPanDown",
        [_Location_column]: 13,
        [_Location_line]: 2528,
        [_Location_file]: null
      });
    },
    get C525() {
      return C525 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 13,
        [_Location_line]: 2531,
        [_Location_file]: null
      });
    },
    get C516() {
      return C516 = dart.constList([C517 || CT.C517, C518 || CT.C518, C519 || CT.C519, C520 || CT.C520, C521 || CT.C521, C522 || CT.C522, C523 || CT.C523, C524 || CT.C524, C525 || CT.C525], widget_inspector._Location);
    },
    get C515() {
      return C515 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C516 || CT.C516,
        [_Location_name]: null,
        [_Location_column]: 16,
        [_Location_line]: 2498,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/chart/base/chart_base.dart"
      });
    },
    get C528() {
      return C528 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "onPointerDown",
        [_Location_column]: 9,
        [_Location_line]: 2478,
        [_Location_file]: null
      });
    },
    get C529() {
      return C529 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "onPointerMove",
        [_Location_column]: 9,
        [_Location_line]: 2481,
        [_Location_file]: null
      });
    },
    get C530() {
      return C530 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "onPointerUp",
        [_Location_column]: 9,
        [_Location_line]: 2484,
        [_Location_file]: null
      });
    },
    get C531() {
      return C531 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "onPointerSignal",
        [_Location_column]: 9,
        [_Location_line]: 2493,
        [_Location_file]: null
      });
    },
    get C532() {
      return C532 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 9,
        [_Location_line]: 2498,
        [_Location_file]: null
      });
    },
    get C527() {
      return C527 = dart.constList([C528 || CT.C528, C529 || CT.C529, C530 || CT.C530, C531 || CT.C531, C532 || CT.C532], widget_inspector._Location);
    },
    get C526() {
      return C526 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C527 || CT.C527,
        [_Location_name]: null,
        [_Location_column]: 12,
        [_Location_line]: 2477,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/chart/base/chart_base.dart"
      });
    },
    get C535() {
      return C535 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "height",
        [_Location_column]: 13,
        [_Location_line]: 2540,
        [_Location_file]: null
      });
    },
    get C536() {
      return C536 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "width",
        [_Location_column]: 13,
        [_Location_line]: 2541,
        [_Location_file]: null
      });
    },
    get C537() {
      return C537 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "decoration",
        [_Location_column]: 13,
        [_Location_line]: 2542,
        [_Location_file]: null
      });
    },
    get C534() {
      return C534 = dart.constList([C535 || CT.C535, C536 || CT.C536, C537 || CT.C537], widget_inspector._Location);
    },
    get C533() {
      return C533 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C534 || CT.C534,
        [_Location_name]: null,
        [_Location_column]: 16,
        [_Location_line]: 2539,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/chart/base/chart_base.dart"
      });
    },
    get C540() {
      return C540 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 9,
        [_Location_line]: 2539,
        [_Location_file]: null
      });
    },
    get C541() {
      return C541 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "onHover",
        [_Location_column]: 9,
        [_Location_line]: 2543,
        [_Location_file]: null
      });
    },
    get C542() {
      return C542 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "onExit",
        [_Location_column]: 9,
        [_Location_line]: 2544,
        [_Location_file]: null
      });
    },
    get C539() {
      return C539 = dart.constList([C540 || CT.C540, C541 || CT.C541, C542 || CT.C542], widget_inspector._Location);
    },
    get C538() {
      return C538 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C539 || CT.C539,
        [_Location_name]: null,
        [_Location_column]: 12,
        [_Location_line]: 2538,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/chart/base/chart_base.dart"
      });
    },
    get C543() {
      return C543 = dart.fn(math.min, TAndTToT());
    },
    get C544() {
      return C544 = dart.fn(math.max, TAndTToT$());
    },
    get C545() {
      return C545 = dart.const({
        __proto__: charts.EmptyPointMode.prototype,
        [_name$]: "EmptyPointMode.gap",
        index: 0
      });
    },
    get C546() {
      return C546 = dart.const({
        __proto__: charts.EmptyPointMode.prototype,
        [_name$]: "EmptyPointMode.drop",
        index: 2
      });
    },
    get C548() {
      return C548 = dart.const({
        __proto__: ui.Radius.prototype,
        [Radius_y]: 0,
        [Radius_x]: 0
      });
    },
    get C547() {
      return C547 = dart.const({
        __proto__: border_radius.BorderRadius.prototype,
        [BorderRadius_bottomRight]: C548 || CT.C548,
        [BorderRadius_bottomLeft]: C548 || CT.C548,
        [BorderRadius_topRight]: C548 || CT.C548,
        [BorderRadius_topLeft]: C548 || CT.C548
      });
    },
    get C549() {
      return C549 = dart.const({
        __proto__: charts.ChartDataLabelAlignment.prototype,
        [_name$]: "ChartDataLabelAlignment.auto",
        index: 0
      });
    },
    get C550() {
      return C550 = dart.const({
        __proto__: edge_insets.EdgeInsets.prototype,
        [EdgeInsets_bottom]: 5,
        [EdgeInsets_right]: 5,
        [EdgeInsets_top]: 5,
        [EdgeInsets_left]: 5
      });
    },
    get C551() {
      return C551 = dart.const({
        __proto__: charts.DataMarkerType.prototype,
        [_name$]: "DataMarkerType.circle",
        index: 0
      });
    },
    get C552() {
      return C552 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C14 || CT.C14,
        [_Location_name]: null,
        [_Location_column]: 11,
        [_Location_line]: 69,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/chart/common/renderer.dart"
      });
    },
    get C553() {
      return C553 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C343 || CT.C343,
        [_Location_name]: null,
        [_Location_column]: 20,
        [_Location_line]: 71,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/chart/common/renderer.dart"
      });
    },
    get C554() {
      return C554 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C346 || CT.C346,
        [_Location_name]: null,
        [_Location_column]: 11,
        [_Location_line]: 70,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/chart/common/renderer.dart"
      });
    },
    get C555() {
      return C555 = dart.const({
        __proto__: charts.TrendlineType.prototype,
        [_name$]: "TrendlineType.linear",
        index: 0
      });
    },
    get C556() {
      return C556 = dart.const({
        __proto__: charts.TrendlineType.prototype,
        [_name$]: "TrendlineType.exponential",
        index: 1
      });
    },
    get C557() {
      return C557 = dart.const({
        __proto__: charts.TrendlineType.prototype,
        [_name$]: "TrendlineType.power",
        index: 2
      });
    },
    get C558() {
      return C558 = dart.const({
        __proto__: charts.TrendlineType.prototype,
        [_name$]: "TrendlineType.logarithmic",
        index: 3
      });
    },
    get C559() {
      return C559 = dart.const({
        __proto__: charts.TrendlineType.prototype,
        [_name$]: "TrendlineType.polynomial",
        index: 4
      });
    },
    get C560() {
      return C560 = dart.const({
        __proto__: charts.TrendlineType.prototype,
        [_name$]: "TrendlineType.movingAverage",
        index: 5
      });
    },
    get C563() {
      return C563 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "painter",
        [_Location_column]: 41,
        [_Location_line]: 85,
        [_Location_file]: null
      });
    },
    get C562() {
      return C562 = dart.constList([C563 || CT.C563], widget_inspector._Location);
    },
    get C561() {
      return C561 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C562 || CT.C562,
        [_Location_name]: null,
        [_Location_column]: 29,
        [_Location_line]: 85,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/chart/user_interaction/tooltip_painter.dart"
      });
    },
    get C566() {
      return C566 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 22,
        [_Location_line]: 85,
        [_Location_file]: null
      });
    },
    get C565() {
      return C565 = dart.constList([C566 || CT.C566], widget_inspector._Location);
    },
    get C564() {
      return C564 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C565 || CT.C565,
        [_Location_name]: null,
        [_Location_column]: 12,
        [_Location_line]: 85,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/chart/user_interaction/tooltip_painter.dart"
      });
    },
    get C567() {
      return C567 = dart.const({
        __proto__: ui.Offset.prototype,
        [OffsetBase__dy]: 2,
        [OffsetBase__dx]: 2
      });
    },
    get C568() {
      return C568 = dart.const({
        __proto__: ui.Offset.prototype,
        [OffsetBase__dy]: 0,
        [OffsetBase__dx]: 0
      });
    },
    get C571() {
      return C571 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 52,
        [_Location_line]: 91,
        [_Location_file]: null
      });
    },
    get C570() {
      return C570 = dart.constList([C571 || CT.C571], widget_inspector._Location);
    },
    get C569() {
      return C569 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C570 || CT.C570,
        [_Location_name]: null,
        [_Location_column]: 42,
        [_Location_line]: 91,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/chart/user_interaction/tooltip_template.dart"
      });
    },
    get C574() {
      return C574 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "opacity",
        [_Location_column]: 21,
        [_Location_line]: 91,
        [_Location_file]: null
      });
    },
    get C575() {
      return C575 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 35,
        [_Location_line]: 91,
        [_Location_file]: null
      });
    },
    get C573() {
      return C573 = dart.constList([C574 || CT.C574, C575 || CT.C575], widget_inspector._Location);
    },
    get C572() {
      return C572 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C573 || CT.C573,
        [_Location_name]: null,
        [_Location_column]: 13,
        [_Location_line]: 91,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/chart/user_interaction/tooltip_template.dart"
      });
    },
    get C578() {
      return C578 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "margin",
        [_Location_column]: 17,
        [_Location_line]: 106,
        [_Location_file]: null
      });
    },
    get C579() {
      return C579 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 17,
        [_Location_line]: 107,
        [_Location_file]: null
      });
    },
    get C577() {
      return C577 = dart.constList([C578 || CT.C578, C579 || CT.C579], widget_inspector._Location);
    },
    get C576() {
      return C576 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C577 || CT.C577,
        [_Location_name]: null,
        [_Location_column]: 20,
        [_Location_line]: 105,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/chart/user_interaction/tooltip_template.dart"
      });
    },
    get C582() {
      return C582 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "opacity",
        [_Location_column]: 30,
        [_Location_line]: 109,
        [_Location_file]: null
      });
    },
    get C583() {
      return C583 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 64,
        [_Location_line]: 109,
        [_Location_file]: null
      });
    },
    get C581() {
      return C581 = dart.constList([C582 || CT.C582, C583 || CT.C583], widget_inspector._Location);
    },
    get C580() {
      return C580 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C581 || CT.C581,
        [_Location_name]: null,
        [_Location_column]: 22,
        [_Location_line]: 109,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/chart/user_interaction/tooltip_template.dart"
      });
    },
    get C586() {
      return C586 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "animation",
        [_Location_column]: 13,
        [_Location_line]: 104,
        [_Location_file]: null
      });
    },
    get C587() {
      return C587 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 13,
        [_Location_line]: 105,
        [_Location_file]: null
      });
    },
    get C588() {
      return C588 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "builder",
        [_Location_column]: 13,
        [_Location_line]: 108,
        [_Location_file]: null
      });
    },
    get C585() {
      return C585 = dart.constList([C586 || CT.C586, C587 || CT.C587, C588 || CT.C588], widget_inspector._Location);
    },
    get C584() {
      return C584 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C585 || CT.C585,
        [_Location_name]: null,
        [_Location_column]: 25,
        [_Location_line]: 103,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/chart/user_interaction/tooltip_template.dart"
      });
    },
    get C589() {
      return C589 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C14 || CT.C14,
        [_Location_name]: null,
        [_Location_column]: 23,
        [_Location_line]: 113,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/chart/user_interaction/tooltip_template.dart"
      });
    },
    get C590() {
      return C590 = dart.const({
        __proto__: core.Duration.prototype,
        [Duration__duration]: 2000000
      });
    },
    get C591() {
      return C591 = dart.const({
        __proto__: charts.ZoomMode.prototype,
        [_name$]: "ZoomMode.xy",
        index: 2
      });
    },
    get C592() {
      return C592 = dart.constList([C350 || CT.C350, C349 || CT.C349], charts.AxisOrientation);
    },
    get C593() {
      return C593 = dart.const({
        __proto__: charts.ChartRangePadding.prototype,
        [_name$]: "ChartRangePadding.auto",
        index: 0
      });
    },
    get C594() {
      return C594 = dart.const({
        __proto__: charts.ChartRangePadding.prototype,
        [_name$]: "ChartRangePadding.none",
        index: 1
      });
    },
    get C595() {
      return C595 = dart.const({
        __proto__: charts.ChartRangePadding.prototype,
        [_name$]: "ChartRangePadding.normal",
        index: 2
      });
    },
    get C596() {
      return C596 = dart.const({
        __proto__: charts.ChartRangePadding.prototype,
        [_name$]: "ChartRangePadding.additional",
        index: 3
      });
    },
    get C597() {
      return C597 = dart.const({
        __proto__: charts.ChartRangePadding.prototype,
        [_name$]: "ChartRangePadding.round",
        index: 4
      });
    },
    get C598() {
      return C598 = dart.constList([C593 || CT.C593, C594 || CT.C594, C595 || CT.C595, C596 || CT.C596, C597 || CT.C597], charts.ChartRangePadding);
    },
    get C599() {
      return C599 = dart.const({
        __proto__: charts.LabelPlacement.prototype,
        [_name$]: "LabelPlacement.betweenTicks",
        index: 0
      });
    },
    get C600() {
      return C600 = dart.const({
        __proto__: charts.LabelPlacement.prototype,
        [_name$]: "LabelPlacement.onTicks",
        index: 1
      });
    },
    get C601() {
      return C601 = dart.constList([C599 || CT.C599, C600 || CT.C600], charts.LabelPlacement);
    },
    get C602() {
      return C602 = dart.const({
        __proto__: charts.AxisLabelIntersectAction.prototype,
        [_name$]: "AxisLabelIntersectAction.none",
        index: 0
      });
    },
    get C603() {
      return C603 = dart.const({
        __proto__: charts.AxisLabelIntersectAction.prototype,
        [_name$]: "AxisLabelIntersectAction.hide",
        index: 1
      });
    },
    get C604() {
      return C604 = dart.constList([C602 || CT.C602, C603 || CT.C603, C354 || CT.C354, C351 || CT.C351, C352 || CT.C352, C353 || CT.C353], charts.AxisLabelIntersectAction);
    },
    get C605() {
      return C605 = dart.constList([C370 || CT.C370, C364 || CT.C364, C365 || CT.C365, C366 || CT.C366, C367 || CT.C367, C368 || CT.C368, C369 || CT.C369], charts.DateTimeIntervalType);
    },
    get C606() {
      return C606 = dart.const({
        __proto__: charts.ChartDataLabelPosition.prototype,
        [_name$]: "ChartDataLabelPosition.inside",
        index: 0
      });
    },
    get C607() {
      return C607 = dart.const({
        __proto__: charts.ChartDataLabelPosition.prototype,
        [_name$]: "ChartDataLabelPosition.outside",
        index: 1
      });
    },
    get C608() {
      return C608 = dart.constList([C606 || CT.C606, C607 || CT.C607], charts.ChartDataLabelPosition);
    },
    get C609() {
      return C609 = dart.const({
        __proto__: charts.DataMarkerType.prototype,
        [_name$]: "DataMarkerType.rectangle",
        index: 1
      });
    },
    get C610() {
      return C610 = dart.const({
        __proto__: charts.DataMarkerType.prototype,
        [_name$]: "DataMarkerType.image",
        index: 2
      });
    },
    get C611() {
      return C611 = dart.const({
        __proto__: charts.DataMarkerType.prototype,
        [_name$]: "DataMarkerType.pentagon",
        index: 3
      });
    },
    get C612() {
      return C612 = dart.const({
        __proto__: charts.DataMarkerType.prototype,
        [_name$]: "DataMarkerType.verticalLine",
        index: 4
      });
    },
    get C613() {
      return C613 = dart.const({
        __proto__: charts.DataMarkerType.prototype,
        [_name$]: "DataMarkerType.horizontalLine",
        index: 5
      });
    },
    get C614() {
      return C614 = dart.const({
        __proto__: charts.DataMarkerType.prototype,
        [_name$]: "DataMarkerType.diamond",
        index: 6
      });
    },
    get C615() {
      return C615 = dart.const({
        __proto__: charts.DataMarkerType.prototype,
        [_name$]: "DataMarkerType.triangle",
        index: 7
      });
    },
    get C616() {
      return C616 = dart.const({
        __proto__: charts.DataMarkerType.prototype,
        [_name$]: "DataMarkerType.invertedTriangle",
        index: 8
      });
    },
    get C617() {
      return C617 = dart.const({
        __proto__: charts.DataMarkerType.prototype,
        [_name$]: "DataMarkerType.none",
        index: 9
      });
    },
    get C618() {
      return C618 = dart.constList([C551 || CT.C551, C609 || CT.C609, C610 || CT.C610, C611 || CT.C611, C612 || CT.C612, C613 || CT.C613, C614 || CT.C614, C615 || CT.C615, C616 || CT.C616, C617 || CT.C617], charts.DataMarkerType);
    },
    get C619() {
      return C619 = dart.const({
        __proto__: charts.SplineType.prototype,
        [_name$]: "SplineType.natural",
        index: 0
      });
    },
    get C620() {
      return C620 = dart.const({
        __proto__: charts.SplineType.prototype,
        [_name$]: "SplineType.monotonic",
        index: 1
      });
    },
    get C621() {
      return C621 = dart.const({
        __proto__: charts.SplineType.prototype,
        [_name$]: "SplineType.cardinal",
        index: 2
      });
    },
    get C622() {
      return C622 = dart.const({
        __proto__: charts.SplineType.prototype,
        [_name$]: "SplineType.clamped",
        index: 3
      });
    },
    get C623() {
      return C623 = dart.constList([C619 || CT.C619, C620 || CT.C620, C621 || CT.C621, C622 || CT.C622], charts.SplineType);
    },
    get C624() {
      return C624 = dart.const({
        __proto__: charts.EdgeLabelPlacement.prototype,
        [_name$]: "EdgeLabelPlacement.none",
        index: 0
      });
    },
    get C625() {
      return C625 = dart.const({
        __proto__: charts.EdgeLabelPlacement.prototype,
        [_name$]: "EdgeLabelPlacement.hide",
        index: 1
      });
    },
    get C626() {
      return C626 = dart.const({
        __proto__: charts.EdgeLabelPlacement.prototype,
        [_name$]: "EdgeLabelPlacement.shift",
        index: 2
      });
    },
    get C627() {
      return C627 = dart.constList([C624 || CT.C624, C625 || CT.C625, C626 || CT.C626], charts.EdgeLabelPlacement);
    },
    get C628() {
      return C628 = dart.constList([C545 || CT.C545, C121 || CT.C121, C546 || CT.C546, C120 || CT.C120], charts.EmptyPointMode);
    },
    get C629() {
      return C629 = dart.const({
        __proto__: charts.SortingOrder.prototype,
        [_name$]: "SortingOrder.ascending",
        index: 0
      });
    },
    get C630() {
      return C630 = dart.const({
        __proto__: charts.SortingOrder.prototype,
        [_name$]: "SortingOrder.descending",
        index: 1
      });
    },
    get C631() {
      return C631 = dart.const({
        __proto__: charts.SortingOrder.prototype,
        [_name$]: "SortingOrder.none",
        index: 2
      });
    },
    get C632() {
      return C632 = dart.constList([C629 || CT.C629, C630 || CT.C630, C631 || CT.C631], charts.SortingOrder);
    },
    get C633() {
      return C633 = dart.const({
        __proto__: charts.TickPosition.prototype,
        [_name$]: "TickPosition.inside",
        index: 0
      });
    },
    get C634() {
      return C634 = dart.const({
        __proto__: charts.TickPosition.prototype,
        [_name$]: "TickPosition.outside",
        index: 1
      });
    },
    get C635() {
      return C635 = dart.constList([C633 || CT.C633, C634 || CT.C634], charts.TickPosition);
    },
    get C636() {
      return C636 = dart.constList([C555 || CT.C555, C556 || CT.C556, C557 || CT.C557, C558 || CT.C558, C559 || CT.C559, C560 || CT.C560], charts.TrendlineType);
    },
    get C637() {
      return C637 = dart.const({
        __proto__: charts.ActivationMode.prototype,
        [_name$]: "ActivationMode.singleTap",
        index: 0
      });
    },
    get C638() {
      return C638 = dart.const({
        __proto__: charts.ActivationMode.prototype,
        [_name$]: "ActivationMode.doubleTap",
        index: 1
      });
    },
    get C639() {
      return C639 = dart.const({
        __proto__: charts.ActivationMode.prototype,
        [_name$]: "ActivationMode.longPress",
        index: 2
      });
    },
    get C640() {
      return C640 = dart.const({
        __proto__: charts.ActivationMode.prototype,
        [_name$]: "ActivationMode.none",
        index: 3
      });
    },
    get C641() {
      return C641 = dart.constList([C637 || CT.C637, C638 || CT.C638, C639 || CT.C639, C640 || CT.C640], charts.ActivationMode);
    },
    get C642() {
      return C642 = dart.const({
        __proto__: charts.TrackballDisplayMode.prototype,
        [_name$]: "TrackballDisplayMode.none",
        index: 0
      });
    },
    get C643() {
      return C643 = dart.const({
        __proto__: charts.TrackballDisplayMode.prototype,
        [_name$]: "TrackballDisplayMode.floatAllPoints",
        index: 1
      });
    },
    get C644() {
      return C644 = dart.const({
        __proto__: charts.TrackballDisplayMode.prototype,
        [_name$]: "TrackballDisplayMode.groupAllPoints",
        index: 2
      });
    },
    get C645() {
      return C645 = dart.const({
        __proto__: charts.TrackballDisplayMode.prototype,
        [_name$]: "TrackballDisplayMode.nearestPoint",
        index: 3
      });
    },
    get C646() {
      return C646 = dart.constList([C642 || CT.C642, C643 || CT.C643, C644 || CT.C644, C645 || CT.C645], charts.TrackballDisplayMode);
    },
    get C647() {
      return C647 = dart.const({
        __proto__: charts.CrosshairLineType.prototype,
        [_name$]: "CrosshairLineType.both",
        index: 0
      });
    },
    get C648() {
      return C648 = dart.const({
        __proto__: charts.CrosshairLineType.prototype,
        [_name$]: "CrosshairLineType.horizontal",
        index: 1
      });
    },
    get C649() {
      return C649 = dart.const({
        __proto__: charts.CrosshairLineType.prototype,
        [_name$]: "CrosshairLineType.vertical",
        index: 2
      });
    },
    get C650() {
      return C650 = dart.const({
        __proto__: charts.CrosshairLineType.prototype,
        [_name$]: "CrosshairLineType.none",
        index: 3
      });
    },
    get C651() {
      return C651 = dart.constList([C647 || CT.C647, C648 || CT.C648, C649 || CT.C649, C650 || CT.C650], charts.CrosshairLineType);
    },
    get C652() {
      return C652 = dart.const({
        __proto__: charts.TrackballLineType.prototype,
        [_name$]: "TrackballLineType.vertical",
        index: 0
      });
    },
    get C653() {
      return C653 = dart.const({
        __proto__: charts.TrackballLineType.prototype,
        [_name$]: "TrackballLineType.horizontal",
        index: 1
      });
    },
    get C654() {
      return C654 = dart.const({
        __proto__: charts.TrackballLineType.prototype,
        [_name$]: "TrackballLineType.none",
        index: 2
      });
    },
    get C655() {
      return C655 = dart.constList([C652 || CT.C652, C653 || CT.C653, C654 || CT.C654], charts.TrackballLineType);
    },
    get C656() {
      return C656 = dart.const({
        __proto__: charts.ZoomMode.prototype,
        [_name$]: "ZoomMode.x",
        index: 0
      });
    },
    get C657() {
      return C657 = dart.const({
        __proto__: charts.ZoomMode.prototype,
        [_name$]: "ZoomMode.y",
        index: 1
      });
    },
    get C658() {
      return C658 = dart.constList([C656 || CT.C656, C657 || CT.C657, C591 || CT.C591], charts.ZoomMode);
    },
    get C659() {
      return C659 = dart.const({
        __proto__: charts.SelectionType.prototype,
        [_name$]: "SelectionType.point",
        index: 0
      });
    },
    get C660() {
      return C660 = dart.const({
        __proto__: charts.SelectionType.prototype,
        [_name$]: "SelectionType.series",
        index: 1
      });
    },
    get C661() {
      return C661 = dart.const({
        __proto__: charts.SelectionType.prototype,
        [_name$]: "SelectionType.cluster",
        index: 2
      });
    },
    get C662() {
      return C662 = dart.constList([C659 || CT.C659, C660 || CT.C660, C661 || CT.C661], charts.SelectionType);
    },
    get C663() {
      return C663 = dart.const({
        __proto__: charts.CoordinateUnit.prototype,
        [_name$]: "CoordinateUnit.point",
        index: 0
      });
    },
    get C664() {
      return C664 = dart.const({
        __proto__: charts.CoordinateUnit.prototype,
        [_name$]: "CoordinateUnit.logicalPixel",
        index: 1
      });
    },
    get C665() {
      return C665 = dart.constList([C663 || CT.C663, C664 || CT.C664], charts.CoordinateUnit);
    },
    get C666() {
      return C666 = dart.const({
        __proto__: charts.AnnotationRegion.prototype,
        [_name$]: "AnnotationRegion.chart",
        index: 0
      });
    },
    get C667() {
      return C667 = dart.const({
        __proto__: charts.AnnotationRegion.prototype,
        [_name$]: "AnnotationRegion.plotArea",
        index: 1
      });
    },
    get C668() {
      return C668 = dart.constList([C666 || CT.C666, C667 || CT.C667], charts.AnnotationRegion);
    },
    get C669() {
      return C669 = dart.const({
        __proto__: charts.BorderDrawMode.prototype,
        [_name$]: "BorderDrawMode.all",
        index: 0
      });
    },
    get C670() {
      return C670 = dart.const({
        __proto__: charts.BorderDrawMode.prototype,
        [_name$]: "BorderDrawMode.top",
        index: 1
      });
    },
    get C671() {
      return C671 = dart.const({
        __proto__: charts.BorderDrawMode.prototype,
        [_name$]: "BorderDrawMode.excludeBottom",
        index: 2
      });
    },
    get C672() {
      return C672 = dart.constList([C669 || CT.C669, C670 || CT.C670, C671 || CT.C671], charts.BorderDrawMode);
    },
    get C673() {
      return C673 = dart.const({
        __proto__: charts.RangeAreaBorderMode.prototype,
        [_name$]: "RangeAreaBorderMode.all",
        index: 0
      });
    },
    get C674() {
      return C674 = dart.const({
        __proto__: charts.RangeAreaBorderMode.prototype,
        [_name$]: "RangeAreaBorderMode.excludeSides",
        index: 1
      });
    },
    get C675() {
      return C675 = dart.constList([C673 || CT.C673, C674 || CT.C674], charts.RangeAreaBorderMode);
    },
    get C676() {
      return C676 = dart.const({
        __proto__: charts.TextAnchor.prototype,
        [_name$]: "TextAnchor.start",
        index: 0
      });
    },
    get C677() {
      return C677 = dart.const({
        __proto__: charts.TextAnchor.prototype,
        [_name$]: "TextAnchor.middle",
        index: 1
      });
    },
    get C678() {
      return C678 = dart.const({
        __proto__: charts.TextAnchor.prototype,
        [_name$]: "TextAnchor.end",
        index: 2
      });
    },
    get C679() {
      return C679 = dart.constList([C676 || CT.C676, C677 || CT.C677, C678 || CT.C678], charts.TextAnchor);
    },
    get C680() {
      return C680 = dart.const({
        __proto__: charts.TooltipPosition.prototype,
        [_name$]: "TooltipPosition.auto",
        index: 0
      });
    },
    get C681() {
      return C681 = dart.const({
        __proto__: charts.TooltipPosition.prototype,
        [_name$]: "TooltipPosition.pointer",
        index: 1
      });
    },
    get C682() {
      return C682 = dart.constList([C680 || CT.C680, C681 || CT.C681], charts.TooltipPosition);
    },
    get C683() {
      return C683 = dart.const({
        __proto__: charts.MacdType.prototype,
        [_name$]: "MacdType.both",
        index: 0
      });
    },
    get C684() {
      return C684 = dart.const({
        __proto__: charts.MacdType.prototype,
        [_name$]: "MacdType.line",
        index: 1
      });
    },
    get C685() {
      return C685 = dart.const({
        __proto__: charts.MacdType.prototype,
        [_name$]: "MacdType.histogram",
        index: 2
      });
    },
    get C686() {
      return C686 = dart.constList([C683 || CT.C683, C684 || CT.C684, C685 || CT.C685], charts.MacdType);
    },
    get C687() {
      return C687 = dart.const({
        __proto__: charts.LabelAlignment.prototype,
        [_name$]: "LabelAlignment.far",
        index: 0
      });
    },
    get C688() {
      return C688 = dart.const({
        __proto__: charts.LabelAlignment.prototype,
        [_name$]: "LabelAlignment.near",
        index: 1
      });
    },
    get C689() {
      return C689 = dart.const({
        __proto__: charts.LabelAlignment.prototype,
        [_name$]: "LabelAlignment.center",
        index: 2
      });
    },
    get C690() {
      return C690 = dart.constList([C687 || CT.C687, C688 || CT.C688, C689 || CT.C689], charts.LabelAlignment);
    },
    get C691() {
      return C691 = dart.const({
        __proto__: ui.FontStyle.prototype,
        [_name$0]: "FontStyle.normal",
        index: 0
      });
    },
    get C692() {
      return C692 = dart.const({
        __proto__: ui.FontWeight.prototype,
        [FontWeight_index]: 3
      });
    },
    get C695() {
      return C695 = dart.const({
        __proto__: ui.Color.prototype,
        [Color_value]: 4294638330.0
      });
    },
    get C696() {
      return C696 = dart.const({
        __proto__: ui.Color.prototype,
        [Color_value]: 4294309365.0
      });
    },
    get C697() {
      return C697 = dart.const({
        __proto__: ui.Color.prototype,
        [Color_value]: 4292927712.0
      });
    },
    get C698() {
      return C698 = dart.const({
        __proto__: ui.Color.prototype,
        [Color_value]: 4292269782.0
      });
    },
    get C699() {
      return C699 = dart.const({
        __proto__: ui.Color.prototype,
        [Color_value]: 4290624957.0
      });
    },
    get C700() {
      return C700 = dart.const({
        __proto__: ui.Color.prototype,
        [Color_value]: 4288585374.0
      });
    },
    get C701() {
      return C701 = dart.const({
        __proto__: ui.Color.prototype,
        [Color_value]: 4285887861.0
      });
    },
    get C702() {
      return C702 = dart.const({
        __proto__: ui.Color.prototype,
        [Color_value]: 4284572001.0
      });
    },
    get C703() {
      return C703 = dart.const({
        __proto__: ui.Color.prototype,
        [Color_value]: 4282532418.0
      });
    },
    get C704() {
      return C704 = dart.const({
        __proto__: ui.Color.prototype,
        [Color_value]: 4281348144.0
      });
    },
    get C705() {
      return C705 = dart.const({
        __proto__: ui.Color.prototype,
        [Color_value]: 4280361249.0
      });
    },
    get C694() {
      return C694 = dart.constMap(core.int, ui.Color, [50, C695 || CT.C695, 100, C696 || CT.C696, 200, C11 || CT.C11, 300, C697 || CT.C697, 350, C698 || CT.C698, 400, C699 || CT.C699, 500, C700 || CT.C700, 600, C701 || CT.C701, 700, C702 || CT.C702, 800, C703 || CT.C703, 850, C704 || CT.C704, 900, C705 || CT.C705]);
    },
    get C693() {
      return C693 = dart.const({
        __proto__: colors$.MaterialColor.prototype,
        [Color_value]: 4288585374.0,
        [ColorSwatch__swatch]: C694 || CT.C694
      });
    },
    get C708() {
      return C708 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "index",
        [_Location_column]: 15,
        [_Location_line]: 357,
        [_Location_file]: null
      });
    },
    get C709() {
      return C709 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "template",
        [_Location_column]: 15,
        [_Location_line]: 358,
        [_Location_file]: null
      });
    },
    get C710() {
      return C710 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "size",
        [_Location_column]: 15,
        [_Location_line]: 359,
        [_Location_file]: null
      });
    },
    get C711() {
      return C711 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "chart",
        [_Location_column]: 15,
        [_Location_line]: 360,
        [_Location_file]: null
      });
    },
    get C707() {
      return C707 = dart.constList([C708 || CT.C708, C709 || CT.C709, C710 || CT.C710, C711 || CT.C711], widget_inspector._Location);
    },
    get C706() {
      return C706 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C707 || CT.C707,
        [_Location_name]: null,
        [_Location_column]: 29,
        [_Location_line]: 356,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/legend/legend.dart"
      });
    },
    get C714() {
      return C714 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "index",
        [_Location_column]: 15,
        [_Location_line]: 370,
        [_Location_file]: null
      });
    },
    get C715() {
      return C715 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "size",
        [_Location_column]: 25,
        [_Location_line]: 370,
        [_Location_file]: null
      });
    },
    get C716() {
      return C716 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "chart",
        [_Location_column]: 57,
        [_Location_line]: 370,
        [_Location_file]: null
      });
    },
    get C713() {
      return C713 = dart.constList([C714 || CT.C714, C715 || CT.C715, C716 || CT.C716], widget_inspector._Location);
    },
    get C712() {
      return C712 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C713 || CT.C713,
        [_Location_name]: null,
        [_Location_column]: 29,
        [_Location_line]: 369,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/legend/legend.dart"
      });
    },
    get C719() {
      return C719 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "direction",
        [_Location_column]: 26,
        [_Location_line]: 407,
        [_Location_file]: null
      });
    },
    get C720() {
      return C720 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "children",
        [_Location_column]: 54,
        [_Location_line]: 407,
        [_Location_file]: null
      });
    },
    get C718() {
      return C718 = dart.constList([C719 || CT.C719, C720 || CT.C720], widget_inspector._Location);
    },
    get C717() {
      return C717 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C718 || CT.C718,
        [_Location_name]: null,
        [_Location_column]: 21,
        [_Location_line]: 407,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/legend/legend.dart"
      });
    },
    get C723() {
      return C723 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "direction",
        [_Location_column]: 26,
        [_Location_line]: 408,
        [_Location_file]: null
      });
    },
    get C724() {
      return C724 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "children",
        [_Location_column]: 52,
        [_Location_line]: 408,
        [_Location_file]: null
      });
    },
    get C722() {
      return C722 = dart.constList([C723 || CT.C723, C724 || CT.C724], widget_inspector._Location);
    },
    get C721() {
      return C721 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C722 || CT.C722,
        [_Location_name]: null,
        [_Location_column]: 21,
        [_Location_line]: 408,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/legend/legend.dart"
      });
    },
    get C727() {
      return C727 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "scrollDirection",
        [_Location_column]: 15,
        [_Location_line]: 402,
        [_Location_file]: null
      });
    },
    get C728() {
      return C728 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 15,
        [_Location_line]: 406,
        [_Location_file]: null
      });
    },
    get C726() {
      return C726 = dart.constList([C727 || CT.C727, C728 || CT.C728], widget_inspector._Location);
    },
    get C725() {
      return C725 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C726 || CT.C726,
        [_Location_name]: null,
        [_Location_column]: 18,
        [_Location_line]: 401,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/legend/legend.dart"
      });
    },
    get C731() {
      return C731 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "height",
        [_Location_column]: 11,
        [_Location_line]: 398,
        [_Location_file]: null
      });
    },
    get C732() {
      return C732 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 11,
        [_Location_line]: 401,
        [_Location_file]: null
      });
    },
    get C730() {
      return C730 = dart.constList([C731 || CT.C731, C732 || CT.C732], widget_inspector._Location);
    },
    get C729() {
      return C729 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C730 || CT.C730,
        [_Location_name]: null,
        [_Location_column]: 16,
        [_Location_line]: 397,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/legend/legend.dart"
      });
    },
    get C735() {
      return C735 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "children",
        [_Location_column]: 25,
        [_Location_line]: 420,
        [_Location_file]: null
      });
    },
    get C734() {
      return C734 = dart.constList([C735 || CT.C735], widget_inspector._Location);
    },
    get C733() {
      return C733 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C734 || CT.C734,
        [_Location_name]: null,
        [_Location_column]: 21,
        [_Location_line]: 420,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/legend/legend.dart"
      });
    },
    get C738() {
      return C738 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "children",
        [_Location_column]: 28,
        [_Location_line]: 421,
        [_Location_file]: null
      });
    },
    get C737() {
      return C737 = dart.constList([C738 || CT.C738], widget_inspector._Location);
    },
    get C736() {
      return C736 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C737 || CT.C737,
        [_Location_name]: null,
        [_Location_column]: 21,
        [_Location_line]: 421,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/legend/legend.dart"
      });
    },
    get C741() {
      return C741 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "scrollDirection",
        [_Location_column]: 15,
        [_Location_line]: 415,
        [_Location_file]: null
      });
    },
    get C742() {
      return C742 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 15,
        [_Location_line]: 419,
        [_Location_file]: null
      });
    },
    get C740() {
      return C740 = dart.constList([C741 || CT.C741, C742 || CT.C742], widget_inspector._Location);
    },
    get C739() {
      return C739 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C740 || CT.C740,
        [_Location_name]: null,
        [_Location_column]: 18,
        [_Location_line]: 414,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/legend/legend.dart"
      });
    },
    get C745() {
      return C745 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "height",
        [_Location_column]: 11,
        [_Location_line]: 411,
        [_Location_file]: null
      });
    },
    get C746() {
      return C746 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 11,
        [_Location_line]: 414,
        [_Location_file]: null
      });
    },
    get C744() {
      return C744 = dart.constList([C745 || CT.C745, C746 || CT.C746], widget_inspector._Location);
    },
    get C743() {
      return C743 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C744 || CT.C744,
        [_Location_name]: null,
        [_Location_column]: 16,
        [_Location_line]: 410,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/legend/legend.dart"
      });
    },
    get C749() {
      return C749 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "children",
        [_Location_column]: 21,
        [_Location_line]: 428,
        [_Location_file]: null
      });
    },
    get C748() {
      return C748 = dart.constList([C749 || CT.C749], widget_inspector._Location);
    },
    get C747() {
      return C747 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C748 || CT.C748,
        [_Location_name]: null,
        [_Location_column]: 17,
        [_Location_line]: 428,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/legend/legend.dart"
      });
    },
    get C752() {
      return C752 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "children",
        [_Location_column]: 24,
        [_Location_line]: 429,
        [_Location_file]: null
      });
    },
    get C751() {
      return C751 = dart.constList([C752 || CT.C752], widget_inspector._Location);
    },
    get C750() {
      return C750 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C751 || CT.C751,
        [_Location_name]: null,
        [_Location_column]: 17,
        [_Location_line]: 429,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/legend/legend.dart"
      });
    },
    get C755() {
      return C755 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "height",
        [_Location_column]: 11,
        [_Location_line]: 424,
        [_Location_file]: null
      });
    },
    get C756() {
      return C756 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 11,
        [_Location_line]: 427,
        [_Location_file]: null
      });
    },
    get C754() {
      return C754 = dart.constList([C755 || CT.C755, C756 || CT.C756], widget_inspector._Location);
    },
    get C753() {
      return C753 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C754 || CT.C754,
        [_Location_name]: null,
        [_Location_column]: 16,
        [_Location_line]: 423,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/legend/legend.dart"
      });
    },
    get C759() {
      return C759 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "direction",
        [_Location_column]: 15,
        [_Location_line]: 437,
        [_Location_file]: null
      });
    },
    get C760() {
      return C760 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "children",
        [_Location_column]: 15,
        [_Location_line]: 440,
        [_Location_file]: null
      });
    },
    get C758() {
      return C758 = dart.constList([C759 || CT.C759, C760 || CT.C760], widget_inspector._Location);
    },
    get C757() {
      return C757 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C758 || CT.C758,
        [_Location_name]: null,
        [_Location_column]: 18,
        [_Location_line]: 436,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/legend/legend.dart"
      });
    },
    get C763() {
      return C763 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "height",
        [_Location_column]: 11,
        [_Location_line]: 432,
        [_Location_file]: null
      });
    },
    get C764() {
      return C764 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "width",
        [_Location_column]: 11,
        [_Location_line]: 435,
        [_Location_file]: null
      });
    },
    get C765() {
      return C765 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 11,
        [_Location_line]: 436,
        [_Location_file]: null
      });
    },
    get C762() {
      return C762 = dart.constList([C763 || CT.C763, C764 || CT.C764, C765 || CT.C765], widget_inspector._Location);
    },
    get C761() {
      return C761 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C762 || CT.C762,
        [_Location_name]: null,
        [_Location_column]: 16,
        [_Location_line]: 431,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/legend/legend.dart"
      });
    },
    get C768() {
      return C768 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "data",
        [_Location_column]: 44,
        [_Location_line]: 462,
        [_Location_file]: null
      });
    },
    get C769() {
      return C769 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "overflow",
        [_Location_column]: 23,
        [_Location_line]: 463,
        [_Location_file]: null
      });
    },
    get C770() {
      return C770 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "style",
        [_Location_column]: 23,
        [_Location_line]: 464,
        [_Location_file]: null
      });
    },
    get C767() {
      return C767 = dart.constList([C768 || CT.C768, C769 || CT.C769, C770 || CT.C770], widget_inspector._Location);
    },
    get C766() {
      return C766 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C767 || CT.C767,
        [_Location_name]: null,
        [_Location_column]: 26,
        [_Location_line]: 462,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/legend/legend.dart"
      });
    },
    get C773() {
      return C773 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 19,
        [_Location_line]: 462,
        [_Location_file]: null
      });
    },
    get C772() {
      return C772 = dart.constList([C773 || CT.C773], widget_inspector._Location);
    },
    get C771() {
      return C771 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C772 || CT.C772,
        [_Location_name]: null,
        [_Location_column]: 24,
        [_Location_line]: 461,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/legend/legend.dart"
      });
    },
    get C776() {
      return C776 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "height",
        [_Location_column]: 17,
        [_Location_line]: 455,
        [_Location_file]: null
      });
    },
    get C777() {
      return C777 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "alignment",
        [_Location_column]: 17,
        [_Location_line]: 456,
        [_Location_file]: null
      });
    },
    get C778() {
      return C778 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 17,
        [_Location_line]: 461,
        [_Location_file]: null
      });
    },
    get C775() {
      return C775 = dart.constList([C776 || CT.C776, C777 || CT.C777, C778 || CT.C778], widget_inspector._Location);
    },
    get C774() {
      return C774 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C775 || CT.C775,
        [_Location_name]: null,
        [_Location_column]: 13,
        [_Location_line]: 454,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/legend/legend.dart"
      });
    },
    get C781() {
      return C781 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "mainAxisAlignment",
        [_Location_column]: 15,
        [_Location_line]: 452,
        [_Location_file]: null
      });
    },
    get C782() {
      return C782 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "children",
        [_Location_column]: 15,
        [_Location_line]: 453,
        [_Location_file]: null
      });
    },
    get C780() {
      return C780 = dart.constList([C781 || CT.C781, C782 || CT.C782], widget_inspector._Location);
    },
    get C779() {
      return C779 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C780 || CT.C780,
        [_Location_name]: null,
        [_Location_column]: 18,
        [_Location_line]: 451,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/legend/legend.dart"
      });
    },
    get C785() {
      return C785 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 11,
        [_Location_line]: 451,
        [_Location_file]: null
      });
    },
    get C784() {
      return C784 = dart.constList([C785 || CT.C785], widget_inspector._Location);
    },
    get C783() {
      return C783 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C784 || CT.C784,
        [_Location_name]: null,
        [_Location_column]: 16,
        [_Location_line]: 450,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/legend/legend.dart"
      });
    },
    get C786() {
      return C786 = dart.const({
        __proto__: ui.Color.prototype,
        [Color_value]: 4292072403.0
      });
    },
    get C787() {
      return C787 = dart.const({
        __proto__: charts.LegendIconType.prototype,
        [_name$]: "LegendIconType.seriesType",
        index: 0
      });
    },
    get C788() {
      return C788 = dart.const({
        __proto__: charts.LegendIconType.prototype,
        [_name$]: "LegendIconType.circle",
        index: 1
      });
    },
    get C789() {
      return C789 = dart.const({
        __proto__: charts.LegendIconType.prototype,
        [_name$]: "LegendIconType.rectangle",
        index: 2
      });
    },
    get C790() {
      return C790 = dart.const({
        __proto__: charts.LegendIconType.prototype,
        [_name$]: "LegendIconType.image",
        index: 3
      });
    },
    get C791() {
      return C791 = dart.const({
        __proto__: charts.LegendIconType.prototype,
        [_name$]: "LegendIconType.pentagon",
        index: 4
      });
    },
    get C792() {
      return C792 = dart.const({
        __proto__: charts.LegendIconType.prototype,
        [_name$]: "LegendIconType.verticalLine",
        index: 5
      });
    },
    get C793() {
      return C793 = dart.const({
        __proto__: charts.LegendIconType.prototype,
        [_name$]: "LegendIconType.invertedTriangle",
        index: 9
      });
    },
    get C794() {
      return C794 = dart.const({
        __proto__: charts.LegendIconType.prototype,
        [_name$]: "LegendIconType.horizontalLine",
        index: 6
      });
    },
    get C795() {
      return C795 = dart.const({
        __proto__: charts.LegendIconType.prototype,
        [_name$]: "LegendIconType.diamond",
        index: 7
      });
    },
    get C796() {
      return C796 = dart.const({
        __proto__: charts.LegendIconType.prototype,
        [_name$]: "LegendIconType.triangle",
        index: 8
      });
    },
    get C799() {
      return C799 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 35,
        [_Location_line]: 444,
        [_Location_file]: null
      });
    },
    get C800() {
      return C800 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "opacity",
        [_Location_column]: 52,
        [_Location_line]: 444,
        [_Location_file]: null
      });
    },
    get C798() {
      return C798 = dart.constList([C799 || CT.C799, C800 || CT.C800], widget_inspector._Location);
    },
    get C797() {
      return C797 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C798 || CT.C798,
        [_Location_name]: null,
        [_Location_column]: 27,
        [_Location_line]: 444,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/legend/renderer.dart"
      });
    },
    get C803() {
      return C803 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "painter",
        [_Location_column]: 25,
        [_Location_line]: 447,
        [_Location_file]: null
      });
    },
    get C802() {
      return C802 = dart.constList([C803 || CT.C803], widget_inspector._Location);
    },
    get C801() {
      return C801 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C802 || CT.C802,
        [_Location_name]: null,
        [_Location_column]: 23,
        [_Location_line]: 446,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/legend/renderer.dart"
      });
    },
    get C806() {
      return C806 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "onTapUp",
        [_Location_column]: 17,
        [_Location_line]: 435,
        [_Location_file]: null
      });
    },
    get C807() {
      return C807 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 17,
        [_Location_line]: 442,
        [_Location_file]: null
      });
    },
    get C805() {
      return C805 = dart.constList([C806 || CT.C806, C807 || CT.C807], widget_inspector._Location);
    },
    get C804() {
      return C804 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C805 || CT.C805,
        [_Location_name]: null,
        [_Location_column]: 20,
        [_Location_line]: 434,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/legend/renderer.dart"
      });
    },
    get C810() {
      return C810 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 13,
        [_Location_line]: 434,
        [_Location_file]: null
      });
    },
    get C809() {
      return C809 = dart.constList([C810 || CT.C810], widget_inspector._Location);
    },
    get C808() {
      return C808 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C809 || CT.C809,
        [_Location_name]: null,
        [_Location_column]: 16,
        [_Location_line]: 433,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/legend/renderer.dart"
      });
    },
    get C813() {
      return C813 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "height",
        [_Location_column]: 9,
        [_Location_line]: 427,
        [_Location_file]: null
      });
    },
    get C814() {
      return C814 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "width",
        [_Location_column]: 9,
        [_Location_line]: 428,
        [_Location_file]: null
      });
    },
    get C815() {
      return C815 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 9,
        [_Location_line]: 433,
        [_Location_file]: null
      });
    },
    get C812() {
      return C812 = dart.constList([C813 || CT.C813, C814 || CT.C814, C815 || CT.C815], widget_inspector._Location);
    },
    get C811() {
      return C811 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C812 || CT.C812,
        [_Location_name]: null,
        [_Location_column]: 12,
        [_Location_line]: 426,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/legend/renderer.dart"
      });
    },
    get C818() {
      return C818 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "opacity",
        [_Location_column]: 31,
        [_Location_line]: 58,
        [_Location_file]: null
      });
    },
    get C819() {
      return C819 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 45,
        [_Location_line]: 58,
        [_Location_file]: null
      });
    },
    get C817() {
      return C817 = dart.constList([C818 || CT.C818, C819 || CT.C819], widget_inspector._Location);
    },
    get C816() {
      return C816 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C817 || CT.C817,
        [_Location_name]: null,
        [_Location_column]: 23,
        [_Location_line]: 58,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/template/rendering.dart"
      });
    },
    get C822() {
      return C822 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "left",
        [_Location_column]: 13,
        [_Location_line]: 85,
        [_Location_file]: null
      });
    },
    get C823() {
      return C823 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "top",
        [_Location_column]: 13,
        [_Location_line]: 86,
        [_Location_file]: null
      });
    },
    get C824() {
      return C824 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 13,
        [_Location_line]: 87,
        [_Location_file]: null
      });
    },
    get C821() {
      return C821 = dart.constList([C822 || CT.C822, C823 || CT.C823, C824 || CT.C824], widget_inspector._Location);
    },
    get C820() {
      return C820 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C821 || CT.C821,
        [_Location_name]: null,
        [_Location_column]: 11,
        [_Location_line]: 84,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/template/rendering.dart"
      });
    },
    get C827() {
      return C827 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "children",
        [_Location_column]: 43,
        [_Location_line]: 83,
        [_Location_file]: null
      });
    },
    get C826() {
      return C826 = dart.constList([C827 || CT.C827], widget_inspector._Location);
    },
    get C825() {
      return C825 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C826 || CT.C826,
        [_Location_name]: null,
        [_Location_column]: 37,
        [_Location_line]: 83,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/template/rendering.dart"
      });
    },
    get C830() {
      return C830 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "opacity",
        [_Location_column]: 32,
        [_Location_line]: 109,
        [_Location_file]: null
      });
    },
    get C831() {
      return C831 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 54,
        [_Location_line]: 109,
        [_Location_file]: null
      });
    },
    get C829() {
      return C829 = dart.constList([C830 || CT.C830, C831 || CT.C831], widget_inspector._Location);
    },
    get C828() {
      return C828 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C829 || CT.C829,
        [_Location_name]: null,
        [_Location_column]: 24,
        [_Location_line]: 109,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/template/rendering.dart"
      });
    },
    get C834() {
      return C834 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "animation",
        [_Location_column]: 15,
        [_Location_line]: 105,
        [_Location_file]: null
      });
    },
    get C835() {
      return C835 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 15,
        [_Location_line]: 106,
        [_Location_file]: null
      });
    },
    get C836() {
      return C836 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "builder",
        [_Location_column]: 15,
        [_Location_line]: 107,
        [_Location_file]: null
      });
    },
    get C833() {
      return C833 = dart.constList([C834 || CT.C834, C835 || CT.C835, C836 || CT.C836], widget_inspector._Location);
    },
    get C832() {
      return C832 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C833 || CT.C833,
        [_Location_name]: null,
        [_Location_column]: 31,
        [_Location_line]: 104,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/template/rendering.dart"
      });
    },
    get C839() {
      return C839 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "children",
        [_Location_column]: 46,
        [_Location_line]: 115,
        [_Location_file]: null
      });
    },
    get C838() {
      return C838 = dart.constList([C839 || CT.C839], widget_inspector._Location);
    },
    get C837() {
      return C837 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C838 || CT.C838,
        [_Location_name]: null,
        [_Location_column]: 40,
        [_Location_line]: 115,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/template/rendering.dart"
      });
    },
    get C842() {
      return C842 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 33,
        [_Location_line]: 115,
        [_Location_file]: null
      });
    },
    get C841() {
      return C841 = dart.constList([C842 || CT.C842], widget_inspector._Location);
    },
    get C840() {
      return C840 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C841 || CT.C841,
        [_Location_name]: null,
        [_Location_column]: 23,
        [_Location_line]: 115,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/template/rendering.dart"
      });
    },
    get C843() {
      return C843 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C14 || CT.C14,
        [_Location_name]: null,
        [_Location_column]: 29,
        [_Location_line]: 164,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/template/rendering.dart"
      });
    },
    get C846() {
      return C846 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "template",
        [_Location_column]: 11,
        [_Location_line]: 170,
        [_Location_file]: null
      });
    },
    get C847() {
      return C847 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "templateIndex",
        [_Location_column]: 11,
        [_Location_line]: 171,
        [_Location_file]: null
      });
    },
    get C848() {
      return C848 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "templateLength",
        [_Location_column]: 11,
        [_Location_line]: 172,
        [_Location_file]: null
      });
    },
    get C849() {
      return C849 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "chart",
        [_Location_column]: 11,
        [_Location_line]: 173,
        [_Location_file]: null
      });
    },
    get C845() {
      return C845 = dart.constList([C846 || CT.C846, C847 || CT.C847, C848 || CT.C848, C849 || CT.C849], widget_inspector._Location);
    },
    get C844() {
      return C844 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C845 || CT.C845,
        [_Location_name]: null,
        [_Location_column]: 27,
        [_Location_line]: 169,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/template/rendering.dart"
      });
    },
    get C852() {
      return C852 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "children",
        [_Location_column]: 30,
        [_Location_line]: 176,
        [_Location_file]: null
      });
    },
    get C851() {
      return C851 = dart.constList([C852 || CT.C852], widget_inspector._Location);
    },
    get C850() {
      return C850 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C851 || CT.C851,
        [_Location_name]: null,
        [_Location_column]: 24,
        [_Location_line]: 176,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/template/rendering.dart"
      });
    },
    get C853() {
      return C853 = dart.const({
        __proto__: charts.LegendPosition.prototype,
        [_name$]: "LegendPosition.auto",
        index: 0
      });
    },
    get C854() {
      return C854 = dart.const({
        __proto__: charts.LegendPosition.prototype,
        [_name$]: "LegendPosition.bottom",
        index: 1
      });
    },
    get C855() {
      return C855 = dart.const({
        __proto__: charts.LegendPosition.prototype,
        [_name$]: "LegendPosition.left",
        index: 2
      });
    },
    get C856() {
      return C856 = dart.const({
        __proto__: charts.LegendPosition.prototype,
        [_name$]: "LegendPosition.right",
        index: 3
      });
    },
    get C857() {
      return C857 = dart.const({
        __proto__: charts.LegendPosition.prototype,
        [_name$]: "LegendPosition.top",
        index: 4
      });
    },
    get C858() {
      return C858 = dart.constList([C853 || CT.C853, C854 || CT.C854, C855 || CT.C855, C856 || CT.C856, C857 || CT.C857], charts.LegendPosition);
    },
    get C859() {
      return C859 = dart.const({
        __proto__: charts.ChartAlignment.prototype,
        [_name$]: "ChartAlignment.near",
        index: 0
      });
    },
    get C860() {
      return C860 = dart.const({
        __proto__: charts.ChartAlignment.prototype,
        [_name$]: "ChartAlignment.far",
        index: 2
      });
    },
    get C861() {
      return C861 = dart.constList([C859 || CT.C859, C355 || CT.C355, C860 || CT.C860], charts.ChartAlignment);
    },
    get C862() {
      return C862 = dart.const({
        __proto__: charts.LegendItemOverflowMode.prototype,
        [_name$]: "LegendItemOverflowMode.wrap",
        index: 0
      });
    },
    get C863() {
      return C863 = dart.const({
        __proto__: charts.LegendItemOverflowMode.prototype,
        [_name$]: "LegendItemOverflowMode.scroll",
        index: 1
      });
    },
    get C864() {
      return C864 = dart.const({
        __proto__: charts.LegendItemOverflowMode.prototype,
        [_name$]: "LegendItemOverflowMode.none",
        index: 2
      });
    },
    get C865() {
      return C865 = dart.constList([C862 || CT.C862, C863 || CT.C863, C864 || CT.C864], charts.LegendItemOverflowMode);
    },
    get C866() {
      return C866 = dart.const({
        __proto__: charts.LegendItemOrientation.prototype,
        [_name$]: "LegendItemOrientation.auto",
        index: 0
      });
    },
    get C867() {
      return C867 = dart.const({
        __proto__: charts.LegendItemOrientation.prototype,
        [_name$]: "LegendItemOrientation.horizontal",
        index: 1
      });
    },
    get C868() {
      return C868 = dart.const({
        __proto__: charts.LegendItemOrientation.prototype,
        [_name$]: "LegendItemOrientation.vertical",
        index: 2
      });
    },
    get C869() {
      return C869 = dart.constList([C866 || CT.C866, C867 || CT.C867, C868 || CT.C868], charts.LegendItemOrientation);
    },
    get C870() {
      return C870 = dart.constList([C787 || CT.C787, C788 || CT.C788, C789 || CT.C789, C790 || CT.C790, C791 || CT.C791, C792 || CT.C792, C794 || CT.C794, C795 || CT.C795, C796 || CT.C796, C793 || CT.C793], charts.LegendIconType);
    },
    get C871() {
      return C871 = dart.const({
        __proto__: charts.ChartDataLabelAlignment.prototype,
        [_name$]: "ChartDataLabelAlignment.outer",
        index: 1
      });
    },
    get C872() {
      return C872 = dart.const({
        __proto__: charts.ChartDataLabelAlignment.prototype,
        [_name$]: "ChartDataLabelAlignment.top",
        index: 2
      });
    },
    get C873() {
      return C873 = dart.const({
        __proto__: charts.ChartDataLabelAlignment.prototype,
        [_name$]: "ChartDataLabelAlignment.bottom",
        index: 3
      });
    },
    get C874() {
      return C874 = dart.const({
        __proto__: charts.ChartDataLabelAlignment.prototype,
        [_name$]: "ChartDataLabelAlignment.middle",
        index: 4
      });
    },
    get C875() {
      return C875 = dart.constList([C549 || CT.C549, C871 || CT.C871, C872 || CT.C872, C873 || CT.C873, C874 || CT.C874], charts.ChartDataLabelAlignment);
    },
    get C876() {
      return C876 = dart.const({
        __proto__: charts.CircularLabelPosition.prototype,
        [_name$]: "CircularLabelPosition.inside",
        index: 0
      });
    },
    get C877() {
      return C877 = dart.const({
        __proto__: charts.CircularLabelPosition.prototype,
        [_name$]: "CircularLabelPosition.outside",
        index: 1
      });
    },
    get C878() {
      return C878 = dart.constList([C876 || CT.C876, C877 || CT.C877], charts.CircularLabelPosition);
    },
    get C879() {
      return C879 = dart.const({
        __proto__: charts.PyramidMode.prototype,
        [_name$]: "PyramidMode.linear",
        index: 0
      });
    },
    get C880() {
      return C880 = dart.const({
        __proto__: charts.PyramidMode.prototype,
        [_name$]: "PyramidMode.surface",
        index: 1
      });
    },
    get C881() {
      return C881 = dart.constList([C879 || CT.C879, C880 || CT.C880], charts.PyramidMode);
    },
    get C882() {
      return C882 = dart.const({
        __proto__: charts.SmartLabelMode.prototype,
        [_name$]: "SmartLabelMode.shift",
        index: 0
      });
    },
    get C883() {
      return C883 = dart.const({
        __proto__: charts.SmartLabelMode.prototype,
        [_name$]: "SmartLabelMode.hide",
        index: 1
      });
    },
    get C884() {
      return C884 = dart.const({
        __proto__: charts.SmartLabelMode.prototype,
        [_name$]: "SmartLabelMode.none",
        index: 2
      });
    },
    get C885() {
      return C885 = dart.constList([C882 || CT.C882, C883 || CT.C883, C884 || CT.C884], charts.SmartLabelMode);
    },
    get C888() {
      return C888 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "opacity",
        [_Location_column]: 24,
        [_Location_line]: 322,
        [_Location_file]: null
      });
    },
    get C889() {
      return C889 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 47,
        [_Location_line]: 322,
        [_Location_file]: null
      });
    },
    get C887() {
      return C887 = dart.constList([C888 || CT.C888, C889 || CT.C889], widget_inspector._Location);
    },
    get C886() {
      return C886 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C887 || CT.C887,
        [_Location_name]: null,
        [_Location_column]: 16,
        [_Location_line]: 322,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/utils/helper.dart"
      });
    },
    get C892() {
      return C892 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "key",
        [_Location_column]: 9,
        [_Location_line]: 321,
        [_Location_file]: null
      });
    },
    get C893() {
      return C893 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 9,
        [_Location_line]: 322,
        [_Location_file]: null
      });
    },
    get C891() {
      return C891 = dart.constList([C892 || CT.C892, C893 || CT.C893], widget_inspector._Location);
    },
    get C890() {
      return C890 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C891 || CT.C891,
        [_Location_name]: null,
        [_Location_column]: 12,
        [_Location_line]: 320,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/utils/helper.dart"
      });
    },
    get C894() {
      return C894 = dart.const({
        __proto__: ui.Color.prototype,
        [Color_value]: 4294967295.0
      });
    },
    get C895() {
      return C895 = dart.const({
        __proto__: image_provider.ImageConfiguration.prototype,
        [ImageConfiguration_platform]: null,
        [ImageConfiguration_size]: null,
        [ImageConfiguration_textDirection]: null,
        [ImageConfiguration_locale]: null,
        [ImageConfiguration_devicePixelRatio]: null,
        [ImageConfiguration_bundle]: null
      });
    },
    get C896() {
      return C896 = dart.const({
        __proto__: edge_insets.EdgeInsets.prototype,
        [EdgeInsets_bottom]: 0,
        [EdgeInsets_right]: 0,
        [EdgeInsets_top]: 0,
        [EdgeInsets_left]: 0
      });
    },
    get C899() {
      return C899 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 9,
        [_Location_line]: 86,
        [_Location_file]: null
      });
    },
    get C900() {
      return C900 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "width",
        [_Location_column]: 9,
        [_Location_line]: 87,
        [_Location_file]: null
      });
    },
    get C901() {
      return C901 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "height",
        [_Location_column]: 9,
        [_Location_line]: 88,
        [_Location_file]: null
      });
    },
    get C898() {
      return C898 = dart.constList([C899 || CT.C899, C900 || CT.C900, C901 || CT.C901], widget_inspector._Location);
    },
    get C897() {
      return C897 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C898 || CT.C898,
        [_Location_name]: null,
        [_Location_column]: 15,
        [_Location_line]: 85,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/utils/helper.dart"
      });
    },
    get C904() {
      return C904 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "painter",
        [_Location_column]: 21,
        [_Location_line]: 95,
        [_Location_file]: null
      });
    },
    get C903() {
      return C903 = dart.constList([C904 || CT.C904], widget_inspector._Location);
    },
    get C902() {
      return C902 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C903 || CT.C903,
        [_Location_name]: null,
        [_Location_column]: 9,
        [_Location_line]: 95,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/utils/helper.dart"
      });
    },
    get C907() {
      return C907 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "chart",
        [_Location_column]: 33,
        [_Location_line]: 100,
        [_Location_file]: null
      });
    },
    get C906() {
      return C906 = dart.constList([C907 || CT.C907], widget_inspector._Location);
    },
    get C905() {
      return C905 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C906 || CT.C906,
        [_Location_name]: null,
        [_Location_column]: 16,
        [_Location_line]: 100,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/utils/helper.dart"
      });
    },
    get C910() {
      return C910 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "height",
        [_Location_column]: 9,
        [_Location_line]: 97,
        [_Location_file]: null
      });
    },
    get C911() {
      return C911 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "width",
        [_Location_column]: 9,
        [_Location_line]: 98,
        [_Location_file]: null
      });
    },
    get C912() {
      return C912 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "decoration",
        [_Location_column]: 9,
        [_Location_line]: 99,
        [_Location_file]: null
      });
    },
    get C913() {
      return C913 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 9,
        [_Location_line]: 100,
        [_Location_file]: null
      });
    },
    get C909() {
      return C909 = dart.constList([C910 || CT.C910, C911 || CT.C911, C912 || CT.C912, C913 || CT.C913], widget_inspector._Location);
    },
    get C908() {
      return C908 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C909 || CT.C909,
        [_Location_name]: null,
        [_Location_column]: 33,
        [_Location_line]: 96,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/utils/helper.dart"
      });
    },
    get C916() {
      return C916 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "margin",
        [_Location_column]: 11,
        [_Location_line]: 165,
        [_Location_file]: null
      });
    },
    get C917() {
      return C917 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "height",
        [_Location_column]: 11,
        [_Location_line]: 166,
        [_Location_file]: null
      });
    },
    get C918() {
      return C918 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "width",
        [_Location_column]: 11,
        [_Location_line]: 167,
        [_Location_file]: null
      });
    },
    get C919() {
      return C919 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 11,
        [_Location_line]: 168,
        [_Location_file]: null
      });
    },
    get C915() {
      return C915 = dart.constList([C916 || CT.C916, C917 || CT.C917, C918 || CT.C918, C919 || CT.C919], widget_inspector._Location);
    },
    get C914() {
      return C914 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C915 || CT.C915,
        [_Location_name]: null,
        [_Location_column]: 7,
        [_Location_line]: 164,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/utils/helper.dart"
      });
    },
    get C922() {
      return C922 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "margin",
        [_Location_column]: 11,
        [_Location_line]: 170,
        [_Location_file]: null
      });
    },
    get C923() {
      return C923 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "height",
        [_Location_column]: 11,
        [_Location_line]: 171,
        [_Location_file]: null
      });
    },
    get C924() {
      return C924 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "width",
        [_Location_column]: 11,
        [_Location_line]: 172,
        [_Location_file]: null
      });
    },
    get C925() {
      return C925 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 11,
        [_Location_line]: 173,
        [_Location_file]: null
      });
    },
    get C921() {
      return C921 = dart.constList([C922 || CT.C922, C923 || CT.C923, C924 || CT.C924, C925 || CT.C925], widget_inspector._Location);
    },
    get C920() {
      return C920 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C921 || CT.C921,
        [_Location_name]: null,
        [_Location_column]: 7,
        [_Location_line]: 169,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/utils/helper.dart"
      });
    },
    get C928() {
      return C928 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "children",
        [_Location_column]: 18,
        [_Location_line]: 163,
        [_Location_file]: null
      });
    },
    get C927() {
      return C927 = dart.constList([C928 || CT.C928], widget_inspector._Location);
    },
    get C926() {
      return C926 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C927 || CT.C927,
        [_Location_name]: null,
        [_Location_column]: 12,
        [_Location_line]: 163,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/utils/helper.dart"
      });
    },
    get C931() {
      return C931 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 5,
        [_Location_line]: 163,
        [_Location_file]: null
      });
    },
    get C930() {
      return C930 = dart.constList([C931 || CT.C931], widget_inspector._Location);
    },
    get C929() {
      return C929 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C930 || CT.C930,
        [_Location_name]: null,
        [_Location_column]: 18,
        [_Location_line]: 162,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/utils/helper.dart"
      });
    },
    get C934() {
      return C934 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "margin",
        [_Location_column]: 15,
        [_Location_line]: 184,
        [_Location_file]: null
      });
    },
    get C935() {
      return C935 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "height",
        [_Location_column]: 15,
        [_Location_line]: 186,
        [_Location_file]: null
      });
    },
    get C936() {
      return C936 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "width",
        [_Location_column]: 15,
        [_Location_line]: 187,
        [_Location_file]: null
      });
    },
    get C937() {
      return C937 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 15,
        [_Location_line]: 188,
        [_Location_file]: null
      });
    },
    get C933() {
      return C933 = dart.constList([C934 || CT.C934, C935 || CT.C935, C936 || CT.C936, C937 || CT.C937], widget_inspector._Location);
    },
    get C932() {
      return C932 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C933 || CT.C933,
        [_Location_name]: null,
        [_Location_column]: 13,
        [_Location_line]: 183,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/utils/helper.dart"
      });
    },
    get C940() {
      return C940 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "children",
        [_Location_column]: 11,
        [_Location_line]: 181,
        [_Location_file]: null
      });
    },
    get C939() {
      return C939 = dart.constList([C940 || CT.C940], widget_inspector._Location);
    },
    get C938() {
      return C938 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C939 || CT.C939,
        [_Location_name]: null,
        [_Location_column]: 16,
        [_Location_line]: 180,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/utils/helper.dart"
      });
    },
    get C943() {
      return C943 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "height",
        [_Location_column]: 9,
        [_Location_line]: 178,
        [_Location_file]: null
      });
    },
    get C944() {
      return C944 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "width",
        [_Location_column]: 9,
        [_Location_line]: 179,
        [_Location_file]: null
      });
    },
    get C945() {
      return C945 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 9,
        [_Location_line]: 180,
        [_Location_file]: null
      });
    },
    get C942() {
      return C942 = dart.constList([C943 || CT.C943, C944 || CT.C944, C945 || CT.C945], widget_inspector._Location);
    },
    get C941() {
      return C941 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C942 || CT.C942,
        [_Location_name]: null,
        [_Location_column]: 15,
        [_Location_line]: 177,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/utils/helper.dart"
      });
    },
    get C948() {
      return C948 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "height",
        [_Location_column]: 15,
        [_Location_line]: 201,
        [_Location_file]: null
      });
    },
    get C949() {
      return C949 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "width",
        [_Location_column]: 15,
        [_Location_line]: 202,
        [_Location_file]: null
      });
    },
    get C950() {
      return C950 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 15,
        [_Location_line]: 203,
        [_Location_file]: null
      });
    },
    get C947() {
      return C947 = dart.constList([C948 || CT.C948, C949 || CT.C949, C950 || CT.C950], widget_inspector._Location);
    },
    get C946() {
      return C946 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C947 || CT.C947,
        [_Location_name]: null,
        [_Location_column]: 13,
        [_Location_line]: 200,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/utils/helper.dart"
      });
    },
    get C953() {
      return C953 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "children",
        [_Location_column]: 11,
        [_Location_line]: 199,
        [_Location_file]: null
      });
    },
    get C952() {
      return C952 = dart.constList([C953 || CT.C953], widget_inspector._Location);
    },
    get C951() {
      return C951 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C952 || CT.C952,
        [_Location_name]: null,
        [_Location_column]: 16,
        [_Location_line]: 198,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/utils/helper.dart"
      });
    },
    get C956() {
      return C956 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "margin",
        [_Location_column]: 9,
        [_Location_line]: 194,
        [_Location_file]: null
      });
    },
    get C957() {
      return C957 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "height",
        [_Location_column]: 9,
        [_Location_line]: 196,
        [_Location_file]: null
      });
    },
    get C958() {
      return C958 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "width",
        [_Location_column]: 9,
        [_Location_line]: 197,
        [_Location_file]: null
      });
    },
    get C959() {
      return C959 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 9,
        [_Location_line]: 198,
        [_Location_file]: null
      });
    },
    get C955() {
      return C955 = dart.constList([C956 || CT.C956, C957 || CT.C957, C958 || CT.C958, C959 || CT.C959], widget_inspector._Location);
    },
    get C954() {
      return C954 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C955 || CT.C955,
        [_Location_name]: null,
        [_Location_column]: 15,
        [_Location_line]: 193,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/utils/helper.dart"
      });
    },
    get C962() {
      return C962 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "margin",
        [_Location_column]: 9,
        [_Location_line]: 243,
        [_Location_file]: null
      });
    },
    get C963() {
      return C963 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "height",
        [_Location_column]: 9,
        [_Location_line]: 244,
        [_Location_file]: null
      });
    },
    get C964() {
      return C964 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "width",
        [_Location_column]: 9,
        [_Location_line]: 245,
        [_Location_file]: null
      });
    },
    get C965() {
      return C965 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 9,
        [_Location_line]: 246,
        [_Location_file]: null
      });
    },
    get C961() {
      return C961 = dart.constList([C962 || CT.C962, C963 || CT.C963, C964 || CT.C964, C965 || CT.C965], widget_inspector._Location);
    },
    get C960() {
      return C960 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C961 || CT.C961,
        [_Location_name]: null,
        [_Location_column]: 7,
        [_Location_line]: 242,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/utils/helper.dart"
      });
    },
    get C968() {
      return C968 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "margin",
        [_Location_column]: 9,
        [_Location_line]: 249,
        [_Location_file]: null
      });
    },
    get C969() {
      return C969 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "height",
        [_Location_column]: 9,
        [_Location_line]: 250,
        [_Location_file]: null
      });
    },
    get C970() {
      return C970 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "width",
        [_Location_column]: 9,
        [_Location_line]: 251,
        [_Location_file]: null
      });
    },
    get C971() {
      return C971 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 9,
        [_Location_line]: 252,
        [_Location_file]: null
      });
    },
    get C967() {
      return C967 = dart.constList([C968 || CT.C968, C969 || CT.C969, C970 || CT.C970, C971 || CT.C971], widget_inspector._Location);
    },
    get C966() {
      return C966 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C967 || CT.C967,
        [_Location_name]: null,
        [_Location_column]: 7,
        [_Location_line]: 248,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/utils/helper.dart"
      });
    },
    get C974() {
      return C974 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "children",
        [_Location_column]: 18,
        [_Location_line]: 241,
        [_Location_file]: null
      });
    },
    get C973() {
      return C973 = dart.constList([C974 || CT.C974], widget_inspector._Location);
    },
    get C972() {
      return C972 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C973 || CT.C973,
        [_Location_name]: null,
        [_Location_column]: 12,
        [_Location_line]: 241,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/utils/helper.dart"
      });
    },
    get C977() {
      return C977 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 5,
        [_Location_line]: 241,
        [_Location_file]: null
      });
    },
    get C976() {
      return C976 = dart.constList([C977 || CT.C977], widget_inspector._Location);
    },
    get C975() {
      return C975 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C976 || CT.C976,
        [_Location_name]: null,
        [_Location_column]: 18,
        [_Location_line]: 240,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/utils/helper.dart"
      });
    },
    get C980() {
      return C980 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "margin",
        [_Location_column]: 15,
        [_Location_line]: 264,
        [_Location_file]: null
      });
    },
    get C981() {
      return C981 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "height",
        [_Location_column]: 15,
        [_Location_line]: 269,
        [_Location_file]: null
      });
    },
    get C982() {
      return C982 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "width",
        [_Location_column]: 15,
        [_Location_line]: 270,
        [_Location_file]: null
      });
    },
    get C983() {
      return C983 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 15,
        [_Location_line]: 271,
        [_Location_file]: null
      });
    },
    get C979() {
      return C979 = dart.constList([C980 || CT.C980, C981 || CT.C981, C982 || CT.C982, C983 || CT.C983], widget_inspector._Location);
    },
    get C978() {
      return C978 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C979 || CT.C979,
        [_Location_name]: null,
        [_Location_column]: 13,
        [_Location_line]: 263,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/utils/helper.dart"
      });
    },
    get C986() {
      return C986 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "children",
        [_Location_column]: 11,
        [_Location_line]: 261,
        [_Location_file]: null
      });
    },
    get C985() {
      return C985 = dart.constList([C986 || CT.C986], widget_inspector._Location);
    },
    get C984() {
      return C984 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C985 || CT.C985,
        [_Location_name]: null,
        [_Location_column]: 16,
        [_Location_line]: 260,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/utils/helper.dart"
      });
    },
    get C989() {
      return C989 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "height",
        [_Location_column]: 9,
        [_Location_line]: 258,
        [_Location_file]: null
      });
    },
    get C990() {
      return C990 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "width",
        [_Location_column]: 9,
        [_Location_line]: 259,
        [_Location_file]: null
      });
    },
    get C991() {
      return C991 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 9,
        [_Location_line]: 260,
        [_Location_file]: null
      });
    },
    get C988() {
      return C988 = dart.constList([C989 || CT.C989, C990 || CT.C990, C991 || CT.C991], widget_inspector._Location);
    },
    get C987() {
      return C987 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C988 || CT.C988,
        [_Location_name]: null,
        [_Location_column]: 15,
        [_Location_line]: 257,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/utils/helper.dart"
      });
    },
    get C994() {
      return C994 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "margin",
        [_Location_column]: 15,
        [_Location_line]: 282,
        [_Location_file]: null
      });
    },
    get C995() {
      return C995 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "height",
        [_Location_column]: 15,
        [_Location_line]: 283,
        [_Location_file]: null
      });
    },
    get C996() {
      return C996 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "width",
        [_Location_column]: 15,
        [_Location_line]: 284,
        [_Location_file]: null
      });
    },
    get C997() {
      return C997 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 15,
        [_Location_line]: 285,
        [_Location_file]: null
      });
    },
    get C993() {
      return C993 = dart.constList([C994 || CT.C994, C995 || CT.C995, C996 || CT.C996, C997 || CT.C997], widget_inspector._Location);
    },
    get C992() {
      return C992 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C993 || CT.C993,
        [_Location_name]: null,
        [_Location_column]: 13,
        [_Location_line]: 281,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/utils/helper.dart"
      });
    },
    get C1000() {
      return C1000 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "children",
        [_Location_column]: 11,
        [_Location_line]: 280,
        [_Location_file]: null
      });
    },
    get C999() {
      return C999 = dart.constList([C1000 || CT.C1000], widget_inspector._Location);
    },
    get C998() {
      return C998 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C999 || CT.C999,
        [_Location_name]: null,
        [_Location_column]: 16,
        [_Location_line]: 279,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/utils/helper.dart"
      });
    },
    get C1003() {
      return C1003 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "height",
        [_Location_column]: 9,
        [_Location_line]: 277,
        [_Location_file]: null
      });
    },
    get C1004() {
      return C1004 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "width",
        [_Location_column]: 9,
        [_Location_line]: 278,
        [_Location_file]: null
      });
    },
    get C1005() {
      return C1005 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 9,
        [_Location_line]: 279,
        [_Location_file]: null
      });
    },
    get C1002() {
      return C1002 = dart.constList([C1003 || CT.C1003, C1004 || CT.C1004, C1005 || CT.C1005], widget_inspector._Location);
    },
    get C1001() {
      return C1001 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C1002 || CT.C1002,
        [_Location_name]: null,
        [_Location_column]: 15,
        [_Location_line]: 276,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/utils/helper.dart"
      });
    },
    get C1006() {
      return C1006 = dart.const({
        __proto__: edge_insets.EdgeInsets.prototype,
        [EdgeInsets_bottom]: 0,
        [EdgeInsets_right]: 0,
        [EdgeInsets_top]: 5,
        [EdgeInsets_left]: 0
      });
    },
    get C1009() {
      return C1009 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "data",
        [_Location_column]: 36,
        [_Location_line]: 501,
        [_Location_file]: null
      });
    },
    get C1010() {
      return C1010 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "style",
        [_Location_column]: 15,
        [_Location_line]: 502,
        [_Location_file]: null
      });
    },
    get C1011() {
      return C1011 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "textScaleFactor",
        [_Location_column]: 15,
        [_Location_line]: 508,
        [_Location_file]: null
      });
    },
    get C1012() {
      return C1012 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "overflow",
        [_Location_column]: 15,
        [_Location_line]: 509,
        [_Location_file]: null
      });
    },
    get C1013() {
      return C1013 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "textAlign",
        [_Location_column]: 15,
        [_Location_line]: 510,
        [_Location_file]: null
      });
    },
    get C1008() {
      return C1008 = dart.constList([C1009 || CT.C1009, C1010 || CT.C1010, C1011 || CT.C1011, C1012 || CT.C1012, C1013 || CT.C1013], widget_inspector._Location);
    },
    get C1007() {
      return C1007 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C1008 || CT.C1008,
        [_Location_name]: null,
        [_Location_column]: 18,
        [_Location_line]: 501,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/utils/helper.dart"
      });
    },
    get C1016() {
      return C1016 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "padding",
        [_Location_column]: 11,
        [_Location_line]: 493,
        [_Location_file]: null
      });
    },
    get C1017() {
      return C1017 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "decoration",
        [_Location_column]: 11,
        [_Location_line]: 494,
        [_Location_file]: null
      });
    },
    get C1018() {
      return C1018 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 11,
        [_Location_line]: 501,
        [_Location_file]: null
      });
    },
    get C1015() {
      return C1015 = dart.constList([C1016 || CT.C1016, C1017 || CT.C1017, C1018 || CT.C1018], widget_inspector._Location);
    },
    get C1014() {
      return C1014 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C1015 || CT.C1015,
        [_Location_name]: null,
        [_Location_column]: 14,
        [_Location_line]: 492,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/utils/helper.dart"
      });
    },
    get C1021() {
      return C1021 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "margin",
        [_Location_column]: 7,
        [_Location_line]: 490,
        [_Location_file]: null
      });
    },
    get C1022() {
      return C1022 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "child",
        [_Location_column]: 7,
        [_Location_line]: 492,
        [_Location_file]: null
      });
    },
    get C1023() {
      return C1023 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "alignment",
        [_Location_column]: 7,
        [_Location_line]: 511,
        [_Location_file]: null
      });
    },
    get C1020() {
      return C1020 = dart.constList([C1021 || CT.C1021, C1022 || CT.C1022, C1023 || CT.C1023], widget_inspector._Location);
    },
    get C1019() {
      return C1019 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C1020 || CT.C1020,
        [_Location_name]: null,
        [_Location_column]: 19,
        [_Location_line]: 489,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/utils/helper.dart"
      });
    },
    get C1024() {
      return C1024 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C14 || CT.C14,
        [_Location_name]: null,
        [_Location_column]: 19,
        [_Location_line]: 520,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/utils/helper.dart"
      });
    },
    get C1027() {
      return C1027 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "chart",
        [_Location_column]: 13,
        [_Location_line]: 537,
        [_Location_file]: null
      });
    },
    get C1028() {
      return C1028 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "type",
        [_Location_column]: 13,
        [_Location_line]: 538,
        [_Location_file]: null
      });
    },
    get C1029() {
      return C1029 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "seriesIndex",
        [_Location_column]: 13,
        [_Location_line]: 539,
        [_Location_file]: null
      });
    },
    get C1030() {
      return C1030 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "pointIndex",
        [_Location_column]: 13,
        [_Location_line]: 540,
        [_Location_file]: null
      });
    },
    get C1031() {
      return C1031 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "currentKey",
        [_Location_column]: 13,
        [_Location_line]: 541,
        [_Location_file]: null
      });
    },
    get C1032() {
      return C1032 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "currentWidget",
        [_Location_column]: 13,
        [_Location_line]: 542,
        [_Location_file]: null
      });
    },
    get C1033() {
      return C1033 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "opacityValue",
        [_Location_column]: 13,
        [_Location_line]: 543,
        [_Location_file]: null
      });
    },
    get C1026() {
      return C1026 = dart.constList([C1027 || CT.C1027, C1028 || CT.C1028, C1029 || CT.C1029, C1030 || CT.C1030, C1031 || CT.C1031, C1032 || CT.C1032, C1033 || CT.C1033], widget_inspector._Location);
    },
    get C1025() {
      return C1025 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C1026 || CT.C1026,
        [_Location_name]: null,
        [_Location_column]: 23,
        [_Location_line]: 536,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/common/utils/helper.dart"
      });
    },
    get C1036() {
      return C1036 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "templates",
        [_Location_column]: 9,
        [_Location_line]: 81,
        [_Location_file]: null
      });
    },
    get C1037() {
      return C1037 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "render",
        [_Location_column]: 9,
        [_Location_line]: 82,
        [_Location_file]: null
      });
    },
    get C1038() {
      return C1038 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: null,
        [_Location_name]: "chart",
        [_Location_column]: 9,
        [_Location_line]: 83,
        [_Location_file]: null
      });
    },
    get C1035() {
      return C1035 = dart.constList([C1036 || CT.C1036, C1037 || CT.C1037, C1038 || CT.C1038], widget_inspector._Location);
    },
    get C1034() {
      return C1034 = dart.const({
        __proto__: widget_inspector._Location.prototype,
        [_Location_parameterLocations]: C1035 || CT.C1035,
        [_Location_name]: null,
        [_Location_column]: 40,
        [_Location_line]: 80,
        [_Location_file]: "org-dartlang-app:///packages/syncfusion_flutter_charts/src/pyramid_chart/utils/helper.dart"
      });
    },
    get C1039() {
      return C1039 = dart.fn(web.HandCursor._mouseHover, PointerEventTovoid());
    },
    get C1040() {
      return C1040 = dart.fn(web.HandCursor._mouseExit, PointerEventTovoid());
    }
  });
  const Color_value = dart.privateName(ui, "Color.value");
  let C0;
  let C2;
  let C3;
  let C4;
  let C5;
  let C6;
  let C7;
  let C8;
  let C9;
  let C10;
  let C11;
  let C1;
  const _needToMoveFromCenter = dart.privateName(charts, "_needToMoveFromCenter");
  const _chartState = dart.privateName(charts, "_chartState");
  const _chartLegend = dart.privateName(charts, "_chartLegend");
  const _chartSeries = dart.privateName(charts, "_chartSeries");
  const _circularArea = dart.privateName(charts, "_circularArea");
  const EdgeInsets_bottom = dart.privateName(edge_insets, "EdgeInsets.bottom");
  const EdgeInsets_right = dart.privateName(edge_insets, "EdgeInsets.right");
  const EdgeInsets_top = dart.privateName(edge_insets, "EdgeInsets.top");
  const EdgeInsets_left = dart.privateName(edge_insets, "EdgeInsets.left");
  let C12;
  let C14;
  const _Location_parameterLocations = dart.privateName(widget_inspector, "_Location.parameterLocations");
  const _Location_name = dart.privateName(widget_inspector, "_Location.name");
  const _Location_column = dart.privateName(widget_inspector, "_Location.column");
  const _Location_line = dart.privateName(widget_inspector, "_Location.line");
  const _Location_file = dart.privateName(widget_inspector, "_Location.file");
  let C13;
  const title$ = dart.privateName(charts, "SfCircularChart.title");
  const series$ = dart.privateName(charts, "SfCircularChart.series");
  const margin$ = dart.privateName(charts, "SfCircularChart.margin");
  const legend$ = dart.privateName(charts, "SfCircularChart.legend");
  const tooltipBehavior$ = dart.privateName(charts, "SfCircularChart.tooltipBehavior");
  const backgroundColor$ = dart.privateName(charts, "SfCircularChart.backgroundColor");
  const annotations$ = dart.privateName(charts, "SfCircularChart.annotations");
  const borderColor$ = dart.privateName(charts, "SfCircularChart.borderColor");
  const borderWidth$ = dart.privateName(charts, "SfCircularChart.borderWidth");
  const backgroundImage$ = dart.privateName(charts, "SfCircularChart.backgroundImage");
  const centerX$ = dart.privateName(charts, "SfCircularChart.centerX");
  const centerY$ = dart.privateName(charts, "SfCircularChart.centerY");
  const onLegendItemRender$ = dart.privateName(charts, "SfCircularChart.onLegendItemRender");
  const onTooltipRender$ = dart.privateName(charts, "SfCircularChart.onTooltipRender");
  const onDataLabelRender$ = dart.privateName(charts, "SfCircularChart.onDataLabelRender");
  const onPointTapped$ = dart.privateName(charts, "SfCircularChart.onPointTapped");
  const onLegendTapped$ = dart.privateName(charts, "SfCircularChart.onLegendTapped");
  const onSelectionChanged$ = dart.privateName(charts, "SfCircularChart.onSelectionChanged");
  const palette$ = dart.privateName(charts, "SfCircularChart.palette");
  const selectionGesture$ = dart.privateName(charts, "SfCircularChart.selectionGesture");
  const enableMultiSelection$ = dart.privateName(charts, "SfCircularChart.enableMultiSelection");
  charts.SfCircularChart = class SfCircularChart extends framework.StatefulWidget {
    get title() {
      return this[title$];
    }
    set title(value) {
      super.title = value;
    }
    get series() {
      return this[series$];
    }
    set series(value) {
      super.series = value;
    }
    get margin() {
      return this[margin$];
    }
    set margin(value) {
      super.margin = value;
    }
    get legend() {
      return this[legend$];
    }
    set legend(value) {
      super.legend = value;
    }
    get tooltipBehavior() {
      return this[tooltipBehavior$];
    }
    set tooltipBehavior(value) {
      super.tooltipBehavior = value;
    }
    get backgroundColor() {
      return this[backgroundColor$];
    }
    set backgroundColor(value) {
      super.backgroundColor = value;
    }
    get annotations() {
      return this[annotations$];
    }
    set annotations(value) {
      super.annotations = value;
    }
    get borderColor() {
      return this[borderColor$];
    }
    set borderColor(value) {
      super.borderColor = value;
    }
    get borderWidth() {
      return this[borderWidth$];
    }
    set borderWidth(value) {
      super.borderWidth = value;
    }
    get backgroundImage() {
      return this[backgroundImage$];
    }
    set backgroundImage(value) {
      super.backgroundImage = value;
    }
    get centerX() {
      return this[centerX$];
    }
    set centerX(value) {
      super.centerX = value;
    }
    get centerY() {
      return this[centerY$];
    }
    set centerY(value) {
      super.centerY = value;
    }
    get onLegendItemRender() {
      return this[onLegendItemRender$];
    }
    set onLegendItemRender(value) {
      super.onLegendItemRender = value;
    }
    get onTooltipRender() {
      return this[onTooltipRender$];
    }
    set onTooltipRender(value) {
      super.onTooltipRender = value;
    }
    get onDataLabelRender() {
      return this[onDataLabelRender$];
    }
    set onDataLabelRender(value) {
      super.onDataLabelRender = value;
    }
    get onPointTapped() {
      return this[onPointTapped$];
    }
    set onPointTapped(value) {
      super.onPointTapped = value;
    }
    get onLegendTapped() {
      return this[onLegendTapped$];
    }
    set onLegendTapped(value) {
      super.onLegendTapped = value;
    }
    get onSelectionChanged() {
      return this[onSelectionChanged$];
    }
    set onSelectionChanged(value) {
      super.onSelectionChanged = value;
    }
    get palette() {
      return this[palette$];
    }
    set palette(value) {
      super.palette = value;
    }
    get selectionGesture() {
      return this[selectionGesture$];
    }
    set selectionGesture(value) {
      super.selectionGesture = value;
    }
    get enableMultiSelection() {
      return this[enableMultiSelection$];
    }
    set enableMultiSelection(value) {
      super.enableMultiSelection = value;
    }
    createState() {
      return new charts._SfCircularChartState.new();
    }
  };
  (charts.SfCircularChart.new = function(opts) {
    let t0, t0$, t0$0, t0$1, t0$2, t0$3, t0$4, t0$5, t0$6;
    let key = opts && 'key' in opts ? opts.key : null;
    let backgroundColor = opts && 'backgroundColor' in opts ? opts.backgroundColor : null;
    let backgroundImage = opts && 'backgroundImage' in opts ? opts.backgroundImage : null;
    let annotations = opts && 'annotations' in opts ? opts.annotations : null;
    let borderColor = opts && 'borderColor' in opts ? opts.borderColor : C0 || CT.C0;
    let borderWidth = opts && 'borderWidth' in opts ? opts.borderWidth : 0;
    let onLegendItemRender = opts && 'onLegendItemRender' in opts ? opts.onLegendItemRender : null;
    let onTooltipRender = opts && 'onTooltipRender' in opts ? opts.onTooltipRender : null;
    let onDataLabelRender = opts && 'onDataLabelRender' in opts ? opts.onDataLabelRender : null;
    let onPointTapped = opts && 'onPointTapped' in opts ? opts.onPointTapped : null;
    let onLegendTapped = opts && 'onLegendTapped' in opts ? opts.onLegendTapped : null;
    let onSelectionChanged = opts && 'onSelectionChanged' in opts ? opts.onSelectionChanged : null;
    let palette = opts && 'palette' in opts ? opts.palette : C1 || CT.C1;
    let title = opts && 'title' in opts ? opts.title : null;
    let margin = opts && 'margin' in opts ? opts.margin : null;
    let series = opts && 'series' in opts ? opts.series : null;
    let legend = opts && 'legend' in opts ? opts.legend : null;
    let centerX = opts && 'centerX' in opts ? opts.centerX : null;
    let centerY = opts && 'centerY' in opts ? opts.centerY : null;
    let tooltipBehavior = opts && 'tooltipBehavior' in opts ? opts.tooltipBehavior : null;
    let selectionGesture = opts && 'selectionGesture' in opts ? opts.selectionGesture : null;
    let enableMultiSelection = opts && 'enableMultiSelection' in opts ? opts.enableMultiSelection : null;
    let $36creationLocationd_0dea112b090073317d4 = opts && '$creationLocationd_0dea112b090073317d4' in opts ? opts.$creationLocationd_0dea112b090073317d4 : null;
    this[_needToMoveFromCenter] = null;
    this[_chartState] = null;
    this[_chartLegend] = null;
    this[_chartSeries] = null;
    this[_circularArea] = null;
    this[backgroundColor$] = backgroundColor;
    this[backgroundImage$] = backgroundImage;
    this[annotations$] = annotations;
    this[borderColor$] = borderColor;
    this[borderWidth$] = borderWidth;
    this[onLegendItemRender$] = onLegendItemRender;
    this[onTooltipRender$] = onTooltipRender;
    this[onDataLabelRender$] = onDataLabelRender;
    this[onPointTapped$] = onPointTapped;
    this[onLegendTapped$] = onLegendTapped;
    this[onSelectionChanged$] = onSelectionChanged;
    this[palette$] = palette;
    this[series$] = series = (t0 = series, t0 == null ? JSArrayOfCircularSeries().of([]) : t0);
    this[title$] = (t0$ = title, t0$ == null ? new charts.ChartTitle.new() : t0$);
    this[legend$] = (t0$0 = legend, t0$0 == null ? new charts.Legend.new() : t0$0);
    this[margin$] = (t0$1 = margin, t0$1 == null ? C12 || CT.C12 : t0$1);
    this[centerX$] = (t0$2 = centerX, t0$2 == null ? "50%" : t0$2);
    this[centerY$] = (t0$3 = centerY, t0$3 == null ? "50%" : t0$3);
    this[tooltipBehavior$] = (t0$4 = tooltipBehavior, t0$4 == null ? new charts.TooltipBehavior.new() : t0$4);
    this[selectionGesture$] = (t0$5 = selectionGesture, t0$5 == null ? charts.ActivationMode.singleTap : t0$5);
    this[enableMultiSelection$] = (t0$6 = enableMultiSelection, t0$6 == null ? false : t0$6);
    charts.SfCircularChart.__proto__.new.call(this, {key: key, $creationLocationd_0dea112b090073317d4: $36creationLocationd_0dea112b090073317d4});
    this[_chartSeries] = new charts._CircularSeries.new();
    this[_circularArea] = new charts._CircularArea.new({$creationLocationd_0dea112b090073317d4: C13 || CT.C13});
    this[_chartLegend] = new charts._ChartLegend.new();
    this[_needToMoveFromCenter] = true;
  }).prototype = charts.SfCircularChart.prototype;
  dart.addTypeTests(charts.SfCircularChart);
  dart.setMethodSignature(charts.SfCircularChart, () => ({
    __proto__: dart.getMethods(charts.SfCircularChart.__proto__),
    createState: dart.fnType(framework.State$(framework.StatefulWidget), [])
  }));
  dart.setLibraryUri(charts.SfCircularChart, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.SfCircularChart, () => ({
    __proto__: dart.getFields(charts.SfCircularChart.__proto__),
    title: dart.finalFieldType(charts.ChartTitle),
    series: dart.finalFieldType(core.List$(charts.CircularSeries)),
    margin: dart.finalFieldType(edge_insets.EdgeInsets),
    legend: dart.finalFieldType(charts.Legend),
    tooltipBehavior: dart.finalFieldType(charts.TooltipBehavior),
    backgroundColor: dart.finalFieldType(ui.Color),
    annotations: dart.finalFieldType(core.List$(charts.CircularChartAnnotation)),
    borderColor: dart.finalFieldType(ui.Color),
    borderWidth: dart.finalFieldType(core.double),
    backgroundImage: dart.finalFieldType(image_provider.ImageProvider),
    centerX: dart.finalFieldType(core.String),
    centerY: dart.finalFieldType(core.String),
    [_needToMoveFromCenter]: dart.fieldType(core.bool),
    onLegendItemRender: dart.finalFieldType(dart.fnType(dart.void, [charts.LegendRenderArgs])),
    onTooltipRender: dart.finalFieldType(dart.fnType(dart.void, [charts.TooltipArgs])),
    onDataLabelRender: dart.finalFieldType(dart.fnType(dart.void, [charts.DataLabelRenderArgs])),
    onPointTapped: dart.finalFieldType(dart.fnType(dart.void, [charts.PointTapArgs])),
    onLegendTapped: dart.finalFieldType(dart.fnType(dart.void, [charts.LegendTapArgs])),
    onSelectionChanged: dart.finalFieldType(dart.fnType(dart.void, [charts.SelectionArgs])),
    palette: dart.finalFieldType(core.List$(ui.Color)),
    [_chartState]: dart.fieldType(charts._SfCircularChartState),
    selectionGesture: dart.finalFieldType(charts.ActivationMode),
    enableMultiSelection: dart.finalFieldType(core.bool),
    [_chartLegend]: dart.fieldType(charts._ChartLegend),
    [_chartSeries]: dart.fieldType(charts._CircularSeries),
    [_circularArea]: dart.fieldType(charts._CircularArea)
  }));
  const _chartWidgets = dart.privateName(charts, "_chartWidgets");
  const _chartTheme = dart.privateName(charts, "_chartTheme");
  const _chartTemplate = dart.privateName(charts, "_chartTemplate");
  const _tapPosition = dart.privateName(charts, "_tapPosition");
  const _isLegendToggled = dart.privateName(charts, "_isLegendToggled");
  const _oldPoints = dart.privateName(charts, "_oldPoints");
  const _initializeDefaultValues = dart.privateName(charts, "_initializeDefaultValues");
  const _renderPoints = dart.privateName(charts, "_renderPoints");
  const _redraw = dart.privateName(charts, "_redraw");
  const _refresh = dart.privateName(charts, "_refresh");
  const _renderChartElements = dart.privateName(charts, "_renderChartElements");
  let C17;
  let C16;
  let C15;
  let C20;
  let C21;
  let C19;
  let C18;
  let C24;
  let C23;
  let C22;
  let C27;
  let C26;
  let C25;
  const _initialize = dart.privateName(charts, "_initialize");
  const _findVisibleSeries = dart.privateName(charts, "_findVisibleSeries");
  const _processDataPoints = dart.privateName(charts, "_processDataPoints");
  let C30;
  let C29;
  let C28;
  let C33;
  let C32;
  let C31;
  const _calculateLegendBounds = dart.privateName(charts, "_calculateLegendBounds");
  let C36;
  let C35;
  let C34;
  let C39;
  let C38;
  let C37;
  let C42;
  let C41;
  let C40;
  const State_TickerProviderStateMixin$36 = class State_TickerProviderStateMixin extends framework.State$(charts.SfCircularChart) {};
  (State_TickerProviderStateMixin$36.new = function() {
    ticker_provider.TickerProviderStateMixin$(charts.SfCircularChart)[dart.mixinNew].call(this);
    State_TickerProviderStateMixin$36.__proto__.new.call(this);
  }).prototype = State_TickerProviderStateMixin$36.prototype;
  dart.applyMixin(State_TickerProviderStateMixin$36, ticker_provider.TickerProviderStateMixin$(charts.SfCircularChart));
  charts._SfCircularChartState = class _SfCircularChartState extends State_TickerProviderStateMixin$36 {
    initState() {
      this[_initializeDefaultValues]();
      super.initState();
    }
    [_initializeDefaultValues]() {
      let t0;
      this.animateCompleted = false;
      this.initialRender = true;
      this.controllerList = JSArrayOfAnimationController().of([]);
      this.annotationController = new animation_controller.AnimationController.new({vsync: this});
      this.seriesRepaintNotifier = new (ValueNotifierOfint()).new(0);
      this.legendWidgetContext = JSArrayOf_MeasureWidgetContext().of([]);
      this.explodedPoints = JSArrayOfint().of([]);
      this.templates = JSArrayOf_ChartTemplateInfo().of([]);
      this.legendToggleStates = JSArrayOf_LegendRenderContext().of([]);
      this.selectedDataPoints = JSArrayOfChartPoint().of([]);
      this.unselectedDataPoints = JSArrayOfChartPoint().of([]);
      this.selectedRegions = JSArrayOf_Region().of([]);
      this.unselectedRegions = JSArrayOf_Region().of([]);
      this.legendToggleTemplateStates = JSArrayOf_MeasureWidgetContext().of([]);
      this.dataLabelTemplateRegions = JSArrayOfRect().of([]);
      this.annotationRegions = JSArrayOfRect().of([]);
      this.widgetNeedUpdate = false;
      this[_isLegendToggled] = false;
      this.selectionData = JSArrayOfint().of([]);
      this.animationController = (t0 = new animation_controller.AnimationController.new({vsync: this}), t0.addListener(dart.bind(this, 'repaintChartElements')), t0);
    }
    didChangeDependencies() {
      this[_chartTheme] = charts_theme.SfChartTheme.of(this.context);
      super.didChangeDependencies();
    }
    didUpdateWidget(oldWidget) {
      charts.SfCircularChart._check(oldWidget);
      charts._needsRepaintCircularChart(this.widget, oldWidget);
      let needExplodeAll = dart.test(this.widget.series[$_get](0).explodeAll) && dart.test(this.widget.series[$_get](0).explode) && !dart.equals(oldWidget.series[$_get](0).explodeAll, this.widget.series[$_get](0).explodeAll);
      this[_isLegendToggled] = false;
      oldWidget[_chartState].initialRender = needExplodeAll;
      this.widgetNeedUpdate = true;
      this.prevSeries = oldWidget.series[$_get](0);
      if (dart.test(this.legendWidgetContext[$isNotEmpty])) {
        this.legendWidgetContext[$clear]();
      }
      super.didUpdateWidget(oldWidget);
    }
    dispose() {
      if (this.animationController != null) {
        this.animationController.removeListener(dart.bind(this, 'repaintChartElements'));
        this.animationController.dispose();
        this.animationController = null;
      }
      super.dispose();
    }
    repaintChartElements() {
      let t0;
      t0 = this.seriesRepaintNotifier;
      t0.value = dart.notNull(t0.value) + 1;
    }
    [_redraw]() {
      this.widget[_chartState].initialRender = false;
      if (dart.test(this[_isLegendToggled])) {
        this.prevSeries = this.widget.series[$_get](0);
        this[_oldPoints] = ListOfChartPoint().new(this.widget.series[$_get](0)[_renderPoints][$length]);
        for (let i = 0; i < dart.notNull(this.widget.series[$_get](0)[_renderPoints][$length]); i = i + 1) {
          this[_oldPoints][$_set](i, this.widget.series[$_get](0)[_renderPoints][$_get](i));
        }
      }
      this.setState(dart.fn(() => {
      }, VoidToNull()));
    }
    [_refresh]() {
      if (dart.test(this.widget[_chartState].legendWidgetContext[$isNotEmpty])) {
        for (let i = 0; i < dart.notNull(this.widget[_chartState].legendWidgetContext[$length]); i = i + 1) {
          let templateContext = this.widget[_chartState].legendWidgetContext[$_get](i);
          let renderBox = box.RenderBox._check(templateContext.context.findRenderObject());
          templateContext.size = renderBox.size;
        }
        this.setState(dart.fn(() => {
        }, VoidToNull()));
      }
    }
    build(context) {
      let t0;
      core$.SyncfusionLicense.validateLicense(context);
      this.widget[_chartState] = this;
      return new container.Container.new({child: new gesture_detector.GestureDetector.new({child: new container.Container.new({decoration: new box_decoration.BoxDecoration.new({color: (t0 = this.widget.backgroundColor, t0 == null ? this[_chartTheme].plotAreaBackgroundColor : t0), image: this.widget.backgroundImage != null ? new decoration_image.DecorationImage.new({image: this.widget.backgroundImage, fit: box_fit.BoxFit.fill}) : null, border: box_border.Border.all({color: this.widget.borderColor, width: this.widget.borderWidth})}), child: new basic.Column.new({children: JSArrayOfWidget().of([charts._renderChartTitle(this.widget), this[_renderChartElements]()]), $creationLocationd_0dea112b090073317d4: C15 || CT.C15}), $creationLocationd_0dea112b090073317d4: C18 || CT.C18}), $creationLocationd_0dea112b090073317d4: C22 || CT.C22}), $creationLocationd_0dea112b090073317d4: C25 || CT.C25});
    }
    [_renderChartElements]() {
      return new basic.Expanded.new({child: new layout_builder.LayoutBuilder.new({builder: dart.fn((context, constraints) => {
            let element = null;
            this[_initialize](constraints);
            this.widget[_chartSeries][_findVisibleSeries]();
            this.widget[_chartSeries][_processDataPoints]();
            let legendTemplates = charts._bindLegendTemplateWidgets(this.widget);
            if (dart.test(legendTemplates[$isNotEmpty]) && dart.test(this.legendWidgetContext[$isEmpty])) {
              element = new container.Container.new({child: new basic.Stack.new({children: legendTemplates, $creationLocationd_0dea112b090073317d4: C28 || CT.C28}), $creationLocationd_0dea112b090073317d4: C31 || CT.C31});
              binding.SchedulerBinding.instance.addPostFrameCallback(dart.fn(_ => this[_refresh](), DurationTovoid()));
            } else {
              this.widget[_chartLegend][_calculateLegendBounds](this.widget[_chartLegend].chartSize);
              element = charts._getElements(this.widget, new charts._CircularArea.new({chart: this.widget, $creationLocationd_0dea112b090073317d4: C34 || CT.C34}), constraints);
            }
            this.widget[_chartState].oldDeviceOrientation = media_query.MediaQuery.of(context).orientation;
            return element;
          }, BuildContextAndBoxConstraintsToWidget()), $creationLocationd_0dea112b090073317d4: C37 || CT.C37}), $creationLocationd_0dea112b090073317d4: C40 || CT.C40});
    }
    [_initialize](constraints) {
      this.widget[_chartLegend].chart = this.widget;
      this.widget[_chartSeries].chart = this.widget;
      let width = constraints.maxWidth;
      let height = constraints.maxHeight;
      let margin = this.widget.margin;
      this.widget.legend.legendPosition = dart.equals(this.widget.legend.position, charts.LegendPosition.auto) ? dart.dtest(dart.dsend(height, '>', [width])) ? charts.LegendPosition.bottom : charts.LegendPosition.right : this.widget.legend.position;
      this.widget[_chartLegend].chartSize = new ui.Size.new(core.double._check(dart.dsend(dart.dsend(width, '-', [margin.left]), '-', [margin.right])), core.double._check(dart.dsend(dart.dsend(height, '-', [margin.top]), '-', [margin.bottom])));
    }
  };
  (charts._SfCircularChartState.new = function() {
    this.controllerList = null;
    this.animationController = null;
    this.annotationController = null;
    this.seriesRepaintNotifier = null;
    this.legendWidgetContext = null;
    this.templates = null;
    this[_chartWidgets] = null;
    this[_chartTheme] = null;
    this.centerLocation = null;
    this.chartContainerRect = null;
    this.chartAreaRect = null;
    this.animateCompleted = null;
    this.explodedPoints = null;
    this.legendToggleStates = null;
    this.legendToggleTemplateStates = null;
    this.initialRender = null;
    this.selectedDataPoints = null;
    this.unselectedDataPoints = null;
    this.selectedRegions = null;
    this.unselectedRegions = null;
    this.dataLabelTemplateRegions = null;
    this.annotationRegions = null;
    this[_chartTemplate] = null;
    this.currentActive = null;
    this[_tapPosition] = null;
    this.renderDataLabel = null;
    this.widgetNeedUpdate = null;
    this[_isLegendToggled] = null;
    this.prevSeries = null;
    this[_oldPoints] = null;
    this.selectionData = null;
    this.chartElementAnimation = null;
    this.oldDeviceOrientation = null;
    charts._SfCircularChartState.__proto__.new.call(this);
    ;
  }).prototype = charts._SfCircularChartState.prototype;
  dart.addTypeTests(charts._SfCircularChartState);
  dart.setMethodSignature(charts._SfCircularChartState, () => ({
    __proto__: dart.getMethods(charts._SfCircularChartState.__proto__),
    [_initializeDefaultValues]: dart.fnType(dart.void, []),
    repaintChartElements: dart.fnType(dart.void, []),
    [_redraw]: dart.fnType(dart.void, []),
    [_refresh]: dart.fnType(dart.void, []),
    build: dart.fnType(framework.Widget, [framework.BuildContext]),
    [_renderChartElements]: dart.fnType(framework.Widget, []),
    [_initialize]: dart.fnType(dart.void, [box.BoxConstraints])
  }));
  dart.setLibraryUri(charts._SfCircularChartState, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._SfCircularChartState, () => ({
    __proto__: dart.getFields(charts._SfCircularChartState.__proto__),
    controllerList: dart.fieldType(core.List$(animation_controller.AnimationController)),
    animationController: dart.fieldType(animation_controller.AnimationController),
    annotationController: dart.fieldType(animation_controller.AnimationController),
    seriesRepaintNotifier: dart.fieldType(change_notifier.ValueNotifier$(core.int)),
    legendWidgetContext: dart.fieldType(core.List$(charts._MeasureWidgetContext)),
    templates: dart.fieldType(core.List$(charts._ChartTemplateInfo)),
    [_chartWidgets]: dart.fieldType(core.List$(framework.Widget)),
    [_chartTheme]: dart.fieldType(charts_theme.SfChartThemeData),
    centerLocation: dart.fieldType(ui.Offset),
    chartContainerRect: dart.fieldType(ui.Rect),
    chartAreaRect: dart.fieldType(ui.Rect),
    animateCompleted: dart.fieldType(core.bool),
    explodedPoints: dart.fieldType(core.List$(core.int)),
    legendToggleStates: dart.fieldType(core.List$(charts._LegendRenderContext)),
    legendToggleTemplateStates: dart.fieldType(core.List$(charts._MeasureWidgetContext)),
    initialRender: dart.fieldType(core.bool),
    selectedDataPoints: dart.fieldType(core.List$(charts.ChartPoint)),
    unselectedDataPoints: dart.fieldType(core.List$(charts.ChartPoint)),
    selectedRegions: dart.fieldType(core.List$(charts._Region)),
    unselectedRegions: dart.fieldType(core.List$(charts._Region)),
    dataLabelTemplateRegions: dart.fieldType(core.List$(ui.Rect)),
    annotationRegions: dart.fieldType(core.List$(ui.Rect)),
    [_chartTemplate]: dart.fieldType(charts._ChartTemplate),
    currentActive: dart.fieldType(charts._ChartInteraction),
    [_tapPosition]: dart.fieldType(ui.Offset),
    renderDataLabel: dart.fieldType(charts._CircularDataLabelRenderer),
    widgetNeedUpdate: dart.fieldType(core.bool),
    [_isLegendToggled]: dart.fieldType(core.bool),
    prevSeries: dart.fieldType(charts.CircularSeries),
    [_oldPoints]: dart.fieldType(core.List$(charts.ChartPoint)),
    selectionData: dart.fieldType(core.List$(core.int)),
    chartElementAnimation: dart.fieldType(animation.Animation$(core.double)),
    oldDeviceOrientation: dart.fieldType(media_query.Orientation)
  }));
  const _initializeChart = dart.privateName(charts, "_initializeChart");
  const _name = dart.privateName(box_border, "_name");
  let C44;
  const BoxDecoration_shape = dart.privateName(box_decoration, "BoxDecoration.shape");
  const BoxDecoration_backgroundBlendMode = dart.privateName(box_decoration, "BoxDecoration.backgroundBlendMode");
  const BoxDecoration_gradient = dart.privateName(box_decoration, "BoxDecoration.gradient");
  const BoxDecoration_boxShadow = dart.privateName(box_decoration, "BoxDecoration.boxShadow");
  const BoxDecoration_borderRadius = dart.privateName(box_decoration, "BoxDecoration.borderRadius");
  const BoxDecoration_border = dart.privateName(box_decoration, "BoxDecoration.border");
  const BoxDecoration_image = dart.privateName(box_decoration, "BoxDecoration.image");
  const BoxDecoration_color = dart.privateName(box_decoration, "BoxDecoration.color");
  let C43;
  let C47;
  let C48;
  let C49;
  let C46;
  let C45;
  const _onHover = dart.privateName(charts, "_onHover");
  const _isHovering = dart.privateName(charts, "_isHovering");
  let C52;
  let C53;
  let C54;
  let C51;
  let C50;
  const _onTapUp = dart.privateName(charts, "_onTapUp");
  const _onTapDown = dart.privateName(charts, "_onTapDown");
  const _onLongPress = dart.privateName(charts, "_onLongPress");
  const _onDoubleTap = dart.privateName(charts, "_onDoubleTap");
  let C57;
  let C58;
  let C59;
  let C56;
  let C55;
  let C62;
  let C63;
  let C64;
  let C61;
  let C60;
  let C67;
  let C68;
  let C69;
  let C66;
  let C65;
  let C72;
  let C71;
  let C70;
  let C75;
  let C74;
  let C73;
  let C78;
  let C77;
  let C76;
  const _dataPoints$ = dart.privateName(charts, "_dataPoints");
  const _calculatePointSeriesIndex = dart.privateName(charts, "_calculatePointSeriesIndex");
  const _tooltipTemplate = dart.privateName(charts, "_tooltipTemplate");
  const _performTooltip = dart.privateName(charts, "_performTooltip");
  const _seriesPointExplosion = dart.privateName(charts, "_seriesPointExplosion");
  const _seriesPointSelection = dart.privateName(charts, "_seriesPointSelection");
  const _painter = dart.privateName(charts, "_painter");
  const _calculateSize = dart.privateName(charts, "_calculateSize");
  const _calculateAngleAndCenterPositions = dart.privateName(charts, "_calculateAngleAndCenterPositions");
  const _renderWidgets = dart.privateName(charts, "_renderWidgets");
  let C81;
  let C82;
  let C80;
  let C79;
  const _bindSeriesWidgets = dart.privateName(charts, "_bindSeriesWidgets");
  const _findTemplates = dart.privateName(charts, "_findTemplates");
  const _renderTemplates = dart.privateName(charts, "_renderTemplates");
  const _bindTooltipWidgets = dart.privateName(charts, "_bindTooltipWidgets");
  let C85;
  let C84;
  let C83;
  let C88;
  let C87;
  let C86;
  let C91;
  let C92;
  let C93;
  let C90;
  let C89;
  let C96;
  let C97;
  let C98;
  let C95;
  let C94;
  let C101;
  let C102;
  let C100;
  let C99;
  let C105;
  let C104;
  let C103;
  let C107;
  const Interval_curve = dart.privateName(curves, "Interval.curve");
  const Interval_end = dart.privateName(curves, "Interval.end");
  const Interval_begin = dart.privateName(curves, "Interval.begin");
  let C106;
  let C109;
  let C108;
  const _seriesType$ = dart.privateName(charts, "_seriesType");
  const _needsRepaint = dart.privateName(charts, "_needsRepaint");
  let C112;
  let C111;
  let C110;
  let C115;
  let C114;
  let C113;
  let C118;
  let C119;
  let C117;
  let C116;
  charts._CircularArea = class _CircularArea extends framework.StatelessWidget {
    build(context) {
      return new layout_builder.LayoutBuilder.new({builder: dart.fn((context, constraints) => new container.Container.new({child: new basic.Stack.new({children: JSArrayOfWidget().of([this[_initializeChart](constraints, context), new basic.MouseRegion.new({child: new container.Container.new({height: constraints.maxHeight, width: constraints.maxWidth, decoration: C43 || CT.C43, $creationLocationd_0dea112b090073317d4: C45 || CT.C45}), onHover: dart.fn(event => this[_onHover](event), PointerEventTovoid()), onExit: dart.fn(event => {
                  this.chart.tooltipBehavior[_isHovering] = false;
                }, PointerEventToNull()), $creationLocationd_0dea112b090073317d4: C50 || CT.C50}), new basic.Listener.new({onPointerUp: dart.fn(event => this[_onTapUp](event), PointerUpEventTovoid()), onPointerDown: dart.fn(event => this[_onTapDown](event), PointerDownEventTovoid()), child: new gesture_detector.GestureDetector.new({onLongPress: dart.bind(this, _onLongPress), onDoubleTap: dart.bind(this, _onDoubleTap), child: new container.Container.new({height: constraints.maxHeight, width: constraints.maxWidth, decoration: C43 || CT.C43, $creationLocationd_0dea112b090073317d4: C55 || CT.C55}), $creationLocationd_0dea112b090073317d4: C60 || CT.C60}), $creationLocationd_0dea112b090073317d4: C65 || CT.C65})]), $creationLocationd_0dea112b090073317d4: C70 || CT.C70}), $creationLocationd_0dea112b090073317d4: C73 || CT.C73}), BuildContextAndBoxConstraintsToContainer()), $creationLocationd_0dea112b090073317d4: C76 || CT.C76});
    }
    [_calculatePointSeriesIndex](chart, pointRegion) {
      let pointTapArgs = null;
      pointTapArgs = new charts.PointTapArgs.new();
      pointTapArgs.pointIndex = pointRegion.pointIndex;
      pointTapArgs.seriesIndex = pointRegion.seriesIndex;
      pointTapArgs.dataPoints = chart[_chartSeries].visibleSeries[$_get](pointTapArgs.seriesIndex)[_dataPoints$];
      chart.onPointTapped(pointTapArgs);
    }
    [_onTapDown](event) {
      let t0, t0$, t0$0, t0$1, t0$2;
      this.chart.tooltipBehavior[_isHovering] = false;
      this.chart[_chartState].currentActive = null;
      this.chart[_chartState][_tapPosition] = this.renderBox.globalToLocal(event.position);
      this.pointRegion = charts._getPointRegion(this.chart, this.chart[_chartState][_tapPosition]);
      if (this.chart.onPointTapped != null && this.pointRegion != null) {
        this[_calculatePointSeriesIndex](this.chart, this.pointRegion);
      }
      this.doubleTapPosition = this.chart[_chartState][_tapPosition];
      if (this.chart[_chartState][_tapPosition] != null && this.pointRegion != null) {
        this.chart[_chartState].currentActive = new charts._ChartInteraction.new(this.pointRegion.seriesIndex, this.pointRegion.pointIndex, this.chart[_chartSeries].visibleSeries[$_get](this.pointRegion.seriesIndex), this.chart[_chartSeries].visibleSeries[$_get](this.pointRegion.seriesIndex)[_renderPoints][$_get](this.pointRegion.pointIndex), this.pointRegion);
      } else {
        t0$ = (t0 = this.chart.tooltipBehavior, t0 == null ? null : t0[_tooltipTemplate]);
        t0$ == null ? null : t0$.show = false;
        t0$2 = (t0$1 = (t0$0 = this.chart.tooltipBehavior, t0$0 == null ? null : t0$0[_tooltipTemplate]), t0$1 == null ? null : t0$1.state);
        t0$2 == null ? null : t0$2[_performTooltip]();
      }
    }
    [_onDoubleTap]() {
      if (this.doubleTapPosition != null && this.pointRegion != null) {
        this.chart[_chartState].currentActive = new charts._ChartInteraction.new(this.pointRegion.seriesIndex, this.pointRegion.pointIndex, this.chart[_chartSeries].visibleSeries[$_get](this.pointRegion.seriesIndex), this.chart[_chartSeries].visibleSeries[$_get](this.pointRegion.seriesIndex)[_renderPoints][$_get](this.pointRegion.pointIndex), this.pointRegion);
        if (this.chart[_chartState].currentActive != null) {
          if (dart.equals(dart.dload(this.chart[_chartState].currentActive.series, 'explodeGesture'), charts.ActivationMode.doubleTap)) {
            this.chart[_chartSeries][_seriesPointExplosion](this.chart[_chartState].currentActive.region);
          }
        }
        this.chart[_chartSeries][_seriesPointSelection](this.pointRegion, charts.ActivationMode.doubleTap);
        if (dart.test(this.chart.tooltipBehavior.enable) && dart.equals(this.chart.tooltipBehavior.activationMode, charts.ActivationMode.doubleTap)) {
          this.chart.tooltipBehavior.onDoubleTap(this.doubleTapPosition.dx[$toDouble](), this.doubleTapPosition.dy[$toDouble]());
        }
      }
    }
    [_onLongPress]() {
      if (this.chart[_chartState][_tapPosition] != null && this.pointRegion != null) {
        this.chart[_chartState].currentActive = new charts._ChartInteraction.new(this.pointRegion.seriesIndex, this.pointRegion.pointIndex, this.chart[_chartSeries].visibleSeries[$_get](this.pointRegion.seriesIndex), this.chart[_chartSeries].visibleSeries[$_get](this.pointRegion.seriesIndex)[_renderPoints][$_get](this.pointRegion.pointIndex), this.pointRegion);
        this.chart[_chartSeries][_seriesPointSelection](this.pointRegion, charts.ActivationMode.longPress);
        if (this.chart[_chartState].currentActive != null) {
          if (dart.equals(dart.dload(this.chart[_chartState].currentActive.series, 'explodeGesture'), charts.ActivationMode.longPress)) {
            this.chart[_chartSeries][_seriesPointExplosion](this.chart[_chartState].currentActive.region);
          }
        }
        if (dart.test(this.chart.tooltipBehavior.enable) && dart.equals(this.chart.tooltipBehavior.activationMode, charts.ActivationMode.longPress)) {
          this.chart.tooltipBehavior.onLongPress(this.chart[_chartState][_tapPosition].dx[$toDouble](), this.chart[_chartState][_tapPosition].dy[$toDouble]());
        }
      }
    }
    [_onTapUp](event) {
      let t0, t0$;
      this.chart.tooltipBehavior[_isHovering] = false;
      if (this.chart[_chartState][_tapPosition] != null) {
        if (this.chart[_chartState].currentActive != null && this.chart[_chartState].currentActive.series != null && dart.equals(dart.dload(this.chart[_chartState].currentActive.series, 'explodeGesture'), charts.ActivationMode.singleTap)) {
          this.chart[_chartSeries][_seriesPointExplosion](this.chart[_chartState].currentActive.region);
        }
        if (this.chart[_chartState][_tapPosition] != null && this.chart[_chartState].currentActive != null) {
          this.chart[_chartSeries][_seriesPointSelection](this.chart[_chartState].currentActive.region, charts.ActivationMode.singleTap);
        }
        if (dart.test(this.chart.tooltipBehavior.enable) && dart.equals(this.chart.tooltipBehavior.activationMode, charts.ActivationMode.singleTap) && this.chart[_chartState].currentActive != null && this.chart[_chartState].currentActive.series != null) {
          if (this.chart.tooltipBehavior.builder != null) {
            let chartSeries = charts.CircularSeries._check(this.chart[_chartState].currentActive.series);
            let point = charts.ChartPoint._check(this.chart[_chartState].currentActive.point);
            let location = charts._degreeToPoint(point.midAngle, (dart.notNull(point.innerRadius) + dart.notNull(point.outerRadius)) / 2, point.center);
            this.chart.tooltipBehavior[_tooltipTemplate].rect = new ui.Rect.fromLTWH(location.dx, location.dy, 0.0, 0.0);
            this.chart.tooltipBehavior[_tooltipTemplate].template = this.chart.tooltipBehavior.builder(chartSeries.dataSource[$_get](this.chart[_chartState].currentActive.pointIndex), point, chartSeries, this.chart[_chartState].currentActive.seriesIndex, this.chart[_chartState].currentActive.pointIndex);
            this.chart.tooltipBehavior[_tooltipTemplate].show = true;
            t0$ = (t0 = this.chart.tooltipBehavior[_tooltipTemplate], t0 == null ? null : t0.state);
            t0$ == null ? null : t0$[_performTooltip]();
          } else {
            let position = this.renderBox.globalToLocal(event.position);
            this.chart.tooltipBehavior.onTouchUp(position.dx[$toDouble](), position.dy[$toDouble]());
          }
        }
      }
      this.chart[_chartState][_tapPosition] = null;
    }
    [_onHover](event) {
      let t0, t0$, t0$0, t0$1, t0$2, t0$3, t0$4, t0$5, t0$6;
      this.chart[_chartState].currentActive = null;
      this.chart[_chartState][_tapPosition] = this.renderBox.globalToLocal(event.position);
      this.pointRegion = charts._getPointRegion(this.chart, this.chart[_chartState][_tapPosition]);
      if (this.chart.onPointTapped != null && this.pointRegion != null) {
        this[_calculatePointSeriesIndex](this.chart, this.pointRegion);
      }
      if (this.chart[_chartState][_tapPosition] != null && this.pointRegion != null) {
        this.chart[_chartState].currentActive = new charts._ChartInteraction.new(this.pointRegion.seriesIndex, this.pointRegion.pointIndex, this.chart[_chartSeries].visibleSeries[$_get](this.pointRegion.seriesIndex), this.chart[_chartSeries].visibleSeries[$_get](this.pointRegion.seriesIndex)[_renderPoints][$_get](this.pointRegion.pointIndex), this.pointRegion);
      }
      if (this.chart[_chartState][_tapPosition] != null) {
        if (dart.test(this.chart.tooltipBehavior.enable) && this.chart[_chartState].currentActive != null && this.chart[_chartState].currentActive.series != null) {
          this.chart.tooltipBehavior[_isHovering] = true;
          let position = this.renderBox.globalToLocal(event.position);
          this.chart.tooltipBehavior.onEnter(position.dx[$toDouble](), position.dy[$toDouble]());
        } else {
          t0$0 = (t0$ = (t0 = this.chart, t0 == null ? null : t0.tooltipBehavior), t0$ == null ? null : t0$[_painter]);
          t0$0 == null ? null : t0$0.prevTooltipValue = null;
          t0$3 = (t0$2 = (t0$1 = this.chart, t0$1 == null ? null : t0$1.tooltipBehavior), t0$2 == null ? null : t0$2[_painter]);
          t0$3 == null ? null : t0$3.currentTooltipValue = null;
          t0$6 = (t0$5 = (t0$4 = this.chart, t0$4 == null ? null : t0$4.tooltipBehavior), t0$5 == null ? null : t0$5[_painter]);
          t0$6 == null ? null : t0$6.hide();
        }
      }
      this.chart[_chartState][_tapPosition] = null;
    }
    [_initializeChart](constraints, context) {
      let t0;
      this[_calculateSize](constraints);
      t0 = this.chart[_chartSeries];
      t0 == null ? null : t0[_calculateAngleAndCenterPositions]();
      return new container.Container.new({decoration: C43 || CT.C43, child: this[_renderWidgets](constraints, context), $creationLocationd_0dea112b090073317d4: C79 || CT.C79});
    }
    [_calculateSize](constraints) {
      let width = constraints.maxWidth;
      let height = constraints.maxHeight;
      this.chart[_chartState].chartContainerRect = new ui.Rect.fromLTWH(0.0, 0.0, core.double._check(width), core.double._check(height));
      let margin = this.chart.margin;
      this.chart[_chartState].chartAreaRect = new ui.Rect.fromLTWH(margin.left, margin.top, core.double._check(dart.dsend(dart.dsend(width, '-', [margin.right]), '-', [margin.left])), core.double._check(dart.dsend(dart.dsend(height, '-', [margin.top]), '-', [margin.bottom])));
    }
    [_renderWidgets](constraints, context) {
      this[_bindSeriesWidgets](context);
      this[_findTemplates]();
      this[_renderTemplates]();
      this[_bindTooltipWidgets](constraints);
      this.chart[_circularArea] = this;
      this.renderBox = box.RenderBox._check(context.findRenderObject());
      return new container.Container.new({child: new basic.Stack.new({children: this.chart[_chartState][_chartWidgets], $creationLocationd_0dea112b090073317d4: C83 || CT.C83}), $creationLocationd_0dea112b090073317d4: C86 || CT.C86});
    }
    [_findTemplates]() {
      let labelLocation = null;
      let point = null;
      let labelWidget = null;
      this.chart[_chartState].templates = JSArrayOf_ChartTemplateInfo().of([]);
      this.chart[_chartState].dataLabelTemplateRegions = JSArrayOfRect().of([]);
      this.chart[_chartState].annotationRegions = JSArrayOfRect().of([]);
      for (let k = 0; k < dart.notNull(this.chart[_chartSeries].visibleSeries[$length]); k = k + 1) {
        let series = this.chart[_chartSeries].visibleSeries[$_get](k);
        let connector = series.dataLabelSettings.connectorLineSettings;
        if (dart.test(series.dataLabelSettings.isVisible) && series.dataLabelSettings.builder != null) {
          for (let i = 0; i < dart.notNull(series[_renderPoints][$length]); i = i + 1) {
            point = series[_renderPoints][$_get](i);
            let labelAlign = null;
            if (dart.test(point.isVisible)) {
              labelWidget = series.dataLabelSettings.builder(series.dataSource[$_get](i), point, series, i, k);
              if (dart.equals(series.dataLabelSettings.labelPosition, charts.ChartDataLabelPosition.inside)) {
                labelLocation = charts._degreeToPoint(point.midAngle, (dart.notNull(point.innerRadius) + dart.notNull(point.outerRadius)) / 2, point.center);
                labelLocation = new ui.Offset.new(labelLocation.dx, labelLocation.dy);
                labelAlign = charts.ChartAlignment.center;
              } else {
                let connectorLength = charts._percentToValue(connector.length, point.outerRadius);
                labelLocation = charts._degreeToPoint(point.midAngle, dart.notNull(point.outerRadius) + dart.notNull(connectorLength), point.center);
                labelLocation = new ui.Offset.new(dart.equals(point.dataLabelPosition, charts.Position.right) ? dart.notNull(labelLocation.dx) + 10 + 5 : dart.notNull(labelLocation.dx) - 10 - 5, labelLocation.dy);
                labelAlign = dart.equals(point.dataLabelPosition, charts.Position.left) ? charts.ChartAlignment.far : charts.ChartAlignment.near;
              }
              this.chart[_chartState].templates[$add](new charts._ChartTemplateInfo.new({key: GlobalKeyOfStateOfStatefulWidget().new(), templateType: "DataLabel", pointIndex: i, seriesIndex: k, needMeasure: true, clipRect: this.chart[_chartState].chartAreaRect, animationDuration: 500, widget: labelWidget, horizontalAlignment: labelAlign, verticalAlignment: charts.ChartAlignment.center, location: labelLocation}));
            }
          }
        }
      }
      if (this.chart.annotations != null && dart.test(this.chart.annotations[$isNotEmpty])) {
        for (let i = 0; i < dart.notNull(this.chart.annotations[$length]); i = i + 1) {
          let annotation = this.chart.annotations[$_get](i);
          if (annotation.widget != null) {
            let radius = charts._percentToValue(annotation.radius, dart.notNull(this.chart[_chartSeries].size) / 2)[$toDouble]();
            let point = charts._degreeToPoint(annotation.angle, radius, this.chart[_chartState].centerLocation);
            let annotationHeight = charts._percentToValue(annotation.height, dart.notNull(this.chart[_chartSeries].size) / 2);
            let annotationWidth = charts._percentToValue(annotation.width, dart.notNull(this.chart[_chartSeries].size) / 2);
            let templateInfo = new charts._ChartTemplateInfo.new({key: GlobalKeyOfStateOfStatefulWidget().new(), templateType: "Annotation", needMeasure: true, horizontalAlignment: annotation.horizontalAlignment, verticalAlignment: annotation.verticalAlignment, clipRect: this.chart[_chartState].chartContainerRect, widget: dart.notNull(annotationHeight) > 0 && dart.notNull(annotationWidth) > 0 ? new container.Container.new({height: annotationHeight, width: annotationWidth, child: annotation.widget, $creationLocationd_0dea112b090073317d4: C89 || CT.C89}) : annotation.widget, pointIndex: i, animationDuration: 500, location: point});
            this.chart[_chartState].templates[$add](templateInfo);
          }
        }
      }
    }
    [_renderTemplates]() {
      if (dart.test(this.chart[_chartState].templates[$isNotEmpty])) {
        for (let i = 0; i < dart.notNull(this.chart[_chartState].templates[$length]); i = i + 1) {
          let chartTemplateInfo = this.chart[_chartState].templates[$_get](i);
          chartTemplateInfo.animationDuration = !dart.test(this.chart[_chartState].initialRender) ? 0 : chartTemplateInfo.animationDuration;
        }
        this.chart[_chartState][_chartTemplate] = new charts._ChartTemplate.new({templates: this.chart[_chartState].templates, render: this.chart[_chartState].animateCompleted, chart: this.chart, $creationLocationd_0dea112b090073317d4: C94 || CT.C94});
        this.chart[_chartState][_chartWidgets][$add](this.chart[_chartState][_chartTemplate]);
      }
    }
    [_bindTooltipWidgets](constraints) {
      if (dart.test(this.chart.tooltipBehavior.enable)) {
        if (this.chart.tooltipBehavior.builder != null) {
          this.chart.tooltipBehavior[_tooltipTemplate] = new charts._TooltipTemplate.new({show: false, clipRect: this.chart[_chartState].chartContainerRect, $creationLocationd_0dea112b090073317d4: C99 || CT.C99});
          this.chart[_chartState][_chartWidgets][$add](this.chart.tooltipBehavior[_tooltipTemplate]);
        } else {
          this.chart.tooltipBehavior.chartTooltip = new charts._ChartTooltipRenderer.new({chartWidget: this.chart, $creationLocationd_0dea112b090073317d4: C103 || CT.C103});
          this.chart[_chartState][_chartWidgets][$add](this.chart.tooltipBehavior.chartTooltip);
        }
      }
    }
    [_bindSeriesWidgets](context) {
      let t0, t0$;
      let seriesPainter = null;
      let seriesAnimation = null;
      this.chart[_chartState].animateCompleted = false;
      t0 = this.chart[_chartState];
      t0[_chartWidgets] == null ? t0[_chartWidgets] = JSArrayOfWidget().of([]) : null;
      for (let i = 0; i < dart.notNull(this.chart[_chartSeries].visibleSeries[$length]); i = i + 1) {
        this.series = this.chart[_chartSeries].visibleSeries[$_get](i);
        if (this.series.selectionSettings != null) {
          if (dart.test(this.series.initialSelectedDataIndexes[$isNotEmpty])) {
            for (let index = 0; index < dart.notNull(this.series.initialSelectedDataIndexes[$length]); index = index + 1) {
              this.chart[_chartState].selectionData[$add](this.series.initialSelectedDataIndexes[$_get](index));
            }
          }
        }
        this.chart[_chartState].animateCompleted = false;
        if (dart.notNull(this.series.animationDuration) > 0 && (this.chart[_chartState].oldDeviceOrientation == null || dart.equals(this.chart[_chartState].oldDeviceOrientation, media_query.MediaQuery.of(context).orientation)) && (dart.test(this.chart[_chartState].initialRender) || dart.test(this.chart[_chartState].widgetNeedUpdate) || dart.test(this.chart[_chartState][_isLegendToggled]))) {
          this.chart[_chartState].animationController.duration = new core.Duration.new({milliseconds: this.series.animationDuration[$toInt]()});
          seriesAnimation = new (TweenOfdouble()).new({begin: 0.0, end: 1.0}).animate((t0$ = new animations.CurvedAnimation.new({parent: this.chart[_chartState].animationController, curve: C106 || CT.C106}), t0$.addStatusListener(dart.fn(status => {
            if (dart.equals(status, animation.AnimationStatus.completed)) {
              this.chart[_chartState].animateCompleted = true;
              if (this.chart[_chartState].renderDataLabel != null) {
                this.chart[_chartState].renderDataLabel.state.render();
              }
              if (this.chart[_chartState][_chartTemplate] != null && this.chart[_chartState][_chartTemplate].state != null) {
                this.chart[_chartState][_chartTemplate].state.templateRender();
              }
            }
          }, AnimationStatusToNull())), t0$));
          this.chart[_chartState].chartElementAnimation = new (TweenOfdouble()).new({begin: 0.0, end: 1.0}).animate(new animations.CurvedAnimation.new({parent: this.chart[_chartState].animationController, curve: C108 || CT.C108}));
          this.chart[_chartState].animationController.forward({from: 0.0});
        } else {
          this.chart[_chartState].animateCompleted = true;
        }
        if (this.series[_seriesType$] === "pie") {
          seriesPainter = new charts._PieChartPainter.new({chart: this.chart, index: i, isRepaint: this.series[_needsRepaint], animationController: this.chart[_chartState].animationController, seriesAnimation: seriesAnimation, notifier: this.chart[_chartState].seriesRepaintNotifier});
        } else if (this.series[_seriesType$] === "doughnut") {
          seriesPainter = new charts._DoughnutChartPainter.new({chart: this.chart, index: i, isRepaint: this.series[_needsRepaint], animationController: this.chart[_chartState].animationController, seriesAnimation: seriesAnimation, notifier: this.chart[_chartState].seriesRepaintNotifier});
        } else if (this.series[_seriesType$] === "radialbar") {
          seriesPainter = new charts._RadialBarPainter.new({chart: this.chart, index: i, isRepaint: this.series[_needsRepaint], animationController: this.chart[_chartState].animationController, seriesAnimation: seriesAnimation, notifier: this.chart[_chartState].seriesRepaintNotifier});
        }
        this.chart[_chartState][_chartWidgets][$add](new basic.RepaintBoundary.new({child: new basic.CustomPaint.new({painter: seriesPainter, $creationLocationd_0dea112b090073317d4: C110 || CT.C110}), $creationLocationd_0dea112b090073317d4: C113 || CT.C113}));
        this.chart[_chartState].renderDataLabel = new charts._CircularDataLabelRenderer.new({circularChart: this.chart, show: this.chart[_chartState].animateCompleted, $creationLocationd_0dea112b090073317d4: C116 || CT.C116});
        this.chart[_chartState][_chartWidgets][$add](this.chart[_chartState].renderDataLabel);
      }
    }
  };
  (charts._CircularArea.new = function(opts) {
    let chart = opts && 'chart' in opts ? opts.chart : null;
    let $36creationLocationd_0dea112b090073317d4 = opts && '$creationLocationd_0dea112b090073317d4' in opts ? opts.$creationLocationd_0dea112b090073317d4 : null;
    this.series = null;
    this.renderBox = null;
    this.pointRegion = null;
    this.tapDownDetails = null;
    this.doubleTapPosition = null;
    this.chart = chart;
    charts._CircularArea.__proto__.new.call(this, {$creationLocationd_0dea112b090073317d4: $36creationLocationd_0dea112b090073317d4});
    ;
  }).prototype = charts._CircularArea.prototype;
  dart.addTypeTests(charts._CircularArea);
  dart.setMethodSignature(charts._CircularArea, () => ({
    __proto__: dart.getMethods(charts._CircularArea.__proto__),
    build: dart.fnType(framework.Widget, [framework.BuildContext]),
    [_calculatePointSeriesIndex]: dart.fnType(dart.void, [charts.SfCircularChart, charts._Region]),
    [_onTapDown]: dart.fnType(dart.void, [events.PointerDownEvent]),
    [_onDoubleTap]: dart.fnType(dart.void, []),
    [_onLongPress]: dart.fnType(dart.void, []),
    [_onTapUp]: dart.fnType(dart.void, [events.PointerUpEvent]),
    [_onHover]: dart.fnType(dart.void, [events.PointerEvent]),
    [_initializeChart]: dart.fnType(framework.Widget, [box.BoxConstraints, framework.BuildContext]),
    [_calculateSize]: dart.fnType(dart.void, [box.BoxConstraints]),
    [_renderWidgets]: dart.fnType(framework.Widget, [box.BoxConstraints, framework.BuildContext]),
    [_findTemplates]: dart.fnType(dart.void, []),
    [_renderTemplates]: dart.fnType(dart.void, []),
    [_bindTooltipWidgets]: dart.fnType(dart.void, [box.BoxConstraints]),
    [_bindSeriesWidgets]: dart.fnType(dart.void, [framework.BuildContext])
  }));
  dart.setLibraryUri(charts._CircularArea, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._CircularArea, () => ({
    __proto__: dart.getFields(charts._CircularArea.__proto__),
    chart: dart.finalFieldType(charts.SfCircularChart),
    series: dart.fieldType(charts.CircularSeries),
    renderBox: dart.fieldType(box.RenderBox),
    pointRegion: dart.fieldType(charts._Region),
    tapDownDetails: dart.fieldType(tap.TapDownDetails),
    doubleTapPosition: dart.fieldType(ui.Offset)
  }));
  const _setSeriesType = dart.privateName(charts, "_setSeriesType");
  const _sortDataSource = dart.privateName(charts, "_sortDataSource");
  const _calculateCircularEmptyPoints = dart.privateName(charts, "_calculateCircularEmptyPoints");
  const _findGroupPoints = dart.privateName(charts, "_findGroupPoints");
  const _setPointStyle = dart.privateName(charts, "_setPointStyle");
  const _findSumOfPoints = dart.privateName(charts, "_findSumOfPoints");
  const _calculateAngle = dart.privateName(charts, "_calculateAngle");
  const _calculateRadius = dart.privateName(charts, "_calculateRadius");
  const _calculateOrigin = dart.privateName(charts, "_calculateOrigin");
  const _calculateStartAndEndAngle = dart.privateName(charts, "_calculateStartAndEndAngle");
  const _calculateCenterPosition = dart.privateName(charts, "_calculateCenterPosition");
  const _currentRadius = dart.privateName(charts, "_currentRadius");
  const _center = dart.privateName(charts, "_center");
  const _start = dart.privateName(charts, "_start");
  const _end = dart.privateName(charts, "_end");
  const _totalAngle = dart.privateName(charts, "_totalAngle");
  const _rect = dart.privateName(charts, "_rect");
  const _currentInnerRadius = dart.privateName(charts, "_currentInnerRadius");
  const _sumOfPoints = dart.privateName(charts, "_sumOfPoints");
  const _calculatePointRadius = dart.privateName(charts, "_calculatePointRadius");
  const _needExplode = dart.privateName(charts, "_needExplode");
  const _findExplodeCenter = dart.privateName(charts, "_findExplodeCenter");
  charts._CircularSeries = class _CircularSeries extends core.Object {
    [_findVisibleSeries]() {
      this.visibleSeries = JSArrayOfCircularSeries().of([]);
      for (let series of this.chart.series) {
        this[_setSeriesType](series);
        let xValue = series.xValueMapper;
        let yValue = series.yValueMapper;
        let sortField = series.sortFieldValueMapper;
        let _radius = series.pointRadiusMapper;
        let _color = series.pointColorMapper;
        series[_dataPoints$] = JSArrayOfChartPoint().of([]);
        if (series.dataSource != null) {
          for (let pointIndex = 0; pointIndex < dart.notNull(series.dataSource[$length]); pointIndex = pointIndex + 1) {
            let sortVal = null;
            if (dart.dcall(xValue, [pointIndex]) != null) {
              let radius = null;
              let color = null;
              if (series.sortFieldValueMapper != null) {
                sortVal = dart.dcall(sortField, [pointIndex]);
              }
              series[_dataPoints$][$add](new charts.ChartPoint.new(dart.dcall(xValue, [pointIndex]), core.num._check(dart.dcall(yValue, [pointIndex]))));
              if (series.pointRadiusMapper != null) {
                radius = dart.dcall(_radius, [pointIndex]);
                series[_dataPoints$][$_get](dart.notNull(series[_dataPoints$][$length]) - 1).radius = core.String._check(radius);
              }
              if (series.pointColorMapper != null) {
                color = dart.dcall(_color, [pointIndex]);
                series[_dataPoints$][$_get](dart.notNull(series[_dataPoints$][$length]) - 1).pointColor = ui.Color._check(color);
              }
              if (!dart.equals(series.sortingOrder, charts.SortingOrder.none) && sortVal != null) series[_dataPoints$][$_get](dart.notNull(series[_dataPoints$][$length]) - 1).sortValue = sortVal;
            }
          }
        }
        if (!dart.equals(series.sortingOrder, charts.SortingOrder.none) && series.sortFieldValueMapper != null) {
          this[_sortDataSource](series);
        }
        this.visibleSeries[$add](series);
        break;
      }
    }
    [_calculateCircularEmptyPoints](series) {
      for (let i = 0; i < dart.notNull(series[_dataPoints$][$length]); i = i + 1) {
        if (series[_dataPoints$][$_get](i).y == null) series.calculateEmptyPointValue(i, series[_dataPoints$][$_get](i));
      }
    }
    [_processDataPoints]() {
      for (let series of this.visibleSeries) {
        this.currentSeries = series;
        this[_calculateCircularEmptyPoints](this.currentSeries);
        this[_findGroupPoints]();
      }
    }
    [_sortDataSource](series) {
      series[_dataPoints$][$sort](dart.fn((firstPoint, secondPoint) => {
        if (dart.equals(series.sortingOrder, charts.SortingOrder.ascending)) {
          return core.int._check(firstPoint.sortValue == null ? -1 : secondPoint.sortValue == null ? 1 : typeof firstPoint.sortValue == 'string' ? dart.dsend(dart.dsend(firstPoint.sortValue, 'toLowerCase', []), 'compareTo', [dart.dsend(secondPoint.sortValue, 'toLowerCase', [])]) : dart.dsend(firstPoint.sortValue, 'compareTo', [secondPoint.sortValue]));
        } else if (dart.equals(series.sortingOrder, charts.SortingOrder.descending)) {
          return core.int._check(firstPoint.sortValue == null ? 1 : secondPoint.sortValue == null ? -1 : typeof firstPoint.sortValue == 'string' ? dart.dsend(dart.dsend(secondPoint.sortValue, 'toLowerCase', []), 'compareTo', [dart.dsend(firstPoint.sortValue, 'toLowerCase', [])]) : dart.dsend(secondPoint.sortValue, 'compareTo', [firstPoint.sortValue]));
        }
      }, ChartPointAndChartPointToint()));
    }
    [_findGroupPoints]() {
      let t0;
      let groupValue = this.currentSeries.groupTo;
      let mode = this.currentSeries.groupMode;
      let isYText = null;
      let textMapping = this.currentSeries.dataLabelMapper;
      let point = null;
      this.sumOfGroup = 0;
      this.currentSeries[_renderPoints] = JSArrayOfChartPoint().of([]);
      for (let i = 0; i < dart.notNull(this.currentSeries[_dataPoints$][$length]); i = i + 1) {
        point = this.currentSeries[_dataPoints$][$_get](i);
        point.text = core.String._check(point.text == null ? textMapping != null ? (t0 = dart.dcall(textMapping, [i]), t0 == null ? dart.toString(point.y) : t0) : dart.toString(point.y) : point.text);
        isYText = point.text === dart.toString(point.y) ? true : false;
        if (dart.test(point.isVisible)) {
          if (dart.equals(mode, charts.CircularChartGroupMode.point) && groupValue != null && i >= dart.notNull(groupValue)) {
            this.sumOfGroup = dart.notNull(this.sumOfGroup) + point.y[$abs]();
          } else if (dart.equals(mode, charts.CircularChartGroupMode.value) && groupValue != null && dart.notNull(point.y) <= dart.notNull(groupValue)) {
            this.sumOfGroup = dart.notNull(this.sumOfGroup) + point.y[$abs]();
          } else {
            this.currentSeries[_renderPoints][$add](point);
          }
        }
      }
      if (dart.notNull(this.sumOfGroup) > 0) {
        this.currentSeries[_renderPoints][$add](new charts.ChartPoint.new("Others", this.sumOfGroup));
        this.currentSeries[_renderPoints][$_get](dart.notNull(this.currentSeries[_renderPoints][$length]) - 1).text = dart.equals(isYText, true) ? "Others : " + dart.toString(this.sumOfGroup) : "Others";
      }
      this[_setPointStyle]();
    }
    [_setPointStyle]() {
      let t0;
      let empty = this.currentSeries.emptyPointSettings;
      let palette = this.chart.palette;
      let i = 0;
      for (let point of this.currentSeries[_renderPoints]) {
        point.fill = dart.test(point.isEmpty) && empty.color != null ? empty.color : (t0 = point.pointColor, t0 == null ? palette[$_get](i[$modulo](palette[$length])) : t0);
        point.color = point.fill;
        point.strokeColor = dart.test(point.isEmpty) && empty.borderColor != null ? empty.borderColor : this.currentSeries.borderColor;
        point.strokeWidth = dart.test(point.isEmpty) && empty.borderWidth != null ? empty.borderWidth : this.currentSeries.borderWidth;
        point.strokeColor = point.strokeWidth === 0 ? colors$.Colors.transparent : point.strokeColor;
        if (this.chart.legend.legendItemBuilder != null) {
          let legendToggles = this.chart[_chartState].legendToggleTemplateStates;
          if (dart.test(legendToggles[$isNotEmpty])) {
            for (let j = 0; j < dart.notNull(legendToggles[$length]); j = j + 1) {
              let item = legendToggles[$_get](j);
              if (i === item.pointIndex) {
                point.isVisible = false;
                break;
              }
            }
          }
        } else {
          if (dart.test(this.chart[_chartState].legendToggleStates[$isNotEmpty])) {
            for (let j = 0; j < dart.notNull(this.chart[_chartState].legendToggleStates[$length]); j = j + 1) {
              let legendRenderContext = this.chart[_chartState].legendToggleStates[$_get](j);
              if (i === legendRenderContext.seriesIndex) {
                point.isVisible = false;
                break;
              }
            }
          }
        }
        i = i + 1;
      }
    }
    [_calculateAngleAndCenterPositions]() {
      for (let series of this.visibleSeries) {
        this.currentSeries = series;
        this[_findSumOfPoints]();
        this[_calculateAngle]();
        this[_calculateRadius]();
        this[_calculateOrigin]();
        this[_calculateStartAndEndAngle]();
        this[_calculateCenterPosition]();
      }
    }
    [_calculateCenterPosition]() {
      if (dart.test(this.chart[_needToMoveFromCenter]) && this.currentSeries.pointRadiusMapper == null && (this.currentSeries[_seriesType$] === "pie" || this.currentSeries[_seriesType$] === "doughnut")) {
        let areaRect = this.chart[_chartState].chartAreaRect;
        let needExecute = true;
        let radius = this.currentSeries[_currentRadius];
        while (needExecute) {
          radius = dart.notNull(radius) + 1;
          let circularRect = charts._getArcPath(0.0, radius, this.currentSeries[_center], this.currentSeries[_start], this.currentSeries[_end], this.currentSeries[_totalAngle], this.chart, true).getBounds();
          if (dart.notNull(circularRect.width) > dart.notNull(areaRect.width)) {
            needExecute = false;
            this.currentSeries[_rect] = circularRect;
            break;
          }
          if (dart.notNull(circularRect.height) > dart.notNull(areaRect.height)) {
            needExecute = false;
            this.currentSeries[_rect] = circularRect;
            break;
          }
        }
        this.currentSeries[_rect] = charts._getArcPath(0.0, this.currentSeries[_currentRadius], this.currentSeries[_center], this.currentSeries[_start], this.currentSeries[_end], this.currentSeries[_totalAngle], this.chart, true).getBounds();
        for (let point of this.currentSeries[_renderPoints]) {
          point.outerRadius = this.currentSeries[_currentRadius];
        }
      }
    }
    [_calculateStartAndEndAngle]() {
      let pointIndex = 0;
      let pointEndAngle = null;
      let pointStartAngle = this.currentSeries[_start];
      let innerRadius = this.currentSeries[_currentInnerRadius];
      for (let point of this.currentSeries[_renderPoints]) {
        if (dart.test(point.isVisible)) {
          point.innerRadius = this.currentSeries[_seriesType$] === "doughnut" ? innerRadius : 0.0;
          point.degree = point.y[$abs]() / dart.notNull(this.currentSeries[_sumOfPoints] !== 0 ? this.currentSeries[_sumOfPoints] : 1) * dart.notNull(this.currentSeries[_totalAngle]);
          pointEndAngle = dart.notNull(pointStartAngle) + dart.notNull(point.degree);
          point.startAngle = pointStartAngle;
          point.endAngle = pointEndAngle;
          point.midAngle = (dart.notNull(pointStartAngle) + dart.notNull(pointEndAngle)) / 2;
          point.outerRadius = this[_calculatePointRadius](point.radius, point, this.currentSeries[_currentRadius]);
          point.center = dart.test(this[_needExplode](pointIndex, this.currentSeries)) ? this[_findExplodeCenter](point.midAngle, this.currentSeries, point.outerRadius) : this.currentSeries[_center];
          if (this.currentSeries.dataLabelSettings != null) {
            charts._findDataLabelPosition(point);
          }
          pointStartAngle = pointEndAngle;
        }
        pointIndex = pointIndex + 1;
      }
    }
    [_needExplode](pointIndex, series) {
      let isNeedExplode = false;
      if (dart.test(series.explode)) {
        if (dart.test(this.chart[_chartState].initialRender)) {
          if (pointIndex == series.explodeIndex || dart.test(series.explodeAll)) {
            this.chart[_chartState].explodedPoints[$add](pointIndex);
            isNeedExplode = true;
          }
        } else if (dart.test(this.chart[_chartState].widgetNeedUpdate) || dart.test(this.chart[_chartState][_isLegendToggled])) {
          isNeedExplode = this.chart[_chartState].explodedPoints[$contains](pointIndex);
        }
      }
      return isNeedExplode;
    }
    [_findSumOfPoints]() {
      let t0;
      this.currentSeries[_sumOfPoints] = 0;
      for (let point of this.currentSeries[_renderPoints]) {
        if (dart.test(point.isVisible)) {
          t0 = this.currentSeries;
          t0[_sumOfPoints] = dart.notNull(t0[_sumOfPoints]) + point.y[$abs]();
        }
      }
    }
    [_calculateAngle]() {
      let t0, t0$;
      this.currentSeries[_start] = dart.notNull(this.currentSeries.startAngle) < 0 ? dart.notNull(this.currentSeries.startAngle) < -360 ? this.currentSeries.startAngle[$modulo](360) + 360 : dart.notNull(this.currentSeries.startAngle) + 360 : this.currentSeries.startAngle;
      this.currentSeries[_end] = dart.notNull(this.currentSeries.endAngle) < 0 ? dart.notNull(this.currentSeries.endAngle) < -360 ? this.currentSeries.endAngle[$modulo](360) + 360 : dart.notNull(this.currentSeries.endAngle) + 360 : this.currentSeries.endAngle;
      this.currentSeries[_start] = dart.notNull(this.currentSeries[_start]) > 360 ? this.currentSeries[_start][$modulo](360) : this.currentSeries[_start];
      this.currentSeries[_end] = dart.notNull(this.currentSeries[_end]) > 360 ? this.currentSeries[_end][$modulo](360) : this.currentSeries[_end];
      t0 = this.currentSeries;
      t0[_start] = dart.notNull(t0[_start]) - 90;
      t0$ = this.currentSeries;
      t0$[_end] = dart.notNull(t0$[_end]) - 90;
      this.currentSeries[_end] = this.currentSeries[_start] == this.currentSeries[_end] ? dart.notNull(this.currentSeries[_start]) + 360 : this.currentSeries[_end];
      this.currentSeries[_totalAngle] = dart.notNull(this.currentSeries[_start]) > dart.notNull(this.currentSeries[_end]) ? (dart.notNull(this.currentSeries[_start]) - 360)[$abs]() + dart.notNull(this.currentSeries[_end]) : (dart.notNull(this.currentSeries[_start]) - dart.notNull(this.currentSeries[_end]))[$abs]();
    }
    [_calculateRadius]() {
      let chartAreaRect = this.chart[_chartState].chartAreaRect;
      this.size = math.min(core.num, chartAreaRect.width, chartAreaRect.height);
      this.currentSeries[_currentRadius] = charts._percentToValue(this.currentSeries.radius, dart.notNull(this.size) / 2)[$toDouble]();
      this.currentSeries[_currentInnerRadius] = charts._percentToValue(this.currentSeries.innerRadius, this.currentSeries[_currentRadius]);
    }
    [_calculateOrigin]() {
      let chartAreaRect = this.chart[_chartState].chartAreaRect;
      let chartContainerRect = this.chart[_chartState].chartContainerRect;
      this.currentSeries[_center] = new ui.Offset.new(charts._percentToValue(this.chart.centerX, chartAreaRect.width)[$toDouble](), charts._percentToValue(this.chart.centerY, chartAreaRect.height)[$toDouble]());
      this.currentSeries[_center] = new ui.Offset.new(dart.notNull(this.currentSeries[_center].dx) + (dart.notNull(chartContainerRect.width) - dart.notNull(chartAreaRect.width))[$abs]() / 2, dart.notNull(this.currentSeries[_center].dy) + (dart.notNull(chartContainerRect.height) - dart.notNull(chartAreaRect.height))[$abs]() / 2);
      this.chart[_chartState].centerLocation = this.currentSeries[_center];
    }
    [_findExplodeCenter](midAngle, series, currentRadius) {
      let explodeCenter = charts._percentToValue(series.explodeOffset, currentRadius);
      return charts._degreeToPoint(midAngle, explodeCenter, series[_center]);
    }
    [_calculatePointRadius](value, point, radius) {
      if (value != null) {
        radius = value != null ? charts._percentToValue(core.String._check(value), dart.notNull(this.size) / 2) : radius;
      }
      return radius;
    }
    [_seriesPointSelection](pointRegion, mode) {
      let t0, t0$, t0$0;
      let isPointAlreadySelected = false;
      let series = this.chart[_chartSeries].visibleSeries[$_get](pointRegion.seriesIndex);
      if (dart.test(series.selectionSettings.enable) && dart.equals(mode, this.chart.selectionGesture)) {
        if (dart.test(this.chart[_chartState].selectionData[$isNotEmpty])) {
          for (let i = 0; i < dart.notNull(this.chart[_chartState].selectionData[$length]); i = i + 1) {
            let selectionIndex = this.chart[_chartState].selectionData[$_get](i);
            if (!dart.test(this.chart.enableMultiSelection)) {
              isPointAlreadySelected = this.chart[_chartState].selectionData[$length] === 1 && pointRegion.pointIndex == selectionIndex;
              this.chart[_chartState].selectionData[$removeAt](i);
              t0 = this.chart[_chartState].seriesRepaintNotifier;
              t0.value = dart.notNull(t0.value) + 1;
            } else if (pointRegion.pointIndex == selectionIndex) {
              this.chart[_chartState].selectionData[$removeAt](i);
              isPointAlreadySelected = true;
              t0$ = this.chart[_chartState].seriesRepaintNotifier;
              t0$.value = dart.notNull(t0$.value) + 1;
              break;
            }
          }
        }
        if (!isPointAlreadySelected) {
          this.chart[_chartState].selectionData[$add](pointRegion.pointIndex);
          t0$0 = this.chart[_chartState].seriesRepaintNotifier;
          t0$0.value = dart.notNull(t0$0.value) + 1;
        }
      }
    }
    [_seriesPointExplosion](pointRegion) {
      let t0, t0$, t0$0, t0$1;
      let existExplodedRegion = false;
      let series = this.chart[_chartSeries].visibleSeries[$_get](pointRegion.seriesIndex);
      let point = series[_renderPoints][$_get](pointRegion.pointIndex);
      if (dart.test(series.explode)) {
        if (dart.test(this.chart[_chartState].explodedPoints[$isNotEmpty])) {
          if (this.chart[_chartState].explodedPoints[$length] === 1 && dart.test(this.chart[_chartState].explodedPoints[$contains](pointRegion.pointIndex))) {
            existExplodedRegion = true;
            point.center = series[_center];
            let index = this.chart[_chartState].explodedPoints[$indexOf](pointRegion.pointIndex);
            this.chart[_chartState].explodedPoints[$removeAt](index);
            t0 = this.chart[_chartState].seriesRepaintNotifier;
            t0.value = dart.notNull(t0.value) + 1;
          } else if (dart.test(series.explodeAll) && dart.notNull(this.chart[_chartState].explodedPoints[$length]) > 1 && dart.test(this.chart[_chartState].explodedPoints[$contains](pointRegion.pointIndex))) {
            for (let i = 0; i < dart.notNull(this.chart[_chartState].explodedPoints[$length]); i = i + 1) {
              let explodeIndex = this.chart[_chartState].explodedPoints[$_get](i);
              series[_renderPoints][$_get](explodeIndex).center = series[_center];
              this.chart[_chartState].explodedPoints[$removeAt](i);
              i = i - 1;
            }
            existExplodedRegion = true;
            t0$ = this.chart[_chartState].seriesRepaintNotifier;
            t0$.value = dart.notNull(t0$.value) + 1;
          } else if (this.chart[_chartState].explodedPoints[$length] === 1) {
            for (let i = 0; i < dart.notNull(this.chart[_chartState].explodedPoints[$length]); i = i + 1) {
              let explodeIndex = this.chart[_chartState].explodedPoints[$_get](i);
              series[_renderPoints][$_get](explodeIndex).center = series[_center];
              this.chart[_chartState].explodedPoints[$removeAt](i);
              t0$0 = this.chart[_chartState].seriesRepaintNotifier;
              t0$0.value = dart.notNull(t0$0.value) + 1;
            }
          }
        }
        if (!existExplodedRegion) {
          point.center = this[_findExplodeCenter](point.midAngle, this.currentSeries, point.outerRadius);
          this.chart[_chartState].explodedPoints[$add](pointRegion.pointIndex);
          t0$1 = this.chart[_chartState].seriesRepaintNotifier;
          t0$1.value = dart.notNull(t0$1.value) + 1;
        }
      }
    }
    [_setSeriesType](series) {
      if (charts.PieSeries.is(series))
        series[_seriesType$] = "pie";
      else if (charts.DoughnutSeries.is(series))
        series[_seriesType$] = "doughnut";
      else if (charts.RadialBarSeries.is(series)) {
        series[_seriesType$] = "radialbar";
      }
    }
  };
  (charts._CircularSeries.new = function() {
    this.chart = null;
    this.currentSeries = null;
    this.size = null;
    this.sumOfGroup = null;
    this.explodedRegion = null;
    this.selectRegion = null;
    this.visibleSeries = null;
    ;
  }).prototype = charts._CircularSeries.prototype;
  dart.addTypeTests(charts._CircularSeries);
  dart.setMethodSignature(charts._CircularSeries, () => ({
    __proto__: dart.getMethods(charts._CircularSeries.__proto__),
    [_findVisibleSeries]: dart.fnType(dart.void, []),
    [_calculateCircularEmptyPoints]: dart.fnType(dart.void, [charts.CircularSeries]),
    [_processDataPoints]: dart.fnType(dart.void, []),
    [_sortDataSource]: dart.fnType(dart.void, [charts.CircularSeries]),
    [_findGroupPoints]: dart.fnType(dart.void, []),
    [_setPointStyle]: dart.fnType(dart.void, []),
    [_calculateAngleAndCenterPositions]: dart.fnType(dart.void, []),
    [_calculateCenterPosition]: dart.fnType(dart.void, []),
    [_calculateStartAndEndAngle]: dart.fnType(dart.void, []),
    [_needExplode]: dart.fnType(core.bool, [core.int, charts.CircularSeries]),
    [_findSumOfPoints]: dart.fnType(dart.void, []),
    [_calculateAngle]: dart.fnType(dart.void, []),
    [_calculateRadius]: dart.fnType(dart.void, []),
    [_calculateOrigin]: dart.fnType(dart.void, []),
    [_findExplodeCenter]: dart.fnType(ui.Offset, [core.num, charts.CircularSeries, core.num]),
    [_calculatePointRadius]: dart.fnType(core.num, [dart.dynamic, charts.ChartPoint, core.num]),
    [_seriesPointSelection]: dart.fnType(dart.void, [charts._Region, charts.ActivationMode]),
    [_seriesPointExplosion]: dart.fnType(dart.void, [charts._Region]),
    [_setSeriesType]: dart.fnType(dart.void, [charts.CircularSeries])
  }));
  dart.setLibraryUri(charts._CircularSeries, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._CircularSeries, () => ({
    __proto__: dart.getFields(charts._CircularSeries.__proto__),
    chart: dart.fieldType(charts.SfCircularChart),
    currentSeries: dart.fieldType(charts.CircularSeries),
    size: dart.fieldType(core.num),
    sumOfGroup: dart.fieldType(core.num),
    explodedRegion: dart.fieldType(charts._Region),
    selectRegion: dart.fieldType(charts._Region),
    visibleSeries: dart.fieldType(core.List$(charts.CircularSeries))
  }));
  const _renderer = dart.privateName(charts, "_renderer");
  const _pointRegions = dart.privateName(charts, "_pointRegions");
  const _selectionArgs = dart.privateName(charts, "_selectionArgs");
  const _getSelectionEventArgs = dart.privateName(charts, "_getSelectionEventArgs");
  const _selectPoint = dart.privateName(charts, "_selectPoint");
  const _calculatePath = dart.privateName(charts, "_calculatePath");
  const _renderPoint = dart.privateName(charts, "_renderPoint");
  const _drawDataPoints = dart.privateName(charts, "_drawDataPoints");
  const _name$ = dart.privateName(charts, "_name");
  let C120;
  let C121;
  const _seriesName = dart.privateName(charts, "_seriesName");
  const _visible = dart.privateName(charts, "_visible");
  const _is_ChartSeries_default = Symbol('_is_ChartSeries_default');
  const dataSource$ = dart.privateName(charts, "ChartSeries.dataSource");
  const xValueMapper$ = dart.privateName(charts, "ChartSeries.xValueMapper");
  const yValueMapper$ = dart.privateName(charts, "ChartSeries.yValueMapper");
  const pointColorMapper$ = dart.privateName(charts, "ChartSeries.pointColorMapper");
  const dataLabelMapper$ = dart.privateName(charts, "ChartSeries.dataLabelMapper");
  const emptyPointSettings$ = dart.privateName(charts, "ChartSeries.emptyPointSettings");
  const dataLabelSettings$ = dart.privateName(charts, "ChartSeries.dataLabelSettings");
  const name$ = dart.privateName(charts, "ChartSeries.name");
  const enableTooltip$ = dart.privateName(charts, "ChartSeries.enableTooltip");
  const animationDuration$ = dart.privateName(charts, "ChartSeries.animationDuration");
  const borderColor$0 = dart.privateName(charts, "ChartSeries.borderColor");
  const borderWidth$0 = dart.privateName(charts, "ChartSeries.borderWidth");
  const legendItemText$ = dart.privateName(charts, "ChartSeries.legendItemText");
  const legendIconType$ = dart.privateName(charts, "ChartSeries.legendIconType");
  const selectionSettings$ = dart.privateName(charts, "ChartSeries.selectionSettings");
  const opacity$ = dart.privateName(charts, "ChartSeries.opacity");
  const sortFieldValueMapper$ = dart.privateName(charts, "ChartSeries.sortFieldValueMapper");
  const sortingOrder$ = dart.privateName(charts, "ChartSeries.sortingOrder");
  const isVisible = dart.privateName(charts, "ChartSeries.isVisible");
  const _seriesName$ = dart.privateName(charts, "ChartSeries._seriesName");
  const _visible$ = dart.privateName(charts, "ChartSeries._visible");
  const _needsRepaint$ = dart.privateName(charts, "ChartSeries._needsRepaint");
  charts.ChartSeries$ = dart.generic((T, D) => {
    class ChartSeries extends core.Object {
      get dataSource() {
        return this[dataSource$];
      }
      set dataSource(value) {
        super.dataSource = value;
      }
      get xValueMapper() {
        return this[xValueMapper$];
      }
      set xValueMapper(value) {
        super.xValueMapper = value;
      }
      get yValueMapper() {
        return this[yValueMapper$];
      }
      set yValueMapper(value) {
        super.yValueMapper = value;
      }
      get pointColorMapper() {
        return this[pointColorMapper$];
      }
      set pointColorMapper(value) {
        super.pointColorMapper = value;
      }
      get dataLabelMapper() {
        return this[dataLabelMapper$];
      }
      set dataLabelMapper(value) {
        super.dataLabelMapper = value;
      }
      get emptyPointSettings() {
        return this[emptyPointSettings$];
      }
      set emptyPointSettings(value) {
        super.emptyPointSettings = value;
      }
      get dataLabelSettings() {
        return this[dataLabelSettings$];
      }
      set dataLabelSettings(value) {
        super.dataLabelSettings = value;
      }
      get name() {
        return this[name$];
      }
      set name(value) {
        super.name = value;
      }
      get enableTooltip() {
        return this[enableTooltip$];
      }
      set enableTooltip(value) {
        super.enableTooltip = value;
      }
      get animationDuration() {
        return this[animationDuration$];
      }
      set animationDuration(value) {
        super.animationDuration = value;
      }
      get borderColor() {
        return this[borderColor$0];
      }
      set borderColor(value) {
        super.borderColor = value;
      }
      get borderWidth() {
        return this[borderWidth$0];
      }
      set borderWidth(value) {
        super.borderWidth = value;
      }
      get legendItemText() {
        return this[legendItemText$];
      }
      set legendItemText(value) {
        super.legendItemText = value;
      }
      get legendIconType() {
        return this[legendIconType$];
      }
      set legendIconType(value) {
        super.legendIconType = value;
      }
      get selectionSettings() {
        return this[selectionSettings$];
      }
      set selectionSettings(value) {
        super.selectionSettings = value;
      }
      get opacity() {
        return this[opacity$];
      }
      set opacity(value) {
        super.opacity = value;
      }
      get sortFieldValueMapper() {
        return this[sortFieldValueMapper$];
      }
      set sortFieldValueMapper(value) {
        super.sortFieldValueMapper = value;
      }
      get sortingOrder() {
        return this[sortingOrder$];
      }
      set sortingOrder(value) {
        super.sortingOrder = value;
      }
      get isVisible() {
        return this[isVisible];
      }
      set isVisible(value) {
        this[isVisible] = value;
      }
      get [_seriesName]() {
        return this[_seriesName$];
      }
      set [_seriesName](value) {
        this[_seriesName$] = value;
      }
      get [_visible]() {
        return this[_visible$];
      }
      set [_visible](value) {
        this[_visible$] = value;
      }
      get [_needsRepaint]() {
        return this[_needsRepaint$];
      }
      set [_needsRepaint](value) {
        this[_needsRepaint$] = value;
      }
    }
    (ChartSeries.new = function(opts) {
      let xValueMapper = opts && 'xValueMapper' in opts ? opts.xValueMapper : null;
      let yValueMapper = opts && 'yValueMapper' in opts ? opts.yValueMapper : null;
      let dataLabelMapper = opts && 'dataLabelMapper' in opts ? opts.dataLabelMapper : null;
      let name = opts && 'name' in opts ? opts.name : null;
      let dataSource = opts && 'dataSource' in opts ? opts.dataSource : null;
      let pointColorMapper = opts && 'pointColorMapper' in opts ? opts.pointColorMapper : null;
      let sortFieldValueMapper = opts && 'sortFieldValueMapper' in opts ? opts.sortFieldValueMapper : null;
      let enableTooltip = opts && 'enableTooltip' in opts ? opts.enableTooltip : null;
      let emptyPointSettings = opts && 'emptyPointSettings' in opts ? opts.emptyPointSettings : null;
      let dataLabelSettings = opts && 'dataLabelSettings' in opts ? opts.dataLabelSettings : null;
      let animationDuration = opts && 'animationDuration' in opts ? opts.animationDuration : null;
      let borderColor = opts && 'borderColor' in opts ? opts.borderColor : null;
      let borderWidth = opts && 'borderWidth' in opts ? opts.borderWidth : null;
      let selectionSettings = opts && 'selectionSettings' in opts ? opts.selectionSettings : null;
      let legendItemText = opts && 'legendItemText' in opts ? opts.legendItemText : null;
      let legendIconType = opts && 'legendIconType' in opts ? opts.legendIconType : null;
      let opacity = opts && 'opacity' in opts ? opts.opacity : null;
      let sortingOrder = opts && 'sortingOrder' in opts ? opts.sortingOrder : null;
      this[isVisible] = null;
      this[_seriesName$] = null;
      this[_visible$] = null;
      this[_needsRepaint$] = null;
      this[xValueMapper$] = xValueMapper;
      this[yValueMapper$] = yValueMapper;
      this[dataLabelMapper$] = dataLabelMapper;
      this[name$] = name;
      this[dataSource$] = dataSource;
      this[pointColorMapper$] = pointColorMapper;
      this[sortFieldValueMapper$] = sortFieldValueMapper;
      this[enableTooltip$] = enableTooltip;
      this[emptyPointSettings$] = emptyPointSettings;
      this[dataLabelSettings$] = dataLabelSettings;
      this[animationDuration$] = animationDuration;
      this[borderColor$0] = borderColor;
      this[borderWidth$0] = borderWidth;
      this[selectionSettings$] = selectionSettings;
      this[legendItemText$] = legendItemText;
      this[legendIconType$] = legendIconType;
      this[opacity$] = opacity;
      this[sortingOrder$] = sortingOrder;
      this[_needsRepaint] = true;
    }).prototype = ChartSeries.prototype;
    dart.addTypeTests(ChartSeries);
    ChartSeries.prototype[_is_ChartSeries_default] = true;
    dart.setLibraryUri(ChartSeries, "package:syncfusion_flutter_charts/charts.dart");
    dart.setFieldSignature(ChartSeries, () => ({
      __proto__: dart.getFields(ChartSeries.__proto__),
      dataSource: dart.finalFieldType(core.List$(T)),
      xValueMapper: dart.finalFieldType(dart.fnType(D, [core.int])),
      yValueMapper: dart.finalFieldType(dart.fnType(core.num, [core.int])),
      pointColorMapper: dart.finalFieldType(dart.fnType(ui.Color, [core.int])),
      dataLabelMapper: dart.finalFieldType(dart.fnType(core.String, [core.int])),
      emptyPointSettings: dart.finalFieldType(charts.EmptyPointSettings),
      dataLabelSettings: dart.finalFieldType(charts.DataLabelSettings),
      name: dart.finalFieldType(core.String),
      enableTooltip: dart.finalFieldType(core.bool),
      animationDuration: dart.finalFieldType(core.double),
      borderColor: dart.finalFieldType(ui.Color),
      borderWidth: dart.finalFieldType(core.double),
      legendItemText: dart.finalFieldType(core.String),
      legendIconType: dart.finalFieldType(charts.LegendIconType),
      selectionSettings: dart.finalFieldType(charts.SelectionSettings),
      opacity: dart.finalFieldType(core.double),
      sortFieldValueMapper: dart.finalFieldType(dart.fnType(dart.dynamic, [core.int])),
      sortingOrder: dart.finalFieldType(charts.SortingOrder),
      isVisible: dart.fieldType(core.bool),
      [_seriesName]: dart.fieldType(core.String),
      [_visible]: dart.fieldType(core.bool),
      [_needsRepaint]: dart.fieldType(core.bool)
    }));
    return ChartSeries;
  });
  charts.ChartSeries = charts.ChartSeries$();
  dart.addTypeTests(charts.ChartSeries, _is_ChartSeries_default);
  const _is_CircularSeries_default = Symbol('_is_CircularSeries_default');
  const opacity$0 = dart.privateName(charts, "CircularSeries.opacity");
  const dataLabelSettings$0 = dart.privateName(charts, "CircularSeries.dataLabelSettings");
  const dataSource$0 = dart.privateName(charts, "CircularSeries.dataSource");
  const xValueMapper$0 = dart.privateName(charts, "CircularSeries.xValueMapper");
  const yValueMapper$0 = dart.privateName(charts, "CircularSeries.yValueMapper");
  const pointColorMapper$0 = dart.privateName(charts, "CircularSeries.pointColorMapper");
  const pointRadiusMapper$ = dart.privateName(charts, "CircularSeries.pointRadiusMapper");
  const dataLabelMapper$0 = dart.privateName(charts, "CircularSeries.dataLabelMapper");
  const sortFieldValueMapper$0 = dart.privateName(charts, "CircularSeries.sortFieldValueMapper");
  const enableSmartLabels$ = dart.privateName(charts, "CircularSeries.enableSmartLabels");
  const legendIconType$0 = dart.privateName(charts, "CircularSeries.legendIconType");
  const sortingOrder$0 = dart.privateName(charts, "CircularSeries.sortingOrder");
  const enableTooltip$0 = dart.privateName(charts, "CircularSeries.enableTooltip");
  const borderWidth$1 = dart.privateName(charts, "CircularSeries.borderWidth");
  const borderColor$1 = dart.privateName(charts, "CircularSeries.borderColor");
  const emptyPointSettings$0 = dart.privateName(charts, "CircularSeries.emptyPointSettings");
  const selectionSettings$0 = dart.privateName(charts, "CircularSeries.selectionSettings");
  const startAngle$ = dart.privateName(charts, "CircularSeries.startAngle");
  const endAngle$ = dart.privateName(charts, "CircularSeries.endAngle");
  const radius$ = dart.privateName(charts, "CircularSeries.radius");
  const innerRadius$ = dart.privateName(charts, "CircularSeries.innerRadius");
  const explode$ = dart.privateName(charts, "CircularSeries.explode");
  const explodeAll$ = dart.privateName(charts, "CircularSeries.explodeAll");
  const explodeIndex$ = dart.privateName(charts, "CircularSeries.explodeIndex");
  const explodeOffset$ = dart.privateName(charts, "CircularSeries.explodeOffset");
  const explodeGesture$ = dart.privateName(charts, "CircularSeries.explodeGesture");
  const groupTo$ = dart.privateName(charts, "CircularSeries.groupTo");
  const groupMode$ = dart.privateName(charts, "CircularSeries.groupMode");
  const gap$ = dart.privateName(charts, "CircularSeries.gap");
  const cornerStyle$ = dart.privateName(charts, "CircularSeries.cornerStyle");
  const name$0 = dart.privateName(charts, "CircularSeries.name");
  const animationDuration$0 = dart.privateName(charts, "CircularSeries.animationDuration");
  const initialSelectedDataIndexes$ = dart.privateName(charts, "CircularSeries.initialSelectedDataIndexes");
  const _needsRepaint$0 = dart.privateName(charts, "CircularSeries._needsRepaint");
  charts.CircularSeries$ = dart.generic((T, D) => {
    class CircularSeries extends charts.ChartSeries$(T, D) {
      get opacity() {
        return this[opacity$0];
      }
      set opacity(value) {
        super.opacity = value;
      }
      get dataLabelSettings() {
        return this[dataLabelSettings$0];
      }
      set dataLabelSettings(value) {
        super.dataLabelSettings = value;
      }
      get dataSource() {
        return this[dataSource$0];
      }
      set dataSource(value) {
        super.dataSource = value;
      }
      get xValueMapper() {
        return this[xValueMapper$0];
      }
      set xValueMapper(value) {
        super.xValueMapper = value;
      }
      get yValueMapper() {
        return this[yValueMapper$0];
      }
      set yValueMapper(value) {
        super.yValueMapper = value;
      }
      get pointColorMapper() {
        return this[pointColorMapper$0];
      }
      set pointColorMapper(value) {
        super.pointColorMapper = value;
      }
      get pointRadiusMapper() {
        return this[pointRadiusMapper$];
      }
      set pointRadiusMapper(value) {
        super.pointRadiusMapper = value;
      }
      get dataLabelMapper() {
        return this[dataLabelMapper$0];
      }
      set dataLabelMapper(value) {
        super.dataLabelMapper = value;
      }
      get sortFieldValueMapper() {
        return this[sortFieldValueMapper$0];
      }
      set sortFieldValueMapper(value) {
        super.sortFieldValueMapper = value;
      }
      get enableSmartLabels() {
        return this[enableSmartLabels$];
      }
      set enableSmartLabels(value) {
        super.enableSmartLabels = value;
      }
      get legendIconType() {
        return this[legendIconType$0];
      }
      set legendIconType(value) {
        super.legendIconType = value;
      }
      get sortingOrder() {
        return this[sortingOrder$0];
      }
      set sortingOrder(value) {
        super.sortingOrder = value;
      }
      get enableTooltip() {
        return this[enableTooltip$0];
      }
      set enableTooltip(value) {
        super.enableTooltip = value;
      }
      get borderWidth() {
        return this[borderWidth$1];
      }
      set borderWidth(value) {
        super.borderWidth = value;
      }
      get borderColor() {
        return this[borderColor$1];
      }
      set borderColor(value) {
        super.borderColor = value;
      }
      get emptyPointSettings() {
        return this[emptyPointSettings$0];
      }
      set emptyPointSettings(value) {
        super.emptyPointSettings = value;
      }
      get selectionSettings() {
        return this[selectionSettings$0];
      }
      set selectionSettings(value) {
        super.selectionSettings = value;
      }
      get startAngle() {
        return this[startAngle$];
      }
      set startAngle(value) {
        super.startAngle = value;
      }
      get endAngle() {
        return this[endAngle$];
      }
      set endAngle(value) {
        super.endAngle = value;
      }
      get radius() {
        return this[radius$];
      }
      set radius(value) {
        super.radius = value;
      }
      get innerRadius() {
        return this[innerRadius$];
      }
      set innerRadius(value) {
        super.innerRadius = value;
      }
      get explode() {
        return this[explode$];
      }
      set explode(value) {
        super.explode = value;
      }
      get explodeAll() {
        return this[explodeAll$];
      }
      set explodeAll(value) {
        super.explodeAll = value;
      }
      get explodeIndex() {
        return this[explodeIndex$];
      }
      set explodeIndex(value) {
        super.explodeIndex = value;
      }
      get explodeOffset() {
        return this[explodeOffset$];
      }
      set explodeOffset(value) {
        super.explodeOffset = value;
      }
      get explodeGesture() {
        return this[explodeGesture$];
      }
      set explodeGesture(value) {
        super.explodeGesture = value;
      }
      get groupTo() {
        return this[groupTo$];
      }
      set groupTo(value) {
        super.groupTo = value;
      }
      get groupMode() {
        return this[groupMode$];
      }
      set groupMode(value) {
        super.groupMode = value;
      }
      get gap() {
        return this[gap$];
      }
      set gap(value) {
        super.gap = value;
      }
      get cornerStyle() {
        return this[cornerStyle$];
      }
      set cornerStyle(value) {
        super.cornerStyle = value;
      }
      get name() {
        return this[name$0];
      }
      set name(value) {
        super.name = value;
      }
      get animationDuration() {
        return this[animationDuration$0];
      }
      set animationDuration(value) {
        super.animationDuration = value;
      }
      get initialSelectedDataIndexes() {
        return this[initialSelectedDataIndexes$];
      }
      set initialSelectedDataIndexes(value) {
        this[initialSelectedDataIndexes$] = value;
      }
      get [_needsRepaint]() {
        return this[_needsRepaint$0];
      }
      set [_needsRepaint](value) {
        this[_needsRepaint$0] = value;
      }
      [_selectPoint](currentPointIndex, series, chart, point) {
        let pointStyle = null;
        let selection = series.selectionSettings;
        if (dart.test(selection.enable)) {
          if (dart.test(chart[_chartState].selectionData[$isNotEmpty])) {
            if (chart.onSelectionChanged != null) {
              chart.onSelectionChanged(this[_getSelectionEventArgs](series, 0, currentPointIndex));
            }
            for (let i = 0; i < dart.notNull(chart[_chartState].selectionData[$length]); i = i + 1) {
              let selectionIndex = chart[_chartState].selectionData[$_get](i);
              if (currentPointIndex == selectionIndex) {
                pointStyle = new charts._StyleOptions.new(this[_selectionArgs] != null ? this[_selectionArgs].selectedColor : selection.selectedColor, this[_selectionArgs] != null ? this[_selectionArgs].selectedBorderWidth : selection.selectedBorderWidth, this[_selectionArgs] != null ? this[_selectionArgs].selectedBorderColor : selection.selectedBorderColor, selection.selectedOpacity);
                break;
              } else if (i === dart.notNull(chart[_chartState].selectionData[$length]) - 1) {
                pointStyle = new charts._StyleOptions.new(this[_selectionArgs] != null ? this[_selectionArgs].unselectedColor : selection.unselectedColor, this[_selectionArgs] != null ? this[_selectionArgs].unselectedBorderWidth : selection.unselectedBorderWidth, this[_selectionArgs] != null ? this[_selectionArgs].unselectedBorderColor : selection.unselectedBorderColor, selection.unselectedOpacity);
              }
            }
          }
        }
        return pointStyle;
      }
      [_getSelectionEventArgs](series, seriesIndex, pointIndex) {
        if (series != null) {
          this[_selectionArgs] = new charts.SelectionArgs.new();
          this[_selectionArgs].series = series;
          this[_selectionArgs].selectedBorderColor = ui.Color._check(dart.dload(dart.dload(series, 'selectionSettings'), 'selectedBorderColor'));
          this[_selectionArgs].selectedBorderWidth = core.double._check(dart.dload(dart.dload(series, 'selectionSettings'), 'selectedBorderWidth'));
          this[_selectionArgs].selectedColor = ui.Color._check(dart.dload(dart.dload(series, 'selectionSettings'), 'selectedColor'));
          this[_selectionArgs].unselectedBorderColor = ui.Color._check(dart.dload(dart.dload(series, 'selectionSettings'), 'unselectedBorderColor'));
          this[_selectionArgs].unselectedBorderWidth = core.double._check(dart.dload(dart.dload(series, 'selectionSettings'), 'unselectedBorderWidth'));
          this[_selectionArgs].unselectedColor = ui.Color._check(dart.dload(dart.dload(series, 'selectionSettings'), 'unselectedColor'));
          this[_selectionArgs].seriesIndex = dart.asInt(seriesIndex);
          this[_selectionArgs].pointIndex = dart.asInt(pointIndex);
        }
        return this[_selectionArgs];
      }
      [_renderPoint](chart, series, point, pointStartAngle, innerRadius, outerRadius, canvas, seriesIndex, pointIndex, animationDegreeValue, animationRadiusValue, isAnyPointSelect, oldPoint, oldPointList = null) {
        let t0, t0$;
        let isDynamicUpdate = oldPoint != null;
        let oldStartAngle = (t0 = oldPoint, t0 == null ? null : t0.startAngle);
        let oldEndAngle = (t0$ = oldPoint, t0$ == null ? null : t0$.endAngle);
        let pointEndAngle = null;
        let degree = null;
        if (isDynamicUpdate) {
          if (!dart.test(oldPoint.isVisible) && dart.test(point.isVisible)) {
            let val = point.startAngle == series[_start] ? series[_start] : oldPointList[$_get](charts._getVisiblePointIndex(oldPointList, "before", dart.asInt(pointIndex))).endAngle;
            pointStartAngle = dart.notNull(val) - (dart.notNull(val) - dart.notNull(point.startAngle)) * dart.notNull(animationDegreeValue);
            pointEndAngle = dart.notNull(val) + (dart.notNull(point.endAngle) - dart.notNull(val)) * dart.notNull(animationDegreeValue);
            degree = dart.notNull(pointEndAngle) - dart.notNull(pointStartAngle);
          } else if (dart.test(oldPoint.isVisible) && !dart.test(point.isVisible)) {
            if (oldPoint.startAngle[$round]() === series[_start] && (oldPoint.endAngle[$round]() === series[_end] || oldPoint.endAngle[$round]() === 360 + dart.notNull(series[_end]))) {
              pointStartAngle = oldPoint.startAngle;
              pointEndAngle = dart.notNull(oldPoint.endAngle) - (dart.notNull(oldPoint.endAngle) - dart.notNull(oldPoint.startAngle)) * dart.notNull(animationDegreeValue);
            } else if (oldPoint.startAngle == oldPoint.endAngle) {
              pointStartAngle = pointEndAngle = oldPoint.startAngle;
            } else {
              pointStartAngle = dart.notNull(oldPoint.startAngle) - (dart.notNull(oldPoint.startAngle) - dart.notNull(oldPoint.startAngle == series[_start] ? series[_start] : series[_renderPoints][$_get](charts._getVisiblePointIndex(series[_renderPoints], "before", dart.asInt(pointIndex))).endAngle)) * dart.notNull(animationDegreeValue);
              pointEndAngle = dart.notNull(oldPoint.endAngle) - (dart.notNull(oldPoint.endAngle) - dart.notNull(oldPoint.endAngle[$round]() === series[_end] || oldPoint.endAngle[$round]() === 360 + dart.notNull(series[_end]) ? oldPoint.endAngle : series[_renderPoints][$_get](charts._getVisiblePointIndex(series[_renderPoints], "after", dart.asInt(pointIndex))).startAngle)) * dart.notNull(animationDegreeValue);
            }
            degree = dart.notNull(pointEndAngle) - dart.notNull(pointStartAngle);
          } else if (dart.test(point.isVisible) && dart.test(oldPoint.isVisible)) {
            pointStartAngle = dart.notNull(point.startAngle) > dart.notNull(oldStartAngle) ? dart.notNull(oldStartAngle) + (dart.notNull(point.startAngle) - dart.notNull(oldStartAngle)) * dart.notNull(animationDegreeValue) : dart.notNull(oldStartAngle) - (dart.notNull(oldStartAngle) - dart.notNull(point.startAngle)) * dart.notNull(animationDegreeValue);
            pointEndAngle = dart.notNull(point.endAngle) > dart.notNull(oldEndAngle) ? dart.notNull(oldEndAngle) + (dart.notNull(point.endAngle) - dart.notNull(oldEndAngle)) * dart.notNull(animationDegreeValue) : dart.notNull(oldEndAngle) - (dart.notNull(oldEndAngle) - dart.notNull(point.endAngle)) * dart.notNull(animationDegreeValue);
            degree = dart.notNull(pointEndAngle) - dart.notNull(pointStartAngle);
          }
        } else if (dart.test(point.isVisible)) {
          degree = dart.notNull(animationDegreeValue) * dart.notNull(point.degree);
          pointEndAngle = dart.notNull(pointStartAngle) + dart.notNull(degree);
        }
        outerRadius = dart.test(chart[_chartState].initialRender) ? dart.notNull(animationRadiusValue) * dart.notNull(outerRadius) : outerRadius;
        this[_calculatePath](dart.asInt(pointIndex), dart.asInt(seriesIndex), chart, series, point, oldPoint, canvas, degree, innerRadius, outerRadius, pointStartAngle, pointEndAngle, isDynamicUpdate);
        return pointEndAngle;
      }
      [_calculatePath](pointIndex, seriesIndex, chart, series, point, oldPoint, canvas, degree, innerRadius, outerRadius, pointStartAngle, pointEndAngle, isDynamicUpdate) {
        let t0;
        let renderPath = null;
        let cornerStyle = series.cornerStyle;
        let actualStartAngle = null;
        let actualEndAngle = null;
        if (!dart.test(isDynamicUpdate) || dart.test(isDynamicUpdate) && (dart.test(oldPoint.isVisible) && dart.test(point.isVisible) || dart.test(oldPoint.isVisible) && !dart.test(point.isVisible) || !dart.test(oldPoint.isVisible) && dart.test(point.isVisible))) {
          innerRadius = innerRadius == null ? oldPoint.innerRadius : innerRadius;
          outerRadius = outerRadius == null ? oldPoint.outerRadius : outerRadius;
          if (!dart.equals(cornerStyle, charts.CornerStyle.bothFlat)) {
            let angleDeviation = charts._findAngleDeviation(innerRadius, outerRadius, 360);
            actualStartAngle = dart.equals(cornerStyle, charts.CornerStyle.startCurve) || dart.equals(cornerStyle, charts.CornerStyle.bothCurve) ? dart.notNull(pointStartAngle) + dart.notNull(angleDeviation) : pointStartAngle;
            actualEndAngle = dart.equals(cornerStyle, charts.CornerStyle.endCurve) || dart.equals(cornerStyle, charts.CornerStyle.bothCurve) ? dart.notNull(pointEndAngle) - dart.notNull(angleDeviation) : pointEndAngle;
          }
          renderPath = ui.Path.new();
          renderPath = dart.equals(cornerStyle, charts.CornerStyle.startCurve) || dart.equals(cornerStyle, charts.CornerStyle.endCurve) || dart.equals(cornerStyle, charts.CornerStyle.bothCurve) ? charts._getRoundedCornerArcPath(innerRadius, outerRadius, (t0 = point.center, t0 == null ? oldPoint.center : t0), actualStartAngle, actualEndAngle, degree, cornerStyle) : charts._getArcPath(innerRadius, outerRadius, point.center == null ? oldPoint.center : point.center, pointStartAngle, pointEndAngle, degree, chart, chart[_chartState].animateCompleted);
        }
        this[_drawDataPoints](pointIndex, seriesIndex, chart, series, point, canvas, renderPath, degree, innerRadius);
      }
      [_drawDataPoints](pointIndex, seriesIndex, chart, series, point, canvas, renderPath, degree, innerRadius) {
        if (dart.test(point.isVisible)) {
          let pointRegion = new charts._Region.new(charts._degreesToRadians(point.startAngle), charts._degreesToRadians(point.endAngle), point.startAngle, point.endAngle, seriesIndex, pointIndex, point.center, innerRadius, point.outerRadius);
          series[_pointRegions][$add](pointRegion);
        }
        let style = this[_selectPoint](pointIndex, series, chart, point);
        let fillColor = style != null && style.fill != null ? style.fill : !dart.equals(point.fill, colors$.Colors.transparent) ? series[_renderer].getPointColor(series, point, pointIndex, seriesIndex, point.fill, series.opacity) : point.fill;
        let strokeColor = style != null && style.strokeColor != null ? style.strokeColor : series[_renderer].getPointStrokeColor(series, point, pointIndex, seriesIndex, point.strokeColor);
        let strokeWidth = style != null && style.strokeWidth != null ? style.strokeWidth : series[_renderer].getPointStrokeWidth(series, point, pointIndex, seriesIndex, point.strokeWidth);
        let opacity = style != null && style.opacity != null ? style.opacity : series[_renderer].getOpacity(series, point, pointIndex, seriesIndex, series.opacity);
        if (renderPath != null && dart.notNull(degree) > 0) {
          charts._drawPath(canvas, new charts._StyleOptions.new(fillColor, dart.test(chart[_chartState].animateCompleted) ? strokeWidth : 0, strokeColor, opacity), renderPath);
        }
      }
      calculateEmptyPointValue(pointIndex, currentPoint) {
        let empty = this.emptyPointSettings;
        let pointLength = this[_dataPoints$][$length];
        let point = this[_dataPoints$][$_get](pointIndex);
        if (point.y == null) {
          switch (empty.mode) {
            case C120 || CT.C120:
            {
              let previous = dart.notNull(pointIndex) - 1 >= 0 ? this[_dataPoints$][$_get](dart.notNull(pointIndex) - 1).y == null ? 0 : this[_dataPoints$][$_get](dart.notNull(pointIndex) - 1).y : 0;
              let next = dart.notNull(pointIndex) + 1 <= dart.notNull(pointLength) - 1 ? this[_dataPoints$][$_get](dart.notNull(pointIndex) + 1).y == null ? 0 : this[_dataPoints$][$_get](dart.notNull(pointIndex) + 1).y : 0;
              point.y = (dart.notNull(previous) + dart.notNull(next))[$abs]() / 2;
              point.isVisible = true;
              point.isEmpty = true;
              break;
            }
            case C121 || CT.C121:
            {
              point.y = 0;
              point.isVisible = true;
              point.isEmpty = true;
              break;
            }
            default:
            {
              point.isEmpty = true;
              point.isVisible = false;
              break;
            }
          }
        }
      }
    }
    (CircularSeries.new = function(opts) {
      let t0, t0$, t0$0, t0$1, t0$2, t0$3, t0$4, t0$5, t0$6, t0$7, t0$8, t0$9, t0$10, t0$11, t0$12, t0$13, t0$14, t0$15, t0$16, t0$17, t0$18, t0$19;
      let dataSource = opts && 'dataSource' in opts ? opts.dataSource : null;
      let xValueMapper = opts && 'xValueMapper' in opts ? opts.xValueMapper : null;
      let yValueMapper = opts && 'yValueMapper' in opts ? opts.yValueMapper : null;
      let pointColorMapper = opts && 'pointColorMapper' in opts ? opts.pointColorMapper : null;
      let pointRadiusMapper = opts && 'pointRadiusMapper' in opts ? opts.pointRadiusMapper : null;
      let dataLabelMapper = opts && 'dataLabelMapper' in opts ? opts.dataLabelMapper : null;
      let sortFieldValueMapper = opts && 'sortFieldValueMapper' in opts ? opts.sortFieldValueMapper : null;
      let startAngle = opts && 'startAngle' in opts ? opts.startAngle : null;
      let endAngle = opts && 'endAngle' in opts ? opts.endAngle : null;
      let radius = opts && 'radius' in opts ? opts.radius : null;
      let innerRadius = opts && 'innerRadius' in opts ? opts.innerRadius : null;
      let explode = opts && 'explode' in opts ? opts.explode : null;
      let explodeAll = opts && 'explodeAll' in opts ? opts.explodeAll : null;
      let explodeIndex = opts && 'explodeIndex' in opts ? opts.explodeIndex : null;
      let explodeGesture = opts && 'explodeGesture' in opts ? opts.explodeGesture : null;
      let explodeOffset = opts && 'explodeOffset' in opts ? opts.explodeOffset : null;
      let groupTo = opts && 'groupTo' in opts ? opts.groupTo : null;
      let groupMode = opts && 'groupMode' in opts ? opts.groupMode : null;
      let gap = opts && 'gap' in opts ? opts.gap : null;
      let opacity = opts && 'opacity' in opts ? opts.opacity : null;
      let emptyPointSettings = opts && 'emptyPointSettings' in opts ? opts.emptyPointSettings : null;
      let borderColor = opts && 'borderColor' in opts ? opts.borderColor : null;
      let borderWidth = opts && 'borderWidth' in opts ? opts.borderWidth : null;
      let dataLabelSettings = opts && 'dataLabelSettings' in opts ? opts.dataLabelSettings : null;
      let enableTooltip = opts && 'enableTooltip' in opts ? opts.enableTooltip : null;
      let enableSmartLabels = opts && 'enableSmartLabels' in opts ? opts.enableSmartLabels : null;
      let name = opts && 'name' in opts ? opts.name : null;
      let animationDuration = opts && 'animationDuration' in opts ? opts.animationDuration : null;
      let selectionSettings = opts && 'selectionSettings' in opts ? opts.selectionSettings : null;
      let sortingOrder = opts && 'sortingOrder' in opts ? opts.sortingOrder : null;
      let legendIconType = opts && 'legendIconType' in opts ? opts.legendIconType : null;
      let cornerStyle = opts && 'cornerStyle' in opts ? opts.cornerStyle : null;
      let initialSelectedDataIndexes = opts && 'initialSelectedDataIndexes' in opts ? opts.initialSelectedDataIndexes : null;
      this[_renderer] = null;
      this[_seriesType$] = null;
      this[_dataPoints$] = null;
      this[_renderPoints] = null;
      this[_sumOfPoints] = null;
      this[_start] = null;
      this[_end] = null;
      this[_totalAngle] = null;
      this[_currentRadius] = null;
      this[_currentInnerRadius] = null;
      this[_center] = null;
      this[_pointRegions] = null;
      this[_rect] = null;
      this[_selectionArgs] = null;
      this[_needsRepaint$0] = null;
      this[dataSource$0] = dataSource;
      this[xValueMapper$0] = xValueMapper;
      this[yValueMapper$0] = yValueMapper;
      this[pointColorMapper$0] = pointColorMapper;
      this[pointRadiusMapper$] = pointRadiusMapper;
      this[dataLabelMapper$0] = dataLabelMapper;
      this[sortFieldValueMapper$0] = sortFieldValueMapper;
      this[explodeIndex$] = explodeIndex;
      this[groupTo$] = groupTo;
      this[groupMode$] = groupMode;
      this[name$0] = name;
      this[startAngle$] = (t0 = startAngle, t0 == null ? 0 : t0);
      this[animationDuration$0] = (t0$ = animationDuration, t0$ == null ? 1500.0 : t0$);
      this[endAngle$] = (t0$0 = endAngle, t0$0 == null ? 360 : t0$0);
      this[radius$] = (t0$1 = radius, t0$1 == null ? "80%" : t0$1);
      this[innerRadius$] = (t0$2 = innerRadius, t0$2 == null ? "50%" : t0$2);
      this[explode$] = (t0$3 = explode, t0$3 == null ? false : t0$3);
      this[explodeAll$] = (t0$4 = explodeAll, t0$4 == null ? false : t0$4);
      this[explodeOffset$] = (t0$5 = explodeOffset, t0$5 == null ? "10%" : t0$5);
      this[explodeGesture$] = (t0$6 = explodeGesture, t0$6 == null ? charts.ActivationMode.singleTap : t0$6);
      this[gap$] = (t0$7 = gap, t0$7 == null ? "1%" : t0$7);
      this[cornerStyle$] = (t0$8 = cornerStyle, t0$8 == null ? charts.CornerStyle.bothFlat : t0$8);
      this[dataLabelSettings$0] = (t0$9 = dataLabelSettings, t0$9 == null ? new charts.DataLabelSettings.new() : t0$9);
      this[emptyPointSettings$0] = (t0$10 = emptyPointSettings, t0$10 == null ? new charts.EmptyPointSettings.new() : t0$10);
      this[selectionSettings$0] = (t0$11 = selectionSettings, t0$11 == null ? new charts.SelectionSettings.new() : t0$11);
      this[borderColor$1] = (t0$12 = borderColor, t0$12 == null ? colors$.Colors.transparent : t0$12);
      this[borderWidth$1] = (t0$13 = borderWidth, t0$13 == null ? 0.0 : t0$13);
      this[opacity$0] = (t0$14 = opacity, t0$14 == null ? 1.0 : t0$14);
      this[enableTooltip$0] = (t0$15 = enableTooltip, t0$15 == null ? true : t0$15);
      this[sortingOrder$0] = (t0$16 = sortingOrder, t0$16 == null ? charts.SortingOrder.none : t0$16);
      this[legendIconType$0] = (t0$17 = legendIconType, t0$17 == null ? charts.LegendIconType.seriesType : t0$17);
      this[enableSmartLabels$] = (t0$18 = enableSmartLabels, t0$18 == null ? true : t0$18);
      this[initialSelectedDataIndexes$] = (t0$19 = initialSelectedDataIndexes, t0$19 == null ? JSArrayOfint().of([]) : t0$19);
      CircularSeries.__proto__.new.call(this, {name: name});
      this[_needsRepaint] = true;
      this[_renderer] = new charts._ChartSeriesRender.new();
    }).prototype = CircularSeries.prototype;
    dart.addTypeTests(CircularSeries);
    CircularSeries.prototype[_is_CircularSeries_default] = true;
    CircularSeries[dart.implements] = () => [charts.CircularChartEmptyPointBehavior];
    dart.setMethodSignature(CircularSeries, () => ({
      __proto__: dart.getMethods(CircularSeries.__proto__),
      [_selectPoint]: dart.fnType(charts._StyleOptions, [core.int, charts.CircularSeries, charts.SfCircularChart, charts.ChartPoint]),
      [_getSelectionEventArgs]: dart.fnType(charts.SelectionArgs, [dart.dynamic, core.num, core.num]),
      [_renderPoint]: dart.fnType(core.num, [charts.SfCircularChart, charts.CircularSeries, charts.ChartPoint, core.num, core.num, core.num, ui.Canvas, core.num, core.num, core.num, core.num, core.bool, charts.ChartPoint], [core.List$(charts.ChartPoint)]),
      [_calculatePath]: dart.fnType(dart.void, [core.int, core.int, charts.SfCircularChart, charts.CircularSeries, charts.ChartPoint, charts.ChartPoint, ui.Canvas, core.num, core.num, core.num, core.num, core.num, core.bool]),
      [_drawDataPoints]: dart.fnType(dart.void, [core.int, core.int, charts.SfCircularChart, charts.CircularSeries, charts.ChartPoint, ui.Canvas, ui.Path, core.num, core.num]),
      calculateEmptyPointValue: dart.fnType(dart.void, [core.int, charts.ChartPoint])
    }));
    dart.setLibraryUri(CircularSeries, "package:syncfusion_flutter_charts/charts.dart");
    dart.setFieldSignature(CircularSeries, () => ({
      __proto__: dart.getFields(CircularSeries.__proto__),
      opacity: dart.finalFieldType(core.double),
      dataLabelSettings: dart.finalFieldType(charts.DataLabelSettings),
      [_renderer]: dart.fieldType(charts._ChartSeriesRender),
      dataSource: dart.finalFieldType(core.List$(T)),
      xValueMapper: dart.finalFieldType(dart.fnType(D, [core.int])),
      yValueMapper: dart.finalFieldType(dart.fnType(core.num, [core.int])),
      pointColorMapper: dart.finalFieldType(dart.fnType(ui.Color, [core.int])),
      pointRadiusMapper: dart.finalFieldType(dart.fnType(core.String, [core.int])),
      dataLabelMapper: dart.finalFieldType(dart.fnType(core.String, [core.int])),
      sortFieldValueMapper: dart.finalFieldType(dart.fnType(dart.dynamic, [core.int])),
      enableSmartLabels: dart.finalFieldType(core.bool),
      legendIconType: dart.finalFieldType(charts.LegendIconType),
      sortingOrder: dart.finalFieldType(charts.SortingOrder),
      enableTooltip: dart.finalFieldType(core.bool),
      borderWidth: dart.finalFieldType(core.double),
      borderColor: dart.finalFieldType(ui.Color),
      emptyPointSettings: dart.finalFieldType(charts.EmptyPointSettings),
      selectionSettings: dart.finalFieldType(charts.SelectionSettings),
      startAngle: dart.finalFieldType(core.int),
      endAngle: dart.finalFieldType(core.int),
      radius: dart.finalFieldType(core.String),
      innerRadius: dart.finalFieldType(core.String),
      explode: dart.finalFieldType(core.bool),
      explodeAll: dart.finalFieldType(core.bool),
      explodeIndex: dart.finalFieldType(core.int),
      explodeOffset: dart.finalFieldType(core.String),
      explodeGesture: dart.finalFieldType(charts.ActivationMode),
      groupTo: dart.finalFieldType(core.double),
      groupMode: dart.finalFieldType(charts.CircularChartGroupMode),
      gap: dart.finalFieldType(core.String),
      cornerStyle: dart.finalFieldType(charts.CornerStyle),
      name: dart.finalFieldType(core.String),
      animationDuration: dart.finalFieldType(core.double),
      initialSelectedDataIndexes: dart.fieldType(core.List$(core.int)),
      [_seriesType$]: dart.fieldType(core.String),
      [_dataPoints$]: dart.fieldType(core.List$(charts.ChartPoint)),
      [_renderPoints]: dart.fieldType(core.List$(charts.ChartPoint)),
      [_sumOfPoints]: dart.fieldType(core.num),
      [_start]: dart.fieldType(core.num),
      [_end]: dart.fieldType(core.num),
      [_totalAngle]: dart.fieldType(core.num),
      [_currentRadius]: dart.fieldType(core.num),
      [_currentInnerRadius]: dart.fieldType(core.num),
      [_center]: dart.fieldType(ui.Offset),
      [_pointRegions]: dart.fieldType(core.List$(charts._Region)),
      [_rect]: dart.fieldType(ui.Rect),
      [_selectionArgs]: dart.fieldType(charts.SelectionArgs),
      [_needsRepaint]: dart.fieldType(core.bool)
    }));
    return CircularSeries;
  });
  charts.CircularSeries = charts.CircularSeries$();
  dart.addTypeTests(charts.CircularSeries, _is_CircularSeries_default);
  charts._CircularChartSegment = class _CircularChartSegment extends core.Object {};
  (charts._CircularChartSegment.new = function() {
    ;
  }).prototype = charts._CircularChartSegment.prototype;
  dart.addTypeTests(charts._CircularChartSegment);
  dart.setLibraryUri(charts._CircularChartSegment, "package:syncfusion_flutter_charts/charts.dart");
  charts._LabelSegment = class _LabelSegment extends core.Object {};
  (charts._LabelSegment.new = function() {
    ;
  }).prototype = charts._LabelSegment.prototype;
  dart.addTypeTests(charts._LabelSegment);
  dart.setLibraryUri(charts._LabelSegment, "package:syncfusion_flutter_charts/charts.dart");
  const Object__CircularChartSegment$36 = class Object__CircularChartSegment extends core.Object {};
  (Object__CircularChartSegment$36.new = function() {
  }).prototype = Object__CircularChartSegment$36.prototype;
  dart.applyMixin(Object__CircularChartSegment$36, charts._CircularChartSegment);
  const Object__LabelSegment$36 = class Object__LabelSegment extends Object__CircularChartSegment$36 {};
  (Object__LabelSegment$36.new = function() {
  }).prototype = Object__LabelSegment$36.prototype;
  dart.applyMixin(Object__LabelSegment$36, charts._LabelSegment);
  charts._ChartSeriesRender = class _ChartSeriesRender extends Object__LabelSegment$36 {
    getPointColor(series, point, pointIndex, seriesIndex, color, opacity) {
      let t0;
      t0 = color;
      return t0 == null ? null : t0.withOpacity(opacity);
    }
    getPointStrokeColor(series, point, pointIndex, seriesIndex, strokeColor) {
      return strokeColor;
    }
    getPointStrokeWidth(series, point, pointIndex, seriesIndex, strokeWidth) {
      return strokeWidth;
    }
    getLabelContent(series, point, pointIndex, seriesIndex, content) {
      return content;
    }
    getDataLabelStyle(series, point, pointIndex, seriesIndex, style, chart) {
      let dataLabel = series.dataLabelSettings;
      let fontColor = dataLabel.textStyle.color != null ? dataLabel.textStyle.color : charts._getCircularDataLabelColor(point, series, chart);
      let textStyle = new charts.ChartTextStyle.new({color: fontColor, fontSize: dataLabel.textStyle.fontSize, fontFamily: dataLabel.textStyle.fontFamily, fontStyle: dataLabel.textStyle.fontStyle, fontWeight: dataLabel.textStyle.fontWeight});
      return textStyle;
    }
    getDataLabelColor(series, point, pointIndex, seriesIndex, color) {
      return color;
    }
    getDataLabelStrokeColor(series, point, pointIndex, seriesIndex, strokeColor) {
      let t0;
      t0 = strokeColor;
      return t0 == null ? point.fill : t0;
    }
    getDataLabelStrokeWidth(series, point, pointIndex, seriesIndex, strokeWidth) {
      return strokeWidth;
    }
    getOpacity(series, point, pointIndex, seriesIndex, opacity) {
      return opacity;
    }
  };
  (charts._ChartSeriesRender.new = function() {
    ;
  }).prototype = charts._ChartSeriesRender.prototype;
  dart.addTypeTests(charts._ChartSeriesRender);
  dart.setMethodSignature(charts._ChartSeriesRender, () => ({
    __proto__: dart.getMethods(charts._ChartSeriesRender.__proto__),
    getPointColor: dart.fnType(ui.Color, [charts.CircularSeries, charts.ChartPoint, core.int, core.int, ui.Color, core.double]),
    getPointStrokeColor: dart.fnType(ui.Color, [charts.CircularSeries, charts.ChartPoint, core.int, core.int, ui.Color]),
    getPointStrokeWidth: dart.fnType(core.double, [charts.CircularSeries, charts.ChartPoint, core.int, core.int, core.double]),
    getLabelContent: dart.fnType(core.String, [charts.CircularSeries, charts.ChartPoint, core.int, core.int, core.String]),
    getDataLabelStyle: dart.fnType(charts.ChartTextStyle, [charts.CircularSeries, charts.ChartPoint, core.int, core.int, charts.ChartTextStyle, charts.SfCircularChart]),
    getDataLabelColor: dart.fnType(ui.Color, [charts.CircularSeries, charts.ChartPoint, core.int, core.int, ui.Color]),
    getDataLabelStrokeColor: dart.fnType(ui.Color, [charts.CircularSeries, charts.ChartPoint, core.int, core.int, ui.Color]),
    getDataLabelStrokeWidth: dart.fnType(core.double, [charts.CircularSeries, charts.ChartPoint, core.int, core.int, core.double]),
    getOpacity: dart.fnType(core.double, [charts.CircularSeries, charts.ChartPoint, core.int, core.int, core.double])
  }));
  dart.setLibraryUri(charts._ChartSeriesRender, "package:syncfusion_flutter_charts/charts.dart");
  const OffsetBase__dy = dart.privateName(ui, "OffsetBase._dy");
  const OffsetBase__dx = dart.privateName(ui, "OffsetBase._dx");
  let C122;
  const _is_ChartPoint_default = Symbol('_is_ChartPoint_default');
  const x$ = dart.privateName(charts, "ChartPoint.x");
  const y$ = dart.privateName(charts, "ChartPoint.y");
  const degree = dart.privateName(charts, "ChartPoint.degree");
  const startAngle = dart.privateName(charts, "ChartPoint.startAngle");
  const endAngle = dart.privateName(charts, "ChartPoint.endAngle");
  const midAngle = dart.privateName(charts, "ChartPoint.midAngle");
  const center = dart.privateName(charts, "ChartPoint.center");
  const text$ = dart.privateName(charts, "ChartPoint.text");
  const fill = dart.privateName(charts, "ChartPoint.fill");
  const color = dart.privateName(charts, "ChartPoint.color");
  const strokeColor = dart.privateName(charts, "ChartPoint.strokeColor");
  const sortValue = dart.privateName(charts, "ChartPoint.sortValue");
  const strokeWidth = dart.privateName(charts, "ChartPoint.strokeWidth");
  const innerRadius = dart.privateName(charts, "ChartPoint.innerRadius");
  const outerRadius = dart.privateName(charts, "ChartPoint.outerRadius");
  const isExplode = dart.privateName(charts, "ChartPoint.isExplode");
  const isShadow = dart.privateName(charts, "ChartPoint.isShadow");
  const isEmpty = dart.privateName(charts, "ChartPoint.isEmpty");
  const isVisible$ = dart.privateName(charts, "ChartPoint.isVisible");
  const isSelected = dart.privateName(charts, "ChartPoint.isSelected");
  const dataLabelPosition = dart.privateName(charts, "ChartPoint.dataLabelPosition");
  const renderPosition = dart.privateName(charts, "ChartPoint.renderPosition");
  const labelRect = dart.privateName(charts, "ChartPoint.labelRect");
  const dataLabelSize = dart.privateName(charts, "ChartPoint.dataLabelSize");
  const saturationRegionOutside = dart.privateName(charts, "ChartPoint.saturationRegionOutside");
  const yRatio = dart.privateName(charts, "ChartPoint.yRatio");
  const heightRatio = dart.privateName(charts, "ChartPoint.heightRatio");
  const radius = dart.privateName(charts, "ChartPoint.radius");
  const pointColor = dart.privateName(charts, "ChartPoint.pointColor");
  charts.ChartPoint$ = dart.generic(D => {
    class ChartPoint extends core.Object {
      get x() {
        return this[x$];
      }
      set x(value) {
        this[x$] = value;
      }
      get y() {
        return this[y$];
      }
      set y(value) {
        this[y$] = value;
      }
      get degree() {
        return this[degree];
      }
      set degree(value) {
        this[degree] = value;
      }
      get startAngle() {
        return this[startAngle];
      }
      set startAngle(value) {
        this[startAngle] = value;
      }
      get endAngle() {
        return this[endAngle];
      }
      set endAngle(value) {
        this[endAngle] = value;
      }
      get midAngle() {
        return this[midAngle];
      }
      set midAngle(value) {
        this[midAngle] = value;
      }
      get center() {
        return this[center];
      }
      set center(value) {
        this[center] = value;
      }
      get text() {
        return this[text$];
      }
      set text(value) {
        this[text$] = value;
      }
      get fill() {
        return this[fill];
      }
      set fill(value) {
        this[fill] = value;
      }
      get color() {
        return this[color];
      }
      set color(value) {
        this[color] = value;
      }
      get strokeColor() {
        return this[strokeColor];
      }
      set strokeColor(value) {
        this[strokeColor] = value;
      }
      get sortValue() {
        return this[sortValue];
      }
      set sortValue(value) {
        this[sortValue] = D._check(value);
      }
      get strokeWidth() {
        return this[strokeWidth];
      }
      set strokeWidth(value) {
        this[strokeWidth] = value;
      }
      get innerRadius() {
        return this[innerRadius];
      }
      set innerRadius(value) {
        this[innerRadius] = value;
      }
      get outerRadius() {
        return this[outerRadius];
      }
      set outerRadius(value) {
        this[outerRadius] = value;
      }
      get isExplode() {
        return this[isExplode];
      }
      set isExplode(value) {
        this[isExplode] = value;
      }
      get isShadow() {
        return this[isShadow];
      }
      set isShadow(value) {
        this[isShadow] = value;
      }
      get isEmpty() {
        return this[isEmpty];
      }
      set isEmpty(value) {
        this[isEmpty] = value;
      }
      get isVisible() {
        return this[isVisible$];
      }
      set isVisible(value) {
        this[isVisible$] = value;
      }
      get isSelected() {
        return this[isSelected];
      }
      set isSelected(value) {
        this[isSelected] = value;
      }
      get dataLabelPosition() {
        return this[dataLabelPosition];
      }
      set dataLabelPosition(value) {
        this[dataLabelPosition] = value;
      }
      get renderPosition() {
        return this[renderPosition];
      }
      set renderPosition(value) {
        this[renderPosition] = value;
      }
      get labelRect() {
        return this[labelRect];
      }
      set labelRect(value) {
        this[labelRect] = value;
      }
      get dataLabelSize() {
        return this[dataLabelSize];
      }
      set dataLabelSize(value) {
        this[dataLabelSize] = value;
      }
      get saturationRegionOutside() {
        return this[saturationRegionOutside];
      }
      set saturationRegionOutside(value) {
        this[saturationRegionOutside] = value;
      }
      get yRatio() {
        return this[yRatio];
      }
      set yRatio(value) {
        this[yRatio] = value;
      }
      get heightRatio() {
        return this[heightRatio];
      }
      set heightRatio(value) {
        this[heightRatio] = value;
      }
      get radius() {
        return this[radius];
      }
      set radius(value) {
        this[radius] = value;
      }
      get pointColor() {
        return this[pointColor];
      }
      set pointColor(value) {
        this[pointColor] = value;
      }
    }
    (ChartPoint.new = function(x, y) {
      this[degree] = null;
      this[startAngle] = null;
      this[endAngle] = null;
      this[midAngle] = null;
      this[center] = null;
      this[text$] = null;
      this[fill] = null;
      this[color] = null;
      this[strokeColor] = null;
      this[sortValue] = null;
      this[strokeWidth] = null;
      this[innerRadius] = null;
      this[outerRadius] = null;
      this[isExplode] = null;
      this[isShadow] = null;
      this[isEmpty] = false;
      this[isVisible$] = true;
      this[isSelected] = false;
      this[dataLabelPosition] = null;
      this[renderPosition] = null;
      this[labelRect] = null;
      this[dataLabelSize] = C122 || CT.C122;
      this[saturationRegionOutside] = false;
      this[yRatio] = null;
      this[heightRatio] = null;
      this[radius] = null;
      this[pointColor] = null;
      this[x$] = x;
      this[y$] = y;
      ;
    }).prototype = ChartPoint.prototype;
    dart.addTypeTests(ChartPoint);
    ChartPoint.prototype[_is_ChartPoint_default] = true;
    dart.setLibraryUri(ChartPoint, "package:syncfusion_flutter_charts/charts.dart");
    dart.setFieldSignature(ChartPoint, () => ({
      __proto__: dart.getFields(ChartPoint.__proto__),
      x: dart.fieldType(dart.dynamic),
      y: dart.fieldType(core.num),
      degree: dart.fieldType(core.num),
      startAngle: dart.fieldType(core.num),
      endAngle: dart.fieldType(core.num),
      midAngle: dart.fieldType(core.num),
      center: dart.fieldType(ui.Offset),
      text: dart.fieldType(core.String),
      fill: dart.fieldType(ui.Color),
      color: dart.fieldType(ui.Color),
      strokeColor: dart.fieldType(ui.Color),
      sortValue: dart.fieldType(D),
      strokeWidth: dart.fieldType(core.num),
      innerRadius: dart.fieldType(core.num),
      outerRadius: dart.fieldType(core.num),
      isExplode: dart.fieldType(core.bool),
      isShadow: dart.fieldType(core.bool),
      isEmpty: dart.fieldType(core.bool),
      isVisible: dart.fieldType(core.bool),
      isSelected: dart.fieldType(core.bool),
      dataLabelPosition: dart.fieldType(charts.Position),
      renderPosition: dart.fieldType(charts.ChartDataLabelPosition),
      labelRect: dart.fieldType(ui.Rect),
      dataLabelSize: dart.fieldType(ui.Size),
      saturationRegionOutside: dart.fieldType(core.bool),
      yRatio: dart.fieldType(core.num),
      heightRatio: dart.fieldType(core.num),
      radius: dart.fieldType(core.String),
      pointColor: dart.fieldType(ui.Color)
    }));
    return ChartPoint;
  });
  charts.ChartPoint = charts.ChartPoint$();
  dart.addTypeTests(charts.ChartPoint, _is_ChartPoint_default);
  charts._Region = class _Region extends core.Object {};
  (charts._Region.new = function(start, end, startAngle, endAngle, seriesIndex, pointIndex, center, innerRadius, outerRadius) {
    this.start = start;
    this.end = end;
    this.startAngle = startAngle;
    this.endAngle = endAngle;
    this.seriesIndex = seriesIndex;
    this.pointIndex = pointIndex;
    this.center = center;
    this.innerRadius = innerRadius;
    this.outerRadius = outerRadius;
    ;
  }).prototype = charts._Region.prototype;
  dart.addTypeTests(charts._Region);
  dart.setLibraryUri(charts._Region, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._Region, () => ({
    __proto__: dart.getFields(charts._Region.__proto__),
    seriesIndex: dart.fieldType(core.int),
    pointIndex: dart.fieldType(core.int),
    startAngle: dart.fieldType(core.num),
    start: dart.fieldType(core.num),
    end: dart.fieldType(core.num),
    endAngle: dart.fieldType(core.num),
    center: dart.fieldType(ui.Offset),
    innerRadius: dart.fieldType(core.num),
    outerRadius: dart.fieldType(core.num)
  }));
  charts._StyleOptions = class _StyleOptions extends core.Object {};
  (charts._StyleOptions.new = function(fill, strokeWidth, strokeColor, opacity = null) {
    this.fill = fill;
    this.strokeWidth = strokeWidth;
    this.strokeColor = strokeColor;
    this.opacity = opacity;
    ;
  }).prototype = charts._StyleOptions.prototype;
  dart.addTypeTests(charts._StyleOptions);
  dart.setLibraryUri(charts._StyleOptions, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._StyleOptions, () => ({
    __proto__: dart.getFields(charts._StyleOptions.__proto__),
    fill: dart.fieldType(ui.Color),
    strokeColor: dart.fieldType(ui.Color),
    opacity: dart.fieldType(core.double),
    strokeWidth: dart.fieldType(core.num)
  }));
  const length$ = dart.privateName(charts, "ConnectorLineSettings.length");
  const width$ = dart.privateName(charts, "ConnectorLineSettings.width");
  const color$ = dart.privateName(charts, "ConnectorLineSettings.color");
  const type$ = dart.privateName(charts, "ConnectorLineSettings.type");
  charts.ConnectorLineSettings = class ConnectorLineSettings extends core.Object {
    get length() {
      return this[length$];
    }
    set length(value) {
      super.length = value;
    }
    get width() {
      return this[width$];
    }
    set width(value) {
      super.width = value;
    }
    get color() {
      return this[color$];
    }
    set color(value) {
      super.color = value;
    }
    get type() {
      return this[type$];
    }
    set type(value) {
      super.type = value;
    }
  };
  (charts.ConnectorLineSettings.new = function(opts) {
    let t0, t0$;
    let length = opts && 'length' in opts ? opts.length : null;
    let width = opts && 'width' in opts ? opts.width : null;
    let type = opts && 'type' in opts ? opts.type : null;
    let color = opts && 'color' in opts ? opts.color : null;
    this[length$] = length;
    this[color$] = color;
    this[width$] = (t0 = width, t0 == null ? 1.0 : t0);
    this[type$] = (t0$ = type, t0$ == null ? charts.ConnectorType.line : t0$);
    ;
  }).prototype = charts.ConnectorLineSettings.prototype;
  dart.addTypeTests(charts.ConnectorLineSettings);
  dart.setLibraryUri(charts.ConnectorLineSettings, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.ConnectorLineSettings, () => ({
    __proto__: dart.getFields(charts.ConnectorLineSettings.__proto__),
    length: dart.finalFieldType(core.String),
    width: dart.finalFieldType(core.double),
    color: dart.finalFieldType(ui.Color),
    type: dart.finalFieldType(charts.ConnectorType)
  }));
  charts._ChartInteraction = class _ChartInteraction extends core.Object {};
  (charts._ChartInteraction.new = function(seriesIndex, pointIndex, series, point, region = null) {
    this.seriesIndex = seriesIndex;
    this.pointIndex = pointIndex;
    this.series = series;
    this.point = point;
    this.region = region;
    ;
  }).prototype = charts._ChartInteraction.prototype;
  dart.addTypeTests(charts._ChartInteraction);
  dart.setLibraryUri(charts._ChartInteraction, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._ChartInteraction, () => ({
    __proto__: dart.getFields(charts._ChartInteraction.__proto__),
    seriesIndex: dart.fieldType(core.int),
    pointIndex: dart.fieldType(core.int),
    series: dart.fieldType(dart.dynamic),
    point: dart.fieldType(dart.dynamic),
    region: dart.fieldType(charts._Region)
  }));
  const angle$ = dart.privateName(charts, "CircularChartAnnotation.angle");
  const radius$0 = dart.privateName(charts, "CircularChartAnnotation.radius");
  const widget$ = dart.privateName(charts, "CircularChartAnnotation.widget");
  const height$ = dart.privateName(charts, "CircularChartAnnotation.height");
  const width$0 = dart.privateName(charts, "CircularChartAnnotation.width");
  const horizontalAlignment$ = dart.privateName(charts, "CircularChartAnnotation.horizontalAlignment");
  const verticalAlignment$ = dart.privateName(charts, "CircularChartAnnotation.verticalAlignment");
  charts.CircularChartAnnotation = class CircularChartAnnotation extends core.Object {
    get angle() {
      return this[angle$];
    }
    set angle(value) {
      super.angle = value;
    }
    get radius() {
      return this[radius$0];
    }
    set radius(value) {
      super.radius = value;
    }
    get widget() {
      return this[widget$];
    }
    set widget(value) {
      super.widget = value;
    }
    get height() {
      return this[height$];
    }
    set height(value) {
      super.height = value;
    }
    get width() {
      return this[width$0];
    }
    set width(value) {
      super.width = value;
    }
    get horizontalAlignment() {
      return this[horizontalAlignment$];
    }
    set horizontalAlignment(value) {
      super.horizontalAlignment = value;
    }
    get verticalAlignment() {
      return this[verticalAlignment$];
    }
    set verticalAlignment(value) {
      super.verticalAlignment = value;
    }
  };
  (charts.CircularChartAnnotation.new = function(opts) {
    let t0, t0$, t0$0, t0$1, t0$2, t0$3;
    let angle = opts && 'angle' in opts ? opts.angle : null;
    let radius = opts && 'radius' in opts ? opts.radius : null;
    let widget = opts && 'widget' in opts ? opts.widget : null;
    let height = opts && 'height' in opts ? opts.height : null;
    let width = opts && 'width' in opts ? opts.width : null;
    let horizontalAlignment = opts && 'horizontalAlignment' in opts ? opts.horizontalAlignment : null;
    let verticalAlignment = opts && 'verticalAlignment' in opts ? opts.verticalAlignment : null;
    this[widget$] = widget;
    this[angle$] = (t0 = angle, t0 == null ? 0 : t0);
    this[radius$0] = (t0$ = radius, t0$ == null ? "0%" : t0$);
    this[height$] = (t0$0 = height, t0$0 == null ? "0%" : t0$0);
    this[width$0] = (t0$1 = width, t0$1 == null ? "0%" : t0$1);
    this[verticalAlignment$] = (t0$2 = verticalAlignment, t0$2 == null ? charts.ChartAlignment.center : t0$2);
    this[horizontalAlignment$] = (t0$3 = horizontalAlignment, t0$3 == null ? charts.ChartAlignment.center : t0$3);
    ;
  }).prototype = charts.CircularChartAnnotation.prototype;
  dart.addTypeTests(charts.CircularChartAnnotation);
  dart.setLibraryUri(charts.CircularChartAnnotation, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.CircularChartAnnotation, () => ({
    __proto__: dart.getFields(charts.CircularChartAnnotation.__proto__),
    angle: dart.finalFieldType(core.int),
    radius: dart.finalFieldType(core.String),
    widget: dart.finalFieldType(framework.Widget),
    height: dart.finalFieldType(core.String),
    width: dart.finalFieldType(core.String),
    horizontalAlignment: dart.finalFieldType(charts.ChartAlignment),
    verticalAlignment: dart.finalFieldType(charts.ChartAlignment)
  }));
  charts._CircularDataLabelRenderer = class _CircularDataLabelRenderer extends framework.StatefulWidget {
    createState() {
      return new charts._CircularDataLabelRendererState.new();
    }
  };
  (charts._CircularDataLabelRenderer.new = function(opts) {
    let circularChart = opts && 'circularChart' in opts ? opts.circularChart : null;
    let show = opts && 'show' in opts ? opts.show : null;
    let $36creationLocationd_0dea112b090073317d4 = opts && '$creationLocationd_0dea112b090073317d4' in opts ? opts.$creationLocationd_0dea112b090073317d4 : null;
    this.state = null;
    this.circularChart = circularChart;
    this.show = show;
    charts._CircularDataLabelRenderer.__proto__.new.call(this, {$creationLocationd_0dea112b090073317d4: $36creationLocationd_0dea112b090073317d4});
    ;
  }).prototype = charts._CircularDataLabelRenderer.prototype;
  dart.addTypeTests(charts._CircularDataLabelRenderer);
  dart.setMethodSignature(charts._CircularDataLabelRenderer, () => ({
    __proto__: dart.getMethods(charts._CircularDataLabelRenderer.__proto__),
    createState: dart.fnType(framework.State$(framework.StatefulWidget), [])
  }));
  dart.setLibraryUri(charts._CircularDataLabelRenderer, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._CircularDataLabelRenderer, () => ({
    __proto__: dart.getFields(charts._CircularDataLabelRenderer.__proto__),
    circularChart: dart.finalFieldType(charts.SfCircularChart),
    show: dart.fieldType(core.bool),
    state: dart.fieldType(charts._CircularDataLabelRendererState)
  }));
  const Duration__duration = dart.privateName(core, "Duration._duration");
  let C123;
  let C124;
  let C125;
  let C128;
  let C127;
  let C126;
  let C131;
  let C130;
  let C129;
  const State_SingleTickerProviderStateMixin$36 = class State_SingleTickerProviderStateMixin extends framework.State$(charts._CircularDataLabelRenderer) {};
  (State_SingleTickerProviderStateMixin$36.new = function() {
    ticker_provider.SingleTickerProviderStateMixin$(charts._CircularDataLabelRenderer)[dart.mixinNew].call(this);
    State_SingleTickerProviderStateMixin$36.__proto__.new.call(this);
  }).prototype = State_SingleTickerProviderStateMixin$36.prototype;
  dart.applyMixin(State_SingleTickerProviderStateMixin$36, ticker_provider.SingleTickerProviderStateMixin$(charts._CircularDataLabelRenderer));
  charts._CircularDataLabelRendererState = class _CircularDataLabelRendererState extends State_SingleTickerProviderStateMixin$36 {
    initState() {
      let t0;
      this.dataLabelRepaintNotifier = new (ValueNotifierOfint()).new(0);
      this.animationController = (t0 = new animation_controller.AnimationController.new({vsync: this}), t0.addListener(dart.bind(this, 'repaintDataLabelElements')), t0);
      super.initState();
    }
    dispose() {
      if (this.animationController != null) {
        this.animationController.removeListener(dart.bind(this, 'repaintDataLabelElements'));
        this.animationController.dispose();
        this.animationController = null;
      }
      super.dispose();
    }
    repaintDataLabelElements() {
      let t0;
      t0 = this.dataLabelRepaintNotifier;
      t0.value = dart.notNull(t0.value) + 1;
    }
    render() {
      this.setState(dart.fn(() => {
        this.widget.show = true;
      }, VoidToNull()));
    }
    build(context) {
      this.widget.state = this;
      this.animationController.duration = C123 || CT.C123;
      let dataLabelAnimation = new (TweenOfdouble()).new({begin: 0.0, end: 1.0}).animate(new animations.CurvedAnimation.new({parent: this.animationController, curve: C124 || CT.C124}));
      if (dart.test(this.widget.circularChart[_chartState].initialRender)) {
        this.animationController.forward({from: 0.0});
      }
      return !dart.test(this.widget.show) ? new container.Container.new({$creationLocationd_0dea112b090073317d4: C125 || CT.C125}) : new container.Container.new({child: new basic.CustomPaint.new({painter: new charts._CircularDataLabelPainter.new({circularChart: this.widget.circularChart, animation: dataLabelAnimation, state: this, notifier: this.dataLabelRepaintNotifier, animationController: this.animationController}), $creationLocationd_0dea112b090073317d4: C126 || CT.C126}), $creationLocationd_0dea112b090073317d4: C129 || CT.C129});
    }
  };
  (charts._CircularDataLabelRendererState.new = function() {
    this.animationControllersList = null;
    this.animationController = null;
    this.dataLabelRepaintNotifier = null;
    charts._CircularDataLabelRendererState.__proto__.new.call(this);
    ;
  }).prototype = charts._CircularDataLabelRendererState.prototype;
  dart.addTypeTests(charts._CircularDataLabelRendererState);
  dart.setMethodSignature(charts._CircularDataLabelRendererState, () => ({
    __proto__: dart.getMethods(charts._CircularDataLabelRendererState.__proto__),
    repaintDataLabelElements: dart.fnType(dart.void, []),
    render: dart.fnType(dart.void, []),
    build: dart.fnType(framework.Widget, [framework.BuildContext])
  }));
  dart.setLibraryUri(charts._CircularDataLabelRendererState, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._CircularDataLabelRendererState, () => ({
    __proto__: dart.getFields(charts._CircularDataLabelRendererState.__proto__),
    animationControllersList: dart.fieldType(core.List$(animation_controller.AnimationController)),
    animationController: dart.fieldType(animation_controller.AnimationController),
    dataLabelRepaintNotifier: dart.fieldType(change_notifier.ValueNotifier$(core.int))
  }));
  charts._CircularDataLabelPainter = class _CircularDataLabelPainter extends custom_paint.CustomPainter {
    paint(canvas, size) {
      for (let seriesIndex = 0; seriesIndex < dart.notNull(this.circularChart.series[$length]); seriesIndex = seriesIndex + 1) {
        let series = this.circularChart.series[$_get](seriesIndex);
        if (series.dataLabelSettings != null && dart.test(series.dataLabelSettings.isVisible)) {
          charts._renderDataLabel(series, canvas, this.circularChart, seriesIndex, this.animation);
        }
      }
    }
    shouldRepaint(oldDelegate) {
      charts._CircularDataLabelPainter._check(oldDelegate);
      return true;
    }
  };
  (charts._CircularDataLabelPainter.new = function(opts) {
    let circularChart = opts && 'circularChart' in opts ? opts.circularChart : null;
    let state = opts && 'state' in opts ? opts.state : null;
    let animationController = opts && 'animationController' in opts ? opts.animationController : null;
    let animation = opts && 'animation' in opts ? opts.animation : null;
    let notifier = opts && 'notifier' in opts ? opts.notifier : null;
    this.circularChart = circularChart;
    this.state = state;
    this.animationController = animationController;
    this.animation = animation;
    charts._CircularDataLabelPainter.__proto__.new.call(this, {repaint: notifier});
    ;
  }).prototype = charts._CircularDataLabelPainter.prototype;
  dart.addTypeTests(charts._CircularDataLabelPainter);
  dart.setMethodSignature(charts._CircularDataLabelPainter, () => ({
    __proto__: dart.getMethods(charts._CircularDataLabelPainter.__proto__),
    paint: dart.fnType(dart.void, [ui.Canvas, ui.Size]),
    shouldRepaint: dart.fnType(core.bool, [core.Object])
  }));
  dart.setLibraryUri(charts._CircularDataLabelPainter, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._CircularDataLabelPainter, () => ({
    __proto__: dart.getFields(charts._CircularDataLabelPainter.__proto__),
    circularChart: dart.finalFieldType(charts.SfCircularChart),
    state: dart.finalFieldType(charts._CircularDataLabelRendererState),
    animationController: dart.finalFieldType(animation_controller.AnimationController),
    animation: dart.finalFieldType(animation.Animation$(core.double))
  }));
  const _is_DoughnutSeries_default = Symbol('_is_DoughnutSeries_default');
  charts.DoughnutSeries$ = dart.generic((T, D) => {
    let intToD = () => (intToD = dart.constFn(dart.fnType(D, [core.int])))();
    class DoughnutSeries extends charts.CircularSeries$(T, D) {}
    (DoughnutSeries.new = function(opts) {
      let dataSource = opts && 'dataSource' in opts ? opts.dataSource : null;
      let xValueMapper = opts && 'xValueMapper' in opts ? opts.xValueMapper : null;
      let yValueMapper = opts && 'yValueMapper' in opts ? opts.yValueMapper : null;
      let pointColorMapper = opts && 'pointColorMapper' in opts ? opts.pointColorMapper : null;
      let pointRadiusMapper = opts && 'pointRadiusMapper' in opts ? opts.pointRadiusMapper : null;
      let dataLabelMapper = opts && 'dataLabelMapper' in opts ? opts.dataLabelMapper : null;
      let sortFieldValueMapper = opts && 'sortFieldValueMapper' in opts ? opts.sortFieldValueMapper : null;
      let startAngle = opts && 'startAngle' in opts ? opts.startAngle : null;
      let endAngle = opts && 'endAngle' in opts ? opts.endAngle : null;
      let radius = opts && 'radius' in opts ? opts.radius : null;
      let innerRadius = opts && 'innerRadius' in opts ? opts.innerRadius : null;
      let explode = opts && 'explode' in opts ? opts.explode : null;
      let explodeAll = opts && 'explodeAll' in opts ? opts.explodeAll : null;
      let explodeIndex = opts && 'explodeIndex' in opts ? opts.explodeIndex : null;
      let explodeOffset = opts && 'explodeOffset' in opts ? opts.explodeOffset : null;
      let explodeGesture = opts && 'explodeGesture' in opts ? opts.explodeGesture : null;
      let groupTo = opts && 'groupTo' in opts ? opts.groupTo : null;
      let groupMode = opts && 'groupMode' in opts ? opts.groupMode : null;
      let emptyPointSettings = opts && 'emptyPointSettings' in opts ? opts.emptyPointSettings : null;
      let strokeColor = opts && 'strokeColor' in opts ? opts.strokeColor : null;
      let strokeWidth = opts && 'strokeWidth' in opts ? opts.strokeWidth : null;
      let dataLabelSettings = opts && 'dataLabelSettings' in opts ? opts.dataLabelSettings : null;
      let enableTooltip = opts && 'enableTooltip' in opts ? opts.enableTooltip : null;
      let enableSmartLabels = opts && 'enableSmartLabels' in opts ? opts.enableSmartLabels : null;
      let name = opts && 'name' in opts ? opts.name : null;
      let opacity = opts && 'opacity' in opts ? opts.opacity : null;
      let animationDuration = opts && 'animationDuration' in opts ? opts.animationDuration : null;
      let selectionSettings = opts && 'selectionSettings' in opts ? opts.selectionSettings : null;
      let sortingOrder = opts && 'sortingOrder' in opts ? opts.sortingOrder : null;
      let legendIconType = opts && 'legendIconType' in opts ? opts.legendIconType : null;
      let cornerStyle = opts && 'cornerStyle' in opts ? opts.cornerStyle : null;
      let initialSelectedDataIndexes = opts && 'initialSelectedDataIndexes' in opts ? opts.initialSelectedDataIndexes : null;
      DoughnutSeries.__proto__.new.call(this, {dataSource: dataSource, xValueMapper: dart.fn(index => xValueMapper(dataSource[$_get](index), index), intToD()), yValueMapper: dart.fn(index => yValueMapper(dataSource[$_get](index), index), intTonum()), pointColorMapper: dart.fn(index => pointColorMapper != null ? pointColorMapper(dataSource[$_get](index), index) : null, intToColor()), pointRadiusMapper: pointRadiusMapper == null ? null : dart.fn(index => pointRadiusMapper(dataSource[$_get](index), index), intToString()), dataLabelMapper: dart.fn(index => dataLabelMapper != null ? dataLabelMapper(dataSource[$_get](index), index) : null, intToString()), sortFieldValueMapper: sortFieldValueMapper != null ? dart.fn(index => sortFieldValueMapper(dataSource[$_get](index), index), intToString()) : null, animationDuration: animationDuration, startAngle: startAngle, endAngle: endAngle, radius: radius, innerRadius: innerRadius, explode: explode, opacity: opacity, explodeAll: explodeAll, explodeIndex: explodeIndex, explodeOffset: explodeOffset, explodeGesture: explodeGesture, groupMode: groupMode, groupTo: groupTo, emptyPointSettings: emptyPointSettings, borderColor: strokeColor, borderWidth: strokeWidth, dataLabelSettings: dataLabelSettings, enableTooltip: enableTooltip, name: name, selectionSettings: selectionSettings, legendIconType: legendIconType, sortingOrder: sortingOrder, enableSmartLabels: enableSmartLabels, cornerStyle: cornerStyle, initialSelectedDataIndexes: initialSelectedDataIndexes});
      ;
    }).prototype = DoughnutSeries.prototype;
    dart.addTypeTests(DoughnutSeries);
    DoughnutSeries.prototype[_is_DoughnutSeries_default] = true;
    dart.setLibraryUri(DoughnutSeries, "package:syncfusion_flutter_charts/charts.dart");
    return DoughnutSeries;
  });
  charts.DoughnutSeries = charts.DoughnutSeries$();
  dart.addTypeTests(charts.DoughnutSeries, _is_DoughnutSeries_default);
  charts._DoughnutChartPainter = class _DoughnutChartPainter extends custom_paint.CustomPainter {
    paint(canvas, size) {
      let t0;
      let pointStartAngle = null;
      this.series = charts.DoughnutSeries._check(this.chart[_chartSeries].visibleSeries[$_get](this.index));
      pointStartAngle = this.series[_start];
      this.innerRadius = this.series[_currentInnerRadius];
      this.radius = this.series[_currentRadius];
      let point = null;
      this.series[_pointRegions] = JSArrayOf_Region().of([]);
      let oldPoint = null;
      let oldSeries = charts.DoughnutSeries._check(dart.test(this.chart[_chartState].widgetNeedUpdate) && !dart.test(this.chart[_chartState][_isLegendToggled]) && this.chart[_chartState].prevSeries[_seriesType$] === "doughnut" ? this.chart[_chartState].prevSeries : null);
      for (let i = 0; i < dart.notNull(this.series[_renderPoints][$length]); i = i + 1) {
        point = this.series[_renderPoints][$_get](i);
        oldPoint = oldSeries != null && oldSeries[_renderPoints] != null && dart.notNull(oldSeries[_renderPoints][$length]) - 1 >= i ? oldSeries[_renderPoints][$_get](i) : dart.test(this.chart[_chartState][_isLegendToggled]) && this.chart[_chartState].prevSeries[_seriesType$] === "doughnut" ? this.chart[_chartState][_oldPoints][$_get](i) : null;
        pointStartAngle = this.series[_renderPoint](this.chart, this.series, point, pointStartAngle, point.innerRadius, point.outerRadius, canvas, this.index, i, this.seriesAnimation != null ? (t0 = this.seriesAnimation, t0 == null ? null : t0.value) : 1, 1, charts._checkIsAnyPointSelect(this.series, point, this.chart), oldPoint, this.chart[_chartState][_oldPoints]);
      }
    }
    shouldRepaint(oldDelegate) {
      charts._DoughnutChartPainter._check(oldDelegate);
      return this.isRepaint;
    }
  };
  (charts._DoughnutChartPainter.new = function(opts) {
    let chart = opts && 'chart' in opts ? opts.chart : null;
    let index = opts && 'index' in opts ? opts.index : null;
    let isRepaint = opts && 'isRepaint' in opts ? opts.isRepaint : null;
    let animationController = opts && 'animationController' in opts ? opts.animationController : null;
    let seriesAnimation = opts && 'seriesAnimation' in opts ? opts.seriesAnimation : null;
    let notifier = opts && 'notifier' in opts ? opts.notifier : null;
    this.series = null;
    this.innerRadius = null;
    this.radius = null;
    this.chart = chart;
    this.index = index;
    this.isRepaint = isRepaint;
    this.animationController = animationController;
    this.seriesAnimation = seriesAnimation;
    charts._DoughnutChartPainter.__proto__.new.call(this, {repaint: notifier});
    ;
  }).prototype = charts._DoughnutChartPainter.prototype;
  dart.addTypeTests(charts._DoughnutChartPainter);
  dart.setMethodSignature(charts._DoughnutChartPainter, () => ({
    __proto__: dart.getMethods(charts._DoughnutChartPainter.__proto__),
    paint: dart.fnType(dart.void, [ui.Canvas, ui.Size]),
    shouldRepaint: dart.fnType(core.bool, [core.Object])
  }));
  dart.setLibraryUri(charts._DoughnutChartPainter, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._DoughnutChartPainter, () => ({
    __proto__: dart.getFields(charts._DoughnutChartPainter.__proto__),
    chart: dart.finalFieldType(charts.SfCircularChart),
    index: dart.finalFieldType(core.int),
    isRepaint: dart.finalFieldType(core.bool),
    animationController: dart.finalFieldType(animation_controller.AnimationController),
    seriesAnimation: dart.finalFieldType(animation.Animation$(core.double)),
    series: dart.fieldType(charts.DoughnutSeries),
    innerRadius: dart.fieldType(core.num),
    radius: dart.fieldType(core.num)
  }));
  const _is_PieSeries_default = Symbol('_is_PieSeries_default');
  charts.PieSeries$ = dart.generic((T, D) => {
    let intToD = () => (intToD = dart.constFn(dart.fnType(D, [core.int])))();
    class PieSeries extends charts.CircularSeries$(T, D) {}
    (PieSeries.new = function(opts) {
      let dataSource = opts && 'dataSource' in opts ? opts.dataSource : null;
      let xValueMapper = opts && 'xValueMapper' in opts ? opts.xValueMapper : null;
      let yValueMapper = opts && 'yValueMapper' in opts ? opts.yValueMapper : null;
      let pointColorMapper = opts && 'pointColorMapper' in opts ? opts.pointColorMapper : null;
      let pointRadiusMapper = opts && 'pointRadiusMapper' in opts ? opts.pointRadiusMapper : null;
      let dataLabelMapper = opts && 'dataLabelMapper' in opts ? opts.dataLabelMapper : null;
      let sortFieldValueMapper = opts && 'sortFieldValueMapper' in opts ? opts.sortFieldValueMapper : null;
      let startAngle = opts && 'startAngle' in opts ? opts.startAngle : null;
      let endAngle = opts && 'endAngle' in opts ? opts.endAngle : null;
      let radius = opts && 'radius' in opts ? opts.radius : null;
      let explode = opts && 'explode' in opts ? opts.explode : null;
      let explodeAll = opts && 'explodeAll' in opts ? opts.explodeAll : null;
      let explodeIndex = opts && 'explodeIndex' in opts ? opts.explodeIndex : null;
      let explodeGesture = opts && 'explodeGesture' in opts ? opts.explodeGesture : null;
      let explodeOffset = opts && 'explodeOffset' in opts ? opts.explodeOffset : null;
      let groupTo = opts && 'groupTo' in opts ? opts.groupTo : null;
      let groupMode = opts && 'groupMode' in opts ? opts.groupMode : null;
      let emptyPointSettings = opts && 'emptyPointSettings' in opts ? opts.emptyPointSettings : null;
      let strokeColor = opts && 'strokeColor' in opts ? opts.strokeColor : null;
      let strokeWidth = opts && 'strokeWidth' in opts ? opts.strokeWidth : null;
      let opacity = opts && 'opacity' in opts ? opts.opacity : null;
      let dataLabelSettings = opts && 'dataLabelSettings' in opts ? opts.dataLabelSettings : null;
      let enableTooltip = opts && 'enableTooltip' in opts ? opts.enableTooltip : null;
      let enableSmartLabels = opts && 'enableSmartLabels' in opts ? opts.enableSmartLabels : null;
      let name = opts && 'name' in opts ? opts.name : null;
      let animationDuration = opts && 'animationDuration' in opts ? opts.animationDuration : null;
      let selectionSettings = opts && 'selectionSettings' in opts ? opts.selectionSettings : null;
      let sortingOrder = opts && 'sortingOrder' in opts ? opts.sortingOrder : null;
      let legendIconType = opts && 'legendIconType' in opts ? opts.legendIconType : null;
      let initialSelectedDataIndexes = opts && 'initialSelectedDataIndexes' in opts ? opts.initialSelectedDataIndexes : null;
      PieSeries.__proto__.new.call(this, {animationDuration: animationDuration, dataSource: dataSource, xValueMapper: dart.fn(index => xValueMapper(dataSource[$_get](index), index), intToD()), yValueMapper: dart.fn(index => yValueMapper(dataSource[$_get](index), index), intTonum()), pointColorMapper: dart.fn(index => pointColorMapper != null ? pointColorMapper(dataSource[$_get](index), index) : null, intToColor()), pointRadiusMapper: pointRadiusMapper == null ? null : dart.fn(index => pointRadiusMapper(dataSource[$_get](index), index), intToString()), dataLabelMapper: dart.fn(index => dataLabelMapper != null ? dataLabelMapper(dataSource[$_get](index), index) : null, intToString()), sortFieldValueMapper: sortFieldValueMapper != null ? dart.fn(index => sortFieldValueMapper(dataSource[$_get](index), index), intToString()) : null, startAngle: startAngle, endAngle: endAngle, radius: radius, explode: explode, explodeAll: explodeAll, explodeIndex: explodeIndex, explodeOffset: explodeOffset, explodeGesture: explodeGesture, groupTo: groupTo, groupMode: groupMode, emptyPointSettings: emptyPointSettings, initialSelectedDataIndexes: initialSelectedDataIndexes, borderColor: strokeColor, borderWidth: strokeWidth, opacity: opacity, dataLabelSettings: dataLabelSettings, enableTooltip: enableTooltip, name: name, selectionSettings: selectionSettings, legendIconType: legendIconType, sortingOrder: sortingOrder, enableSmartLabels: enableSmartLabels});
      ;
    }).prototype = PieSeries.prototype;
    dart.addTypeTests(PieSeries);
    PieSeries.prototype[_is_PieSeries_default] = true;
    dart.setLibraryUri(PieSeries, "package:syncfusion_flutter_charts/charts.dart");
    return PieSeries;
  });
  charts.PieSeries = charts.PieSeries$();
  dart.addTypeTests(charts.PieSeries, _is_PieSeries_default);
  charts._PieChartPainter = class _PieChartPainter extends custom_paint.CustomPainter {
    paint(canvas, size) {
      let t0, t0$;
      let pointStartAngle = null;
      this.series = charts.PieSeries._check(this.chart[_chartSeries].visibleSeries[$_get](this.index));
      pointStartAngle = this.series[_start];
      this.series[_pointRegions] = JSArrayOf_Region().of([]);
      let isAnyPointNeedSelect = false;
      if (dart.test(this.chart[_chartState].initialRender)) {
        isAnyPointNeedSelect = charts._checkIsAnyPointSelect(this.series, charts._PieChartPainter.point, this.chart);
      }
      let oldPoint = null;
      let oldSeries = charts.PieSeries._check(dart.test(this.chart[_chartState].widgetNeedUpdate) && !dart.test(this.chart[_chartState][_isLegendToggled]) && this.chart[_chartState].prevSeries[_seriesType$] === "pie" ? this.chart[_chartState].prevSeries : null);
      for (let i = 0; i < dart.notNull(this.series[_renderPoints][$length]); i = i + 1) {
        charts._PieChartPainter.point = this.series[_renderPoints][$_get](i);
        oldPoint = oldSeries != null && oldSeries[_renderPoints] != null && dart.notNull(oldSeries[_renderPoints][$length]) - 1 >= i ? oldSeries[_renderPoints][$_get](i) : dart.test(this.chart[_chartState][_isLegendToggled]) && this.chart[_chartState].prevSeries[_seriesType$] === "pie" ? this.chart[_chartState][_oldPoints][$_get](i) : null;
        charts._PieChartPainter.point.innerRadius = 0.0;
        pointStartAngle = this.series[_renderPoint](this.chart, this.series, charts._PieChartPainter.point, pointStartAngle, charts._PieChartPainter.point.innerRadius, charts._PieChartPainter.point.outerRadius, canvas, this.index, i, this.seriesAnimation != null ? (t0 = this.seriesAnimation, t0 == null ? null : t0.value) : 1, this.seriesAnimation != null ? (t0$ = this.seriesAnimation, t0$ == null ? null : t0$.value) : 1, isAnyPointNeedSelect, oldPoint, this.chart[_chartState][_oldPoints]);
      }
    }
    shouldRepaint(oldDelegate) {
      charts._PieChartPainter._check(oldDelegate);
      return this.isRepaint;
    }
  };
  (charts._PieChartPainter.new = function(opts) {
    let chart = opts && 'chart' in opts ? opts.chart : null;
    let index = opts && 'index' in opts ? opts.index : null;
    let isRepaint = opts && 'isRepaint' in opts ? opts.isRepaint : null;
    let animationController = opts && 'animationController' in opts ? opts.animationController : null;
    let seriesAnimation = opts && 'seriesAnimation' in opts ? opts.seriesAnimation : null;
    let notifier = opts && 'notifier' in opts ? opts.notifier : null;
    this.series = null;
    this.chart = chart;
    this.index = index;
    this.isRepaint = isRepaint;
    this.animationController = animationController;
    this.seriesAnimation = seriesAnimation;
    charts._PieChartPainter.__proto__.new.call(this, {repaint: notifier});
    ;
  }).prototype = charts._PieChartPainter.prototype;
  dart.addTypeTests(charts._PieChartPainter);
  dart.setMethodSignature(charts._PieChartPainter, () => ({
    __proto__: dart.getMethods(charts._PieChartPainter.__proto__),
    paint: dart.fnType(dart.void, [ui.Canvas, ui.Size]),
    shouldRepaint: dart.fnType(core.bool, [core.Object])
  }));
  dart.setLibraryUri(charts._PieChartPainter, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._PieChartPainter, () => ({
    __proto__: dart.getFields(charts._PieChartPainter.__proto__),
    chart: dart.finalFieldType(charts.SfCircularChart),
    index: dart.finalFieldType(core.int),
    isRepaint: dart.finalFieldType(core.bool),
    animationController: dart.finalFieldType(animation_controller.AnimationController),
    seriesAnimation: dart.finalFieldType(animation.Animation$(core.double)),
    series: dart.fieldType(charts.PieSeries)
  }));
  dart.defineLazy(charts._PieChartPainter, {
    /*charts._PieChartPainter.point*/get point() {
      return null;
    },
    set point(_) {}
  });
  let C132;
  const _is_RadialBarSeries_default = Symbol('_is_RadialBarSeries_default');
  const trackColor$ = dart.privateName(charts, "RadialBarSeries.trackColor");
  const maximumValue$ = dart.privateName(charts, "RadialBarSeries.maximumValue");
  const trackBorderColor$ = dart.privateName(charts, "RadialBarSeries.trackBorderColor");
  const trackBorderWidth$ = dart.privateName(charts, "RadialBarSeries.trackBorderWidth");
  const trackOpacity$ = dart.privateName(charts, "RadialBarSeries.trackOpacity");
  const useSeriesColor$ = dart.privateName(charts, "RadialBarSeries.useSeriesColor");
  charts.RadialBarSeries$ = dart.generic((T, D) => {
    let intToD = () => (intToD = dart.constFn(dart.fnType(D, [core.int])))();
    class RadialBarSeries extends charts.CircularSeries$(T, D) {
      get trackColor() {
        return this[trackColor$];
      }
      set trackColor(value) {
        super.trackColor = value;
      }
      get maximumValue() {
        return this[maximumValue$];
      }
      set maximumValue(value) {
        super.maximumValue = value;
      }
      get trackBorderColor() {
        return this[trackBorderColor$];
      }
      set trackBorderColor(value) {
        super.trackBorderColor = value;
      }
      get trackBorderWidth() {
        return this[trackBorderWidth$];
      }
      set trackBorderWidth(value) {
        super.trackBorderWidth = value;
      }
      get trackOpacity() {
        return this[trackOpacity$];
      }
      set trackOpacity(value) {
        super.trackOpacity = value;
      }
      get useSeriesColor() {
        return this[useSeriesColor$];
      }
      set useSeriesColor(value) {
        super.useSeriesColor = value;
      }
    }
    (RadialBarSeries.new = function(opts) {
      let dataSource = opts && 'dataSource' in opts ? opts.dataSource : null;
      let xValueMapper = opts && 'xValueMapper' in opts ? opts.xValueMapper : null;
      let yValueMapper = opts && 'yValueMapper' in opts ? opts.yValueMapper : null;
      let pointColorMapper = opts && 'pointColorMapper' in opts ? opts.pointColorMapper : null;
      let pointRadiusMapper = opts && 'pointRadiusMapper' in opts ? opts.pointRadiusMapper : null;
      let dataLabelMapper = opts && 'dataLabelMapper' in opts ? opts.dataLabelMapper : null;
      let sortFieldValueMapper = opts && 'sortFieldValueMapper' in opts ? opts.sortFieldValueMapper : null;
      let trackColor = opts && 'trackColor' in opts ? opts.trackColor : C132 || CT.C132;
      let trackBorderWidth = opts && 'trackBorderWidth' in opts ? opts.trackBorderWidth : 0;
      let trackOpacity = opts && 'trackOpacity' in opts ? opts.trackOpacity : 1;
      let useSeriesColor = opts && 'useSeriesColor' in opts ? opts.useSeriesColor : false;
      let trackBorderColor = opts && 'trackBorderColor' in opts ? opts.trackBorderColor : C0 || CT.C0;
      let maximumValue = opts && 'maximumValue' in opts ? opts.maximumValue : null;
      let dataLabelSettings = opts && 'dataLabelSettings' in opts ? opts.dataLabelSettings : null;
      let radius = opts && 'radius' in opts ? opts.radius : null;
      let innerRadius = opts && 'innerRadius' in opts ? opts.innerRadius : null;
      let gap = opts && 'gap' in opts ? opts.gap : null;
      let strokeWidth = opts && 'strokeWidth' in opts ? opts.strokeWidth : null;
      let opacity = opts && 'opacity' in opts ? opts.opacity : null;
      let strokeColor = opts && 'strokeColor' in opts ? opts.strokeColor : null;
      let enableTooltip = opts && 'enableTooltip' in opts ? opts.enableTooltip : null;
      let enableSmartLabels = opts && 'enableSmartLabels' in opts ? opts.enableSmartLabels : null;
      let name = opts && 'name' in opts ? opts.name : null;
      let animationDuration = opts && 'animationDuration' in opts ? opts.animationDuration : null;
      let selectionSettings = opts && 'selectionSettings' in opts ? opts.selectionSettings : null;
      let sortingOrder = opts && 'sortingOrder' in opts ? opts.sortingOrder : null;
      let legendIconType = opts && 'legendIconType' in opts ? opts.legendIconType : null;
      let cornerStyle = opts && 'cornerStyle' in opts ? opts.cornerStyle : null;
      let initialSelectedDataIndexes = opts && 'initialSelectedDataIndexes' in opts ? opts.initialSelectedDataIndexes : null;
      this[trackColor$] = trackColor;
      this[trackBorderWidth$] = trackBorderWidth;
      this[trackOpacity$] = trackOpacity;
      this[useSeriesColor$] = useSeriesColor;
      this[trackBorderColor$] = trackBorderColor;
      this[maximumValue$] = maximumValue;
      RadialBarSeries.__proto__.new.call(this, {dataSource: dataSource, animationDuration: animationDuration, xValueMapper: dart.fn(index => xValueMapper(dataSource[$_get](index), index), intToD()), yValueMapper: dart.fn(index => yValueMapper(dataSource[$_get](index), index), intTonum()), pointColorMapper: dart.fn(index => pointColorMapper != null ? pointColorMapper(dataSource[$_get](index), index) : null, intToColor()), pointRadiusMapper: dart.fn(index => pointRadiusMapper != null ? pointRadiusMapper(dataSource[$_get](index), index) : null, intToString()), dataLabelMapper: dart.fn(index => dataLabelMapper != null ? dataLabelMapper(dataSource[$_get](index), index) : null, intToString()), sortFieldValueMapper: sortFieldValueMapper != null ? dart.fn(index => sortFieldValueMapper(dataSource[$_get](index), index), intToString()) : null, radius: radius, innerRadius: innerRadius, gap: gap, borderColor: strokeColor, borderWidth: strokeWidth, opacity: opacity, enableTooltip: enableTooltip, dataLabelSettings: dataLabelSettings, name: name, selectionSettings: selectionSettings, sortingOrder: sortingOrder, legendIconType: legendIconType, enableSmartLabels: enableSmartLabels, cornerStyle: cornerStyle, initialSelectedDataIndexes: initialSelectedDataIndexes});
      ;
    }).prototype = RadialBarSeries.prototype;
    dart.addTypeTests(RadialBarSeries);
    RadialBarSeries.prototype[_is_RadialBarSeries_default] = true;
    dart.setLibraryUri(RadialBarSeries, "package:syncfusion_flutter_charts/charts.dart");
    dart.setFieldSignature(RadialBarSeries, () => ({
      __proto__: dart.getFields(RadialBarSeries.__proto__),
      trackColor: dart.finalFieldType(ui.Color),
      maximumValue: dart.finalFieldType(core.double),
      trackBorderColor: dart.finalFieldType(ui.Color),
      trackBorderWidth: dart.finalFieldType(core.double),
      trackOpacity: dart.finalFieldType(core.double),
      useSeriesColor: dart.finalFieldType(core.bool)
    }));
    return RadialBarSeries;
  });
  charts.RadialBarSeries = charts.RadialBarSeries$();
  dart.addTypeTests(charts.RadialBarSeries, _is_RadialBarSeries_default);
  const _getFirstVisiblePointIndex = dart.privateName(charts, "_getFirstVisiblePointIndex");
  const _calculateVisiblePointLegendToggleAnimation = dart.privateName(charts, "_calculateVisiblePointLegendToggleAnimation");
  const _drawDataPoint = dart.privateName(charts, "_drawDataPoint");
  charts._RadialBarPainter = class _RadialBarPainter extends custom_paint.CustomPainter {
    paint(canvas, size) {
      let t0, t0$;
      let pointStartAngle = null;
      let pointEndAngle = null;
      let degree = null;
      let length = 0;
      this.series = charts.RadialBarSeries._check(this.chart[_chartSeries].visibleSeries[$_get](this.index));
      this.series[_pointRegions] = JSArrayOf_Region().of([]);
      let sum = this.series[_sumOfPoints];
      let actualStartAngle = this.series[_start];
      this.innerRadius = this.series[_currentInnerRadius];
      this.radius = this.series[_currentRadius];
      let point = null;
      let oldPoint = null;
      this.center = this.series[_center];
      canvas.clipRect(this.chart[_chartState].chartAreaRect);
      for (let i = 0; i < dart.notNull(this.series[_renderPoints][$length]); i = i + 1) {
        length = length + (dart.test(this.series[_renderPoints][$_get](i).isVisible) ? 1 : 0);
      }
      let firstVisible = this[_getFirstVisiblePointIndex]();
      let ringSize = (dart.notNull(this.series[_currentRadius]) - dart.notNull(this.series[_currentInnerRadius]))[$abs]() / length;
      let gap = charts._percentToValue(this.series.gap, (dart.notNull(this.series[_currentRadius]) - dart.notNull(this.series[_currentInnerRadius]))[$abs]());
      let animationValue = this.seriesAnimation != null ? this.seriesAnimation.value : 1;
      let isLegendToggle = this.chart[_chartState][_isLegendToggled];
      let oldSeries = charts.RadialBarSeries._check(dart.test(this.chart[_chartState].widgetNeedUpdate) && !dart.test(this.chart[_chartState][_isLegendToggled]) && this.chart[_chartState].prevSeries[_seriesType$] === "radialbar" ? this.chart[_chartState].prevSeries : null);
      for (let i = 0; i < dart.notNull(this.series[_renderPoints][$length]); i = i + 1) {
        point = this.series[_renderPoints][$_get](i);
        oldPoint = oldSeries != null && dart.notNull(oldSeries[_renderPoints][$length]) - 1 >= i ? oldSeries[_renderPoints][$_get](i) : dart.test(isLegendToggle) ? this.chart[_chartState][_oldPoints][$_get](i) : null;
        pointStartAngle = actualStartAngle;
        let isDynamicUpdate = oldPoint != null;
        let hide = false;
        let oldStart = null;
        let oldEnd = null;
        let oldRadius = null;
        let oldInnerRadius = null;
        let value = null;
        if (!isDynamicUpdate || dart.test(oldPoint.isVisible) && dart.test(point.isVisible) || dart.test(oldPoint.isVisible) && !dart.test(point.isVisible) || !dart.test(oldPoint.isVisible) && dart.test(point.isVisible)) {
          if (dart.test(point.isVisible)) {
            hide = false;
            if (isDynamicUpdate && !dart.test(isLegendToggle)) {
              value = dart.notNull(point.y) > dart.notNull(oldPoint.y) ? dart.notNull(oldPoint.y) + (dart.notNull(point.y) - dart.notNull(oldPoint.y)) * dart.notNull(animationValue) : dart.notNull(oldPoint.y) - (dart.notNull(oldPoint.y) - dart.notNull(point.y)) * dart.notNull(animationValue);
            }
            degree = (value != null ? value : point.y)[$abs]() / dart.notNull((t0 = this.series.maximumValue, t0 == null ? sum : t0));
            degree = dart.notNull(dart.notNull(degree) > 1 ? 1 : degree) * (360 - 0.001);
            degree = isDynamicUpdate ? degree : dart.notNull(degree) * dart.notNull(animationValue);
            pointEndAngle = dart.notNull(pointStartAngle) + dart.notNull(degree);
            point.midAngle = (dart.notNull(pointStartAngle) + dart.notNull(pointEndAngle)) / 2;
            point.startAngle = pointStartAngle;
            point.endAngle = pointEndAngle;
            point.center = this.center;
            point.innerRadius = this.innerRadius = dart.notNull(this.innerRadius) + (i === firstVisible ? 0 : ringSize);
            point.outerRadius = this.radius = ringSize < dart.notNull(gap) ? 0 : dart.notNull(this.innerRadius) + ringSize - dart.notNull(gap);
            if (dart.test(isLegendToggle)) {
              this[_calculateVisiblePointLegendToggleAnimation](point, oldPoint, i, animationValue);
            }
          } else if (dart.test(isLegendToggle) && !dart.test(point.isVisible) && dart.test(oldPoint.isVisible)) {
            hide = true;
            oldEnd = oldPoint.endAngle;
            oldStart = oldPoint.startAngle;
            degree = oldPoint.y[$abs]() / dart.notNull((t0$ = this.series.maximumValue, t0$ == null ? sum : t0$));
            degree = dart.notNull(dart.notNull(degree) > 1 ? 1 : degree) * (360 - 0.001);
            oldInnerRadius = dart.notNull(oldPoint.innerRadius) + ((dart.notNull(oldPoint.outerRadius) + dart.notNull(oldPoint.innerRadius)) / 2 - dart.notNull(oldPoint.innerRadius)) * dart.notNull(animationValue);
            oldRadius = dart.notNull(oldPoint.outerRadius) - (dart.notNull(oldPoint.outerRadius) - (dart.notNull(oldPoint.outerRadius) + dart.notNull(oldPoint.innerRadius)) / 2) * dart.notNull(animationValue);
          }
          this[_drawDataPoint](point, degree, pointStartAngle, pointEndAngle, this.series, hide, oldRadius, oldInnerRadius, oldPoint, oldStart, oldEnd, i, canvas);
        }
      }
    }
    [_getFirstVisiblePointIndex]() {
      for (let i = 0; i < dart.notNull(this.series[_renderPoints][$length]); i = i + 1) {
        if (dart.test(this.series[_renderPoints][$_get](i).isVisible)) {
          return i;
        }
      }
      return null;
    }
    [_calculateVisiblePointLegendToggleAnimation](point, oldPoint, i, animationValue) {
      if (!dart.test(oldPoint.isVisible) && dart.test(point.isVisible)) {
        this.radius = i === 0 ? point.outerRadius : dart.notNull(point.innerRadius) + (dart.notNull(point.outerRadius) - dart.notNull(point.innerRadius)) * dart.notNull(animationValue);
        this.innerRadius = i === 0 ? dart.notNull(point.outerRadius) - (dart.notNull(point.outerRadius) - dart.notNull(point.innerRadius)) * dart.notNull(animationValue) : this.innerRadius;
      } else {
        this.radius = dart.notNull(point.outerRadius) > dart.notNull(oldPoint.outerRadius) ? dart.notNull(oldPoint.outerRadius) + (dart.notNull(point.outerRadius) - dart.notNull(oldPoint.outerRadius)) * dart.notNull(animationValue) : dart.notNull(oldPoint.outerRadius) - (dart.notNull(oldPoint.outerRadius) - dart.notNull(point.outerRadius)) * dart.notNull(animationValue);
        this.innerRadius = dart.notNull(point.innerRadius) > dart.notNull(oldPoint.innerRadius) ? dart.notNull(oldPoint.innerRadius) + (dart.notNull(point.innerRadius) - dart.notNull(oldPoint.innerRadius)) * dart.notNull(animationValue) : dart.notNull(oldPoint.innerRadius) - (dart.notNull(oldPoint.innerRadius) - dart.notNull(point.innerRadius)) * dart.notNull(animationValue);
      }
    }
    [_drawDataPoint](point, degree, pointStartAngle, pointEndAngle, series, hide, oldRadius, oldInnerRadius, oldPoint, oldStart, oldEnd, i, canvas) {
      charts._drawPath(canvas, new charts._StyleOptions.new(dart.test(series.useSeriesColor) ? point.fill : series.trackColor, series.trackBorderWidth, series.trackBorderColor, series.trackOpacity), charts._getArcPath(dart.test(hide) ? oldInnerRadius : this.innerRadius, dart.test(hide) ? oldRadius : this.radius[$toDouble](), this.center, 0, 360 - 0.001, 360 - 0.001, this.chart, true));
      if (dart.notNull(this.radius) > 0 && dart.notNull(degree) > 0) {
        this[_renderPoint](point, degree, pointStartAngle, pointEndAngle, series, hide, oldRadius, oldInnerRadius, oldPoint, oldStart, oldEnd, i, canvas);
      }
    }
    [_renderPoint](point, degree, pointStartAngle, pointEndAngle, series, hide, oldRadius, oldInnerRadius, oldPoint, oldStart, oldEnd, i, canvas) {
      if (dart.test(point.isVisible)) {
        let pointRegion = new charts._Region.new(charts._degreesToRadians(point.startAngle), charts._degreesToRadians(point.endAngle), point.startAngle, point.endAngle, this.index, i, point.center, this.innerRadius, point.outerRadius);
        series[_pointRegions][$add](pointRegion);
      }
      let angleDeviation = charts._findAngleDeviation(dart.test(hide) ? oldInnerRadius : this.innerRadius, dart.test(hide) ? oldRadius : this.radius, 360);
      let cornerStyle = series.cornerStyle;
      if (dart.equals(cornerStyle, charts.CornerStyle.bothCurve) || dart.equals(cornerStyle, charts.CornerStyle.startCurve)) {
        dart.test(hide) ? oldStart = dart.notNull(oldPoint.startAngle) + dart.notNull(angleDeviation) : pointStartAngle = dart.notNull(pointStartAngle) + dart.notNull(angleDeviation);
      }
      if (dart.equals(cornerStyle, charts.CornerStyle.bothCurve) || dart.equals(cornerStyle, charts.CornerStyle.endCurve)) {
        dart.test(hide) ? oldEnd = dart.notNull(oldPoint.endAngle) - dart.notNull(angleDeviation) : pointEndAngle = dart.notNull(pointEndAngle) - dart.notNull(angleDeviation);
      }
      let style = series[_selectPoint](i, series, this.chart, point);
      let fillColor = style != null && style.fill != null ? style.fill : !dart.equals(point.fill, colors$.Colors.transparent) ? series[_renderer].getPointColor(series, point, i, this.index, point.fill, series.opacity) : point.fill;
      let strokeColor = style != null && style.strokeColor != null ? style.strokeColor : series[_renderer].getPointStrokeColor(series, point, i, this.index, point.strokeColor);
      let strokeWidth = style != null && style.strokeWidth != null ? style.strokeWidth : series[_renderer].getPointStrokeWidth(series, point, i, this.index, point.strokeWidth);
      let opacity = style != null && style.opacity != null ? style.opacity : series[_renderer].getOpacity(series, point, i, this.index, series.opacity);
      if (dart.test(hide) ? dart.notNull(oldEnd) - dart.notNull(oldStart) > 0 && oldRadius != oldInnerRadius : dart.notNull(pointEndAngle) - dart.notNull(pointStartAngle) > 0) {
        charts._drawPath(canvas, new charts._StyleOptions.new(fillColor, dart.test(this.chart[_chartState].animateCompleted) ? strokeWidth : 0, strokeColor, opacity), charts._getRoundedCornerArcPath(dart.test(hide) ? oldInnerRadius : this.innerRadius, dart.test(hide) ? oldRadius : this.radius, this.center, dart.test(hide) ? oldStart : pointStartAngle, dart.test(hide) ? oldEnd : pointEndAngle, degree, series.cornerStyle));
      }
    }
    shouldRepaint(oldDelegate) {
      custom_paint.CustomPainter._check(oldDelegate);
      return this.isRepaint;
    }
  };
  (charts._RadialBarPainter.new = function(opts) {
    let chart = opts && 'chart' in opts ? opts.chart : null;
    let index = opts && 'index' in opts ? opts.index : null;
    let isRepaint = opts && 'isRepaint' in opts ? opts.isRepaint : null;
    let animationController = opts && 'animationController' in opts ? opts.animationController : null;
    let seriesAnimation = opts && 'seriesAnimation' in opts ? opts.seriesAnimation : null;
    let notifier = opts && 'notifier' in opts ? opts.notifier : null;
    this.series = null;
    this.innerRadius = null;
    this.radius = null;
    this.center = null;
    this.chart = chart;
    this.index = index;
    this.isRepaint = isRepaint;
    this.animationController = animationController;
    this.seriesAnimation = seriesAnimation;
    charts._RadialBarPainter.__proto__.new.call(this, {repaint: notifier});
    ;
  }).prototype = charts._RadialBarPainter.prototype;
  dart.addTypeTests(charts._RadialBarPainter);
  dart.setMethodSignature(charts._RadialBarPainter, () => ({
    __proto__: dart.getMethods(charts._RadialBarPainter.__proto__),
    paint: dart.fnType(dart.void, [ui.Canvas, ui.Size]),
    [_getFirstVisiblePointIndex]: dart.fnType(core.int, []),
    [_calculateVisiblePointLegendToggleAnimation]: dart.fnType(dart.void, [charts.ChartPoint, charts.ChartPoint, core.int, core.num]),
    [_drawDataPoint]: dart.fnType(dart.void, [charts.ChartPoint, core.num, core.num, core.num, charts.RadialBarSeries, core.bool, core.num, core.num, charts.ChartPoint, core.num, core.num, core.int, ui.Canvas]),
    [_renderPoint]: dart.fnType(dart.void, [charts.ChartPoint, core.num, core.num, core.num, charts.RadialBarSeries, core.bool, core.num, core.num, charts.ChartPoint, core.num, core.num, core.int, ui.Canvas]),
    shouldRepaint: dart.fnType(core.bool, [core.Object])
  }));
  dart.setLibraryUri(charts._RadialBarPainter, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._RadialBarPainter, () => ({
    __proto__: dart.getFields(charts._RadialBarPainter.__proto__),
    chart: dart.finalFieldType(charts.SfCircularChart),
    index: dart.finalFieldType(core.int),
    isRepaint: dart.finalFieldType(core.bool),
    animationController: dart.finalFieldType(animation_controller.AnimationController),
    seriesAnimation: dart.finalFieldType(animation.Animation$(core.double)),
    series: dart.fieldType(charts.RadialBarSeries),
    innerRadius: dart.fieldType(core.num),
    radius: dart.fieldType(core.num),
    center: dart.fieldType(ui.Offset)
  }));
  let C133;
  let C134;
  let C135;
  charts.CircularChartGroupMode = class CircularChartGroupMode extends core.Object {
    toString() {
      return this[_name$];
    }
  };
  (charts.CircularChartGroupMode.new = function(index, _name) {
    this.index = index;
    this[_name$] = _name;
    ;
  }).prototype = charts.CircularChartGroupMode.prototype;
  dart.addTypeTests(charts.CircularChartGroupMode);
  dart.setLibraryUri(charts.CircularChartGroupMode, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.CircularChartGroupMode, () => ({
    __proto__: dart.getFields(charts.CircularChartGroupMode.__proto__),
    index: dart.finalFieldType(core.int),
    [_name$]: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(charts.CircularChartGroupMode, ['toString']);
  charts.CircularChartGroupMode.point = C133 || CT.C133;
  charts.CircularChartGroupMode.value = C134 || CT.C134;
  charts.CircularChartGroupMode.values = C135 || CT.C135;
  let C136;
  let C137;
  let C138;
  charts.Position = class Position extends core.Object {
    toString() {
      return this[_name$];
    }
  };
  (charts.Position.new = function(index, _name) {
    this.index = index;
    this[_name$] = _name;
    ;
  }).prototype = charts.Position.prototype;
  dart.addTypeTests(charts.Position);
  dart.setLibraryUri(charts.Position, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.Position, () => ({
    __proto__: dart.getFields(charts.Position.__proto__),
    index: dart.finalFieldType(core.int),
    [_name$]: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(charts.Position, ['toString']);
  charts.Position.left = C136 || CT.C136;
  charts.Position.right = C137 || CT.C137;
  charts.Position.values = C138 || CT.C138;
  let C139;
  let C140;
  let C141;
  charts.LabelIntersectAction = class LabelIntersectAction extends core.Object {
    toString() {
      return this[_name$];
    }
  };
  (charts.LabelIntersectAction.new = function(index, _name) {
    this.index = index;
    this[_name$] = _name;
    ;
  }).prototype = charts.LabelIntersectAction.prototype;
  dart.addTypeTests(charts.LabelIntersectAction);
  dart.setLibraryUri(charts.LabelIntersectAction, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.LabelIntersectAction, () => ({
    __proto__: dart.getFields(charts.LabelIntersectAction.__proto__),
    index: dart.finalFieldType(core.int),
    [_name$]: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(charts.LabelIntersectAction, ['toString']);
  charts.LabelIntersectAction.hide = C139 || CT.C139;
  charts.LabelIntersectAction.none = C140 || CT.C140;
  charts.LabelIntersectAction.values = C141 || CT.C141;
  let C142;
  let C143;
  let C144;
  charts.ConnectorType = class ConnectorType extends core.Object {
    toString() {
      return this[_name$];
    }
  };
  (charts.ConnectorType.new = function(index, _name) {
    this.index = index;
    this[_name$] = _name;
    ;
  }).prototype = charts.ConnectorType.prototype;
  dart.addTypeTests(charts.ConnectorType);
  dart.setLibraryUri(charts.ConnectorType, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.ConnectorType, () => ({
    __proto__: dart.getFields(charts.ConnectorType.__proto__),
    index: dart.finalFieldType(core.int),
    [_name$]: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(charts.ConnectorType, ['toString']);
  charts.ConnectorType.curve = C142 || CT.C142;
  charts.ConnectorType.line = C143 || CT.C143;
  charts.ConnectorType.values = C144 || CT.C144;
  let C145;
  let C146;
  let C147;
  let C148;
  let C149;
  charts.CornerStyle = class CornerStyle extends core.Object {
    toString() {
      return this[_name$];
    }
  };
  (charts.CornerStyle.new = function(index, _name) {
    this.index = index;
    this[_name$] = _name;
    ;
  }).prototype = charts.CornerStyle.prototype;
  dart.addTypeTests(charts.CornerStyle);
  dart.setLibraryUri(charts.CornerStyle, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.CornerStyle, () => ({
    __proto__: dart.getFields(charts.CornerStyle.__proto__),
    index: dart.finalFieldType(core.int),
    [_name$]: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(charts.CornerStyle, ['toString']);
  charts.CornerStyle.bothFlat = C145 || CT.C145;
  charts.CornerStyle.bothCurve = C146 || CT.C146;
  charts.CornerStyle.startCurve = C147 || CT.C147;
  charts.CornerStyle.endCurve = C148 || CT.C148;
  charts.CornerStyle.values = C149 || CT.C149;
  const _chartPlotArea = dart.privateName(charts, "_chartPlotArea");
  let C150;
  const title$0 = dart.privateName(charts, "SfPyramidChart.title");
  const backgroundColor$0 = dart.privateName(charts, "SfPyramidChart.backgroundColor");
  const borderColor$2 = dart.privateName(charts, "SfPyramidChart.borderColor");
  const borderWidth$2 = dart.privateName(charts, "SfPyramidChart.borderWidth");
  const series$0 = dart.privateName(charts, "SfPyramidChart.series");
  const margin$0 = dart.privateName(charts, "SfPyramidChart.margin");
  const legend$0 = dart.privateName(charts, "SfPyramidChart.legend");
  const palette$0 = dart.privateName(charts, "SfPyramidChart.palette");
  const tooltipBehavior$0 = dart.privateName(charts, "SfPyramidChart.tooltipBehavior");
  const onLegendItemRender$0 = dart.privateName(charts, "SfPyramidChart.onLegendItemRender");
  const onTooltipRender$0 = dart.privateName(charts, "SfPyramidChart.onTooltipRender");
  const onDataLabelRender$0 = dart.privateName(charts, "SfPyramidChart.onDataLabelRender");
  const onLegendTapped$0 = dart.privateName(charts, "SfPyramidChart.onLegendTapped");
  const smartLabelMode$ = dart.privateName(charts, "SfPyramidChart.smartLabelMode");
  const selectionGesture$0 = dart.privateName(charts, "SfPyramidChart.selectionGesture");
  const enableMultiSelection$0 = dart.privateName(charts, "SfPyramidChart.enableMultiSelection");
  const backgroundImage$0 = dart.privateName(charts, "SfPyramidChart.backgroundImage");
  const onSelectionChanged$0 = dart.privateName(charts, "SfPyramidChart.onSelectionChanged");
  charts.SfPyramidChart = class SfPyramidChart extends framework.StatefulWidget {
    get title() {
      return this[title$0];
    }
    set title(value) {
      super.title = value;
    }
    get backgroundColor() {
      return this[backgroundColor$0];
    }
    set backgroundColor(value) {
      super.backgroundColor = value;
    }
    get borderColor() {
      return this[borderColor$2];
    }
    set borderColor(value) {
      super.borderColor = value;
    }
    get borderWidth() {
      return this[borderWidth$2];
    }
    set borderWidth(value) {
      super.borderWidth = value;
    }
    get series() {
      return this[series$0];
    }
    set series(value) {
      super.series = value;
    }
    get margin() {
      return this[margin$0];
    }
    set margin(value) {
      super.margin = value;
    }
    get legend() {
      return this[legend$0];
    }
    set legend(value) {
      super.legend = value;
    }
    get palette() {
      return this[palette$0];
    }
    set palette(value) {
      super.palette = value;
    }
    get tooltipBehavior() {
      return this[tooltipBehavior$0];
    }
    set tooltipBehavior(value) {
      super.tooltipBehavior = value;
    }
    get onLegendItemRender() {
      return this[onLegendItemRender$0];
    }
    set onLegendItemRender(value) {
      super.onLegendItemRender = value;
    }
    get onTooltipRender() {
      return this[onTooltipRender$0];
    }
    set onTooltipRender(value) {
      super.onTooltipRender = value;
    }
    get onDataLabelRender() {
      return this[onDataLabelRender$0];
    }
    set onDataLabelRender(value) {
      super.onDataLabelRender = value;
    }
    get onLegendTapped() {
      return this[onLegendTapped$0];
    }
    set onLegendTapped(value) {
      super.onLegendTapped = value;
    }
    get smartLabelMode() {
      return this[smartLabelMode$];
    }
    set smartLabelMode(value) {
      super.smartLabelMode = value;
    }
    get selectionGesture() {
      return this[selectionGesture$0];
    }
    set selectionGesture(value) {
      super.selectionGesture = value;
    }
    get enableMultiSelection() {
      return this[enableMultiSelection$0];
    }
    set enableMultiSelection(value) {
      super.enableMultiSelection = value;
    }
    get backgroundImage() {
      return this[backgroundImage$0];
    }
    set backgroundImage(value) {
      super.backgroundImage = value;
    }
    get onSelectionChanged() {
      return this[onSelectionChanged$0];
    }
    set onSelectionChanged(value) {
      super.onSelectionChanged = value;
    }
    createState() {
      return new charts._SfPyramidChartState.new();
    }
  };
  (charts.SfPyramidChart.new = function(opts) {
    let t0, t0$, t0$0, t0$1, t0$2, t0$3, t0$4, t0$5;
    let key = opts && 'key' in opts ? opts.key : null;
    let backgroundColor = opts && 'backgroundColor' in opts ? opts.backgroundColor : null;
    let backgroundImage = opts && 'backgroundImage' in opts ? opts.backgroundImage : null;
    let borderColor = opts && 'borderColor' in opts ? opts.borderColor : C0 || CT.C0;
    let borderWidth = opts && 'borderWidth' in opts ? opts.borderWidth : 0;
    let onLegendItemRender = opts && 'onLegendItemRender' in opts ? opts.onLegendItemRender : null;
    let onTooltipRender = opts && 'onTooltipRender' in opts ? opts.onTooltipRender : null;
    let onDataLabelRender = opts && 'onDataLabelRender' in opts ? opts.onDataLabelRender : null;
    let onLegendTapped = opts && 'onLegendTapped' in opts ? opts.onLegendTapped : null;
    let onSelectionChanged = opts && 'onSelectionChanged' in opts ? opts.onSelectionChanged : null;
    let title = opts && 'title' in opts ? opts.title : null;
    let series = opts && 'series' in opts ? opts.series : null;
    let margin = opts && 'margin' in opts ? opts.margin : null;
    let legend = opts && 'legend' in opts ? opts.legend : null;
    let palette = opts && 'palette' in opts ? opts.palette : C1 || CT.C1;
    let tooltipBehavior = opts && 'tooltipBehavior' in opts ? opts.tooltipBehavior : null;
    let smartLabelMode = opts && 'smartLabelMode' in opts ? opts.smartLabelMode : null;
    let selectionGesture = opts && 'selectionGesture' in opts ? opts.selectionGesture : null;
    let enableMultiSelection = opts && 'enableMultiSelection' in opts ? opts.enableMultiSelection : null;
    let $36creationLocationd_0dea112b090073317d4 = opts && '$creationLocationd_0dea112b090073317d4' in opts ? opts.$creationLocationd_0dea112b090073317d4 : null;
    this[_seriesType$] = null;
    this[_dataPoints$] = null;
    this[_renderPoints] = null;
    this[_chartSeries] = null;
    this[_chartState] = null;
    this[_chartLegend] = null;
    this[_chartPlotArea] = null;
    this[backgroundColor$0] = backgroundColor;
    this[backgroundImage$0] = backgroundImage;
    this[borderColor$2] = borderColor;
    this[borderWidth$2] = borderWidth;
    this[onLegendItemRender$0] = onLegendItemRender;
    this[onTooltipRender$0] = onTooltipRender;
    this[onDataLabelRender$0] = onDataLabelRender;
    this[onLegendTapped$0] = onLegendTapped;
    this[onSelectionChanged$0] = onSelectionChanged;
    this[palette$0] = palette;
    this[title$0] = (t0 = title, t0 == null ? new charts.ChartTitle.new() : t0);
    this[series$0] = (t0$ = series, t0$ == null ? series : t0$);
    this[margin$0] = (t0$0 = margin, t0$0 == null ? C12 || CT.C12 : t0$0);
    this[legend$0] = (t0$1 = legend, t0$1 == null ? new charts.Legend.new() : t0$1);
    this[tooltipBehavior$0] = (t0$2 = tooltipBehavior, t0$2 == null ? new charts.TooltipBehavior.new() : t0$2);
    this[smartLabelMode$] = (t0$3 = smartLabelMode, t0$3 == null ? charts.SmartLabelMode.hide : t0$3);
    this[selectionGesture$0] = (t0$4 = selectionGesture, t0$4 == null ? charts.ActivationMode.singleTap : t0$4);
    this[enableMultiSelection$0] = (t0$5 = enableMultiSelection, t0$5 == null ? false : t0$5);
    charts.SfPyramidChart.__proto__.new.call(this, {key: key, $creationLocationd_0dea112b090073317d4: $36creationLocationd_0dea112b090073317d4});
    this[_chartSeries] = new charts._PyramidSeries.new();
    this[_chartLegend] = new charts._ChartLegend.new();
    this[_chartPlotArea] = new charts._PyramidPlotArea.new({$creationLocationd_0dea112b090073317d4: C150 || CT.C150});
  }).prototype = charts.SfPyramidChart.prototype;
  dart.addTypeTests(charts.SfPyramidChart);
  dart.setMethodSignature(charts.SfPyramidChart, () => ({
    __proto__: dart.getMethods(charts.SfPyramidChart.__proto__),
    createState: dart.fnType(framework.State$(framework.StatefulWidget), [])
  }));
  dart.setLibraryUri(charts.SfPyramidChart, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.SfPyramidChart, () => ({
    __proto__: dart.getFields(charts.SfPyramidChart.__proto__),
    title: dart.finalFieldType(charts.ChartTitle),
    backgroundColor: dart.finalFieldType(ui.Color),
    borderColor: dart.finalFieldType(ui.Color),
    borderWidth: dart.finalFieldType(core.double),
    series: dart.finalFieldType(charts.PyramidSeries),
    margin: dart.finalFieldType(edge_insets.EdgeInsets),
    legend: dart.finalFieldType(charts.Legend),
    palette: dart.finalFieldType(core.List$(ui.Color)),
    tooltipBehavior: dart.finalFieldType(charts.TooltipBehavior),
    onLegendItemRender: dart.finalFieldType(dart.fnType(dart.void, [charts.LegendRenderArgs])),
    onTooltipRender: dart.finalFieldType(dart.fnType(dart.void, [charts.TooltipArgs])),
    onDataLabelRender: dart.finalFieldType(dart.fnType(dart.void, [charts.DataLabelRenderArgs])),
    onLegendTapped: dart.finalFieldType(dart.fnType(dart.void, [charts.LegendTapArgs])),
    smartLabelMode: dart.finalFieldType(charts.SmartLabelMode),
    selectionGesture: dart.finalFieldType(charts.ActivationMode),
    enableMultiSelection: dart.finalFieldType(core.bool),
    backgroundImage: dart.finalFieldType(image_provider.ImageProvider),
    onSelectionChanged: dart.finalFieldType(dart.fnType(dart.void, [charts.SelectionArgs])),
    [_seriesType$]: dart.fieldType(core.String),
    [_dataPoints$]: dart.fieldType(core.List$(charts.PointInfo)),
    [_renderPoints]: dart.fieldType(core.List$(charts.PointInfo)),
    [_chartSeries]: dart.fieldType(charts._PyramidSeries),
    [_chartState]: dart.fieldType(charts._SfPyramidChartState),
    [_chartLegend]: dart.fieldType(charts._ChartLegend),
    [_chartPlotArea]: dart.fieldType(charts._PyramidPlotArea)
  }));
  const _tooltipPointIndex = dart.privateName(charts, "_tooltipPointIndex");
  let C153;
  let C152;
  let C151;
  let C156;
  let C157;
  let C155;
  let C154;
  let C160;
  let C159;
  let C158;
  let C163;
  let C162;
  let C161;
  let C166;
  let C165;
  let C164;
  let C169;
  let C168;
  let C167;
  let C172;
  let C171;
  let C170;
  let C173;
  let C176;
  let C175;
  let C174;
  let C179;
  let C178;
  let C177;
  const State_TickerProviderStateMixin$36$ = class State_TickerProviderStateMixin extends framework.State$(charts.SfPyramidChart) {};
  (State_TickerProviderStateMixin$36$.new = function() {
    ticker_provider.TickerProviderStateMixin$(charts.SfPyramidChart)[dart.mixinNew].call(this);
    State_TickerProviderStateMixin$36$.__proto__.new.call(this);
  }).prototype = State_TickerProviderStateMixin$36$.prototype;
  dart.applyMixin(State_TickerProviderStateMixin$36$, ticker_provider.TickerProviderStateMixin$(charts.SfPyramidChart));
  charts._SfPyramidChartState = class _SfPyramidChartState extends State_TickerProviderStateMixin$36$ {
    initState() {
      this[_initializeDefaultValues]();
      super.initState();
    }
    [_initializeDefaultValues]() {
      let t0;
      this.initialRender = true;
      this.controllerList = JSArrayOfAnimationController().of([]);
      this.annotationController = new animation_controller.AnimationController.new({vsync: this});
      this.seriesRepaintNotifier = new (ValueNotifierOfint()).new(0);
      this.legendToggleStates = JSArrayOf_LegendRenderContext().of([]);
      this.legendToggleTemplateStates = JSArrayOf_MeasureWidgetContext().of([]);
      this.explodedPoints = JSArrayOfint().of([]);
      this.animateCompleted = true;
      this[_isLegendToggled] = false;
      this.widgetNeedUpdate = false;
      this.legendWidgetContext = JSArrayOf_MeasureWidgetContext().of([]);
      this.dataLabelTemplateRegions = JSArrayOfRect().of([]);
      this.selectionData = JSArrayOfint().of([]);
      this.animationController = (t0 = new animation_controller.AnimationController.new({vsync: this}), t0.addListener(dart.bind(this, 'repaintChartElements')), t0);
    }
    didChangeDependencies() {
      this[_chartTheme] = charts_theme.SfChartTheme.of(this.context);
      super.didChangeDependencies();
    }
    didUpdateWidget(oldWidget) {
      charts.SfPyramidChart._check(oldWidget);
      super.didUpdateWidget(oldWidget);
      this[_isLegendToggled] = false;
      this.widgetNeedUpdate = true;
    }
    dispose() {
      if (this.animationController != null) {
        this.animationController.removeListener(dart.bind(this, 'repaintChartElements'));
        this.animationController.dispose();
        this.animationController = null;
      }
      super.dispose();
    }
    repaintChartElements() {
      let t0;
      t0 = this.seriesRepaintNotifier;
      t0.value = dart.notNull(t0.value) + 1;
    }
    build(context) {
      core$.SyncfusionLicense.validateLicense(context);
      this.widget[_chartState] = this;
      return new container.Container.new({child: new gesture_detector.GestureDetector.new({child: new container.Container.new({decoration: new box_decoration.BoxDecoration.new({color: this.widget.backgroundColor, image: this.widget.backgroundImage != null ? new decoration_image.DecorationImage.new({image: this.widget.backgroundImage, fit: box_fit.BoxFit.fill}) : null, border: box_border.Border.all({color: this.widget.borderColor, width: this.widget.borderWidth})}), child: new basic.Column.new({children: JSArrayOfWidget().of([charts._renderChartTitle(this.widget), this[_renderChartElements]()]), $creationLocationd_0dea112b090073317d4: C151 || CT.C151}), $creationLocationd_0dea112b090073317d4: C154 || CT.C154}), $creationLocationd_0dea112b090073317d4: C158 || CT.C158}), $creationLocationd_0dea112b090073317d4: C161 || CT.C161});
    }
    [_renderChartElements]() {
      return new basic.Expanded.new({child: new layout_builder.LayoutBuilder.new({builder: dart.fn((context, constraints) => {
            let element = null;
            if (this.widget.series.dataSource != null) {
              this[_initialize](constraints);
              this.widget[_chartSeries][_findVisibleSeries]();
              this.widget[_chartSeries][_processDataPoints]();
              let legendTemplates = charts._bindLegendTemplateWidgets(this.widget);
              if (dart.test(legendTemplates[$isNotEmpty]) && dart.test(this.legendWidgetContext[$isEmpty])) {
                element = new container.Container.new({child: new basic.Stack.new({children: legendTemplates, $creationLocationd_0dea112b090073317d4: C164 || CT.C164}), $creationLocationd_0dea112b090073317d4: C167 || CT.C167});
                binding.SchedulerBinding.instance.addPostFrameCallback(dart.fn(_ => this[_refresh](), DurationTovoid()));
              } else {
                this.widget[_chartLegend][_calculateLegendBounds](this.widget[_chartLegend].chartSize);
                element = charts._getElements(this.widget, new charts._PyramidPlotArea.new({chart: this.widget, $creationLocationd_0dea112b090073317d4: C170 || CT.C170}), constraints);
              }
            } else {
              element = new container.Container.new({$creationLocationd_0dea112b090073317d4: C173 || CT.C173});
            }
            return element;
          }, BuildContextAndBoxConstraintsToWidget()), $creationLocationd_0dea112b090073317d4: C174 || CT.C174}), $creationLocationd_0dea112b090073317d4: C177 || CT.C177});
    }
    [_refresh]() {
      if (dart.test(this.widget[_chartState].legendWidgetContext[$isNotEmpty])) {
        for (let i = 0; i < dart.notNull(this.widget[_chartState].legendWidgetContext[$length]); i = i + 1) {
          let templateContext = this.widget[_chartState].legendWidgetContext[$_get](i);
          let renderBox = box.RenderBox._check(templateContext.context.findRenderObject());
          templateContext.size = renderBox.size;
        }
        this.setState(dart.fn(() => {
        }, VoidToNull()));
      }
    }
    [_redraw]() {
      this.widget[_chartState].initialRender = false;
      this.setState(dart.fn(() => {
      }, VoidToNull()));
    }
    [_initialize](constraints) {
      this.widget[_chartLegend].chart = this.widget;
      this.widget[_chartSeries].chart = this.widget;
      this.widget[_chartState][_chartWidgets] = JSArrayOfWidget().of([]);
      let width = constraints.maxWidth;
      let height = constraints.maxHeight;
      let margin = this.widget.margin;
      if (dart.equals(this.widget.legend.position, charts.LegendPosition.auto)) {
        this.widget.legend.legendPosition = dart.dtest(dart.dsend(height, '>', [width])) ? charts.LegendPosition.bottom : charts.LegendPosition.right;
      } else {
        this.widget.legend.legendPosition = this.widget.legend.position;
      }
      this.widget[_chartLegend].chartSize = new ui.Size.new(core.double._check(dart.dsend(dart.dsend(width, '-', [margin.left]), '-', [margin.right])), core.double._check(dart.dsend(dart.dsend(height, '-', [margin.top]), '-', [margin.bottom])));
    }
  };
  (charts._SfPyramidChartState.new = function() {
    this.controllerList = null;
    this.animationController = null;
    this.annotationController = null;
    this.seriesRepaintNotifier = null;
    this.legendWidgetContext = null;
    this.templates = null;
    this[_chartWidgets] = null;
    this[_chartTheme] = null;
    this.chartContainerRect = null;
    this.chartAreaRect = null;
    this[_chartTemplate] = null;
    this.currentActive = null;
    this.initialRender = null;
    this.legendToggleStates = null;
    this.legendToggleTemplateStates = null;
    this[_isLegendToggled] = null;
    this[_tapPosition] = null;
    this.animateCompleted = null;
    this.chartElementAnimation = null;
    this.renderDataLabel = null;
    this.widgetNeedUpdate = null;
    this.explodedPoints = null;
    this.dataLabelTemplateRegions = null;
    this.selectionData = null;
    this[_tooltipPointIndex] = null;
    charts._SfPyramidChartState.__proto__.new.call(this);
    ;
  }).prototype = charts._SfPyramidChartState.prototype;
  dart.addTypeTests(charts._SfPyramidChartState);
  dart.setMethodSignature(charts._SfPyramidChartState, () => ({
    __proto__: dart.getMethods(charts._SfPyramidChartState.__proto__),
    [_initializeDefaultValues]: dart.fnType(dart.void, []),
    repaintChartElements: dart.fnType(dart.void, []),
    build: dart.fnType(framework.Widget, [framework.BuildContext]),
    [_renderChartElements]: dart.fnType(framework.Widget, []),
    [_refresh]: dart.fnType(dart.void, []),
    [_redraw]: dart.fnType(dart.void, []),
    [_initialize]: dart.fnType(dart.void, [box.BoxConstraints])
  }));
  dart.setLibraryUri(charts._SfPyramidChartState, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._SfPyramidChartState, () => ({
    __proto__: dart.getFields(charts._SfPyramidChartState.__proto__),
    controllerList: dart.fieldType(core.List$(animation_controller.AnimationController)),
    animationController: dart.fieldType(animation_controller.AnimationController),
    annotationController: dart.fieldType(animation_controller.AnimationController),
    seriesRepaintNotifier: dart.fieldType(change_notifier.ValueNotifier$(core.int)),
    legendWidgetContext: dart.fieldType(core.List$(charts._MeasureWidgetContext)),
    templates: dart.fieldType(core.List$(charts._ChartTemplateInfo)),
    [_chartWidgets]: dart.fieldType(core.List$(framework.Widget)),
    [_chartTheme]: dart.fieldType(charts_theme.SfChartThemeData),
    chartContainerRect: dart.fieldType(ui.Rect),
    chartAreaRect: dart.fieldType(ui.Rect),
    [_chartTemplate]: dart.fieldType(charts._ChartTemplate),
    currentActive: dart.fieldType(charts._ChartInteraction),
    initialRender: dart.fieldType(core.bool),
    legendToggleStates: dart.fieldType(core.List$(charts._LegendRenderContext)),
    legendToggleTemplateStates: dart.fieldType(core.List$(charts._MeasureWidgetContext)),
    [_isLegendToggled]: dart.fieldType(core.bool),
    [_tapPosition]: dart.fieldType(ui.Offset),
    animateCompleted: dart.fieldType(core.bool),
    chartElementAnimation: dart.fieldType(animation.Animation$(core.double)),
    renderDataLabel: dart.fieldType(charts._PyramidDataLabelRenderer),
    widgetNeedUpdate: dart.fieldType(core.bool),
    explodedPoints: dart.fieldType(core.List$(core.int)),
    dataLabelTemplateRegions: dart.fieldType(core.List$(ui.Rect)),
    selectionData: dart.fieldType(core.List$(core.int)),
    [_tooltipPointIndex]: dart.fieldType(core.int)
  }));
  let C182;
  let C183;
  let C184;
  let C181;
  let C180;
  let C187;
  let C188;
  let C189;
  let C186;
  let C185;
  let C192;
  let C193;
  let C194;
  let C191;
  let C190;
  let C197;
  let C198;
  let C199;
  let C196;
  let C195;
  let C202;
  let C203;
  let C204;
  let C201;
  let C200;
  let C207;
  let C206;
  let C205;
  let C210;
  let C209;
  let C208;
  let C213;
  let C212;
  let C211;
  let C216;
  let C217;
  let C215;
  let C214;
  let C220;
  let C219;
  let C218;
  const _calculatePathRegion = dart.privateName(charts, "_calculatePathRegion");
  let C223;
  let C222;
  let C221;
  let C226;
  let C225;
  let C224;
  const _initializeSeriesProperties = dart.privateName(charts, "_initializeSeriesProperties");
  let C229;
  let C228;
  let C227;
  let C232;
  let C231;
  let C230;
  let C235;
  let C236;
  let C234;
  let C233;
  let C239;
  let C240;
  let C238;
  let C237;
  let C243;
  let C242;
  let C241;
  const _pointExplode = dart.privateName(charts, "_pointExplode");
  charts._PyramidPlotArea = class _PyramidPlotArea extends framework.StatelessWidget {
    build(context) {
      return new layout_builder.LayoutBuilder.new({builder: dart.fn((context, constraints) => new container.Container.new({child: new basic.Stack.new({children: JSArrayOfWidget().of([this[_initializeChart](constraints, context), new basic.MouseRegion.new({child: new container.Container.new({height: constraints.maxHeight, width: constraints.maxWidth, decoration: C43 || CT.C43, $creationLocationd_0dea112b090073317d4: C180 || CT.C180}), onHover: dart.fn(event => this[_onHover](event), PointerEventTovoid()), onExit: dart.fn(event => {
                  this.chart.tooltipBehavior[_isHovering] = false;
                }, PointerEventToNull()), $creationLocationd_0dea112b090073317d4: C185 || CT.C185}), new basic.Listener.new({onPointerUp: dart.fn(event => this[_onTapUp](event), PointerUpEventTovoid()), onPointerDown: dart.fn(event => this[_onTapDown](event), PointerDownEventTovoid()), child: new gesture_detector.GestureDetector.new({onLongPress: dart.bind(this, _onLongPress), onDoubleTap: dart.bind(this, _onDoubleTap), child: new container.Container.new({height: constraints.maxHeight, width: constraints.maxWidth, decoration: C43 || CT.C43, $creationLocationd_0dea112b090073317d4: C190 || CT.C190}), $creationLocationd_0dea112b090073317d4: C195 || CT.C195}), $creationLocationd_0dea112b090073317d4: C200 || CT.C200})]), $creationLocationd_0dea112b090073317d4: C205 || CT.C205}), $creationLocationd_0dea112b090073317d4: C208 || CT.C208}), BuildContextAndBoxConstraintsToContainer()), $creationLocationd_0dea112b090073317d4: C211 || CT.C211});
    }
    [_initializeChart](constraints, context) {
      this[_calculateSize](constraints);
      return new gesture_detector.GestureDetector.new({child: new container.Container.new({decoration: C43 || CT.C43, child: this[_renderWidgets](constraints, context), $creationLocationd_0dea112b090073317d4: C214 || CT.C214}), $creationLocationd_0dea112b090073317d4: C218 || CT.C218});
    }
    [_calculateSize](constraints) {
      let width = constraints.maxWidth;
      let height = constraints.maxHeight;
      this.chart[_chartState].chartContainerRect = new ui.Rect.fromLTWH(0.0, 0.0, core.double._check(width), core.double._check(height));
      let margin = this.chart.margin;
      this.chart[_chartState].chartAreaRect = new ui.Rect.fromLTWH(margin.left, margin.top, core.double._check(dart.dsend(dart.dsend(width, '-', [margin.right]), '-', [margin.left])), core.double._check(dart.dsend(dart.dsend(height, '-', [margin.top]), '-', [margin.bottom])));
    }
    [_renderWidgets](constraints, context) {
      this[_bindSeriesWidgets]();
      this[_calculatePathRegion]();
      charts._findTemplates(this.chart);
      charts._renderTemplates(this.chart);
      this[_bindTooltipWidgets](constraints);
      this.renderBox = box.RenderBox._check(context.findRenderObject());
      this.chart[_chartPlotArea] = this;
      return new container.Container.new({child: new basic.Stack.new({children: this.chart[_chartState][_chartWidgets], $creationLocationd_0dea112b090073317d4: C221 || CT.C221}), $creationLocationd_0dea112b090073317d4: C224 || CT.C224});
    }
    [_calculatePathRegion]() {
      if (dart.test(this.chart[_chartSeries].visibleSeries[$isNotEmpty])) {
        let series = this.chart[_chartSeries].visibleSeries[$_get](0);
        for (let i = 0; i < dart.notNull(series[_renderPoints][$length]); i = i + 1) {
          if (dart.test(series[_renderPoints][$_get](i).isVisible)) {
            this.chart[_chartSeries][_calculatePathRegion](i);
          }
        }
      }
    }
    [_bindSeriesWidgets]() {
      let t0;
      let seriesPainter = null;
      let seriesAnimation = null;
      for (let i = 0; i < dart.notNull(this.chart[_chartSeries].visibleSeries[$length]); i = i + 1) {
        this.series = this.chart[_chartSeries].visibleSeries[$_get](i);
        this.chart[_chartSeries][_initializeSeriesProperties](this.series);
        if (this.series.selectionSettings != null) {
          if (dart.test(this.series.initialSelectedDataIndexes[$isNotEmpty])) {
            for (let index = 0; index < dart.notNull(this.series.initialSelectedDataIndexes[$length]); index = index + 1) {
              this.chart[_chartState].selectionData[$add](this.series.initialSelectedDataIndexes[$_get](index));
            }
          }
        }
        if (dart.notNull(this.series.animationDuration) > 0 && (dart.test(this.chart[_chartState].initialRender) || dart.test(this.chart[_chartState].widgetNeedUpdate) || dart.test(this.chart[_chartState][_isLegendToggled]))) {
          this.chart[_chartState].animationController.duration = new core.Duration.new({milliseconds: this.series.animationDuration[$toInt]()});
          seriesAnimation = new (TweenOfdouble()).new({begin: 0.0, end: 1.0}).animate((t0 = new animations.CurvedAnimation.new({parent: this.chart[_chartState].animationController, curve: C106 || CT.C106}), t0.addStatusListener(dart.fn(status => {
            if (dart.equals(status, animation.AnimationStatus.completed)) {
              this.chart[_chartState].animateCompleted = true;
              if (this.chart[_chartState].renderDataLabel != null) {
                this.chart[_chartState].renderDataLabel.state.render();
              }
              if (this.chart[_chartState][_chartTemplate] != null && this.chart[_chartState][_chartTemplate].state != null) {
                this.chart[_chartState][_chartTemplate].state.templateRender();
              }
            }
          }, AnimationStatusToNull())), t0));
          this.chart[_chartState].chartElementAnimation = new (TweenOfdouble()).new({begin: 0.0, end: 1.0}).animate(new animations.CurvedAnimation.new({parent: this.chart[_chartState].animationController, curve: C108 || CT.C108}));
          this.chart[_chartState].animationController.forward({from: 0.0});
        } else {
          this.chart[_chartState].animateCompleted = true;
        }
        if (this.series[_seriesType$] === "pyramid") {
          seriesPainter = new charts._PyramidChartPainter.new({chart: this.chart, seriesIndex: i, isRepaint: this.series[_needsRepaint], animationController: this.chart[_chartState].animationController, seriesAnimation: seriesAnimation, notifier: this.chart[_chartState].seriesRepaintNotifier});
        }
        this.chart[_chartState][_chartWidgets][$add](new basic.RepaintBoundary.new({child: new basic.CustomPaint.new({painter: seriesPainter, $creationLocationd_0dea112b090073317d4: C227 || CT.C227}), $creationLocationd_0dea112b090073317d4: C230 || CT.C230}));
        this.chart[_chartState].renderDataLabel = new charts._PyramidDataLabelRenderer.new({pyramidChart: this.chart, show: dart.notNull(this.series.animationDuration) > 0 ? false : this.chart[_chartState].animateCompleted, $creationLocationd_0dea112b090073317d4: C233 || CT.C233});
        this.chart[_chartState][_chartWidgets][$add](this.chart[_chartState].renderDataLabel);
      }
    }
    [_bindTooltipWidgets](constraints) {
      if (dart.test(this.chart.tooltipBehavior.enable)) {
        if (this.chart.tooltipBehavior.builder != null) {
          this.chart.tooltipBehavior[_tooltipTemplate] = new charts._TooltipTemplate.new({show: false, clipRect: this.chart[_chartState].chartContainerRect, $creationLocationd_0dea112b090073317d4: C237 || CT.C237});
          this.chart[_chartState][_chartWidgets][$add](this.chart.tooltipBehavior[_tooltipTemplate]);
        } else {
          this.chart.tooltipBehavior.chartTooltip = new charts._ChartTooltipRenderer.new({chartWidget: this.chart, $creationLocationd_0dea112b090073317d4: C241 || CT.C241});
          this.chart[_chartState][_chartWidgets][$add](this.chart.tooltipBehavior.chartTooltip);
        }
      }
    }
    [_onTapDown](event) {
      let t0, t0$, t0$0, t0$1, t0$2;
      this.chart.tooltipBehavior[_isHovering] = false;
      this.chart[_chartState].currentActive = null;
      this.chart[_chartState][_tapPosition] = this.renderBox.globalToLocal(event.position);
      let isPoint = null;
      let pointIndex = null;
      let series = this.chart[_chartSeries].visibleSeries[$_get](dart.asInt(0));
      for (let j = 0; j < dart.notNull(series[_renderPoints][$length]); j = j + 1) {
        if (dart.test(series[_renderPoints][$_get](j).isVisible)) {
          isPoint = charts._isPointInPolygon(series[_renderPoints][$_get](j).pathRegion, this.chart[_chartState][_tapPosition]);
          if (dart.test(isPoint)) {
            pointIndex = j;
            break;
          }
        }
      }
      this.doubleTapPosition = this.chart[_chartState][_tapPosition];
      if (this.chart[_chartState][_tapPosition] != null && dart.test(isPoint)) {
        this.chart[_chartState].currentActive = new charts._ChartInteraction.new(dart.asInt(0), dart.asInt(pointIndex), this.chart[_chartSeries].visibleSeries[$_get](dart.asInt(0)), this.chart[_chartSeries].visibleSeries[$_get](dart.asInt(0))[_renderPoints][$_get](dart.asInt(pointIndex)));
      } else {
        t0$ = (t0 = this.chart.tooltipBehavior, t0 == null ? null : t0[_tooltipTemplate]);
        t0$ == null ? null : t0$.show = false;
        t0$2 = (t0$1 = (t0$0 = this.chart.tooltipBehavior, t0$0 == null ? null : t0$0[_tooltipTemplate]), t0$1 == null ? null : t0$1.state);
        t0$2 == null ? null : t0$2[_performTooltip]();
      }
    }
    [_onDoubleTap]() {
      if (this.doubleTapPosition != null && this.chart[_chartState].currentActive != null) {
        let pointIndex = this.chart[_chartState].currentActive.pointIndex;
        this.chart[_chartState].currentActive = new charts._ChartInteraction.new(dart.asInt(0), dart.asInt(pointIndex), this.chart[_chartSeries].visibleSeries[$_get](dart.asInt(0)), this.chart[_chartSeries].visibleSeries[$_get](dart.asInt(0))[_renderPoints][$_get](dart.asInt(pointIndex)));
        if (this.chart[_chartState].currentActive != null) {
          if (dart.equals(dart.dload(this.chart[_chartState].currentActive.series, 'explodeGesture'), charts.ActivationMode.doubleTap)) {
            this.chart[_chartSeries][_pointExplode](pointIndex);
          }
        }
        this.chart[_chartSeries][_seriesPointSelection](pointIndex, charts.ActivationMode.doubleTap);
        if (dart.test(this.chart.tooltipBehavior.enable) && dart.equals(this.chart.tooltipBehavior.activationMode, charts.ActivationMode.doubleTap)) {
          this.chart.tooltipBehavior.onDoubleTap(this.doubleTapPosition.dx[$toDouble](), this.doubleTapPosition.dy[$toDouble]());
        }
      }
    }
    [_onLongPress]() {
      if (this.chart[_chartState][_tapPosition] != null && this.chart[_chartState].currentActive != null) {
        let pointIndex = this.chart[_chartState].currentActive.pointIndex;
        this.chart[_chartState].currentActive = new charts._ChartInteraction.new(dart.asInt(0), dart.asInt(pointIndex), this.chart[_chartSeries].visibleSeries[$_get](dart.asInt(0)), this.chart[_chartSeries].visibleSeries[$_get](dart.asInt(0))[_renderPoints][$_get](dart.asInt(pointIndex)), this.pointRegion);
        this.chart[_chartSeries][_seriesPointSelection](pointIndex, charts.ActivationMode.longPress);
        if (this.chart[_chartState].currentActive != null) {
          if (dart.equals(dart.dload(this.chart[_chartState].currentActive.series, 'explodeGesture'), charts.ActivationMode.longPress)) {
            this.chart[_chartSeries][_pointExplode](pointIndex);
          }
        }
        if (dart.test(this.chart.tooltipBehavior.enable) && dart.equals(this.chart.tooltipBehavior.activationMode, charts.ActivationMode.longPress)) {
          this.chart.tooltipBehavior.onLongPress(this.chart[_chartState][_tapPosition].dx[$toDouble](), this.chart[_chartState][_tapPosition].dy[$toDouble]());
        }
      }
    }
    [_onTapUp](event) {
      let t0, t0$;
      this.chart.tooltipBehavior[_isHovering] = false;
      this.chart[_chartState][_tapPosition] = this.renderBox.globalToLocal(event.position);
      if (this.chart[_chartState][_tapPosition] != null && this.chart[_chartState].currentActive != null) {
        if (this.chart[_chartState].currentActive.series != null && dart.equals(dart.dload(this.chart[_chartState].currentActive.series, 'explodeGesture'), charts.ActivationMode.singleTap)) {
          this.chart[_chartSeries][_pointExplode](this.chart[_chartState].currentActive.pointIndex);
        }
        if (dart.dtest(dart.dload(dart.dload(this.chart[_chartState].currentActive.series, 'selectionSettings'), 'enable'))) {
          this.chart[_chartSeries][_seriesPointSelection](this.chart[_chartState].currentActive.pointIndex, charts.ActivationMode.singleTap);
        }
        if (dart.test(this.chart.tooltipBehavior.enable) && dart.equals(this.chart.tooltipBehavior.activationMode, charts.ActivationMode.singleTap) && this.chart[_chartState].currentActive.series != null) {
          if (this.chart.tooltipBehavior.builder != null) {
            let chartSeries = charts.PyramidSeries._check(this.chart[_chartState].currentActive.series);
            let point = charts.PointInfo._check(this.chart[_chartState].currentActive.point);
            let location = point.symbolLocation;
            this.chart.tooltipBehavior[_tooltipTemplate].rect = new ui.Rect.fromLTWH(location.dx, location.dy, 0.0, 0.0);
            this.chart.tooltipBehavior[_tooltipTemplate].template = this.chart.tooltipBehavior.builder(chartSeries.dataSource[$_get](this.chart[_chartState].currentActive.pointIndex), point, chartSeries, this.chart[_chartState].currentActive.seriesIndex, this.chart[_chartState].currentActive.pointIndex);
            this.chart.tooltipBehavior[_tooltipTemplate].show = true;
            t0$ = (t0 = this.chart.tooltipBehavior[_tooltipTemplate], t0 == null ? null : t0.state);
            t0$ == null ? null : t0$[_performTooltip]();
          } else {
            let position = this.renderBox.globalToLocal(event.position);
            this.chart.tooltipBehavior.onTouchUp(position.dx[$toDouble](), position.dy[$toDouble]());
          }
        }
      }
      this.chart[_chartState][_tapPosition] = null;
    }
    [_onHover](event) {
      let t0, t0$, t0$0, t0$1, t0$2, t0$3, t0$4, t0$5, t0$6, t0$7, t0$8, t0$9, t0$10, t0$11;
      this.chart[_chartState].currentActive = null;
      this.chart[_chartState][_tapPosition] = this.renderBox.globalToLocal(event.position);
      let isPoint = null;
      let pointIndex = null;
      let series = this.chart[_chartSeries].visibleSeries[$_get](dart.asInt(0));
      for (let j = 0; j < dart.notNull(series[_renderPoints][$length]); j = j + 1) {
        if (dart.test(series[_renderPoints][$_get](j).isVisible)) {
          isPoint = charts._isPointInPolygon(series[_renderPoints][$_get](j).pathRegion, this.chart[_chartState][_tapPosition]);
          if (dart.test(isPoint)) {
            pointIndex = j;
            break;
          }
        }
      }
      if (this.chart[_chartState][_tapPosition] != null && dart.test(isPoint)) {
        this.chart[_chartState].currentActive = new charts._ChartInteraction.new(dart.asInt(0), dart.asInt(pointIndex), this.chart[_chartSeries].visibleSeries[$_get](dart.asInt(0)), this.chart[_chartSeries].visibleSeries[$_get](dart.asInt(0))[_renderPoints][$_get](dart.asInt(pointIndex)));
      } else {
        t0$ = (t0 = this.chart.tooltipBehavior, t0 == null ? null : t0[_tooltipTemplate]);
        t0$ == null ? null : t0$.show = false;
        t0$2 = (t0$1 = (t0$0 = this.chart.tooltipBehavior, t0$0 == null ? null : t0$0[_tooltipTemplate]), t0$1 == null ? null : t0$1.state);
        t0$2 == null ? null : t0$2[_performTooltip]();
      }
      if (this.chart[_chartState][_tapPosition] != null) {
        if (dart.test(this.chart.tooltipBehavior.enable) && this.chart[_chartState].currentActive != null && this.chart[_chartState].currentActive.series != null) {
          this.chart.tooltipBehavior[_isHovering] = true;
          let position = this.renderBox.globalToLocal(event.position);
          this.chart.tooltipBehavior.onEnter(position.dx[$toDouble](), position.dy[$toDouble]());
        } else {
          t0$5 = (t0$4 = (t0$3 = this.chart, t0$3 == null ? null : t0$3.tooltipBehavior), t0$4 == null ? null : t0$4[_painter]);
          t0$5 == null ? null : t0$5.prevTooltipValue = null;
          t0$8 = (t0$7 = (t0$6 = this.chart, t0$6 == null ? null : t0$6.tooltipBehavior), t0$7 == null ? null : t0$7[_painter]);
          t0$8 == null ? null : t0$8.currentTooltipValue = null;
          t0$11 = (t0$10 = (t0$9 = this.chart, t0$9 == null ? null : t0$9.tooltipBehavior), t0$10 == null ? null : t0$10[_painter]);
          t0$11 == null ? null : t0$11.hide();
        }
      }
      this.chart[_chartState][_tapPosition] = null;
    }
  };
  (charts._PyramidPlotArea.new = function(opts) {
    let chart = opts && 'chart' in opts ? opts.chart : null;
    let $36creationLocationd_0dea112b090073317d4 = opts && '$creationLocationd_0dea112b090073317d4' in opts ? opts.$creationLocationd_0dea112b090073317d4 : null;
    this.series = null;
    this.renderBox = null;
    this.pointRegion = null;
    this.tapDownDetails = null;
    this.doubleTapPosition = null;
    this.chart = chart;
    charts._PyramidPlotArea.__proto__.new.call(this, {$creationLocationd_0dea112b090073317d4: $36creationLocationd_0dea112b090073317d4});
    ;
  }).prototype = charts._PyramidPlotArea.prototype;
  dart.addTypeTests(charts._PyramidPlotArea);
  dart.setMethodSignature(charts._PyramidPlotArea, () => ({
    __proto__: dart.getMethods(charts._PyramidPlotArea.__proto__),
    build: dart.fnType(framework.Widget, [framework.BuildContext]),
    [_initializeChart]: dart.fnType(framework.Widget, [box.BoxConstraints, framework.BuildContext]),
    [_calculateSize]: dart.fnType(dart.void, [box.BoxConstraints]),
    [_renderWidgets]: dart.fnType(framework.Widget, [box.BoxConstraints, framework.BuildContext]),
    [_calculatePathRegion]: dart.fnType(dart.void, []),
    [_bindSeriesWidgets]: dart.fnType(dart.void, []),
    [_bindTooltipWidgets]: dart.fnType(dart.void, [box.BoxConstraints]),
    [_onTapDown]: dart.fnType(dart.void, [events.PointerDownEvent]),
    [_onDoubleTap]: dart.fnType(dart.void, []),
    [_onLongPress]: dart.fnType(dart.void, []),
    [_onTapUp]: dart.fnType(dart.void, [events.PointerUpEvent]),
    [_onHover]: dart.fnType(dart.void, [events.PointerEvent])
  }));
  dart.setLibraryUri(charts._PyramidPlotArea, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._PyramidPlotArea, () => ({
    __proto__: dart.getFields(charts._PyramidPlotArea.__proto__),
    chart: dart.finalFieldType(charts.SfPyramidChart),
    series: dart.fieldType(charts.PyramidSeries),
    renderBox: dart.fieldType(box.RenderBox),
    pointRegion: dart.fieldType(charts._Region),
    tapDownDetails: dart.fieldType(tap.TapDownDetails),
    doubleTapPosition: dart.fieldType(ui.Offset)
  }));
  const _calculatePyramidEmptyPoints = dart.privateName(charts, "_calculatePyramidEmptyPoints");
  const _calculateVisiblePoints = dart.privateName(charts, "_calculateVisiblePoints");
  const _triangleSize = dart.privateName(charts, "_triangleSize");
  const _explodeDistance = dart.privateName(charts, "_explodeDistance");
  const _initializeSizeRatio = dart.privateName(charts, "_initializeSizeRatio");
  const _initializeSurfaceSizeRatio = dart.privateName(charts, "_initializeSurfaceSizeRatio");
  const _getSurfaceHeight = dart.privateName(charts, "_getSurfaceHeight");
  const _solveQuadraticEquation = dart.privateName(charts, "_solveQuadraticEquation");
  const _calculatePathSegment = dart.privateName(charts, "_calculatePathSegment");
  const _maximumDataLabelRegion = dart.privateName(charts, "_maximumDataLabelRegion");
  const _segmentPaint = dart.privateName(charts, "_segmentPaint");
  const _calculatePyramidSegments = dart.privateName(charts, "_calculatePyramidSegments");
  const _getPointStyle = dart.privateName(charts, "_getPointStyle");
  charts._PyramidSeries = class _PyramidSeries extends core.Object {
    [_findVisibleSeries]() {
      this.visibleSeries = JSArrayOfPyramidSeries().of([]);
      this.chart.series[_dataPoints$] = JSArrayOfPointInfo().of([]);
      let currentSeries = this.chart.series;
      currentSeries[_seriesType$] = "pyramid";
      let xValue = currentSeries.xValueMapper;
      let yValue = currentSeries.yValueMapper;
      for (let pointIndex = 0; pointIndex < dart.notNull(currentSeries.dataSource[$length]); pointIndex = pointIndex + 1) {
        if (dart.dcall(xValue, [pointIndex]) != null) {
          currentSeries[_dataPoints$][$add](new charts.PointInfo.new(dart.dcall(xValue, [pointIndex]), core.num._check(dart.dcall(yValue, [pointIndex]))));
        }
      }
      this.visibleSeries[$add](this.chart.series);
    }
    [_calculatePyramidEmptyPoints](series) {
      for (let i = 0; i < dart.notNull(series[_dataPoints$][$length]); i = i + 1) {
        if (series[_dataPoints$][$_get](i).y == null) series.calculateEmptyPointValue(i, series[_dataPoints$][$_get](i));
      }
    }
    [_processDataPoints]() {
      for (let series of this.visibleSeries) {
        this.currentSeries = series;
        this[_calculatePyramidEmptyPoints](this.currentSeries);
        this[_calculateVisiblePoints]();
        this[_setPointStyle]();
        this[_findSumOfPoints]();
      }
    }
    [_calculateVisiblePoints]() {
      let points = this.currentSeries[_dataPoints$];
      this.chart.series[_renderPoints] = JSArrayOfPointInfo().of([]);
      for (let i = 0; i < dart.notNull(points[$length]); i = i + 1) {
        if (dart.test(points[$_get](i).isVisible)) {
          this.chart.series[_renderPoints][$add](points[$_get](i));
        }
      }
    }
    [_setPointStyle]() {
      let t0, t0$;
      let palette = this.chart.palette;
      let pointColor = this.currentSeries.pointColorMapper;
      let empty = this.currentSeries.emptyPointSettings;
      let textMapping = this.currentSeries.textFieldMapper;
      let points = this.currentSeries[_renderPoints];
      for (let i = 0; i < dart.notNull(points[$length]); i = i + 1) {
        let currentPoint = null;
        currentPoint = points[$_get](i);
        currentPoint.fill = ui.Color._check(dart.test(currentPoint.isEmpty) && empty.color != null ? empty.color : (t0 = dart.dcall(pointColor, [i]), t0 == null ? palette[$_get](i[$modulo](palette[$length])) : t0));
        currentPoint.color = currentPoint.fill;
        currentPoint.borderColor = dart.test(currentPoint.isEmpty) && empty.borderColor != null ? empty.borderColor : this.currentSeries.borderColor;
        currentPoint.borderWidth = dart.test(currentPoint.isEmpty) && empty.borderWidth != null ? empty.borderWidth : this.currentSeries.borderWidth;
        currentPoint.borderColor = currentPoint.borderWidth === 0 ? colors$.Colors.transparent : currentPoint.borderColor;
        currentPoint.text = core.String._check(currentPoint.text == null ? textMapping != null ? (t0$ = dart.dcall(textMapping, [i]), t0$ == null ? dart.toString(currentPoint.y) : t0$) : dart.toString(currentPoint.y) : currentPoint.text);
        if (this.chart.legend.legendItemBuilder != null) {
          let legendToggles = this.chart[_chartState].legendToggleTemplateStates;
          if (dart.test(legendToggles[$isNotEmpty])) {
            for (let j = 0; j < dart.notNull(legendToggles[$length]); j = j + 1) {
              let item = legendToggles[$_get](j);
              if (i === item.pointIndex) {
                currentPoint.isVisible = false;
                break;
              }
            }
          }
        } else {
          if (dart.test(this.chart[_chartState].legendToggleStates[$isNotEmpty])) {
            for (let j = 0; j < dart.notNull(this.chart[_chartState].legendToggleStates[$length]); j = j + 1) {
              let legendRenderContext = this.chart[_chartState].legendToggleStates[$_get](j);
              if (i === legendRenderContext.seriesIndex) {
                currentPoint.isVisible = false;
                break;
              }
            }
          }
        }
      }
    }
    [_findSumOfPoints]() {
      let t0;
      this.currentSeries[_sumOfPoints] = 0;
      for (let point of this.currentSeries[_renderPoints]) {
        if (dart.test(point.isVisible)) {
          t0 = this.currentSeries;
          t0[_sumOfPoints] = dart.notNull(t0[_sumOfPoints]) + point.y[$abs]();
        }
      }
    }
    [_initializeSeriesProperties](series) {
      let chartAreaRect = this.chart[_chartState].chartAreaRect;
      let reverse = series[_seriesType$] === "pyramid" ? true : false;
      series[_triangleSize] = new ui.Size.new(charts._percentToValue(series.width, chartAreaRect.width)[$toDouble](), charts._percentToValue(series.height, chartAreaRect.height)[$toDouble]());
      series[_explodeDistance] = charts._percentToValue(series.explodeOffset, chartAreaRect.width);
      if (dart.equals(series.pyramidMode, charts.PyramidMode.linear)) {
        this[_initializeSizeRatio](series, reverse);
      } else {
        this[_initializeSurfaceSizeRatio](series);
      }
    }
    [_initializeSurfaceSizeRatio](series) {
      let count = series[_renderPoints][$length];
      let sumOfValues = series[_sumOfPoints];
      let y = null;
      let height = null;
      y = JSArrayOfnum().of([]);
      height = JSArrayOfnum().of([]);
      let gapRatio = math.min(core.num, math.max(core.num, series.gapRatio, 0), 1);
      let gapHeight = gapRatio / (dart.notNull(count) - 1);
      let preSum = this[_getSurfaceHeight](0, sumOfValues);
      let currY = 0;
      for (let i = 0; i < dart.notNull(count); i = i + 1) {
        if (dart.test(series[_renderPoints][$_get](dart.asInt(i)).isVisible)) {
          y[$add](currY);
          height[$add](this[_getSurfaceHeight](currY, series[_renderPoints][$_get](dart.asInt(i)).y[$abs]()));
          currY = currY + (dart.notNull(height[$_get](dart.asInt(i))) + gapHeight * dart.notNull(preSum));
        }
      }
      let coef = 1 / (currY - gapHeight * dart.notNull(preSum));
      for (let i = 0; i < dart.notNull(count); i = i + 1) {
        if (dart.test(series[_renderPoints][$_get](dart.asInt(i)).isVisible)) {
          series[_renderPoints][$_get](dart.asInt(i)).yRatio = coef * dart.notNull(y[$_get](dart.asInt(i)));
          series[_renderPoints][$_get](dart.asInt(i)).heightRatio = coef * dart.notNull(height[$_get](dart.asInt(i)));
        }
      }
    }
    [_getSurfaceHeight](y, surface) {
      return this[_solveQuadraticEquation](1, 2 * dart.notNull(y), -dart.notNull(surface));
    }
    [_solveQuadraticEquation](a, b, c) {
      let root1 = null;
      let root2 = null;
      let d = dart.notNull(b) * dart.notNull(b) - 4 * dart.notNull(a) * dart.notNull(c);
      if (d >= 0) {
        let sd = math.sqrt(d);
        root1 = (-dart.notNull(b) - sd) / (2 * dart.notNull(a));
        root2 = (-dart.notNull(b) + sd) / (2 * dart.notNull(a));
        return math.max(core.num, root1, root2);
      }
      return 0;
    }
    [_initializeSizeRatio](series, reverse = null) {
      let points = series[_renderPoints];
      let y = null;
      let gapRatio = math.min(core.double, math.max(core.double, series.gapRatio, 0.0), 1.0);
      let coEff = 1 / (dart.notNull(series[_sumOfPoints]) * (1 + gapRatio / (1 - gapRatio)));
      let spacing = gapRatio / (dart.notNull(points[$length]) - 1);
      y = 0.0;
      let index = null;
      let height = null;
      for (let i = dart.notNull(points[$length]) - 1; i >= 0; i = i - 1) {
        index = dart.test(reverse) ? dart.notNull(points[$length]) - 1 - i : i;
        if (dart.test(points[$_get](dart.asInt(index)).isVisible)) {
          height = coEff * dart.notNull(points[$_get](dart.asInt(index)).y);
          points[$_get](dart.asInt(index)).yRatio = y;
          points[$_get](dart.asInt(index)).heightRatio = height;
          y = dart.notNull(y) + (dart.notNull(height) + spacing);
        }
      }
    }
    [_pointExplode](pointIndex) {
      let t0, t0$;
      let existExplodedRegion = false;
      let series = this.chart[_chartSeries].visibleSeries[$_get](0);
      let point = series[_renderPoints][$_get](dart.asInt(pointIndex));
      if (dart.test(series.explode)) {
        if (dart.test(this.chart[_chartState].explodedPoints[$isNotEmpty])) {
          existExplodedRegion = true;
          let previousIndex = this.chart[_chartState].explodedPoints[$_get](0);
          series[_renderPoints][$_get](previousIndex).explodeDistance = 0;
          point.explodeDistance = previousIndex == pointIndex ? 0 : series[_explodeDistance];
          this.chart[_chartState].explodedPoints[$_set](0, dart.asInt(pointIndex));
          if (previousIndex == pointIndex) {
            this.chart[_chartState].explodedPoints = JSArrayOfint().of([]);
          }
          t0 = this.chart[_chartState].seriesRepaintNotifier;
          t0.value = dart.notNull(t0.value) + 1;
        }
        if (!existExplodedRegion) {
          point.explodeDistance = series[_explodeDistance];
          this.chart[_chartState].explodedPoints[$add](dart.asInt(pointIndex));
          t0$ = this.chart[_chartState].seriesRepaintNotifier;
          t0$.value = dart.notNull(t0$.value) + 1;
        }
        this[_calculatePathRegion](pointIndex);
      }
    }
    [_calculatePathRegion](pointIndex) {
      let currentPoint = this.currentSeries[_renderPoints][$_get](dart.asInt(pointIndex));
      dart.dput(currentPoint, 'pathRegion', JSArrayOfOffset().of([]));
      let area = this.currentSeries[_triangleSize];
      let seriesTop = dart.notNull(this.chart[_chartState].chartContainerRect.top) + (dart.notNull(this.chart[_chartState].chartContainerRect.height) - dart.notNull(area.height)) / 2;
      let extraSpace = core.num._check(dart.dsend(dart.dload(currentPoint, 'explodeDistance') != null ? dart.dload(currentPoint, 'explodeDistance') : dart.test(charts._isNeedExplode(dart.asInt(pointIndex), this.currentSeries, this.chart)) ? this.currentSeries[_explodeDistance] : 0, '+', [(dart.notNull(this.chart[_chartState].chartContainerRect.width) - dart.notNull(this.currentSeries[_triangleSize].width)) / 2]));
      let emptySpaceAtLeft = dart.notNull(extraSpace) + dart.notNull(this.chart[_chartState].chartContainerRect.left);
      let top = core.num._check(dart.dload(currentPoint, 'yRatio'));
      let bottom = core.num._check(dart.dsend(dart.dload(currentPoint, 'yRatio'), '+', [dart.dload(currentPoint, 'heightRatio')]));
      let topRadius = 0.5 * (1 - dart.notNull(core.num._check(dart.dload(currentPoint, 'yRatio'))));
      let bottomRadius = 0.5 * (1 - dart.notNull(bottom));
      top = dart.notNull(top) + seriesTop / dart.notNull(area.height);
      bottom = dart.notNull(bottom) + seriesTop / dart.notNull(area.height);
      let line1X = null;
      let line1Y = null;
      let line2X = null;
      let line2Y = null;
      let line3X = null;
      let line3Y = null;
      let line4X = null;
      let line4Y = null;
      line1X = emptySpaceAtLeft + 0 + topRadius * dart.notNull(area.width);
      line1Y = dart.notNull(top) * dart.notNull(area.height);
      line2X = emptySpaceAtLeft + 0 + (1 - topRadius) * dart.notNull(area.width);
      line2Y = dart.notNull(top) * dart.notNull(area.height);
      line3X = emptySpaceAtLeft + 0 + (1 - bottomRadius) * dart.notNull(area.width);
      line3Y = dart.notNull(bottom) * dart.notNull(area.height);
      line4X = emptySpaceAtLeft + 0 + bottomRadius * dart.notNull(area.width);
      line4Y = dart.notNull(bottom) * dart.notNull(area.height);
      dart.dsend(dart.dload(currentPoint, 'pathRegion'), 'add', [new ui.Offset.new(line1X, line1Y)]);
      dart.dsend(dart.dload(currentPoint, 'pathRegion'), 'add', [new ui.Offset.new(line2X, line2Y)]);
      dart.dsend(dart.dload(currentPoint, 'pathRegion'), 'add', [new ui.Offset.new(line3X, line3Y)]);
      dart.dsend(dart.dload(currentPoint, 'pathRegion'), 'add', [new ui.Offset.new(line4X, line4Y)]);
      this[_calculatePathSegment](this.currentSeries[_seriesType$], charts.PointInfo._check(currentPoint));
    }
    [_calculatePyramidSegments](canvas, pointIndex) {
      this[_calculatePathRegion](pointIndex);
      let currentPoint = this.currentSeries[_renderPoints][$_get](dart.asInt(pointIndex));
      let path = ui.Path.new();
      path.moveTo(core.double._check(dart.dload(dart.dsend(dart.dload(currentPoint, 'pathRegion'), '_get', [0]), 'dx')), core.double._check(dart.dload(dart.dsend(dart.dload(currentPoint, 'pathRegion'), '_get', [0]), 'dy')));
      path.lineTo(core.double._check(dart.dload(dart.dsend(dart.dload(currentPoint, 'pathRegion'), '_get', [1]), 'dx')), core.double._check(dart.dload(dart.dsend(dart.dload(currentPoint, 'pathRegion'), '_get', [0]), 'dy')));
      path.lineTo(core.double._check(dart.dload(dart.dsend(dart.dload(currentPoint, 'pathRegion'), '_get', [1]), 'dx')), core.double._check(dart.dload(dart.dsend(dart.dload(currentPoint, 'pathRegion'), '_get', [1]), 'dy')));
      path.lineTo(core.double._check(dart.dload(dart.dsend(dart.dload(currentPoint, 'pathRegion'), '_get', [2]), 'dx')), core.double._check(dart.dload(dart.dsend(dart.dload(currentPoint, 'pathRegion'), '_get', [2]), 'dy')));
      path.lineTo(core.double._check(dart.dload(dart.dsend(dart.dload(currentPoint, 'pathRegion'), '_get', [3]), 'dx')), core.double._check(dart.dload(dart.dsend(dart.dload(currentPoint, 'pathRegion'), '_get', [3]), 'dy')));
      path.close();
      if (pointIndex === dart.notNull(this.currentSeries[_renderPoints][$length]) - 1) {
        this.currentSeries[_maximumDataLabelRegion] = path.getBounds();
      }
      this[_segmentPaint](canvas, path, pointIndex);
    }
    [_segmentPaint](canvas, path, pointIndex) {
      let point = this.currentSeries[_renderPoints][$_get](dart.asInt(pointIndex));
      let style = this[_getPointStyle](dart.asInt(pointIndex), this.currentSeries, this.chart, charts.PointInfo._check(point));
      let fillColor = ui.Color._check(style != null && style.fill != null ? style.fill : !dart.equals(dart.dload(point, 'fill'), colors$.Colors.transparent) ? this.currentSeries[_renderer].getPointColor(this.currentSeries, charts.PointInfo._check(point), dart.asInt(pointIndex), ui.Color._check(dart.dload(point, 'fill')), this.currentSeries.opacity) : dart.dload(point, 'fill'));
      let strokeColor = style != null && style.strokeColor != null ? style.strokeColor : this.currentSeries[_renderer].getPointStrokeColor(this.currentSeries, charts.PointInfo._check(point), dart.asInt(pointIndex), ui.Color._check(dart.dload(point, 'borderColor')));
      let strokeWidth = style != null && style.strokeWidth != null ? style.strokeWidth : this.currentSeries[_renderer].getPointStrokeWidth(this.currentSeries, charts.PointInfo._check(point), dart.asInt(pointIndex), core.double._check(dart.dload(point, 'borderWidth')));
      let opacity = style != null && style.opacity != null ? style.opacity : this.currentSeries[_renderer].getOpacity(this.currentSeries, charts.PointInfo._check(point), dart.asInt(pointIndex), this.currentSeries.opacity);
      charts._drawPath(canvas, new charts._StyleOptions.new(fillColor, dart.test(this.chart[_chartState].animateCompleted) ? strokeWidth : 0, strokeColor, opacity), path);
    }
    [_calculatePathSegment](seriesType, point) {
      let pathRegion = point.pathRegion;
      let bottom = seriesType === "funnel" ? dart.notNull(pathRegion[$length]) - 2 : dart.notNull(pathRegion[$length]) - 1;
      let x = (dart.notNull(pathRegion[$_get](0).dx) + dart.notNull(pathRegion[$_get](dart.asInt(bottom)).dx)) / 2;
      let right = (dart.notNull(pathRegion[$_get](1).dx) + dart.notNull(pathRegion[$_get](dart.asInt(bottom - 1)).dx)) / 2;
      point.region = new ui.Rect.fromLTWH(x, pathRegion[$_get](0).dy, right - x, dart.notNull(pathRegion[$_get](dart.asInt(bottom)).dy) - dart.notNull(pathRegion[$_get](0).dy));
      point.symbolLocation = new ui.Offset.new(dart.notNull(point.region.left) + dart.notNull(point.region.width) / 2, dart.notNull(point.region.top) + dart.notNull(point.region.height) / 2);
    }
    [_seriesPointSelection](pointIndex, mode) {
      let t0, t0$, t0$0;
      let isPointAlreadySelected = false;
      let series = this.chart[_chartSeries].visibleSeries[$_get](0);
      if (dart.dtest(dart.dload(dart.dload(series, 'selectionSettings'), 'enable')) && dart.equals(mode, this.chart.selectionGesture)) {
        if (dart.test(this.chart[_chartState].selectionData[$isNotEmpty])) {
          for (let i = 0; i < dart.notNull(this.chart[_chartState].selectionData[$length]); i = i + 1) {
            let selectionIndex = this.chart[_chartState].selectionData[$_get](i);
            if (!dart.test(this.chart.enableMultiSelection)) {
              isPointAlreadySelected = this.chart[_chartState].selectionData[$length] === 1 && pointIndex == selectionIndex;
              this.chart[_chartState].selectionData[$removeAt](i);
              t0 = this.chart[_chartState].seriesRepaintNotifier;
              t0.value = dart.notNull(t0.value) + 1;
            } else if (pointIndex == selectionIndex) {
              this.chart[_chartState].selectionData[$removeAt](i);
              isPointAlreadySelected = true;
              t0$ = this.chart[_chartState].seriesRepaintNotifier;
              t0$.value = dart.notNull(t0$.value) + 1;
              break;
            }
          }
        }
        if (!isPointAlreadySelected) {
          this.chart[_chartState].selectionData[$add](dart.asInt(pointIndex));
          t0$0 = this.chart[_chartState].seriesRepaintNotifier;
          t0$0.value = dart.notNull(t0$0.value) + 1;
        }
      }
    }
    [_getPointStyle](currentPointIndex, series, chart, point) {
      let pointStyle = null;
      let selection = series.selectionSettings;
      if (dart.test(selection.enable)) {
        if (dart.test(chart[_chartState].selectionData[$isNotEmpty])) {
          if (chart.onSelectionChanged != null) {
            chart.onSelectionChanged(this[_getSelectionEventArgs](series, 0, currentPointIndex));
          }
          for (let i = 0; i < dart.notNull(chart[_chartState].selectionData[$length]); i = i + 1) {
            let selectionIndex = chart[_chartState].selectionData[$_get](i);
            if (currentPointIndex == selectionIndex) {
              pointStyle = new charts._StyleOptions.new(this[_selectionArgs] != null ? this[_selectionArgs].selectedColor : selection.selectedColor, this[_selectionArgs] != null ? this[_selectionArgs].selectedBorderWidth : selection.selectedBorderWidth, this[_selectionArgs] != null ? this[_selectionArgs].selectedBorderColor : selection.selectedBorderColor, selection.selectedOpacity);
              break;
            } else if (i === dart.notNull(chart[_chartState].selectionData[$length]) - 1) {
              pointStyle = new charts._StyleOptions.new(this[_selectionArgs] != null ? this[_selectionArgs].unselectedColor : selection.unselectedColor, this[_selectionArgs] != null ? this[_selectionArgs].unselectedBorderWidth : selection.unselectedBorderWidth, this[_selectionArgs] != null ? this[_selectionArgs].unselectedBorderColor : selection.unselectedBorderColor, selection.unselectedOpacity);
            }
          }
        }
      }
      return pointStyle;
    }
    [_getSelectionEventArgs](series, seriesIndex, pointIndex) {
      if (series != null) {
        this[_selectionArgs] = new charts.SelectionArgs.new();
        this[_selectionArgs].series = series;
        this[_selectionArgs].selectedBorderColor = ui.Color._check(dart.dload(dart.dload(series, 'selectionSettings'), 'selectedBorderColor'));
        this[_selectionArgs].selectedBorderWidth = core.double._check(dart.dload(dart.dload(series, 'selectionSettings'), 'selectedBorderWidth'));
        this[_selectionArgs].selectedColor = ui.Color._check(dart.dload(dart.dload(series, 'selectionSettings'), 'selectedColor'));
        this[_selectionArgs].unselectedBorderColor = ui.Color._check(dart.dload(dart.dload(series, 'selectionSettings'), 'unselectedBorderColor'));
        this[_selectionArgs].unselectedBorderWidth = core.double._check(dart.dload(dart.dload(series, 'selectionSettings'), 'unselectedBorderWidth'));
        this[_selectionArgs].unselectedColor = ui.Color._check(dart.dload(dart.dload(series, 'selectionSettings'), 'unselectedColor'));
        this[_selectionArgs].seriesIndex = dart.asInt(seriesIndex);
        this[_selectionArgs].pointIndex = dart.asInt(pointIndex);
      }
      return this[_selectionArgs];
    }
  };
  (charts._PyramidSeries.new = function() {
    this.chart = null;
    this.currentSeries = null;
    this.visibleSeries = null;
    this[_selectionArgs] = null;
    ;
  }).prototype = charts._PyramidSeries.prototype;
  dart.addTypeTests(charts._PyramidSeries);
  dart.setMethodSignature(charts._PyramidSeries, () => ({
    __proto__: dart.getMethods(charts._PyramidSeries.__proto__),
    [_findVisibleSeries]: dart.fnType(dart.void, []),
    [_calculatePyramidEmptyPoints]: dart.fnType(dart.void, [charts.PyramidSeries]),
    [_processDataPoints]: dart.fnType(dart.void, []),
    [_calculateVisiblePoints]: dart.fnType(dart.void, []),
    [_setPointStyle]: dart.fnType(dart.void, []),
    [_findSumOfPoints]: dart.fnType(dart.void, []),
    [_initializeSeriesProperties]: dart.fnType(dart.void, [charts.PyramidSeries]),
    [_initializeSurfaceSizeRatio]: dart.fnType(dart.void, [charts.PyramidSeries]),
    [_getSurfaceHeight]: dart.fnType(core.num, [core.num, core.num]),
    [_solveQuadraticEquation]: dart.fnType(core.num, [core.num, core.num, core.num]),
    [_initializeSizeRatio]: dart.fnType(dart.void, [charts.PyramidSeries], [core.bool]),
    [_pointExplode]: dart.fnType(dart.void, [core.num]),
    [_calculatePathRegion]: dart.fnType(dart.void, [core.num]),
    [_calculatePyramidSegments]: dart.fnType(dart.void, [ui.Canvas, core.num]),
    [_segmentPaint]: dart.fnType(dart.void, [ui.Canvas, ui.Path, core.num]),
    [_calculatePathSegment]: dart.fnType(dart.void, [core.String, charts.PointInfo]),
    [_seriesPointSelection]: dart.fnType(dart.void, [core.num, charts.ActivationMode]),
    [_getPointStyle]: dart.fnType(charts._StyleOptions, [core.int, charts.PyramidSeries, charts.SfPyramidChart, charts.PointInfo]),
    [_getSelectionEventArgs]: dart.fnType(charts.SelectionArgs, [dart.dynamic, core.num, core.num])
  }));
  dart.setLibraryUri(charts._PyramidSeries, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._PyramidSeries, () => ({
    __proto__: dart.getFields(charts._PyramidSeries.__proto__),
    chart: dart.fieldType(charts.SfPyramidChart),
    currentSeries: dart.fieldType(charts.PyramidSeries),
    visibleSeries: dart.fieldType(core.List$(charts.PyramidSeries)),
    [_selectionArgs]: dart.fieldType(charts.SelectionArgs)
  }));
  const _is__PyramidSeriesBase_default = Symbol('_is__PyramidSeriesBase_default');
  const dataSource$1 = dart.privateName(charts, "_PyramidSeriesBase.dataSource");
  const xValueMapper$1 = dart.privateName(charts, "_PyramidSeriesBase.xValueMapper");
  const yValueMapper$1 = dart.privateName(charts, "_PyramidSeriesBase.yValueMapper");
  const name$1 = dart.privateName(charts, "_PyramidSeriesBase.name");
  const height$0 = dart.privateName(charts, "_PyramidSeriesBase.height");
  const width$1 = dart.privateName(charts, "_PyramidSeriesBase.width");
  const pyramidMode$ = dart.privateName(charts, "_PyramidSeriesBase.pyramidMode");
  const gapRatio$ = dart.privateName(charts, "_PyramidSeriesBase.gapRatio");
  const emptyPointSettings$1 = dart.privateName(charts, "_PyramidSeriesBase.emptyPointSettings");
  const explodeOffset$0 = dart.privateName(charts, "_PyramidSeriesBase.explodeOffset");
  const explode$0 = dart.privateName(charts, "_PyramidSeriesBase.explode");
  const explodeGesture$0 = dart.privateName(charts, "_PyramidSeriesBase.explodeGesture");
  const borderWidth$3 = dart.privateName(charts, "_PyramidSeriesBase.borderWidth");
  const borderColor$3 = dart.privateName(charts, "_PyramidSeriesBase.borderColor");
  const legendIconType$1 = dart.privateName(charts, "_PyramidSeriesBase.legendIconType");
  const dataLabelSettings$1 = dart.privateName(charts, "_PyramidSeriesBase.dataLabelSettings");
  const animationDuration$1 = dart.privateName(charts, "_PyramidSeriesBase.animationDuration");
  const pointColorMapper$1 = dart.privateName(charts, "_PyramidSeriesBase.pointColorMapper");
  const textFieldMapper$ = dart.privateName(charts, "_PyramidSeriesBase.textFieldMapper");
  const opacity$1 = dart.privateName(charts, "_PyramidSeriesBase.opacity");
  const selectionSettings$1 = dart.privateName(charts, "_PyramidSeriesBase.selectionSettings");
  const explodeIndex$0 = dart.privateName(charts, "_PyramidSeriesBase.explodeIndex");
  const initialSelectedDataIndexes$0 = dart.privateName(charts, "_PyramidSeriesBase.initialSelectedDataIndexes");
  charts._PyramidSeriesBase$ = dart.generic((T, D) => {
    class _PyramidSeriesBase extends charts.ChartSeries$(T, D) {
      get dataSource() {
        return this[dataSource$1];
      }
      set dataSource(value) {
        super.dataSource = value;
      }
      get xValueMapper() {
        return this[xValueMapper$1];
      }
      set xValueMapper(value) {
        super.xValueMapper = value;
      }
      get yValueMapper() {
        return this[yValueMapper$1];
      }
      set yValueMapper(value) {
        super.yValueMapper = value;
      }
      get name() {
        return this[name$1];
      }
      set name(value) {
        super.name = value;
      }
      get height() {
        return this[height$0];
      }
      set height(value) {
        super.height = value;
      }
      get width() {
        return this[width$1];
      }
      set width(value) {
        super.width = value;
      }
      get pyramidMode() {
        return this[pyramidMode$];
      }
      set pyramidMode(value) {
        super.pyramidMode = value;
      }
      get gapRatio() {
        return this[gapRatio$];
      }
      set gapRatio(value) {
        super.gapRatio = value;
      }
      get emptyPointSettings() {
        return this[emptyPointSettings$1];
      }
      set emptyPointSettings(value) {
        super.emptyPointSettings = value;
      }
      get explodeOffset() {
        return this[explodeOffset$0];
      }
      set explodeOffset(value) {
        super.explodeOffset = value;
      }
      get explode() {
        return this[explode$0];
      }
      set explode(value) {
        super.explode = value;
      }
      get explodeGesture() {
        return this[explodeGesture$0];
      }
      set explodeGesture(value) {
        super.explodeGesture = value;
      }
      get borderWidth() {
        return this[borderWidth$3];
      }
      set borderWidth(value) {
        super.borderWidth = value;
      }
      get borderColor() {
        return this[borderColor$3];
      }
      set borderColor(value) {
        super.borderColor = value;
      }
      get legendIconType() {
        return this[legendIconType$1];
      }
      set legendIconType(value) {
        super.legendIconType = value;
      }
      get dataLabelSettings() {
        return this[dataLabelSettings$1];
      }
      set dataLabelSettings(value) {
        super.dataLabelSettings = value;
      }
      get animationDuration() {
        return this[animationDuration$1];
      }
      set animationDuration(value) {
        super.animationDuration = value;
      }
      get pointColorMapper() {
        return this[pointColorMapper$1];
      }
      set pointColorMapper(value) {
        super.pointColorMapper = value;
      }
      get textFieldMapper() {
        return this[textFieldMapper$];
      }
      set textFieldMapper(value) {
        super.textFieldMapper = value;
      }
      get opacity() {
        return this[opacity$1];
      }
      set opacity(value) {
        super.opacity = value;
      }
      get selectionSettings() {
        return this[selectionSettings$1];
      }
      set selectionSettings(value) {
        super.selectionSettings = value;
      }
      get explodeIndex() {
        return this[explodeIndex$0];
      }
      set explodeIndex(value) {
        super.explodeIndex = value;
      }
      get initialSelectedDataIndexes() {
        return this[initialSelectedDataIndexes$0];
      }
      set initialSelectedDataIndexes(value) {
        this[initialSelectedDataIndexes$0] = value;
      }
      calculateEmptyPointValue(pointIndex, currentPoint) {
        let empty = this.emptyPointSettings;
        let pointLength = this[_dataPoints$][$length];
        let point = this[_dataPoints$][$_get](pointIndex);
        if (point.y == null) {
          switch (empty.mode) {
            case C120 || CT.C120:
            {
              let previous = dart.notNull(pointIndex) - 1 >= 0 ? this[_dataPoints$][$_get](dart.notNull(pointIndex) - 1).y == null ? 0 : this[_dataPoints$][$_get](dart.notNull(pointIndex) - 1).y : 0;
              let next = dart.notNull(pointIndex) + 1 <= dart.notNull(pointLength) - 1 ? this[_dataPoints$][$_get](dart.notNull(pointIndex) + 1).y == null ? 0 : this[_dataPoints$][$_get](dart.notNull(pointIndex) + 1).y : 0;
              point.y = (dart.notNull(previous) + dart.notNull(next))[$abs]() / 2;
              point.isVisible = true;
              point.isEmpty = true;
              break;
            }
            case C121 || CT.C121:
            {
              point.y = 0;
              point.isVisible = true;
              point.isEmpty = true;
              break;
            }
            default:
            {
              point.isEmpty = true;
              point.isVisible = false;
              break;
            }
          }
        }
      }
    }
    (_PyramidSeriesBase.new = function(opts) {
      let t0, t0$, t0$0, t0$1, t0$2, t0$3, t0$4, t0$5, t0$6, t0$7, t0$8, t0$9, t0$10, t0$11, t0$12, t0$13;
      let dataSource = opts && 'dataSource' in opts ? opts.dataSource : null;
      let xValueMapper = opts && 'xValueMapper' in opts ? opts.xValueMapper : null;
      let yValueMapper = opts && 'yValueMapper' in opts ? opts.yValueMapper : null;
      let pointColorMapper = opts && 'pointColorMapper' in opts ? opts.pointColorMapper : null;
      let textFieldMapper = opts && 'textFieldMapper' in opts ? opts.textFieldMapper : null;
      let name = opts && 'name' in opts ? opts.name : null;
      let explodeIndex = opts && 'explodeIndex' in opts ? opts.explodeIndex : null;
      let height = opts && 'height' in opts ? opts.height : null;
      let width = opts && 'width' in opts ? opts.width : null;
      let pyramidMode = opts && 'pyramidMode' in opts ? opts.pyramidMode : null;
      let gapRatio = opts && 'gapRatio' in opts ? opts.gapRatio : null;
      let emptyPointSettings = opts && 'emptyPointSettings' in opts ? opts.emptyPointSettings : null;
      let explodeOffset = opts && 'explodeOffset' in opts ? opts.explodeOffset : null;
      let explode = opts && 'explode' in opts ? opts.explode : null;
      let explodeGesture = opts && 'explodeGesture' in opts ? opts.explodeGesture : null;
      let borderColor = opts && 'borderColor' in opts ? opts.borderColor : null;
      let borderWidth = opts && 'borderWidth' in opts ? opts.borderWidth : null;
      let legendIconType = opts && 'legendIconType' in opts ? opts.legendIconType : null;
      let dataLabelSettings = opts && 'dataLabelSettings' in opts ? opts.dataLabelSettings : null;
      let animationDuration = opts && 'animationDuration' in opts ? opts.animationDuration : null;
      let opacity = opts && 'opacity' in opts ? opts.opacity : null;
      let selectionSettings = opts && 'selectionSettings' in opts ? opts.selectionSettings : null;
      let initialSelectedDataIndexes = opts && 'initialSelectedDataIndexes' in opts ? opts.initialSelectedDataIndexes : null;
      this[_seriesType$] = null;
      this[_dataPoints$] = null;
      this[_renderPoints] = null;
      this[_sumOfPoints] = null;
      this[_triangleSize] = null;
      this[_explodeDistance] = null;
      this[_maximumDataLabelRegion] = null;
      this[_selectionArgs] = null;
      this[_renderer] = null;
      this[dataSource$1] = dataSource;
      this[xValueMapper$1] = xValueMapper;
      this[yValueMapper$1] = yValueMapper;
      this[pointColorMapper$1] = pointColorMapper;
      this[textFieldMapper$] = textFieldMapper;
      this[name$1] = name;
      this[explodeIndex$0] = explodeIndex;
      this[height$0] = (t0 = height, t0 == null ? "80%" : t0);
      this[width$1] = (t0$ = width, t0$ == null ? "80%" : t0$);
      this[pyramidMode$] = (t0$0 = pyramidMode, t0$0 == null ? charts.PyramidMode.linear : t0$0);
      this[gapRatio$] = (t0$1 = gapRatio, t0$1 == null ? 0.0 : t0$1);
      this[emptyPointSettings$1] = (t0$2 = emptyPointSettings, t0$2 == null ? new charts.EmptyPointSettings.new() : t0$2);
      this[explodeOffset$0] = (t0$3 = explodeOffset, t0$3 == null ? "10%" : t0$3);
      this[explode$0] = (t0$4 = explode, t0$4 == null ? false : t0$4);
      this[explodeGesture$0] = (t0$5 = explodeGesture, t0$5 == null ? charts.ActivationMode.singleTap : t0$5);
      this[borderColor$3] = (t0$6 = borderColor, t0$6 == null ? colors$.Colors.transparent : t0$6);
      this[borderWidth$3] = (t0$7 = borderWidth, t0$7 == null ? 0.0 : t0$7);
      this[legendIconType$1] = (t0$8 = legendIconType, t0$8 == null ? charts.LegendIconType.seriesType : t0$8);
      this[dataLabelSettings$1] = (t0$9 = dataLabelSettings, t0$9 == null ? new charts.DataLabelSettings.new() : t0$9);
      this[animationDuration$1] = (t0$10 = animationDuration, t0$10 == null ? 1500.0 : t0$10);
      this[opacity$1] = (t0$11 = opacity, t0$11 == null ? 1.0 : t0$11);
      this[initialSelectedDataIndexes$0] = (t0$12 = initialSelectedDataIndexes, t0$12 == null ? JSArrayOfint().of([]) : t0$12);
      this[selectionSettings$1] = (t0$13 = selectionSettings, t0$13 == null ? new charts.SelectionSettings.new() : t0$13);
      _PyramidSeriesBase.__proto__.new.call(this, {name: name, dataSource: dataSource, xValueMapper: xValueMapper, yValueMapper: yValueMapper});
      this[_renderer] = new charts._PyramidSeriesRender.new();
    }).prototype = _PyramidSeriesBase.prototype;
    dart.addTypeTests(_PyramidSeriesBase);
    _PyramidSeriesBase.prototype[_is__PyramidSeriesBase_default] = true;
    _PyramidSeriesBase[dart.implements] = () => [charts.TriangularChartEmptyPointBehavior];
    dart.setMethodSignature(_PyramidSeriesBase, () => ({
      __proto__: dart.getMethods(_PyramidSeriesBase.__proto__),
      calculateEmptyPointValue: dart.fnType(dart.void, [core.int, charts.PointInfo])
    }));
    dart.setLibraryUri(_PyramidSeriesBase, "package:syncfusion_flutter_charts/charts.dart");
    dart.setFieldSignature(_PyramidSeriesBase, () => ({
      __proto__: dart.getFields(_PyramidSeriesBase.__proto__),
      dataSource: dart.finalFieldType(core.List$(T)),
      xValueMapper: dart.finalFieldType(dart.fnType(D, [core.int])),
      yValueMapper: dart.finalFieldType(dart.fnType(core.num, [core.int])),
      name: dart.finalFieldType(core.String),
      height: dart.finalFieldType(core.String),
      width: dart.finalFieldType(core.String),
      pyramidMode: dart.finalFieldType(charts.PyramidMode),
      gapRatio: dart.finalFieldType(core.double),
      emptyPointSettings: dart.finalFieldType(charts.EmptyPointSettings),
      explodeOffset: dart.finalFieldType(core.String),
      explode: dart.finalFieldType(core.bool),
      explodeGesture: dart.finalFieldType(charts.ActivationMode),
      borderWidth: dart.finalFieldType(core.double),
      borderColor: dart.finalFieldType(ui.Color),
      legendIconType: dart.finalFieldType(charts.LegendIconType),
      dataLabelSettings: dart.finalFieldType(charts.DataLabelSettings),
      animationDuration: dart.finalFieldType(core.double),
      pointColorMapper: dart.finalFieldType(dart.fnType(ui.Color, [core.int])),
      textFieldMapper: dart.finalFieldType(dart.fnType(core.String, [core.int])),
      opacity: dart.finalFieldType(core.double),
      selectionSettings: dart.finalFieldType(charts.SelectionSettings),
      explodeIndex: dart.finalFieldType(core.num),
      initialSelectedDataIndexes: dart.fieldType(core.List$(core.int)),
      [_seriesType$]: dart.fieldType(core.String),
      [_dataPoints$]: dart.fieldType(core.List$(charts.PointInfo)),
      [_renderPoints]: dart.fieldType(core.List$(charts.PointInfo)),
      [_sumOfPoints]: dart.fieldType(core.num),
      [_triangleSize]: dart.fieldType(ui.Size),
      [_explodeDistance]: dart.fieldType(core.num),
      [_maximumDataLabelRegion]: dart.fieldType(ui.Rect),
      [_selectionArgs]: dart.fieldType(charts.SelectionArgs),
      [_renderer]: dart.fieldType(charts._PyramidSeriesRender)
    }));
    return _PyramidSeriesBase;
  });
  charts._PyramidSeriesBase = charts._PyramidSeriesBase$();
  dart.addTypeTests(charts._PyramidSeriesBase, _is__PyramidSeriesBase_default);
  const _is_PyramidSeries_default = Symbol('_is_PyramidSeries_default');
  charts.PyramidSeries$ = dart.generic((T, D) => {
    let intToD = () => (intToD = dart.constFn(dart.fnType(D, [core.int])))();
    class PyramidSeries extends charts._PyramidSeriesBase$(T, D) {}
    (PyramidSeries.new = function(opts) {
      let dataSource = opts && 'dataSource' in opts ? opts.dataSource : null;
      let xValueMapper = opts && 'xValueMapper' in opts ? opts.xValueMapper : null;
      let yValueMapper = opts && 'yValueMapper' in opts ? opts.yValueMapper : null;
      let pointColorMapper = opts && 'pointColorMapper' in opts ? opts.pointColorMapper : null;
      let textFieldMapper = opts && 'textFieldMapper' in opts ? opts.textFieldMapper : null;
      let name = opts && 'name' in opts ? opts.name : null;
      let height = opts && 'height' in opts ? opts.height : null;
      let width = opts && 'width' in opts ? opts.width : null;
      let pyramidMode = opts && 'pyramidMode' in opts ? opts.pyramidMode : null;
      let gapRatio = opts && 'gapRatio' in opts ? opts.gapRatio : null;
      let legendIconType = opts && 'legendIconType' in opts ? opts.legendIconType : null;
      let emptyPointSettings = opts && 'emptyPointSettings' in opts ? opts.emptyPointSettings : null;
      let dataLabelSettings = opts && 'dataLabelSettings' in opts ? opts.dataLabelSettings : null;
      let animationDuration = opts && 'animationDuration' in opts ? opts.animationDuration : null;
      let opacity = opts && 'opacity' in opts ? opts.opacity : null;
      let borderColor = opts && 'borderColor' in opts ? opts.borderColor : null;
      let borderWidth = opts && 'borderWidth' in opts ? opts.borderWidth : null;
      let explode = opts && 'explode' in opts ? opts.explode : null;
      let explodeIndex = opts && 'explodeIndex' in opts ? opts.explodeIndex : null;
      let explodeGesture = opts && 'explodeGesture' in opts ? opts.explodeGesture : null;
      let explodeOffset = opts && 'explodeOffset' in opts ? opts.explodeOffset : null;
      let selectionSettings = opts && 'selectionSettings' in opts ? opts.selectionSettings : null;
      let initialSelectedDataIndexes = opts && 'initialSelectedDataIndexes' in opts ? opts.initialSelectedDataIndexes : null;
      PyramidSeries.__proto__.new.call(this, {dataSource: dataSource, xValueMapper: dart.fn(index => xValueMapper(dataSource[$_get](index), index), intToD()), yValueMapper: dart.fn(index => yValueMapper(dataSource[$_get](index), index), intTonum()), pointColorMapper: dart.fn(index => pointColorMapper != null ? pointColorMapper(dataSource[$_get](index), index) : null, intToColor()), textFieldMapper: dart.fn(index => textFieldMapper != null ? textFieldMapper(dataSource[$_get](index), index) : null, intToString()), name: name, height: height, width: width, pyramidMode: pyramidMode, gapRatio: gapRatio, emptyPointSettings: emptyPointSettings, dataLabelSettings: dataLabelSettings, legendIconType: legendIconType, opacity: opacity, borderColor: borderColor, borderWidth: borderWidth, animationDuration: animationDuration, explode: explode, explodeIndex: explodeIndex, explodeOffset: explodeOffset, explodeGesture: explodeGesture, selectionSettings: selectionSettings, initialSelectedDataIndexes: initialSelectedDataIndexes});
      ;
    }).prototype = PyramidSeries.prototype;
    dart.addTypeTests(PyramidSeries);
    PyramidSeries.prototype[_is_PyramidSeries_default] = true;
    dart.setLibraryUri(PyramidSeries, "package:syncfusion_flutter_charts/charts.dart");
    return PyramidSeries;
  });
  charts.PyramidSeries = charts.PyramidSeries$();
  dart.addTypeTests(charts.PyramidSeries, _is_PyramidSeries_default);
  charts._PyramidChartPainter = class _PyramidChartPainter extends custom_paint.CustomPainter {
    paint(canvas, size) {
      this.series = this.chart[_chartSeries].visibleSeries[$_get](this.seriesIndex);
      for (let pointIndex = 0; pointIndex < dart.notNull(this.series[_renderPoints][$length]); pointIndex = pointIndex + 1) {
        if (dart.test(this.series[_renderPoints][$_get](pointIndex).isVisible)) {
          let animationFactor = this.seriesAnimation != null ? this.seriesAnimation.value : 1.0;
          if (dart.notNull(this.series.animationDuration) > 0 && !dart.test(this.chart[_chartState][_isLegendToggled])) {
            let factor = dart.notNull(this.chart[_chartState].chartAreaRect.top) + dart.notNull(this.chart[_chartState].chartAreaRect.height) - dart.notNull(animationFactor) * (dart.notNull(this.chart[_chartState].chartAreaRect.top) + dart.notNull(this.chart[_chartState].chartAreaRect.height));
            let height = dart.notNull(this.chart[_chartState].chartAreaRect.top) + dart.notNull(this.chart[_chartState].chartAreaRect.height) - factor;
            canvas.clipRect(new ui.Rect.fromLTRB(0.0, dart.notNull(this.chart[_chartState].chartAreaRect.top) + dart.notNull(this.chart[_chartState].chartAreaRect.height) - height, dart.notNull(this.chart[_chartState].chartAreaRect.left) + dart.notNull(this.chart[_chartState].chartAreaRect.width), dart.notNull(this.chart[_chartState].chartAreaRect.top) + dart.notNull(this.chart[_chartState].chartAreaRect.height)));
          }
          this.chart[_chartSeries][_calculatePyramidSegments](canvas, pointIndex);
        }
      }
    }
    shouldRepaint(oldDelegate) {
      charts._PyramidChartPainter._check(oldDelegate);
      return true;
    }
  };
  (charts._PyramidChartPainter.new = function(opts) {
    let chart = opts && 'chart' in opts ? opts.chart : null;
    let seriesIndex = opts && 'seriesIndex' in opts ? opts.seriesIndex : null;
    let isRepaint = opts && 'isRepaint' in opts ? opts.isRepaint : null;
    let animationController = opts && 'animationController' in opts ? opts.animationController : null;
    let seriesAnimation = opts && 'seriesAnimation' in opts ? opts.seriesAnimation : null;
    let notifier = opts && 'notifier' in opts ? opts.notifier : null;
    this.series = null;
    this.chart = chart;
    this.seriesIndex = seriesIndex;
    this.isRepaint = isRepaint;
    this.animationController = animationController;
    this.seriesAnimation = seriesAnimation;
    charts._PyramidChartPainter.__proto__.new.call(this, {repaint: notifier});
    ;
  }).prototype = charts._PyramidChartPainter.prototype;
  dart.addTypeTests(charts._PyramidChartPainter);
  dart.setMethodSignature(charts._PyramidChartPainter, () => ({
    __proto__: dart.getMethods(charts._PyramidChartPainter.__proto__),
    paint: dart.fnType(dart.void, [ui.Canvas, ui.Size]),
    shouldRepaint: dart.fnType(core.bool, [core.Object])
  }));
  dart.setLibraryUri(charts._PyramidChartPainter, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._PyramidChartPainter, () => ({
    __proto__: dart.getFields(charts._PyramidChartPainter.__proto__),
    chart: dart.finalFieldType(charts.SfPyramidChart),
    seriesIndex: dart.finalFieldType(core.int),
    isRepaint: dart.finalFieldType(core.bool),
    animationController: dart.finalFieldType(animation_controller.AnimationController),
    seriesAnimation: dart.finalFieldType(animation.Animation$(core.double)),
    series: dart.fieldType(charts.PyramidSeries)
  }));
  dart.defineLazy(charts._PyramidChartPainter, {
    /*charts._PyramidChartPainter.point*/get point() {
      return null;
    },
    set point(_) {}
  });
  charts._PyramidChartSegment = class _PyramidChartSegment extends core.Object {};
  (charts._PyramidChartSegment.new = function() {
    ;
  }).prototype = charts._PyramidChartSegment.prototype;
  dart.addTypeTests(charts._PyramidChartSegment);
  dart.setLibraryUri(charts._PyramidChartSegment, "package:syncfusion_flutter_charts/charts.dart");
  const Object__PyramidChartSegment$36 = class Object__PyramidChartSegment extends core.Object {};
  (Object__PyramidChartSegment$36.new = function() {
  }).prototype = Object__PyramidChartSegment$36.prototype;
  dart.applyMixin(Object__PyramidChartSegment$36, charts._PyramidChartSegment);
  charts._PyramidSeriesRender = class _PyramidSeriesRender extends Object__PyramidChartSegment$36 {
    getPointColor(series, point, pointIndex, color, opacity) {
      let t0;
      t0 = color;
      return t0 == null ? null : t0.withOpacity(opacity);
    }
    getPointOuterRadius(series, point, pointIndex, outerRadius) {
      return outerRadius;
    }
    getPointInnerRadius(series, point, pointIndex, innerRadius) {
      return innerRadius;
    }
    getPointExplode(series, point, pointIndex, isExplode) {
      return isExplode;
    }
    getPointStrokeColor(series, point, pointIndex, strokeColor) {
      return strokeColor;
    }
    getPointStrokeWidth(series, point, pointIndex, strokeWidth) {
      return strokeWidth;
    }
    getOpacity(series, point, pointIndex, opacity) {
      return opacity;
    }
  };
  (charts._PyramidSeriesRender.new = function() {
    ;
  }).prototype = charts._PyramidSeriesRender.prototype;
  dart.addTypeTests(charts._PyramidSeriesRender);
  dart.setMethodSignature(charts._PyramidSeriesRender, () => ({
    __proto__: dart.getMethods(charts._PyramidSeriesRender.__proto__),
    getPointColor: dart.fnType(ui.Color, [charts.PyramidSeries, charts.PointInfo, core.int, ui.Color, core.double]),
    getPointOuterRadius: dart.fnType(core.double, [charts.PyramidSeries, charts.PointInfo, core.int, core.double]),
    getPointInnerRadius: dart.fnType(core.double, [charts.PyramidSeries, charts.PointInfo, core.int, core.double]),
    getPointExplode: dart.fnType(core.bool, [charts.PyramidSeries, charts.PointInfo, core.int, core.bool]),
    getPointStrokeColor: dart.fnType(ui.Color, [charts.PyramidSeries, charts.PointInfo, core.int, ui.Color]),
    getPointStrokeWidth: dart.fnType(core.double, [charts.PyramidSeries, charts.PointInfo, core.int, core.double]),
    getOpacity: dart.fnType(core.double, [charts.PyramidSeries, charts.PointInfo, core.int, core.double])
  }));
  dart.setLibraryUri(charts._PyramidSeriesRender, "package:syncfusion_flutter_charts/charts.dart");
  const _is_PointInfo_default = Symbol('_is_PointInfo_default');
  const x$0 = dart.privateName(charts, "PointInfo.x");
  const y$0 = dart.privateName(charts, "PointInfo.y");
  const text$0 = dart.privateName(charts, "PointInfo.text");
  const fill$ = dart.privateName(charts, "PointInfo.fill");
  const color$0 = dart.privateName(charts, "PointInfo.color");
  const borderColor = dart.privateName(charts, "PointInfo.borderColor");
  const sortValue$ = dart.privateName(charts, "PointInfo.sortValue");
  const borderWidth = dart.privateName(charts, "PointInfo.borderWidth");
  const isExplode$ = dart.privateName(charts, "PointInfo.isExplode");
  const isShadow$ = dart.privateName(charts, "PointInfo.isShadow");
  const isEmpty$ = dart.privateName(charts, "PointInfo.isEmpty");
  const isVisible$0 = dart.privateName(charts, "PointInfo.isVisible");
  const isSelected$ = dart.privateName(charts, "PointInfo.isSelected");
  const dataLabelPosition$ = dart.privateName(charts, "PointInfo.dataLabelPosition");
  const renderPosition$ = dart.privateName(charts, "PointInfo.renderPosition");
  const labelRect$ = dart.privateName(charts, "PointInfo.labelRect");
  const dataLabelSize$ = dart.privateName(charts, "PointInfo.dataLabelSize");
  const saturationRegionOutside$ = dart.privateName(charts, "PointInfo.saturationRegionOutside");
  const yRatio$ = dart.privateName(charts, "PointInfo.yRatio");
  const heightRatio$ = dart.privateName(charts, "PointInfo.heightRatio");
  const pathRegion = dart.privateName(charts, "PointInfo.pathRegion");
  const region = dart.privateName(charts, "PointInfo.region");
  const symbolLocation = dart.privateName(charts, "PointInfo.symbolLocation");
  const explodeDistance = dart.privateName(charts, "PointInfo.explodeDistance");
  charts.PointInfo$ = dart.generic(D => {
    class PointInfo extends core.Object {
      get x() {
        return this[x$0];
      }
      set x(value) {
        this[x$0] = value;
      }
      get y() {
        return this[y$0];
      }
      set y(value) {
        this[y$0] = value;
      }
      get text() {
        return this[text$0];
      }
      set text(value) {
        this[text$0] = value;
      }
      get fill() {
        return this[fill$];
      }
      set fill(value) {
        this[fill$] = value;
      }
      get color() {
        return this[color$0];
      }
      set color(value) {
        this[color$0] = value;
      }
      get borderColor() {
        return this[borderColor];
      }
      set borderColor(value) {
        this[borderColor] = value;
      }
      get sortValue() {
        return this[sortValue$];
      }
      set sortValue(value) {
        this[sortValue$] = D._check(value);
      }
      get borderWidth() {
        return this[borderWidth];
      }
      set borderWidth(value) {
        this[borderWidth] = value;
      }
      get isExplode() {
        return this[isExplode$];
      }
      set isExplode(value) {
        this[isExplode$] = value;
      }
      get isShadow() {
        return this[isShadow$];
      }
      set isShadow(value) {
        this[isShadow$] = value;
      }
      get isEmpty() {
        return this[isEmpty$];
      }
      set isEmpty(value) {
        this[isEmpty$] = value;
      }
      get isVisible() {
        return this[isVisible$0];
      }
      set isVisible(value) {
        this[isVisible$0] = value;
      }
      get isSelected() {
        return this[isSelected$];
      }
      set isSelected(value) {
        this[isSelected$] = value;
      }
      get dataLabelPosition() {
        return this[dataLabelPosition$];
      }
      set dataLabelPosition(value) {
        this[dataLabelPosition$] = value;
      }
      get renderPosition() {
        return this[renderPosition$];
      }
      set renderPosition(value) {
        this[renderPosition$] = value;
      }
      get labelRect() {
        return this[labelRect$];
      }
      set labelRect(value) {
        this[labelRect$] = value;
      }
      get dataLabelSize() {
        return this[dataLabelSize$];
      }
      set dataLabelSize(value) {
        this[dataLabelSize$] = value;
      }
      get saturationRegionOutside() {
        return this[saturationRegionOutside$];
      }
      set saturationRegionOutside(value) {
        this[saturationRegionOutside$] = value;
      }
      get yRatio() {
        return this[yRatio$];
      }
      set yRatio(value) {
        this[yRatio$] = value;
      }
      get heightRatio() {
        return this[heightRatio$];
      }
      set heightRatio(value) {
        this[heightRatio$] = value;
      }
      get pathRegion() {
        return this[pathRegion];
      }
      set pathRegion(value) {
        this[pathRegion] = value;
      }
      get region() {
        return this[region];
      }
      set region(value) {
        this[region] = value;
      }
      get symbolLocation() {
        return this[symbolLocation];
      }
      set symbolLocation(value) {
        this[symbolLocation] = value;
      }
      get explodeDistance() {
        return this[explodeDistance];
      }
      set explodeDistance(value) {
        this[explodeDistance] = value;
      }
    }
    (PointInfo.new = function(x, y) {
      this[text$0] = null;
      this[fill$] = null;
      this[color$0] = null;
      this[borderColor] = null;
      this[sortValue$] = null;
      this[borderWidth] = null;
      this[isExplode$] = null;
      this[isShadow$] = null;
      this[isEmpty$] = false;
      this[isVisible$0] = true;
      this[isSelected$] = false;
      this[dataLabelPosition$] = null;
      this[renderPosition$] = null;
      this[labelRect$] = null;
      this[dataLabelSize$] = C122 || CT.C122;
      this[saturationRegionOutside$] = false;
      this[yRatio$] = null;
      this[heightRatio$] = null;
      this[pathRegion] = null;
      this[region] = null;
      this[symbolLocation] = null;
      this[explodeDistance] = null;
      this[x$0] = x;
      this[y$0] = y;
      ;
    }).prototype = PointInfo.prototype;
    dart.addTypeTests(PointInfo);
    PointInfo.prototype[_is_PointInfo_default] = true;
    dart.setLibraryUri(PointInfo, "package:syncfusion_flutter_charts/charts.dart");
    dart.setFieldSignature(PointInfo, () => ({
      __proto__: dart.getFields(PointInfo.__proto__),
      x: dart.fieldType(dart.dynamic),
      y: dart.fieldType(core.num),
      text: dart.fieldType(core.String),
      fill: dart.fieldType(ui.Color),
      color: dart.fieldType(ui.Color),
      borderColor: dart.fieldType(ui.Color),
      sortValue: dart.fieldType(D),
      borderWidth: dart.fieldType(core.num),
      isExplode: dart.fieldType(core.bool),
      isShadow: dart.fieldType(core.bool),
      isEmpty: dart.fieldType(core.bool),
      isVisible: dart.fieldType(core.bool),
      isSelected: dart.fieldType(core.bool),
      dataLabelPosition: dart.fieldType(charts.Position),
      renderPosition: dart.fieldType(charts.ChartDataLabelPosition),
      labelRect: dart.fieldType(ui.Rect),
      dataLabelSize: dart.fieldType(ui.Size),
      saturationRegionOutside: dart.fieldType(core.bool),
      yRatio: dart.fieldType(core.num),
      heightRatio: dart.fieldType(core.num),
      pathRegion: dart.fieldType(core.List$(ui.Offset)),
      region: dart.fieldType(ui.Rect),
      symbolLocation: dart.fieldType(ui.Offset),
      explodeDistance: dart.fieldType(core.num)
    }));
    return PointInfo;
  });
  charts.PointInfo = charts.PointInfo$();
  dart.addTypeTests(charts.PointInfo, _is_PointInfo_default);
  charts._PyramidDataLabelRenderer = class _PyramidDataLabelRenderer extends framework.StatefulWidget {
    createState() {
      return new charts._PyramidDataLabelRendererState.new();
    }
  };
  (charts._PyramidDataLabelRenderer.new = function(opts) {
    let pyramidChart = opts && 'pyramidChart' in opts ? opts.pyramidChart : null;
    let show = opts && 'show' in opts ? opts.show : null;
    let $36creationLocationd_0dea112b090073317d4 = opts && '$creationLocationd_0dea112b090073317d4' in opts ? opts.$creationLocationd_0dea112b090073317d4 : null;
    this.state = null;
    this.pyramidChart = pyramidChart;
    this.show = show;
    charts._PyramidDataLabelRenderer.__proto__.new.call(this, {$creationLocationd_0dea112b090073317d4: $36creationLocationd_0dea112b090073317d4});
    ;
  }).prototype = charts._PyramidDataLabelRenderer.prototype;
  dart.addTypeTests(charts._PyramidDataLabelRenderer);
  dart.setMethodSignature(charts._PyramidDataLabelRenderer, () => ({
    __proto__: dart.getMethods(charts._PyramidDataLabelRenderer.__proto__),
    createState: dart.fnType(framework.State$(framework.StatefulWidget), [])
  }));
  dart.setLibraryUri(charts._PyramidDataLabelRenderer, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._PyramidDataLabelRenderer, () => ({
    __proto__: dart.getFields(charts._PyramidDataLabelRenderer.__proto__),
    pyramidChart: dart.finalFieldType(charts.SfPyramidChart),
    show: dart.fieldType(core.bool),
    state: dart.fieldType(charts._PyramidDataLabelRendererState)
  }));
  let C244;
  let C245;
  let C246;
  let C247;
  const State_SingleTickerProviderStateMixin$36$ = class State_SingleTickerProviderStateMixin extends framework.State$(charts._PyramidDataLabelRenderer) {};
  (State_SingleTickerProviderStateMixin$36$.new = function() {
    ticker_provider.SingleTickerProviderStateMixin$(charts._PyramidDataLabelRenderer)[dart.mixinNew].call(this);
    State_SingleTickerProviderStateMixin$36$.__proto__.new.call(this);
  }).prototype = State_SingleTickerProviderStateMixin$36$.prototype;
  dart.applyMixin(State_SingleTickerProviderStateMixin$36$, ticker_provider.SingleTickerProviderStateMixin$(charts._PyramidDataLabelRenderer));
  charts._PyramidDataLabelRendererState = class _PyramidDataLabelRendererState extends State_SingleTickerProviderStateMixin$36$ {
    initState() {
      let t0;
      this.dataLabelRepaintNotifier = new (ValueNotifierOfint()).new(0);
      this.animationController = (t0 = new animation_controller.AnimationController.new({vsync: this}), t0.addListener(dart.bind(this, 'repaintDataLabelElements')), t0);
      super.initState();
    }
    dispose() {
      if (this.animationController != null) {
        this.animationController.removeListener(dart.bind(this, 'repaintDataLabelElements'));
        this.animationController.dispose();
        this.animationController = null;
      }
      super.dispose();
    }
    repaintDataLabelElements() {
      let t0;
      t0 = this.dataLabelRepaintNotifier;
      t0.value = dart.notNull(t0.value) + 1;
    }
    render() {
      this.setState(dart.fn(() => {
        this.widget.show = true;
      }, VoidToNull()));
    }
    build(context) {
      this.widget.state = this;
      this.animationController.duration = C244 || CT.C244;
      let dataLabelAnimation = new (TweenOfdouble()).new({begin: 0.0, end: 1.0}).animate(new animations.CurvedAnimation.new({parent: this.animationController, curve: C124 || CT.C124}));
      if (dart.test(this.widget.pyramidChart[_chartState].initialRender)) {
        this.animationController.forward({from: 0.0});
      }
      return !dart.test(this.widget.show) ? new container.Container.new({$creationLocationd_0dea112b090073317d4: C245 || CT.C245}) : new container.Container.new({child: new basic.CustomPaint.new({painter: new charts._PyramidDataLabelPainter.new({pyramidChart: this.widget.pyramidChart, animation: dataLabelAnimation, state: this, notifier: this.dataLabelRepaintNotifier, animationController: this.animationController}), $creationLocationd_0dea112b090073317d4: C246 || CT.C246}), $creationLocationd_0dea112b090073317d4: C247 || CT.C247});
    }
  };
  (charts._PyramidDataLabelRendererState.new = function() {
    this.animationControllersList = null;
    this.animationController = null;
    this.dataLabelRepaintNotifier = null;
    charts._PyramidDataLabelRendererState.__proto__.new.call(this);
    ;
  }).prototype = charts._PyramidDataLabelRendererState.prototype;
  dart.addTypeTests(charts._PyramidDataLabelRendererState);
  dart.setMethodSignature(charts._PyramidDataLabelRendererState, () => ({
    __proto__: dart.getMethods(charts._PyramidDataLabelRendererState.__proto__),
    repaintDataLabelElements: dart.fnType(dart.void, []),
    render: dart.fnType(dart.void, []),
    build: dart.fnType(framework.Widget, [framework.BuildContext])
  }));
  dart.setLibraryUri(charts._PyramidDataLabelRendererState, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._PyramidDataLabelRendererState, () => ({
    __proto__: dart.getFields(charts._PyramidDataLabelRendererState.__proto__),
    animationControllersList: dart.fieldType(core.List$(animation_controller.AnimationController)),
    animationController: dart.fieldType(animation_controller.AnimationController),
    dataLabelRepaintNotifier: dart.fieldType(change_notifier.ValueNotifier$(core.int))
  }));
  charts._PyramidDataLabelPainter = class _PyramidDataLabelPainter extends custom_paint.CustomPainter {
    paint(canvas, size) {
      let series = this.pyramidChart.series;
      if (series.dataLabelSettings != null && dart.test(series.dataLabelSettings.isVisible)) {
        charts._renderPyramidDataLabel(series, canvas, this.pyramidChart, this.animation);
      }
    }
    shouldRepaint(oldDelegate) {
      charts._PyramidDataLabelPainter._check(oldDelegate);
      return true;
    }
  };
  (charts._PyramidDataLabelPainter.new = function(opts) {
    let pyramidChart = opts && 'pyramidChart' in opts ? opts.pyramidChart : null;
    let state = opts && 'state' in opts ? opts.state : null;
    let animationController = opts && 'animationController' in opts ? opts.animationController : null;
    let animation = opts && 'animation' in opts ? opts.animation : null;
    let notifier = opts && 'notifier' in opts ? opts.notifier : null;
    this.pyramidChart = pyramidChart;
    this.state = state;
    this.animationController = animationController;
    this.animation = animation;
    charts._PyramidDataLabelPainter.__proto__.new.call(this, {repaint: notifier});
    ;
  }).prototype = charts._PyramidDataLabelPainter.prototype;
  dart.addTypeTests(charts._PyramidDataLabelPainter);
  dart.setMethodSignature(charts._PyramidDataLabelPainter, () => ({
    __proto__: dart.getMethods(charts._PyramidDataLabelPainter.__proto__),
    paint: dart.fnType(dart.void, [ui.Canvas, ui.Size]),
    shouldRepaint: dart.fnType(core.bool, [core.Object])
  }));
  dart.setLibraryUri(charts._PyramidDataLabelPainter, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._PyramidDataLabelPainter, () => ({
    __proto__: dart.getFields(charts._PyramidDataLabelPainter.__proto__),
    pyramidChart: dart.finalFieldType(charts.SfPyramidChart),
    state: dart.finalFieldType(charts._PyramidDataLabelRendererState),
    animationController: dart.finalFieldType(animation_controller.AnimationController),
    animation: dart.finalFieldType(animation.Animation$(core.double))
  }));
  const _funnelplotArea = dart.privateName(charts, "_funnelplotArea");
  let C248;
  const title$1 = dart.privateName(charts, "SfFunnelChart.title");
  const backgroundColor$1 = dart.privateName(charts, "SfFunnelChart.backgroundColor");
  const borderColor$4 = dart.privateName(charts, "SfFunnelChart.borderColor");
  const borderWidth$4 = dart.privateName(charts, "SfFunnelChart.borderWidth");
  const series$1 = dart.privateName(charts, "SfFunnelChart.series");
  const margin$1 = dart.privateName(charts, "SfFunnelChart.margin");
  const legend$1 = dart.privateName(charts, "SfFunnelChart.legend");
  const palette$1 = dart.privateName(charts, "SfFunnelChart.palette");
  const tooltipBehavior$1 = dart.privateName(charts, "SfFunnelChart.tooltipBehavior");
  const onLegendItemRender$1 = dart.privateName(charts, "SfFunnelChart.onLegendItemRender");
  const onTooltipRender$1 = dart.privateName(charts, "SfFunnelChart.onTooltipRender");
  const onDataLabelRender$1 = dart.privateName(charts, "SfFunnelChart.onDataLabelRender");
  const onLegendTapped$1 = dart.privateName(charts, "SfFunnelChart.onLegendTapped");
  const smartLabelMode$0 = dart.privateName(charts, "SfFunnelChart.smartLabelMode");
  const selectionGesture$1 = dart.privateName(charts, "SfFunnelChart.selectionGesture");
  const enableMultiSelection$1 = dart.privateName(charts, "SfFunnelChart.enableMultiSelection");
  const backgroundImage$1 = dart.privateName(charts, "SfFunnelChart.backgroundImage");
  const onSelectionChanged$1 = dart.privateName(charts, "SfFunnelChart.onSelectionChanged");
  charts.SfFunnelChart = class SfFunnelChart extends framework.StatefulWidget {
    get title() {
      return this[title$1];
    }
    set title(value) {
      super.title = value;
    }
    get backgroundColor() {
      return this[backgroundColor$1];
    }
    set backgroundColor(value) {
      super.backgroundColor = value;
    }
    get borderColor() {
      return this[borderColor$4];
    }
    set borderColor(value) {
      super.borderColor = value;
    }
    get borderWidth() {
      return this[borderWidth$4];
    }
    set borderWidth(value) {
      super.borderWidth = value;
    }
    get series() {
      return this[series$1];
    }
    set series(value) {
      super.series = value;
    }
    get margin() {
      return this[margin$1];
    }
    set margin(value) {
      super.margin = value;
    }
    get legend() {
      return this[legend$1];
    }
    set legend(value) {
      super.legend = value;
    }
    get palette() {
      return this[palette$1];
    }
    set palette(value) {
      super.palette = value;
    }
    get tooltipBehavior() {
      return this[tooltipBehavior$1];
    }
    set tooltipBehavior(value) {
      super.tooltipBehavior = value;
    }
    get onLegendItemRender() {
      return this[onLegendItemRender$1];
    }
    set onLegendItemRender(value) {
      super.onLegendItemRender = value;
    }
    get onTooltipRender() {
      return this[onTooltipRender$1];
    }
    set onTooltipRender(value) {
      super.onTooltipRender = value;
    }
    get onDataLabelRender() {
      return this[onDataLabelRender$1];
    }
    set onDataLabelRender(value) {
      super.onDataLabelRender = value;
    }
    get onLegendTapped() {
      return this[onLegendTapped$1];
    }
    set onLegendTapped(value) {
      super.onLegendTapped = value;
    }
    get smartLabelMode() {
      return this[smartLabelMode$0];
    }
    set smartLabelMode(value) {
      super.smartLabelMode = value;
    }
    get selectionGesture() {
      return this[selectionGesture$1];
    }
    set selectionGesture(value) {
      super.selectionGesture = value;
    }
    get enableMultiSelection() {
      return this[enableMultiSelection$1];
    }
    set enableMultiSelection(value) {
      super.enableMultiSelection = value;
    }
    get backgroundImage() {
      return this[backgroundImage$1];
    }
    set backgroundImage(value) {
      super.backgroundImage = value;
    }
    get onSelectionChanged() {
      return this[onSelectionChanged$1];
    }
    set onSelectionChanged(value) {
      super.onSelectionChanged = value;
    }
    createState() {
      return new charts._SfFunnelChartState.new();
    }
  };
  (charts.SfFunnelChart.new = function(opts) {
    let t0, t0$, t0$0, t0$1, t0$2, t0$3, t0$4, t0$5;
    let key = opts && 'key' in opts ? opts.key : null;
    let backgroundColor = opts && 'backgroundColor' in opts ? opts.backgroundColor : null;
    let backgroundImage = opts && 'backgroundImage' in opts ? opts.backgroundImage : null;
    let borderColor = opts && 'borderColor' in opts ? opts.borderColor : C0 || CT.C0;
    let borderWidth = opts && 'borderWidth' in opts ? opts.borderWidth : 0;
    let onLegendItemRender = opts && 'onLegendItemRender' in opts ? opts.onLegendItemRender : null;
    let onTooltipRender = opts && 'onTooltipRender' in opts ? opts.onTooltipRender : null;
    let onDataLabelRender = opts && 'onDataLabelRender' in opts ? opts.onDataLabelRender : null;
    let onLegendTapped = opts && 'onLegendTapped' in opts ? opts.onLegendTapped : null;
    let onSelectionChanged = opts && 'onSelectionChanged' in opts ? opts.onSelectionChanged : null;
    let title = opts && 'title' in opts ? opts.title : null;
    let series = opts && 'series' in opts ? opts.series : null;
    let margin = opts && 'margin' in opts ? opts.margin : null;
    let legend = opts && 'legend' in opts ? opts.legend : null;
    let palette = opts && 'palette' in opts ? opts.palette : C1 || CT.C1;
    let tooltipBehavior = opts && 'tooltipBehavior' in opts ? opts.tooltipBehavior : null;
    let smartLabelMode = opts && 'smartLabelMode' in opts ? opts.smartLabelMode : null;
    let selectionGesture = opts && 'selectionGesture' in opts ? opts.selectionGesture : null;
    let enableMultiSelection = opts && 'enableMultiSelection' in opts ? opts.enableMultiSelection : null;
    let $36creationLocationd_0dea112b090073317d4 = opts && '$creationLocationd_0dea112b090073317d4' in opts ? opts.$creationLocationd_0dea112b090073317d4 : null;
    this[_seriesType$] = null;
    this[_dataPoints$] = null;
    this[_renderPoints] = null;
    this[_chartSeries] = null;
    this[_chartState] = null;
    this[_chartLegend] = null;
    this[_funnelplotArea] = null;
    this[backgroundColor$1] = backgroundColor;
    this[backgroundImage$1] = backgroundImage;
    this[borderColor$4] = borderColor;
    this[borderWidth$4] = borderWidth;
    this[onLegendItemRender$1] = onLegendItemRender;
    this[onTooltipRender$1] = onTooltipRender;
    this[onDataLabelRender$1] = onDataLabelRender;
    this[onLegendTapped$1] = onLegendTapped;
    this[onSelectionChanged$1] = onSelectionChanged;
    this[palette$1] = palette;
    this[title$1] = (t0 = title, t0 == null ? new charts.ChartTitle.new() : t0);
    this[series$1] = (t0$ = series, t0$ == null ? new charts.FunnelSeries.new() : t0$);
    this[margin$1] = (t0$0 = margin, t0$0 == null ? C12 || CT.C12 : t0$0);
    this[legend$1] = (t0$1 = legend, t0$1 == null ? new charts.Legend.new() : t0$1);
    this[tooltipBehavior$1] = (t0$2 = tooltipBehavior, t0$2 == null ? new charts.TooltipBehavior.new() : t0$2);
    this[smartLabelMode$0] = (t0$3 = smartLabelMode, t0$3 == null ? charts.SmartLabelMode.hide : t0$3);
    this[selectionGesture$1] = (t0$4 = selectionGesture, t0$4 == null ? charts.ActivationMode.singleTap : t0$4);
    this[enableMultiSelection$1] = (t0$5 = enableMultiSelection, t0$5 == null ? false : t0$5);
    charts.SfFunnelChart.__proto__.new.call(this, {key: key, $creationLocationd_0dea112b090073317d4: $36creationLocationd_0dea112b090073317d4});
    this[_chartSeries] = new charts._FunnelSeries.new();
    this[_chartLegend] = new charts._ChartLegend.new();
    this[_funnelplotArea] = new charts._FunnelPlotArea.new({$creationLocationd_0dea112b090073317d4: C248 || CT.C248});
  }).prototype = charts.SfFunnelChart.prototype;
  dart.addTypeTests(charts.SfFunnelChart);
  dart.setMethodSignature(charts.SfFunnelChart, () => ({
    __proto__: dart.getMethods(charts.SfFunnelChart.__proto__),
    createState: dart.fnType(framework.State$(framework.StatefulWidget), [])
  }));
  dart.setLibraryUri(charts.SfFunnelChart, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.SfFunnelChart, () => ({
    __proto__: dart.getFields(charts.SfFunnelChart.__proto__),
    title: dart.finalFieldType(charts.ChartTitle),
    backgroundColor: dart.finalFieldType(ui.Color),
    borderColor: dart.finalFieldType(ui.Color),
    borderWidth: dart.finalFieldType(core.double),
    series: dart.finalFieldType(charts.FunnelSeries),
    margin: dart.finalFieldType(edge_insets.EdgeInsets),
    legend: dart.finalFieldType(charts.Legend),
    palette: dart.finalFieldType(core.List$(ui.Color)),
    tooltipBehavior: dart.finalFieldType(charts.TooltipBehavior),
    onLegendItemRender: dart.finalFieldType(dart.fnType(dart.void, [charts.LegendRenderArgs])),
    onTooltipRender: dart.finalFieldType(dart.fnType(dart.void, [charts.TooltipArgs])),
    onDataLabelRender: dart.finalFieldType(dart.fnType(dart.void, [charts.DataLabelRenderArgs])),
    onLegendTapped: dart.finalFieldType(dart.fnType(dart.void, [charts.LegendTapArgs])),
    smartLabelMode: dart.finalFieldType(charts.SmartLabelMode),
    selectionGesture: dart.finalFieldType(charts.ActivationMode),
    enableMultiSelection: dart.finalFieldType(core.bool),
    backgroundImage: dart.finalFieldType(image_provider.ImageProvider),
    onSelectionChanged: dart.finalFieldType(dart.fnType(dart.void, [charts.SelectionArgs])),
    [_seriesType$]: dart.fieldType(core.String),
    [_dataPoints$]: dart.fieldType(core.List$(charts.PointInfo)),
    [_renderPoints]: dart.fieldType(core.List$(charts.PointInfo)),
    [_chartSeries]: dart.fieldType(charts._FunnelSeries),
    [_chartState]: dart.fieldType(charts._SfFunnelChartState),
    [_chartLegend]: dart.fieldType(charts._ChartLegend),
    [_funnelplotArea]: dart.fieldType(charts._FunnelPlotArea)
  }));
  let C251;
  let C250;
  let C249;
  let C254;
  let C255;
  let C253;
  let C252;
  let C258;
  let C257;
  let C256;
  let C261;
  let C260;
  let C259;
  let C264;
  let C263;
  let C262;
  let C267;
  let C266;
  let C265;
  let C270;
  let C269;
  let C268;
  let C271;
  let C274;
  let C273;
  let C272;
  let C277;
  let C276;
  let C275;
  const State_TickerProviderStateMixin$36$0 = class State_TickerProviderStateMixin extends framework.State$(charts.SfFunnelChart) {};
  (State_TickerProviderStateMixin$36$0.new = function() {
    ticker_provider.TickerProviderStateMixin$(charts.SfFunnelChart)[dart.mixinNew].call(this);
    State_TickerProviderStateMixin$36$0.__proto__.new.call(this);
  }).prototype = State_TickerProviderStateMixin$36$0.prototype;
  dart.applyMixin(State_TickerProviderStateMixin$36$0, ticker_provider.TickerProviderStateMixin$(charts.SfFunnelChart));
  charts._SfFunnelChartState = class _SfFunnelChartState extends State_TickerProviderStateMixin$36$0 {
    initState() {
      this[_initializeDefaultValues]();
      super.initState();
    }
    [_initializeDefaultValues]() {
      let t0;
      this.initialRender = true;
      this.controllerList = JSArrayOfAnimationController().of([]);
      this.annotationController = new animation_controller.AnimationController.new({vsync: this});
      this.seriesRepaintNotifier = new (ValueNotifierOfint()).new(0);
      this.legendToggleStates = JSArrayOf_LegendRenderContext().of([]);
      this.legendToggleTemplateStates = JSArrayOf_MeasureWidgetContext().of([]);
      this.explodedPoints = JSArrayOfint().of([]);
      this.animateCompleted = true;
      this[_isLegendToggled] = false;
      this.widgetNeedUpdate = false;
      this.dataLabelTemplateRegions = JSArrayOfRect().of([]);
      this.selectionData = JSArrayOfint().of([]);
      this.legendWidgetContext = JSArrayOf_MeasureWidgetContext().of([]);
      this.animationController = (t0 = new animation_controller.AnimationController.new({vsync: this}), t0.addListener(dart.bind(this, 'repaintChartElements')), t0);
    }
    didChangeDependencies() {
      this[_chartTheme] = charts_theme.SfChartTheme.of(this.context);
      super.didChangeDependencies();
    }
    didUpdateWidget(oldWidget) {
      charts.SfFunnelChart._check(oldWidget);
      super.didUpdateWidget(oldWidget);
      this[_isLegendToggled] = false;
      this.widgetNeedUpdate = true;
    }
    dispose() {
      if (this.animationController != null) {
        this.animationController.removeListener(dart.bind(this, 'repaintChartElements'));
        this.animationController.dispose();
        this.animationController = null;
      }
      super.dispose();
    }
    repaintChartElements() {
      let t0;
      t0 = this.seriesRepaintNotifier;
      t0.value = dart.notNull(t0.value) + 1;
    }
    build(context) {
      core$.SyncfusionLicense.validateLicense(context);
      this.widget[_chartState] = this;
      return new container.Container.new({child: new gesture_detector.GestureDetector.new({child: new container.Container.new({decoration: new box_decoration.BoxDecoration.new({color: this.widget.backgroundColor, image: this.widget.backgroundImage != null ? new decoration_image.DecorationImage.new({image: this.widget.backgroundImage, fit: box_fit.BoxFit.fill}) : null, border: box_border.Border.all({color: this.widget.borderColor, width: this.widget.borderWidth})}), child: new basic.Column.new({children: JSArrayOfWidget().of([charts._renderChartTitle(this.widget), this[_renderChartElements]()]), $creationLocationd_0dea112b090073317d4: C249 || CT.C249}), $creationLocationd_0dea112b090073317d4: C252 || CT.C252}), $creationLocationd_0dea112b090073317d4: C256 || CT.C256}), $creationLocationd_0dea112b090073317d4: C259 || CT.C259});
    }
    [_renderChartElements]() {
      return new basic.Expanded.new({child: new layout_builder.LayoutBuilder.new({builder: dart.fn((context, constraints) => {
            let element = null;
            if (this.widget.series.dataSource != null) {
              this[_initialize](constraints);
              this.widget[_chartSeries][_findVisibleSeries]();
              this.widget[_chartSeries][_processDataPoints]();
              let legendTemplates = charts._bindLegendTemplateWidgets(this.widget);
              if (dart.test(legendTemplates[$isNotEmpty]) && dart.test(this.legendWidgetContext[$isEmpty])) {
                element = new container.Container.new({child: new basic.Stack.new({children: legendTemplates, $creationLocationd_0dea112b090073317d4: C262 || CT.C262}), $creationLocationd_0dea112b090073317d4: C265 || CT.C265});
                binding.SchedulerBinding.instance.addPostFrameCallback(dart.fn(_ => this[_refresh](), DurationTovoid()));
              } else {
                this.widget[_chartLegend][_calculateLegendBounds](this.widget[_chartLegend].chartSize);
                element = charts._getElements(this.widget, new charts._FunnelPlotArea.new({chart: this.widget, $creationLocationd_0dea112b090073317d4: C268 || CT.C268}), constraints);
              }
            } else {
              element = new container.Container.new({$creationLocationd_0dea112b090073317d4: C271 || CT.C271});
            }
            return element;
          }, BuildContextAndBoxConstraintsToWidget()), $creationLocationd_0dea112b090073317d4: C272 || CT.C272}), $creationLocationd_0dea112b090073317d4: C275 || CT.C275});
    }
    [_refresh]() {
      if (dart.test(this.widget[_chartState].legendWidgetContext[$isNotEmpty])) {
        for (let i = 0; i < dart.notNull(this.widget[_chartState].legendWidgetContext[$length]); i = i + 1) {
          let templateContext = this.widget[_chartState].legendWidgetContext[$_get](i);
          let renderBox = box.RenderBox._check(templateContext.context.findRenderObject());
          templateContext.size = renderBox.size;
        }
        this.setState(dart.fn(() => {
        }, VoidToNull()));
      }
    }
    [_redraw]() {
      this.widget[_chartState].initialRender = false;
      this.setState(dart.fn(() => {
      }, VoidToNull()));
    }
    [_initialize](constraints) {
      this.widget[_chartLegend].chart = this.widget;
      this.widget[_chartSeries].chart = this.widget;
      this.widget[_chartState][_chartWidgets] = JSArrayOfWidget().of([]);
      let width = constraints.maxWidth;
      let height = constraints.maxHeight;
      let margin = this.widget.margin;
      if (dart.equals(this.widget.legend.position, charts.LegendPosition.auto)) {
        this.widget.legend.legendPosition = dart.dtest(dart.dsend(height, '>', [width])) ? charts.LegendPosition.bottom : charts.LegendPosition.right;
      } else {
        this.widget.legend.legendPosition = this.widget.legend.position;
      }
      this.widget[_chartLegend].chartSize = new ui.Size.new(core.double._check(dart.dsend(dart.dsend(width, '-', [margin.left]), '-', [margin.right])), core.double._check(dart.dsend(dart.dsend(height, '-', [margin.top]), '-', [margin.bottom])));
    }
  };
  (charts._SfFunnelChartState.new = function() {
    this.controllerList = null;
    this.animationController = null;
    this.annotationController = null;
    this.seriesRepaintNotifier = null;
    this.legendWidgetContext = null;
    this.templates = null;
    this[_chartWidgets] = null;
    this[_chartTheme] = null;
    this.chartContainerRect = null;
    this.chartAreaRect = null;
    this[_chartTemplate] = null;
    this.currentActive = null;
    this.initialRender = null;
    this.legendToggleStates = null;
    this.legendToggleTemplateStates = null;
    this[_isLegendToggled] = null;
    this[_tapPosition] = null;
    this.animateCompleted = null;
    this.chartElementAnimation = null;
    this.renderDataLabel = null;
    this.widgetNeedUpdate = null;
    this.explodedPoints = null;
    this.dataLabelTemplateRegions = null;
    this.selectionData = null;
    this[_tooltipPointIndex] = null;
    charts._SfFunnelChartState.__proto__.new.call(this);
    ;
  }).prototype = charts._SfFunnelChartState.prototype;
  dart.addTypeTests(charts._SfFunnelChartState);
  dart.setMethodSignature(charts._SfFunnelChartState, () => ({
    __proto__: dart.getMethods(charts._SfFunnelChartState.__proto__),
    [_initializeDefaultValues]: dart.fnType(dart.void, []),
    repaintChartElements: dart.fnType(dart.void, []),
    build: dart.fnType(framework.Widget, [framework.BuildContext]),
    [_renderChartElements]: dart.fnType(framework.Widget, []),
    [_refresh]: dart.fnType(dart.void, []),
    [_redraw]: dart.fnType(dart.void, []),
    [_initialize]: dart.fnType(dart.void, [box.BoxConstraints])
  }));
  dart.setLibraryUri(charts._SfFunnelChartState, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._SfFunnelChartState, () => ({
    __proto__: dart.getFields(charts._SfFunnelChartState.__proto__),
    controllerList: dart.fieldType(core.List$(animation_controller.AnimationController)),
    animationController: dart.fieldType(animation_controller.AnimationController),
    annotationController: dart.fieldType(animation_controller.AnimationController),
    seriesRepaintNotifier: dart.fieldType(change_notifier.ValueNotifier$(core.int)),
    legendWidgetContext: dart.fieldType(core.List$(charts._MeasureWidgetContext)),
    templates: dart.fieldType(core.List$(charts._ChartTemplateInfo)),
    [_chartWidgets]: dart.fieldType(core.List$(framework.Widget)),
    [_chartTheme]: dart.fieldType(charts_theme.SfChartThemeData),
    chartContainerRect: dart.fieldType(ui.Rect),
    chartAreaRect: dart.fieldType(ui.Rect),
    [_chartTemplate]: dart.fieldType(charts._ChartTemplate),
    currentActive: dart.fieldType(charts._ChartInteraction),
    initialRender: dart.fieldType(core.bool),
    legendToggleStates: dart.fieldType(core.List$(charts._LegendRenderContext)),
    legendToggleTemplateStates: dart.fieldType(core.List$(charts._MeasureWidgetContext)),
    [_isLegendToggled]: dart.fieldType(core.bool),
    [_tapPosition]: dart.fieldType(ui.Offset),
    animateCompleted: dart.fieldType(core.bool),
    chartElementAnimation: dart.fieldType(animation.Animation$(core.double)),
    renderDataLabel: dart.fieldType(charts._FunnelDataLabelRenderer),
    widgetNeedUpdate: dart.fieldType(core.bool),
    explodedPoints: dart.fieldType(core.List$(core.int)),
    dataLabelTemplateRegions: dart.fieldType(core.List$(ui.Rect)),
    selectionData: dart.fieldType(core.List$(core.int)),
    [_tooltipPointIndex]: dart.fieldType(core.int)
  }));
  let C280;
  let C281;
  let C282;
  let C279;
  let C278;
  let C285;
  let C286;
  let C287;
  let C284;
  let C283;
  let C290;
  let C291;
  let C289;
  let C288;
  let C294;
  let C295;
  let C296;
  let C293;
  let C292;
  let C299;
  let C300;
  let C301;
  let C298;
  let C297;
  let C304;
  let C303;
  let C302;
  let C307;
  let C306;
  let C305;
  let C310;
  let C309;
  let C308;
  let C313;
  let C314;
  let C312;
  let C311;
  let C317;
  let C316;
  let C315;
  let C320;
  let C319;
  let C318;
  let C323;
  let C322;
  let C321;
  const _calculateFunnelPathRegion = dart.privateName(charts, "_calculateFunnelPathRegion");
  let C326;
  let C325;
  let C324;
  let C329;
  let C328;
  let C327;
  let C332;
  let C333;
  let C331;
  let C330;
  let C336;
  let C337;
  let C335;
  let C334;
  let C340;
  let C339;
  let C338;
  charts._FunnelPlotArea = class _FunnelPlotArea extends framework.StatelessWidget {
    build(context) {
      return new layout_builder.LayoutBuilder.new({builder: dart.fn((context, constraints) => new container.Container.new({child: new basic.Stack.new({children: JSArrayOfWidget().of([this[_initializeChart](constraints, context), new basic.MouseRegion.new({child: new container.Container.new({height: constraints.maxHeight, width: constraints.maxWidth, decoration: C43 || CT.C43, $creationLocationd_0dea112b090073317d4: C278 || CT.C278}), onHover: dart.fn(event => this[_onHover](event), PointerEventTovoid()), onExit: dart.fn(event => {
                  this.chart.tooltipBehavior[_isHovering] = false;
                }, PointerEventToNull()), $creationLocationd_0dea112b090073317d4: C283 || CT.C283}), new basic.Listener.new({onPointerUp: dart.fn(event => this[_onTapUp](event), PointerUpEventTovoid()), onPointerDown: dart.fn(event => this[_onTapDown](event), PointerDownEventTovoid()), child: new gesture_detector.GestureDetector.new({onLongPress: dart.bind(this, _onLongPress), onDoubleTap: dart.bind(this, _onDoubleTap), child: new container.Container.new({decoration: C43 || CT.C43, child: this[_initializeChart](constraints, context), $creationLocationd_0dea112b090073317d4: C288 || CT.C288}), $creationLocationd_0dea112b090073317d4: C292 || CT.C292}), $creationLocationd_0dea112b090073317d4: C297 || CT.C297})]), $creationLocationd_0dea112b090073317d4: C302 || CT.C302}), $creationLocationd_0dea112b090073317d4: C305 || CT.C305}), BuildContextAndBoxConstraintsToContainer()), $creationLocationd_0dea112b090073317d4: C308 || CT.C308});
    }
    [_initializeChart](constraints, context) {
      this[_calculateSize](constraints);
      return new gesture_detector.GestureDetector.new({child: new container.Container.new({decoration: C43 || CT.C43, child: this[_renderWidgets](constraints, context), $creationLocationd_0dea112b090073317d4: C311 || CT.C311}), $creationLocationd_0dea112b090073317d4: C315 || CT.C315});
    }
    [_calculateSize](constraints) {
      let width = constraints.maxWidth;
      let height = constraints.maxHeight;
      this.chart[_chartState].chartContainerRect = new ui.Rect.fromLTWH(0.0, 0.0, core.double._check(width), core.double._check(height));
      let margin = this.chart.margin;
      this.chart[_chartState].chartAreaRect = new ui.Rect.fromLTWH(margin.left, margin.top, core.double._check(dart.dsend(dart.dsend(width, '-', [margin.right]), '-', [margin.left])), core.double._check(dart.dsend(dart.dsend(height, '-', [margin.top]), '-', [margin.bottom])));
    }
    [_renderWidgets](constraints, context) {
      this[_bindSeriesWidgets]();
      this[_calculatePathRegion]();
      charts._findTemplates(this.chart);
      charts._renderTemplates(this.chart);
      this[_bindTooltipWidgets](constraints);
      this.renderBox = box.RenderBox._check(context.findRenderObject());
      this.chart[_funnelplotArea] = this;
      return new container.Container.new({child: new basic.Stack.new({children: this.chart[_chartState][_chartWidgets], $creationLocationd_0dea112b090073317d4: C318 || CT.C318}), $creationLocationd_0dea112b090073317d4: C321 || CT.C321});
    }
    [_calculatePathRegion]() {
      if (dart.test(this.chart[_chartSeries].visibleSeries[$isNotEmpty])) {
        let series = charts.FunnelSeries._check(this.chart[_chartSeries].visibleSeries[$_get](0));
        for (let i = 0; i < dart.notNull(series[_renderPoints][$length]); i = i + 1) {
          if (dart.test(series[_renderPoints][$_get](i).isVisible)) {
            this.chart[_chartSeries][_calculateFunnelPathRegion](i);
          }
        }
      }
    }
    [_bindSeriesWidgets]() {
      let t0;
      let seriesPainter = null;
      let seriesAnimation = null;
      for (let i = 0; i < dart.notNull(this.chart[_chartSeries].visibleSeries[$length]); i = i + 1) {
        this.series = charts.FunnelSeries._check(this.chart[_chartSeries].visibleSeries[$_get](i));
        this.chart[_chartSeries][_initializeSeriesProperties](this.series);
        if (this.series.selectionSettings != null) {
          if (dart.test(this.series.initialSelectedDataIndexes[$isNotEmpty])) {
            for (let index = 0; index < dart.notNull(this.series.initialSelectedDataIndexes[$length]); index = index + 1) {
              this.chart[_chartState].selectionData[$add](this.series.initialSelectedDataIndexes[$_get](index));
            }
          }
        }
        if (dart.notNull(this.series.animationDuration) > 0 && (dart.test(this.chart[_chartState].initialRender) || dart.test(this.chart[_chartState].widgetNeedUpdate) || dart.test(this.chart[_chartState][_isLegendToggled]))) {
          this.chart[_chartState].animationController.duration = new core.Duration.new({milliseconds: this.series.animationDuration[$toInt]()});
          seriesAnimation = new (TweenOfdouble()).new({begin: 0.0, end: 1.0}).animate((t0 = new animations.CurvedAnimation.new({parent: this.chart[_chartState].animationController, curve: C106 || CT.C106}), t0.addStatusListener(dart.fn(status => {
            if (dart.equals(status, animation.AnimationStatus.completed)) {
              this.chart[_chartState].animateCompleted = true;
              if (this.chart[_chartState].renderDataLabel != null) {
                this.chart[_chartState].renderDataLabel.state.render();
              }
              if (this.chart[_chartState][_chartTemplate] != null && this.chart[_chartState][_chartTemplate].state != null) {
                this.chart[_chartState][_chartTemplate].state.templateRender();
              }
            }
          }, AnimationStatusToNull())), t0));
          this.chart[_chartState].chartElementAnimation = new (TweenOfdouble()).new({begin: 0.0, end: 1.0}).animate(new animations.CurvedAnimation.new({parent: this.chart[_chartState].animationController, curve: C108 || CT.C108}));
          this.chart[_chartState].animationController.forward({from: 0.0});
        } else {
          this.chart[_chartState].animateCompleted = true;
        }
        seriesPainter = new charts._FunnelChartPainter.new({chart: this.chart, seriesIndex: i, isRepaint: this.series[_needsRepaint], animationController: this.chart[_chartState].animationController, seriesAnimation: seriesAnimation, notifier: this.chart[_chartState].seriesRepaintNotifier});
        this.chart[_chartState][_chartWidgets][$add](new basic.RepaintBoundary.new({child: new basic.CustomPaint.new({painter: seriesPainter, $creationLocationd_0dea112b090073317d4: C324 || CT.C324}), $creationLocationd_0dea112b090073317d4: C327 || CT.C327}));
        this.chart[_chartState].renderDataLabel = new charts._FunnelDataLabelRenderer.new({funnelChart: this.chart, show: dart.notNull(this.series.animationDuration) > 0 ? false : this.chart[_chartState].animateCompleted, $creationLocationd_0dea112b090073317d4: C330 || CT.C330});
        this.chart[_chartState][_chartWidgets][$add](this.chart[_chartState].renderDataLabel);
      }
    }
    [_bindTooltipWidgets](constraints) {
      if (dart.test(this.chart.tooltipBehavior.enable)) {
        if (this.chart.tooltipBehavior.builder != null) {
          this.chart.tooltipBehavior[_tooltipTemplate] = new charts._TooltipTemplate.new({show: false, clipRect: this.chart[_chartState].chartContainerRect, $creationLocationd_0dea112b090073317d4: C334 || CT.C334});
          this.chart[_chartState][_chartWidgets][$add](this.chart.tooltipBehavior[_tooltipTemplate]);
        } else {
          this.chart.tooltipBehavior.chartTooltip = new charts._ChartTooltipRenderer.new({chartWidget: this.chart, $creationLocationd_0dea112b090073317d4: C338 || CT.C338});
          this.chart[_chartState][_chartWidgets][$add](this.chart.tooltipBehavior.chartTooltip);
        }
      }
    }
    [_onTapDown](event) {
      let t0, t0$, t0$0, t0$1, t0$2;
      this.chart.tooltipBehavior[_isHovering] = false;
      this.chart[_chartState].currentActive = null;
      this.chart[_chartState][_tapPosition] = this.renderBox.globalToLocal(event.position);
      let isPoint = null;
      let pointIndex = null;
      let series = charts.FunnelSeries._check(this.chart[_chartSeries].visibleSeries[$_get](dart.asInt(0)));
      for (let j = 0; j < dart.notNull(series[_renderPoints][$length]); j = j + 1) {
        if (dart.test(series[_renderPoints][$_get](j).isVisible)) {
          isPoint = charts._isPointInPolygon(series[_renderPoints][$_get](j).pathRegion, this.chart[_chartState][_tapPosition]);
          if (dart.test(isPoint)) {
            pointIndex = j;
            break;
          }
        }
      }
      this.doubleTapPosition = this.chart[_chartState][_tapPosition];
      if (this.chart[_chartState][_tapPosition] != null && isPoint != null && dart.test(isPoint)) {
        this.chart[_chartState].currentActive = new charts._ChartInteraction.new(dart.asInt(0), dart.asInt(pointIndex), this.chart[_chartSeries].visibleSeries[$_get](dart.asInt(0)), this.chart[_chartSeries].visibleSeries[$_get](dart.asInt(0))[_renderPoints][$_get](dart.asInt(pointIndex)));
      } else {
        t0$ = (t0 = this.chart.tooltipBehavior, t0 == null ? null : t0[_tooltipTemplate]);
        t0$ == null ? null : t0$.show = false;
        t0$2 = (t0$1 = (t0$0 = this.chart.tooltipBehavior, t0$0 == null ? null : t0$0[_tooltipTemplate]), t0$1 == null ? null : t0$1.state);
        t0$2 == null ? null : t0$2[_performTooltip]();
      }
    }
    [_onDoubleTap]() {
      if (this.doubleTapPosition != null && this.chart[_chartState].currentActive != null) {
        let pointIndex = this.chart[_chartState].currentActive.pointIndex;
        this.chart[_chartState].currentActive = new charts._ChartInteraction.new(dart.asInt(0), dart.asInt(pointIndex), this.chart[_chartSeries].visibleSeries[$_get](dart.asInt(0)), this.chart[_chartSeries].visibleSeries[$_get](dart.asInt(0))[_renderPoints][$_get](dart.asInt(pointIndex)));
        if (this.chart[_chartState].currentActive != null) {
          if (dart.equals(dart.dload(this.chart[_chartState].currentActive.series, 'explodeGesture'), charts.ActivationMode.doubleTap)) {
            this.chart[_chartSeries][_pointExplode](pointIndex);
          }
        }
        this.chart[_chartSeries][_seriesPointSelection](pointIndex, charts.ActivationMode.doubleTap);
        if (dart.test(this.chart.tooltipBehavior.enable) && dart.equals(this.chart.tooltipBehavior.activationMode, charts.ActivationMode.doubleTap)) {
          this.chart.tooltipBehavior.onDoubleTap(this.doubleTapPosition.dx[$toDouble](), this.doubleTapPosition.dy[$toDouble]());
        }
      }
    }
    [_onLongPress]() {
      if (this.chart[_chartState][_tapPosition] != null && this.chart[_chartState].currentActive != null) {
        let pointIndex = this.chart[_chartState].currentActive.pointIndex;
        this.chart[_chartState].currentActive = new charts._ChartInteraction.new(dart.asInt(0), dart.asInt(pointIndex), this.chart[_chartSeries].visibleSeries[$_get](dart.asInt(0)), this.chart[_chartSeries].visibleSeries[$_get](dart.asInt(0))[_renderPoints][$_get](dart.asInt(pointIndex)), this.pointRegion);
        this.chart[_chartSeries][_seriesPointSelection](pointIndex, charts.ActivationMode.longPress);
        if (this.chart[_chartState].currentActive != null) {
          if (dart.equals(dart.dload(this.chart[_chartState].currentActive.series, 'explodeGesture'), charts.ActivationMode.longPress)) {
            this.chart[_chartSeries][_pointExplode](pointIndex);
          }
        }
        if (dart.test(this.chart.tooltipBehavior.enable) && dart.equals(this.chart.tooltipBehavior.activationMode, charts.ActivationMode.longPress)) {
          this.chart.tooltipBehavior.onLongPress(this.chart[_chartState][_tapPosition].dx[$toDouble](), this.chart[_chartState][_tapPosition].dy[$toDouble]());
        }
      }
    }
    [_onTapUp](event) {
      let t0, t0$;
      this.chart.tooltipBehavior[_isHovering] = false;
      this.chart[_chartState][_tapPosition] = this.renderBox.globalToLocal(event.position);
      if (this.chart[_chartState][_tapPosition] != null) {
        if (this.chart[_chartState].currentActive != null && this.chart[_chartState].currentActive.series != null && dart.equals(dart.dload(this.chart[_chartState].currentActive.series, 'explodeGesture'), charts.ActivationMode.singleTap)) {
          this.chart[_chartSeries][_pointExplode](this.chart[_chartState].currentActive.pointIndex);
        }
        if (this.chart[_chartState][_tapPosition] != null && this.chart[_chartState].currentActive != null) {
          this.chart[_chartSeries][_seriesPointSelection](this.chart[_chartState].currentActive.pointIndex, charts.ActivationMode.singleTap);
        }
        if (dart.test(this.chart.tooltipBehavior.enable) && dart.equals(this.chart.tooltipBehavior.activationMode, charts.ActivationMode.singleTap) && this.chart[_chartState].currentActive != null && this.chart[_chartState].currentActive.series != null) {
          if (this.chart.tooltipBehavior.builder != null) {
            let chartSeries = charts.FunnelSeries._check(this.chart[_chartState].currentActive.series);
            let point = charts.PointInfo._check(this.chart[_chartState].currentActive.point);
            let location = point.symbolLocation;
            this.chart.tooltipBehavior[_tooltipTemplate].rect = new ui.Rect.fromLTWH(location.dx, location.dy, 0.0, 0.0);
            this.chart.tooltipBehavior[_tooltipTemplate].template = this.chart.tooltipBehavior.builder(chartSeries.dataSource[$_get](this.chart[_chartState].currentActive.pointIndex), point, chartSeries, this.chart[_chartState].currentActive.seriesIndex, this.chart[_chartState].currentActive.pointIndex);
            this.chart.tooltipBehavior[_tooltipTemplate].show = true;
            t0$ = (t0 = this.chart.tooltipBehavior[_tooltipTemplate], t0 == null ? null : t0.state);
            t0$ == null ? null : t0$[_performTooltip]();
          } else {
            let position = this.renderBox.globalToLocal(event.position);
            this.chart.tooltipBehavior.onTouchUp(position.dx[$toDouble](), position.dy[$toDouble]());
          }
        }
      }
      this.chart[_chartState][_tapPosition] = null;
    }
    [_onHover](event) {
      let t0, t0$, t0$0, t0$1, t0$2, t0$3, t0$4, t0$5, t0$6, t0$7, t0$8, t0$9, t0$10, t0$11;
      this.chart[_chartState].currentActive = null;
      this.chart[_chartState][_tapPosition] = this.renderBox.globalToLocal(event.position);
      let isPoint = null;
      let pointIndex = null;
      let series = charts.FunnelSeries._check(this.chart[_chartSeries].visibleSeries[$_get](dart.asInt(0)));
      for (let j = 0; j < dart.notNull(series[_renderPoints][$length]); j = j + 1) {
        if (dart.test(series[_renderPoints][$_get](j).isVisible)) {
          isPoint = charts._isPointInPolygon(series[_renderPoints][$_get](j).pathRegion, this.chart[_chartState][_tapPosition]);
          if (dart.test(isPoint)) {
            pointIndex = j;
            break;
          }
        }
      }
      if (this.chart[_chartState][_tapPosition] != null && dart.test(isPoint)) {
        this.chart[_chartState].currentActive = new charts._ChartInteraction.new(dart.asInt(0), dart.asInt(pointIndex), this.chart[_chartSeries].visibleSeries[$_get](dart.asInt(0)), this.chart[_chartSeries].visibleSeries[$_get](dart.asInt(0))[_renderPoints][$_get](dart.asInt(pointIndex)));
      } else {
        t0$ = (t0 = this.chart.tooltipBehavior, t0 == null ? null : t0[_tooltipTemplate]);
        t0$ == null ? null : t0$.show = false;
        t0$2 = (t0$1 = (t0$0 = this.chart.tooltipBehavior, t0$0 == null ? null : t0$0[_tooltipTemplate]), t0$1 == null ? null : t0$1.state);
        t0$2 == null ? null : t0$2[_performTooltip]();
      }
      if (this.chart[_chartState][_tapPosition] != null) {
        if (dart.test(this.chart.tooltipBehavior.enable) && this.chart[_chartState].currentActive != null && this.chart[_chartState].currentActive.series != null) {
          this.chart.tooltipBehavior[_isHovering] = true;
          let position = this.renderBox.globalToLocal(event.position);
          this.chart.tooltipBehavior.onEnter(position.dx[$toDouble](), position.dy[$toDouble]());
        } else {
          t0$5 = (t0$4 = (t0$3 = this.chart, t0$3 == null ? null : t0$3.tooltipBehavior), t0$4 == null ? null : t0$4[_painter]);
          t0$5 == null ? null : t0$5.prevTooltipValue = null;
          t0$8 = (t0$7 = (t0$6 = this.chart, t0$6 == null ? null : t0$6.tooltipBehavior), t0$7 == null ? null : t0$7[_painter]);
          t0$8 == null ? null : t0$8.currentTooltipValue = null;
          t0$11 = (t0$10 = (t0$9 = this.chart, t0$9 == null ? null : t0$9.tooltipBehavior), t0$10 == null ? null : t0$10[_painter]);
          t0$11 == null ? null : t0$11.hide();
        }
      }
      this.chart[_chartState][_tapPosition] = null;
    }
  };
  (charts._FunnelPlotArea.new = function(opts) {
    let chart = opts && 'chart' in opts ? opts.chart : null;
    let $36creationLocationd_0dea112b090073317d4 = opts && '$creationLocationd_0dea112b090073317d4' in opts ? opts.$creationLocationd_0dea112b090073317d4 : null;
    this.series = null;
    this.renderBox = null;
    this.pointRegion = null;
    this.tapDownDetails = null;
    this.doubleTapPosition = null;
    this.chart = chart;
    charts._FunnelPlotArea.__proto__.new.call(this, {$creationLocationd_0dea112b090073317d4: $36creationLocationd_0dea112b090073317d4});
    ;
  }).prototype = charts._FunnelPlotArea.prototype;
  dart.addTypeTests(charts._FunnelPlotArea);
  dart.setMethodSignature(charts._FunnelPlotArea, () => ({
    __proto__: dart.getMethods(charts._FunnelPlotArea.__proto__),
    build: dart.fnType(framework.Widget, [framework.BuildContext]),
    [_initializeChart]: dart.fnType(framework.Widget, [box.BoxConstraints, framework.BuildContext]),
    [_calculateSize]: dart.fnType(dart.void, [box.BoxConstraints]),
    [_renderWidgets]: dart.fnType(framework.Widget, [box.BoxConstraints, framework.BuildContext]),
    [_calculatePathRegion]: dart.fnType(dart.void, []),
    [_bindSeriesWidgets]: dart.fnType(dart.void, []),
    [_bindTooltipWidgets]: dart.fnType(dart.void, [box.BoxConstraints]),
    [_onTapDown]: dart.fnType(dart.void, [events.PointerDownEvent]),
    [_onDoubleTap]: dart.fnType(dart.void, []),
    [_onLongPress]: dart.fnType(dart.void, []),
    [_onTapUp]: dart.fnType(dart.void, [events.PointerUpEvent]),
    [_onHover]: dart.fnType(dart.void, [events.PointerEvent])
  }));
  dart.setLibraryUri(charts._FunnelPlotArea, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._FunnelPlotArea, () => ({
    __proto__: dart.getFields(charts._FunnelPlotArea.__proto__),
    chart: dart.finalFieldType(charts.SfFunnelChart),
    series: dart.fieldType(charts.FunnelSeries),
    renderBox: dart.fieldType(box.RenderBox),
    pointRegion: dart.fieldType(charts._Region),
    tapDownDetails: dart.fieldType(tap.TapDownDetails),
    doubleTapPosition: dart.fieldType(ui.Offset)
  }));
  const _calculateFunnelEmptyPoints = dart.privateName(charts, "_calculateFunnelEmptyPoints");
  const _neckSize = dart.privateName(charts, "_neckSize");
  const _calculateFunnelSegments = dart.privateName(charts, "_calculateFunnelSegments");
  charts._FunnelSeries = class _FunnelSeries extends core.Object {
    [_findVisibleSeries]() {
      this.visibleSeries = JSArrayOf_FunnelSeriesBase().of([]);
      this.chart.series[_dataPoints$] = JSArrayOfPointInfo().of([]);
      let currentSeries = this.chart.series;
      currentSeries[_seriesType$] = "funnel";
      let xValue = currentSeries.xValueMapper;
      let yValue = currentSeries.yValueMapper;
      for (let pointIndex = 0; pointIndex < dart.notNull(currentSeries.dataSource[$length]); pointIndex = pointIndex + 1) {
        if (dart.dcall(xValue, [pointIndex]) != null) {
          currentSeries[_dataPoints$][$add](new charts.PointInfo.new(dart.dcall(xValue, [pointIndex]), core.num._check(dart.dcall(yValue, [pointIndex]))));
        }
      }
      this.visibleSeries[$add](this.chart.series);
    }
    [_calculateFunnelEmptyPoints](series) {
      for (let i = 0; i < dart.notNull(series[_dataPoints$][$length]); i = i + 1) {
        if (series[_dataPoints$][$_get](i).y == null) series.calculateEmptyPointValue(i, series[_dataPoints$][$_get](i));
      }
    }
    [_processDataPoints]() {
      for (let series of this.visibleSeries) {
        this.currentSeries = series;
        this[_calculateFunnelEmptyPoints](charts.FunnelSeries._check(this.currentSeries));
        this[_calculateVisiblePoints]();
        this[_setPointStyle]();
        this[_findSumOfPoints]();
      }
    }
    [_calculateVisiblePoints]() {
      let points = this.currentSeries[_dataPoints$];
      this.chart.series[_renderPoints] = JSArrayOfPointInfo().of([]);
      for (let i = 0; i < dart.notNull(points[$length]); i = i + 1) {
        if (dart.test(points[$_get](i).isVisible)) {
          this.chart.series[_renderPoints][$add](points[$_get](i));
        }
      }
    }
    [_setPointStyle]() {
      let t0, t0$;
      let palette = this.chart.palette;
      let pointColor = this.currentSeries.pointColorMapper;
      let empty = this.currentSeries.emptyPointSettings;
      let textMapping = this.currentSeries.textFieldMapper;
      let points = this.currentSeries[_renderPoints];
      for (let i = 0; i < dart.notNull(points[$length]); i = i + 1) {
        let currentPoint = null;
        currentPoint = points[$_get](i);
        currentPoint.fill = ui.Color._check(dart.test(currentPoint.isEmpty) && empty.color != null ? empty.color : (t0 = dart.dcall(pointColor, [i]), t0 == null ? palette[$_get](i[$modulo](palette[$length])) : t0));
        currentPoint.color = currentPoint.fill;
        currentPoint.borderColor = dart.test(currentPoint.isEmpty) && empty.borderColor != null ? empty.borderColor : this.currentSeries.borderColor;
        currentPoint.borderWidth = dart.test(currentPoint.isEmpty) && empty.borderWidth != null ? empty.borderWidth : this.currentSeries.borderWidth;
        currentPoint.borderColor = currentPoint.borderWidth === 0 ? colors$.Colors.transparent : currentPoint.borderColor;
        currentPoint.text = core.String._check(currentPoint.text == null ? textMapping != null ? (t0$ = dart.dcall(textMapping, [i]), t0$ == null ? dart.toString(currentPoint.y) : t0$) : dart.toString(currentPoint.y) : currentPoint.text);
        if (this.chart.legend.legendItemBuilder != null) {
          let legendToggles = this.chart[_chartState].legendToggleTemplateStates;
          if (dart.test(legendToggles[$isNotEmpty])) {
            for (let j = 0; j < dart.notNull(legendToggles[$length]); j = j + 1) {
              let item = legendToggles[$_get](j);
              if (i === item.pointIndex) {
                currentPoint.isVisible = false;
                break;
              }
            }
          }
        } else {
          if (dart.test(this.chart[_chartState].legendToggleStates[$isNotEmpty])) {
            for (let j = 0; j < dart.notNull(this.chart[_chartState].legendToggleStates[$length]); j = j + 1) {
              let legendRenderContext = this.chart[_chartState].legendToggleStates[$_get](j);
              if (i === legendRenderContext.seriesIndex) {
                currentPoint.isVisible = false;
                break;
              }
            }
          }
        }
      }
    }
    [_findSumOfPoints]() {
      let t0;
      this.currentSeries[_sumOfPoints] = 0;
      for (let point of this.currentSeries[_renderPoints]) {
        if (dart.test(point.isVisible)) {
          t0 = this.currentSeries;
          t0[_sumOfPoints] = dart.notNull(t0[_sumOfPoints]) + point.y[$abs]();
        }
      }
    }
    [_initializeSeriesProperties](series) {
      let chartAreaRect = this.chart[_chartState].chartAreaRect;
      let reverse = series[_seriesType$] === "pyramid" ? true : false;
      series[_triangleSize] = new ui.Size.new(charts._percentToValue(series.width, chartAreaRect.width)[$toDouble](), charts._percentToValue(series.height, chartAreaRect.height)[$toDouble]());
      series[_neckSize] = new ui.Size.new(charts._percentToValue(series.neckWidth, chartAreaRect.width)[$toDouble](), charts._percentToValue(series.neckHeight, chartAreaRect.height)[$toDouble]());
      series[_explodeDistance] = charts._percentToValue(series.explodeOffset, chartAreaRect.width);
      this[_initializeSizeRatio](series, reverse);
    }
    [_initializeSizeRatio](series, reverse = null) {
      let points = series[_renderPoints];
      let y = null;
      let gapRatio = math.min(core.double, math.max(core.double, series.gapRatio, 0.0), 1.0);
      let coEff = 1 / (dart.notNull(series[_sumOfPoints]) * (1 + gapRatio / (1 - gapRatio)));
      let spacing = gapRatio / (dart.notNull(points[$length]) - 1);
      y = 0.0;
      let index = null;
      let height = null;
      for (let i = dart.notNull(points[$length]) - 1; i >= 0; i = i - 1) {
        index = dart.test(reverse) ? dart.notNull(points[$length]) - 1 - i : i;
        if (dart.test(points[$_get](dart.asInt(index)).isVisible)) {
          height = coEff * dart.notNull(points[$_get](dart.asInt(index)).y);
          points[$_get](dart.asInt(index)).yRatio = y;
          points[$_get](dart.asInt(index)).heightRatio = height;
          y = dart.notNull(y) + (dart.notNull(height) + spacing);
        }
      }
    }
    [_calculatePathSegment](seriesType, point) {
      let pathRegion = point.pathRegion;
      let bottom = seriesType === "funnel" ? dart.notNull(pathRegion[$length]) - 2 : dart.notNull(pathRegion[$length]) - 1;
      let x = (dart.notNull(pathRegion[$_get](0).dx) + dart.notNull(pathRegion[$_get](dart.asInt(bottom)).dx)) / 2;
      let right = (dart.notNull(pathRegion[$_get](1).dx) + dart.notNull(pathRegion[$_get](dart.asInt(bottom - 1)).dx)) / 2;
      point.region = new ui.Rect.fromLTWH(x, pathRegion[$_get](0).dy, right - x, dart.notNull(pathRegion[$_get](dart.asInt(bottom)).dy) - dart.notNull(pathRegion[$_get](0).dy));
      point.symbolLocation = new ui.Offset.new(dart.notNull(point.region.left) + dart.notNull(point.region.width) / 2, dart.notNull(point.region.top) + dart.notNull(point.region.height) / 2);
    }
    [_pointExplode](pointIndex) {
      let t0, t0$;
      let existExplodedRegion = false;
      let series = charts.FunnelSeries._check(this.chart[_chartSeries].visibleSeries[$_get](0));
      let point = series[_renderPoints][$_get](dart.asInt(pointIndex));
      if (dart.test(series.explode)) {
        if (dart.test(this.chart[_chartState].explodedPoints[$isNotEmpty])) {
          existExplodedRegion = true;
          let previousIndex = this.chart[_chartState].explodedPoints[$_get](0);
          series[_renderPoints][$_get](previousIndex).explodeDistance = 0;
          point.explodeDistance = previousIndex == pointIndex ? 0 : series[_explodeDistance];
          this.chart[_chartState].explodedPoints[$_set](0, dart.asInt(pointIndex));
          if (previousIndex == pointIndex) {
            this.chart[_chartState].explodedPoints = JSArrayOfint().of([]);
          }
          t0 = this.chart[_chartState].seriesRepaintNotifier;
          t0.value = dart.notNull(t0.value) + 1;
        }
        if (!existExplodedRegion) {
          point.explodeDistance = series[_explodeDistance];
          this.chart[_chartState].explodedPoints[$add](dart.asInt(pointIndex));
          t0$ = this.chart[_chartState].seriesRepaintNotifier;
          t0$.value = dart.notNull(t0$.value) + 1;
        }
        this[_calculateFunnelPathRegion](pointIndex);
      }
    }
    [_calculateFunnelPathRegion](pointIndex) {
      let lineWidth = null;
      let topRadius = null;
      let bottomRadius = null;
      let endTop = null;
      let endBottom = null;
      let minRadius = null;
      let endMin = null;
      let bottomY = null;
      let top = null;
      let bottom = null;
      let area = this.currentSeries[_triangleSize];
      let currentPoint = this.currentSeries[_renderPoints][$_get](dart.asInt(pointIndex));
      dart.dput(currentPoint, 'pathRegion', JSArrayOfOffset().of([]));
      let extraSpace = core.num._check(dart.dsend(dart.dload(currentPoint, 'explodeDistance') != null ? dart.dload(currentPoint, 'explodeDistance') : dart.test(charts._isNeedExplode(dart.asInt(pointIndex), this.currentSeries, this.chart)) ? this.currentSeries[_explodeDistance] : 0, '+', [(dart.notNull(this.chart[_chartState].chartContainerRect.width) - dart.notNull(this.currentSeries[_triangleSize].width)) / 2]));
      let emptySpaceAtLeft = dart.notNull(extraSpace) + dart.notNull(this.chart[_chartState].chartContainerRect.left);
      let seriesTop = dart.notNull(this.chart[_chartState].chartContainerRect.top) + (dart.notNull(this.chart[_chartState].chartContainerRect.height) - dart.notNull(area.height)) / 2;
      top = core.num._check(dart.dsend(dart.dload(currentPoint, 'yRatio'), '*', [area.height]));
      bottom = dart.notNull(top) + dart.notNull(core.num._check(dart.dsend(dart.dload(currentPoint, 'heightRatio'), '*', [area.height])));
      let neckSize = this.currentSeries[_neckSize];
      lineWidth = dart.notNull(neckSize.width) + (dart.notNull(area.width) - dart.notNull(neckSize.width)) * ((dart.notNull(area.height) - dart.notNull(neckSize.height) - dart.notNull(top)) / (dart.notNull(area.height) - dart.notNull(neckSize.height)));
      topRadius = dart.notNull(area.width) / 2 - dart.notNull(lineWidth) / 2;
      endTop = dart.notNull(topRadius) + dart.notNull(lineWidth);
      if (dart.notNull(bottom) > dart.notNull(area.height) - dart.notNull(neckSize.height) || area.height == neckSize.height) {
        lineWidth = neckSize.width;
      } else {
        lineWidth = dart.notNull(neckSize.width) + (dart.notNull(area.width) - dart.notNull(neckSize.width)) * ((dart.notNull(area.height) - dart.notNull(neckSize.height) - dart.notNull(bottom)) / (dart.notNull(area.height) - dart.notNull(neckSize.height)));
      }
      bottomRadius = dart.notNull(area.width) / 2 - dart.notNull(lineWidth) / 2;
      endBottom = dart.notNull(bottomRadius) + dart.notNull(lineWidth);
      if (dart.notNull(top) >= dart.notNull(area.height) - dart.notNull(neckSize.height)) {
        topRadius = bottomRadius = minRadius = dart.notNull(area.width) / 2 - dart.notNull(neckSize.width) / 2;
        endTop = endBottom = endMin = dart.notNull(area.width) / 2 + dart.notNull(neckSize.width) / 2;
      } else if (dart.notNull(bottom) > dart.notNull(area.height) - dart.notNull(neckSize.height)) {
        minRadius = bottomRadius = dart.notNull(area.width) / 2 - dart.notNull(lineWidth) / 2;
        endMin = endBottom = dart.notNull(minRadius) + dart.notNull(lineWidth);
        bottomY = dart.notNull(area.height) - dart.notNull(neckSize.height);
      }
      top = dart.notNull(top) + seriesTop;
      bottom = dart.notNull(bottom) + seriesTop;
      bottomY = bottomY != null ? dart.notNull(bottomY) + seriesTop : null;
      let line1X = null;
      let line1Y = null;
      let line2X = null;
      let line2Y = null;
      let line3X = null;
      let line3Y = null;
      let line4X = null;
      let line4Y = null;
      let line5X = null;
      let line5Y = null;
      let line6X = null;
      let line6Y = null;
      line1X = emptySpaceAtLeft + 0 + dart.notNull(topRadius);
      line1Y = top;
      line2X = emptySpaceAtLeft + 0 + dart.notNull(endTop);
      line2Y = top;
      line4X = emptySpaceAtLeft + 0 + dart.notNull(endBottom);
      line4Y = bottom;
      line5X = emptySpaceAtLeft + 0 + dart.notNull(bottomRadius);
      line5Y = bottom;
      line3X = emptySpaceAtLeft + 0 + dart.notNull(endBottom);
      line3Y = bottom;
      line6X = emptySpaceAtLeft + 0 + dart.notNull(bottomRadius);
      line6Y = bottom;
      if (bottomY != null) {
        line3X = emptySpaceAtLeft + 0 + dart.notNull(endMin);
        line3Y = bottomY;
        line6X = emptySpaceAtLeft + 0 + dart.notNull(minRadius != null ? minRadius : 0);
        line6Y = bottomY;
      }
      dart.dsend(dart.dload(currentPoint, 'pathRegion'), 'add', [new ui.Offset.new(line1X, line1Y)]);
      dart.dsend(dart.dload(currentPoint, 'pathRegion'), 'add', [new ui.Offset.new(line2X, line2Y)]);
      dart.dsend(dart.dload(currentPoint, 'pathRegion'), 'add', [new ui.Offset.new(line3X, line3Y)]);
      dart.dsend(dart.dload(currentPoint, 'pathRegion'), 'add', [new ui.Offset.new(line4X, line4Y)]);
      dart.dsend(dart.dload(currentPoint, 'pathRegion'), 'add', [new ui.Offset.new(line5X, line5Y)]);
      dart.dsend(dart.dload(currentPoint, 'pathRegion'), 'add', [new ui.Offset.new(line6X, line6Y)]);
      this[_calculatePathSegment](this.currentSeries[_seriesType$], charts.PointInfo._check(currentPoint));
    }
    [_calculateFunnelSegments](canvas, pointIndex) {
      this[_calculateFunnelPathRegion](pointIndex);
      let currentPoint = this.currentSeries[_renderPoints][$_get](dart.asInt(pointIndex));
      let path = ui.Path.new();
      path.moveTo(core.double._check(dart.dload(dart.dsend(dart.dload(currentPoint, 'pathRegion'), '_get', [0]), 'dx')), core.double._check(dart.dload(dart.dsend(dart.dload(currentPoint, 'pathRegion'), '_get', [0]), 'dy')));
      path.lineTo(core.double._check(dart.dload(dart.dsend(dart.dload(currentPoint, 'pathRegion'), '_get', [1]), 'dx')), core.double._check(dart.dload(dart.dsend(dart.dload(currentPoint, 'pathRegion'), '_get', [1]), 'dy')));
      path.lineTo(core.double._check(dart.dload(dart.dsend(dart.dload(currentPoint, 'pathRegion'), '_get', [2]), 'dx')), core.double._check(dart.dload(dart.dsend(dart.dload(currentPoint, 'pathRegion'), '_get', [2]), 'dy')));
      path.lineTo(core.double._check(dart.dload(dart.dsend(dart.dload(currentPoint, 'pathRegion'), '_get', [3]), 'dx')), core.double._check(dart.dload(dart.dsend(dart.dload(currentPoint, 'pathRegion'), '_get', [3]), 'dy')));
      path.lineTo(core.double._check(dart.dload(dart.dsend(dart.dload(currentPoint, 'pathRegion'), '_get', [4]), 'dx')), core.double._check(dart.dload(dart.dsend(dart.dload(currentPoint, 'pathRegion'), '_get', [4]), 'dy')));
      path.lineTo(core.double._check(dart.dload(dart.dsend(dart.dload(currentPoint, 'pathRegion'), '_get', [5]), 'dx')), core.double._check(dart.dload(dart.dsend(dart.dload(currentPoint, 'pathRegion'), '_get', [5]), 'dy')));
      path.close();
      if (pointIndex === dart.notNull(this.currentSeries[_renderPoints][$length]) - 1) {
        this.currentSeries[_maximumDataLabelRegion] = path.getBounds();
      }
      this[_segmentPaint](canvas, path, pointIndex);
    }
    [_segmentPaint](canvas, path, pointIndex) {
      let point = this.currentSeries[_renderPoints][$_get](dart.asInt(pointIndex));
      let style = this[_getPointStyle](dart.asInt(pointIndex), charts.FunnelSeries._check(this.currentSeries), this.chart, charts.PointInfo._check(point));
      let fillColor = ui.Color._check(style != null && style.fill != null ? style.fill : dart.dload(point, 'fill'));
      let strokeColor = ui.Color._check(style != null && style.strokeColor != null ? style.strokeColor : dart.dload(point, 'borderColor'));
      let strokeWidth = core.double._check(style != null && style.strokeWidth != null ? style.strokeWidth : dart.dload(point, 'borderWidth'));
      let opacity = style != null && style.opacity != null ? style.opacity : this.currentSeries.opacity;
      charts._drawPath(canvas, new charts._StyleOptions.new(fillColor, dart.test(this.chart[_chartState].animateCompleted) ? strokeWidth : 0, strokeColor, opacity), path);
    }
    [_seriesPointSelection](pointIndex, mode) {
      let t0, t0$, t0$0;
      let isPointAlreadySelected = false;
      let series = this.chart[_chartSeries].visibleSeries[$_get](0);
      if (dart.dtest(dart.dload(dart.dload(series, 'selectionSettings'), 'enable')) && dart.equals(mode, this.chart.selectionGesture)) {
        if (dart.test(this.chart[_chartState].selectionData[$isNotEmpty])) {
          for (let i = 0; i < dart.notNull(this.chart[_chartState].selectionData[$length]); i = i + 1) {
            let selectionIndex = this.chart[_chartState].selectionData[$_get](i);
            if (!dart.test(this.chart.enableMultiSelection)) {
              isPointAlreadySelected = this.chart[_chartState].selectionData[$length] === 1 && pointIndex == selectionIndex;
              this.chart[_chartState].selectionData[$removeAt](i);
              t0 = this.chart[_chartState].seriesRepaintNotifier;
              t0.value = dart.notNull(t0.value) + 1;
            } else if (pointIndex == selectionIndex) {
              this.chart[_chartState].selectionData[$removeAt](i);
              isPointAlreadySelected = true;
              t0$ = this.chart[_chartState].seriesRepaintNotifier;
              t0$.value = dart.notNull(t0$.value) + 1;
              break;
            }
          }
        }
        if (!isPointAlreadySelected) {
          this.chart[_chartState].selectionData[$add](dart.asInt(pointIndex));
          t0$0 = this.chart[_chartState].seriesRepaintNotifier;
          t0$0.value = dart.notNull(t0$0.value) + 1;
        }
      }
    }
    [_getPointStyle](currentPointIndex, series, chart, point) {
      let pointStyle = null;
      let selection = series.selectionSettings;
      if (dart.test(selection.enable)) {
        if (dart.test(chart[_chartState].selectionData[$isNotEmpty])) {
          if (chart.onSelectionChanged != null) {
            chart.onSelectionChanged(this[_getSelectionEventArgs](series, 0, currentPointIndex));
          }
          for (let i = 0; i < dart.notNull(chart[_chartState].selectionData[$length]); i = i + 1) {
            let selectionIndex = chart[_chartState].selectionData[$_get](i);
            if (currentPointIndex == selectionIndex) {
              pointStyle = new charts._StyleOptions.new(this[_selectionArgs] != null ? this[_selectionArgs].selectedColor : selection.selectedColor, this[_selectionArgs] != null ? this[_selectionArgs].selectedBorderWidth : selection.selectedBorderWidth, this[_selectionArgs] != null ? this[_selectionArgs].selectedBorderColor : selection.selectedBorderColor, selection.selectedOpacity);
              break;
            } else if (i === dart.notNull(chart[_chartState].selectionData[$length]) - 1) {
              pointStyle = new charts._StyleOptions.new(this[_selectionArgs] != null ? this[_selectionArgs].unselectedColor : selection.unselectedColor, this[_selectionArgs] != null ? this[_selectionArgs].unselectedBorderWidth : selection.unselectedBorderWidth, this[_selectionArgs] != null ? this[_selectionArgs].unselectedBorderColor : selection.unselectedBorderColor, selection.unselectedOpacity);
            }
          }
        }
      }
      return pointStyle;
    }
    [_getSelectionEventArgs](series, seriesIndex, pointIndex) {
      if (series != null) {
        this[_selectionArgs] = new charts.SelectionArgs.new();
        this[_selectionArgs].series = series;
        this[_selectionArgs].selectedBorderColor = ui.Color._check(dart.dload(dart.dload(series, 'selectionSettings'), 'selectedBorderColor'));
        this[_selectionArgs].selectedBorderWidth = core.double._check(dart.dload(dart.dload(series, 'selectionSettings'), 'selectedBorderWidth'));
        this[_selectionArgs].selectedColor = ui.Color._check(dart.dload(dart.dload(series, 'selectionSettings'), 'selectedColor'));
        this[_selectionArgs].unselectedBorderColor = ui.Color._check(dart.dload(dart.dload(series, 'selectionSettings'), 'unselectedBorderColor'));
        this[_selectionArgs].unselectedBorderWidth = core.double._check(dart.dload(dart.dload(series, 'selectionSettings'), 'unselectedBorderWidth'));
        this[_selectionArgs].unselectedColor = ui.Color._check(dart.dload(dart.dload(series, 'selectionSettings'), 'unselectedColor'));
        this[_selectionArgs].seriesIndex = dart.asInt(seriesIndex);
        this[_selectionArgs].pointIndex = dart.asInt(pointIndex);
      }
      return this[_selectionArgs];
    }
  };
  (charts._FunnelSeries.new = function() {
    this.chart = null;
    this.currentSeries = null;
    this.visibleSeries = null;
    this[_selectionArgs] = null;
    ;
  }).prototype = charts._FunnelSeries.prototype;
  dart.addTypeTests(charts._FunnelSeries);
  dart.setMethodSignature(charts._FunnelSeries, () => ({
    __proto__: dart.getMethods(charts._FunnelSeries.__proto__),
    [_findVisibleSeries]: dart.fnType(dart.void, []),
    [_calculateFunnelEmptyPoints]: dart.fnType(dart.void, [charts.FunnelSeries]),
    [_processDataPoints]: dart.fnType(dart.void, []),
    [_calculateVisiblePoints]: dart.fnType(dart.void, []),
    [_setPointStyle]: dart.fnType(dart.void, []),
    [_findSumOfPoints]: dart.fnType(dart.void, []),
    [_initializeSeriesProperties]: dart.fnType(dart.void, [charts._FunnelSeriesBase]),
    [_initializeSizeRatio]: dart.fnType(dart.void, [charts._FunnelSeriesBase], [core.bool]),
    [_calculatePathSegment]: dart.fnType(dart.void, [core.String, charts.PointInfo]),
    [_pointExplode]: dart.fnType(dart.void, [core.num]),
    [_calculateFunnelPathRegion]: dart.fnType(dart.void, [core.num]),
    [_calculateFunnelSegments]: dart.fnType(dart.void, [ui.Canvas, core.num]),
    [_segmentPaint]: dart.fnType(dart.void, [ui.Canvas, ui.Path, core.num]),
    [_seriesPointSelection]: dart.fnType(dart.void, [core.num, charts.ActivationMode]),
    [_getPointStyle]: dart.fnType(charts._StyleOptions, [core.int, charts.FunnelSeries, charts.SfFunnelChart, charts.PointInfo]),
    [_getSelectionEventArgs]: dart.fnType(charts.SelectionArgs, [dart.dynamic, core.num, core.num])
  }));
  dart.setLibraryUri(charts._FunnelSeries, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._FunnelSeries, () => ({
    __proto__: dart.getFields(charts._FunnelSeries.__proto__),
    chart: dart.fieldType(charts.SfFunnelChart),
    currentSeries: dart.fieldType(charts._FunnelSeriesBase),
    visibleSeries: dart.fieldType(core.List$(charts._FunnelSeriesBase)),
    [_selectionArgs]: dart.fieldType(charts.SelectionArgs)
  }));
  const _is__FunnelSeriesBase_default = Symbol('_is__FunnelSeriesBase_default');
  const dataSource$2 = dart.privateName(charts, "_FunnelSeriesBase.dataSource");
  const xValueMapper$2 = dart.privateName(charts, "_FunnelSeriesBase.xValueMapper");
  const yValueMapper$2 = dart.privateName(charts, "_FunnelSeriesBase.yValueMapper");
  const name$2 = dart.privateName(charts, "_FunnelSeriesBase.name");
  const neckHeight$ = dart.privateName(charts, "_FunnelSeriesBase.neckHeight");
  const neckWidth$ = dart.privateName(charts, "_FunnelSeriesBase.neckWidth");
  const height$1 = dart.privateName(charts, "_FunnelSeriesBase.height");
  const width$2 = dart.privateName(charts, "_FunnelSeriesBase.width");
  const gapRatio$0 = dart.privateName(charts, "_FunnelSeriesBase.gapRatio");
  const emptyPointSettings$2 = dart.privateName(charts, "_FunnelSeriesBase.emptyPointSettings");
  const explodeOffset$1 = dart.privateName(charts, "_FunnelSeriesBase.explodeOffset");
  const explode$1 = dart.privateName(charts, "_FunnelSeriesBase.explode");
  const explodeGesture$1 = dart.privateName(charts, "_FunnelSeriesBase.explodeGesture");
  const borderWidth$5 = dart.privateName(charts, "_FunnelSeriesBase.borderWidth");
  const borderColor$5 = dart.privateName(charts, "_FunnelSeriesBase.borderColor");
  const legendIconType$2 = dart.privateName(charts, "_FunnelSeriesBase.legendIconType");
  const dataLabelSettings$2 = dart.privateName(charts, "_FunnelSeriesBase.dataLabelSettings");
  const animationDuration$2 = dart.privateName(charts, "_FunnelSeriesBase.animationDuration");
  const pointColorMapper$2 = dart.privateName(charts, "_FunnelSeriesBase.pointColorMapper");
  const textFieldMapper$0 = dart.privateName(charts, "_FunnelSeriesBase.textFieldMapper");
  const opacity$2 = dart.privateName(charts, "_FunnelSeriesBase.opacity");
  const selectionSettings$2 = dart.privateName(charts, "_FunnelSeriesBase.selectionSettings");
  const explodeIndex$1 = dart.privateName(charts, "_FunnelSeriesBase.explodeIndex");
  const initialSelectedDataIndexes$1 = dart.privateName(charts, "_FunnelSeriesBase.initialSelectedDataIndexes");
  charts._FunnelSeriesBase$ = dart.generic((T, D) => {
    class _FunnelSeriesBase extends charts.ChartSeries$(T, D) {
      get dataSource() {
        return this[dataSource$2];
      }
      set dataSource(value) {
        super.dataSource = value;
      }
      get xValueMapper() {
        return this[xValueMapper$2];
      }
      set xValueMapper(value) {
        super.xValueMapper = value;
      }
      get yValueMapper() {
        return this[yValueMapper$2];
      }
      set yValueMapper(value) {
        super.yValueMapper = value;
      }
      get name() {
        return this[name$2];
      }
      set name(value) {
        super.name = value;
      }
      get neckHeight() {
        return this[neckHeight$];
      }
      set neckHeight(value) {
        super.neckHeight = value;
      }
      get neckWidth() {
        return this[neckWidth$];
      }
      set neckWidth(value) {
        super.neckWidth = value;
      }
      get height() {
        return this[height$1];
      }
      set height(value) {
        super.height = value;
      }
      get width() {
        return this[width$2];
      }
      set width(value) {
        super.width = value;
      }
      get gapRatio() {
        return this[gapRatio$0];
      }
      set gapRatio(value) {
        super.gapRatio = value;
      }
      get emptyPointSettings() {
        return this[emptyPointSettings$2];
      }
      set emptyPointSettings(value) {
        super.emptyPointSettings = value;
      }
      get explodeOffset() {
        return this[explodeOffset$1];
      }
      set explodeOffset(value) {
        super.explodeOffset = value;
      }
      get explode() {
        return this[explode$1];
      }
      set explode(value) {
        super.explode = value;
      }
      get explodeGesture() {
        return this[explodeGesture$1];
      }
      set explodeGesture(value) {
        super.explodeGesture = value;
      }
      get borderWidth() {
        return this[borderWidth$5];
      }
      set borderWidth(value) {
        super.borderWidth = value;
      }
      get borderColor() {
        return this[borderColor$5];
      }
      set borderColor(value) {
        super.borderColor = value;
      }
      get legendIconType() {
        return this[legendIconType$2];
      }
      set legendIconType(value) {
        super.legendIconType = value;
      }
      get dataLabelSettings() {
        return this[dataLabelSettings$2];
      }
      set dataLabelSettings(value) {
        super.dataLabelSettings = value;
      }
      get animationDuration() {
        return this[animationDuration$2];
      }
      set animationDuration(value) {
        super.animationDuration = value;
      }
      get pointColorMapper() {
        return this[pointColorMapper$2];
      }
      set pointColorMapper(value) {
        super.pointColorMapper = value;
      }
      get textFieldMapper() {
        return this[textFieldMapper$0];
      }
      set textFieldMapper(value) {
        super.textFieldMapper = value;
      }
      get opacity() {
        return this[opacity$2];
      }
      set opacity(value) {
        super.opacity = value;
      }
      get selectionSettings() {
        return this[selectionSettings$2];
      }
      set selectionSettings(value) {
        super.selectionSettings = value;
      }
      get explodeIndex() {
        return this[explodeIndex$1];
      }
      set explodeIndex(value) {
        super.explodeIndex = value;
      }
      get initialSelectedDataIndexes() {
        return this[initialSelectedDataIndexes$1];
      }
      set initialSelectedDataIndexes(value) {
        this[initialSelectedDataIndexes$1] = value;
      }
      calculateEmptyPointValue(pointIndex, currentPoint) {
        let empty = this.emptyPointSettings;
        let pointLength = this[_dataPoints$][$length];
        let point = this[_dataPoints$][$_get](pointIndex);
        if (point.y == null) {
          switch (empty.mode) {
            case C120 || CT.C120:
            {
              let previous = dart.notNull(pointIndex) - 1 >= 0 ? this[_dataPoints$][$_get](dart.notNull(pointIndex) - 1).y == null ? 0 : this[_dataPoints$][$_get](dart.notNull(pointIndex) - 1).y : 0;
              let next = dart.notNull(pointIndex) + 1 <= dart.notNull(pointLength) - 1 ? this[_dataPoints$][$_get](dart.notNull(pointIndex) + 1).y == null ? 0 : this[_dataPoints$][$_get](dart.notNull(pointIndex) + 1).y : 0;
              point.y = (dart.notNull(previous) + dart.notNull(next))[$abs]() / 2;
              point.isVisible = true;
              point.isEmpty = true;
              break;
            }
            case C121 || CT.C121:
            {
              point.y = 0;
              point.isVisible = true;
              point.isEmpty = true;
              break;
            }
            default:
            {
              point.isEmpty = true;
              point.isVisible = false;
              break;
            }
          }
        }
      }
    }
    (_FunnelSeriesBase.new = function(opts) {
      let t0, t0$, t0$0, t0$1, t0$2, t0$3, t0$4, t0$5, t0$6, t0$7, t0$8, t0$9, t0$10, t0$11, t0$12, t0$13, t0$14;
      let dataSource = opts && 'dataSource' in opts ? opts.dataSource : null;
      let xValueMapper = opts && 'xValueMapper' in opts ? opts.xValueMapper : null;
      let yValueMapper = opts && 'yValueMapper' in opts ? opts.yValueMapper : null;
      let pointColorMapper = opts && 'pointColorMapper' in opts ? opts.pointColorMapper : null;
      let textFieldMapper = opts && 'textFieldMapper' in opts ? opts.textFieldMapper : null;
      let name = opts && 'name' in opts ? opts.name : null;
      let explodeIndex = opts && 'explodeIndex' in opts ? opts.explodeIndex : null;
      let neckWidth = opts && 'neckWidth' in opts ? opts.neckWidth : null;
      let neckHeight = opts && 'neckHeight' in opts ? opts.neckHeight : null;
      let height = opts && 'height' in opts ? opts.height : null;
      let width = opts && 'width' in opts ? opts.width : null;
      let gapRatio = opts && 'gapRatio' in opts ? opts.gapRatio : null;
      let emptyPointSettings = opts && 'emptyPointSettings' in opts ? opts.emptyPointSettings : null;
      let explodeOffset = opts && 'explodeOffset' in opts ? opts.explodeOffset : null;
      let explode = opts && 'explode' in opts ? opts.explode : null;
      let explodeGesture = opts && 'explodeGesture' in opts ? opts.explodeGesture : null;
      let borderColor = opts && 'borderColor' in opts ? opts.borderColor : null;
      let borderWidth = opts && 'borderWidth' in opts ? opts.borderWidth : null;
      let legendIconType = opts && 'legendIconType' in opts ? opts.legendIconType : null;
      let dataLabelSettings = opts && 'dataLabelSettings' in opts ? opts.dataLabelSettings : null;
      let animationDuration = opts && 'animationDuration' in opts ? opts.animationDuration : null;
      let opacity = opts && 'opacity' in opts ? opts.opacity : null;
      let selectionSettings = opts && 'selectionSettings' in opts ? opts.selectionSettings : null;
      let initialSelectedDataIndexes = opts && 'initialSelectedDataIndexes' in opts ? opts.initialSelectedDataIndexes : null;
      this[_seriesType$] = null;
      this[_dataPoints$] = null;
      this[_renderPoints] = null;
      this[_sumOfPoints] = null;
      this[_triangleSize] = null;
      this[_neckSize] = null;
      this[_explodeDistance] = null;
      this[_maximumDataLabelRegion] = null;
      this[dataSource$2] = dataSource;
      this[xValueMapper$2] = xValueMapper;
      this[yValueMapper$2] = yValueMapper;
      this[pointColorMapper$2] = pointColorMapper;
      this[textFieldMapper$0] = textFieldMapper;
      this[name$2] = name;
      this[explodeIndex$1] = explodeIndex;
      this[neckWidth$] = (t0 = neckWidth, t0 == null ? "20%" : t0);
      this[neckHeight$] = (t0$ = neckHeight, t0$ == null ? "20%" : t0$);
      this[height$1] = (t0$0 = height, t0$0 == null ? "80%" : t0$0);
      this[width$2] = (t0$1 = width, t0$1 == null ? "80%" : t0$1);
      this[gapRatio$0] = (t0$2 = gapRatio, t0$2 == null ? 0.0 : t0$2);
      this[emptyPointSettings$2] = (t0$3 = emptyPointSettings, t0$3 == null ? new charts.EmptyPointSettings.new() : t0$3);
      this[explodeOffset$1] = (t0$4 = explodeOffset, t0$4 == null ? "10%" : t0$4);
      this[explode$1] = (t0$5 = explode, t0$5 == null ? false : t0$5);
      this[explodeGesture$1] = (t0$6 = explodeGesture, t0$6 == null ? charts.ActivationMode.singleTap : t0$6);
      this[borderColor$5] = (t0$7 = borderColor, t0$7 == null ? colors$.Colors.transparent : t0$7);
      this[borderWidth$5] = (t0$8 = borderWidth, t0$8 == null ? 0.0 : t0$8);
      this[legendIconType$2] = (t0$9 = legendIconType, t0$9 == null ? charts.LegendIconType.seriesType : t0$9);
      this[dataLabelSettings$2] = (t0$10 = dataLabelSettings, t0$10 == null ? new charts.DataLabelSettings.new() : t0$10);
      this[animationDuration$2] = (t0$11 = animationDuration, t0$11 == null ? 1500.0 : t0$11);
      this[opacity$2] = (t0$12 = opacity, t0$12 == null ? 1.0 : t0$12);
      this[initialSelectedDataIndexes$1] = (t0$13 = initialSelectedDataIndexes, t0$13 == null ? JSArrayOfint().of([]) : t0$13);
      this[selectionSettings$2] = (t0$14 = selectionSettings, t0$14 == null ? new charts.SelectionSettings.new() : t0$14);
      _FunnelSeriesBase.__proto__.new.call(this, {name: name, dataSource: dataSource, xValueMapper: xValueMapper, yValueMapper: yValueMapper});
    }).prototype = _FunnelSeriesBase.prototype;
    dart.addTypeTests(_FunnelSeriesBase);
    _FunnelSeriesBase.prototype[_is__FunnelSeriesBase_default] = true;
    _FunnelSeriesBase[dart.implements] = () => [charts.TriangularChartEmptyPointBehavior];
    dart.setMethodSignature(_FunnelSeriesBase, () => ({
      __proto__: dart.getMethods(_FunnelSeriesBase.__proto__),
      calculateEmptyPointValue: dart.fnType(dart.void, [core.int, charts.PointInfo])
    }));
    dart.setLibraryUri(_FunnelSeriesBase, "package:syncfusion_flutter_charts/charts.dart");
    dart.setFieldSignature(_FunnelSeriesBase, () => ({
      __proto__: dart.getFields(_FunnelSeriesBase.__proto__),
      dataSource: dart.finalFieldType(core.List$(T)),
      xValueMapper: dart.finalFieldType(dart.fnType(D, [core.int])),
      yValueMapper: dart.finalFieldType(dart.fnType(core.num, [core.int])),
      name: dart.finalFieldType(core.String),
      neckHeight: dart.finalFieldType(core.String),
      neckWidth: dart.finalFieldType(core.String),
      height: dart.finalFieldType(core.String),
      width: dart.finalFieldType(core.String),
      gapRatio: dart.finalFieldType(core.double),
      emptyPointSettings: dart.finalFieldType(charts.EmptyPointSettings),
      explodeOffset: dart.finalFieldType(core.String),
      explode: dart.finalFieldType(core.bool),
      explodeGesture: dart.finalFieldType(charts.ActivationMode),
      borderWidth: dart.finalFieldType(core.double),
      borderColor: dart.finalFieldType(ui.Color),
      legendIconType: dart.finalFieldType(charts.LegendIconType),
      dataLabelSettings: dart.finalFieldType(charts.DataLabelSettings),
      animationDuration: dart.finalFieldType(core.double),
      pointColorMapper: dart.finalFieldType(dart.fnType(ui.Color, [core.int])),
      textFieldMapper: dart.finalFieldType(dart.fnType(core.String, [core.int])),
      opacity: dart.finalFieldType(core.double),
      selectionSettings: dart.finalFieldType(charts.SelectionSettings),
      explodeIndex: dart.finalFieldType(core.num),
      initialSelectedDataIndexes: dart.fieldType(core.List$(core.int)),
      [_seriesType$]: dart.fieldType(core.String),
      [_dataPoints$]: dart.fieldType(core.List$(charts.PointInfo)),
      [_renderPoints]: dart.fieldType(core.List$(charts.PointInfo)),
      [_sumOfPoints]: dart.fieldType(core.num),
      [_triangleSize]: dart.fieldType(ui.Size),
      [_neckSize]: dart.fieldType(ui.Size),
      [_explodeDistance]: dart.fieldType(core.num),
      [_maximumDataLabelRegion]: dart.fieldType(ui.Rect)
    }));
    return _FunnelSeriesBase;
  });
  charts._FunnelSeriesBase = charts._FunnelSeriesBase$();
  dart.addTypeTests(charts._FunnelSeriesBase, _is__FunnelSeriesBase_default);
  const _is_FunnelSeries_default = Symbol('_is_FunnelSeries_default');
  charts.FunnelSeries$ = dart.generic((T, D) => {
    let intToD = () => (intToD = dart.constFn(dart.fnType(D, [core.int])))();
    class FunnelSeries extends charts._FunnelSeriesBase$(T, D) {}
    (FunnelSeries.new = function(opts) {
      let dataSource = opts && 'dataSource' in opts ? opts.dataSource : null;
      let xValueMapper = opts && 'xValueMapper' in opts ? opts.xValueMapper : null;
      let yValueMapper = opts && 'yValueMapper' in opts ? opts.yValueMapper : null;
      let pointColorMapper = opts && 'pointColorMapper' in opts ? opts.pointColorMapper : null;
      let textFieldMapper = opts && 'textFieldMapper' in opts ? opts.textFieldMapper : null;
      let name = opts && 'name' in opts ? opts.name : null;
      let neckWidth = opts && 'neckWidth' in opts ? opts.neckWidth : null;
      let neckHeight = opts && 'neckHeight' in opts ? opts.neckHeight : null;
      let height = opts && 'height' in opts ? opts.height : null;
      let width = opts && 'width' in opts ? opts.width : null;
      let gapRatio = opts && 'gapRatio' in opts ? opts.gapRatio : null;
      let legendIconType = opts && 'legendIconType' in opts ? opts.legendIconType : null;
      let emptyPointSettings = opts && 'emptyPointSettings' in opts ? opts.emptyPointSettings : null;
      let dataLabelSettings = opts && 'dataLabelSettings' in opts ? opts.dataLabelSettings : null;
      let animationDuration = opts && 'animationDuration' in opts ? opts.animationDuration : null;
      let opacity = opts && 'opacity' in opts ? opts.opacity : null;
      let borderColor = opts && 'borderColor' in opts ? opts.borderColor : null;
      let borderWidth = opts && 'borderWidth' in opts ? opts.borderWidth : null;
      let explode = opts && 'explode' in opts ? opts.explode : null;
      let explodeGesture = opts && 'explodeGesture' in opts ? opts.explodeGesture : null;
      let explodeOffset = opts && 'explodeOffset' in opts ? opts.explodeOffset : null;
      let selectionSettings = opts && 'selectionSettings' in opts ? opts.selectionSettings : null;
      let explodeIndex = opts && 'explodeIndex' in opts ? opts.explodeIndex : null;
      let initialSelectedDataIndexes = opts && 'initialSelectedDataIndexes' in opts ? opts.initialSelectedDataIndexes : null;
      FunnelSeries.__proto__.new.call(this, {dataSource: dataSource, xValueMapper: dart.fn(index => xValueMapper(dataSource[$_get](index), index), intToD()), yValueMapper: dart.fn(index => yValueMapper(dataSource[$_get](index), index), intTonum()), pointColorMapper: dart.fn(index => pointColorMapper != null ? pointColorMapper(dataSource[$_get](index), index) : null, intToColor()), textFieldMapper: dart.fn(index => textFieldMapper != null ? textFieldMapper(dataSource[$_get](index), index) : null, intToString()), name: name, neckWidth: neckWidth, neckHeight: neckHeight, height: height, width: width, gapRatio: gapRatio, emptyPointSettings: emptyPointSettings, dataLabelSettings: dataLabelSettings, legendIconType: legendIconType, opacity: opacity, borderColor: borderColor, borderWidth: borderWidth, animationDuration: animationDuration, explode: explode, explodeIndex: explodeIndex, explodeGesture: explodeGesture, explodeOffset: explodeOffset, selectionSettings: selectionSettings, initialSelectedDataIndexes: initialSelectedDataIndexes});
      ;
    }).prototype = FunnelSeries.prototype;
    dart.addTypeTests(FunnelSeries);
    FunnelSeries.prototype[_is_FunnelSeries_default] = true;
    dart.setLibraryUri(FunnelSeries, "package:syncfusion_flutter_charts/charts.dart");
    return FunnelSeries;
  });
  charts.FunnelSeries = charts.FunnelSeries$();
  dart.addTypeTests(charts.FunnelSeries, _is_FunnelSeries_default);
  charts._FunnelChartPainter = class _FunnelChartPainter extends custom_paint.CustomPainter {
    paint(canvas, size) {
      this.series = charts.FunnelSeries._check(this.chart[_chartSeries].visibleSeries[$_get](this.seriesIndex));
      for (let pointIndex = 0; pointIndex < dart.notNull(this.series[_renderPoints][$length]); pointIndex = pointIndex + 1) {
        if (dart.test(this.series[_renderPoints][$_get](pointIndex).isVisible)) {
          let animationFactor = this.seriesAnimation != null ? this.seriesAnimation.value : 1.0;
          if (dart.notNull(this.series.animationDuration) > 0 && !dart.test(this.chart[_chartState][_isLegendToggled])) {
            let factor = dart.notNull(this.chart[_chartState].chartAreaRect.top) + dart.notNull(this.chart[_chartState].chartAreaRect.height) - dart.notNull(animationFactor) * (dart.notNull(this.chart[_chartState].chartAreaRect.top) + dart.notNull(this.chart[_chartState].chartAreaRect.height));
            let height = dart.notNull(this.chart[_chartState].chartAreaRect.top) + dart.notNull(this.chart[_chartState].chartAreaRect.height) - factor;
            canvas.clipRect(new ui.Rect.fromLTRB(0.0, dart.notNull(this.chart[_chartState].chartAreaRect.top) + dart.notNull(this.chart[_chartState].chartAreaRect.height) - height, dart.notNull(this.chart[_chartState].chartAreaRect.left) + dart.notNull(this.chart[_chartState].chartAreaRect.width), dart.notNull(this.chart[_chartState].chartAreaRect.top) + dart.notNull(this.chart[_chartState].chartAreaRect.height)));
          }
          this.chart[_chartSeries][_calculateFunnelSegments](canvas, pointIndex);
        }
      }
    }
    shouldRepaint(oldDelegate) {
      charts._FunnelChartPainter._check(oldDelegate);
      return true;
    }
  };
  (charts._FunnelChartPainter.new = function(opts) {
    let chart = opts && 'chart' in opts ? opts.chart : null;
    let seriesIndex = opts && 'seriesIndex' in opts ? opts.seriesIndex : null;
    let isRepaint = opts && 'isRepaint' in opts ? opts.isRepaint : null;
    let animationController = opts && 'animationController' in opts ? opts.animationController : null;
    let seriesAnimation = opts && 'seriesAnimation' in opts ? opts.seriesAnimation : null;
    let notifier = opts && 'notifier' in opts ? opts.notifier : null;
    this.series = null;
    this.chart = chart;
    this.seriesIndex = seriesIndex;
    this.isRepaint = isRepaint;
    this.animationController = animationController;
    this.seriesAnimation = seriesAnimation;
    charts._FunnelChartPainter.__proto__.new.call(this, {repaint: notifier});
    ;
  }).prototype = charts._FunnelChartPainter.prototype;
  dart.addTypeTests(charts._FunnelChartPainter);
  dart.setMethodSignature(charts._FunnelChartPainter, () => ({
    __proto__: dart.getMethods(charts._FunnelChartPainter.__proto__),
    paint: dart.fnType(dart.void, [ui.Canvas, ui.Size]),
    shouldRepaint: dart.fnType(core.bool, [core.Object])
  }));
  dart.setLibraryUri(charts._FunnelChartPainter, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._FunnelChartPainter, () => ({
    __proto__: dart.getFields(charts._FunnelChartPainter.__proto__),
    chart: dart.finalFieldType(charts.SfFunnelChart),
    seriesIndex: dart.finalFieldType(core.int),
    isRepaint: dart.finalFieldType(core.bool),
    animationController: dart.finalFieldType(animation_controller.AnimationController),
    seriesAnimation: dart.finalFieldType(animation.Animation$(core.double)),
    series: dart.fieldType(charts.FunnelSeries)
  }));
  dart.defineLazy(charts._FunnelChartPainter, {
    /*charts._FunnelChartPainter.point*/get point() {
      return null;
    },
    set point(_) {}
  });
  charts._FunnelDataLabelRenderer = class _FunnelDataLabelRenderer extends framework.StatefulWidget {
    createState() {
      return new charts._FunnelDataLabelRendererState.new();
    }
  };
  (charts._FunnelDataLabelRenderer.new = function(opts) {
    let funnelChart = opts && 'funnelChart' in opts ? opts.funnelChart : null;
    let show = opts && 'show' in opts ? opts.show : null;
    let $36creationLocationd_0dea112b090073317d4 = opts && '$creationLocationd_0dea112b090073317d4' in opts ? opts.$creationLocationd_0dea112b090073317d4 : null;
    this.state = null;
    this.funnelChart = funnelChart;
    this.show = show;
    charts._FunnelDataLabelRenderer.__proto__.new.call(this, {$creationLocationd_0dea112b090073317d4: $36creationLocationd_0dea112b090073317d4});
    ;
  }).prototype = charts._FunnelDataLabelRenderer.prototype;
  dart.addTypeTests(charts._FunnelDataLabelRenderer);
  dart.setMethodSignature(charts._FunnelDataLabelRenderer, () => ({
    __proto__: dart.getMethods(charts._FunnelDataLabelRenderer.__proto__),
    createState: dart.fnType(framework.State$(framework.StatefulWidget), [])
  }));
  dart.setLibraryUri(charts._FunnelDataLabelRenderer, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._FunnelDataLabelRenderer, () => ({
    __proto__: dart.getFields(charts._FunnelDataLabelRenderer.__proto__),
    funnelChart: dart.finalFieldType(charts.SfFunnelChart),
    show: dart.fieldType(core.bool),
    state: dart.fieldType(charts._FunnelDataLabelRendererState)
  }));
  let C341;
  let C344;
  let C343;
  let C342;
  let C347;
  let C346;
  let C345;
  const State_SingleTickerProviderStateMixin$36$0 = class State_SingleTickerProviderStateMixin extends framework.State$(charts._FunnelDataLabelRenderer) {};
  (State_SingleTickerProviderStateMixin$36$0.new = function() {
    ticker_provider.SingleTickerProviderStateMixin$(charts._FunnelDataLabelRenderer)[dart.mixinNew].call(this);
    State_SingleTickerProviderStateMixin$36$0.__proto__.new.call(this);
  }).prototype = State_SingleTickerProviderStateMixin$36$0.prototype;
  dart.applyMixin(State_SingleTickerProviderStateMixin$36$0, ticker_provider.SingleTickerProviderStateMixin$(charts._FunnelDataLabelRenderer));
  charts._FunnelDataLabelRendererState = class _FunnelDataLabelRendererState extends State_SingleTickerProviderStateMixin$36$0 {
    initState() {
      let t0;
      this.dataLabelRepaintNotifier = new (ValueNotifierOfint()).new(0);
      this.animationController = (t0 = new animation_controller.AnimationController.new({vsync: this}), t0.addListener(dart.bind(this, 'repaintDataLabelElements')), t0);
      super.initState();
    }
    dispose() {
      if (this.animationController != null) {
        this.animationController.removeListener(dart.bind(this, 'repaintDataLabelElements'));
        this.animationController.dispose();
        this.animationController = null;
      }
      super.dispose();
    }
    repaintDataLabelElements() {
      let t0;
      t0 = this.dataLabelRepaintNotifier;
      t0.value = dart.notNull(t0.value) + 1;
    }
    render() {
      this.setState(dart.fn(() => {
        this.widget.show = true;
      }, VoidToNull()));
    }
    build(context) {
      this.widget.state = this;
      this.animationController.duration = C244 || CT.C244;
      let dataLabelAnimation = new (TweenOfdouble()).new({begin: 0.0, end: 1.0}).animate(new animations.CurvedAnimation.new({parent: this.animationController, curve: C124 || CT.C124}));
      if (dart.test(this.widget.funnelChart[_chartState].initialRender)) {
        this.animationController.forward({from: 0.0});
      }
      return !dart.test(this.widget.show) ? new container.Container.new({$creationLocationd_0dea112b090073317d4: C341 || CT.C341}) : new container.Container.new({child: new basic.CustomPaint.new({painter: new charts._FunnelDataLabelPainter.new({funnelChart: this.widget.funnelChart, animation: dataLabelAnimation, state: this, notifier: this.dataLabelRepaintNotifier, animationController: this.animationController}), $creationLocationd_0dea112b090073317d4: C342 || CT.C342}), $creationLocationd_0dea112b090073317d4: C345 || CT.C345});
    }
  };
  (charts._FunnelDataLabelRendererState.new = function() {
    this.animationControllersList = null;
    this.animationController = null;
    this.dataLabelRepaintNotifier = null;
    charts._FunnelDataLabelRendererState.__proto__.new.call(this);
    ;
  }).prototype = charts._FunnelDataLabelRendererState.prototype;
  dart.addTypeTests(charts._FunnelDataLabelRendererState);
  dart.setMethodSignature(charts._FunnelDataLabelRendererState, () => ({
    __proto__: dart.getMethods(charts._FunnelDataLabelRendererState.__proto__),
    repaintDataLabelElements: dart.fnType(dart.void, []),
    render: dart.fnType(dart.void, []),
    build: dart.fnType(framework.Widget, [framework.BuildContext])
  }));
  dart.setLibraryUri(charts._FunnelDataLabelRendererState, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._FunnelDataLabelRendererState, () => ({
    __proto__: dart.getFields(charts._FunnelDataLabelRendererState.__proto__),
    animationControllersList: dart.fieldType(core.List$(animation_controller.AnimationController)),
    animationController: dart.fieldType(animation_controller.AnimationController),
    dataLabelRepaintNotifier: dart.fieldType(change_notifier.ValueNotifier$(core.int))
  }));
  charts._FunnelDataLabelPainter = class _FunnelDataLabelPainter extends custom_paint.CustomPainter {
    paint(canvas, size) {
      let series = this.funnelChart.series;
      if (series.dataLabelSettings != null && dart.test(series.dataLabelSettings.isVisible)) {
        charts._renderFunnelDataLabel(series, canvas, this.funnelChart, this.animation);
      }
    }
    shouldRepaint(oldDelegate) {
      charts._FunnelDataLabelPainter._check(oldDelegate);
      return true;
    }
  };
  (charts._FunnelDataLabelPainter.new = function(opts) {
    let funnelChart = opts && 'funnelChart' in opts ? opts.funnelChart : null;
    let state = opts && 'state' in opts ? opts.state : null;
    let animationController = opts && 'animationController' in opts ? opts.animationController : null;
    let animation = opts && 'animation' in opts ? opts.animation : null;
    let notifier = opts && 'notifier' in opts ? opts.notifier : null;
    this.funnelChart = funnelChart;
    this.state = state;
    this.animationController = animationController;
    this.animation = animation;
    charts._FunnelDataLabelPainter.__proto__.new.call(this, {repaint: notifier});
    ;
  }).prototype = charts._FunnelDataLabelPainter.prototype;
  dart.addTypeTests(charts._FunnelDataLabelPainter);
  dart.setMethodSignature(charts._FunnelDataLabelPainter, () => ({
    __proto__: dart.getMethods(charts._FunnelDataLabelPainter.__proto__),
    paint: dart.fnType(dart.void, [ui.Canvas, ui.Size]),
    shouldRepaint: dart.fnType(core.bool, [core.Object])
  }));
  dart.setLibraryUri(charts._FunnelDataLabelPainter, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._FunnelDataLabelPainter, () => ({
    __proto__: dart.getFields(charts._FunnelDataLabelPainter.__proto__),
    funnelChart: dart.finalFieldType(charts.SfFunnelChart),
    state: dart.finalFieldType(charts._FunnelDataLabelRendererState),
    animationController: dart.finalFieldType(animation_controller.AnimationController),
    animation: dart.finalFieldType(animation.Animation$(core.double))
  }));
  const widget$0 = dart.privateName(charts, "CartesianChartAnnotation.widget");
  const coordinateUnit$ = dart.privateName(charts, "CartesianChartAnnotation.coordinateUnit");
  const region$ = dart.privateName(charts, "CartesianChartAnnotation.region");
  const x$1 = dart.privateName(charts, "CartesianChartAnnotation.x");
  const y$1 = dart.privateName(charts, "CartesianChartAnnotation.y");
  const xAxisName$ = dart.privateName(charts, "CartesianChartAnnotation.xAxisName");
  const yAxisName$ = dart.privateName(charts, "CartesianChartAnnotation.yAxisName");
  const horizontalAlignment$0 = dart.privateName(charts, "CartesianChartAnnotation.horizontalAlignment");
  const verticalAlignment$0 = dart.privateName(charts, "CartesianChartAnnotation.verticalAlignment");
  charts.CartesianChartAnnotation = class CartesianChartAnnotation extends core.Object {
    get widget() {
      return this[widget$0];
    }
    set widget(value) {
      super.widget = value;
    }
    get coordinateUnit() {
      return this[coordinateUnit$];
    }
    set coordinateUnit(value) {
      super.coordinateUnit = value;
    }
    get region() {
      return this[region$];
    }
    set region(value) {
      super.region = value;
    }
    get x() {
      return this[x$1];
    }
    set x(value) {
      super.x = value;
    }
    get y() {
      return this[y$1];
    }
    set y(value) {
      super.y = value;
    }
    get xAxisName() {
      return this[xAxisName$];
    }
    set xAxisName(value) {
      super.xAxisName = value;
    }
    get yAxisName() {
      return this[yAxisName$];
    }
    set yAxisName(value) {
      super.yAxisName = value;
    }
    get horizontalAlignment() {
      return this[horizontalAlignment$0];
    }
    set horizontalAlignment(value) {
      super.horizontalAlignment = value;
    }
    get verticalAlignment() {
      return this[verticalAlignment$0];
    }
    set verticalAlignment(value) {
      super.verticalAlignment = value;
    }
  };
  (charts.CartesianChartAnnotation.new = function(opts) {
    let t0, t0$, t0$0, t0$1, t0$2, t0$3;
    let widget = opts && 'widget' in opts ? opts.widget : null;
    let coordinateUnit = opts && 'coordinateUnit' in opts ? opts.coordinateUnit : null;
    let region = opts && 'region' in opts ? opts.region : null;
    let horizontalAlignment = opts && 'horizontalAlignment' in opts ? opts.horizontalAlignment : null;
    let verticalAlignment = opts && 'verticalAlignment' in opts ? opts.verticalAlignment : null;
    let x = opts && 'x' in opts ? opts.x : null;
    let y = opts && 'y' in opts ? opts.y : null;
    let xAxisName = opts && 'xAxisName' in opts ? opts.xAxisName : null;
    let yAxisName = opts && 'yAxisName' in opts ? opts.yAxisName : null;
    this[widget$0] = widget;
    this[xAxisName$] = xAxisName;
    this[yAxisName$] = yAxisName;
    this[coordinateUnit$] = (t0 = coordinateUnit, t0 == null ? charts.CoordinateUnit.logicalPixel : t0);
    this[region$] = (t0$ = region, t0$ == null ? charts.AnnotationRegion.chart : t0$);
    this[x$1] = (t0$0 = x, t0$0 == null ? 0 : t0$0);
    this[y$1] = core.num._check((t0$1 = y, t0$1 == null ? 0 : t0$1));
    this[horizontalAlignment$0] = (t0$2 = horizontalAlignment, t0$2 == null ? charts.ChartAlignment.center : t0$2);
    this[verticalAlignment$0] = (t0$3 = verticalAlignment, t0$3 == null ? charts.ChartAlignment.center : t0$3);
    ;
  }).prototype = charts.CartesianChartAnnotation.prototype;
  dart.addTypeTests(charts.CartesianChartAnnotation);
  dart.setLibraryUri(charts.CartesianChartAnnotation, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.CartesianChartAnnotation, () => ({
    __proto__: dart.getFields(charts.CartesianChartAnnotation.__proto__),
    widget: dart.finalFieldType(framework.Widget),
    coordinateUnit: dart.finalFieldType(charts.CoordinateUnit),
    region: dart.finalFieldType(charts.AnnotationRegion),
    x: dart.finalFieldType(dart.dynamic),
    y: dart.finalFieldType(core.num),
    xAxisName: dart.finalFieldType(dart.dynamic),
    yAxisName: dart.finalFieldType(dart.dynamic),
    horizontalAlignment: dart.finalFieldType(charts.ChartAlignment),
    verticalAlignment: dart.finalFieldType(charts.ChartAlignment)
  }));
  const _rangeMinimum = dart.privateName(charts, "_rangeMinimum");
  const _rangeMaximum = dart.privateName(charts, "_rangeMaximum");
  const _axisRenderer = dart.privateName(charts, "_axisRenderer");
  const _maximumLabelSize = dart.privateName(charts, "_maximumLabelSize");
  const _orientation = dart.privateName(charts, "_orientation");
  const _actualRange = dart.privateName(charts, "_actualRange");
  const _series = dart.privateName(charts, "_series");
  const _isInsideTickPosition = dart.privateName(charts, "_isInsideTickPosition");
  const _totalSize = dart.privateName(charts, "_totalSize");
  const _previousZoomFactor = dart.privateName(charts, "_previousZoomFactor");
  const _previousZoomPosition = dart.privateName(charts, "_previousZoomPosition");
  const _labelRotation = dart.privateName(charts, "_labelRotation");
  const _zoomFactor = dart.privateName(charts, "_zoomFactor");
  const _zoomPosition = dart.privateName(charts, "_zoomPosition");
  const _isCollide = dart.privateName(charts, "_isCollide");
  const _min = dart.privateName(charts, "_min");
  const _max = dart.privateName(charts, "_max");
  const _lowMin = dart.privateName(charts, "_lowMin");
  const _lowMax = dart.privateName(charts, "_lowMax");
  const _highMin = dart.privateName(charts, "_highMin");
  const _highMax = dart.privateName(charts, "_highMax");
  const _crossAxis = dart.privateName(charts, "_crossAxis");
  const _crossValue = dart.privateName(charts, "_crossValue");
  const _crossRange = dart.privateName(charts, "_crossRange");
  const _labelOffset = dart.privateName(charts, "_labelOffset");
  const _bounds = dart.privateName(charts, "_bounds");
  const Rect_bottom = dart.privateName(ui, "Rect.bottom");
  const Rect_right = dart.privateName(ui, "Rect.right");
  const Rect_top = dart.privateName(ui, "Rect.top");
  const Rect_left = dart.privateName(ui, "Rect.left");
  let C348;
  const _visibleLabels = dart.privateName(charts, "_visibleLabels");
  const _visibleRange = dart.privateName(charts, "_visibleRange");
  const _chart = dart.privateName(charts, "_chart");
  const _axisSize = dart.privateName(charts, "_axisSize");
  const _minimumX = dart.privateName(charts, "_minimumX");
  const _maximumX = dart.privateName(charts, "_maximumX");
  const _minimumY = dart.privateName(charts, "_minimumY");
  const _maximumY = dart.privateName(charts, "_maximumY");
  const _xAxis$ = dart.privateName(charts, "_xAxis");
  const _yAxis$ = dart.privateName(charts, "_yAxis");
  const _requireInvertedAxis = dart.privateName(charts, "_requireInvertedAxis");
  const _findMinMax = dart.privateName(charts, "_findMinMax");
  const _calculateDesiredIntervalCount = dart.privateName(charts, "_calculateDesiredIntervalCount");
  const _calculateNumericNiceInterval = dart.privateName(charts, "_calculateNumericNiceInterval");
  let C349;
  let C350;
  const _calculateRangePadding = dart.privateName(charts, "_calculateRangePadding");
  const _findAdditionalRange = dart.privateName(charts, "_findAdditionalRange");
  const _findNormalRange = dart.privateName(charts, "_findNormalRange");
  const _updateActualRange = dart.privateName(charts, "_updateActualRange");
  const _applyRangePadding = dart.privateName(charts, "_applyRangePadding");
  const _triggerLabelRenderEvent = dart.privateName(charts, "_triggerLabelRenderEvent");
  const _axisClipRect = dart.privateName(charts, "_axisClipRect");
  const _chartAxis = dart.privateName(charts, "_chartAxis");
  const _performLabelIntersectAction = dart.privateName(charts, "_performLabelIntersectAction");
  const _calculateMaximumLabelSize = dart.privateName(charts, "_calculateMaximumLabelSize");
  const _findMultiRows = dart.privateName(charts, "_findMultiRows");
  let C351;
  let C352;
  let C353;
  const _labelCollection = dart.privateName(charts, "_labelCollection");
  const _textWrap = dart.privateName(charts, "_textWrap");
  let C354;
  const _index = dart.privateName(charts, "_index");
  const _textTrim = dart.privateName(charts, "_textTrim");
  const _calculateZoomRange = dart.privateName(charts, "_calculateZoomRange");
  const _checkWithZoomState = dart.privateName(charts, "_checkWithZoomState");
  const isVisible$1 = dart.privateName(charts, "ChartAxis.isVisible");
  const isStack100$ = dart.privateName(charts, "ChartAxis.isStack100");
  const axisLine$ = dart.privateName(charts, "ChartAxis.axisLine");
  const majorTickLines$ = dart.privateName(charts, "ChartAxis.majorTickLines");
  const minorTickLines$ = dart.privateName(charts, "ChartAxis.minorTickLines");
  const majorGridLines$ = dart.privateName(charts, "ChartAxis.majorGridLines");
  const minorGridLines$ = dart.privateName(charts, "ChartAxis.minorGridLines");
  const labelStyle$ = dart.privateName(charts, "ChartAxis.labelStyle");
  const title$2 = dart.privateName(charts, "ChartAxis.title");
  const rangePadding$ = dart.privateName(charts, "ChartAxis.rangePadding");
  const desiredIntervals$ = dart.privateName(charts, "ChartAxis.desiredIntervals");
  const maximumLabels$ = dart.privateName(charts, "ChartAxis.maximumLabels");
  const minorTicksPerInterval$ = dart.privateName(charts, "ChartAxis.minorTicksPerInterval");
  const labelRotation$ = dart.privateName(charts, "ChartAxis.labelRotation");
  const labelIntersectAction$ = dart.privateName(charts, "ChartAxis.labelIntersectAction");
  const opposedPosition$ = dart.privateName(charts, "ChartAxis.opposedPosition");
  const isInversed$ = dart.privateName(charts, "ChartAxis.isInversed");
  const labelPosition$ = dart.privateName(charts, "ChartAxis.labelPosition");
  const labelAlignment$ = dart.privateName(charts, "ChartAxis.labelAlignment");
  const tickPosition$ = dart.privateName(charts, "ChartAxis.tickPosition");
  const edgeLabelPlacement$ = dart.privateName(charts, "ChartAxis.edgeLabelPlacement");
  const interval$ = dart.privateName(charts, "ChartAxis.interval");
  const plotOffset$ = dart.privateName(charts, "ChartAxis.plotOffset");
  const name$3 = dart.privateName(charts, "ChartAxis.name");
  const _visibleRange$ = dart.privateName(charts, "ChartAxis._visibleRange");
  const zoomFactor$ = dart.privateName(charts, "ChartAxis.zoomFactor");
  const zoomPosition$ = dart.privateName(charts, "ChartAxis.zoomPosition");
  const enableAutoIntervalOnZooming$ = dart.privateName(charts, "ChartAxis.enableAutoIntervalOnZooming");
  const interactiveTooltip$ = dart.privateName(charts, "ChartAxis.interactiveTooltip");
  const crossesAt$ = dart.privateName(charts, "ChartAxis.crossesAt");
  const associatedAxisName$ = dart.privateName(charts, "ChartAxis.associatedAxisName");
  const placeLabelsNearAxisLine$ = dart.privateName(charts, "ChartAxis.placeLabelsNearAxisLine");
  const plotBands$ = dart.privateName(charts, "ChartAxis.plotBands");
  const rangeController$ = dart.privateName(charts, "ChartAxis.rangeController");
  const _chart$ = dart.privateName(charts, "ChartAxis._chart");
  const _axisSize$ = dart.privateName(charts, "ChartAxis._axisSize");
  charts.ChartAxis = class ChartAxis extends core.Object {
    get isVisible() {
      return this[isVisible$1];
    }
    set isVisible(value) {
      super.isVisible = value;
    }
    get isStack100() {
      return this[isStack100$];
    }
    set isStack100(value) {
      this[isStack100$] = value;
    }
    get axisLine() {
      return this[axisLine$];
    }
    set axisLine(value) {
      super.axisLine = value;
    }
    get majorTickLines() {
      return this[majorTickLines$];
    }
    set majorTickLines(value) {
      super.majorTickLines = value;
    }
    get minorTickLines() {
      return this[minorTickLines$];
    }
    set minorTickLines(value) {
      super.minorTickLines = value;
    }
    get majorGridLines() {
      return this[majorGridLines$];
    }
    set majorGridLines(value) {
      super.majorGridLines = value;
    }
    get minorGridLines() {
      return this[minorGridLines$];
    }
    set minorGridLines(value) {
      super.minorGridLines = value;
    }
    get labelStyle() {
      return this[labelStyle$];
    }
    set labelStyle(value) {
      super.labelStyle = value;
    }
    get title() {
      return this[title$2];
    }
    set title(value) {
      super.title = value;
    }
    get rangePadding() {
      return this[rangePadding$];
    }
    set rangePadding(value) {
      super.rangePadding = value;
    }
    get desiredIntervals() {
      return this[desiredIntervals$];
    }
    set desiredIntervals(value) {
      super.desiredIntervals = value;
    }
    get maximumLabels() {
      return this[maximumLabels$];
    }
    set maximumLabels(value) {
      super.maximumLabels = value;
    }
    get minorTicksPerInterval() {
      return this[minorTicksPerInterval$];
    }
    set minorTicksPerInterval(value) {
      super.minorTicksPerInterval = value;
    }
    get labelRotation() {
      return this[labelRotation$];
    }
    set labelRotation(value) {
      super.labelRotation = value;
    }
    get labelIntersectAction() {
      return this[labelIntersectAction$];
    }
    set labelIntersectAction(value) {
      super.labelIntersectAction = value;
    }
    get opposedPosition() {
      return this[opposedPosition$];
    }
    set opposedPosition(value) {
      super.opposedPosition = value;
    }
    get isInversed() {
      return this[isInversed$];
    }
    set isInversed(value) {
      super.isInversed = value;
    }
    get labelPosition() {
      return this[labelPosition$];
    }
    set labelPosition(value) {
      super.labelPosition = value;
    }
    get labelAlignment() {
      return this[labelAlignment$];
    }
    set labelAlignment(value) {
      super.labelAlignment = value;
    }
    get tickPosition() {
      return this[tickPosition$];
    }
    set tickPosition(value) {
      super.tickPosition = value;
    }
    get edgeLabelPlacement() {
      return this[edgeLabelPlacement$];
    }
    set edgeLabelPlacement(value) {
      super.edgeLabelPlacement = value;
    }
    get interval() {
      return this[interval$];
    }
    set interval(value) {
      super.interval = value;
    }
    get plotOffset() {
      return this[plotOffset$];
    }
    set plotOffset(value) {
      super.plotOffset = value;
    }
    get name() {
      return this[name$3];
    }
    set name(value) {
      super.name = value;
    }
    get [_visibleRange]() {
      return this[_visibleRange$];
    }
    set [_visibleRange](value) {
      this[_visibleRange$] = value;
    }
    get zoomFactor() {
      return this[zoomFactor$];
    }
    set zoomFactor(value) {
      super.zoomFactor = value;
    }
    get zoomPosition() {
      return this[zoomPosition$];
    }
    set zoomPosition(value) {
      super.zoomPosition = value;
    }
    get enableAutoIntervalOnZooming() {
      return this[enableAutoIntervalOnZooming$];
    }
    set enableAutoIntervalOnZooming(value) {
      super.enableAutoIntervalOnZooming = value;
    }
    get interactiveTooltip() {
      return this[interactiveTooltip$];
    }
    set interactiveTooltip(value) {
      super.interactiveTooltip = value;
    }
    get crossesAt() {
      return this[crossesAt$];
    }
    set crossesAt(value) {
      super.crossesAt = value;
    }
    get associatedAxisName() {
      return this[associatedAxisName$];
    }
    set associatedAxisName(value) {
      super.associatedAxisName = value;
    }
    get placeLabelsNearAxisLine() {
      return this[placeLabelsNearAxisLine$];
    }
    set placeLabelsNearAxisLine(value) {
      super.placeLabelsNearAxisLine = value;
    }
    get plotBands() {
      return this[plotBands$];
    }
    set plotBands(value) {
      super.plotBands = value;
    }
    get rangeController() {
      return this[rangeController$];
    }
    set rangeController(value) {
      super.rangeController = value;
    }
    get [_chart]() {
      return this[_chart$];
    }
    set [_chart](value) {
      this[_chart$] = value;
    }
    get [_axisSize]() {
      return this[_axisSize$];
    }
    set [_axisSize](value) {
      this[_axisSize$] = value;
    }
    calculateRange(_axis) {
      this[_min] = null;
      this[_max] = null;
      let visibleSeries = null;
      let series = null;
      let paddingInterval = 0.0;
      let _xAxis = null;
      let _yAxis = null;
      visibleSeries = this[_series];
      for (let i = 0; i < dart.notNull(visibleSeries[$length]); i = i + 1) {
        series = visibleSeries[$_get](i);
        if (dart.test(series[_visible]) && series[_minimumX] != null && series[_maximumX] != null && series[_minimumY] != null && series[_maximumY] != null) {
          paddingInterval = 0.0;
          _xAxis = series[_xAxis$];
          _yAxis = series[_yAxis$];
          if ((charts.DateTimeAxis.is(_xAxis) || charts.NumericAxis.is(_xAxis)) && _xAxis.rangePadding != null && dart.equals(_xAxis.rangePadding, charts.ChartRangePadding.auto) && (series[_seriesType$][$contains]("column") || series[_seriesType$][$contains]("bar"))) {
            paddingInterval = dart.notNull(charts._calculateMinPointsDelta(this, visibleSeries, this[_chart])) / 2;
          }
          if (dart.equals(dart.test(this[_chart][_requireInvertedAxis]) ? _yAxis : _xAxis, _axis) && dart.equals(this[_orientation], charts.AxisOrientation.horizontal)) {
            dart.test(this[_chart][_requireInvertedAxis]) ? this[_findMinMax](series[_minimumY], series[_maximumY]) : this[_findMinMax](dart.notNull(series[_minimumX]) - paddingInterval, dart.notNull(series[_maximumX]) + paddingInterval);
          }
          if (dart.equals(dart.test(this[_chart][_requireInvertedAxis]) ? _xAxis : _yAxis, _axis) && dart.equals(this[_orientation], charts.AxisOrientation.vertical)) {
            dart.test(this[_chart][_requireInvertedAxis]) ? this[_findMinMax](dart.notNull(series[_minimumX]) - paddingInterval, dart.notNull(series[_maximumX]) + paddingInterval) : this[_findMinMax](series[_minimumY], series[_maximumY]);
          }
        }
      }
    }
    [_findMinMax](minVal, maxVal) {
      if (this[_min] == null || dart.notNull(this[_min]) > dart.notNull(minVal)) {
        this[_min] = minVal;
      }
      if (this[_max] == null || dart.notNull(this[_max]) < dart.notNull(maxVal)) {
        this[_max] = maxVal;
      }
    }
    [_calculateNumericNiceInterval](axis, delta, size) {
      let intervalDivisions = [10, 5, 2, 1];
      let niceInterval = null;
      let actualDesiredIntervalCount = this[_calculateDesiredIntervalCount](size, axis);
      niceInterval = dart.notNull(delta) / dart.notNull(actualDesiredIntervalCount);
      if (axis.desiredIntervals != null) {
        return niceInterval;
      }
      let minimumInterval = niceInterval === 0 ? 0 : math.pow(10, charts._logBase(niceInterval, 10)[$floor]());
      for (let i = 0; i < dart.notNull(core.num._check(dart.dload(intervalDivisions, 'length'))); i = i + 1) {
        let interval = core.num._check(dart.dsend(intervalDivisions, '_get', [i]));
        let currentInterval = minimumInterval * dart.notNull(interval);
        if (dart.notNull(actualDesiredIntervalCount) < dart.notNull(delta) / currentInterval) {
          break;
        }
        niceInterval = currentInterval;
      }
      return niceInterval;
    }
    [_calculateDesiredIntervalCount](availableSize, axis) {
      let size = dart.equals(axis[_orientation], charts.AxisOrientation.horizontal) ? availableSize.width : availableSize.height;
      if (axis.desiredIntervals == null) {
        let desiredIntervalCount = (dart.equals(axis[_orientation], charts.AxisOrientation.horizontal) ? 0.533 : 1) * dart.notNull(axis.maximumLabels);
        desiredIntervalCount = math.max(core.num, core.num._check(dart.dsend(size, '*', [desiredIntervalCount / 100])), 1);
        return desiredIntervalCount;
      } else {
        return axis.desiredIntervals;
      }
    }
    [_calculateRangePadding](axis, chart) {
      let padding = null;
      if (!dart.equals(axis.rangePadding, charts.ChartRangePadding.auto)) {
        padding = axis.rangePadding;
      } else if (dart.equals(axis.rangePadding, charts.ChartRangePadding.auto) && axis[_orientation] != null) {
        switch (axis[_orientation]) {
          case C349 || CT.C349:
          {
            padding = dart.test(chart[_requireInvertedAxis]) ? dart.test(this.isStack100) ? charts.ChartRangePadding.round : charts.ChartRangePadding.normal : charts.ChartRangePadding.none;
            break;
          }
          case C350 || CT.C350:
          {
            padding = !dart.test(chart[_requireInvertedAxis]) ? dart.test(this.isStack100) ? charts.ChartRangePadding.round : charts.ChartRangePadding.normal : charts.ChartRangePadding.none;
            break;
          }
        }
      }
      return padding;
    }
    [_applyRangePadding](axis, chart, range, _interval) {
      let start = core.num._check(range.minimum);
      let end = core.num._check(range.maximum);
      let padding = this[_calculateRangePadding](this, chart);
      if (dart.equals(padding, charts.ChartRangePadding.additional) || dart.equals(padding, charts.ChartRangePadding.round)) {
        this[_findAdditionalRange](this, start, end, _interval);
      } else if (dart.equals(padding, charts.ChartRangePadding.normal)) {
        this[_findNormalRange](this, start, end, _interval);
      } else {
        this[_updateActualRange](this, start, end, _interval);
      }
      range.delta = core.num._check(dart.dsend(range.maximum, '-', [range.minimum]));
    }
    [_findAdditionalRange](axis, start, end, interval) {
      let minimum = null;
      let maximum = null;
      minimum = (dart.notNull(start) / dart.notNull(interval))[$floor]() * dart.notNull(interval);
      maximum = (dart.notNull(end) / dart.notNull(interval))[$ceil]() * dart.notNull(interval);
      if (dart.equals(axis.rangePadding, charts.ChartRangePadding.additional)) {
        minimum = dart.notNull(minimum) - dart.notNull(interval);
        maximum = dart.notNull(maximum) + dart.notNull(interval);
      }
      this[_updateActualRange](axis, minimum, maximum, interval);
    }
    [_updateActualRange](axis, minimum, maximum, interval) {
      let _axis = axis;
      axis[_actualRange].minimum = dart.dload(_axis, 'minimum') != null ? dart.dload(_axis, 'minimum') : minimum;
      axis[_actualRange].maximum = dart.dload(_axis, 'maximum') != null ? dart.dload(_axis, 'maximum') : maximum;
      axis[_actualRange].delta = core.num._check(dart.dsend(axis[_actualRange].maximum, '-', [axis[_actualRange].minimum]));
      axis[_actualRange].interval = axis.interval != null ? axis.interval : interval;
    }
    [_findNormalRange](axis, start, end, interval) {
      let remaining = null;
      let minimum = null;
      let maximum = null;
      let startValue = start;
      if (charts.CategoryAxis.is(axis) && dart.equals(axis.labelPlacement, charts.LabelPlacement.onTicks)) {
        minimum = dart.notNull(start) - 0.5;
        maximum = dart.notNull(end) + 0.5;
      } else {
        if (dart.notNull(start) < 0) {
          startValue = 0;
          minimum = dart.notNull(start) + dart.notNull(start) / 20;
          remaining = dart.notNull(interval) + dart.notNull(charts._getValueByPercentage(minimum, interval));
          if (0.365 * dart.notNull(interval) >= dart.notNull(remaining)) {
            minimum = dart.notNull(minimum) - dart.notNull(interval);
          }
          if (dart.notNull(charts._getValueByPercentage(minimum, interval)) < 0) {
            minimum = dart.notNull(minimum) - dart.notNull(interval) - dart.notNull(charts._getValueByPercentage(minimum, interval));
          }
        } else {
          minimum = dart.notNull(start) < 5.0 / 6.0 * dart.notNull(end) ? 0 : dart.notNull(start) - (dart.notNull(end) - dart.notNull(start)) / 2;
          if (minimum[$modulo](interval) > 0) {
            minimum = dart.notNull(minimum) - minimum[$modulo](interval);
          }
        }
        maximum = dart.notNull(end) > 0 ? dart.notNull(end) + (dart.notNull(end) - dart.notNull(startValue)) / 20 : dart.notNull(end) - (dart.notNull(end) - dart.notNull(startValue)) / 20;
        remaining = dart.notNull(interval) - maximum[$modulo](interval);
        if (0.365 * dart.notNull(interval) >= dart.notNull(remaining)) {
          maximum = dart.notNull(maximum) + dart.notNull(interval);
        }
        if (maximum[$modulo](interval) > 0) {
          maximum = dart.notNull(maximum) + dart.notNull(interval) - maximum[$modulo](interval);
        }
      }
      if (minimum === 0) {
        interval = charts.NumericAxis.is(axis) ? this[_calculateNumericNiceInterval](axis, dart.notNull(maximum) - dart.notNull(minimum), this[_axisSize]) : this.calculateInterval(new charts._VisibleRange.new(minimum, maximum), this[_axisSize]);
        maximum = (dart.notNull(maximum) / dart.notNull(interval))[$ceil]() * dart.notNull(interval);
      }
      this[_updateActualRange](axis, minimum, maximum, interval);
    }
    [_triggerLabelRenderEvent](labelText, labelValue) {
      let axisLabelArgs = null;
      let textStyle = null;
      textStyle = this.labelStyle;
      if (this[_chart].onAxisLabelRender != null) {
        axisLabelArgs = new charts.AxisLabelRenderArgs.new();
        axisLabelArgs.text = labelText;
        axisLabelArgs.value = labelValue;
        axisLabelArgs.textStyle = textStyle;
        axisLabelArgs.axis = this;
        axisLabelArgs.orientation = this[_orientation];
        axisLabelArgs.axisName = this[_name$];
        this[_chart].onAxisLabelRender(axisLabelArgs);
        labelText = axisLabelArgs.text;
        textStyle = axisLabelArgs.textStyle;
      }
      let labelSize = charts._measureText(labelText, textStyle, this.labelRotation);
      this[_visibleLabels][$add](new charts.AxisLabel.new(textStyle, labelSize, labelText, labelValue));
    }
    [_calculateMaximumLabelSize](axis, chart) {
      let action = null;
      let label = null;
      let maximumLabelHeight = 0.0;
      let maximumLabelWidth = 0.0;
      let labelMaximumWidth = null;
      let pointX = null;
      action = axis.labelIntersectAction;
      labelMaximumWidth = dart.notNull(chart[_chartAxis][_axisClipRect].width) / dart.notNull(axis[_visibleLabels][$length]);
      if (dart.equals(axis[_orientation], charts.AxisOrientation.horizontal) && !dart.equals(axis.labelIntersectAction, charts.AxisLabelIntersectAction.none) && dart.notNull(axis[_visibleLabels][$length]) > 1) {
        let axisBounds = chart[_chartAxis][_axisClipRect];
        let label1 = null;
        let pointX1 = null;
        for (let i = 0; i < dart.notNull(axis[_visibleLabels][$length]) - 1; i = i + 1) {
          label = axis[_visibleLabels][$_get](i);
          pointX = dart.notNull(charts._valueToCoefficient(label.value, axis)) * dart.notNull(axisBounds.width) + dart.notNull(axisBounds.left);
          pointX = dart.notNull(pointX) - dart.notNull(label.labelSize.width) / 2;
          pointX = i === 0 && dart.equals(axis.edgeLabelPlacement, charts.EdgeLabelPlacement.shift) && (dart.notNull(pointX) < dart.notNull(axisBounds.left) && !dart.test(axis.isInversed) || dart.notNull(pointX) + dart.notNull(label.labelSize.width) > dart.notNull(axisBounds.right) && dart.test(axis.isInversed)) ? dart.test(axis.isInversed) ? dart.notNull(axisBounds.left) + dart.notNull(axisBounds.width) - dart.notNull(label.labelSize.width) : axisBounds.left : i === dart.notNull(axis[_visibleLabels][$length]) - 1 && dart.equals(axis.edgeLabelPlacement, charts.EdgeLabelPlacement.shift) && (dart.notNull(pointX) + dart.notNull(label.labelSize.width) > dart.notNull(axisBounds.right) && !dart.test(axis.isInversed) || dart.notNull(pointX) < dart.notNull(axisBounds.left) && dart.test(axis.isInversed)) ? dart.test(axis.isInversed) ? axisBounds.left : dart.notNull(axisBounds.left) + dart.notNull(axisBounds.width) - dart.notNull(label.labelSize.width) : pointX;
          label1 = axis[_visibleLabels][$_get](i + 1);
          pointX1 = dart.notNull(charts._valueToCoefficient(label1.value, axis)) * dart.notNull(chart[_chartAxis][_axisClipRect].width) + dart.notNull(chart[_chartAxis][_axisClipRect].left);
          pointX1 = dart.notNull(pointX1) - dart.notNull(label1.labelSize.width) / 2;
          if (dart.notNull(pointX) + dart.notNull(label.labelSize.width) > dart.notNull(pointX1) && !dart.test(axis.isInversed) || dart.notNull(pointX) - dart.notNull(label.labelSize.width) < dart.notNull(pointX1) && dart.test(axis.isInversed)) {
            this[_isCollide] = true;
            break;
          }
        }
      }
      for (let i = 0; i < dart.notNull(axis[_visibleLabels][$length]); i = i + 1) {
        label = axis[_visibleLabels][$_get](i);
        if (dart.notNull(label.labelSize.width) > dart.notNull(maximumLabelWidth)) {
          maximumLabelWidth = label.labelSize.width;
        }
        if (dart.notNull(label.labelSize.height) > dart.notNull(maximumLabelHeight)) {
          maximumLabelHeight = label.labelSize.height;
        }
        if (dart.equals(axis[_orientation], charts.AxisOrientation.horizontal)) {
          pointX = dart.notNull(charts._valueToCoefficient(label.value, axis)) * dart.notNull(chart[_chartAxis][_axisClipRect].width) + dart.notNull(chart[_chartAxis][_axisClipRect].left);
          pointX = dart.notNull(pointX) - dart.notNull(label.labelSize.width) / 2;
          if (dart.test(this[_isCollide])) {
            let _list = this[_performLabelIntersectAction](label, action, maximumLabelWidth, maximumLabelHeight, labelMaximumWidth, pointX, i, axis, chart);
            maximumLabelWidth = _list[$_get](0);
            maximumLabelHeight = _list[$_get](1);
          }
        }
      }
      axis[_maximumLabelSize] = new ui.Size.new(maximumLabelWidth, maximumLabelHeight);
    }
    [_performLabelIntersectAction](label, action, maximumLabelWidth, maximumLabelHeight, labelMaximumWidth, pointX, i, axis, chart) {
      let height = null;
      let angle = axis[_labelRotation];
      let currentLabelSize = null;
      switch (action) {
        case C351 || CT.C351:
        {
          if (dart.notNull(i) > 0) {
            height = this[_findMultiRows](i, pointX, label, axis, chart);
            if (dart.notNull(height) > dart.notNull(maximumLabelHeight)) {
              maximumLabelHeight = height;
            }
          }
          break;
        }
        case C352 || CT.C352:
        case C353 || CT.C353:
        {
          angle = dart.equals(action, charts.AxisLabelIntersectAction.rotate45) ? 45 : 90;
          axis[_labelRotation] = angle;
          currentLabelSize = charts._measureText(label.text, axis.labelStyle, angle);
          if (dart.notNull(currentLabelSize.height) > dart.notNull(maximumLabelHeight)) maximumLabelHeight = currentLabelSize.height;
          if (dart.notNull(currentLabelSize.width) > dart.notNull(maximumLabelWidth)) maximumLabelWidth = currentLabelSize.width;
          break;
        }
        case C354 || CT.C354:
        {
          label[_labelCollection] = this[_textWrap](label.text, labelMaximumWidth, axis);
          if (dart.test(label[_labelCollection][$isNotEmpty])) label.text = label[_labelCollection][$_get](0);
          height = dart.notNull(label.labelSize.height) * dart.notNull(label[_labelCollection][$length]);
          if (dart.notNull(height) > dart.notNull(maximumLabelHeight)) {
            maximumLabelHeight = height;
          }
          break;
        }
        default:
        {
          break;
        }
      }
      return JSArrayOfnum().of([maximumLabelWidth, maximumLabelHeight]);
    }
    [_findMultiRows](length, currentX, currentLabel, axis, chart) {
      let label = null;
      let pointX = null;
      let labelIndex = [];
      let isMultiRows = null;
      for (let i = dart.asInt(dart.notNull(length) - 1); i >= 0; i = i - 1) {
        label = axis[_visibleLabels][$_get](i);
        pointX = dart.notNull(charts._valueToCoefficient(label.value, axis)) * dart.notNull(chart[_chartAxis][_axisClipRect].width) + dart.notNull(chart[_chartAxis][_axisClipRect].left);
        isMultiRows = !dart.test(axis.isInversed) ? dart.notNull(currentX) < dart.notNull(pointX) + dart.notNull(label.labelSize.width) / 2 : dart.notNull(currentX) + dart.notNull(currentLabel.labelSize.width) > dart.notNull(pointX) - dart.notNull(label.labelSize.width) / 2;
        if (dart.test(isMultiRows)) {
          dart.dsend(labelIndex, 'add', [label[_index]]);
          currentLabel[_index] = dart.notNull(currentLabel[_index]) > dart.notNull(label[_index]) ? currentLabel[_index] : dart.notNull(label[_index]) + 1;
        } else {
          currentLabel[_index] = dart.dtest(dart.dsend(labelIndex, 'contains', [label[_index]])) ? currentLabel[_index] : label[_index];
        }
      }
      return dart.notNull(currentLabel.labelSize.height) * dart.notNull(currentLabel[_index]);
    }
    [_textWrap](currentLabel, maximumWidth, axis) {
      let textCollection = currentLabel[$split](core.RegExp.new(" "));
      let labelCollection = JSArrayOfString().of([]);
      let text = null;
      for (let i = 0; i < dart.notNull(textCollection[$length]); i = i + 1) {
        text = textCollection[$_get](i);
        dart.notNull(charts._measureText(text, axis.labelStyle, axis[_labelRotation]).width) < dart.notNull(maximumWidth) ? labelCollection[$add](text) : labelCollection[$add](this[_textTrim](text, maximumWidth, axis.labelStyle, axis));
      }
      return labelCollection;
    }
    [_textTrim](text, maximumWidth, labelStyle, axis) {
      let label = text;
      let size = charts._measureText(text, axis.labelStyle, axis[_labelRotation]).width;
      if (dart.notNull(size) > dart.notNull(maximumWidth)) {
        let textLength = text.length;
        for (let i = textLength - 1; i >= 0; i = i - 1) {
          label = text[$substring](0, i) + "...";
          size = charts._measureText(label, labelStyle, axis[_labelRotation]).width;
          if (dart.notNull(size) <= dart.notNull(maximumWidth)) {
            return label;
          }
        }
      }
      return label;
    }
    [_calculateZoomRange](axis, axisSize) {
      axis[_zoomFactor] = dart.notNull(axis[_zoomFactor]) > 1 ? 1.0 : dart.notNull(axis[_zoomFactor]) < 0 ? 0.0 : axis[_zoomFactor];
      axis[_zoomPosition] = dart.notNull(axis[_zoomPosition]) > 1 ? 1.0 : dart.notNull(axis[_zoomPosition]) < 0 ? 0.0 : axis[_zoomPosition];
      let baseRange = axis[_visibleRange];
      let start = null;
      let end = null;
      start = core.num._check(dart.dsend(axis[_visibleRange].minimum, '+', [dart.notNull(axis[_zoomPosition]) * dart.notNull(axis[_visibleRange].delta)]));
      end = dart.notNull(start) + dart.notNull(axis[_zoomFactor]) * dart.notNull(axis[_visibleRange].delta);
      if (dart.notNull(start) < dart.notNull(core.num._check(baseRange.minimum))) {
        end = dart.notNull(end) + dart.notNull(core.num._check(dart.dsend(baseRange.minimum, '-', [start])));
        start = core.num._check(baseRange.minimum);
      }
      if (dart.notNull(end) > dart.notNull(core.num._check(baseRange.maximum))) {
        start = dart.notNull(start) - (dart.notNull(end) - dart.notNull(core.num._check(baseRange.maximum)));
        end = core.num._check(baseRange.maximum);
      }
      axis[_visibleRange].minimum = start;
      axis[_visibleRange].maximum = end;
      axis[_visibleRange].delta = dart.notNull(end) - dart.notNull(start);
    }
    [_checkWithZoomState](axis, axisStates) {
      for (let i = 0; i < dart.notNull(axisStates[$length]); i = i + 1) {
        let zoomedAxis = axisStates[$_get](i);
        if (zoomedAxis[_name$] == axis[_name$]) {
          axis[_zoomFactor] = zoomedAxis[_zoomFactor];
          axis[_zoomPosition] = zoomedAxis[_zoomPosition];
          break;
        }
      }
    }
  };
  (charts.ChartAxis.new = function(opts) {
    let t0, t0$, t0$0, t0$1, t0$2, t0$3, t0$4, t0$5, t0$6, t0$7, t0$8, t0$9, t0$10, t0$11, t0$12, t0$13, t0$14, t0$15, t0$16, t0$17, t0$18, t0$19, t0$20, t0$21, t0$22, t0$23;
    let name = opts && 'name' in opts ? opts.name : null;
    let plotOffset = opts && 'plotOffset' in opts ? opts.plotOffset : null;
    let isVisible = opts && 'isVisible' in opts ? opts.isVisible : null;
    let isStack100 = opts && 'isStack100' in opts ? opts.isStack100 : null;
    let title = opts && 'title' in opts ? opts.title : null;
    let axisLine = opts && 'axisLine' in opts ? opts.axisLine : null;
    let rangePadding = opts && 'rangePadding' in opts ? opts.rangePadding : null;
    let labelRotation = opts && 'labelRotation' in opts ? opts.labelRotation : null;
    let labelPosition = opts && 'labelPosition' in opts ? opts.labelPosition : null;
    let labelAlignment = opts && 'labelAlignment' in opts ? opts.labelAlignment : null;
    let tickPosition = opts && 'tickPosition' in opts ? opts.tickPosition : null;
    let majorTickLines = opts && 'majorTickLines' in opts ? opts.majorTickLines : null;
    let minorTickLines = opts && 'minorTickLines' in opts ? opts.minorTickLines : null;
    let labelStyle = opts && 'labelStyle' in opts ? opts.labelStyle : null;
    let labelIntersectAction = opts && 'labelIntersectAction' in opts ? opts.labelIntersectAction : null;
    let desiredIntervals = opts && 'desiredIntervals' in opts ? opts.desiredIntervals : null;
    let majorGridLines = opts && 'majorGridLines' in opts ? opts.majorGridLines : null;
    let minorGridLines = opts && 'minorGridLines' in opts ? opts.minorGridLines : null;
    let maximumLabels = opts && 'maximumLabels' in opts ? opts.maximumLabels : null;
    let minorTicksPerInterval = opts && 'minorTicksPerInterval' in opts ? opts.minorTicksPerInterval : null;
    let isInversed = opts && 'isInversed' in opts ? opts.isInversed : null;
    let opposedPosition = opts && 'opposedPosition' in opts ? opts.opposedPosition : null;
    let edgeLabelPlacement = opts && 'edgeLabelPlacement' in opts ? opts.edgeLabelPlacement : null;
    let enableAutoIntervalOnZooming = opts && 'enableAutoIntervalOnZooming' in opts ? opts.enableAutoIntervalOnZooming : null;
    let zoomFactor = opts && 'zoomFactor' in opts ? opts.zoomFactor : null;
    let zoomPosition = opts && 'zoomPosition' in opts ? opts.zoomPosition : null;
    let interactiveTooltip = opts && 'interactiveTooltip' in opts ? opts.interactiveTooltip : null;
    let interval = opts && 'interval' in opts ? opts.interval : null;
    let crossesAt = opts && 'crossesAt' in opts ? opts.crossesAt : null;
    let associatedAxisName = opts && 'associatedAxisName' in opts ? opts.associatedAxisName : null;
    let placeLabelsNearAxisLine = opts && 'placeLabelsNearAxisLine' in opts ? opts.placeLabelsNearAxisLine : null;
    let plotBands = opts && 'plotBands' in opts ? opts.plotBands : null;
    let rangeController = opts && 'rangeController' in opts ? opts.rangeController : null;
    this[_rangeMinimum] = null;
    this[_rangeMaximum] = null;
    this[_axisRenderer] = null;
    this[_maximumLabelSize] = null;
    this[_orientation] = null;
    this[_visibleRange$] = null;
    this[_actualRange] = null;
    this[_series] = null;
    this[_isInsideTickPosition] = null;
    this[_totalSize] = null;
    this[_previousZoomFactor] = null;
    this[_previousZoomPosition] = null;
    this[_name$] = null;
    this[_labelRotation] = null;
    this[_zoomFactor] = null;
    this[_zoomPosition] = null;
    this[_isCollide] = false;
    this[_chart$] = null;
    this[_min] = null;
    this[_max] = null;
    this[_lowMin] = null;
    this[_lowMax] = null;
    this[_highMin] = null;
    this[_highMax] = null;
    this[_axisSize$] = null;
    this[_crossAxis] = null;
    this[_crossValue] = null;
    this[_crossRange] = null;
    this[_labelOffset] = null;
    this[name$3] = name;
    this[desiredIntervals$] = desiredIntervals;
    this[interval$] = interval;
    this[crossesAt$] = crossesAt;
    this[associatedAxisName$] = associatedAxisName;
    this[rangeController$] = rangeController;
    this[isVisible$1] = (t0 = isVisible, t0 == null ? true : t0);
    this[isStack100$] = (t0$ = isStack100, t0$ == null ? false : t0$);
    this[interactiveTooltip$] = (t0$0 = interactiveTooltip, t0$0 == null ? new charts.InteractiveTooltip.new() : t0$0);
    this[isInversed$] = (t0$1 = isInversed, t0$1 == null ? false : t0$1);
    this[plotOffset$] = (t0$2 = plotOffset, t0$2 == null ? 0.0 : t0$2);
    this[placeLabelsNearAxisLine$] = (t0$3 = placeLabelsNearAxisLine, t0$3 == null ? true : t0$3);
    this[opposedPosition$] = (t0$4 = opposedPosition, t0$4 == null ? false : t0$4);
    this[rangePadding$] = (t0$5 = rangePadding, t0$5 == null ? charts.ChartRangePadding.auto : t0$5);
    this[labelRotation$] = (t0$6 = labelRotation, t0$6 == null ? 0 : t0$6);
    this[labelPosition$] = (t0$7 = labelPosition, t0$7 == null ? charts.ChartDataLabelPosition.outside : t0$7);
    this[labelAlignment$] = (t0$8 = labelAlignment, t0$8 == null ? charts.LabelAlignment.center : t0$8);
    this[tickPosition$] = (t0$9 = tickPosition, t0$9 == null ? charts.TickPosition.outside : t0$9);
    this[labelIntersectAction$] = (t0$10 = labelIntersectAction, t0$10 == null ? charts.AxisLabelIntersectAction.hide : t0$10);
    this[minorTicksPerInterval$] = (t0$11 = minorTicksPerInterval, t0$11 == null ? 0 : t0$11);
    this[maximumLabels$] = (t0$12 = maximumLabels, t0$12 == null ? 3 : t0$12);
    this[labelStyle$] = charts._getTextStyle({textStyle: labelStyle, fontSize: 12.0, fontStyle: ui.FontStyle.normal, fontWeight: ui.FontWeight.normal, fontFamily: "Normal"});
    this[title$2] = (t0$13 = title, t0$13 == null ? new charts.AxisTitle.new() : t0$13);
    this[axisLine$] = (t0$14 = axisLine, t0$14 == null ? new charts.AxisLine.new() : t0$14);
    this[majorTickLines$] = (t0$15 = majorTickLines, t0$15 == null ? new charts.MajorTickLines.new() : t0$15);
    this[minorTickLines$] = (t0$16 = minorTickLines, t0$16 == null ? new charts.MinorTickLines.new() : t0$16);
    this[majorGridLines$] = (t0$17 = majorGridLines, t0$17 == null ? new charts.MajorGridLines.new() : t0$17);
    this[minorGridLines$] = (t0$18 = minorGridLines, t0$18 == null ? new charts.MinorGridLines.new() : t0$18);
    this[edgeLabelPlacement$] = (t0$19 = edgeLabelPlacement, t0$19 == null ? charts.EdgeLabelPlacement.none : t0$19);
    this[_bounds] = C348 || CT.C348;
    this[zoomFactor$] = (t0$20 = zoomFactor, t0$20 == null ? 1.0 : t0$20);
    this[zoomPosition$] = (t0$21 = zoomPosition, t0$21 == null ? 0.0 : t0$21);
    this[enableAutoIntervalOnZooming$] = (t0$22 = enableAutoIntervalOnZooming, t0$22 == null ? true : t0$22);
    this[plotBands$] = (t0$23 = plotBands, t0$23 == null ? JSArrayOfPlotBand().of([]) : t0$23);
    this[_visibleLabels] = JSArrayOfAxisLabel().of([]);
    this[_axisRenderer] = new charts._ChartAxisRenderer.new();
    this[_maximumLabelSize] = C122 || CT.C122;
    this[_series] = JSArrayOfCartesianSeries().of([]);
    this[_name$] = this.name;
    this[_labelRotation] = this.labelRotation;
    this[_zoomFactor] = this.zoomFactor;
    this[_zoomPosition] = this.zoomPosition;
  }).prototype = charts.ChartAxis.prototype;
  dart.addTypeTests(charts.ChartAxis);
  dart.setMethodSignature(charts.ChartAxis, () => ({
    __proto__: dart.getMethods(charts.ChartAxis.__proto__),
    calculateRange: dart.fnType(dart.void, [charts.ChartAxis]),
    [_findMinMax]: dart.fnType(dart.void, [core.num, core.num]),
    [_calculateNumericNiceInterval]: dart.fnType(core.num, [charts.ChartAxis, core.num, ui.Size]),
    [_calculateDesiredIntervalCount]: dart.fnType(core.num, [ui.Size, charts.ChartAxis]),
    [_calculateRangePadding]: dart.fnType(charts.ChartRangePadding, [charts.ChartAxis, charts.SfCartesianChart]),
    [_applyRangePadding]: dart.fnType(dart.void, [charts.ChartAxis, charts.SfCartesianChart, charts._VisibleRange, core.num]),
    [_findAdditionalRange]: dart.fnType(dart.void, [charts.ChartAxis, core.num, core.num, core.num]),
    [_updateActualRange]: dart.fnType(dart.void, [charts.ChartAxis, core.num, core.num, core.num]),
    [_findNormalRange]: dart.fnType(dart.void, [charts.ChartAxis, core.num, core.num, core.num]),
    [_triggerLabelRenderEvent]: dart.fnType(dart.void, [core.String, core.num]),
    [_calculateMaximumLabelSize]: dart.fnType(dart.void, [charts.ChartAxis, charts.SfCartesianChart]),
    [_performLabelIntersectAction]: dart.fnType(core.List$(core.num), [charts.AxisLabel, charts.AxisLabelIntersectAction, core.num, core.num, core.num, core.num, core.int, charts.ChartAxis, charts.SfCartesianChart]),
    [_findMultiRows]: dart.fnType(core.num, [core.num, core.num, charts.AxisLabel, charts.ChartAxis, charts.SfCartesianChart]),
    [_textWrap]: dart.fnType(core.List$(core.String), [core.String, core.num, charts.ChartAxis]),
    [_textTrim]: dart.fnType(core.String, [core.String, core.num, charts.ChartTextStyle, charts.ChartAxis]),
    [_calculateZoomRange]: dart.fnType(dart.void, [charts.ChartAxis, ui.Size]),
    [_checkWithZoomState]: dart.fnType(dart.void, [charts.ChartAxis, core.List$(charts.ChartAxis)])
  }));
  dart.setLibraryUri(charts.ChartAxis, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.ChartAxis, () => ({
    __proto__: dart.getFields(charts.ChartAxis.__proto__),
    isVisible: dart.finalFieldType(core.bool),
    isStack100: dart.fieldType(core.bool),
    [_rangeMinimum]: dart.fieldType(dart.dynamic),
    [_rangeMaximum]: dart.fieldType(dart.dynamic),
    axisLine: dart.finalFieldType(charts.AxisLine),
    majorTickLines: dart.finalFieldType(charts.MajorTickLines),
    minorTickLines: dart.finalFieldType(charts.MinorTickLines),
    majorGridLines: dart.finalFieldType(charts.MajorGridLines),
    minorGridLines: dart.finalFieldType(charts.MinorGridLines),
    labelStyle: dart.finalFieldType(charts.ChartTextStyle),
    title: dart.finalFieldType(charts.AxisTitle),
    rangePadding: dart.finalFieldType(charts.ChartRangePadding),
    desiredIntervals: dart.finalFieldType(core.int),
    maximumLabels: dart.finalFieldType(core.int),
    minorTicksPerInterval: dart.finalFieldType(core.int),
    labelRotation: dart.finalFieldType(core.int),
    labelIntersectAction: dart.finalFieldType(charts.AxisLabelIntersectAction),
    opposedPosition: dart.finalFieldType(core.bool),
    isInversed: dart.finalFieldType(core.bool),
    labelPosition: dart.finalFieldType(charts.ChartDataLabelPosition),
    labelAlignment: dart.finalFieldType(charts.LabelAlignment),
    tickPosition: dart.finalFieldType(charts.TickPosition),
    edgeLabelPlacement: dart.finalFieldType(charts.EdgeLabelPlacement),
    interval: dart.finalFieldType(core.double),
    plotOffset: dart.finalFieldType(core.double),
    [_axisRenderer]: dart.fieldType(charts._ChartAxisRenderer),
    [_visibleLabels]: dart.fieldType(core.List$(charts.AxisLabel)),
    name: dart.finalFieldType(core.String),
    [_maximumLabelSize]: dart.fieldType(ui.Size),
    [_orientation]: dart.fieldType(charts.AxisOrientation),
    [_visibleRange]: dart.fieldType(charts._VisibleRange),
    [_actualRange]: dart.fieldType(charts._VisibleRange),
    [_series]: dart.fieldType(core.List$(charts.CartesianSeries)),
    [_bounds]: dart.fieldType(ui.Rect),
    zoomFactor: dart.finalFieldType(core.double),
    zoomPosition: dart.finalFieldType(core.double),
    enableAutoIntervalOnZooming: dart.finalFieldType(core.bool),
    interactiveTooltip: dart.finalFieldType(charts.InteractiveTooltip),
    crossesAt: dart.finalFieldType(dart.dynamic),
    associatedAxisName: dart.finalFieldType(core.String),
    placeLabelsNearAxisLine: dart.finalFieldType(core.bool),
    plotBands: dart.finalFieldType(core.List$(charts.PlotBand)),
    rangeController: dart.finalFieldType(slider_controller.RangeController),
    [_isInsideTickPosition]: dart.fieldType(core.bool),
    [_totalSize]: dart.fieldType(core.double),
    [_previousZoomFactor]: dart.fieldType(core.double),
    [_previousZoomPosition]: dart.fieldType(core.double),
    [_name$]: dart.fieldType(core.String),
    [_labelRotation]: dart.fieldType(core.int),
    [_zoomFactor]: dart.fieldType(core.double),
    [_zoomPosition]: dart.fieldType(core.double),
    [_isCollide]: dart.fieldType(core.bool),
    [_chart]: dart.fieldType(charts.SfCartesianChart),
    [_min]: dart.fieldType(core.num),
    [_max]: dart.fieldType(core.num),
    [_lowMin]: dart.fieldType(core.num),
    [_lowMax]: dart.fieldType(core.num),
    [_highMin]: dart.fieldType(core.num),
    [_highMax]: dart.fieldType(core.num),
    [_axisSize]: dart.fieldType(ui.Size),
    [_crossAxis]: dart.fieldType(charts.ChartAxis),
    [_crossValue]: dart.fieldType(core.num),
    [_crossRange]: dart.fieldType(charts._VisibleRange),
    [_labelOffset]: dart.fieldType(core.num)
  }));
  const _labelRegion = dart.privateName(charts, "_labelRegion");
  const _needRender = dart.privateName(charts, "_needRender");
  const labelStyle$0 = dart.privateName(charts, "AxisLabel.labelStyle");
  const labelSize$ = dart.privateName(charts, "AxisLabel.labelSize");
  const text$1 = dart.privateName(charts, "AxisLabel.text");
  const value$ = dart.privateName(charts, "AxisLabel.value");
  charts.AxisLabel = class AxisLabel extends core.Object {
    get labelStyle() {
      return this[labelStyle$0];
    }
    set labelStyle(value) {
      this[labelStyle$0] = value;
    }
    get labelSize() {
      return this[labelSize$];
    }
    set labelSize(value) {
      this[labelSize$] = value;
    }
    get text() {
      return this[text$1];
    }
    set text(value) {
      this[text$1] = value;
    }
    get value() {
      return this[value$];
    }
    set value(value) {
      this[value$] = value;
    }
  };
  (charts.AxisLabel.new = function(labelStyle, labelSize, text, value) {
    this[_labelCollection] = null;
    this[_index] = 1;
    this[_labelRegion] = null;
    this[_needRender] = true;
    this[labelStyle$0] = labelStyle;
    this[labelSize$] = labelSize;
    this[text$1] = text;
    this[value$] = value;
    ;
  }).prototype = charts.AxisLabel.prototype;
  dart.addTypeTests(charts.AxisLabel);
  dart.setLibraryUri(charts.AxisLabel, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.AxisLabel, () => ({
    __proto__: dart.getFields(charts.AxisLabel.__proto__),
    labelStyle: dart.fieldType(charts.ChartTextStyle),
    labelSize: dart.fieldType(ui.Size),
    text: dart.fieldType(core.String),
    value: dart.fieldType(core.num),
    [_labelCollection]: dart.fieldType(core.List$(core.String)),
    [_index]: dart.fieldType(core.int),
    [_labelRegion]: dart.fieldType(ui.Rect),
    [_needRender]: dart.fieldType(core.bool)
  }));
  const size$ = dart.privateName(charts, "MajorTickLines.size");
  const width$3 = dart.privateName(charts, "MajorTickLines.width");
  const color$1 = dart.privateName(charts, "MajorTickLines.color");
  charts.MajorTickLines = class MajorTickLines extends core.Object {
    get size() {
      return this[size$];
    }
    set size(value) {
      super.size = value;
    }
    get width() {
      return this[width$3];
    }
    set width(value) {
      super.width = value;
    }
    get color() {
      return this[color$1];
    }
    set color(value) {
      super.color = value;
    }
  };
  (charts.MajorTickLines.new = function(opts) {
    let size = opts && 'size' in opts ? opts.size : 5;
    let width = opts && 'width' in opts ? opts.width : 1;
    let color = opts && 'color' in opts ? opts.color : null;
    this[size$] = size;
    this[width$3] = width;
    this[color$1] = color;
    ;
  }).prototype = charts.MajorTickLines.prototype;
  dart.addTypeTests(charts.MajorTickLines);
  dart.setLibraryUri(charts.MajorTickLines, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.MajorTickLines, () => ({
    __proto__: dart.getFields(charts.MajorTickLines.__proto__),
    size: dart.finalFieldType(core.double),
    width: dart.finalFieldType(core.double),
    color: dart.finalFieldType(ui.Color)
  }));
  const size$0 = dart.privateName(charts, "MinorTickLines.size");
  const width$4 = dart.privateName(charts, "MinorTickLines.width");
  const color$2 = dart.privateName(charts, "MinorTickLines.color");
  charts.MinorTickLines = class MinorTickLines extends core.Object {
    get size() {
      return this[size$0];
    }
    set size(value) {
      super.size = value;
    }
    get width() {
      return this[width$4];
    }
    set width(value) {
      super.width = value;
    }
    get color() {
      return this[color$2];
    }
    set color(value) {
      super.color = value;
    }
  };
  (charts.MinorTickLines.new = function(opts) {
    let size = opts && 'size' in opts ? opts.size : 3;
    let width = opts && 'width' in opts ? opts.width : 0.7;
    let color = opts && 'color' in opts ? opts.color : null;
    this[size$0] = size;
    this[width$4] = width;
    this[color$2] = color;
    ;
  }).prototype = charts.MinorTickLines.prototype;
  dart.addTypeTests(charts.MinorTickLines);
  dart.setLibraryUri(charts.MinorTickLines, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.MinorTickLines, () => ({
    __proto__: dart.getFields(charts.MinorTickLines.__proto__),
    size: dart.finalFieldType(core.double),
    width: dart.finalFieldType(core.double),
    color: dart.finalFieldType(ui.Color)
  }));
  const dashArray$ = dart.privateName(charts, "MajorGridLines.dashArray");
  const width$5 = dart.privateName(charts, "MajorGridLines.width");
  const color$3 = dart.privateName(charts, "MajorGridLines.color");
  charts.MajorGridLines = class MajorGridLines extends core.Object {
    get dashArray() {
      return this[dashArray$];
    }
    set dashArray(value) {
      super.dashArray = value;
    }
    get width() {
      return this[width$5];
    }
    set width(value) {
      super.width = value;
    }
    get color() {
      return this[color$3];
    }
    set color(value) {
      super.color = value;
    }
  };
  (charts.MajorGridLines.new = function(opts) {
    let width = opts && 'width' in opts ? opts.width : 0.7;
    let color = opts && 'color' in opts ? opts.color : null;
    let dashArray = opts && 'dashArray' in opts ? opts.dashArray : null;
    this[width$5] = width;
    this[color$3] = color;
    this[dashArray$] = dashArray;
    ;
  }).prototype = charts.MajorGridLines.prototype;
  dart.addTypeTests(charts.MajorGridLines);
  dart.setLibraryUri(charts.MajorGridLines, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.MajorGridLines, () => ({
    __proto__: dart.getFields(charts.MajorGridLines.__proto__),
    dashArray: dart.finalFieldType(core.List$(core.double)),
    width: dart.finalFieldType(core.double),
    color: dart.finalFieldType(ui.Color)
  }));
  const dashArray$0 = dart.privateName(charts, "MinorGridLines.dashArray");
  const width$6 = dart.privateName(charts, "MinorGridLines.width");
  const color$4 = dart.privateName(charts, "MinorGridLines.color");
  charts.MinorGridLines = class MinorGridLines extends core.Object {
    get dashArray() {
      return this[dashArray$0];
    }
    set dashArray(value) {
      super.dashArray = value;
    }
    get width() {
      return this[width$6];
    }
    set width(value) {
      super.width = value;
    }
    get color() {
      return this[color$4];
    }
    set color(value) {
      super.color = value;
    }
  };
  (charts.MinorGridLines.new = function(opts) {
    let width = opts && 'width' in opts ? opts.width : 0.5;
    let color = opts && 'color' in opts ? opts.color : null;
    let dashArray = opts && 'dashArray' in opts ? opts.dashArray : null;
    this[width$6] = width;
    this[color$4] = color;
    this[dashArray$0] = dashArray;
    ;
  }).prototype = charts.MinorGridLines.prototype;
  dart.addTypeTests(charts.MinorGridLines);
  dart.setLibraryUri(charts.MinorGridLines, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.MinorGridLines, () => ({
    __proto__: dart.getFields(charts.MinorGridLines.__proto__),
    dashArray: dart.finalFieldType(core.List$(core.double)),
    width: dart.finalFieldType(core.double),
    color: dart.finalFieldType(ui.Color)
  }));
  let C355;
  const text$2 = dart.privateName(charts, "AxisTitle.text");
  const textStyle$ = dart.privateName(charts, "AxisTitle.textStyle");
  const alignment$ = dart.privateName(charts, "AxisTitle.alignment");
  charts.AxisTitle = class AxisTitle extends core.Object {
    get text() {
      return this[text$2];
    }
    set text(value) {
      super.text = value;
    }
    get textStyle() {
      return this[textStyle$];
    }
    set textStyle(value) {
      super.textStyle = value;
    }
    get alignment() {
      return this[alignment$];
    }
    set alignment(value) {
      super.alignment = value;
    }
  };
  (charts.AxisTitle.new = function(opts) {
    let text = opts && 'text' in opts ? opts.text : null;
    let textStyle = opts && 'textStyle' in opts ? opts.textStyle : null;
    let alignment = opts && 'alignment' in opts ? opts.alignment : C355 || CT.C355;
    this[text$2] = text;
    this[alignment$] = alignment;
    this[textStyle$] = charts._getTextStyle({textStyle: textStyle, fontFamily: "Segoe UI", fontSize: 15.0, fontStyle: ui.FontStyle.normal, fontWeight: ui.FontWeight.normal});
    ;
  }).prototype = charts.AxisTitle.prototype;
  dart.addTypeTests(charts.AxisTitle);
  dart.setLibraryUri(charts.AxisTitle, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.AxisTitle, () => ({
    __proto__: dart.getFields(charts.AxisTitle.__proto__),
    text: dart.finalFieldType(core.String),
    textStyle: dart.finalFieldType(charts.ChartTextStyle),
    alignment: dart.finalFieldType(charts.ChartAlignment)
  }));
  const width$7 = dart.privateName(charts, "AxisLine.width");
  const color$5 = dart.privateName(charts, "AxisLine.color");
  const dashArray$1 = dart.privateName(charts, "AxisLine.dashArray");
  charts.AxisLine = class AxisLine extends core.Object {
    get width() {
      return this[width$7];
    }
    set width(value) {
      super.width = value;
    }
    get color() {
      return this[color$5];
    }
    set color(value) {
      super.color = value;
    }
    get dashArray() {
      return this[dashArray$1];
    }
    set dashArray(value) {
      super.dashArray = value;
    }
  };
  (charts.AxisLine.new = function(opts) {
    let color = opts && 'color' in opts ? opts.color : null;
    let dashArray = opts && 'dashArray' in opts ? opts.dashArray : null;
    let width = opts && 'width' in opts ? opts.width : 1;
    this[color$5] = color;
    this[dashArray$1] = dashArray;
    this[width$7] = width;
    ;
  }).prototype = charts.AxisLine.prototype;
  dart.addTypeTests(charts.AxisLine);
  dart.setLibraryUri(charts.AxisLine, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.AxisLine, () => ({
    __proto__: dart.getFields(charts.AxisLine.__proto__),
    width: dart.finalFieldType(core.double),
    color: dart.finalFieldType(ui.Color),
    dashArray: dart.finalFieldType(core.List$(core.double))
  }));
  charts._VisibleRange = class _VisibleRange extends core.Object {};
  (charts._VisibleRange.new = function(min, max) {
    this.minimum = null;
    this.maximum = null;
    this.interval = null;
    this.delta = null;
    if (dart.dtest(dart.dsend(min, '<', [max]))) {
      this.minimum = min;
      this.maximum = max;
    } else {
      this.minimum = max;
      this.maximum = min;
    }
  }).prototype = charts._VisibleRange.prototype;
  dart.addTypeTests(charts._VisibleRange);
  dart.setLibraryUri(charts._VisibleRange, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._VisibleRange, () => ({
    __proto__: dart.getFields(charts._VisibleRange.__proto__),
    minimum: dart.fieldType(dart.dynamic),
    maximum: dart.fieldType(dart.dynamic),
    interval: dart.fieldType(dart.dynamic),
    delta: dart.fieldType(core.num)
  }));
  const _chartWidget = dart.privateName(charts, "_chartWidget");
  const _leftAxes = dart.privateName(charts, "_leftAxes");
  const _rightAxes = dart.privateName(charts, "_rightAxes");
  const _topAxes = dart.privateName(charts, "_topAxes");
  const _bottomAxes = dart.privateName(charts, "_bottomAxes");
  const _leftAxesCount = dart.privateName(charts, "_leftAxesCount");
  const _bottomAxesCount = dart.privateName(charts, "_bottomAxesCount");
  const _topAxesCount = dart.privateName(charts, "_topAxesCount");
  const _rightAxesCount = dart.privateName(charts, "_rightAxesCount");
  const _bottomSize = dart.privateName(charts, "_bottomSize");
  const _topSize = dart.privateName(charts, "_topSize");
  const _leftSize = dart.privateName(charts, "_leftSize");
  const _rightSize = dart.privateName(charts, "_rightSize");
  const _innerPadding = dart.privateName(charts, "_innerPadding");
  const _axisPadding = dart.privateName(charts, "_axisPadding");
  const _verticalAxes = dart.privateName(charts, "_verticalAxes");
  const _horizontalAxes = dart.privateName(charts, "_horizontalAxes");
  const _axisCollections = dart.privateName(charts, "_axisCollections");
  const _calculateCrossingValues = dart.privateName(charts, "_calculateCrossingValues");
  const _axisCrossing = dart.privateName(charts, "_axisCrossing");
  const _calculateRangeAndInterval = dart.privateName(charts, "_calculateRangeAndInterval");
  const _labels = dart.privateName(charts, "_labels");
  const _updateCrossValue = dart.privateName(charts, "_updateCrossValue");
  const _measureAxesSize = dart.privateName(charts, "_measureAxesSize");
  const _calculateSeriesClipRect = dart.privateName(charts, "_calculateSeriesClipRect");
  const _calculateLabelRotationAngle = dart.privateName(charts, "_calculateLabelRotationAngle");
  const _calculateAxesRect = dart.privateName(charts, "_calculateAxesRect");
  const _measureAxesBounds = dart.privateName(charts, "_measureAxesBounds");
  const _getAxisIndex = dart.privateName(charts, "_getAxisIndex");
  const _getPrevAxisOffset = dart.privateName(charts, "_getPrevAxisOffset");
  const _calculateLeftAxesBounds = dart.privateName(charts, "_calculateLeftAxesBounds");
  const _calculateBottomAxesBounds = dart.privateName(charts, "_calculateBottomAxesBounds");
  const _calculateRightAxesBounds = dart.privateName(charts, "_calculateRightAxesBounds");
  const _calculateTopAxesBounds = dart.privateName(charts, "_calculateTopAxesBounds");
  const _calculateVisibleAxes = dart.privateName(charts, "_calculateVisibleAxes");
  charts._ChartAxis = class _ChartAxis extends core.Object {
    [_axisCrossing](axis) {
      if (axis.crossesAt != null) {
        if (axis.associatedAxisName != null) {
          for (let i = 0; i < dart.notNull(this[_chartWidget][_chartAxis][_axisCollections][$length]); i = i + 1) {
            if (axis.associatedAxisName == this[_chartWidget][_chartAxis][_axisCollections][$_get](i)[_name$]) {
              axis[_crossAxis] = this[_chartWidget][_chartAxis][_axisCollections][$_get](i);
              this[_calculateCrossingValues](axis, axis[_crossAxis]);
            }
          }
        } else {
          axis[_crossAxis] = dart.test(this[_chartWidget][_requireInvertedAxis]) ? axis[_crossAxis] = dart.equals(axis[_orientation], charts.AxisOrientation.horizontal) ? this[_chartWidget].primaryXAxis : this[_chartWidget].primaryYAxis : dart.equals(axis[_orientation], charts.AxisOrientation.horizontal) ? this[_chartWidget].primaryYAxis : this[_chartWidget].primaryXAxis;
          this[_calculateCrossingValues](axis, axis[_crossAxis]);
        }
      }
    }
    [_calculateCrossingValues](currentAxis, targetAxis) {
      let value = currentAxis.crossesAt;
      value = typeof value == 'string' && core.num.tryParse(value) != null ? core.num.tryParse(value) : value;
      if (charts.DateTimeAxis.is(targetAxis)) {
        value = core.DateTime.is(value) ? value.millisecondsSinceEpoch : value;
        targetAxis[_calculateRangeAndInterval](this[_chartWidget], "AxisCross");
      } else if (charts.CategoryAxis.is(targetAxis)) {
        value = typeof value == 'number' ? value[$floor]() : dart.dsend(targetAxis[_labels], 'indexOf', [value]);
        targetAxis[_calculateRangeAndInterval](this[_chartWidget], "AxisCross");
      } else if (charts.LogarithmicAxis.is(targetAxis)) {
        value = charts._logBase(core.num._check(value), targetAxis.logBase);
        targetAxis[_calculateRangeAndInterval](this[_chartWidget], "AxisCross");
      } else if (charts.NumericAxis.is(targetAxis)) {
        targetAxis[_calculateRangeAndInterval](this[_chartWidget], "AxisCross");
      }
      if (!dart.dtest(dart.dload(value, 'isNaN'))) {
        currentAxis[_crossValue] = this[_updateCrossValue](core.num._check(value), targetAxis[_visibleRange]);
        currentAxis[_crossRange] = targetAxis[_visibleRange];
      }
    }
    [_measureAxesBounds]() {
      this[_bottomSize] = 0.0;
      this[_topSize] = 0.0;
      this[_leftSize] = 0.0;
      this[_rightSize] = 0.0;
      this[_leftAxesCount] = JSArrayOf_AxisSize().of([]);
      this[_bottomAxesCount] = JSArrayOf_AxisSize().of([]);
      this[_topAxesCount] = JSArrayOf_AxisSize().of([]);
      this[_rightAxesCount] = JSArrayOf_AxisSize().of([]);
      this[_bottomAxes] = JSArrayOfChartAxis().of([]);
      this[_rightAxes] = JSArrayOfChartAxis().of([]);
      this[_topAxes] = JSArrayOfChartAxis().of([]);
      this[_leftAxes] = JSArrayOfChartAxis().of([]);
      if (dart.test(this[_verticalAxes][$isNotEmpty])) {
        for (let axisIndex = 0; axisIndex < dart.notNull(this[_verticalAxes][$length]); axisIndex = axisIndex + 1) {
          let axis = this[_verticalAxes][$_get](axisIndex);
          dart.dsend(axis, _calculateRangeAndInterval, [this[_chartWidget]]);
          this[_axisCrossing](charts.ChartAxis._check(axis));
          this[_measureAxesSize](charts.ChartAxis._check(axis));
        }
        this[_calculateSeriesClipRect]();
      }
      if (dart.test(this[_horizontalAxes][$isNotEmpty])) {
        for (let axisIndex = 0; axisIndex < dart.notNull(this[_horizontalAxes][$length]); axisIndex = axisIndex + 1) {
          let axis = this[_horizontalAxes][$_get](axisIndex);
          this[_calculateLabelRotationAngle](charts.ChartAxis._check(axis));
          dart.dsend(axis, _calculateRangeAndInterval, [this[_chartWidget]]);
          this[_axisCrossing](charts.ChartAxis._check(axis));
          this[_measureAxesSize](charts.ChartAxis._check(axis));
        }
      }
      this[_calculateAxesRect]();
    }
    [_measureAxesSize](axis) {
      let t0, t0$, t0$0, t0$1;
      let titleSize = 0;
      axis[_totalSize] = 0.0;
      if (dart.test(axis.isVisible)) {
        if (axis.title.text != null && axis.title.text[$isNotEmpty]) {
          titleSize = dart.notNull(charts._measureText(axis.title.text, axis.title.textStyle).height) + dart.notNull(this[_axisPadding]);
        }
        let rect = this[_chartWidget][_chartState].containerRect;
        let axisIndex = this[_getAxisIndex](axis);
        let tickSize = axisIndex === 0 && dart.equals(axis.tickPosition, charts.TickPosition.inside) ? 0.0 : math.max(core.num, axis.majorTickLines.size, dart.notNull(axis.minorTicksPerInterval) > 0 ? axis.minorTickLines.size : 0) + dart.notNull(this[_innerPadding]);
        let labelSize = axisIndex === 0 && dart.equals(axis.labelPosition, charts.ChartDataLabelPosition.inside) ? 0.0 : dart.notNull(axis.labelStyle.fontSize === 0 ? 0 : dart.equals(axis[_orientation], charts.AxisOrientation.horizontal) ? axis[_maximumLabelSize].height : axis[_maximumLabelSize].width) + dart.notNull(this[_innerPadding]);
        axis[_totalSize] = titleSize + tickSize + labelSize;
        if (dart.equals(axis[_orientation], charts.AxisOrientation.horizontal)) {
          if (!dart.test(axis.opposedPosition)) {
            t0 = axis;
            t0[_totalSize] = dart.notNull(t0[_totalSize]) + (dart.test(this[_bottomAxes][$isNotEmpty]) && dart.notNull(axis.labelStyle.fontSize) > 0 ? this[_axisPadding][$toDouble]() : 0);
            if (axis[_crossValue] != null && axis[_crossRange] != null) {
              let crosPosition = dart.notNull(charts._valueToCoefficient(axis[_crossValue], axis[_crossAxis])) * dart.notNull(rect.height);
              axis[_totalSize] = crosPosition - dart.notNull(axis[_totalSize]) < 0 ? (crosPosition - dart.notNull(axis[_totalSize]))[$abs]() : !dart.test(axis.placeLabelsNearAxisLine) ? labelSize : 0.0;
            }
            this[_bottomSize] = dart.notNull(this[_bottomSize]) + dart.notNull(axis[_totalSize]);
            this[_bottomAxesCount][$add](new charts._AxisSize.new(axis, axis[_totalSize]));
          } else {
            t0$ = axis;
            t0$[_totalSize] = dart.notNull(t0$[_totalSize]) + (dart.test(this[_topAxes][$isNotEmpty]) && dart.notNull(axis.labelStyle.fontSize) > 0 ? this[_axisPadding][$toDouble]() : 0);
            if (axis[_crossValue] != null && axis[_crossRange] != null) {
              let crosPosition = dart.notNull(charts._valueToCoefficient(axis[_crossValue], axis[_crossAxis])) * dart.notNull(rect.height);
              axis[_totalSize] = crosPosition + dart.notNull(axis[_totalSize]) > dart.notNull(rect.height) ? (crosPosition + dart.notNull(axis[_totalSize]) - dart.notNull(rect.height))[$abs]() : !dart.test(axis.placeLabelsNearAxisLine) ? labelSize : 0.0;
            }
            this[_topSize] = dart.notNull(this[_topSize]) + dart.notNull(axis[_totalSize]);
            this[_topAxesCount][$add](new charts._AxisSize.new(axis, axis[_totalSize]));
          }
        } else if (dart.equals(axis[_orientation], charts.AxisOrientation.vertical)) {
          if (!dart.test(axis.opposedPosition)) {
            t0$0 = axis;
            t0$0[_totalSize] = dart.notNull(t0$0[_totalSize]) + (dart.test(this[_leftAxes][$isNotEmpty]) && dart.notNull(axis.labelStyle.fontSize) > 0 ? this[_axisPadding][$toDouble]() : 0);
            if (axis[_crossValue] != null && axis[_crossRange] != null) {
              let crosPosition = dart.notNull(charts._valueToCoefficient(axis[_crossValue], axis[_crossAxis])) * dart.notNull(rect.width);
              axis[_totalSize] = crosPosition - dart.notNull(axis[_totalSize]) < 0 ? (crosPosition - dart.notNull(axis[_totalSize]))[$abs]() : !dart.test(axis.placeLabelsNearAxisLine) ? labelSize : 0.0;
            }
            this[_leftSize] = dart.notNull(this[_leftSize]) + dart.notNull(axis[_totalSize]);
            this[_leftAxesCount][$add](new charts._AxisSize.new(axis, axis[_totalSize]));
          } else {
            t0$1 = axis;
            t0$1[_totalSize] = dart.notNull(t0$1[_totalSize]) + (dart.test(this[_rightAxes][$isNotEmpty]) && dart.notNull(axis.labelStyle.fontSize) > 0 ? this[_axisPadding][$toDouble]() : 0);
            if (axis[_crossValue] != null && axis[_crossRange] != null) {
              let crosPosition = dart.notNull(charts._valueToCoefficient(axis[_crossValue], axis[_crossAxis])) * dart.notNull(rect.width);
              axis[_totalSize] = crosPosition + dart.notNull(axis[_totalSize]) > dart.notNull(rect.width) ? (crosPosition + dart.notNull(axis[_totalSize]) - dart.notNull(rect.width))[$abs]() : !dart.test(axis.placeLabelsNearAxisLine) ? labelSize : 0.0;
            }
            this[_rightSize] = dart.notNull(this[_rightSize]) + dart.notNull(axis[_totalSize]);
            this[_rightAxesCount][$add](new charts._AxisSize.new(axis, axis[_totalSize]));
          }
        }
      }
    }
    [_getAxisIndex](axis) {
      let index = null;
      if (dart.equals(axis[_orientation], charts.AxisOrientation.horizontal)) {
        if (!dart.test(axis.opposedPosition)) {
          this[_bottomAxes][$add](axis);
          index = this[_bottomAxes][$length];
        } else {
          this[_topAxes][$add](axis);
          index = this[_topAxes][$length];
        }
      } else if (dart.equals(axis[_orientation], charts.AxisOrientation.vertical)) {
        if (!dart.test(axis.opposedPosition)) {
          this[_leftAxes][$add](axis);
          index = this[_leftAxes][$length];
        } else {
          this[_rightAxes][$add](axis);
          index = this[_rightAxes][$length];
        }
      }
      return dart.notNull(index) - 1;
    }
    [_calculateLabelRotationAngle](axis) {
      let angle = axis[_labelRotation];
      if (dart.notNull(angle) < -360 || dart.notNull(angle) > 360) {
        angle = angle[$modulo](360);
      }
      if (angle[$isNegative]) {
        angle = dart.notNull(angle) + 360;
      }
      axis[_labelRotation] = angle;
    }
    [_calculateSeriesClipRect]() {
      let containerRect = this[_chartWidget][_chartState].containerRect;
      let padding = this[_chartWidget].title.text != null && this[_chartWidget].title.text[$isNotEmpty] ? 10 : 0;
      this[_chartWidget][_chartAxis][_axisClipRect] = new ui.Rect.fromLTWH(dart.notNull(containerRect.left) + dart.notNull(this[_leftSize]), dart.notNull(containerRect.top) + dart.notNull(this[_topSize]) + padding, dart.notNull(containerRect.width) - dart.notNull(this[_leftSize]) - dart.notNull(this[_rightSize]), dart.notNull(containerRect.height) - dart.notNull(this[_topSize]) - dart.notNull(this[_bottomSize]) - padding);
    }
    [_updateCrossValue](value, range) {
      if (dart.notNull(value) < dart.notNull(core.num._check(dart.dload(range, 'minimum')))) {
        value = core.num._check(dart.dload(range, 'minimum'));
      }
      if (dart.notNull(value) > dart.notNull(core.num._check(dart.dload(range, 'maximum')))) {
        value = core.num._check(dart.dload(range, 'maximum'));
      }
      return value;
    }
    [_getPrevAxisOffset](axesSize, rect, currentAxisIndex, type) {
      let prevAxisOffsetValue = null;
      if (dart.notNull(currentAxisIndex) > 0) {
        for (let i = dart.notNull(currentAxisIndex) - 1; i >= 0; i = i - 1) {
          let axis = axesSize[$_get](i).axis;
          let bounds = axis[_bounds];
          if (type === "Left" && (axis[_labelOffset] != null ? dart.notNull(axis[_labelOffset]) - dart.notNull(axis[_maximumLabelSize].width) : dart.notNull(bounds.left) - dart.notNull(bounds.width)) < dart.notNull(rect.left)) {
            prevAxisOffsetValue = axis[_labelOffset] != null ? dart.notNull(axis[_labelOffset]) - dart.notNull(axis[_maximumLabelSize].width) : dart.notNull(bounds.left) - dart.notNull(bounds.width);
            break;
          } else if (type === "Bottom" && (axis[_labelOffset] != null ? dart.notNull(axis[_labelOffset]) + dart.notNull(axis[_maximumLabelSize].height) : dart.notNull(bounds.top) + dart.notNull(bounds.height)) > dart.notNull(rect.top) + dart.notNull(rect.height)) {
            prevAxisOffsetValue = axis[_labelOffset] != null ? dart.notNull(axis[_labelOffset]) + dart.notNull(axis[_maximumLabelSize].height) : dart.notNull(bounds.top) + dart.notNull(bounds.height);
            break;
          } else if (type === "Right" && (axis[_labelOffset] != null ? dart.notNull(axis[_labelOffset]) + dart.notNull(axis[_maximumLabelSize].width) : dart.notNull(bounds.left) + dart.notNull(bounds.width)) > dart.notNull(rect.left) + dart.notNull(rect.width)) {
            prevAxisOffsetValue = axis[_labelOffset] != null ? dart.notNull(axis[_labelOffset]) + dart.notNull(axis[_maximumLabelSize].width) : dart.notNull(bounds.left) + dart.notNull(bounds.width);
            break;
          } else if (type === "Top" && (axis[_labelOffset] != null ? dart.notNull(axis[_labelOffset]) - dart.notNull(axis[_maximumLabelSize].height) : dart.notNull(bounds.top) - dart.notNull(bounds.height)) < dart.notNull(rect.top)) {
            prevAxisOffsetValue = axis[_labelOffset] != null ? dart.notNull(axis[_labelOffset]) - dart.notNull(axis[_maximumLabelSize].height) : dart.notNull(bounds.top) - dart.notNull(bounds.height);
            break;
          }
        }
      }
      return prevAxisOffsetValue;
    }
    [_calculateAxesRect]() {
      this[_calculateSeriesClipRect]();
      if (dart.test(this[_leftAxesCount][$isNotEmpty])) {
        this[_calculateLeftAxesBounds]();
      }
      if (dart.test(this[_bottomAxesCount][$isNotEmpty])) {
        this[_calculateBottomAxesBounds]();
      }
      if (dart.test(this[_rightAxesCount][$isNotEmpty])) {
        this[_calculateRightAxesBounds]();
      }
      if (dart.test(this[_topAxesCount][$isNotEmpty])) {
        this[_calculateTopAxesBounds]();
      }
    }
    [_calculateLeftAxesBounds]() {
      let axisSize = null;
      let width = null;
      let axesLength = this[_leftAxesCount][$length];
      let rect = this[_chartWidget][_chartAxis][_axisClipRect];
      for (let axisIndex = 0; axisIndex < dart.notNull(axesLength); axisIndex = axisIndex + 1) {
        width = this[_leftAxesCount][$_get](axisIndex).size;
        let axis = this[_leftAxesCount][$_get](axisIndex).axis;
        if (axis[_crossValue] != null) {
          axisSize = dart.notNull(charts._valueToCoefficient(axis[_crossValue], axis[_crossAxis])) * dart.notNull(rect.width) + dart.notNull(rect.left);
          if (axisIndex === 0 && !dart.test(axis.placeLabelsNearAxisLine)) {
            axis[_labelOffset] = dart.notNull(rect.left) - 5;
          }
        } else {
          let prevAxisOffsetValue = this[_getPrevAxisOffset](this[_leftAxesCount], rect, axisIndex, "Left");
          axisSize = prevAxisOffsetValue == null ? rect.left : dart.notNull(prevAxisOffsetValue) - (dart.equals(axis.labelPosition, charts.ChartDataLabelPosition.inside) ? dart.notNull(this[_innerPadding]) + dart.notNull(axis[_maximumLabelSize].width) : 0) - (dart.equals(axis.tickPosition, charts.TickPosition.inside) ? math.max(core.num, axis.majorTickLines.size, dart.notNull(axis.minorTicksPerInterval) > 0 ? axis.minorTickLines.size : 0) : 0) - dart.notNull(this[_axisPadding]);
        }
        axis[_bounds] = new ui.Rect.fromLTWH(axisSize, dart.notNull(rect.top) + dart.notNull(axis.plotOffset), width, dart.notNull(rect.height) - 2 * dart.notNull(axis.plotOffset));
      }
    }
    [_calculateBottomAxesBounds]() {
      let axisSize = null;
      let height = null;
      let axesLength = this[_bottomAxesCount][$length];
      let rect = this[_chartWidget][_chartAxis][_axisClipRect];
      for (let axisIndex = 0; axisIndex < dart.notNull(axesLength); axisIndex = axisIndex + 1) {
        height = this[_bottomAxesCount][$_get](axisIndex).size;
        let axis = this[_bottomAxesCount][$_get](axisIndex).axis;
        if (axis[_crossValue] != null) {
          axisSize = dart.notNull(rect.top) + dart.notNull(rect.height) - dart.notNull(charts._valueToCoefficient(axis[_crossValue], axis[_crossAxis])) * dart.notNull(rect.height);
          if (axisIndex === 0 && !dart.test(axis.placeLabelsNearAxisLine)) {
            axis[_labelOffset] = dart.notNull(rect.top) + dart.notNull(rect.height) + 5;
          }
        } else {
          let prevAxisOffsetValue = this[_getPrevAxisOffset](this[_bottomAxesCount], rect, axisIndex, "Bottom");
          axisSize = prevAxisOffsetValue == null ? dart.notNull(rect.top) + dart.notNull(rect.height) : dart.notNull(this[_axisPadding]) + dart.notNull(prevAxisOffsetValue) + (dart.equals(axis.labelPosition, charts.ChartDataLabelPosition.inside) ? dart.notNull(this[_innerPadding]) + dart.notNull(axis[_maximumLabelSize].height) : 0) + (dart.equals(axis.tickPosition, charts.TickPosition.inside) ? math.max(core.num, axis.majorTickLines.size, dart.notNull(axis.minorTicksPerInterval) > 0 ? axis.minorTickLines.size : 0) : 0);
        }
        axis[_bounds] = new ui.Rect.fromLTWH(dart.notNull(rect.left) + dart.notNull(axis.plotOffset), axisSize, dart.notNull(rect.width) - 2 * dart.notNull(axis.plotOffset), height);
      }
    }
    [_calculateRightAxesBounds]() {
      let axisSize = null;
      let width = null;
      let axesLength = this[_rightAxesCount][$length];
      let rect = this[_chartWidget][_chartAxis][_axisClipRect];
      for (let axisIndex = 0; axisIndex < dart.notNull(axesLength); axisIndex = axisIndex + 1) {
        let axis = this[_rightAxesCount][$_get](axisIndex).axis;
        width = this[_rightAxesCount][$_get](axisIndex).size;
        if (axis[_crossValue] != null) {
          axisSize = dart.notNull(rect.left) + dart.notNull(charts._valueToCoefficient(axis[_crossValue], axis[_crossAxis])) * dart.notNull(rect.width);
          if (axisIndex === 0 && !dart.test(axis.placeLabelsNearAxisLine)) {
            axis[_labelOffset] = dart.notNull(rect.left) + dart.notNull(rect.width) + 5;
          }
        } else {
          let prevAxisOffsetValue = this[_getPrevAxisOffset](this[_rightAxesCount], rect, axisIndex, "Right");
          axisSize = prevAxisOffsetValue == null ? dart.notNull(rect.left) + dart.notNull(rect.width) : dart.notNull(prevAxisOffsetValue) + (dart.equals(axis.labelPosition, charts.ChartDataLabelPosition.inside) ? dart.notNull(axis[_maximumLabelSize].width) + dart.notNull(this[_innerPadding]) : 0) + (dart.equals(axis.tickPosition, charts.TickPosition.inside) ? math.max(core.num, axis.majorTickLines.size, dart.notNull(axis.minorTicksPerInterval) > 0 ? axis.minorTickLines.size : 0) : 0) + dart.notNull(this[_axisPadding]);
        }
        axis[_bounds] = new ui.Rect.fromLTWH(axisSize, dart.notNull(rect.top) + dart.notNull(axis.plotOffset), width, dart.notNull(rect.height) - 2 * dart.notNull(axis.plotOffset));
      }
    }
    [_calculateTopAxesBounds]() {
      let axisSize = null;
      let height = null;
      let axesLength = this[_topAxesCount][$length];
      let rect = this[_chartWidget][_chartAxis][_axisClipRect];
      for (let axisIndex = 0; axisIndex < dart.notNull(axesLength); axisIndex = axisIndex + 1) {
        let axis = this[_topAxesCount][$_get](axisIndex).axis;
        height = this[_topAxesCount][$_get](axisIndex).size;
        if (axis[_crossValue] != null) {
          axisSize = dart.notNull(rect.top) + dart.notNull(rect.height) - dart.notNull(charts._valueToCoefficient(axis[_crossValue], axis[_crossAxis])) * dart.notNull(rect.height);
          if (axisIndex === 0 && !dart.test(axis.placeLabelsNearAxisLine)) {
            axis[_labelOffset] = dart.notNull(rect.top) - 5;
          }
        } else {
          let prevAxisOffsetValue = this[_getPrevAxisOffset](this[_topAxesCount], rect, axisIndex, "Top");
          axisSize = prevAxisOffsetValue == null ? rect.top : dart.notNull(prevAxisOffsetValue) - (dart.equals(axis.labelPosition, charts.ChartDataLabelPosition.inside) ? dart.notNull(this[_axisPadding]) + dart.notNull(axis[_maximumLabelSize].height) : 0) - (dart.equals(axis.tickPosition, charts.TickPosition.inside) ? math.max(core.num, axis.majorTickLines.size, dart.notNull(axis.minorTicksPerInterval) > 0 ? axis.minorTickLines.size : 0) : 0) - dart.notNull(this[_axisPadding]);
        }
        axis[_bounds] = new ui.Rect.fromLTWH(dart.notNull(rect.left) + dart.notNull(axis.plotOffset), axisSize, dart.notNull(rect.width) - 2 * dart.notNull(axis.plotOffset), height);
      }
    }
    [_calculateVisibleAxes]() {
      let t0, t0$;
      this[_innerPadding] = this[_chartWidget].borderWidth;
      this[_axisPadding] = 5;
      this[_axisClipRect] = C348 || CT.C348;
      this[_verticalAxes] = JSArrayOfChartAxis().of([]);
      this[_horizontalAxes] = JSArrayOfChartAxis().of([]);
      this[_chartWidget].primaryXAxis[_name$] = (t0 = this[_chartWidget].primaryXAxis[_name$], t0 == null ? "primaryXAxis" : t0);
      this[_chartWidget].primaryYAxis[_name$] = (t0$ = this[_chartWidget].primaryYAxis[_name$], t0$ == null ? "primaryYAxis" : t0$);
      this[_axisCollections] = JSArrayOfChartAxis().of([this[_chartWidget].primaryXAxis, this[_chartWidget].primaryYAxis]);
      let visibleSeries = ListOfCartesianSeries()._check(this[_chartWidget][_chartSeries].visibleSeries);
      if (dart.test(visibleSeries[$isNotEmpty])) {
        if (dart.test(this[_chartWidget].axes[$isNotEmpty])) {
          this[_axisCollections][$addAll](this[_chartWidget].axes);
        }
        let axisNames = JSArrayOfString().of([]);
        for (let axisIndex = 0; axisIndex < dart.notNull(this[_chartWidget].axes[$length]); axisIndex = axisIndex + 1) {
          axisNames[$add](this[_chartWidget].axes[$_get](axisIndex)[_name$]);
        }
        for (let axisIndex = 0; axisIndex < dart.notNull(this[_axisCollections][$length]); axisIndex = axisIndex + 1) {
          let axis = this[_axisCollections][$_get](axisIndex);
          if (charts.CategoryAxis.is(axis)) {
            axis[_labels] = [];
          }
          axis[_series] = JSArrayOfCartesianSeries().of([]);
          for (let seriesIndex = 0; seriesIndex < dart.notNull(visibleSeries[$length]); seriesIndex = seriesIndex + 1) {
            let series = charts.XyDataSeries._check(visibleSeries[$_get](seriesIndex));
            if (series.xAxisName != null ? series.xAxisName == axis[_name$] || !dart.test(axisNames[$contains](series.xAxisName)) || series.xAxisName == this[_chartWidget].primaryXAxis[_name$] : axis[_name$] == this[_chartWidget].primaryXAxis[_name$]) {
              axis[_orientation] = dart.test(this[_chartWidget][_requireInvertedAxis]) ? charts.AxisOrientation.vertical : charts.AxisOrientation.horizontal;
              series[_xAxis$] = axis;
              axis[_series][$add](series);
            } else if (series.yAxisName != null ? series.yAxisName == axis[_name$] || !dart.test(axisNames[$contains](series.yAxisName)) || series.yAxisName == this[_chartWidget].primaryYAxis[_name$] : axis[_name$] == this[_chartWidget].primaryYAxis[_name$]) {
              axis[_orientation] = dart.test(this[_chartWidget][_requireInvertedAxis]) ? charts.AxisOrientation.horizontal : charts.AxisOrientation.vertical;
              series[_yAxis$] = axis;
              axis[_series][$add](series);
            }
          }
          if (axis[_orientation] == null && dart.test(this[_chartWidget].indicators[$isNotEmpty])) {
            for (let i = 0; i < dart.notNull(this[_chartWidget].indicators[$length]); i = i + 1) {
              if (dart.test(this[_chartWidget].indicators[$_get](i).isVisible)) {
                if (this[_chartWidget].indicators[$_get](i).xAxisName == axis[_name$]) {
                  axis[_orientation] = dart.test(this[_chartWidget][_requireInvertedAxis]) ? charts.AxisOrientation.vertical : charts.AxisOrientation.horizontal;
                } else if (this[_chartWidget].indicators[$_get](i).yAxisName == axis[_name$]) {
                  axis[_orientation] = dart.test(this[_chartWidget][_requireInvertedAxis]) ? charts.AxisOrientation.horizontal : charts.AxisOrientation.vertical;
                }
              }
            }
          }
          if (axis[_orientation] != null) {
            dart.equals(axis[_orientation], charts.AxisOrientation.vertical) ? this[_verticalAxes][$add](axis) : this[_horizontalAxes][$add](axis);
          }
        }
      } else {
        this[_chartWidget].primaryXAxis[_orientation] = dart.test(this[_chartWidget][_requireInvertedAxis]) ? charts.AxisOrientation.vertical : charts.AxisOrientation.horizontal;
        this[_chartWidget].primaryYAxis[_orientation] = dart.test(this[_chartWidget][_requireInvertedAxis]) ? charts.AxisOrientation.horizontal : charts.AxisOrientation.vertical;
        this[_horizontalAxes][$add](this[_chartWidget].primaryXAxis);
        this[_verticalAxes][$add](this[_chartWidget].primaryYAxis);
        if (this[_chartWidget].axes != null) {
          this[_axisCollections][$addAll](this[_chartWidget].axes);
        }
      }
    }
  };
  (charts._ChartAxis.new = function() {
    this[_chartWidget] = null;
    this[_leftAxes] = JSArrayOfChartAxis().of([]);
    this[_rightAxes] = JSArrayOfChartAxis().of([]);
    this[_topAxes] = JSArrayOfChartAxis().of([]);
    this[_bottomAxes] = JSArrayOfChartAxis().of([]);
    this[_leftAxesCount] = null;
    this[_bottomAxesCount] = null;
    this[_topAxesCount] = null;
    this[_rightAxesCount] = null;
    this[_bottomSize] = 0.0;
    this[_topSize] = 0.0;
    this[_leftSize] = 0.0;
    this[_rightSize] = 0.0;
    this[_innerPadding] = 0;
    this[_axisPadding] = 0;
    this[_axisClipRect] = null;
    this[_verticalAxes] = JSArrayOfChartAxis().of([]);
    this[_horizontalAxes] = JSArrayOfChartAxis().of([]);
    this[_axisCollections] = JSArrayOfChartAxis().of([]);
    this[_needsRepaint] = null;
    this[_innerPadding] = 5;
    this[_axisPadding] = 10;
    this[_axisClipRect] = C348 || CT.C348;
    this[_verticalAxes] = JSArrayOfChartAxis().of([]);
    this[_horizontalAxes] = JSArrayOfChartAxis().of([]);
    this[_needsRepaint] = true;
  }).prototype = charts._ChartAxis.prototype;
  dart.addTypeTests(charts._ChartAxis);
  dart.setMethodSignature(charts._ChartAxis, () => ({
    __proto__: dart.getMethods(charts._ChartAxis.__proto__),
    [_axisCrossing]: dart.fnType(dart.void, [charts.ChartAxis]),
    [_calculateCrossingValues]: dart.fnType(dart.void, [charts.ChartAxis, charts.ChartAxis]),
    [_measureAxesBounds]: dart.fnType(dart.void, []),
    [_measureAxesSize]: dart.fnType(dart.void, [charts.ChartAxis]),
    [_getAxisIndex]: dart.fnType(core.int, [charts.ChartAxis]),
    [_calculateLabelRotationAngle]: dart.fnType(dart.void, [charts.ChartAxis]),
    [_calculateSeriesClipRect]: dart.fnType(dart.void, []),
    [_updateCrossValue]: dart.fnType(core.num, [core.num, dart.dynamic]),
    [_getPrevAxisOffset]: dart.fnType(core.num, [core.List$(charts._AxisSize), ui.Rect, core.int, core.String]),
    [_calculateAxesRect]: dart.fnType(dart.void, []),
    [_calculateLeftAxesBounds]: dart.fnType(dart.void, []),
    [_calculateBottomAxesBounds]: dart.fnType(dart.void, []),
    [_calculateRightAxesBounds]: dart.fnType(dart.void, []),
    [_calculateTopAxesBounds]: dart.fnType(dart.void, []),
    [_calculateVisibleAxes]: dart.fnType(dart.void, [])
  }));
  dart.setLibraryUri(charts._ChartAxis, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._ChartAxis, () => ({
    __proto__: dart.getFields(charts._ChartAxis.__proto__),
    [_chartWidget]: dart.fieldType(charts.SfCartesianChart),
    [_leftAxes]: dart.fieldType(core.List$(charts.ChartAxis)),
    [_rightAxes]: dart.fieldType(core.List$(charts.ChartAxis)),
    [_topAxes]: dart.fieldType(core.List$(charts.ChartAxis)),
    [_bottomAxes]: dart.fieldType(core.List$(charts.ChartAxis)),
    [_leftAxesCount]: dart.fieldType(core.List$(charts._AxisSize)),
    [_bottomAxesCount]: dart.fieldType(core.List$(charts._AxisSize)),
    [_topAxesCount]: dart.fieldType(core.List$(charts._AxisSize)),
    [_rightAxesCount]: dart.fieldType(core.List$(charts._AxisSize)),
    [_bottomSize]: dart.fieldType(core.double),
    [_topSize]: dart.fieldType(core.double),
    [_leftSize]: dart.fieldType(core.double),
    [_rightSize]: dart.fieldType(core.double),
    [_innerPadding]: dart.fieldType(core.num),
    [_axisPadding]: dart.fieldType(core.num),
    [_axisClipRect]: dart.fieldType(ui.Rect),
    [_verticalAxes]: dart.fieldType(core.List$(charts.ChartAxis)),
    [_horizontalAxes]: dart.fieldType(core.List$(charts.ChartAxis)),
    [_axisCollections]: dart.fieldType(core.List$(charts.ChartAxis)),
    [_needsRepaint]: dart.fieldType(core.bool)
  }));
  charts._CustomizeAxisElements = class _CustomizeAxisElements extends core.Object {};
  (charts._CustomizeAxisElements.new = function() {
    ;
  }).prototype = charts._CustomizeAxisElements.prototype;
  dart.addTypeTests(charts._CustomizeAxisElements);
  dart.setLibraryUri(charts._CustomizeAxisElements, "package:syncfusion_flutter_charts/charts.dart");
  const _xAxisStart = dart.privateName(charts, "_xAxisStart");
  const _xAxisEnd = dart.privateName(charts, "_xAxisEnd");
  const _getPrevLocation = dart.privateName(charts, "_getPrevLocation");
  const _getPointY = dart.privateName(charts, "_getPointY");
  const _getShiftedPosition = dart.privateName(charts, "_getShiftedPosition");
  const _getPointX = dart.privateName(charts, "_getPointX");
  const Object__CustomizeAxisElements$36 = class Object__CustomizeAxisElements extends core.Object {};
  (Object__CustomizeAxisElements$36.new = function() {
  }).prototype = Object__CustomizeAxisElements$36.prototype;
  dart.applyMixin(Object__CustomizeAxisElements$36, charts._CustomizeAxisElements);
  charts._ChartAxisRenderer = class _ChartAxisRenderer extends Object__CustomizeAxisElements$36 {
    getAxisLineColor(axis) {
      return axis.axisLine.color;
    }
    getAxisLineWidth(axis) {
      return axis.axisLine.width;
    }
    getAxisMajorTickColor(axis, majorTickIndex) {
      return axis.majorTickLines.color;
    }
    getAxisMajorTickWidth(axis, majorTickIndex) {
      return axis.majorTickLines.width;
    }
    getAxisMinorTickColor(axis, majorTickIndex, minorTickIndex) {
      return axis.minorTickLines.color;
    }
    getAxisMinorTickWidth(axis, majorTickIndex, minorTickIndex) {
      return axis.minorTickLines.width;
    }
    getAxisMajorGridColor(axis, majorGridIndex) {
      return axis.majorGridLines.color;
    }
    getAxisMajorGridWidth(axis, majorGridIndex) {
      return axis.majorGridLines.width;
    }
    getAxisMinorGridColor(axis, majorGridIndex, minorGridIndex) {
      return axis.minorGridLines.color;
    }
    getAxisMinorGridWidth(axis, majorGridIndex, minorGridIndex) {
      return axis.minorGridLines.width;
    }
    getAxisLabel(axis, text, labelIndex) {
      return text;
    }
    getAxisLabelStyle(axis, text, labelIndex) {
      return axis.labelStyle;
    }
    getAxisLabelAngle(axis, text, labelIndex) {
      return dart.equals(axis.labelIntersectAction, charts.AxisLabelIntersectAction.rotate45) && dart.test(axis[_isCollide]) ? 45 : dart.equals(axis.labelIntersectAction, charts.AxisLabelIntersectAction.rotate90) && dart.test(axis[_isCollide]) ? 90 : axis[_labelRotation];
    }
    drawHorizontalAxesLine(canvas, axis, chart) {
      let t0;
      let rect = new ui.Rect.fromLTWH(dart.notNull(axis[_bounds].left) - dart.notNull(axis.plotOffset), axis[_bounds].top, dart.notNull(axis[_bounds].width) + 2 * dart.notNull(axis.plotOffset), axis[_bounds].height);
      let paintStyle = new charts._CustomPaintStyle.new(axis[_axisRenderer].getAxisLineWidth(axis), (t0 = axis[_axisRenderer].getAxisLineColor(axis), t0 == null ? chart[_chartState][_chartTheme].axisLineColor : t0), ui.PaintingStyle.stroke);
      charts._drawDashedPath(canvas, paintStyle, new ui.Offset.new(rect.left, rect.top), new ui.Offset.new(dart.notNull(rect.left) + dart.notNull(rect.width), rect.top), axis.axisLine.dashArray);
      this[_xAxisStart] = new ui.Offset.new(rect.left, rect.top);
      this[_xAxisEnd] = new ui.Offset.new(dart.notNull(rect.left) + dart.notNull(rect.width), rect.top);
    }
    drawVerticalAxesLine(canvas, axis, chart) {
      let t0;
      let rect = new ui.Rect.fromLTWH(axis[_bounds].left, dart.notNull(axis[_bounds].top) - dart.notNull(axis.plotOffset), axis[_bounds].width, dart.notNull(axis[_bounds].height) + 2 * dart.notNull(axis.plotOffset));
      let paintStyle = new charts._CustomPaintStyle.new(axis[_axisRenderer].getAxisLineWidth(axis), (t0 = axis[_axisRenderer].getAxisLineColor(axis), t0 == null ? chart[_chartState][_chartTheme].axisLineColor : t0), ui.PaintingStyle.stroke);
      charts._drawDashedPath(canvas, paintStyle, new ui.Offset.new(rect.left, rect.top), new ui.Offset.new(rect.left, dart.notNull(rect.top) + dart.notNull(rect.height)), axis.axisLine.dashArray);
    }
    drawHorizontalAxesTickLines(canvas, axis, chart, renderType = null, animationFactor = null, oldAxis = null, needAnimate = null) {
      let t0, t0$;
      let axisBounds = axis[_bounds];
      let visibleLabels = axis[_visibleLabels];
      let tempInterval = null;
      let pointX = null;
      let pointY = null;
      let length = visibleLabels[$length];
      if (dart.notNull(length) > 0) {
        let ticks = axis.majorTickLines;
        let isBetweenTicks = charts.CategoryAxis.is(axis) && dart.equals(axis.labelPlacement, charts.LabelPlacement.betweenTicks);
        let tickBetweenLabel = isBetweenTicks ? 0.5 : 0;
        length = dart.notNull(length) + (isBetweenTicks ? 1 : 0);
        for (let i = 0; i < dart.notNull(length); i = i + 1) {
          tempInterval = isBetweenTicks ? i < dart.notNull(length) - 1 ? dart.notNull(visibleLabels[$_get](i).value) - tickBetweenLabel : dart.notNull(visibleLabels[$_get](i - 1).value) + dart.notNull(core.num._check(axis[_visibleRange].interval)) - tickBetweenLabel : visibleLabels[$_get](i).value;
          pointX = (dart.notNull(charts._valueToCoefficient(tempInterval, axis)) * dart.notNull(axisBounds.width) + dart.notNull(axisBounds.left))[$roundToDouble]();
          pointY = dart.notNull(axisBounds.top) - 1 + dart.notNull(axis.axisLine.width) / 2;
          if (dart.test(needAnimate)) {
            let oldLocation = this[_getPrevLocation](axis, oldAxis, tempInterval);
            pointX = oldLocation != null ? dart.notNull(oldLocation) - (dart.notNull(oldLocation) - dart.notNull(pointX)) * dart.notNull(animationFactor) : pointX;
          }
          if (dart.notNull(axis.majorGridLines.width) > 0 && renderType === "outside" && (dart.notNull(axis.plotOffset) > 0 || i !== 0 && i !== dart.notNull(length) - 1 || dart.notNull(axisBounds.left) <= dart.notNull(pointX) && dart.notNull(axisBounds.right) >= dart.notNull(pointX) && !dart.test(chart[_requireInvertedAxis]))) {
            axis[_axisRenderer].drawHorizontalAxesMajorGridLines(canvas, new ui.Offset.new(pointX, pointY), axis, axis.majorGridLines, i, chart);
          }
          if (dart.notNull(axis.minorGridLines.width) > 0 || dart.notNull(axis.minorTickLines.width) > 0) {
            let nextValue = core.num._check(isBetweenTicks ? dart.notNull(tempInterval) + dart.notNull(core.num._check(axis[_visibleRange].interval)) : i === dart.notNull(length) - 1 ? axis[_visibleRange].maximum : (t0 = visibleLabels[$_get](i + 1), t0 == null ? null : t0.value));
            if (nextValue != null) {
              nextValue = (dart.notNull(charts._valueToCoefficient(nextValue, axis)) * dart.notNull(axisBounds.width) + dart.notNull(axisBounds.left))[$roundToDouble]();
              axis[_axisRenderer].drawHorizontalAxesMinorLines(canvas, axis, pointX, axisBounds, nextValue, i, chart, renderType);
            }
          }
          if (dart.notNull(axis.majorTickLines.width) > 0 && dart.notNull(axisBounds.left) <= dart.notNull(pointX) && dart.notNull(axisBounds.right) >= dart.notNull(pointX) && renderType == dart.toString(axis.tickPosition)[$split](".")[$_get](1)) {
            charts._drawDashedPath(canvas, new charts._CustomPaintStyle.new(axis[_axisRenderer].getAxisMajorTickWidth(axis, i), (t0$ = axis[_axisRenderer].getAxisMajorTickColor(axis, i), t0$ == null ? chart[_chartState][_chartTheme].majorTickLineColor : t0$), ui.PaintingStyle.stroke), new ui.Offset.new(pointX, pointY), new ui.Offset.new(pointX, !dart.test(axis.opposedPosition) ? dart.test(axis[_isInsideTickPosition]) ? dart.notNull(pointY) - dart.notNull(ticks.size) : dart.notNull(pointY) + dart.notNull(ticks.size) : dart.test(axis[_isInsideTickPosition]) ? dart.notNull(pointY) + dart.notNull(ticks.size) : dart.notNull(pointY) - dart.notNull(ticks.size)));
          }
        }
      }
    }
    drawHorizontalAxesMajorGridLines(canvas, point, axis, grids, index, chart) {
      let t0;
      let paintStyle = new charts._CustomPaintStyle.new(axis[_axisRenderer].getAxisMajorGridWidth(axis, index), (t0 = axis[_axisRenderer].getAxisMajorGridColor(axis, index), t0 == null ? chart[_chartState][_chartTheme].majorGridLineColor : t0), ui.PaintingStyle.stroke);
      charts._drawDashedPath(canvas, paintStyle, new ui.Offset.new(point.dx, chart[_chartAxis][_axisClipRect].top), new ui.Offset.new(point.dx, dart.notNull(chart[_chartAxis][_axisClipRect].top) + dart.notNull(chart[_chartAxis][_axisClipRect].height)), grids.dashArray);
    }
    drawHorizontalAxesMinorLines(canvas, axis, tempInterval, rect, nextValue, index, chart, renderType = null) {
      let t0, t0$;
      let position = tempInterval;
      let ticks = axis.minorTickLines;
      let interval = (dart.notNull(tempInterval) - dart.notNull(nextValue))[$abs]() / (dart.notNull(axis.minorTicksPerInterval) + 1);
      for (let i = 0; dart.dtest(dart.dsend(i, '<', [axis.minorTicksPerInterval])); i = dart.dsend(i, '+', [1])) {
        position = dart.notNull(position) + interval;
        let pointY = rect.top;
        if (dart.notNull(axis.minorGridLines.width) > 0 && renderType === "outside" && dart.notNull(axis[_bounds].left) <= dart.notNull(position) && dart.notNull(axis[_bounds].right) >= dart.notNull(position)) {
          charts._drawDashedPath(canvas, new charts._CustomPaintStyle.new(axis[_axisRenderer].getAxisMinorGridWidth(axis, index, core.int._check(i)), (t0 = axis[_axisRenderer].getAxisMinorGridColor(axis, index, core.int._check(i)), t0 == null ? chart[_chartState][_chartTheme].minorGridLineColor : t0), ui.PaintingStyle.stroke), new ui.Offset.new(position, chart[_chartAxis][_axisClipRect].top), new ui.Offset.new(position, dart.notNull(chart[_chartAxis][_axisClipRect].top) + dart.notNull(chart[_chartAxis][_axisClipRect].height)), axis.minorGridLines.dashArray);
        }
        if (dart.notNull(axis.minorTickLines.width) > 0 && dart.notNull(axis[_bounds].left) <= dart.notNull(position) && dart.notNull(axis[_bounds].right) >= dart.notNull(position) && renderType == dart.toString(axis.tickPosition)[$split](".")[$_get](1)) {
          charts._drawDashedPath(canvas, new charts._CustomPaintStyle.new(axis[_axisRenderer].getAxisMinorTickWidth(axis, index, core.int._check(i)), (t0$ = axis[_axisRenderer].getAxisMinorTickColor(axis, index, core.int._check(i)), t0$ == null ? chart[_chartState][_chartTheme].minorTickLineColor : t0$), ui.PaintingStyle.stroke), new ui.Offset.new(position, pointY), new ui.Offset.new(position, !dart.test(axis.opposedPosition) ? dart.test(axis[_isInsideTickPosition]) ? dart.notNull(pointY) - dart.notNull(ticks.size) : dart.notNull(pointY) + dart.notNull(ticks.size) : dart.test(axis[_isInsideTickPosition]) ? dart.notNull(pointY) + dart.notNull(ticks.size) : dart.notNull(pointY) - dart.notNull(ticks.size)), axis.minorGridLines.dashArray);
        }
      }
    }
    drawVerticalAxesTickLines(canvas, axis, chart, renderType = null, animationFactor = null, oldAxis = null, needAnimate = null) {
      let t0;
      let axisBounds = axis[_bounds];
      let visibleLabels = axis[_visibleLabels];
      let tempInterval = null;
      let pointX = null;
      let pointY = null;
      let length = visibleLabels[$length];
      let isBetweenTicks = charts.CategoryAxis.is(axis) && dart.equals(axis.labelPlacement, charts.LabelPlacement.betweenTicks);
      let tickBetweenLabel = isBetweenTicks ? 0.5 : 0;
      length = dart.notNull(length) + (isBetweenTicks ? 1 : 0);
      for (let i = 0; i < dart.notNull(length); i = i + 1) {
        tempInterval = isBetweenTicks ? i < dart.notNull(length) - 1 ? dart.notNull(visibleLabels[$_get](i).value) - tickBetweenLabel : dart.notNull(visibleLabels[$_get](i - 1).value) + dart.notNull(core.num._check(axis[_visibleRange].interval)) - tickBetweenLabel : visibleLabels[$_get](i).value;
        pointY = dart.notNull(charts._valueToCoefficient(tempInterval, axis)) * dart.notNull(axisBounds.height) + dart.notNull(axisBounds.top);
        pointY = dart.notNull(axisBounds.top) + dart.notNull(axisBounds.height) - (dart.notNull(pointY) - dart.notNull(axisBounds.top))[$abs]();
        pointX = dart.notNull(axisBounds.left) + 1 - dart.notNull(axis.axisLine.width) / 2;
        if (dart.test(needAnimate)) {
          let oldLocation = this[_getPrevLocation](axis, oldAxis, tempInterval);
          pointY = oldLocation != null ? dart.notNull(oldLocation) - (dart.notNull(oldLocation) - dart.notNull(pointY)) * dart.notNull(animationFactor) : pointY;
        }
        if (dart.notNull(axis.majorGridLines.width) > 0 && renderType === "outside" && (dart.notNull(axis.plotOffset) > 0 || (i === 0 || i === dart.notNull(length) - 1) && chart.plotAreaBorderWidth === 0 || (i === 0 && !dart.test(axis.opposedPosition) || i === dart.notNull(length) - 1 && dart.test(axis.opposedPosition)) && axis.axisLine.width === 0 || dart.notNull(axisBounds.top) < dart.notNull(pointY) - dart.notNull(axis.majorGridLines.width) && dart.notNull(axisBounds.bottom) > dart.notNull(pointY) + dart.notNull(axis.majorGridLines.width))) {
          axis[_axisRenderer].drawVerticalAxesMajorGridLines(canvas, new ui.Offset.new(pointX, pointY), axis, axis.majorGridLines, i, chart);
        }
        if (dart.notNull(axis.minorGridLines.width) > 0 || dart.notNull(axis.minorTickLines.width) > 0) {
          axis[_axisRenderer].drawVerticalAxesMinorTickLines(canvas, axis, tempInterval, axisBounds, i, chart, renderType);
        }
        if (dart.notNull(axis.majorTickLines.width) > 0 && renderType == dart.toString(axis.tickPosition)[$split](".")[$_get](1)) {
          charts._drawDashedPath(canvas, new charts._CustomPaintStyle.new(axis[_axisRenderer].getAxisMajorTickWidth(axis, i), (t0 = axis[_axisRenderer].getAxisMajorTickColor(axis, i), t0 == null ? chart[_chartState][_chartTheme].majorTickLineColor : t0), ui.PaintingStyle.stroke), new ui.Offset.new(pointX, pointY), new ui.Offset.new(!dart.test(axis.opposedPosition) ? dart.test(axis[_isInsideTickPosition]) ? dart.notNull(pointX) + dart.notNull(axis.majorTickLines.size) : dart.notNull(pointX) - dart.notNull(axis.majorTickLines.size) : dart.test(axis[_isInsideTickPosition]) ? dart.notNull(pointX) - dart.notNull(axis.majorTickLines.size) : dart.notNull(pointX) + dart.notNull(axis.majorTickLines.size), pointY));
        }
      }
    }
    drawVerticalAxesMajorGridLines(canvas, point, axis, grids, index, chart) {
      let t0;
      let paintStyle = new charts._CustomPaintStyle.new(axis[_axisRenderer].getAxisMajorGridWidth(axis, index), (t0 = axis[_axisRenderer].getAxisMajorGridColor(axis, index), t0 == null ? chart[_chartState][_chartTheme].majorGridLineColor : t0), ui.PaintingStyle.stroke);
      if (!dart.equals(chart.primaryXAxis[_axisRenderer][_xAxisStart], new ui.Offset.new(chart[_chartAxis][_axisClipRect].left, point.dy)) && !dart.equals(chart.primaryXAxis[_axisRenderer][_xAxisEnd], new ui.Offset.new(dart.notNull(chart[_chartAxis][_axisClipRect].left) + dart.notNull(chart[_chartAxis][_axisClipRect].width), point.dy))) charts._drawDashedPath(canvas, paintStyle, new ui.Offset.new(chart[_chartAxis][_axisClipRect].left, point.dy), new ui.Offset.new(dart.notNull(chart[_chartAxis][_axisClipRect].left) + dart.notNull(chart[_chartAxis][_axisClipRect].width), point.dy), grids.dashArray);
    }
    drawVerticalAxesMinorTickLines(canvas, axis, tempInterval, rect, index, chart, renderType = null) {
      let t0, t0$;
      let value = tempInterval;
      let position = 0;
      let range = axis[_visibleRange];
      let rendering = dart.notNull(axis.minorTicksPerInterval) > 0 && (dart.notNull(axis.minorGridLines.width) > 0 || dart.notNull(axis.minorTickLines.width) > 0);
      if (rendering) {
        for (let i = 0; i < dart.notNull(axis.minorTicksPerInterval); i = i + 1) {
          value = dart.notNull(value) + dart.notNull(core.num._check(dart.dsend(range.interval, '/', [dart.notNull(axis.minorTicksPerInterval) + 1])));
          if (dart.notNull(value) < dart.notNull(core.num._check(range.maximum)) && dart.notNull(value) > dart.notNull(core.num._check(range.minimum))) {
            position = dart.notNull(charts._valueToCoefficient(value, axis)) * dart.notNull(rect.height);
            position = (position + dart.notNull(rect.top))[$floor]()[$toDouble]();
            if (dart.notNull(axis.minorGridLines.width) > 0 && renderType === "outside" && dart.notNull(rect.top) <= position && dart.notNull(rect.bottom) >= position) {
              charts._drawDashedPath(canvas, new charts._CustomPaintStyle.new(axis[_axisRenderer].getAxisMinorGridWidth(axis, index, i), (t0 = axis[_axisRenderer].getAxisMinorGridColor(axis, index, i), t0 == null ? chart[_chartState][_chartTheme].minorGridLineColor : t0), ui.PaintingStyle.stroke), new ui.Offset.new(chart[_chartAxis][_axisClipRect].left, position), new ui.Offset.new(dart.notNull(chart[_chartAxis][_axisClipRect].left) + dart.notNull(chart[_chartAxis][_axisClipRect].width), position), axis.minorGridLines.dashArray);
            }
            if (dart.notNull(axis.minorTickLines.width) > 0 && renderType == dart.toString(axis.tickPosition)[$split](".")[$_get](1)) {
              charts._drawDashedPath(canvas, new charts._CustomPaintStyle.new(axis[_axisRenderer].getAxisMinorTickWidth(axis, index, i), (t0$ = axis[_axisRenderer].getAxisMinorTickColor(axis, index, i), t0$ == null ? chart[_chartState][_chartTheme].minorTickLineColor : t0$), ui.PaintingStyle.stroke), new ui.Offset.new(rect.left, position), new ui.Offset.new(!dart.test(axis.opposedPosition) ? dart.test(axis[_isInsideTickPosition]) ? dart.notNull(rect.left) + dart.notNull(axis.minorTickLines.size) : dart.notNull(rect.left) - dart.notNull(axis.minorTickLines.size) : dart.test(axis[_isInsideTickPosition]) ? dart.notNull(rect.left) - dart.notNull(axis.minorTickLines.size) : dart.notNull(rect.left) + dart.notNull(axis.minorTickLines.size), position));
            }
          }
        }
      }
    }
    drawHorizontalAxesLabels(canvas, axis, chart, renderType = null, animationFactor = null, oldAxis = null, needAnimate = null) {
      let t0;
      if (renderType == dart.toString(axis.labelPosition)[$split](".")[$_get](1)) {
        let axisBounds = axis[_bounds];
        let angle = null;
        let textStyle = null;
        let visibleLabels = axis[_visibleLabels];
        let tempInterval = null;
        let pointX = null;
        let pointY = null;
        for (let i = 0; i < dart.notNull(visibleLabels[$length]); i = i + 1) {
          let label = visibleLabels[$_get](i);
          let labelText = axis[_axisRenderer].getAxisLabel(axis, label.text, i);
          textStyle = label.labelStyle;
          textStyle = charts._getTextStyle({textStyle: textStyle, fontColor: (t0 = textStyle.color, t0 == null ? chart[_chartState][_chartTheme].axisLabelColor : t0)});
          tempInterval = label.value;
          angle = axis[_axisRenderer].getAxisLabelAngle(axis, labelText, i);
          let textSize = charts._measureText(labelText, textStyle);
          let rotatedTextSize = charts._measureText(labelText, textStyle, angle);
          pointX = (dart.notNull(charts._valueToCoefficient(tempInterval, axis)) * dart.notNull(axisBounds.width) + dart.notNull(axisBounds.left))[$roundToDouble]();
          pointY = this[_getPointY](axis, label, axisBounds);
          pointY = dart.notNull(pointY) - (angle === 0 ? dart.notNull(textSize.height) / 2 : 0);
          pointY = dart.notNull(pointY) + dart.notNull(rotatedTextSize.height) / 2;
          pointX = dart.notNull(pointX) - (angle === 0 ? dart.notNull(textSize.width) / 2 : 0);
          pointX = this[_getShiftedPosition](axis, axisBounds, pointX, pointY, textSize, i);
          if (dart.equals(axis.edgeLabelPlacement, charts.EdgeLabelPlacement.hide)) {
            if (i === 0 && (dart.notNull(pointX) < dart.notNull(axisBounds.left) && !dart.test(axis.isInversed) || dart.notNull(pointX) + dart.notNull(textSize.width) > dart.notNull(axisBounds.right) && dart.test(axis.isInversed)) || i === dart.notNull(axis[_visibleLabels][$length]) - 1 && dart.notNull(pointX) + dart.notNull(textSize.width) > dart.notNull(axisBounds.left) + dart.notNull(axisBounds.width)) {
              axis[_visibleLabels][$_get](i)[_needRender] = false;
              continue;
            }
          }
          if (dart.equals(axis.labelIntersectAction, charts.AxisLabelIntersectAction.hide) && axis.labelRotation[$modulo](180) === 0 && i !== 0 && dart.test(axis[_visibleLabels][$_get](i - 1)[_needRender]) && (!dart.test(axis.isInversed) ? dart.notNull(pointX) < dart.notNull(visibleLabels[$_get](i - 1)[_labelRegion].right) : dart.notNull(visibleLabels[$_get](i)[_labelRegion].right) > dart.notNull(visibleLabels[$_get](i - 1)[_labelRegion].left))) {
            axis[_visibleLabels][$_get](i)[_needRender] = false;
            continue;
          }
          if (dart.test(needAnimate)) {
            let oldLocation = this[_getPrevLocation](axis, oldAxis, tempInterval, textSize, angle);
            pointX = oldLocation != null ? dart.notNull(oldLocation) - (dart.notNull(oldLocation) - dart.notNull(pointX)) * dart.notNull(animationFactor) : pointX;
          }
          let point = new ui.Offset.new(pointX, pointY);
          if (dart.notNull(axisBounds.left) - dart.notNull(textSize.width) <= dart.notNull(pointX)) charts._drawText(canvas, labelText, point, textStyle, angle);
          if (label[_labelCollection] != null && dart.test(label[_labelCollection][$isNotEmpty]) && dart.equals(axis.labelIntersectAction, charts.AxisLabelIntersectAction.wrap)) {
            for (let j = 1; j < dart.notNull(label[_labelCollection][$length]); j = j + 1) {
              let wrapTxt = label[_labelCollection][$_get](j);
              charts._drawText(canvas, wrapTxt, new ui.Offset.new(pointX, dart.notNull(pointY) + j * dart.notNull(charts._measureText(wrapTxt, axis.labelStyle, angle).height)), textStyle, angle);
            }
          }
        }
      }
    }
    drawVerticalAxesLabels(canvas, axis, chart, renderType = null, animationFactor = null, oldAxis = null, needAnimate = null) {
      let t0;
      if (dart.toString(axis.labelPosition)[$split](".")[$_get](1) == renderType) {
        let axisBounds = axis[_bounds];
        let visibleLabels = axis[_visibleLabels];
        let textStyle = null;
        let tempInterval = null;
        let pointX = null;
        let pointY = null;
        let previousEnd = null;
        for (let i = 0; dart.dtest(dart.dsend(i, '<', [visibleLabels[$length]])); i = dart.dsend(i, '+', [1])) {
          let labelText = axis[_axisRenderer].getAxisLabel(axis, visibleLabels[$_get](core.int._check(i)).text, core.int._check(i));
          let angle = axis[_axisRenderer].getAxisLabelAngle(axis, labelText, core.int._check(i));
          textStyle = visibleLabels[$_get](core.int._check(i)).labelStyle;
          textStyle = charts._getTextStyle({textStyle: textStyle, fontColor: (t0 = textStyle.color, t0 == null ? chart[_chartState][_chartTheme].axisLabelColor : t0)});
          tempInterval = visibleLabels[$_get](core.int._check(i)).value;
          let textSize = charts._measureText(labelText, textStyle, 0);
          pointY = dart.notNull(charts._valueToCoefficient(tempInterval, axis)) * dart.notNull(axisBounds.height) + dart.notNull(axisBounds.top);
          pointY = dart.notNull(axisBounds.top) + dart.notNull(axisBounds.height) - (dart.notNull(axisBounds.top) - dart.notNull(pointY))[$abs]() - dart.notNull(textSize.height) / 2;
          pointX = this[_getPointX](axis, textSize, axisBounds);
          let location = charts._getRotatedTextLocation(pointX, pointY, labelText, textStyle, angle, axis);
          if (dart.equals(axis.labelAlignment, charts.LabelAlignment.center)) {
            pointX = location.x;
            pointY = location.y;
          } else if (dart.equals(axis.labelAlignment, charts.LabelAlignment.far)) {
            pointX = location.x;
            pointY = dart.notNull(location.y) - dart.notNull(textSize.height) / 2;
          } else if (dart.equals(axis.labelAlignment, charts.LabelAlignment.near)) {
            pointX = location.x;
            pointY = dart.notNull(location.y) + dart.notNull(textSize.height) / 2;
          }
          if (dart.equals(axis.labelIntersectAction, charts.AxisLabelIntersectAction.hide) && !dart.equals(i, 0) && (!dart.test(axis.isInversed) ? dart.notNull(pointY) + dart.notNull(textSize.height) / 2 > dart.notNull(previousEnd) : dart.notNull(pointY) - dart.notNull(textSize.height) / 2 < dart.notNull(previousEnd))) {
            continue;
          }
          previousEnd = !dart.test(axis.isInversed) ? dart.notNull(pointY) - dart.notNull(textSize.height) / 2 : dart.notNull(pointY) + dart.notNull(textSize.height) / 2;
          if (dart.equals(axis.edgeLabelPlacement, charts.EdgeLabelPlacement.shift)) {
            if (dart.equals(i, 0) && dart.notNull(axisBounds.bottom) <= dart.notNull(pointY) + dart.notNull(textSize.height) / 2) {
              pointY = dart.notNull(axisBounds.top) + dart.notNull(axisBounds.height) - dart.notNull(textSize.height);
            } else if (dart.equals(i, dart.notNull(axis[_visibleLabels][$length]) - 1) && dart.notNull(axisBounds.top) >= dart.notNull(pointY) + dart.notNull(textSize.height) / 2) {
              pointY = axisBounds.top;
            }
          } else if (dart.equals(axis.edgeLabelPlacement, charts.EdgeLabelPlacement.hide)) {
            if (dart.equals(i, 0) || dart.equals(i, dart.notNull(axis[_visibleLabels][$length]) - 1)) {
              continue;
            }
          }
          axis[_visibleLabels][$_get](core.int._check(i))[_labelRegion] = new ui.Rect.fromLTWH(pointX, pointY, textSize.width, textSize.height);
          if (dart.test(needAnimate)) {
            let oldLocation = this[_getPrevLocation](axis, oldAxis, tempInterval, textSize);
            pointY = oldLocation != null ? dart.notNull(oldLocation) - (dart.notNull(oldLocation) - dart.notNull(pointY)) * dart.notNull(animationFactor) : pointY;
          }
          let point = new ui.Offset.new(pointX, pointY);
          if (dart.notNull(axisBounds.top) - dart.notNull(textSize.height) <= dart.notNull(pointY) && dart.notNull(axisBounds.bottom) + dart.notNull(textSize.height) >= dart.notNull(pointY)) charts._drawText(canvas, labelText, point, textStyle, axis[_labelRotation]);
        }
      }
    }
    [_getPrevLocation](axis, oldAxis, value, textSize = null, angle = null) {
      let location = null;
      let bounds = axis[_bounds];
      textSize == null ? textSize = C122 || CT.C122 : null;
      if (dart.dtest(dart.dsend(oldAxis[_visibleRange].minimum, '>', [value]))) {
        location = dart.equals(axis[_orientation], charts.AxisOrientation.vertical) ? dart.test(axis.isInversed) ? bounds.top : bounds.bottom : dart.test(axis.isInversed) ? bounds.right : bounds.left;
      } else if (dart.dtest(dart.dsend(oldAxis[_visibleRange].maximum, '<', [value]))) {
        location = dart.equals(axis[_orientation], charts.AxisOrientation.vertical) ? dart.test(axis.isInversed) ? bounds.bottom : bounds.top : dart.test(axis.isInversed) ? bounds.left : bounds.right;
      } else {
        if (dart.equals(axis[_orientation], charts.AxisOrientation.vertical)) {
          location = dart.notNull(charts._valueToCoefficient(core.num._check(value), oldAxis)) * dart.notNull(oldAxis[_bounds].height) + dart.notNull(oldAxis[_bounds].top);
          location = dart.notNull(oldAxis[_bounds].top) + dart.notNull(oldAxis[_bounds].height) - (dart.notNull(oldAxis[_bounds].top) - dart.notNull(location))[$abs]() - dart.notNull(textSize.height) / 2;
        } else {
          location = (dart.notNull(charts._valueToCoefficient(core.num._check(value), oldAxis)) * dart.notNull(oldAxis[_bounds].width) + dart.notNull(oldAxis[_bounds].left))[$roundToDouble]();
          if (angle != null) {
            location = dart.notNull(location) - (angle === 0 ? dart.notNull(textSize.width) / 2 : 0);
          }
        }
      }
      return location;
    }
    [_getPointX](axis, textSize, axisBounds) {
      let pointX = null;
      if (dart.equals(axis.labelPosition, charts.ChartDataLabelPosition.inside)) {
        pointX = !dart.test(axis.opposedPosition) ? dart.notNull(axisBounds.left) + 5 + dart.notNull(dart.test(axis[_isInsideTickPosition]) ? axis.majorTickLines.size : 0) : dart.notNull(axisBounds.left) - dart.notNull(axis[_maximumLabelSize].width) - 5 - dart.notNull(dart.test(axis[_isInsideTickPosition]) ? axis.majorTickLines.size : 0);
      } else {
        pointX = !dart.test(axis.opposedPosition) ? axis[_labelOffset] != null ? dart.notNull(axis[_labelOffset]) - dart.notNull(textSize.width) : dart.notNull(axisBounds.left) - dart.notNull(dart.test(axis[_isInsideTickPosition]) ? 0 : axis.majorTickLines.size) - dart.notNull(textSize.width) - 5 : axis[_labelOffset] != null ? axis[_labelOffset] : dart.notNull(axisBounds.left) + dart.notNull(dart.test(axis[_isInsideTickPosition]) ? 0 : axis.majorTickLines.size) + 5;
      }
      return pointX;
    }
    [_getPointY](axis, label, axisBounds) {
      let pointY = null;
      if (dart.equals(axis.labelPosition, charts.ChartDataLabelPosition.inside)) {
        pointY = !dart.test(axis.opposedPosition) ? dart.notNull(axisBounds.top) - 3 - dart.notNull(dart.notNull(label[_index]) > 1 ? dart.notNull(axis[_maximumLabelSize].height) / 2 : axis[_maximumLabelSize].height) - dart.notNull(dart.test(axis[_isInsideTickPosition]) ? axis.majorTickLines.size : 0) : dart.notNull(axisBounds.top) + dart.notNull(dart.test(axis[_isInsideTickPosition]) ? axis.majorTickLines.size : 0) + (dart.notNull(label[_index]) > 1 ? dart.notNull(axis[_maximumLabelSize].height) / 2 : 0);
      } else {
        pointY = !dart.test(axis.opposedPosition) ? axis[_labelOffset] != null ? axis[_labelOffset] : dart.notNull(axisBounds.top) + (dart.notNull(dart.test(axis[_isInsideTickPosition]) ? 0 : axis.majorTickLines.size) + 3) + (dart.notNull(label[_index]) > 1 ? dart.notNull(axis[_maximumLabelSize].height) / 2 : 0) : axis[_labelOffset] != null ? dart.notNull(axis[_labelOffset]) - dart.notNull(axis[_maximumLabelSize].height) : dart.notNull(axisBounds.top) - (dart.notNull(dart.test(axis[_isInsideTickPosition]) ? 0 : axis.majorTickLines.size) + 3 - (dart.notNull(label[_index]) > 1 ? dart.notNull(axis[_maximumLabelSize].height) / 2 : 0)) - dart.notNull(axis[_maximumLabelSize].height);
      }
      return pointY;
    }
    [_getShiftedPosition](axis, axisBounds, pointX, pointY, textSize, i) {
      if (dart.equals(axis.edgeLabelPlacement, charts.EdgeLabelPlacement.shift)) {
        if (i === 0 && (dart.notNull(pointX) < dart.notNull(axisBounds.left) && !dart.test(axis.isInversed) || dart.notNull(pointX) + dart.notNull(textSize.width) > dart.notNull(axisBounds.right) && dart.test(axis.isInversed))) {
          pointX = dart.test(axis.isInversed) ? dart.notNull(axisBounds.left) + dart.notNull(axisBounds.width) - dart.notNull(textSize.width) : axisBounds.left;
        }
        if (i === dart.notNull(axis[_visibleLabels][$length]) - 1 && (dart.notNull(pointX) + dart.notNull(textSize.width) > dart.notNull(axisBounds.right) && !dart.test(axis.isInversed) || dart.notNull(pointX) < dart.notNull(axisBounds.left) && dart.test(axis.isInversed))) {
          pointX = dart.test(axis.isInversed) ? axisBounds.left : dart.notNull(axisBounds.left) + dart.notNull(axisBounds.width) - dart.notNull(textSize.width);
        }
      }
      axis[_visibleLabels][$_get](i)[_labelRegion] = new ui.Rect.fromLTWH(pointX, pointY, textSize.width, textSize.height);
      return pointX;
    }
    drawHorizontalAxesTitle(canvas, axis, chart) {
      let t0;
      let axisBounds = axis[_bounds];
      let point = null;
      let title = axis.title.text;
      let style = axis.title.textStyle;
      style = charts._getTextStyle({textStyle: style, fontColor: (t0 = style.color, t0 == null ? chart[_chartState][_chartTheme].axisTitleColor : t0)});
      let textSize = charts._measureText(title, style);
      let top = null;
      if (dart.equals(axis.labelPosition, charts.ChartDataLabelPosition.inside)) {
        top = !dart.test(axis.opposedPosition) ? dart.notNull(axisBounds.top) + dart.notNull(dart.test(axis[_isInsideTickPosition]) ? 0 : axis.majorTickLines.size) + 8 : dart.notNull(axisBounds.top) - dart.notNull(dart.test(axis[_isInsideTickPosition]) ? 0 : axis.majorTickLines.size) - 8 - dart.notNull(textSize.height);
      } else {
        top = !dart.test(axis.opposedPosition) ? dart.notNull(axisBounds.top) + dart.notNull(dart.test(axis[_isInsideTickPosition]) ? 0 : axis.majorTickLines.size) + 8 + dart.notNull(axis[_maximumLabelSize].height) : dart.notNull(axisBounds.top) - dart.notNull(dart.test(axis[_isInsideTickPosition]) ? 0 : axis.majorTickLines.size) - 8 - dart.notNull(axis[_maximumLabelSize].height) - dart.notNull(textSize.height);
      }
      dart.equals(axis.title.alignment, charts.ChartAlignment.near) ? point = new ui.Offset.new(chart[_chartAxis][_axisClipRect].left, top) : dart.equals(axis.title.alignment, charts.ChartAlignment.far) ? point = new ui.Offset.new(dart.notNull(chart[_chartAxis][_axisClipRect].right) - dart.notNull(textSize.width), top) : point = new ui.Offset.new(dart.notNull(axisBounds.left) + (dart.notNull(axisBounds.width) / 2 - dart.notNull(textSize.width) / 2), top);
      if (dart.test(axis[_series][$isNotEmpty]) || axis[_name$] === "primaryXAxis") charts._drawText(canvas, title, point, style, 0);
    }
    drawVerticalAxesTitle(canvas, axis, chart) {
      let t0;
      let axisBounds = axis[_bounds];
      let point = null;
      let title = axis.title.text;
      let labelRotation = dart.test(axis.opposedPosition) ? 90 : 270;
      let style = axis.title.textStyle;
      style = charts._getTextStyle({textStyle: style, fontColor: (t0 = style.color, t0 == null ? chart[_chartState][_chartTheme].axisTitleColor : t0)});
      let textSize = charts._measureText(title, style);
      let left = null;
      if (dart.equals(axis.labelPosition, charts.ChartDataLabelPosition.inside)) {
        left = !dart.test(axis.opposedPosition) ? dart.notNull(axisBounds.left) - dart.notNull(dart.test(axis[_isInsideTickPosition]) ? 0 : axis.majorTickLines.size) - 10 - dart.notNull(textSize.height) : dart.notNull(axisBounds.left) + dart.notNull(dart.test(axis[_isInsideTickPosition]) ? 0 : axis.majorTickLines.size) + 10 * 2;
      } else {
        left = !dart.test(axis.opposedPosition) ? dart.notNull(axisBounds.left) - dart.notNull(dart.test(axis[_isInsideTickPosition]) ? 0 : axis.majorTickLines.size) - 10 - dart.notNull(axis[_maximumLabelSize].width) - dart.notNull(textSize.height) / 2 : dart.notNull(axisBounds.left) + dart.notNull(dart.test(axis[_isInsideTickPosition]) ? 0 : axis.majorTickLines.size) + 10 + dart.notNull(axis[_maximumLabelSize].width) + dart.notNull(textSize.height) / 2;
      }
      dart.equals(axis.title.alignment, charts.ChartAlignment.near) ? point = new ui.Offset.new(left, dart.notNull(chart[_chartAxis][_axisClipRect].bottom) - dart.notNull(textSize.width) / 2) : dart.equals(axis.title.alignment, charts.ChartAlignment.far) ? point = new ui.Offset.new(left, dart.notNull(chart[_chartAxis][_axisClipRect].top) + dart.notNull(textSize.width) / 2) : point = new ui.Offset.new(left, dart.notNull(axisBounds.top) + dart.notNull(axisBounds.height) / 2);
      if (dart.test(axis[_series][$isNotEmpty]) || axis[_name$] === "primaryYAxis") charts._drawText(canvas, title, point, style, labelRotation);
    }
  };
  (charts._ChartAxisRenderer.new = function() {
    this[_xAxisStart] = null;
    this[_xAxisEnd] = null;
    ;
  }).prototype = charts._ChartAxisRenderer.prototype;
  dart.addTypeTests(charts._ChartAxisRenderer);
  dart.setMethodSignature(charts._ChartAxisRenderer, () => ({
    __proto__: dart.getMethods(charts._ChartAxisRenderer.__proto__),
    getAxisLineColor: dart.fnType(ui.Color, [charts.ChartAxis]),
    getAxisLineWidth: dart.fnType(core.double, [charts.ChartAxis]),
    getAxisMajorTickColor: dart.fnType(ui.Color, [charts.ChartAxis, core.int]),
    getAxisMajorTickWidth: dart.fnType(core.double, [charts.ChartAxis, core.int]),
    getAxisMinorTickColor: dart.fnType(ui.Color, [charts.ChartAxis, core.int, core.int]),
    getAxisMinorTickWidth: dart.fnType(core.double, [charts.ChartAxis, core.int, core.int]),
    getAxisMajorGridColor: dart.fnType(ui.Color, [charts.ChartAxis, core.int]),
    getAxisMajorGridWidth: dart.fnType(core.double, [charts.ChartAxis, core.int]),
    getAxisMinorGridColor: dart.fnType(ui.Color, [charts.ChartAxis, core.int, core.int]),
    getAxisMinorGridWidth: dart.fnType(core.double, [charts.ChartAxis, core.int, core.int]),
    getAxisLabel: dart.fnType(core.String, [charts.ChartAxis, core.String, core.int]),
    getAxisLabelStyle: dart.fnType(charts.ChartTextStyle, [charts.ChartAxis, core.String, core.int]),
    getAxisLabelAngle: dart.fnType(core.int, [charts.ChartAxis, core.String, core.int]),
    drawHorizontalAxesLine: dart.fnType(dart.void, [ui.Canvas, charts.ChartAxis, charts.SfCartesianChart]),
    drawVerticalAxesLine: dart.fnType(dart.void, [ui.Canvas, charts.ChartAxis, charts.SfCartesianChart]),
    drawHorizontalAxesTickLines: dart.fnType(dart.void, [ui.Canvas, charts.ChartAxis, charts.SfCartesianChart], [core.String, core.double, charts.ChartAxis, core.bool]),
    drawHorizontalAxesMajorGridLines: dart.fnType(dart.void, [ui.Canvas, ui.Offset, charts.ChartAxis, charts.MajorGridLines, core.int, charts.SfCartesianChart]),
    drawHorizontalAxesMinorLines: dart.fnType(dart.void, [ui.Canvas, charts.ChartAxis, core.num, ui.Rect, core.num, core.int, charts.SfCartesianChart], [core.String]),
    drawVerticalAxesTickLines: dart.fnType(dart.void, [ui.Canvas, charts.ChartAxis, charts.SfCartesianChart], [core.String, core.double, charts.ChartAxis, core.bool]),
    drawVerticalAxesMajorGridLines: dart.fnType(dart.void, [ui.Canvas, ui.Offset, charts.ChartAxis, charts.MajorGridLines, core.int, charts.SfCartesianChart]),
    drawVerticalAxesMinorTickLines: dart.fnType(dart.void, [ui.Canvas, charts.ChartAxis, core.num, ui.Rect, core.int, charts.SfCartesianChart], [core.String]),
    drawHorizontalAxesLabels: dart.fnType(dart.void, [ui.Canvas, charts.ChartAxis, charts.SfCartesianChart], [core.String, core.double, charts.ChartAxis, core.bool]),
    drawVerticalAxesLabels: dart.fnType(dart.void, [ui.Canvas, charts.ChartAxis, charts.SfCartesianChart], [core.String, core.double, charts.ChartAxis, core.bool]),
    [_getPrevLocation]: dart.fnType(core.double, [charts.ChartAxis, charts.ChartAxis, dart.dynamic], [ui.Size, core.num]),
    [_getPointX]: dart.fnType(core.double, [charts.ChartAxis, ui.Size, ui.Rect]),
    [_getPointY]: dart.fnType(core.double, [charts.ChartAxis, charts.AxisLabel, ui.Rect]),
    [_getShiftedPosition]: dart.fnType(core.double, [charts.ChartAxis, ui.Rect, core.double, core.double, ui.Size, core.int]),
    drawHorizontalAxesTitle: dart.fnType(dart.void, [ui.Canvas, charts.ChartAxis, charts.SfCartesianChart]),
    drawVerticalAxesTitle: dart.fnType(dart.void, [ui.Canvas, charts.ChartAxis, charts.SfCartesianChart])
  }));
  dart.setLibraryUri(charts._ChartAxisRenderer, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._ChartAxisRenderer, () => ({
    __proto__: dart.getFields(charts._ChartAxisRenderer.__proto__),
    [_xAxisStart]: dart.fieldType(ui.Offset),
    [_xAxisEnd]: dart.fieldType(ui.Offset)
  }));
  charts._CartesianAxisRenderer = class _CartesianAxisRenderer extends framework.StatefulWidget {
    createState() {
      return new charts._CartesianAxisRendererState.new();
    }
  };
  (charts._CartesianAxisRenderer.new = function(opts) {
    let chart = opts && 'chart' in opts ? opts.chart : null;
    let renderType = opts && 'renderType' in opts ? opts.renderType : null;
    let $36creationLocationd_0dea112b090073317d4 = opts && '$creationLocationd_0dea112b090073317d4' in opts ? opts.$creationLocationd_0dea112b090073317d4 : null;
    this.state = null;
    this.chart = chart;
    this.renderType = renderType;
    charts._CartesianAxisRenderer.__proto__.new.call(this, {$creationLocationd_0dea112b090073317d4: $36creationLocationd_0dea112b090073317d4});
    ;
  }).prototype = charts._CartesianAxisRenderer.prototype;
  dart.addTypeTests(charts._CartesianAxisRenderer);
  dart.setMethodSignature(charts._CartesianAxisRenderer, () => ({
    __proto__: dart.getMethods(charts._CartesianAxisRenderer.__proto__),
    createState: dart.fnType(framework.State$(framework.StatefulWidget), [])
  }));
  dart.setLibraryUri(charts._CartesianAxisRenderer, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._CartesianAxisRenderer, () => ({
    __proto__: dart.getFields(charts._CartesianAxisRenderer.__proto__),
    chart: dart.finalFieldType(charts.SfCartesianChart),
    renderType: dart.fieldType(core.String),
    state: dart.fieldType(charts._CartesianAxisRendererState)
  }));
  const _repaintAxisElements = dart.privateName(charts, "_repaintAxisElements");
  let C356;
  let C357;
  let C360;
  let C359;
  let C358;
  let C363;
  let C362;
  let C361;
  const State_SingleTickerProviderStateMixin$36$1 = class State_SingleTickerProviderStateMixin extends framework.State$(charts._CartesianAxisRenderer) {};
  (State_SingleTickerProviderStateMixin$36$1.new = function() {
    ticker_provider.SingleTickerProviderStateMixin$(charts._CartesianAxisRenderer)[dart.mixinNew].call(this);
    State_SingleTickerProviderStateMixin$36$1.__proto__.new.call(this);
  }).prototype = State_SingleTickerProviderStateMixin$36$1.prototype;
  dart.applyMixin(State_SingleTickerProviderStateMixin$36$1, ticker_provider.SingleTickerProviderStateMixin$(charts._CartesianAxisRenderer));
  charts._CartesianAxisRendererState = class _CartesianAxisRendererState extends State_SingleTickerProviderStateMixin$36$1 {
    initState() {
      let t0;
      this.axisRepaintNotifier = new (ValueNotifierOfint()).new(0);
      this.animationController = (t0 = new animation_controller.AnimationController.new({vsync: this}), t0.addListener(dart.bind(this, _repaintAxisElements)), t0);
      super.initState();
    }
    dispose() {
      if (this.animationController != null) {
        this.animationController.removeListener(dart.bind(this, _repaintAxisElements));
        this.animationController.dispose();
        this.animationController = null;
      }
      super.dispose();
    }
    [_repaintAxisElements]() {
      let t0;
      t0 = this.axisRepaintNotifier;
      t0.value = dart.notNull(t0.value) + 1;
    }
    build(context) {
      this.widget.state = this;
      this.animationController.duration = C356 || CT.C356;
      let axisAnimation = new (TweenOfdouble()).new({begin: 0.0, end: 1.0}).animate(new animations.CurvedAnimation.new({parent: this.animationController, curve: C357 || CT.C357}));
      this.animationController.forward({from: 0.0});
      return new container.Container.new({child: new basic.CustomPaint.new({painter: new charts._CartesianAxesPainter.new({chart: this.widget.chart, axisAnimation: axisAnimation, renderType: this.widget.renderType, isRepaint: this.widget.chart[_chartAxis][_needsRepaint], notifier: this.axisRepaintNotifier}), $creationLocationd_0dea112b090073317d4: C358 || CT.C358}), $creationLocationd_0dea112b090073317d4: C361 || CT.C361});
    }
  };
  (charts._CartesianAxisRendererState.new = function() {
    this.animationControllersList = null;
    this.animationController = null;
    this.axisRepaintNotifier = null;
    charts._CartesianAxisRendererState.__proto__.new.call(this);
    ;
  }).prototype = charts._CartesianAxisRendererState.prototype;
  dart.addTypeTests(charts._CartesianAxisRendererState);
  dart.setMethodSignature(charts._CartesianAxisRendererState, () => ({
    __proto__: dart.getMethods(charts._CartesianAxisRendererState.__proto__),
    [_repaintAxisElements]: dart.fnType(dart.void, []),
    build: dart.fnType(framework.Widget, [framework.BuildContext])
  }));
  dart.setLibraryUri(charts._CartesianAxisRendererState, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._CartesianAxisRendererState, () => ({
    __proto__: dart.getFields(charts._CartesianAxisRendererState.__proto__),
    animationControllersList: dart.fieldType(core.List$(animation_controller.AnimationController)),
    animationController: dart.fieldType(animation_controller.AnimationController),
    axisRepaintNotifier: dart.fieldType(change_notifier.ValueNotifier$(core.int))
  }));
  const _onDraw = dart.privateName(charts, "_onDraw");
  const _drawPlotAreaBorder = dart.privateName(charts, "_drawPlotAreaBorder");
  const _backgroundImage = dart.privateName(charts, "_backgroundImage");
  const _drawAxes = dart.privateName(charts, "_drawAxes");
  const _drawHorizontalAxes = dart.privateName(charts, "_drawHorizontalAxes");
  const _drawVerticalAxes = dart.privateName(charts, "_drawVerticalAxes");
  charts._CartesianAxesPainter = class _CartesianAxesPainter extends custom_paint.CustomPainter {
    paint(canvas, size) {
      this[_onDraw](canvas);
    }
    [_onDraw](canvas) {
      if (this.renderType === "outside") {
        this[_drawPlotAreaBorder](canvas);
        if (this.chart.plotAreaBackgroundImage != null && this.chart[_chartState][_backgroundImage] != null) {
          decoration_image.paintImage({canvas: canvas, rect: this.chart[_chartAxis][_axisClipRect], image: this.chart[_chartState][_backgroundImage], fit: box_fit.BoxFit.fill});
        }
      }
      this[_drawAxes](canvas);
    }
    [_drawPlotAreaBorder](canvas) {
      let t1, t0;
      let axisClipRect = this.chart[_chartAxis][_axisClipRect];
      let paint = ui.Paint.new();
      paint.color = this.chart.plotAreaBorderColor;
      paint.style = ui.PaintingStyle.stroke;
      paint.strokeWidth = this.chart.plotAreaBorderWidth;
      this.chart.plotAreaBorderWidth === 0 ? paint.color = colors$.Colors.transparent : paint.color = paint.color;
      canvas.drawRect(axisClipRect, paint);
      canvas.drawRect(axisClipRect, (t0 = ui.Paint.new(), t0.color = (t1 = this.chart.plotAreaBackgroundColor, t1 == null ? this.chart[_chartState][_chartTheme].plotAreaBackgroundColor : t1), t0.style = ui.PaintingStyle.fill, t0));
    }
    [_drawHorizontalAxes](canvas, axis, animationFactor, oldAxis, needAnimate) {
      if (dart.test(axis.isVisible)) {
        if (dart.notNull(axis.axisLine.width) > 0 && this.renderType === "outside") {
          axis[_axisRenderer].drawHorizontalAxesLine(canvas, axis, this.chart);
        }
        if (dart.notNull(axis.majorTickLines.width) > 0 || dart.notNull(axis.majorGridLines.width) > 0) {
          axis[_axisRenderer].drawHorizontalAxesTickLines(canvas, axis, this.chart, this.renderType, animationFactor, oldAxis, needAnimate);
        }
        axis[_axisRenderer].drawHorizontalAxesLabels(canvas, axis, this.chart, this.renderType, animationFactor, oldAxis, needAnimate);
        if (this.renderType === "outside") {
          axis[_axisRenderer].drawHorizontalAxesTitle(canvas, axis, this.chart);
        }
      }
    }
    [_drawVerticalAxes](canvas, axis, animationFactor, oldAxis, needAnimate) {
      if (dart.test(axis.isVisible)) {
        if (dart.notNull(axis.axisLine.width) > 0 && this.renderType === "outside") {
          axis[_axisRenderer].drawVerticalAxesLine(canvas, axis, this.chart);
        }
        if (dart.test(axis[_visibleLabels][$isNotEmpty]) && (dart.notNull(axis.majorTickLines.width) > 0 || dart.notNull(axis.majorGridLines.width) > 0)) {
          axis[_axisRenderer].drawVerticalAxesTickLines(canvas, axis, this.chart, this.renderType, animationFactor, oldAxis, needAnimate);
        }
        axis[_axisRenderer].drawVerticalAxesLabels(canvas, axis, this.chart, this.renderType, animationFactor, oldAxis, needAnimate);
        if (this.renderType === "outside") {
          axis[_axisRenderer].drawVerticalAxesTitle(canvas, axis, this.chart);
        }
      }
    }
    [_drawAxes](canvas) {
      let animationFactor = this.axisAnimation != null ? this.axisAnimation.value : 1.0;
      for (let axisIndex = 0; axisIndex < dart.notNull(this.chart[_chartAxis][_axisCollections][$length]); axisIndex = axisIndex + 1) {
        let axis = this.chart[_chartAxis][_axisCollections][$_get](axisIndex);
        axis[_isInsideTickPosition] = dart.equals(axis.tickPosition, charts.TickPosition.inside) ? true : false;
        let oldAxis = null;
        let needAnimate = false;
        if (this.chart[_chartState].oldAxes != null && axis[_visibleRange] != null) {
          oldAxis = charts._getOldAxis(axis, this.chart[_chartState].oldAxes);
          if (oldAxis != null && oldAxis[_visibleRange] != null) {
            needAnimate = !dart.equals(oldAxis[_visibleRange].minimum, axis[_visibleRange].minimum) || !dart.equals(oldAxis[_visibleRange].maximum, axis[_visibleRange].maximum);
          }
        }
        dart.equals(axis[_orientation], charts.AxisOrientation.horizontal) ? this[_drawHorizontalAxes](canvas, axis, animationFactor, oldAxis, needAnimate) : this[_drawVerticalAxes](canvas, axis, animationFactor, oldAxis, needAnimate);
      }
    }
    shouldRepaint(oldDelegate) {
      charts._CartesianAxesPainter._check(oldDelegate);
      return this.isRepaint;
    }
  };
  (charts._CartesianAxesPainter.new = function(opts) {
    let chart = opts && 'chart' in opts ? opts.chart : null;
    let isRepaint = opts && 'isRepaint' in opts ? opts.isRepaint : null;
    let notifier = opts && 'notifier' in opts ? opts.notifier : null;
    let renderType = opts && 'renderType' in opts ? opts.renderType : null;
    let axisAnimation = opts && 'axisAnimation' in opts ? opts.axisAnimation : null;
    this.chart = chart;
    this.isRepaint = isRepaint;
    this.renderType = renderType;
    this.axisAnimation = axisAnimation;
    charts._CartesianAxesPainter.__proto__.new.call(this, {repaint: notifier});
    ;
  }).prototype = charts._CartesianAxesPainter.prototype;
  dart.addTypeTests(charts._CartesianAxesPainter);
  dart.setMethodSignature(charts._CartesianAxesPainter, () => ({
    __proto__: dart.getMethods(charts._CartesianAxesPainter.__proto__),
    paint: dart.fnType(dart.void, [ui.Canvas, ui.Size]),
    [_onDraw]: dart.fnType(dart.void, [ui.Canvas]),
    [_drawPlotAreaBorder]: dart.fnType(dart.void, [ui.Canvas]),
    [_drawHorizontalAxes]: dart.fnType(dart.void, [ui.Canvas, charts.ChartAxis, core.double, charts.ChartAxis, core.bool]),
    [_drawVerticalAxes]: dart.fnType(dart.void, [ui.Canvas, charts.ChartAxis, core.double, charts.ChartAxis, core.bool]),
    [_drawAxes]: dart.fnType(dart.void, [ui.Canvas]),
    shouldRepaint: dart.fnType(core.bool, [core.Object])
  }));
  dart.setLibraryUri(charts._CartesianAxesPainter, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._CartesianAxesPainter, () => ({
    __proto__: dart.getFields(charts._CartesianAxesPainter.__proto__),
    chart: dart.fieldType(charts.SfCartesianChart),
    isRepaint: dart.finalFieldType(core.bool),
    renderType: dart.finalFieldType(core.String),
    axisAnimation: dart.finalFieldType(animation.Animation$(core.double))
  }));
  const _findAxisMinMax = dart.privateName(charts, "_findAxisMinMax");
  const _controlListener = dart.privateName(charts, "_controlListener");
  const _calculateActualRange = dart.privateName(charts, "_calculateActualRange");
  const _chart$0 = dart.privateName(charts, "CategoryAxis._chart");
  const labelPlacement$ = dart.privateName(charts, "CategoryAxis.labelPlacement");
  const arrangeByIndex$ = dart.privateName(charts, "CategoryAxis.arrangeByIndex");
  const minimum$ = dart.privateName(charts, "CategoryAxis.minimum");
  const maximum$ = dart.privateName(charts, "CategoryAxis.maximum");
  const visibleMinimum$ = dart.privateName(charts, "CategoryAxis.visibleMinimum");
  const visibleMaximum$ = dart.privateName(charts, "CategoryAxis.visibleMaximum");
  charts.CategoryAxis = class CategoryAxis extends charts.ChartAxis {
    get [_chart]() {
      return this[_chart$0];
    }
    set [_chart](value) {
      this[_chart$0] = value;
    }
    get labelPlacement() {
      return this[labelPlacement$];
    }
    set labelPlacement(value) {
      super.labelPlacement = value;
    }
    get arrangeByIndex() {
      return this[arrangeByIndex$];
    }
    set arrangeByIndex(value) {
      super.arrangeByIndex = value;
    }
    get minimum() {
      return this[minimum$];
    }
    set minimum(value) {
      super.minimum = value;
    }
    get maximum() {
      return this[maximum$];
    }
    set maximum(value) {
      super.maximum = value;
    }
    get visibleMinimum() {
      return this[visibleMinimum$];
    }
    set visibleMinimum(value) {
      super.visibleMinimum = value;
    }
    get visibleMaximum() {
      return this[visibleMaximum$];
    }
    set visibleMaximum(value) {
      super.visibleMaximum = value;
    }
    [_findAxisMinMax](series, point, pointIndex, dataLength) {
      let t2, t1, t0, t0$, t0$0, t0$1, t0$2, t0$3, t0$4;
      if (dart.test(this.arrangeByIndex)) {
        dart.notNull(pointIndex) < dart.notNull(core.num._check(dart.dload(this[_labels], 'length'))) && dart.dsend(this[_labels], '_get', [pointIndex]) != null ? (t0 = this[_labels], t1 = pointIndex, t2 = dart.dsend(dart.dsend(t0, '_get', [t1]), '+', [", " + dart.notNull(core.String._check(point.x))]), dart.dsend(t0, '_set', [t1, t2]), t2) : dart.dsend(this[_labels], 'add', [dart.toString(point.x)]);
        point.xValue = pointIndex;
      } else {
        if (dart.dtest(dart.dsend(dart.dsend(this[_labels], 'indexOf', [dart.toString(point.x)]), '<', [0]))) {
          dart.dsend(this[_labels], 'add', [dart.toString(point.x)]);
        }
        point.xValue = dart.dsend(this[_labels], 'indexOf', [dart.toString(point.x)]);
      }
      point.yValue = point.y;
      t0$ = series;
      t0$[_minimumX] == null ? t0$[_minimumX] = core.num._check(point.xValue) : null;
      t0$0 = series;
      t0$0[_maximumX] == null ? t0$0[_maximumX] = core.num._check(point.xValue) : null;
      if (!series[_seriesType$][$contains]("range")) {
        t0$1 = series;
        t0$1[_minimumY] == null ? t0$1[_minimumY] = core.num._check(point.yValue) : null;
        t0$2 = series;
        t0$2[_maximumY] == null ? t0$2[_maximumY] = core.num._check(point.yValue) : null;
      }
      this[_lowMin] == null ? this[_lowMin] = core.num._check(point.low) : null;
      this[_lowMax] == null ? this[_lowMax] = core.num._check(point.low) : null;
      this[_highMin] == null ? this[_highMin] = core.num._check(point.high) : null;
      this[_highMax] == null ? this[_highMax] = core.num._check(point.high) : null;
      if (point.xValue != null) {
        series[_minimumX] = math.min(core.num, series[_minimumX], core.num._check(point.xValue));
        series[_maximumX] = math.max(core.num, series[_maximumX], core.num._check(point.xValue));
      }
      if (point.yValue != null && !series[_seriesType$][$contains]("range") && !series[_seriesType$][$contains]("hilo") && !series[_seriesType$][$contains]("candle")) {
        series[_minimumY] = math.min(core.num, series[_minimumY], core.num._check(point.yValue));
        series[_maximumY] = math.max(core.num, series[_maximumY], core.num._check(point.yValue));
      }
      if (point.high != null) {
        this[_highMin] = math.min(core.num, this[_highMin], core.num._check(point.high));
        this[_highMax] = math.max(core.num, this[_highMax], core.num._check(point.high));
      }
      if (point.low != null) {
        this[_lowMin] = math.min(core.num, this[_lowMin], core.num._check(point.low));
        this[_lowMax] = math.max(core.num, this[_lowMax], core.num._check(point.low));
      }
      if (dart.notNull(pointIndex) >= dart.notNull(dataLength) - 1) {
        if (series[_seriesType$][$contains]("range") || series[_seriesType$][$contains]("hilo") || series[_seriesType$][$contains]("candle")) {
          this[_lowMin] == null ? this[_lowMin] = 0 : null;
          this[_lowMax] == null ? this[_lowMax] = 5 : null;
          this[_highMin] == null ? this[_highMin] = 0 : null;
          this[_highMax] == null ? this[_highMax] = 5 : null;
          series[_minimumY] = math.min(core.num, this[_lowMin], this[_highMin]);
          series[_maximumY] = math.max(core.num, this[_lowMax], this[_highMax]);
        }
        t0$3 = series;
        t0$3[_minimumY] == null ? t0$3[_minimumY] = 0 : null;
        t0$4 = series;
        t0$4[_maximumY] == null ? t0$4[_maximumY] = 5 : null;
      }
    }
    [_controlListener]() {
      if (this.rangeController != null) {
        this[_chart][_chartState].rangeChangeBySlider = true;
        this[_rangeMinimum] = this.rangeController.start;
        this[_rangeMaximum] = this.rangeController.end;
        this[_chart][_chartState].redrawByRangeChange();
      }
    }
    [_calculateRangeAndInterval](chart, type = null) {
      this[_chart] = chart;
      if (this.rangeController != null) {
        this.rangeController.addListener(dart.bind(this, _controlListener));
      }
      let containerRect = chart[_chartState].containerRect;
      this[_rect] = new ui.Rect.fromLTWH(containerRect.left, containerRect.top, containerRect.width, containerRect.height);
      this.calculateRange(this);
      this[_calculateActualRange]();
      if (this[_actualRange] != null) {
        this.applyRangePadding(this[_actualRange], core.num._check(this[_actualRange].interval));
        if (type == null && type !== "AxisCross") {
          this.generateVisibleLabels();
        }
      }
    }
    [_calculateActualRange]() {
      let t0, t0$, t0$0, t0$1, t0$2, t0$3;
      if (this[_min] != null && this[_max] != null) {
        this[_actualRange] = new charts._VisibleRange.new(dart.test(this[_chart][_chartState].rangeChangeBySlider) && this.rangeController != null ? this[_rangeMinimum] : (t0 = this.minimum, t0 == null ? this[_min] : t0), dart.test(this[_chart][_chartState].rangeChangeBySlider) && this.rangeController != null ? this[_rangeMaximum] : (t0$ = this.maximum, t0$ == null ? this[_max] : t0$));
        let seriesCollection = this[_series];
        let series = null;
        for (let i = 0; i < dart.notNull(seriesCollection[$length]); i = i + 1) {
          series = seriesCollection[$_get](i);
          if (dart.dtest(dart.dsend(this[_actualRange].maximum, '>', [dart.notNull(series[_dataPoints$][$length]) - 1]))) {
            for (let i = core.int._check(dart.dload(this[_labels], 'length')); dart.notNull(i) < dart.notNull(core.num._check(dart.dsend(this[_actualRange].maximum, '+', [1]))); i = dart.notNull(i) + 1) {
              dart.dsend(this[_labels], 'add', [dart.toString(i)]);
            }
          }
        }
        this[_actualRange] = new charts._VisibleRange.new((t0$0 = this.minimum, t0$0 == null ? this[_min] : t0$0), (t0$1 = this.maximum, t0$1 == null ? this[_max] : t0$1));
        if (dart.equals(this[_actualRange].minimum, this[_actualRange].maximum) && dart.equals(this.labelPlacement, charts.LabelPlacement.onTicks)) {
          t0$2 = this[_actualRange];
          t0$2.maximum = dart.dsend(t0$2.maximum, '+', [1]);
        }
        this[_actualRange].delta = core.num._check(dart.dsend(this[_actualRange].maximum, '-', [this[_actualRange].minimum]));
        this[_actualRange].interval = (t0$3 = this.interval, t0$3 == null ? this.calculateInterval(this[_actualRange], new ui.Size.new(this[_rect].width, this[_rect].height)) : t0$3);
        this[_actualRange].delta = core.num._check(dart.dsend(this[_actualRange].maximum, '-', [this[_actualRange].minimum]));
      }
    }
    calculateVisibleRange(availableSize) {
      this[_visibleRange] = new charts._VisibleRange.new(this[_actualRange].minimum, this[_actualRange].maximum);
      this[_visibleRange].delta = this[_actualRange].delta;
      this[_visibleRange].interval = this[_actualRange].interval;
      this[_checkWithZoomState](this, this[_chart][_chartState].zoomedAxisStates);
      if (dart.notNull(this[_zoomFactor]) < 1 || dart.notNull(this[_zoomPosition]) > 0) {
        this[_calculateZoomRange](this, availableSize);
      }
    }
    applyRangePadding(range, interval) {
      let t0, t0$;
      let rangeChangedArgs = null;
      if (dart.equals(this.labelPlacement, charts.LabelPlacement.betweenTicks)) {
        t0 = range;
        t0.minimum = dart.dsend(t0.minimum, '-', [0.5]);
        t0$ = range;
        t0$.maximum = dart.dsend(t0$.maximum, '+', [0.5]);
        range.delta = core.num._check(dart.dsend(range.maximum, '-', [range.minimum]));
      }
      if (!(this.minimum != null && this.maximum != null)) {
        this[_applyRangePadding](this, this[_chart], range, interval);
      }
      this.calculateVisibleRange(new ui.Size.new(this[_rect].width, this[_rect].height));
      if ((this.visibleMinimum != null || this.visibleMaximum != null) && this.visibleMinimum != this.visibleMaximum && this[_chart][_chartState].zoomedAxisStates != null && dart.test(this[_chart][_chartState].zoomedAxisStates[$isEmpty])) {
        this[_visibleRange].minimum = this.visibleMinimum != null ? this.visibleMinimum : this[_visibleRange].minimum;
        this[_visibleRange].maximum = this.visibleMaximum != null ? this.visibleMaximum : this[_visibleRange].maximum;
        this[_visibleRange].delta = core.num._check(dart.dsend(this[_visibleRange].maximum, '-', [this[_visibleRange].minimum]));
        this[_zoomFactor] = dart.notNull(this[_visibleRange].delta) / dart.notNull(range.delta);
        this[_zoomPosition] = core.double._check(dart.dsend(dart.dsend(this[_visibleRange].minimum, '-', [this[_actualRange].minimum]), '/', [range.delta]));
      }
      if (this[_chart].onActualRangeChanged != null) {
        rangeChangedArgs = new charts.ActualRangeChangedArgs.new();
        rangeChangedArgs.axisName = this[_name$];
        rangeChangedArgs.orientation = this[_orientation];
        rangeChangedArgs.axis = this;
        rangeChangedArgs.actualMin = range.minimum;
        rangeChangedArgs.actualMax = range.maximum;
        rangeChangedArgs.actualInterval = range.interval;
        rangeChangedArgs.visibleMin = this[_visibleRange].minimum;
        rangeChangedArgs.visibleMax = this[_visibleRange].maximum;
        rangeChangedArgs.visibleInterval = this[_visibleRange].interval;
        this[_chart].onActualRangeChanged(rangeChangedArgs);
        this[_visibleRange].minimum = rangeChangedArgs.visibleMin;
        this[_visibleRange].maximum = rangeChangedArgs.visibleMax;
        this[_visibleRange].interval = rangeChangedArgs.visibleInterval;
      }
    }
    generateVisibleLabels() {
      let tempInterval = core.num._check(dart.dsend(this[_visibleRange].minimum, 'ceil', []));
      let position = null;
      let labelText = null;
      this[_visibleLabels] = JSArrayOfAxisLabel().of([]);
      for (; dart.notNull(tempInterval) <= dart.notNull(core.num._check(this[_visibleRange].maximum)); tempInterval = dart.notNull(tempInterval) + dart.notNull(core.num._check(this[_visibleRange].interval))) {
        if (dart.test(charts._withIn(tempInterval, this[_visibleRange]))) {
          position = tempInterval[$round]();
          if (dart.notNull(position) <= -1 || dart.dtest(dart.dload(this[_labels], 'isNotEmpty')) && dart.notNull(position) >= dart.notNull(core.num._check(dart.dload(this[_labels], 'length')))) {
            continue;
          } else if (dart.dtest(dart.dload(this[_labels], 'isNotEmpty')) && dart.dsend(this[_labels], '_get', [position]) != null) {
            labelText = core.String._check(dart.dsend(this[_labels], '_get', [position]));
          } else {
            continue;
          }
          this[_triggerLabelRenderEvent](labelText, tempInterval);
        }
      }
      this[_calculateMaximumLabelSize](this, this[_chart]);
    }
    calculateInterval(range, availableSize) {
      return math.max(core.int, 1, (dart.notNull(this[_actualRange].delta) / dart.notNull(this[_calculateDesiredIntervalCount](new ui.Size.new(this[_rect].width, this[_rect].height), this)))[$floor]())[$toInt]();
    }
  };
  (charts.CategoryAxis.new = function(opts) {
    let t0, t0$;
    let name = opts && 'name' in opts ? opts.name : null;
    let isVisible = opts && 'isVisible' in opts ? opts.isVisible : null;
    let title = opts && 'title' in opts ? opts.title : null;
    let axisLine = opts && 'axisLine' in opts ? opts.axisLine : null;
    let arrangeByIndex = opts && 'arrangeByIndex' in opts ? opts.arrangeByIndex : null;
    let rangePadding = opts && 'rangePadding' in opts ? opts.rangePadding : null;
    let labelPlacement = opts && 'labelPlacement' in opts ? opts.labelPlacement : null;
    let edgeLabelPlacement = opts && 'edgeLabelPlacement' in opts ? opts.edgeLabelPlacement : null;
    let labelPosition = opts && 'labelPosition' in opts ? opts.labelPosition : null;
    let tickPosition = opts && 'tickPosition' in opts ? opts.tickPosition : null;
    let labelRotation = opts && 'labelRotation' in opts ? opts.labelRotation : null;
    let labelIntersectAction = opts && 'labelIntersectAction' in opts ? opts.labelIntersectAction : null;
    let labelAlignment = opts && 'labelAlignment' in opts ? opts.labelAlignment : null;
    let isInversed = opts && 'isInversed' in opts ? opts.isInversed : null;
    let opposedPosition = opts && 'opposedPosition' in opts ? opts.opposedPosition : null;
    let minorTicksPerInterval = opts && 'minorTicksPerInterval' in opts ? opts.minorTicksPerInterval : null;
    let maximumLabels = opts && 'maximumLabels' in opts ? opts.maximumLabels : null;
    let majorTickLines = opts && 'majorTickLines' in opts ? opts.majorTickLines : null;
    let minorTickLines = opts && 'minorTickLines' in opts ? opts.minorTickLines : null;
    let majorGridLines = opts && 'majorGridLines' in opts ? opts.majorGridLines : null;
    let minorGridLines = opts && 'minorGridLines' in opts ? opts.minorGridLines : null;
    let labelStyle = opts && 'labelStyle' in opts ? opts.labelStyle : null;
    let plotOffset = opts && 'plotOffset' in opts ? opts.plotOffset : null;
    let zoomFactor = opts && 'zoomFactor' in opts ? opts.zoomFactor : null;
    let zoomPosition = opts && 'zoomPosition' in opts ? opts.zoomPosition : null;
    let interactiveTooltip = opts && 'interactiveTooltip' in opts ? opts.interactiveTooltip : null;
    let minimum = opts && 'minimum' in opts ? opts.minimum : null;
    let maximum = opts && 'maximum' in opts ? opts.maximum : null;
    let interval = opts && 'interval' in opts ? opts.interval : null;
    let visibleMinimum = opts && 'visibleMinimum' in opts ? opts.visibleMinimum : null;
    let visibleMaximum = opts && 'visibleMaximum' in opts ? opts.visibleMaximum : null;
    let crossesAt = opts && 'crossesAt' in opts ? opts.crossesAt : null;
    let associatedAxisName = opts && 'associatedAxisName' in opts ? opts.associatedAxisName : null;
    let placeLabelsNearAxisLine = opts && 'placeLabelsNearAxisLine' in opts ? opts.placeLabelsNearAxisLine : null;
    let plotBands = opts && 'plotBands' in opts ? opts.plotBands : null;
    let desiredIntervals = opts && 'desiredIntervals' in opts ? opts.desiredIntervals : null;
    let rangeController = opts && 'rangeController' in opts ? opts.rangeController : null;
    this[_chart$0] = null;
    this[_labels] = null;
    this[_rect] = null;
    this[minimum$] = minimum;
    this[maximum$] = maximum;
    this[visibleMinimum$] = visibleMinimum;
    this[visibleMaximum$] = visibleMaximum;
    this[arrangeByIndex$] = (t0 = arrangeByIndex, t0 == null ? false : t0);
    this[labelPlacement$] = (t0$ = labelPlacement, t0$ == null ? charts.LabelPlacement.betweenTicks : t0$);
    charts.CategoryAxis.__proto__.new.call(this, {name: name, isVisible: isVisible, isInversed: isInversed, plotOffset: plotOffset, rangePadding: rangePadding, opposedPosition: opposedPosition, edgeLabelPlacement: edgeLabelPlacement, labelRotation: labelRotation, labelPosition: labelPosition, tickPosition: tickPosition, labelIntersectAction: labelIntersectAction, minorTicksPerInterval: minorTicksPerInterval, maximumLabels: maximumLabels, labelAlignment: labelAlignment, labelStyle: labelStyle, title: title, axisLine: axisLine, majorTickLines: majorTickLines, minorTickLines: minorTickLines, majorGridLines: majorGridLines, minorGridLines: minorGridLines, zoomFactor: zoomFactor, zoomPosition: zoomPosition, interactiveTooltip: interactiveTooltip, interval: interval, crossesAt: crossesAt, associatedAxisName: associatedAxisName, placeLabelsNearAxisLine: placeLabelsNearAxisLine, plotBands: plotBands, desiredIntervals: desiredIntervals, rangeController: rangeController});
    this[_labels] = [];
  }).prototype = charts.CategoryAxis.prototype;
  dart.addTypeTests(charts.CategoryAxis);
  dart.setMethodSignature(charts.CategoryAxis, () => ({
    __proto__: dart.getMethods(charts.CategoryAxis.__proto__),
    [_findAxisMinMax]: dart.fnType(dart.void, [charts.CartesianSeries, charts.CartesianChartPoint, core.int, core.int]),
    [_controlListener]: dart.fnType(dart.void, []),
    [_calculateRangeAndInterval]: dart.fnType(dart.void, [charts.SfCartesianChart], [core.String]),
    [_calculateActualRange]: dart.fnType(dart.void, []),
    calculateVisibleRange: dart.fnType(dart.void, [ui.Size]),
    applyRangePadding: dart.fnType(dart.void, [charts._VisibleRange, core.num]),
    generateVisibleLabels: dart.fnType(dart.void, []),
    calculateInterval: dart.fnType(core.num, [charts._VisibleRange, ui.Size])
  }));
  dart.setLibraryUri(charts.CategoryAxis, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.CategoryAxis, () => ({
    __proto__: dart.getFields(charts.CategoryAxis.__proto__),
    [_chart]: dart.fieldType(charts.SfCartesianChart),
    labelPlacement: dart.finalFieldType(charts.LabelPlacement),
    arrangeByIndex: dart.finalFieldType(core.bool),
    minimum: dart.finalFieldType(core.double),
    maximum: dart.finalFieldType(core.double),
    visibleMinimum: dart.finalFieldType(core.double),
    visibleMaximum: dart.finalFieldType(core.double),
    [_labels]: dart.fieldType(dart.dynamic),
    [_rect]: dart.fieldType(ui.Rect)
  }));
  const _actualIntervalType = dart.privateName(charts, "_actualIntervalType");
  const _dateTimeInterval = dart.privateName(charts, "_dateTimeInterval");
  const _calculateDateTimeNiceInterval = dart.privateName(charts, "_calculateDateTimeNiceInterval");
  const _calculateYear = dart.privateName(charts, "_calculateYear");
  let C364;
  const _calculateMonth = dart.privateName(charts, "_calculateMonth");
  let C365;
  const _calculateDay = dart.privateName(charts, "_calculateDay");
  let C366;
  const _calculateHour = dart.privateName(charts, "_calculateHour");
  let C367;
  const _calculateMinute = dart.privateName(charts, "_calculateMinute");
  let C368;
  const _calculateSecond = dart.privateName(charts, "_calculateSecond");
  let C369;
  const _alignRangeStart = dart.privateName(charts, "_alignRangeStart");
  const _getLabelFormat = dart.privateName(charts, "_getLabelFormat");
  const _increaseDateTimeInterval = dart.privateName(charts, "_increaseDateTimeInterval");
  let C370;
  const dateFormat$ = dart.privateName(charts, "DateTimeAxis.dateFormat");
  const labelFormat$ = dart.privateName(charts, "DateTimeAxis.labelFormat");
  const intervalType$ = dart.privateName(charts, "DateTimeAxis.intervalType");
  const minimum$0 = dart.privateName(charts, "DateTimeAxis.minimum");
  const maximum$0 = dart.privateName(charts, "DateTimeAxis.maximum");
  const visibleMinimum$0 = dart.privateName(charts, "DateTimeAxis.visibleMinimum");
  const visibleMaximum$0 = dart.privateName(charts, "DateTimeAxis.visibleMaximum");
  const _visibleRange$0 = dart.privateName(charts, "DateTimeAxis._visibleRange");
  const _chart$1 = dart.privateName(charts, "DateTimeAxis._chart");
  const _axisSize$0 = dart.privateName(charts, "DateTimeAxis._axisSize");
  charts.DateTimeAxis = class DateTimeAxis extends charts.ChartAxis {
    get dateFormat() {
      return this[dateFormat$];
    }
    set dateFormat(value) {
      super.dateFormat = value;
    }
    get labelFormat() {
      return this[labelFormat$];
    }
    set labelFormat(value) {
      super.labelFormat = value;
    }
    get intervalType() {
      return this[intervalType$];
    }
    set intervalType(value) {
      super.intervalType = value;
    }
    get minimum() {
      return this[minimum$0];
    }
    set minimum(value) {
      super.minimum = value;
    }
    get maximum() {
      return this[maximum$0];
    }
    set maximum(value) {
      super.maximum = value;
    }
    get visibleMinimum() {
      return this[visibleMinimum$0];
    }
    set visibleMinimum(value) {
      super.visibleMinimum = value;
    }
    get visibleMaximum() {
      return this[visibleMaximum$0];
    }
    set visibleMaximum(value) {
      super.visibleMaximum = value;
    }
    get [_visibleRange]() {
      return this[_visibleRange$0];
    }
    set [_visibleRange](value) {
      this[_visibleRange$0] = value;
    }
    get [_chart]() {
      return this[_chart$1];
    }
    set [_chart](value) {
      this[_chart$1] = value;
    }
    get [_axisSize]() {
      return this[_axisSize$0];
    }
    set [_axisSize](value) {
      this[_axisSize$0] = value;
    }
    [_findAxisMinMax](series, point, pointIndex, dataLength) {
      let t0, t0$, t0$0, t0$1, t0$2, t0$3;
      if (point.x != null) {
        point.xValue = dart.dload(point.x, 'millisecondsSinceEpoch');
      }
      point.yValue = point.y;
      t0 = series;
      t0[_minimumX] == null ? t0[_minimumX] = core.num._check(point.xValue) : null;
      t0$ = series;
      t0$[_maximumX] == null ? t0$[_maximumX] = core.num._check(point.xValue) : null;
      if (!series[_seriesType$][$contains]("range") && !series[_seriesType$][$contains]("hilo") && !series[_seriesType$][$contains]("candle")) {
        t0$0 = series;
        t0$0[_minimumY] == null ? t0$0[_minimumY] = core.num._check(point.yValue) : null;
        t0$1 = series;
        t0$1[_maximumY] == null ? t0$1[_maximumY] = core.num._check(point.yValue) : null;
      }
      this[_lowMin] == null ? this[_lowMin] = core.num._check(point.low) : null;
      this[_lowMax] == null ? this[_lowMax] = core.num._check(point.low) : null;
      this[_highMin] == null ? this[_highMin] = core.num._check(point.high) : null;
      this[_highMax] == null ? this[_highMax] = core.num._check(point.high) : null;
      if (point.xValue != null) {
        series[_minimumX] = math.min(core.num, series[_minimumX], core.num._check(point.xValue));
        series[_maximumX] = math.max(core.num, series[_maximumX], core.num._check(point.xValue));
      }
      if (point.yValue != null && !series[_seriesType$][$contains]("range") && !series[_seriesType$][$contains]("hilo") && !series[_seriesType$][$contains]("candle")) {
        series[_minimumY] = math.min(core.num, series[_minimumY], core.num._check(point.yValue));
        series[_maximumY] = math.max(core.num, series[_maximumY], core.num._check(point.yValue));
      }
      if (point.high != null) {
        this[_highMin] = math.min(core.num, this[_highMin], core.num._check(point.high));
        this[_highMax] = math.max(core.num, this[_highMax], core.num._check(point.high));
      }
      if (point.low != null) {
        this[_lowMin] = math.min(core.num, this[_lowMin], core.num._check(point.low));
        this[_lowMax] = math.max(core.num, this[_lowMax], core.num._check(point.low));
      }
      if (dart.notNull(pointIndex) >= dart.notNull(dataLength) - 1) {
        if (series[_seriesType$][$contains]("range") || series[_seriesType$][$contains]("hilo") || series[_seriesType$][$contains]("candle")) {
          this[_lowMin] == null ? this[_lowMin] = 0 : null;
          this[_lowMax] == null ? this[_lowMax] = 5 : null;
          this[_highMin] == null ? this[_highMin] = 0 : null;
          this[_highMax] == null ? this[_highMax] = 5 : null;
          series[_minimumY] = math.min(core.num, this[_lowMin], this[_highMin]);
          series[_maximumY] = math.max(core.num, this[_lowMax], this[_highMax]);
        }
        t0$2 = series;
        t0$2[_minimumX] == null ? t0$2[_minimumX] = 2717008000 : null;
        t0$3 = series;
        t0$3[_maximumX] == null ? t0$3[_maximumX] = 13085008000 : null;
      }
    }
    [_controlListener]() {
      if (this.rangeController != null) {
        this[_chart][_chartState].rangeChangeBySlider = true;
        this[_rangeMinimum] = dart.dload(this.rangeController.start, 'millisecondsSinceEpoch');
        this[_rangeMaximum] = dart.dload(this.rangeController.end, 'millisecondsSinceEpoch');
        this[_chart][_chartState].redrawByRangeChange();
      }
    }
    [_calculateRangeAndInterval](chartWidget, type = null) {
      this[_chart] = chartWidget;
      if (this.rangeController != null) {
        this.rangeController.addListener(dart.bind(this, _controlListener));
      }
      let containerRect = this[_chart][_chartState].containerRect;
      let rect = new ui.Rect.fromLTWH(containerRect.left, containerRect.top, containerRect.width, containerRect.height);
      this[_axisSize] = new ui.Size.new(rect.width, rect.height);
      this.calculateRange(this);
      this[_calculateActualRange]();
      if (this[_actualRange] != null) {
        this.applyRangePadding(this[_actualRange], core.num._check(this[_actualRange].interval));
        if (type == null && type !== "AxisCross") {
          this.generateVisibleLabels();
        }
      }
    }
    [_calculateActualRange]() {
      let t0;
      this[_min] == null ? this[_min] = 2717008000 : null;
      this[_max] == null ? this[_max] = 13085008000 : null;
      this[_actualRange] = new charts._VisibleRange.new(dart.test(this[_chart][_chartState].rangeChangeBySlider) && this.rangeController != null ? this[_rangeMinimum] : this.minimum != null ? this.minimum.millisecondsSinceEpoch : this[_min], dart.test(this[_chart][_chartState].rangeChangeBySlider) && this.rangeController != null ? this[_rangeMaximum] : this.maximum != null ? this.maximum.millisecondsSinceEpoch : this[_max]);
      if (dart.equals(this[_actualRange].minimum, this[_actualRange].maximum)) {
        this[_actualRange].minimum = dart.dsend(this[_actualRange].minimum, '-', [2592000000]);
        this[_actualRange].maximum = dart.dsend(this[_actualRange].maximum, '+', [2592000000]);
      }
      this[_dateTimeInterval] = this[_calculateDateTimeNiceInterval](this, this[_axisSize], this[_actualRange])[$floor]();
      this[_actualRange].interval = (t0 = this.interval, t0 == null ? this[_dateTimeInterval] : t0)[$floor]();
      this[_actualRange].delta = core.num._check(dart.dsend(this[_actualRange].maximum, '-', [this[_actualRange].minimum]));
    }
    applyRangePadding(range, interval) {
      this[_min] = core.num._check(dart.dsend(range.minimum, 'toInt', []));
      this[_max] = core.num._check(dart.dsend(range.maximum, 'toInt', []));
      let rangeChangedArgs = null;
      if (this.minimum == null && this.maximum == null) {
        let rangePadding = this[_calculateRangePadding](this, this[_chart]);
        let minimum = new core.DateTime.fromMillisecondsSinceEpoch(dart.asInt(this[_min]));
        let maximum = new core.DateTime.fromMillisecondsSinceEpoch(dart.asInt(this[_max]));
        if (dart.equals(rangePadding, charts.ChartRangePadding.none)) {
          this[_min] = minimum.millisecondsSinceEpoch;
          this[_max] = maximum.millisecondsSinceEpoch;
        } else if (dart.equals(rangePadding, charts.ChartRangePadding.additional) || dart.equals(rangePadding, charts.ChartRangePadding.round)) {
          switch (this[_actualIntervalType]) {
            case C364 || CT.C364:
            {
              this[_calculateYear](minimum, maximum, rangePadding, interval[$toInt]());
              break;
            }
            case C365 || CT.C365:
            {
              this[_calculateMonth](minimum, maximum, rangePadding, interval[$toInt]());
              break;
            }
            case C366 || CT.C366:
            {
              this[_calculateDay](minimum, maximum, rangePadding, interval[$toInt]());
              break;
            }
            case C367 || CT.C367:
            {
              this[_calculateHour](minimum, maximum, rangePadding, interval[$toInt]());
              break;
            }
            case C368 || CT.C368:
            {
              this[_calculateMinute](minimum, maximum, rangePadding, interval[$toInt]());
              break;
            }
            case C369 || CT.C369:
            {
              this[_calculateSecond](minimum, maximum, rangePadding, interval[$toInt]());
              break;
            }
            default:
            {
              break;
            }
          }
        }
      }
      range.minimum = this[_min];
      range.maximum = this[_max];
      range.delta = core.num._check(dart.dsend(range.maximum, '-', [range.minimum]));
      this.calculateVisibleRange(this[_axisSize]);
      if ((this.visibleMinimum != null || this.visibleMaximum != null) && !dart.equals(this.visibleMinimum, this.visibleMaximum) && this[_chart][_chartState].zoomedAxisStates != null && dart.test(this[_chart][_chartState].zoomedAxisStates[$isEmpty])) {
        this[_visibleRange].minimum = this.visibleMinimum != null ? this.visibleMinimum.millisecondsSinceEpoch : this[_visibleRange].minimum;
        this[_visibleRange].maximum = this.visibleMaximum != null ? this.visibleMaximum.millisecondsSinceEpoch : this[_visibleRange].maximum;
        this[_visibleRange].delta = core.num._check(dart.dsend(this[_visibleRange].maximum, '-', [this[_visibleRange].minimum]));
        this[_visibleRange].interval = this.calculateInterval(this[_visibleRange], this[_axisSize]);
        this[_zoomFactor] = dart.notNull(this[_visibleRange].delta) / dart.notNull(range.delta);
        this[_zoomPosition] = core.double._check(dart.dsend(dart.dsend(this[_visibleRange].minimum, '-', [this[_actualRange].minimum]), '/', [range.delta]));
      }
      if (this[_chart].onActualRangeChanged != null) {
        rangeChangedArgs = new charts.ActualRangeChangedArgs.new();
        rangeChangedArgs.axis = this;
        rangeChangedArgs.axisName = this[_name$];
        rangeChangedArgs.orientation = this[_orientation];
        rangeChangedArgs.actualMin = range.minimum;
        rangeChangedArgs.actualMax = range.maximum;
        rangeChangedArgs.actualInterval = range.interval;
        rangeChangedArgs.visibleMin = this[_visibleRange].minimum;
        rangeChangedArgs.visibleMax = this[_visibleRange].maximum;
        rangeChangedArgs.visibleInterval = this[_visibleRange].interval;
        this[_chart].onActualRangeChanged(rangeChangedArgs);
        this[_visibleRange].minimum = core.DateTime.is(rangeChangedArgs.visibleMin) ? dart.dload(rangeChangedArgs.visibleMin, 'millisecondsSinceEpoch') : rangeChangedArgs.visibleMin;
        this[_visibleRange].maximum = core.DateTime.is(rangeChangedArgs.visibleMax) ? dart.dload(rangeChangedArgs.visibleMax, 'millisecondsSinceEpoch') : rangeChangedArgs.visibleMax;
        this[_visibleRange].interval = rangeChangedArgs.visibleInterval;
      }
    }
    calculateVisibleRange(availableSize) {
      this[_visibleRange] = new charts._VisibleRange.new(this[_actualRange].minimum, this[_actualRange].maximum);
      this[_visibleRange].delta = this[_actualRange].delta;
      this[_visibleRange].interval = this[_actualRange].interval;
      this[_checkWithZoomState](this, this[_chart][_chartState].zoomedAxisStates);
      if (dart.notNull(this[_zoomFactor]) < 1 || dart.notNull(this[_zoomPosition]) > 0) {
        this[_chart][_chartState].zoomProgress = true;
        this[_calculateZoomRange](this, availableSize);
        this[_visibleRange].interval = dart.test(this.enableAutoIntervalOnZooming) && dart.test(this[_chart][_chartState].zoomProgress) ? this.calculateInterval(this[_visibleRange], availableSize) : this[_visibleRange].interval;
        this[_visibleRange].minimum = dart.dsend(this[_visibleRange].minimum, 'floor', []);
        this[_visibleRange].maximum = dart.dsend(this[_visibleRange].maximum, 'floor', []);
      }
    }
    generateVisibleLabels() {
      let t0;
      this[_visibleLabels] = JSArrayOfAxisLabel().of([]);
      let interval = core.int._check(this[_visibleRange].minimum);
      interval = this[_alignRangeStart](this, interval, core.num._check(this[_visibleRange].interval));
      while (dart.notNull(interval) <= dart.notNull(core.num._check(this[_visibleRange].maximum))) {
        if (dart.test(charts._withIn(interval, this[_visibleRange]))) {
          let format = (t0 = this.dateFormat, t0 == null ? this[_getLabelFormat](this) : t0);
          let labelText = format.format(new core.DateTime.fromMillisecondsSinceEpoch(interval));
          if (this.labelFormat != null && this.labelFormat !== "") {
            labelText = this.labelFormat[$replaceAll](core.RegExp.new("{value}"), labelText);
          }
          this[_triggerLabelRenderEvent](labelText, interval);
        }
        interval = this[_increaseDateTimeInterval](this, interval, core.int._check(this[_visibleRange].interval)).millisecondsSinceEpoch;
      }
      this[_calculateMaximumLabelSize](this, this[_chart]);
    }
    [_getLabelFormat](axis) {
      let format = null;
      switch (axis[_actualIntervalType]) {
        case C364 || CT.C364:
        {
          format = new intl.DateFormat.yMMM();
          break;
        }
        case C365 || CT.C365:
        {
          format = new intl.DateFormat.MMMd();
          break;
        }
        case C366 || CT.C366:
        {
          format = new intl.DateFormat.MMMd();
          break;
        }
        case C367 || CT.C367:
        {
          format = new intl.DateFormat.Hm();
          break;
        }
        case C368 || CT.C368:
        {
          format = new intl.DateFormat.ms();
          break;
        }
        case C369 || CT.C369:
        {
          format = new intl.DateFormat.ms();
          break;
        }
        default:
        {
          break;
        }
      }
      return format;
    }
    [_alignRangeStart](axis, startDate, interval) {
      let dateTime = new core.DateTime.fromMillisecondsSinceEpoch(startDate);
      switch (axis[_actualIntervalType]) {
        case C364 || CT.C364:
        {
          let year = ((dart.notNull(dateTime.year) / dart.notNull(interval))[$floor]() * dart.notNull(interval))[$floor]();
          dateTime = new core.DateTime.new(year, dateTime.month, dateTime.day, 0, 0, 0);
          break;
        }
        case C365 || CT.C365:
        {
          let month = (dart.notNull(dateTime.month) / dart.notNull(interval) * dart.notNull(interval))[$floor]();
          dateTime = new core.DateTime.new(dateTime.year, month, dateTime.day, 0, 0, 0);
          break;
        }
        case C366 || CT.C366:
        {
          let day = (dart.notNull(dateTime.day) / dart.notNull(interval) * dart.notNull(interval))[$floor]();
          dateTime = new core.DateTime.new(dateTime.year, dateTime.month, day, 0, 0, 0);
          break;
        }
        case C367 || CT.C367:
        {
          let hour = ((dart.notNull(dateTime.hour) / dart.notNull(interval))[$floor]() * dart.notNull(interval))[$floor]();
          dateTime = new core.DateTime.new(dateTime.year, dateTime.month, dateTime.day, hour, 0, 0);
          break;
        }
        case C368 || CT.C368:
        {
          let minute = ((dart.notNull(dateTime.minute) / dart.notNull(interval))[$floor]() * dart.notNull(interval))[$floor]();
          dateTime = new core.DateTime.new(dateTime.year, dateTime.month, dateTime.day, dateTime.hour, minute, 0);
          break;
        }
        case C369 || CT.C369:
        {
          let second = ((dart.notNull(dateTime.second) / dart.notNull(interval))[$floor]() * dart.notNull(interval))[$floor]();
          dateTime = new core.DateTime.new(dateTime.year, dateTime.month, dateTime.day, dateTime.hour, dateTime.minute, second);
          break;
        }
        default:
        {
          break;
        }
      }
      return dateTime.millisecondsSinceEpoch;
    }
    [_increaseDateTimeInterval](axis, value, interval) {
      let dateTime = new core.DateTime.fromMillisecondsSinceEpoch(value);
      axis[_visibleRange].interval = interval;
      switch (axis[_actualIntervalType]) {
        case C364 || CT.C364:
        {
          dateTime = new core.DateTime.new(dart.notNull(dateTime.year) + dart.notNull(interval), dateTime.month, dateTime.day, dateTime.hour, dateTime.minute, dateTime.second, 0);
          break;
        }
        case C365 || CT.C365:
        {
          dateTime = new core.DateTime.new(dateTime.year, dart.notNull(dateTime.month) + dart.notNull(interval), dateTime.day, dateTime.hour, dateTime.minute, dateTime.second, 0);
          break;
        }
        case C366 || CT.C366:
        {
          dateTime = new core.DateTime.new(dateTime.year, dateTime.month, dart.notNull(dateTime.day) + dart.notNull(interval), dateTime.hour, dateTime.minute, dateTime.second, 0);
          break;
        }
        case C367 || CT.C367:
        {
          dateTime = new core.DateTime.new(dateTime.year, dateTime.month, dateTime.day, dart.notNull(dateTime.hour) + dart.notNull(interval), dateTime.minute, dateTime.second, 0);
          break;
        }
        case C368 || CT.C368:
        {
          dateTime = new core.DateTime.new(dateTime.year, dateTime.month, dateTime.day, dateTime.hour, dart.notNull(dateTime.minute) + dart.notNull(interval), dateTime.second, 0);
          break;
        }
        case C369 || CT.C369:
        {
          dateTime = new core.DateTime.new(dateTime.year, dateTime.month, dateTime.day, dateTime.hour, dateTime.minute, dart.notNull(dateTime.second) + dart.notNull(interval), 0);
          break;
        }
        default:
        {
          break;
        }
      }
      return dateTime;
    }
    [_calculateYear](minimum, maximum, rangePadding, interval) {
      let startYear = minimum.year;
      let endYear = maximum.year;
      if (dart.equals(rangePadding, charts.ChartRangePadding.additional)) {
        this[_min] = new core.DateTime.new(dart.notNull(startYear) - dart.notNull(interval), 1, 1, 0, 0, 0).millisecondsSinceEpoch;
        this[_max] = new core.DateTime.new(dart.notNull(endYear) + dart.notNull(interval), 1, 1, 0, 0, 0).millisecondsSinceEpoch;
      } else {
        this[_min] = new core.DateTime.new(startYear, 0, 0, 0, 0, 0).millisecondsSinceEpoch;
        this[_max] = new core.DateTime.new(endYear, 11, 30, 23, 59, 59).millisecondsSinceEpoch;
      }
    }
    [_calculateMonth](minimum, maximum, rangePadding, interval) {
      let startMonth = minimum.month;
      let endMonth = maximum.month;
      if (dart.equals(rangePadding, charts.ChartRangePadding.round)) {
        this[_min] = new core.DateTime.new(minimum.year, startMonth, 0, 0, 0, 0).millisecondsSinceEpoch;
        this[_max] = new core.DateTime.new(maximum.year, endMonth, new core.DateTime.new(maximum.year, maximum.month, 0).day, 23, 59, 59).millisecondsSinceEpoch;
      } else {
        this[_min] = new core.DateTime.new(minimum.year, dart.notNull(startMonth) + -dart.notNull(interval), 1, 0, 0, 0).millisecondsSinceEpoch;
        this[_max] = new core.DateTime.new(maximum.year, dart.notNull(endMonth) + dart.notNull(interval), endMonth === 2 ? 28 : 30, 0, 0, 0).millisecondsSinceEpoch;
      }
    }
    [_calculateDay](minimum, maximum, rangePadding, interval) {
      let startDay = minimum.day;
      let endDay = maximum.day;
      if (dart.equals(rangePadding, charts.ChartRangePadding.round)) {
        this[_min] = new core.DateTime.new(minimum.year, minimum.month, startDay, 0, 0, 0).millisecondsSinceEpoch;
        this[_max] = new core.DateTime.new(maximum.year, maximum.month, endDay, 23, 59, 59).millisecondsSinceEpoch;
      } else {
        this[_min] = new core.DateTime.new(minimum.year, minimum.month, dart.notNull(startDay) + -dart.notNull(interval), 0, 0, 0).millisecondsSinceEpoch;
        this[_max] = new core.DateTime.new(maximum.year, maximum.month, dart.notNull(endDay) + dart.notNull(interval), 0, 0, 0).millisecondsSinceEpoch;
      }
    }
    [_calculateHour](minimum, maximum, rangePadding, interval) {
      let startHour = (dart.notNull(minimum.hour) / dart.notNull(interval) * dart.notNull(interval))[$toInt]();
      let endHour = dart.notNull(maximum.hour) + (dart.notNull(minimum.hour) - startHour)[$toInt]();
      if (dart.equals(rangePadding, charts.ChartRangePadding.round)) {
        this[_min] = new core.DateTime.new(minimum.year, minimum.month, minimum.day, startHour, 0, 0).millisecondsSinceEpoch;
        this[_max] = new core.DateTime.new(maximum.year, maximum.month, maximum.day, startHour, 59, 59).millisecondsSinceEpoch;
      } else {
        this[_min] = new core.DateTime.new(minimum.year, minimum.month, minimum.day, startHour + -dart.notNull(interval), 0, 0).millisecondsSinceEpoch;
        this[_max] = new core.DateTime.new(maximum.year, maximum.month, maximum.day, endHour + dart.notNull(interval), 0, 0).millisecondsSinceEpoch;
      }
    }
    [_calculateMinute](minimum, maximum, rangePadding, interval) {
      let startMinute = (dart.notNull(minimum.minute) / dart.notNull(interval) * dart.notNull(interval))[$toInt]();
      let endMinute = dart.notNull(maximum.minute) + (dart.notNull(minimum.minute) - startMinute)[$toInt]();
      if (dart.equals(rangePadding, charts.ChartRangePadding.round)) {
        this[_min] = new core.DateTime.new(minimum.year, minimum.month, minimum.day, minimum.hour, startMinute, 0).millisecondsSinceEpoch;
        this[_max] = new core.DateTime.new(maximum.year, maximum.month, maximum.day, maximum.hour, endMinute, 59).millisecondsSinceEpoch;
      } else {
        this[_min] = new core.DateTime.new(minimum.year, minimum.month, minimum.day, minimum.hour, startMinute + -dart.notNull(interval), 0).millisecondsSinceEpoch;
        this[_max] = new core.DateTime.new(maximum.year, maximum.month, maximum.day, maximum.hour, endMinute + dart.notNull(interval), 0).millisecondsSinceEpoch;
      }
    }
    [_calculateSecond](minimum, maximum, rangePadding, interval) {
      let startSecond = (dart.notNull(minimum.second) / dart.notNull(interval) * dart.notNull(interval))[$toInt]();
      let endSecond = dart.notNull(maximum.second) + (dart.notNull(minimum.second) - startSecond)[$toInt]();
      if (dart.equals(rangePadding, charts.ChartRangePadding.round)) {
        this[_min] = new core.DateTime.new(minimum.year, minimum.month, minimum.day, minimum.hour, minimum.minute, startSecond, 0).millisecondsSinceEpoch;
        this[_max] = new core.DateTime.new(maximum.year, maximum.month, maximum.day, maximum.hour, maximum.minute, endSecond, 0).millisecondsSinceEpoch;
      } else {
        this[_min] = new core.DateTime.new(minimum.year, minimum.month, minimum.day, minimum.hour, minimum.minute, startSecond + -dart.notNull(interval), 0).millisecondsSinceEpoch;
        this[_max] = new core.DateTime.new(maximum.year, maximum.month, maximum.day, maximum.hour, maximum.minute, endSecond + dart.notNull(interval), 0).millisecondsSinceEpoch;
      }
    }
    [_calculateDateTimeNiceInterval](axis, size, range) {
      let startDate = new core.DateTime.fromMillisecondsSinceEpoch(core.int._check(dart.dsend(range.minimum, 'toInt', [])));
      let endDate = new core.DateTime.fromMillisecondsSinceEpoch(core.int._check(dart.dsend(range.maximum, 'toInt', [])));
      let interval = null;
      let totalDays = ((dart.notNull(startDate.millisecondsSinceEpoch) - dart.notNull(endDate.millisecondsSinceEpoch)) / 86400000)[$abs]();
      axis[_actualIntervalType] = axis.intervalType;
      switch (axis.intervalType) {
        case C364 || CT.C364:
        {
          interval = this[_calculateNumericNiceInterval](axis, totalDays / 365, size);
          break;
        }
        case C365 || CT.C365:
        {
          interval = this[_calculateNumericNiceInterval](axis, totalDays / 30, size);
          break;
        }
        case C366 || CT.C366:
        {
          interval = this[_calculateNumericNiceInterval](axis, totalDays, size);
          break;
        }
        case C367 || CT.C367:
        {
          interval = this[_calculateNumericNiceInterval](axis, totalDays * 24, size);
          break;
        }
        case C368 || CT.C368:
        {
          interval = this[_calculateNumericNiceInterval](axis, totalDays * 24 * 60, size);
          break;
        }
        case C369 || CT.C369:
        {
          interval = this[_calculateNumericNiceInterval](axis, totalDays * 24 * 60 * 60, size);
          break;
        }
        case C370 || CT.C370:
        {
          interval = this[_calculateNumericNiceInterval](axis, totalDays / 365, size);
          if (dart.notNull(interval) >= 1) {
            axis[_actualIntervalType] = charts.DateTimeIntervalType.years;
            return interval[$floor]();
          }
          interval = this[_calculateNumericNiceInterval](axis, totalDays / 30, size);
          if (dart.notNull(interval) >= 1) {
            axis[_actualIntervalType] = charts.DateTimeIntervalType.months;
            return interval[$floor]();
          }
          interval = this[_calculateNumericNiceInterval](axis, totalDays, size);
          if (dart.notNull(interval) >= 1) {
            axis[_actualIntervalType] = charts.DateTimeIntervalType.days;
            return interval[$floor]();
          }
          interval = this[_calculateNumericNiceInterval](axis, totalDays * 24, size);
          if (dart.notNull(interval) >= 1) {
            axis[_actualIntervalType] = charts.DateTimeIntervalType.hours;
            return interval[$floor]();
          }
          interval = this[_calculateNumericNiceInterval](axis, totalDays * 24 * 60, size);
          if (dart.notNull(interval) >= 1) {
            axis[_actualIntervalType] = charts.DateTimeIntervalType.minutes;
            return interval[$floor]();
          }
          interval = this[_calculateNumericNiceInterval](axis, totalDays * 24 * 60 * 60, size);
          axis[_actualIntervalType] = charts.DateTimeIntervalType.seconds;
          return interval[$floor]();
          break;
        }
      }
      return dart.notNull(interval) < 1 ? interval[$ceil]() : interval[$floor]();
    }
    [_findMinMax](minimumValue, maximumValue) {
      if (this[_min] == null || dart.notNull(this[_min]) > dart.notNull(minimumValue)) {
        this[_min] = minimumValue;
      }
      if (this[_max] == null || dart.notNull(this[_max]) < dart.notNull(maximumValue)) {
        this[_max] = maximumValue;
      }
    }
    calculateInterval(range, availableSize) {
      return this[_calculateDateTimeNiceInterval](this, this[_axisSize], range)[$floor]();
    }
  };
  (charts.DateTimeAxis.new = function(opts) {
    let t0;
    let name = opts && 'name' in opts ? opts.name : null;
    let isVisible = opts && 'isVisible' in opts ? opts.isVisible : null;
    let title = opts && 'title' in opts ? opts.title : null;
    let axisLine = opts && 'axisLine' in opts ? opts.axisLine : null;
    let rangePadding = opts && 'rangePadding' in opts ? opts.rangePadding : null;
    let labelIntersectAction = opts && 'labelIntersectAction' in opts ? opts.labelIntersectAction : null;
    let labelPosition = opts && 'labelPosition' in opts ? opts.labelPosition : null;
    let tickPosition = opts && 'tickPosition' in opts ? opts.tickPosition : null;
    let edgeLabelPlacement = opts && 'edgeLabelPlacement' in opts ? opts.edgeLabelPlacement : null;
    let zoomFactor = opts && 'zoomFactor' in opts ? opts.zoomFactor : null;
    let zoomPosition = opts && 'zoomPosition' in opts ? opts.zoomPosition : null;
    let enableAutoIntervalOnZooming = opts && 'enableAutoIntervalOnZooming' in opts ? opts.enableAutoIntervalOnZooming : null;
    let labelRotation = opts && 'labelRotation' in opts ? opts.labelRotation : null;
    let isInversed = opts && 'isInversed' in opts ? opts.isInversed : null;
    let opposedPosition = opts && 'opposedPosition' in opts ? opts.opposedPosition : null;
    let minorTicksPerInterval = opts && 'minorTicksPerInterval' in opts ? opts.minorTicksPerInterval : null;
    let maximumLabels = opts && 'maximumLabels' in opts ? opts.maximumLabels : null;
    let plotOffset = opts && 'plotOffset' in opts ? opts.plotOffset : null;
    let majorTickLines = opts && 'majorTickLines' in opts ? opts.majorTickLines : null;
    let minorTickLines = opts && 'minorTickLines' in opts ? opts.minorTickLines : null;
    let majorGridLines = opts && 'majorGridLines' in opts ? opts.majorGridLines : null;
    let minorGridLines = opts && 'minorGridLines' in opts ? opts.minorGridLines : null;
    let labelStyle = opts && 'labelStyle' in opts ? opts.labelStyle : null;
    let dateFormat = opts && 'dateFormat' in opts ? opts.dateFormat : null;
    let intervalType = opts && 'intervalType' in opts ? opts.intervalType : null;
    let interactiveTooltip = opts && 'interactiveTooltip' in opts ? opts.interactiveTooltip : null;
    let labelFormat = opts && 'labelFormat' in opts ? opts.labelFormat : null;
    let minimum = opts && 'minimum' in opts ? opts.minimum : null;
    let maximum = opts && 'maximum' in opts ? opts.maximum : null;
    let labelAlignment = opts && 'labelAlignment' in opts ? opts.labelAlignment : null;
    let interval = opts && 'interval' in opts ? opts.interval : null;
    let visibleMinimum = opts && 'visibleMinimum' in opts ? opts.visibleMinimum : null;
    let visibleMaximum = opts && 'visibleMaximum' in opts ? opts.visibleMaximum : null;
    let crossesAt = opts && 'crossesAt' in opts ? opts.crossesAt : null;
    let associatedAxisName = opts && 'associatedAxisName' in opts ? opts.associatedAxisName : null;
    let placeLabelsNearAxisLine = opts && 'placeLabelsNearAxisLine' in opts ? opts.placeLabelsNearAxisLine : null;
    let plotBands = opts && 'plotBands' in opts ? opts.plotBands : null;
    let rangeController = opts && 'rangeController' in opts ? opts.rangeController : null;
    let desiredIntervals = opts && 'desiredIntervals' in opts ? opts.desiredIntervals : null;
    this[_actualIntervalType] = null;
    this[_dateTimeInterval] = null;
    this[_visibleRange$0] = null;
    this[_chart$1] = null;
    this[_axisSize$0] = null;
    this[dateFormat$] = dateFormat;
    this[labelFormat$] = labelFormat;
    this[minimum$0] = minimum;
    this[maximum$0] = maximum;
    this[visibleMinimum$0] = visibleMinimum;
    this[visibleMaximum$0] = visibleMaximum;
    this[intervalType$] = (t0 = intervalType, t0 == null ? charts.DateTimeIntervalType.auto : t0);
    charts.DateTimeAxis.__proto__.new.call(this, {name: name, isVisible: isVisible, isInversed: isInversed, opposedPosition: opposedPosition, rangePadding: rangePadding, plotOffset: plotOffset, labelRotation: labelRotation, labelIntersectAction: labelIntersectAction, minorTicksPerInterval: minorTicksPerInterval, maximumLabels: maximumLabels, labelStyle: labelStyle, title: title, labelAlignment: labelAlignment, axisLine: axisLine, majorTickLines: majorTickLines, minorTickLines: minorTickLines, majorGridLines: majorGridLines, minorGridLines: minorGridLines, edgeLabelPlacement: edgeLabelPlacement, labelPosition: labelPosition, tickPosition: tickPosition, zoomFactor: zoomFactor, zoomPosition: zoomPosition, enableAutoIntervalOnZooming: enableAutoIntervalOnZooming, interactiveTooltip: interactiveTooltip, interval: interval, crossesAt: crossesAt, associatedAxisName: associatedAxisName, placeLabelsNearAxisLine: placeLabelsNearAxisLine, plotBands: plotBands, rangeController: rangeController, desiredIntervals: desiredIntervals});
    ;
  }).prototype = charts.DateTimeAxis.prototype;
  dart.addTypeTests(charts.DateTimeAxis);
  dart.setMethodSignature(charts.DateTimeAxis, () => ({
    __proto__: dart.getMethods(charts.DateTimeAxis.__proto__),
    [_findAxisMinMax]: dart.fnType(dart.void, [charts.CartesianSeries, charts.CartesianChartPoint, core.int, core.int]),
    [_controlListener]: dart.fnType(dart.void, []),
    [_calculateRangeAndInterval]: dart.fnType(dart.void, [charts.SfCartesianChart], [core.String]),
    [_calculateActualRange]: dart.fnType(dart.void, []),
    applyRangePadding: dart.fnType(dart.void, [charts._VisibleRange, core.num]),
    calculateVisibleRange: dart.fnType(dart.void, [ui.Size]),
    generateVisibleLabels: dart.fnType(dart.void, []),
    [_getLabelFormat]: dart.fnType(intl.DateFormat, [charts.DateTimeAxis]),
    [_alignRangeStart]: dart.fnType(core.int, [charts.DateTimeAxis, core.int, core.num]),
    [_increaseDateTimeInterval]: dart.fnType(core.DateTime, [charts.DateTimeAxis, core.int, core.int]),
    [_calculateYear]: dart.fnType(dart.void, [core.DateTime, core.DateTime, charts.ChartRangePadding, core.int]),
    [_calculateMonth]: dart.fnType(dart.void, [core.DateTime, core.DateTime, charts.ChartRangePadding, core.int]),
    [_calculateDay]: dart.fnType(dart.void, [core.DateTime, core.DateTime, charts.ChartRangePadding, core.int]),
    [_calculateHour]: dart.fnType(dart.void, [core.DateTime, core.DateTime, charts.ChartRangePadding, core.int]),
    [_calculateMinute]: dart.fnType(dart.void, [core.DateTime, core.DateTime, charts.ChartRangePadding, core.int]),
    [_calculateSecond]: dart.fnType(dart.void, [core.DateTime, core.DateTime, charts.ChartRangePadding, core.int]),
    [_calculateDateTimeNiceInterval]: dart.fnType(core.int, [charts.DateTimeAxis, ui.Size, charts._VisibleRange]),
    calculateInterval: dart.fnType(core.num, [charts._VisibleRange, ui.Size])
  }));
  dart.setLibraryUri(charts.DateTimeAxis, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.DateTimeAxis, () => ({
    __proto__: dart.getFields(charts.DateTimeAxis.__proto__),
    dateFormat: dart.finalFieldType(intl.DateFormat),
    labelFormat: dart.finalFieldType(core.String),
    intervalType: dart.finalFieldType(charts.DateTimeIntervalType),
    minimum: dart.finalFieldType(core.DateTime),
    maximum: dart.finalFieldType(core.DateTime),
    visibleMinimum: dart.finalFieldType(core.DateTime),
    visibleMaximum: dart.finalFieldType(core.DateTime),
    [_actualIntervalType]: dart.fieldType(charts.DateTimeIntervalType),
    [_dateTimeInterval]: dart.fieldType(core.int),
    [_visibleRange]: dart.fieldType(charts._VisibleRange),
    [_chart]: dart.fieldType(charts.SfCartesianChart),
    [_axisSize]: dart.fieldType(ui.Size)
  }));
  const labelFormat$0 = dart.privateName(charts, "LogarithmicAxis.labelFormat");
  const numberFormat$ = dart.privateName(charts, "LogarithmicAxis.numberFormat");
  const minimum$1 = dart.privateName(charts, "LogarithmicAxis.minimum");
  const maximum$1 = dart.privateName(charts, "LogarithmicAxis.maximum");
  const logBase$ = dart.privateName(charts, "LogarithmicAxis.logBase");
  const visibleMinimum$1 = dart.privateName(charts, "LogarithmicAxis.visibleMinimum");
  const visibleMaximum$1 = dart.privateName(charts, "LogarithmicAxis.visibleMaximum");
  const _axisSize$1 = dart.privateName(charts, "LogarithmicAxis._axisSize");
  charts.LogarithmicAxis = class LogarithmicAxis extends charts.ChartAxis {
    get labelFormat() {
      return this[labelFormat$0];
    }
    set labelFormat(value) {
      super.labelFormat = value;
    }
    get numberFormat() {
      return this[numberFormat$];
    }
    set numberFormat(value) {
      super.numberFormat = value;
    }
    get minimum() {
      return this[minimum$1];
    }
    set minimum(value) {
      super.minimum = value;
    }
    get maximum() {
      return this[maximum$1];
    }
    set maximum(value) {
      super.maximum = value;
    }
    get logBase() {
      return this[logBase$];
    }
    set logBase(value) {
      super.logBase = value;
    }
    get visibleMinimum() {
      return this[visibleMinimum$1];
    }
    set visibleMinimum(value) {
      super.visibleMinimum = value;
    }
    get visibleMaximum() {
      return this[visibleMaximum$1];
    }
    set visibleMaximum(value) {
      super.visibleMaximum = value;
    }
    get [_axisSize]() {
      return this[_axisSize$1];
    }
    set [_axisSize](value) {
      this[_axisSize$1] = value;
    }
    [_findAxisMinMax](series, point, pointIndex, dataLength) {
      let t0, t0$, t0$0, t0$1, t0$2, t0$3, t0$4, t0$5;
      point.xValue = point.x;
      point.yValue = point.y;
      t0 = series;
      t0[_minimumX] == null ? t0[_minimumX] = core.num._check(point.xValue) : null;
      t0$ = series;
      t0$[_maximumX] == null ? t0$[_maximumX] = core.num._check(point.xValue) : null;
      if (!series[_seriesType$][$contains]("range") && !series[_seriesType$][$contains]("hilo") && !series[_seriesType$][$contains]("candle")) {
        t0$0 = series;
        t0$0[_minimumY] == null ? t0$0[_minimumY] = core.num._check(point.yValue) : null;
        t0$1 = series;
        t0$1[_maximumY] == null ? t0$1[_maximumY] = core.num._check(point.yValue) : null;
      }
      this[_lowMin] == null ? this[_lowMin] = core.num._check(point.low) : null;
      this[_lowMax] == null ? this[_lowMax] = core.num._check(point.low) : null;
      this[_highMin] == null ? this[_highMin] = core.num._check(point.high) : null;
      this[_highMax] == null ? this[_highMax] = core.num._check(point.high) : null;
      if (point.xValue != null) {
        series[_minimumX] = math.min(core.num, series[_minimumX], core.num._check(point.xValue));
        series[_maximumX] = math.max(core.num, series[_maximumX], core.num._check(point.xValue));
      }
      if (point.yValue != null && !series[_seriesType$][$contains]("range") && !series[_seriesType$][$contains]("hilo") && !series[_seriesType$][$contains]("candle")) {
        series[_minimumY] = math.min(core.num, series[_minimumY], core.num._check(point.yValue));
        series[_maximumY] = math.max(core.num, series[_maximumY], core.num._check(point.yValue));
      }
      if (point.high != null) {
        this[_highMin] = math.min(core.num, this[_highMin], core.num._check(point.high));
        this[_highMax] = math.max(core.num, this[_highMax], core.num._check(point.high));
      }
      if (point.low != null) {
        this[_lowMin] = math.min(core.num, this[_lowMin], core.num._check(point.low));
        this[_lowMax] = math.max(core.num, this[_lowMax], core.num._check(point.low));
      }
      if (dart.notNull(pointIndex) >= dart.notNull(dataLength) - 1) {
        if (series[_seriesType$][$contains]("range") || series[_seriesType$][$contains]("hilo") || series[_seriesType$][$contains]("candle")) {
          this[_lowMin] == null ? this[_lowMin] = 0 : null;
          this[_lowMax] == null ? this[_lowMax] = 5 : null;
          this[_highMin] == null ? this[_highMin] = 0 : null;
          this[_highMax] == null ? this[_highMax] = 5 : null;
          series[_minimumY] = math.min(core.num, this[_lowMin], this[_highMin]);
          series[_maximumY] = math.max(core.num, this[_lowMax], this[_highMax]);
        }
        t0$2 = series;
        t0$2[_minimumX] == null ? t0$2[_minimumX] = 0 : null;
        t0$3 = series;
        t0$3[_minimumY] == null ? t0$3[_minimumY] = 0 : null;
        t0$4 = series;
        t0$4[_maximumX] == null ? t0$4[_maximumX] = 5 : null;
        t0$5 = series;
        t0$5[_maximumY] == null ? t0$5[_maximumY] = 5 : null;
      }
    }
    [_controlListener]() {
      if (this.rangeController != null) {
        this[_chart][_chartState].rangeChangeBySlider = true;
        this[_rangeMinimum] = this.rangeController.start;
        this[_rangeMaximum] = this.rangeController.end;
        this[_chart][_chartState].redrawByRangeChange();
      }
    }
    [_calculateRangeAndInterval](chartWidget, type = null) {
      this[_chart] = chartWidget;
      if (this.rangeController != null) {
        this.rangeController.addListener(dart.bind(this, _controlListener));
      }
      let containerRect = this[_chart][_chartState].containerRect;
      let rect = new ui.Rect.fromLTWH(containerRect.left, containerRect.top, containerRect.width, containerRect.height);
      this[_axisSize] = new ui.Size.new(rect.width, rect.height);
      this.calculateRange(this);
      this[_calculateActualRange]();
      this.calculateVisibleRange(this[_axisSize]);
      if ((this.visibleMinimum != null || this.visibleMaximum != null) && this.visibleMinimum != this.visibleMaximum && this[_chart][_chartState].zoomedAxisStates != null && dart.test(this[_chart][_chartState].zoomedAxisStates[$isEmpty])) {
        this[_visibleRange].minimum = this.visibleMinimum != null ? (math.log(this.visibleMinimum) / math.log(10))[$round]() : this[_visibleRange].minimum;
        this[_visibleRange].maximum = this.visibleMaximum != null ? (math.log(this.visibleMaximum) / math.log(10))[$round]() : this[_visibleRange].maximum;
        this[_visibleRange].delta = core.num._check(dart.dsend(this[_visibleRange].maximum, '-', [this[_visibleRange].minimum]));
        this[_zoomFactor] = dart.notNull(this[_visibleRange].delta) / dart.notNull(this[_actualRange].delta);
        this[_zoomPosition] = core.double._check(dart.dsend(dart.dsend(this[_visibleRange].minimum, '-', [this[_actualRange].minimum]), '/', [this[_actualRange].delta]));
      }
      if (type == null && type !== "AxisCross") {
        this.generateVisibleLabels();
      }
    }
    [_calculateActualRange]() {
      let t0, t0$, t0$0;
      let logStart = null;
      let logEnd = null;
      this[_min] == null ? this[_min] = 0 : null;
      this[_max] == null ? this[_max] = 5 : null;
      this[_min] = core.num._check(dart.test(this[_chart][_chartState].rangeChangeBySlider) && this.rangeController != null ? this[_rangeMinimum] : (t0 = this.minimum, t0 == null ? this[_min] : t0));
      this[_max] = core.num._check(dart.test(this[_chart][_chartState].rangeChangeBySlider) && this.rangeController != null ? this[_rangeMaximum] : (t0$ = this.maximum, t0$ == null ? this[_max] : t0$));
      this[_min] = dart.notNull(this[_min]) < 0 ? 0 : this[_min];
      logStart = charts._logBase(this[_min], this.logBase);
      logStart = logStart[$isFinite] ? logStart : this[_min];
      logEnd = charts._logBase(this[_max], this.logBase);
      logEnd = logEnd[$isFinite] ? logEnd : this[_max];
      this[_min] = (dart.notNull(logStart) / 1)[$floor]();
      this[_max] = (dart.notNull(logEnd) / 1)[$ceil]();
      if (this[_min] == this[_max]) {
        this[_max] = dart.notNull(this[_max]) + 1;
      }
      this[_actualRange] = new charts._VisibleRange.new(this[_min], this[_max]);
      this[_actualRange].delta = core.num._check(dart.dsend(this[_actualRange].maximum, '-', [this[_actualRange].minimum]));
      this[_actualRange].interval = (t0$0 = this.interval, t0$0 == null ? this.calculateLogNiceInterval(this[_actualRange].delta) : t0$0);
    }
    calculateVisibleRange(availableSize) {
      this[_visibleRange] = new charts._VisibleRange.new(this[_actualRange].minimum, this[_actualRange].maximum);
      this[_visibleRange].delta = this[_actualRange].delta;
      this[_visibleRange].interval = this[_actualRange].interval;
      this[_checkWithZoomState](this, this[_chart][_chartState].zoomedAxisStates);
      if (dart.notNull(this[_zoomFactor]) < 1 || dart.notNull(this[_zoomPosition]) > 0) {
        this[_chart][_chartState].zoomProgress = true;
        this[_calculateZoomRange](this, availableSize);
        this[_visibleRange].delta = core.num._check(dart.dsend(this[_visibleRange].maximum, '-', [this[_visibleRange].minimum]));
        this[_visibleRange].interval = dart.test(this.enableAutoIntervalOnZooming) && dart.test(this[_chart][_chartState].zoomProgress) ? this.calculateLogNiceInterval(this[_visibleRange].delta) : this[_visibleRange].interval;
        this[_visibleRange].interval = dart.equals(dart.dsend(this[_visibleRange].interval, 'floor', []), 0) ? 1 : dart.dsend(this[_visibleRange].interval, 'floor', []);
      }
    }
    calculateLogNiceInterval(delta) {
      let intervalDivisions = [10, 5, 2, 1];
      let actualDesiredIntervalCount = this[_calculateDesiredIntervalCount](this[_axisSize], this);
      let niceInterval = delta;
      let minInterval = math.pow(10, charts._logBase(niceInterval, 10)[$floor]());
      for (let i = 0; i < dart.notNull(core.num._check(dart.dload(intervalDivisions, 'length'))); i = i + 1) {
        let interval = core.num._check(dart.dsend(intervalDivisions, '_get', [i]));
        let currentInterval = minInterval * dart.notNull(interval);
        if (dart.notNull(actualDesiredIntervalCount) < dart.notNull(delta) / currentInterval) {
          break;
        }
        niceInterval = currentInterval;
      }
      return niceInterval;
    }
    applyRangePadding(range, interval) {
    }
    generateVisibleLabels() {
      let tempInterval = core.num._check(this[_visibleRange].minimum);
      let labelText = null;
      this[_visibleLabels] = JSArrayOfAxisLabel().of([]);
      for (; dart.notNull(tempInterval) <= dart.notNull(core.num._check(this[_visibleRange].maximum)); tempInterval = dart.notNull(tempInterval) + dart.notNull(core.num._check(this[_visibleRange].interval))) {
        labelText = math.pow(this.logBase, tempInterval)[$floor]()[$toString]();
        if (this.numberFormat != null) {
          labelText = this.numberFormat.format(math.pow(this.logBase, tempInterval)[$floor]());
        }
        if (this.labelFormat != null && this.labelFormat !== "") {
          labelText = this.labelFormat[$replaceAll](core.RegExp.new("{value}"), labelText);
        }
        this[_triggerLabelRenderEvent](labelText, tempInterval);
      }
      this[_calculateMaximumLabelSize](this, this[_chart]);
    }
    calculateInterval(range, availableSize) {
      return null;
    }
  };
  (charts.LogarithmicAxis.new = function(opts) {
    let t0;
    let name = opts && 'name' in opts ? opts.name : null;
    let isVisible = opts && 'isVisible' in opts ? opts.isVisible : null;
    let title = opts && 'title' in opts ? opts.title : null;
    let axisLine = opts && 'axisLine' in opts ? opts.axisLine : null;
    let labelIntersectAction = opts && 'labelIntersectAction' in opts ? opts.labelIntersectAction : null;
    let labelRotation = opts && 'labelRotation' in opts ? opts.labelRotation : null;
    let labelPosition = opts && 'labelPosition' in opts ? opts.labelPosition : null;
    let tickPosition = opts && 'tickPosition' in opts ? opts.tickPosition : null;
    let isInversed = opts && 'isInversed' in opts ? opts.isInversed : null;
    let opposedPosition = opts && 'opposedPosition' in opts ? opts.opposedPosition : null;
    let minorTicksPerInterval = opts && 'minorTicksPerInterval' in opts ? opts.minorTicksPerInterval : null;
    let maximumLabels = opts && 'maximumLabels' in opts ? opts.maximumLabels : null;
    let majorTickLines = opts && 'majorTickLines' in opts ? opts.majorTickLines : null;
    let minorTickLines = opts && 'minorTickLines' in opts ? opts.minorTickLines : null;
    let majorGridLines = opts && 'majorGridLines' in opts ? opts.majorGridLines : null;
    let minorGridLines = opts && 'minorGridLines' in opts ? opts.minorGridLines : null;
    let edgeLabelPlacement = opts && 'edgeLabelPlacement' in opts ? opts.edgeLabelPlacement : null;
    let labelStyle = opts && 'labelStyle' in opts ? opts.labelStyle : null;
    let plotOffset = opts && 'plotOffset' in opts ? opts.plotOffset : null;
    let zoomFactor = opts && 'zoomFactor' in opts ? opts.zoomFactor : null;
    let zoomPosition = opts && 'zoomPosition' in opts ? opts.zoomPosition : null;
    let enableAutoIntervalOnZooming = opts && 'enableAutoIntervalOnZooming' in opts ? opts.enableAutoIntervalOnZooming : null;
    let interactiveTooltip = opts && 'interactiveTooltip' in opts ? opts.interactiveTooltip : null;
    let minimum = opts && 'minimum' in opts ? opts.minimum : null;
    let maximum = opts && 'maximum' in opts ? opts.maximum : null;
    let interval = opts && 'interval' in opts ? opts.interval : null;
    let logBase = opts && 'logBase' in opts ? opts.logBase : null;
    let labelFormat = opts && 'labelFormat' in opts ? opts.labelFormat : null;
    let numberFormat = opts && 'numberFormat' in opts ? opts.numberFormat : null;
    let visibleMinimum = opts && 'visibleMinimum' in opts ? opts.visibleMinimum : null;
    let visibleMaximum = opts && 'visibleMaximum' in opts ? opts.visibleMaximum : null;
    let labelAlignment = opts && 'labelAlignment' in opts ? opts.labelAlignment : null;
    let crossesAt = opts && 'crossesAt' in opts ? opts.crossesAt : null;
    let associatedAxisName = opts && 'associatedAxisName' in opts ? opts.associatedAxisName : null;
    let placeLabelsNearAxisLine = opts && 'placeLabelsNearAxisLine' in opts ? opts.placeLabelsNearAxisLine : null;
    let plotBands = opts && 'plotBands' in opts ? opts.plotBands : null;
    let desiredIntervals = opts && 'desiredIntervals' in opts ? opts.desiredIntervals : null;
    let rangeController = opts && 'rangeController' in opts ? opts.rangeController : null;
    this[_axisSize$1] = null;
    this[minimum$1] = minimum;
    this[maximum$1] = maximum;
    this[labelFormat$0] = labelFormat;
    this[numberFormat$] = numberFormat;
    this[visibleMinimum$1] = visibleMinimum;
    this[visibleMaximum$1] = visibleMaximum;
    this[logBase$] = (t0 = logBase, t0 == null ? 10.0 : t0);
    charts.LogarithmicAxis.__proto__.new.call(this, {name: name, isVisible: isVisible, isInversed: isInversed, opposedPosition: opposedPosition, labelRotation: labelRotation, labelIntersectAction: labelIntersectAction, labelPosition: labelPosition, tickPosition: tickPosition, minorTicksPerInterval: minorTicksPerInterval, maximumLabels: maximumLabels, labelStyle: labelStyle, title: title, axisLine: axisLine, edgeLabelPlacement: edgeLabelPlacement, labelAlignment: labelAlignment, majorTickLines: majorTickLines, minorTickLines: minorTickLines, majorGridLines: majorGridLines, minorGridLines: minorGridLines, plotOffset: plotOffset, zoomFactor: zoomFactor, zoomPosition: zoomPosition, enableAutoIntervalOnZooming: enableAutoIntervalOnZooming, interactiveTooltip: interactiveTooltip, interval: interval, crossesAt: crossesAt, associatedAxisName: associatedAxisName, placeLabelsNearAxisLine: placeLabelsNearAxisLine, plotBands: plotBands, desiredIntervals: desiredIntervals, rangeController: rangeController});
    ;
  }).prototype = charts.LogarithmicAxis.prototype;
  dart.addTypeTests(charts.LogarithmicAxis);
  dart.setMethodSignature(charts.LogarithmicAxis, () => ({
    __proto__: dart.getMethods(charts.LogarithmicAxis.__proto__),
    [_findAxisMinMax]: dart.fnType(dart.void, [charts.CartesianSeries, charts.CartesianChartPoint, core.int, core.int]),
    [_controlListener]: dart.fnType(dart.void, []),
    [_calculateRangeAndInterval]: dart.fnType(dart.void, [charts.SfCartesianChart], [core.String]),
    [_calculateActualRange]: dart.fnType(dart.void, []),
    calculateVisibleRange: dart.fnType(dart.void, [ui.Size]),
    calculateLogNiceInterval: dart.fnType(core.num, [core.num]),
    applyRangePadding: dart.fnType(dart.void, [charts._VisibleRange, core.num]),
    generateVisibleLabels: dart.fnType(dart.void, []),
    calculateInterval: dart.fnType(core.num, [charts._VisibleRange, ui.Size])
  }));
  dart.setLibraryUri(charts.LogarithmicAxis, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.LogarithmicAxis, () => ({
    __proto__: dart.getFields(charts.LogarithmicAxis.__proto__),
    labelFormat: dart.finalFieldType(core.String),
    numberFormat: dart.finalFieldType(intl.NumberFormat),
    minimum: dart.finalFieldType(core.double),
    maximum: dart.finalFieldType(core.double),
    logBase: dart.finalFieldType(core.double),
    visibleMinimum: dart.finalFieldType(core.double),
    visibleMaximum: dart.finalFieldType(core.double),
    [_axisSize]: dart.fieldType(ui.Size)
  }));
  const _chart$2 = dart.privateName(charts, "NumericAxis._chart");
  const labelFormat$1 = dart.privateName(charts, "NumericAxis.labelFormat");
  const numberFormat$0 = dart.privateName(charts, "NumericAxis.numberFormat");
  const minimum$2 = dart.privateName(charts, "NumericAxis.minimum");
  const maximum$2 = dart.privateName(charts, "NumericAxis.maximum");
  const visibleMinimum$2 = dart.privateName(charts, "NumericAxis.visibleMinimum");
  const visibleMaximum$2 = dart.privateName(charts, "NumericAxis.visibleMaximum");
  const decimalPlaces$ = dart.privateName(charts, "NumericAxis.decimalPlaces");
  const _axisSize$2 = dart.privateName(charts, "NumericAxis._axisSize");
  charts.NumericAxis = class NumericAxis extends charts.ChartAxis {
    get [_chart]() {
      return this[_chart$2];
    }
    set [_chart](value) {
      this[_chart$2] = value;
    }
    get labelFormat() {
      return this[labelFormat$1];
    }
    set labelFormat(value) {
      super.labelFormat = value;
    }
    get numberFormat() {
      return this[numberFormat$0];
    }
    set numberFormat(value) {
      super.numberFormat = value;
    }
    get minimum() {
      return this[minimum$2];
    }
    set minimum(value) {
      super.minimum = value;
    }
    get maximum() {
      return this[maximum$2];
    }
    set maximum(value) {
      super.maximum = value;
    }
    get visibleMinimum() {
      return this[visibleMinimum$2];
    }
    set visibleMinimum(value) {
      super.visibleMinimum = value;
    }
    get visibleMaximum() {
      return this[visibleMaximum$2];
    }
    set visibleMaximum(value) {
      super.visibleMaximum = value;
    }
    get decimalPlaces() {
      return this[decimalPlaces$];
    }
    set decimalPlaces(value) {
      super.decimalPlaces = value;
    }
    get [_axisSize]() {
      return this[_axisSize$2];
    }
    set [_axisSize](value) {
      this[_axisSize$2] = value;
    }
    [_findAxisMinMax](series, point, pointIndex, dataLength) {
      let t0, t0$, t0$0, t0$1, t0$2, t0$3, t0$4, t0$5;
      point.xValue = point.x;
      point.yValue = point.y;
      t0 = series;
      t0[_minimumX] == null ? t0[_minimumX] = core.num._check(point.xValue) : null;
      t0$ = series;
      t0$[_maximumX] == null ? t0$[_maximumX] = core.num._check(point.xValue) : null;
      if (!series[_seriesType$][$contains]("range") && !series[_seriesType$][$contains]("hilo") && !series[_seriesType$][$contains]("candle")) {
        t0$0 = series;
        t0$0[_minimumY] == null ? t0$0[_minimumY] = core.num._check(point.yValue) : null;
        t0$1 = series;
        t0$1[_maximumY] == null ? t0$1[_maximumY] = core.num._check(point.yValue) : null;
      }
      this[_lowMin] == null ? this[_lowMin] = core.num._check(point.low) : null;
      this[_lowMax] == null ? this[_lowMax] = core.num._check(point.low) : null;
      this[_highMin] == null ? this[_highMin] = core.num._check(point.high) : null;
      this[_highMax] == null ? this[_highMax] = core.num._check(point.high) : null;
      if (point.xValue != null) {
        series[_minimumX] = math.min(core.num, series[_minimumX], core.num._check(point.xValue));
        series[_maximumX] = math.max(core.num, series[_maximumX], core.num._check(point.xValue));
      }
      if (point.yValue != null && !series[_seriesType$][$contains]("range") && !series[_seriesType$][$contains]("hilo") && !series[_seriesType$][$contains]("candle")) {
        series[_minimumY] = math.min(core.num, series[_minimumY], core.num._check(point.yValue));
        series[_maximumY] = math.max(core.num, series[_maximumY], core.num._check(point.yValue));
      }
      if (point.high != null) {
        this[_highMin] = math.min(core.num, this[_highMin], core.num._check(point.high));
        this[_highMax] = math.max(core.num, this[_highMax], core.num._check(point.high));
      }
      if (point.low != null) {
        this[_lowMin] = math.min(core.num, this[_lowMin], core.num._check(point.low));
        this[_lowMax] = math.max(core.num, this[_lowMax], core.num._check(point.low));
      }
      if (dart.notNull(pointIndex) >= dart.notNull(dataLength) - 1) {
        if (series[_seriesType$][$contains]("range") || series[_seriesType$][$contains]("hilo") || series[_seriesType$][$contains]("candle")) {
          this[_lowMin] == null ? this[_lowMin] = 0 : null;
          this[_lowMax] == null ? this[_lowMax] = 5 : null;
          this[_highMin] == null ? this[_highMin] = 0 : null;
          this[_highMax] == null ? this[_highMax] = 5 : null;
          series[_minimumY] = math.min(core.num, this[_lowMin], this[_highMin]);
          series[_maximumY] = math.max(core.num, this[_lowMax], this[_highMax]);
        }
        t0$2 = series;
        t0$2[_minimumX] == null ? t0$2[_minimumX] = 0 : null;
        t0$3 = series;
        t0$3[_minimumY] == null ? t0$3[_minimumY] = 0 : null;
        t0$4 = series;
        t0$4[_maximumX] == null ? t0$4[_maximumX] = 5 : null;
        t0$5 = series;
        t0$5[_maximumY] == null ? t0$5[_maximumY] = 5 : null;
      }
    }
    [_controlListener]() {
      if (this.rangeController != null) {
        this[_chart][_chartState].rangeChangeBySlider = true;
        this[_rangeMinimum] = this.rangeController.start;
        this[_rangeMaximum] = this.rangeController.end;
        this[_chart][_chartState].redrawByRangeChange();
      }
    }
    [_calculateRangeAndInterval](chartWidget, type = null) {
      this[_chart] = chartWidget;
      if (this.rangeController != null) {
        this.rangeController.addListener(dart.bind(this, _controlListener));
      }
      let containerRect = this[_chart][_chartState].containerRect;
      let rect = new ui.Rect.fromLTWH(containerRect.left, containerRect.top, containerRect.width, containerRect.height);
      this[_axisSize] = new ui.Size.new(rect.width, rect.height);
      this.calculateRange(this);
      this[_calculateActualRange]();
      if (this[_actualRange] != null) {
        this.applyRangePadding(this[_actualRange], core.num._check(this[_actualRange].interval));
        if (type == null && type !== "AxisCross") {
          this.generateVisibleLabels();
        }
      }
    }
    [_calculateActualRange]() {
      let t0, t0$, t0$0;
      this[_min] == null ? this[_min] = 0 : null;
      this[_max] == null ? this[_max] = 5 : null;
      this[_actualRange] = new charts._VisibleRange.new(dart.test(this[_chart][_chartState].rangeChangeBySlider) && this.rangeController != null ? this[_rangeMinimum] : (t0 = this.minimum, t0 == null ? this[_min] : t0), dart.test(this[_chart][_chartState].rangeChangeBySlider) && this.rangeController != null ? this[_rangeMaximum] : (t0$ = this.maximum, t0$ == null ? this[_max] : t0$));
      if (dart.equals(this[_actualRange].minimum, this[_actualRange].maximum)) {
        t0$0 = this[_actualRange];
        t0$0.maximum = dart.dsend(t0$0.maximum, '+', [1]);
      } else if (dart.dtest(dart.dsend(this[_actualRange].minimum, '>', [this[_actualRange].maximum]))) {
        this[_actualRange].minimum = dart.dsend(this[_actualRange].minimum, '+', [this[_actualRange].maximum]);
        this[_actualRange].maximum = dart.dsend(this[_actualRange].minimum, '-', [this[_actualRange].maximum]);
        this[_actualRange].minimum = dart.dsend(this[_actualRange].minimum, '-', [this[_actualRange].maximum]);
      }
      this[_actualRange].delta = core.num._check(dart.dsend(this[_actualRange].maximum, '-', [this[_actualRange].minimum]));
      this[_actualRange].interval = this.interval == null ? this[_calculateNumericNiceInterval](this, this[_actualRange].delta, this[_axisSize]) : this.interval;
    }
    applyRangePadding(range, interval) {
      let rangeChangedArgs = null;
      if (!(this.minimum != null && this.maximum != null)) {
        this[_applyRangePadding](this, this[_chart], range, interval);
      }
      this.calculateVisibleRange(this[_axisSize]);
      if ((this.visibleMinimum != null || this.visibleMaximum != null) && this.visibleMinimum != this.visibleMaximum && this[_chart][_chartState].zoomedAxisStates != null && dart.test(this[_chart][_chartState].zoomedAxisStates[$isEmpty])) {
        this[_visibleRange].minimum = this.visibleMinimum != null ? this.visibleMinimum : this[_visibleRange].minimum;
        this[_visibleRange].maximum = this.visibleMaximum != null ? this.visibleMaximum : this[_visibleRange].maximum;
        this[_visibleRange].delta = core.num._check(dart.dsend(this[_visibleRange].maximum, '-', [this[_visibleRange].minimum]));
        this[_zoomFactor] = dart.notNull(this[_visibleRange].delta) / dart.notNull(range.delta);
        this[_zoomPosition] = core.double._check(dart.dsend(dart.dsend(this[_visibleRange].minimum, '-', [this[_actualRange].minimum]), '/', [range.delta]));
      }
      if (this[_chart].onActualRangeChanged != null) {
        rangeChangedArgs = new charts.ActualRangeChangedArgs.new();
        rangeChangedArgs.axis = this;
        rangeChangedArgs.axisName = this[_name$];
        rangeChangedArgs.orientation = this[_orientation];
        rangeChangedArgs.actualMin = range.minimum;
        rangeChangedArgs.actualMax = range.maximum;
        rangeChangedArgs.actualInterval = range.interval;
        rangeChangedArgs.visibleMin = this[_visibleRange].minimum;
        rangeChangedArgs.visibleMax = this[_visibleRange].maximum;
        rangeChangedArgs.visibleInterval = this[_visibleRange].interval;
        this[_chart].onActualRangeChanged(rangeChangedArgs);
        this[_visibleRange].minimum = rangeChangedArgs.visibleMin;
        this[_visibleRange].maximum = rangeChangedArgs.visibleMax;
        this[_visibleRange].interval = rangeChangedArgs.visibleInterval;
      }
    }
    generateVisibleLabels() {
      let tempInterval = core.num._check(this[_visibleRange].minimum);
      let text = null;
      let minimum = dart.toString(tempInterval);
      let maximumVisibleRange = core.num._check(this[_visibleRange].maximum);
      let interval = core.num._check(this[_visibleRange].interval);
      interval = dart.notNull(dart.toString(interval)[$split](".")[$length]) >= 2 ? dart.toString(interval)[$split](".")[$_get](1).length === 1 && dart.toString(interval)[$split](".")[$_get](1) === "0" ? interval[$floor]() : interval : interval;
      this[_visibleLabels] = JSArrayOfAxisLabel().of([]);
      for (; dart.notNull(tempInterval) <= dart.notNull(maximumVisibleRange); tempInterval = dart.notNull(tempInterval) + dart.notNull(interval)) {
        let minimumVisibleRange = tempInterval;
        if (dart.notNull(minimumVisibleRange) <= dart.notNull(maximumVisibleRange) && dart.notNull(minimumVisibleRange) >= dart.notNull(core.num._check(this[_visibleRange].minimum))) {
          let fractionDigits = dart.notNull(minimum[$split](".")[$length]) >= 2 ? dart.toString(minimum[$split](".")[$_get](1)).length : dart.notNull(dart.toString(minimumVisibleRange)[$split](".")[$length]) >= 2 ? dart.toString(dart.toString(minimumVisibleRange)[$split](".")[$_get](1)).length : 0;
          minimumVisibleRange = dart.toString(minimumVisibleRange)[$contains]("e") ? minimumVisibleRange : core.num.tryParse(minimumVisibleRange[$toStringAsFixed](fractionDigits));
          if (dart.notNull(dart.toString(minimumVisibleRange)[$split](".")[$length]) > 1) {
            let str = dart.toString(minimumVisibleRange);
            let list = str[$split](".");
            minimumVisibleRange = core.double.parse(minimumVisibleRange[$toStringAsFixed](this.decimalPlaces));
            if (list !== null && dart.notNull(list[$length]) > 1 && (dart.equals(list[$_get](1), "0") || dart.equals(list[$_get](1), "00") || dart.equals(list[$_get](1), "000") || dart.equals(list[$_get](1), "0000") || dart.equals(list[$_get](1), "00000"))) minimumVisibleRange = minimumVisibleRange[$round]();
          }
          text = dart.toString(minimumVisibleRange);
          if (this.numberFormat != null) {
            text = this.numberFormat.format(minimumVisibleRange);
          }
          if (this.labelFormat != null && this.labelFormat !== "") {
            text = this.labelFormat[$replaceAll](core.RegExp.new("{value}"), text);
          }
          text = dart.equals(this[_chart].primaryYAxis.isStack100, true) && this[_name$] == this[_chart].primaryYAxis[_name$] ? dart.notNull(text) + "%" : text;
          this[_triggerLabelRenderEvent](text, tempInterval);
        }
      }
      this[_calculateMaximumLabelSize](this, this[_chart]);
    }
    calculateVisibleRange(availableSize) {
      this[_visibleRange] = new charts._VisibleRange.new(this[_actualRange].minimum, this[_actualRange].maximum);
      this[_visibleRange].delta = this[_actualRange].delta;
      this[_visibleRange].interval = this[_actualRange].interval;
      this[_checkWithZoomState](this, this[_chart][_chartState].zoomedAxisStates);
      if (dart.notNull(this[_zoomFactor]) < 1 || dart.notNull(this[_zoomPosition]) > 0) {
        this[_chart][_chartState].zoomProgress = true;
        this[_calculateZoomRange](this, availableSize);
        this[_visibleRange].interval = dart.test(this.enableAutoIntervalOnZooming) && dart.test(this[_chart][_chartState].zoomProgress) ? this.calculateInterval(this[_visibleRange], this[_axisSize]) : this[_visibleRange].interval;
      }
    }
    calculateInterval(range, availableSize) {
      return this[_calculateNumericNiceInterval](this, this[_visibleRange].delta, this[_axisSize]);
    }
  };
  (charts.NumericAxis.new = function(opts) {
    let t0;
    let name = opts && 'name' in opts ? opts.name : null;
    let isVisible = opts && 'isVisible' in opts ? opts.isVisible : null;
    let title = opts && 'title' in opts ? opts.title : null;
    let axisLine = opts && 'axisLine' in opts ? opts.axisLine : null;
    let rangePadding = opts && 'rangePadding' in opts ? opts.rangePadding : null;
    let labelIntersectAction = opts && 'labelIntersectAction' in opts ? opts.labelIntersectAction : null;
    let labelRotation = opts && 'labelRotation' in opts ? opts.labelRotation : null;
    let labelFormat = opts && 'labelFormat' in opts ? opts.labelFormat : null;
    let numberFormat = opts && 'numberFormat' in opts ? opts.numberFormat : null;
    let labelAlignment = opts && 'labelAlignment' in opts ? opts.labelAlignment : null;
    let labelPosition = opts && 'labelPosition' in opts ? opts.labelPosition : null;
    let tickPosition = opts && 'tickPosition' in opts ? opts.tickPosition : null;
    let isInversed = opts && 'isInversed' in opts ? opts.isInversed : null;
    let opposedPosition = opts && 'opposedPosition' in opts ? opts.opposedPosition : null;
    let minorTicksPerInterval = opts && 'minorTicksPerInterval' in opts ? opts.minorTicksPerInterval : null;
    let maximumLabels = opts && 'maximumLabels' in opts ? opts.maximumLabels : null;
    let majorTickLines = opts && 'majorTickLines' in opts ? opts.majorTickLines : null;
    let minorTickLines = opts && 'minorTickLines' in opts ? opts.minorTickLines : null;
    let majorGridLines = opts && 'majorGridLines' in opts ? opts.majorGridLines : null;
    let minorGridLines = opts && 'minorGridLines' in opts ? opts.minorGridLines : null;
    let edgeLabelPlacement = opts && 'edgeLabelPlacement' in opts ? opts.edgeLabelPlacement : null;
    let labelStyle = opts && 'labelStyle' in opts ? opts.labelStyle : null;
    let plotOffset = opts && 'plotOffset' in opts ? opts.plotOffset : null;
    let zoomFactor = opts && 'zoomFactor' in opts ? opts.zoomFactor : null;
    let zoomPosition = opts && 'zoomPosition' in opts ? opts.zoomPosition : null;
    let interactiveTooltip = opts && 'interactiveTooltip' in opts ? opts.interactiveTooltip : null;
    let minimum = opts && 'minimum' in opts ? opts.minimum : null;
    let maximum = opts && 'maximum' in opts ? opts.maximum : null;
    let interval = opts && 'interval' in opts ? opts.interval : null;
    let visibleMinimum = opts && 'visibleMinimum' in opts ? opts.visibleMinimum : null;
    let visibleMaximum = opts && 'visibleMaximum' in opts ? opts.visibleMaximum : null;
    let crossesAt = opts && 'crossesAt' in opts ? opts.crossesAt : null;
    let associatedAxisName = opts && 'associatedAxisName' in opts ? opts.associatedAxisName : null;
    let placeLabelsNearAxisLine = opts && 'placeLabelsNearAxisLine' in opts ? opts.placeLabelsNearAxisLine : null;
    let plotBands = opts && 'plotBands' in opts ? opts.plotBands : null;
    let decimalPlaces = opts && 'decimalPlaces' in opts ? opts.decimalPlaces : null;
    let desiredIntervals = opts && 'desiredIntervals' in opts ? opts.desiredIntervals : null;
    let rangeController = opts && 'rangeController' in opts ? opts.rangeController : null;
    this[_chart$2] = null;
    this[_axisPadding] = 5;
    this[_innerPadding] = 5;
    this[_axisSize$2] = null;
    this[labelFormat$1] = labelFormat;
    this[numberFormat$0] = numberFormat;
    this[minimum$2] = minimum;
    this[maximum$2] = maximum;
    this[visibleMinimum$2] = visibleMinimum;
    this[visibleMaximum$2] = visibleMaximum;
    this[decimalPlaces$] = (t0 = decimalPlaces, t0 == null ? 3 : t0);
    charts.NumericAxis.__proto__.new.call(this, {name: name, isVisible: isVisible, isInversed: isInversed, opposedPosition: opposedPosition, rangePadding: rangePadding, labelRotation: labelRotation, labelIntersectAction: labelIntersectAction, labelPosition: labelPosition, tickPosition: tickPosition, minorTicksPerInterval: minorTicksPerInterval, maximumLabels: maximumLabels, labelStyle: labelStyle, title: title, labelAlignment: labelAlignment, axisLine: axisLine, edgeLabelPlacement: edgeLabelPlacement, majorTickLines: majorTickLines, minorTickLines: minorTickLines, majorGridLines: majorGridLines, minorGridLines: minorGridLines, plotOffset: plotOffset, zoomFactor: zoomFactor, zoomPosition: zoomPosition, interactiveTooltip: interactiveTooltip, interval: interval, crossesAt: crossesAt, associatedAxisName: associatedAxisName, placeLabelsNearAxisLine: placeLabelsNearAxisLine, plotBands: plotBands, desiredIntervals: desiredIntervals, rangeController: rangeController});
    ;
  }).prototype = charts.NumericAxis.prototype;
  dart.addTypeTests(charts.NumericAxis);
  dart.setMethodSignature(charts.NumericAxis, () => ({
    __proto__: dart.getMethods(charts.NumericAxis.__proto__),
    [_findAxisMinMax]: dart.fnType(dart.void, [charts.CartesianSeries, charts.CartesianChartPoint, core.int, core.int]),
    [_controlListener]: dart.fnType(dart.void, []),
    [_calculateRangeAndInterval]: dart.fnType(dart.void, [charts.SfCartesianChart], [core.String]),
    [_calculateActualRange]: dart.fnType(dart.void, []),
    applyRangePadding: dart.fnType(dart.void, [charts._VisibleRange, core.num]),
    generateVisibleLabels: dart.fnType(dart.void, []),
    calculateVisibleRange: dart.fnType(dart.void, [ui.Size]),
    calculateInterval: dart.fnType(core.num, [charts._VisibleRange, ui.Size])
  }));
  dart.setLibraryUri(charts.NumericAxis, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.NumericAxis, () => ({
    __proto__: dart.getFields(charts.NumericAxis.__proto__),
    [_chart]: dart.fieldType(charts.SfCartesianChart),
    labelFormat: dart.finalFieldType(core.String),
    numberFormat: dart.finalFieldType(intl.NumberFormat),
    minimum: dart.finalFieldType(core.double),
    maximum: dart.finalFieldType(core.double),
    visibleMinimum: dart.finalFieldType(core.double),
    visibleMaximum: dart.finalFieldType(core.double),
    decimalPlaces: dart.finalFieldType(core.int),
    [_axisPadding]: dart.finalFieldType(core.int),
    [_innerPadding]: dart.finalFieldType(core.int),
    [_axisSize]: dart.fieldType(ui.Size)
  }));
  const isVisible$2 = dart.privateName(charts, "PlotBand.isVisible");
  const start$ = dart.privateName(charts, "PlotBand.start");
  const end$ = dart.privateName(charts, "PlotBand.end");
  const text$3 = dart.privateName(charts, "PlotBand.text");
  const textStyle$0 = dart.privateName(charts, "PlotBand.textStyle");
  const color$6 = dart.privateName(charts, "PlotBand.color");
  const borderColor$6 = dart.privateName(charts, "PlotBand.borderColor");
  const borderWidth$6 = dart.privateName(charts, "PlotBand.borderWidth");
  const opacity$3 = dart.privateName(charts, "PlotBand.opacity");
  const isRepeatable$ = dart.privateName(charts, "PlotBand.isRepeatable");
  const repeatEvery$ = dart.privateName(charts, "PlotBand.repeatEvery");
  const repeatUntil$ = dart.privateName(charts, "PlotBand.repeatUntil");
  const textAngle$ = dart.privateName(charts, "PlotBand.textAngle");
  const shouldRenderAboveSeries$ = dart.privateName(charts, "PlotBand.shouldRenderAboveSeries");
  const sizeType$ = dart.privateName(charts, "PlotBand.sizeType");
  const dashArray$2 = dart.privateName(charts, "PlotBand.dashArray");
  const size$1 = dart.privateName(charts, "PlotBand.size");
  const associatedAxisStart$ = dart.privateName(charts, "PlotBand.associatedAxisStart");
  const associatedAxisEnd$ = dart.privateName(charts, "PlotBand.associatedAxisEnd");
  const verticalTextAlignment$ = dart.privateName(charts, "PlotBand.verticalTextAlignment");
  const horizontalTextAlignment$ = dart.privateName(charts, "PlotBand.horizontalTextAlignment");
  const gradient$0 = dart.privateName(charts, "PlotBand.gradient");
  charts.PlotBand = class PlotBand extends core.Object {
    get isVisible() {
      return this[isVisible$2];
    }
    set isVisible(value) {
      super.isVisible = value;
    }
    get start() {
      return this[start$];
    }
    set start(value) {
      super.start = value;
    }
    get end() {
      return this[end$];
    }
    set end(value) {
      super.end = value;
    }
    get text() {
      return this[text$3];
    }
    set text(value) {
      super.text = value;
    }
    get textStyle() {
      return this[textStyle$0];
    }
    set textStyle(value) {
      super.textStyle = value;
    }
    get color() {
      return this[color$6];
    }
    set color(value) {
      super.color = value;
    }
    get borderColor() {
      return this[borderColor$6];
    }
    set borderColor(value) {
      super.borderColor = value;
    }
    get borderWidth() {
      return this[borderWidth$6];
    }
    set borderWidth(value) {
      super.borderWidth = value;
    }
    get opacity() {
      return this[opacity$3];
    }
    set opacity(value) {
      super.opacity = value;
    }
    get isRepeatable() {
      return this[isRepeatable$];
    }
    set isRepeatable(value) {
      super.isRepeatable = value;
    }
    get repeatEvery() {
      return this[repeatEvery$];
    }
    set repeatEvery(value) {
      super.repeatEvery = value;
    }
    get repeatUntil() {
      return this[repeatUntil$];
    }
    set repeatUntil(value) {
      super.repeatUntil = value;
    }
    get textAngle() {
      return this[textAngle$];
    }
    set textAngle(value) {
      super.textAngle = value;
    }
    get shouldRenderAboveSeries() {
      return this[shouldRenderAboveSeries$];
    }
    set shouldRenderAboveSeries(value) {
      super.shouldRenderAboveSeries = value;
    }
    get sizeType() {
      return this[sizeType$];
    }
    set sizeType(value) {
      super.sizeType = value;
    }
    get dashArray() {
      return this[dashArray$2];
    }
    set dashArray(value) {
      super.dashArray = value;
    }
    get size() {
      return this[size$1];
    }
    set size(value) {
      super.size = value;
    }
    get associatedAxisStart() {
      return this[associatedAxisStart$];
    }
    set associatedAxisStart(value) {
      super.associatedAxisStart = value;
    }
    get associatedAxisEnd() {
      return this[associatedAxisEnd$];
    }
    set associatedAxisEnd(value) {
      super.associatedAxisEnd = value;
    }
    get verticalTextAlignment() {
      return this[verticalTextAlignment$];
    }
    set verticalTextAlignment(value) {
      super.verticalTextAlignment = value;
    }
    get horizontalTextAlignment() {
      return this[horizontalTextAlignment$];
    }
    set horizontalTextAlignment(value) {
      super.horizontalTextAlignment = value;
    }
    get gradient() {
      return this[gradient$0];
    }
    set gradient(value) {
      super.gradient = value;
    }
  };
  (charts.PlotBand.new = function(opts) {
    let t0, t0$, t0$0, t0$1, t0$2, t0$3, t0$4, t0$5, t0$6, t0$7, t0$8, t0$9, t0$10;
    let isVisible = opts && 'isVisible' in opts ? opts.isVisible : null;
    let start = opts && 'start' in opts ? opts.start : null;
    let end = opts && 'end' in opts ? opts.end : null;
    let color = opts && 'color' in opts ? opts.color : null;
    let opacity = opts && 'opacity' in opts ? opts.opacity : null;
    let borderColor = opts && 'borderColor' in opts ? opts.borderColor : null;
    let borderWidth = opts && 'borderWidth' in opts ? opts.borderWidth : null;
    let text = opts && 'text' in opts ? opts.text : null;
    let textStyle = opts && 'textStyle' in opts ? opts.textStyle : null;
    let isRepeatable = opts && 'isRepeatable' in opts ? opts.isRepeatable : null;
    let repeatEvery = opts && 'repeatEvery' in opts ? opts.repeatEvery : null;
    let repeatUntil = opts && 'repeatUntil' in opts ? opts.repeatUntil : null;
    let textAngle = opts && 'textAngle' in opts ? opts.textAngle : null;
    let shouldRenderAboveSeries = opts && 'shouldRenderAboveSeries' in opts ? opts.shouldRenderAboveSeries : null;
    let sizeType = opts && 'sizeType' in opts ? opts.sizeType : null;
    let dashArray = opts && 'dashArray' in opts ? opts.dashArray : null;
    let size = opts && 'size' in opts ? opts.size : null;
    let associatedAxisStart = opts && 'associatedAxisStart' in opts ? opts.associatedAxisStart : null;
    let associatedAxisEnd = opts && 'associatedAxisEnd' in opts ? opts.associatedAxisEnd : null;
    let verticalTextAlignment = opts && 'verticalTextAlignment' in opts ? opts.verticalTextAlignment : null;
    let horizontalTextAlignment = opts && 'horizontalTextAlignment' in opts ? opts.horizontalTextAlignment : null;
    let gradient = opts && 'gradient' in opts ? opts.gradient : null;
    this[start$] = start;
    this[end$] = end;
    this[text$3] = text;
    this[repeatUntil$] = repeatUntil;
    this[textAngle$] = textAngle;
    this[size$1] = size;
    this[associatedAxisStart$] = associatedAxisStart;
    this[associatedAxisEnd$] = associatedAxisEnd;
    this[gradient$0] = gradient;
    this[isVisible$2] = (t0 = isVisible, t0 == null ? true : t0);
    this[opacity$3] = (t0$ = opacity, t0$ == null ? 1.0 : t0$);
    this[color$6] = (t0$0 = color, t0$0 == null ? colors$.Colors.grey : t0$0);
    this[borderColor$6] = (t0$1 = borderColor, t0$1 == null ? colors$.Colors.transparent : t0$1);
    this[borderWidth$6] = (t0$2 = borderWidth, t0$2 == null ? 0.0 : t0$2);
    this[textStyle$0] = (t0$3 = textStyle, t0$3 == null ? new charts.ChartTextStyle.new() : t0$3);
    this[isRepeatable$] = (t0$4 = isRepeatable, t0$4 == null ? false : t0$4);
    this[repeatEvery$] = (t0$5 = repeatEvery, t0$5 == null ? 1 : t0$5);
    this[shouldRenderAboveSeries$] = (t0$6 = shouldRenderAboveSeries, t0$6 == null ? false : t0$6);
    this[dashArray$2] = (t0$7 = dashArray, t0$7 == null ? JSArrayOfdouble().of([0.0, 0.0]) : t0$7);
    this[sizeType$] = (t0$8 = sizeType, t0$8 == null ? charts.DateTimeIntervalType.auto : t0$8);
    this[verticalTextAlignment$] = (t0$9 = verticalTextAlignment, t0$9 == null ? charts.TextAnchor.middle : t0$9);
    this[horizontalTextAlignment$] = (t0$10 = horizontalTextAlignment, t0$10 == null ? charts.TextAnchor.middle : t0$10);
    ;
  }).prototype = charts.PlotBand.prototype;
  dart.addTypeTests(charts.PlotBand);
  dart.setLibraryUri(charts.PlotBand, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.PlotBand, () => ({
    __proto__: dart.getFields(charts.PlotBand.__proto__),
    isVisible: dart.finalFieldType(core.bool),
    start: dart.finalFieldType(dart.dynamic),
    end: dart.finalFieldType(dart.dynamic),
    text: dart.finalFieldType(core.String),
    textStyle: dart.finalFieldType(charts.ChartTextStyle),
    color: dart.finalFieldType(ui.Color),
    borderColor: dart.finalFieldType(ui.Color),
    borderWidth: dart.finalFieldType(core.double),
    opacity: dart.finalFieldType(core.double),
    isRepeatable: dart.finalFieldType(core.bool),
    repeatEvery: dart.finalFieldType(dart.dynamic),
    repeatUntil: dart.finalFieldType(dart.dynamic),
    textAngle: dart.finalFieldType(core.double),
    shouldRenderAboveSeries: dart.finalFieldType(core.bool),
    sizeType: dart.finalFieldType(charts.DateTimeIntervalType),
    dashArray: dart.finalFieldType(core.List$(core.double)),
    size: dart.finalFieldType(dart.dynamic),
    associatedAxisStart: dart.finalFieldType(dart.dynamic),
    associatedAxisEnd: dart.finalFieldType(dart.dynamic),
    verticalTextAlignment: dart.finalFieldType(charts.TextAnchor),
    horizontalTextAlignment: dart.finalFieldType(charts.TextAnchor),
    gradient: dart.finalFieldType(gradient$.LinearGradient)
  }));
  const _renderPlotBand = dart.privateName(charts, "_renderPlotBand");
  const _getStartAndEndValues = dart.privateName(charts, "_getStartAndEndValues");
  const _getValue = dart.privateName(charts, "_getValue");
  const _renderPlotBandElement = dart.privateName(charts, "_renderPlotBandElement");
  const _drawPlotBand = dart.privateName(charts, "_drawPlotBand");
  charts._PlotBandPainter = class _PlotBandPainter extends custom_paint.CustomPainter {
    paint(canvas, size) {
      let clipRect = null;
      for (let axisIndex = 0; axisIndex < dart.notNull(this.chart[_chartAxis][_axisCollections][$length]); axisIndex = axisIndex + 1) {
        let axis = this.chart[_chartAxis][_axisCollections][$_get](axisIndex);
        for (let j = 0; j < dart.notNull(axis.plotBands[$length]); j = j + 1) {
          let plotBand = axis.plotBands[$_get](j);
          if (dart.test(plotBand.isVisible) && !dart.equals(this.shouldRenderAboveSeries, plotBand.shouldRenderAboveSeries)) {
            clipRect = charts._calculatePlotOffset(new ui.Rect.fromLTRB(this.chart[_chartAxis][_axisClipRect].left, this.chart[_chartAxis][_axisClipRect].top, this.chart[_chartAxis][_axisClipRect].right, this.chart[_chartAxis][_axisClipRect].bottom), new ui.Offset.new(this.chart[_chartAxis][_axisCollections][$_get](axisIndex).plotOffset, this.chart[_chartAxis][_axisCollections][$_get](axisIndex).plotOffset));
            canvas.clipRect(clipRect);
            this[_renderPlotBand](canvas, axis, plotBand);
          }
        }
      }
    }
    [_getStartAndEndValues](axis, start, end, plotBand, isNeedRepeat) {
      let startValue = typeof start == 'string' && core.num.tryParse(start) != null ? core.num.tryParse(start) : start;
      let endValue = typeof end == 'string' && core.num.tryParse(end) != null ? core.num.tryParse(end) : end;
      if (charts.DateTimeAxis.is(axis)) {
        startValue = core.DateTime.is(startValue) ? startValue.millisecondsSinceEpoch : startValue;
        endValue = dart.test(isNeedRepeat) ? core.DateTime.is(plotBand.repeatUntil) ? dart.dload(plotBand.repeatUntil, 'millisecondsSinceEpoch') : plotBand.repeatUntil : core.DateTime.is(endValue) ? endValue.millisecondsSinceEpoch : endValue;
      } else if (charts.CategoryAxis.is(axis)) {
        startValue = typeof startValue == 'number' ? startValue : dart.dsend(axis[_labels], 'indexOf', [startValue]);
        endValue = dart.test(isNeedRepeat) ? typeof plotBand.repeatUntil == 'number' ? dart.dsend(plotBand.repeatUntil, 'floor', []) : dart.dsend(axis[_labels], 'indexOf', [plotBand.repeatUntil]) : typeof endValue == 'number' ? endValue : dart.dsend(axis[_labels], 'indexOf', [endValue]);
      } else if (charts.LogarithmicAxis.is(axis) || charts.NumericAxis.is(axis)) {
        endValue = dart.test(isNeedRepeat) ? plotBand.repeatUntil : endValue;
      }
      return new charts._ChartLocation.new(core.num._check(startValue), core.num._check(endValue));
    }
    [_renderPlotBand](canvas, axis, plotBand) {
      let t0, t0$;
      let startValue = null;
      let endValue = null;
      let isNeedRepeat = dart.test(plotBand.isRepeatable) && plotBand.repeatUntil != null && plotBand.repeatEvery != null;
      let startAndEndValues = this[_getStartAndEndValues](axis, (t0 = plotBand.start, t0 == null ? axis[_visibleRange].minimum : t0), plotBand.end, plotBand, isNeedRepeat);
      startValue = startAndEndValues.x;
      endValue = startAndEndValues.y;
      if (isNeedRepeat) {
        let repeatStart = startValue;
        let repeatEnd = null;
        while (dart.notNull(repeatStart) < dart.notNull(endValue)) {
          repeatEnd = this[_getValue](axis, plotBand, repeatStart, core.num._check((t0$ = plotBand.size, t0$ == null ? plotBand.repeatEvery : t0$)));
          repeatEnd = dart.notNull(repeatEnd) > dart.notNull(endValue) ? endValue : repeatEnd;
          this[_renderPlotBandElement](axis, repeatStart, repeatEnd, plotBand, canvas);
          repeatStart = plotBand.size != null ? this[_getValue](axis, plotBand, repeatStart, core.num._check(plotBand.repeatEvery)) : repeatEnd;
        }
      } else {
        this[_renderPlotBandElement](axis, startValue, endValue, plotBand, canvas);
      }
    }
    [_getValue](axis, plotBand, value, addValue) {
      let intervalType = null;
      if (charts.DateTimeAxis.is(axis)) {
        intervalType = dart.equals(plotBand.sizeType, charts.DateTimeIntervalType.auto) ? axis[_actualIntervalType] : plotBand.sizeType;
        let date = new core.DateTime.fromMillisecondsSinceEpoch(dart.asInt(value));
        switch (intervalType) {
          case C364 || CT.C364:
          {
            date = new core.DateTime.new(dart.asInt(dart.notNull(date.year) + dart.notNull(addValue)), date.month, date.day, date.hour, date.minute, date.second);
            break;
          }
          case C365 || CT.C365:
          {
            date = new core.DateTime.new(date.year, dart.asInt(dart.notNull(date.month) + dart.notNull(addValue)), date.day, date.hour, date.minute, date.second);
            break;
          }
          case C366 || CT.C366:
          {
            date = new core.DateTime.new(date.year, date.month, dart.asInt(dart.notNull(date.day) + dart.notNull(addValue)), date.hour, date.minute, date.second);
            break;
          }
          case C367 || CT.C367:
          {
            date = new core.DateTime.new(date.year, date.month, date.day, dart.asInt(dart.notNull(date.hour) + dart.notNull(addValue)), date.minute, date.second);
            break;
          }
          case C368 || CT.C368:
          {
            date = new core.DateTime.new(date.year, date.month, date.day, date.hour, dart.asInt(dart.notNull(date.minute) + dart.notNull(addValue)), date.second);
            break;
          }
          case C369 || CT.C369:
          {
            date = new core.DateTime.new(date.year, date.month, date.day, date.hour, date.minute, dart.asInt(dart.notNull(date.second) + dart.notNull(addValue)));
            break;
          }
          default:
          {
            break;
          }
        }
        value = date.millisecondsSinceEpoch;
      } else {
        value = dart.notNull(value) + dart.notNull(addValue);
      }
      return value;
    }
    [_renderPlotBandElement](axis, startValue, endValue, plotBand, canvas) {
      let t0, t0$, t0$0, t0$1, t0$2, t0$3, t0$4, t0$5, t0$6, t0$7;
      let startPoint = null;
      let endPoint = null;
      let segmentStartPoint = null;
      let segmentEndPoint = null;
      let axisRect = this.chart[_chartAxis][_axisClipRect];
      let plotBandRect = null;
      let textAngle = null;
      let left = null;
      let top = null;
      let bottom = null;
      let right = null;
      startValue = core.num._check(startValue == null ? axis[_visibleRange].minimum : startValue = startValue);
      endValue = core.num._check(endValue == null ? axis[_visibleRange].maximum : endValue = endValue);
      startValue = charts.LogarithmicAxis.is(axis) ? charts._logBase(startValue, axis.logBase) : startValue;
      endValue = charts.LogarithmicAxis.is(axis) ? charts._logBase(endValue, axis.logBase) : endValue;
      dart.notNull(endValue) < 0 ? dart.notNull(endValue) <= dart.notNull(core.num._check(axis[_visibleRange].minimum)) ? endValue = core.num._check(axis[_visibleRange].minimum) : endValue = endValue : dart.notNull(endValue) >= dart.notNull(core.num._check(axis[_visibleRange].maximum)) ? endValue = core.num._check(axis[_visibleRange].maximum) : endValue = endValue;
      dart.notNull(startValue) < 0 ? dart.notNull(startValue) <= dart.notNull(core.num._check(axis[_visibleRange].minimum)) ? startValue = core.num._check(axis[_visibleRange].minimum) : startValue = startValue : dart.notNull(startValue) >= dart.notNull(core.num._check(axis[_visibleRange].maximum)) ? startValue = core.num._check(axis[_visibleRange].maximum) : startValue = startValue;
      startPoint = charts._calculatePoint(startValue, startValue, axis, axis, this.chart[_requireInvertedAxis], null, axisRect);
      endPoint = charts._calculatePoint(endValue, endValue, axis, axis, this.chart[_requireInvertedAxis], null, axisRect);
      let segmentAxis = null;
      if (plotBand.associatedAxisStart != null || plotBand.associatedAxisEnd != null) {
        if (axis.associatedAxisName == null) {
          segmentAxis = dart.equals(axis[_orientation], charts.AxisOrientation.horizontal) ? this.chart.primaryYAxis : this.chart.primaryXAxis;
        } else {
          for (let axisIndex = 0; axisIndex < dart.notNull(this.chart[_chartAxis][_axisCollections][$length]); axisIndex = axisIndex + 1) {
            let targetAxis = this.chart[_chartAxis][_axisCollections][$_get](axisIndex);
            if (axis.associatedAxisName == targetAxis[_name$]) {
              segmentAxis = axis;
            }
          }
        }
        let startAndEndValues = this[_getStartAndEndValues](segmentAxis, (t0 = plotBand.associatedAxisStart, t0 == null ? startValue : t0), (t0$ = plotBand.associatedAxisEnd, t0$ == null ? endValue : t0$), plotBand, false);
        if (dart.equals(segmentAxis[_orientation], charts.AxisOrientation.horizontal)) {
          segmentStartPoint = charts._calculatePoint(startAndEndValues.x, startValue, segmentAxis, axis, this.chart[_requireInvertedAxis], null, axisRect);
          segmentEndPoint = charts._calculatePoint(startAndEndValues.y, endValue, segmentAxis, axis, this.chart[_requireInvertedAxis], null, axisRect);
          left = plotBand.associatedAxisStart != null ? segmentStartPoint.x : axisRect.left;
          right = plotBand.associatedAxisEnd != null ? segmentEndPoint.x : axisRect.right;
        } else {
          segmentStartPoint = charts._calculatePoint(startValue, startAndEndValues.x, axis, segmentAxis, this.chart[_requireInvertedAxis], null, axisRect);
          segmentEndPoint = charts._calculatePoint(endValue, startAndEndValues.y, axis, segmentAxis, this.chart[_requireInvertedAxis], null, axisRect);
          top = plotBand.associatedAxisStart != null ? segmentStartPoint.y : axisRect.bottom;
          bottom = plotBand.associatedAxisEnd != null ? segmentEndPoint.y : axisRect.top;
        }
      }
      if (dart.equals(axis[_orientation], charts.AxisOrientation.horizontal)) {
        textAngle = plotBand.textAngle != null ? plotBand.textAngle[$toInt]() : 270;
        plotBandRect = new ui.Rect.fromLTRB((t0$0 = left, t0$0 == null ? startPoint.x : t0$0), (t0$1 = top, t0$1 == null ? axisRect.top : t0$1), (t0$2 = right, t0$2 == null ? endPoint.x : t0$2), (t0$3 = bottom, t0$3 == null ? axisRect.bottom : t0$3));
      } else {
        textAngle = plotBand.textAngle != null ? plotBand.textAngle[$toInt]() : 0;
        plotBandRect = new ui.Rect.fromLTRB((t0$4 = left, t0$4 == null ? axisRect.left : t0$4), (t0$5 = top, t0$5 == null ? endPoint.y : t0$5), (t0$6 = right, t0$6 == null ? axisRect.right : t0$6), (t0$7 = bottom, t0$7 == null ? startPoint.y : t0$7));
      }
      this[_drawPlotBand](plotBand, plotBandRect, textAngle, canvas);
    }
    [_drawPlotBand](plotBand, plotBandRect, textAngle, canvas) {
      let t0, t0$, t0$0, t0$1;
      let dashArray = plotBand.dashArray;
      let needDashLine = true;
      if (plotBandRect != null && plotBand.color != null) {
        let path = null;
        for (let i = 1; i < dart.notNull(dashArray[$length]); i = i + 2) {
          if (dashArray[$_get](i) === 0) {
            needDashLine = false;
          }
        }
        path = (t0 = ui.Path.new(), t0.moveTo(plotBandRect.left, plotBandRect.top), t0.lineTo(dart.notNull(plotBandRect.left) + dart.notNull(plotBandRect.width), plotBandRect.top), t0.lineTo(dart.notNull(plotBandRect.left) + dart.notNull(plotBandRect.width), dart.notNull(plotBandRect.top) + dart.notNull(plotBandRect.height)), t0.lineTo(plotBandRect.left, dart.notNull(plotBandRect.top) + dart.notNull(plotBandRect.height)), t0.close(), t0);
        let paint = ui.Paint.new();
        let dashPath = null;
        if (needDashLine) {
          paint.isAntiAlias = false;
          dashPath = !true ? charts._dashPath(path, {dashArray: new (_CircularIntervalListOfdouble()).new(dashArray)}) : path;
        } else {
          dashPath = path;
        }
        if (path != null) {
          let fillPaint = null;
          if (plotBand.gradient != null) {
            fillPaint = (t0$ = ui.Paint.new(), t0$.shader = plotBand.gradient.createShader(plotBandRect), t0$.style = ui.PaintingStyle.fill, t0$);
          } else {
            fillPaint = (t0$0 = ui.Paint.new(), t0$0.color = plotBand.color.withOpacity(plotBand.opacity), t0$0.style = ui.PaintingStyle.fill, t0$0);
          }
          canvas.drawPath(path, fillPaint);
          if (dart.notNull(plotBand.borderWidth) > 0 && plotBand.borderColor != null && dashPath != null) {
            canvas.drawPath(dashPath, (t0$1 = paint, t0$1.color = plotBand.borderColor.withOpacity(plotBand.opacity), t0$1.style = ui.PaintingStyle.stroke, t0$1.strokeWidth = plotBand.borderWidth, t0$1));
          }
        }
      }
      if (plotBand.text != null && plotBand.text[$isNotEmpty]) {
        let textSize = charts._measureText(plotBand.text, plotBand.textStyle, textAngle);
        charts._drawText(canvas, plotBand.text, new ui.Offset.new(dart.equals(plotBand.horizontalTextAlignment, charts.TextAnchor.middle) ? dart.notNull(plotBandRect.left) + dart.notNull(plotBandRect.width) / 2 - dart.notNull(plotBandRect.left == this.chart[_chartAxis][_axisClipRect].right ? 0 : plotBandRect.right == this.chart[_chartAxis][_axisClipRect].left ? textSize.width : dart.notNull(textSize.width) / 2) + (textAngle !== 0 ? dart.notNull(textSize.width) / 2 : 0) : dart.equals(plotBand.horizontalTextAlignment, charts.TextAnchor.start) ? plotBandRect.left : dart.notNull(plotBandRect.right) - dart.notNull(textSize.width), dart.equals(plotBand.verticalTextAlignment, charts.TextAnchor.middle) ? dart.notNull(plotBandRect.top) + dart.notNull(plotBandRect.height) / 2 - dart.notNull(plotBandRect.bottom == this.chart[_chartAxis][_axisClipRect].top ? textSize.height : plotBandRect.top == this.chart[_chartAxis][_axisClipRect].bottom ? 0 : textSize.height) + (textAngle !== 0 ? dart.notNull(textSize.height) / 2 : 0) : dart.equals(plotBand.verticalTextAlignment, charts.TextAnchor.start) ? plotBandRect.top : dart.notNull(plotBandRect.bottom) - dart.notNull(textSize.height)), plotBand.textStyle, textAngle);
      }
    }
    shouldRepaint(oldDelegate) {
      charts._PlotBandPainter._check(oldDelegate);
      return true;
    }
  };
  (charts._PlotBandPainter.new = function(opts) {
    let chart = opts && 'chart' in opts ? opts.chart : null;
    let shouldRenderAboveSeries = opts && 'shouldRenderAboveSeries' in opts ? opts.shouldRenderAboveSeries : null;
    this.chart = chart;
    this.shouldRenderAboveSeries = shouldRenderAboveSeries;
    charts._PlotBandPainter.__proto__.new.call(this);
    ;
  }).prototype = charts._PlotBandPainter.prototype;
  dart.addTypeTests(charts._PlotBandPainter);
  dart.setMethodSignature(charts._PlotBandPainter, () => ({
    __proto__: dart.getMethods(charts._PlotBandPainter.__proto__),
    paint: dart.fnType(dart.void, [ui.Canvas, ui.Size]),
    [_getStartAndEndValues]: dart.fnType(charts._ChartLocation, [charts.ChartAxis, dart.dynamic, dart.dynamic, charts.PlotBand, core.bool]),
    [_renderPlotBand]: dart.fnType(dart.void, [ui.Canvas, charts.ChartAxis, charts.PlotBand]),
    [_getValue]: dart.fnType(core.num, [charts.ChartAxis, charts.PlotBand, core.num, core.num]),
    [_renderPlotBandElement]: dart.fnType(dart.void, [charts.ChartAxis, core.num, core.num, charts.PlotBand, ui.Canvas]),
    [_drawPlotBand]: dart.fnType(dart.void, [charts.PlotBand, ui.Rect, core.int, ui.Canvas]),
    shouldRepaint: dart.fnType(core.bool, [core.Object])
  }));
  dart.setLibraryUri(charts._PlotBandPainter, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._PlotBandPainter, () => ({
    __proto__: dart.getFields(charts._PlotBandPainter.__proto__),
    chart: dart.finalFieldType(charts.SfCartesianChart),
    shouldRenderAboveSeries: dart.finalFieldType(core.bool)
  }));
  let C371;
  let C373;
  let C372;
  const _seriesDurationFactor = dart.privateName(charts, "_seriesDurationFactor");
  const _trendlineDurationFactor = dart.privateName(charts, "_trendlineDurationFactor");
  const _containerArea = dart.privateName(charts, "_containerArea");
  const _chartPointInfo = dart.privateName(charts, "_chartPointInfo");
  let C374;
  const title$3 = dart.privateName(charts, "SfCartesianChart.title");
  const legend$2 = dart.privateName(charts, "SfCartesianChart.legend");
  const backgroundColor$2 = dart.privateName(charts, "SfCartesianChart.backgroundColor");
  const borderColor$7 = dart.privateName(charts, "SfCartesianChart.borderColor");
  const borderWidth$7 = dart.privateName(charts, "SfCartesianChart.borderWidth");
  const plotAreaBackgroundColor$ = dart.privateName(charts, "SfCartesianChart.plotAreaBackgroundColor");
  const plotAreaBorderColor$ = dart.privateName(charts, "SfCartesianChart.plotAreaBorderColor");
  const plotAreaBorderWidth$ = dart.privateName(charts, "SfCartesianChart.plotAreaBorderWidth");
  const primaryXAxis$ = dart.privateName(charts, "SfCartesianChart.primaryXAxis");
  const primaryYAxis$ = dart.privateName(charts, "SfCartesianChart.primaryYAxis");
  const margin$2 = dart.privateName(charts, "SfCartesianChart.margin");
  const axes$ = dart.privateName(charts, "SfCartesianChart.axes");
  const enableSideBySideSeriesPlacement$ = dart.privateName(charts, "SfCartesianChart.enableSideBySideSeriesPlacement");
  const onTooltipRender$2 = dart.privateName(charts, "SfCartesianChart.onTooltipRender");
  const onActualRangeChanged$ = dart.privateName(charts, "SfCartesianChart.onActualRangeChanged");
  const onAxisLabelRender$ = dart.privateName(charts, "SfCartesianChart.onAxisLabelRender");
  const onDataLabelRender$2 = dart.privateName(charts, "SfCartesianChart.onDataLabelRender");
  const onLegendItemRender$2 = dart.privateName(charts, "SfCartesianChart.onLegendItemRender");
  const onTrendlineRender$ = dart.privateName(charts, "SfCartesianChart.onTrendlineRender");
  const onTrackballPositionChanging$ = dart.privateName(charts, "SfCartesianChart.onTrackballPositionChanging");
  const onCrosshairPositionChanging$ = dart.privateName(charts, "SfCartesianChart.onCrosshairPositionChanging");
  const onZoomStart$ = dart.privateName(charts, "SfCartesianChart.onZoomStart");
  const onZoomEnd$ = dart.privateName(charts, "SfCartesianChart.onZoomEnd");
  const onZoomReset$ = dart.privateName(charts, "SfCartesianChart.onZoomReset");
  const onZooming$ = dart.privateName(charts, "SfCartesianChart.onZooming");
  const onPointTapped$0 = dart.privateName(charts, "SfCartesianChart.onPointTapped");
  const onAxisLabelTapped$ = dart.privateName(charts, "SfCartesianChart.onAxisLabelTapped");
  const onLegendTapped$2 = dart.privateName(charts, "SfCartesianChart.onLegendTapped");
  const onSelectionChanged$2 = dart.privateName(charts, "SfCartesianChart.onSelectionChanged");
  const onChartTouchInteractionUp$ = dart.privateName(charts, "SfCartesianChart.onChartTouchInteractionUp");
  const onIndicatorRender$ = dart.privateName(charts, "SfCartesianChart.onIndicatorRender");
  const onMarkerRender$ = dart.privateName(charts, "SfCartesianChart.onMarkerRender");
  const tooltipBehavior$2 = dart.privateName(charts, "SfCartesianChart.tooltipBehavior");
  const crosshairBehavior$ = dart.privateName(charts, "SfCartesianChart.crosshairBehavior");
  const trackballBehavior$ = dart.privateName(charts, "SfCartesianChart.trackballBehavior");
  const zoomPanBehavior$ = dart.privateName(charts, "SfCartesianChart.zoomPanBehavior");
  const selectionType$ = dart.privateName(charts, "SfCartesianChart.selectionType");
  const annotations$0 = dart.privateName(charts, "SfCartesianChart.annotations");
  const enableMultiSelection$2 = dart.privateName(charts, "SfCartesianChart.enableMultiSelection");
  const selectionGesture$2 = dart.privateName(charts, "SfCartesianChart.selectionGesture");
  const plotAreaBackgroundImage$ = dart.privateName(charts, "SfCartesianChart.plotAreaBackgroundImage");
  const isTransposed$ = dart.privateName(charts, "SfCartesianChart.isTransposed");
  const series$2 = dart.privateName(charts, "SfCartesianChart.series");
  const palette$2 = dart.privateName(charts, "SfCartesianChart.palette");
  const indicators$ = dart.privateName(charts, "SfCartesianChart.indicators");
  charts.SfCartesianChart = class SfCartesianChart extends framework.StatefulWidget {
    get title() {
      return this[title$3];
    }
    set title(value) {
      super.title = value;
    }
    get legend() {
      return this[legend$2];
    }
    set legend(value) {
      super.legend = value;
    }
    get backgroundColor() {
      return this[backgroundColor$2];
    }
    set backgroundColor(value) {
      super.backgroundColor = value;
    }
    get borderColor() {
      return this[borderColor$7];
    }
    set borderColor(value) {
      super.borderColor = value;
    }
    get borderWidth() {
      return this[borderWidth$7];
    }
    set borderWidth(value) {
      super.borderWidth = value;
    }
    get plotAreaBackgroundColor() {
      return this[plotAreaBackgroundColor$];
    }
    set plotAreaBackgroundColor(value) {
      super.plotAreaBackgroundColor = value;
    }
    get plotAreaBorderColor() {
      return this[plotAreaBorderColor$];
    }
    set plotAreaBorderColor(value) {
      super.plotAreaBorderColor = value;
    }
    get plotAreaBorderWidth() {
      return this[plotAreaBorderWidth$];
    }
    set plotAreaBorderWidth(value) {
      super.plotAreaBorderWidth = value;
    }
    get primaryXAxis() {
      return this[primaryXAxis$];
    }
    set primaryXAxis(value) {
      super.primaryXAxis = value;
    }
    get primaryYAxis() {
      return this[primaryYAxis$];
    }
    set primaryYAxis(value) {
      super.primaryYAxis = value;
    }
    get margin() {
      return this[margin$2];
    }
    set margin(value) {
      super.margin = value;
    }
    get axes() {
      return this[axes$];
    }
    set axes(value) {
      super.axes = value;
    }
    get enableSideBySideSeriesPlacement() {
      return this[enableSideBySideSeriesPlacement$];
    }
    set enableSideBySideSeriesPlacement(value) {
      super.enableSideBySideSeriesPlacement = value;
    }
    get onTooltipRender() {
      return this[onTooltipRender$2];
    }
    set onTooltipRender(value) {
      super.onTooltipRender = value;
    }
    get onActualRangeChanged() {
      return this[onActualRangeChanged$];
    }
    set onActualRangeChanged(value) {
      super.onActualRangeChanged = value;
    }
    get onAxisLabelRender() {
      return this[onAxisLabelRender$];
    }
    set onAxisLabelRender(value) {
      super.onAxisLabelRender = value;
    }
    get onDataLabelRender() {
      return this[onDataLabelRender$2];
    }
    set onDataLabelRender(value) {
      super.onDataLabelRender = value;
    }
    get onLegendItemRender() {
      return this[onLegendItemRender$2];
    }
    set onLegendItemRender(value) {
      super.onLegendItemRender = value;
    }
    get onTrendlineRender() {
      return this[onTrendlineRender$];
    }
    set onTrendlineRender(value) {
      super.onTrendlineRender = value;
    }
    get onTrackballPositionChanging() {
      return this[onTrackballPositionChanging$];
    }
    set onTrackballPositionChanging(value) {
      super.onTrackballPositionChanging = value;
    }
    get onCrosshairPositionChanging() {
      return this[onCrosshairPositionChanging$];
    }
    set onCrosshairPositionChanging(value) {
      super.onCrosshairPositionChanging = value;
    }
    get onZoomStart() {
      return this[onZoomStart$];
    }
    set onZoomStart(value) {
      super.onZoomStart = value;
    }
    get onZoomEnd() {
      return this[onZoomEnd$];
    }
    set onZoomEnd(value) {
      super.onZoomEnd = value;
    }
    get onZoomReset() {
      return this[onZoomReset$];
    }
    set onZoomReset(value) {
      super.onZoomReset = value;
    }
    get onZooming() {
      return this[onZooming$];
    }
    set onZooming(value) {
      super.onZooming = value;
    }
    get onPointTapped() {
      return this[onPointTapped$0];
    }
    set onPointTapped(value) {
      super.onPointTapped = value;
    }
    get onAxisLabelTapped() {
      return this[onAxisLabelTapped$];
    }
    set onAxisLabelTapped(value) {
      super.onAxisLabelTapped = value;
    }
    get onLegendTapped() {
      return this[onLegendTapped$2];
    }
    set onLegendTapped(value) {
      super.onLegendTapped = value;
    }
    get onSelectionChanged() {
      return this[onSelectionChanged$2];
    }
    set onSelectionChanged(value) {
      super.onSelectionChanged = value;
    }
    get onChartTouchInteractionUp() {
      return this[onChartTouchInteractionUp$];
    }
    set onChartTouchInteractionUp(value) {
      super.onChartTouchInteractionUp = value;
    }
    get onIndicatorRender() {
      return this[onIndicatorRender$];
    }
    set onIndicatorRender(value) {
      super.onIndicatorRender = value;
    }
    get onMarkerRender() {
      return this[onMarkerRender$];
    }
    set onMarkerRender(value) {
      super.onMarkerRender = value;
    }
    get tooltipBehavior() {
      return this[tooltipBehavior$2];
    }
    set tooltipBehavior(value) {
      super.tooltipBehavior = value;
    }
    get crosshairBehavior() {
      return this[crosshairBehavior$];
    }
    set crosshairBehavior(value) {
      super.crosshairBehavior = value;
    }
    get trackballBehavior() {
      return this[trackballBehavior$];
    }
    set trackballBehavior(value) {
      super.trackballBehavior = value;
    }
    get zoomPanBehavior() {
      return this[zoomPanBehavior$];
    }
    set zoomPanBehavior(value) {
      super.zoomPanBehavior = value;
    }
    get selectionType() {
      return this[selectionType$];
    }
    set selectionType(value) {
      super.selectionType = value;
    }
    get annotations() {
      return this[annotations$0];
    }
    set annotations(value) {
      super.annotations = value;
    }
    get enableMultiSelection() {
      return this[enableMultiSelection$2];
    }
    set enableMultiSelection(value) {
      super.enableMultiSelection = value;
    }
    get selectionGesture() {
      return this[selectionGesture$2];
    }
    set selectionGesture(value) {
      super.selectionGesture = value;
    }
    get plotAreaBackgroundImage() {
      return this[plotAreaBackgroundImage$];
    }
    set plotAreaBackgroundImage(value) {
      super.plotAreaBackgroundImage = value;
    }
    get isTransposed() {
      return this[isTransposed$];
    }
    set isTransposed(value) {
      super.isTransposed = value;
    }
    get series() {
      return this[series$2];
    }
    set series(value) {
      super.series = value;
    }
    get palette() {
      return this[palette$2];
    }
    set palette(value) {
      super.palette = value;
    }
    get indicators() {
      return this[indicators$];
    }
    set indicators(value) {
      super.indicators = value;
    }
    createState() {
      return new charts._SfCartesianChartState.new();
    }
  };
  (charts.SfCartesianChart.new = function(opts) {
    let t0, t0$, t0$0, t0$1, t0$2, t0$3, t0$4, t0$5, t0$6, t0$7, t0$8, t0$9, t0$10, t0$11, t0$12;
    let key = opts && 'key' in opts ? opts.key : null;
    let backgroundColor = opts && 'backgroundColor' in opts ? opts.backgroundColor : null;
    let enableSideBySideSeriesPlacement = opts && 'enableSideBySideSeriesPlacement' in opts ? opts.enableSideBySideSeriesPlacement : true;
    let borderColor = opts && 'borderColor' in opts ? opts.borderColor : C0 || CT.C0;
    let borderWidth = opts && 'borderWidth' in opts ? opts.borderWidth : 0;
    let plotAreaBackgroundColor = opts && 'plotAreaBackgroundColor' in opts ? opts.plotAreaBackgroundColor : null;
    let plotAreaBorderColor = opts && 'plotAreaBorderColor' in opts ? opts.plotAreaBorderColor : C371 || CT.C371;
    let plotAreaBorderWidth = opts && 'plotAreaBorderWidth' in opts ? opts.plotAreaBorderWidth : 0.7;
    let plotAreaBackgroundImage = opts && 'plotAreaBackgroundImage' in opts ? opts.plotAreaBackgroundImage : null;
    let onTooltipRender = opts && 'onTooltipRender' in opts ? opts.onTooltipRender : null;
    let onActualRangeChanged = opts && 'onActualRangeChanged' in opts ? opts.onActualRangeChanged : null;
    let onAxisLabelRender = opts && 'onAxisLabelRender' in opts ? opts.onAxisLabelRender : null;
    let onDataLabelRender = opts && 'onDataLabelRender' in opts ? opts.onDataLabelRender : null;
    let onLegendItemRender = opts && 'onLegendItemRender' in opts ? opts.onLegendItemRender : null;
    let onTrackballPositionChanging = opts && 'onTrackballPositionChanging' in opts ? opts.onTrackballPositionChanging : null;
    let onCrosshairPositionChanging = opts && 'onCrosshairPositionChanging' in opts ? opts.onCrosshairPositionChanging : null;
    let onZooming = opts && 'onZooming' in opts ? opts.onZooming : null;
    let onZoomStart = opts && 'onZoomStart' in opts ? opts.onZoomStart : null;
    let onZoomEnd = opts && 'onZoomEnd' in opts ? opts.onZoomEnd : null;
    let onZoomReset = opts && 'onZoomReset' in opts ? opts.onZoomReset : null;
    let onPointTapped = opts && 'onPointTapped' in opts ? opts.onPointTapped : null;
    let onAxisLabelTapped = opts && 'onAxisLabelTapped' in opts ? opts.onAxisLabelTapped : null;
    let onTrendlineRender = opts && 'onTrendlineRender' in opts ? opts.onTrendlineRender : null;
    let onLegendTapped = opts && 'onLegendTapped' in opts ? opts.onLegendTapped : null;
    let onSelectionChanged = opts && 'onSelectionChanged' in opts ? opts.onSelectionChanged : null;
    let onChartTouchInteractionUp = opts && 'onChartTouchInteractionUp' in opts ? opts.onChartTouchInteractionUp : null;
    let onIndicatorRender = opts && 'onIndicatorRender' in opts ? opts.onIndicatorRender : null;
    let onMarkerRender = opts && 'onMarkerRender' in opts ? opts.onMarkerRender : null;
    let isTransposed = opts && 'isTransposed' in opts ? opts.isTransposed : false;
    let annotations = opts && 'annotations' in opts ? opts.annotations : null;
    let palette = opts && 'palette' in opts ? opts.palette : C372 || CT.C372;
    let primaryXAxis = opts && 'primaryXAxis' in opts ? opts.primaryXAxis : null;
    let primaryYAxis = opts && 'primaryYAxis' in opts ? opts.primaryYAxis : null;
    let margin = opts && 'margin' in opts ? opts.margin : null;
    let tooltipBehavior = opts && 'tooltipBehavior' in opts ? opts.tooltipBehavior : null;
    let zoomPanBehavior = opts && 'zoomPanBehavior' in opts ? opts.zoomPanBehavior : null;
    let legend = opts && 'legend' in opts ? opts.legend : null;
    let selectionType = opts && 'selectionType' in opts ? opts.selectionType : null;
    let selectionGesture = opts && 'selectionGesture' in opts ? opts.selectionGesture : null;
    let enableMultiSelection = opts && 'enableMultiSelection' in opts ? opts.enableMultiSelection : null;
    let crosshairBehavior = opts && 'crosshairBehavior' in opts ? opts.crosshairBehavior : null;
    let trackballBehavior = opts && 'trackballBehavior' in opts ? opts.trackballBehavior : null;
    let series = opts && 'series' in opts ? opts.series : null;
    let title = opts && 'title' in opts ? opts.title : null;
    let axes = opts && 'axes' in opts ? opts.axes : null;
    let indicators = opts && 'indicators' in opts ? opts.indicators : null;
    let $36creationLocationd_0dea112b090073317d4 = opts && '$creationLocationd_0dea112b090073317d4' in opts ? opts.$creationLocationd_0dea112b090073317d4 : null;
    this[_seriesDurationFactor] = 0.85;
    this[_trendlineDurationFactor] = 0.85;
    this[_chartState] = null;
    this[_requireInvertedAxis] = false;
    this[_chartAxis] = null;
    this[_chartSeries] = null;
    this[_chartLegend] = null;
    this[_containerArea] = null;
    this[_chartPointInfo] = JSArrayOf_ChartPointInfo().of([]);
    this[backgroundColor$2] = backgroundColor;
    this[enableSideBySideSeriesPlacement$] = enableSideBySideSeriesPlacement;
    this[borderColor$7] = borderColor;
    this[borderWidth$7] = borderWidth;
    this[plotAreaBackgroundColor$] = plotAreaBackgroundColor;
    this[plotAreaBorderColor$] = plotAreaBorderColor;
    this[plotAreaBorderWidth$] = plotAreaBorderWidth;
    this[plotAreaBackgroundImage$] = plotAreaBackgroundImage;
    this[onTooltipRender$2] = onTooltipRender;
    this[onActualRangeChanged$] = onActualRangeChanged;
    this[onAxisLabelRender$] = onAxisLabelRender;
    this[onDataLabelRender$2] = onDataLabelRender;
    this[onLegendItemRender$2] = onLegendItemRender;
    this[onTrackballPositionChanging$] = onTrackballPositionChanging;
    this[onCrosshairPositionChanging$] = onCrosshairPositionChanging;
    this[onZooming$] = onZooming;
    this[onZoomStart$] = onZoomStart;
    this[onZoomEnd$] = onZoomEnd;
    this[onZoomReset$] = onZoomReset;
    this[onPointTapped$0] = onPointTapped;
    this[onAxisLabelTapped$] = onAxisLabelTapped;
    this[onTrendlineRender$] = onTrendlineRender;
    this[onLegendTapped$2] = onLegendTapped;
    this[onSelectionChanged$2] = onSelectionChanged;
    this[onChartTouchInteractionUp$] = onChartTouchInteractionUp;
    this[onIndicatorRender$] = onIndicatorRender;
    this[onMarkerRender$] = onMarkerRender;
    this[isTransposed$] = isTransposed;
    this[annotations$0] = annotations;
    this[palette$2] = palette;
    this[primaryXAxis$] = (t0 = primaryXAxis, t0 == null ? new charts.NumericAxis.new() : t0);
    this[primaryYAxis$] = (t0$ = primaryYAxis, t0$ == null ? new charts.NumericAxis.new() : t0$);
    this[title$3] = (t0$0 = title, t0$0 == null ? new charts.ChartTitle.new() : t0$0);
    this[axes$] = (t0$1 = axes, t0$1 == null ? JSArrayOfChartAxis().of([]) : t0$1);
    this[series$2] = ListOfChartSeries()._check((t0$2 = series, t0$2 == null ? JSArrayOfChartSeries().of([]) : t0$2));
    this[margin$2] = (t0$3 = margin, t0$3 == null ? C12 || CT.C12 : t0$3);
    this[zoomPanBehavior$] = (t0$4 = zoomPanBehavior, t0$4 == null ? new charts.ZoomPanBehavior.new() : t0$4);
    this[tooltipBehavior$2] = (t0$5 = tooltipBehavior, t0$5 == null ? new charts.TooltipBehavior.new() : t0$5);
    this[crosshairBehavior$] = (t0$6 = crosshairBehavior, t0$6 == null ? new charts.CrosshairBehavior.new() : t0$6);
    this[trackballBehavior$] = (t0$7 = trackballBehavior, t0$7 == null ? new charts.TrackballBehavior.new() : t0$7);
    this[legend$2] = (t0$8 = legend, t0$8 == null ? new charts.Legend.new() : t0$8);
    this[selectionType$] = (t0$9 = selectionType, t0$9 == null ? charts.SelectionType.point : t0$9);
    this[selectionGesture$2] = (t0$10 = selectionGesture, t0$10 == null ? charts.ActivationMode.singleTap : t0$10);
    this[enableMultiSelection$2] = (t0$11 = enableMultiSelection, t0$11 == null ? false : t0$11);
    this[indicators$] = (t0$12 = indicators, t0$12 == null ? JSArrayOfTechnicalIndicators().of([]) : t0$12);
    charts.SfCartesianChart.__proto__.new.call(this, {key: key, $creationLocationd_0dea112b090073317d4: $36creationLocationd_0dea112b090073317d4});
    this[_chartAxis] = new charts._ChartAxis.new();
    this[_chartSeries] = new charts._ChartSeries.new();
    this[_chartLegend] = new charts._ChartLegend.new();
    this[_containerArea] = new charts._ContainerArea.new({$creationLocationd_0dea112b090073317d4: C374 || CT.C374});
  }).prototype = charts.SfCartesianChart.prototype;
  dart.addTypeTests(charts.SfCartesianChart);
  dart.setMethodSignature(charts.SfCartesianChart, () => ({
    __proto__: dart.getMethods(charts.SfCartesianChart.__proto__),
    createState: dart.fnType(framework.State$(framework.StatefulWidget), [])
  }));
  dart.setLibraryUri(charts.SfCartesianChart, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.SfCartesianChart, () => ({
    __proto__: dart.getFields(charts.SfCartesianChart.__proto__),
    title: dart.finalFieldType(charts.ChartTitle),
    legend: dart.finalFieldType(charts.Legend),
    backgroundColor: dart.finalFieldType(ui.Color),
    borderColor: dart.finalFieldType(ui.Color),
    borderWidth: dart.finalFieldType(core.double),
    plotAreaBackgroundColor: dart.finalFieldType(ui.Color),
    plotAreaBorderColor: dart.finalFieldType(ui.Color),
    plotAreaBorderWidth: dart.finalFieldType(core.double),
    primaryXAxis: dart.finalFieldType(charts.ChartAxis),
    primaryYAxis: dart.finalFieldType(charts.ChartAxis),
    margin: dart.finalFieldType(edge_insets.EdgeInsets),
    axes: dart.finalFieldType(core.List$(charts.ChartAxis)),
    enableSideBySideSeriesPlacement: dart.finalFieldType(core.bool),
    onTooltipRender: dart.finalFieldType(dart.fnType(dart.void, [charts.TooltipArgs])),
    onActualRangeChanged: dart.finalFieldType(dart.fnType(dart.void, [charts.ActualRangeChangedArgs])),
    onAxisLabelRender: dart.finalFieldType(dart.fnType(dart.void, [charts.AxisLabelRenderArgs])),
    onDataLabelRender: dart.finalFieldType(dart.fnType(dart.void, [charts.DataLabelRenderArgs])),
    onLegendItemRender: dart.finalFieldType(dart.fnType(dart.void, [charts.LegendRenderArgs])),
    onTrendlineRender: dart.finalFieldType(dart.fnType(dart.void, [charts.TrendlineRenderArgs])),
    onTrackballPositionChanging: dart.finalFieldType(dart.fnType(dart.void, [charts.TrackballArgs])),
    onCrosshairPositionChanging: dart.finalFieldType(dart.fnType(dart.void, [charts.CrosshairRenderArgs])),
    onZoomStart: dart.finalFieldType(dart.fnType(dart.void, [charts.ZoomPanArgs])),
    onZoomEnd: dart.finalFieldType(dart.fnType(dart.void, [charts.ZoomPanArgs])),
    onZoomReset: dart.finalFieldType(dart.fnType(dart.void, [charts.ZoomPanArgs])),
    onZooming: dart.finalFieldType(dart.fnType(dart.void, [charts.ZoomPanArgs])),
    onPointTapped: dart.finalFieldType(dart.fnType(dart.void, [charts.PointTapArgs])),
    onAxisLabelTapped: dart.finalFieldType(dart.fnType(dart.void, [charts.AxisLabelTapArgs])),
    onLegendTapped: dart.finalFieldType(dart.fnType(dart.void, [charts.LegendTapArgs])),
    onSelectionChanged: dart.finalFieldType(dart.fnType(dart.void, [charts.SelectionArgs])),
    onChartTouchInteractionUp: dart.finalFieldType(dart.fnType(dart.void, [charts.ChartTouchInteractionArgs])),
    onIndicatorRender: dart.finalFieldType(dart.fnType(dart.void, [charts.IndicatorRenderArgs])),
    onMarkerRender: dart.finalFieldType(dart.fnType(dart.void, [charts.MarkerRenderArgs])),
    tooltipBehavior: dart.finalFieldType(charts.TooltipBehavior),
    crosshairBehavior: dart.finalFieldType(charts.CrosshairBehavior),
    trackballBehavior: dart.finalFieldType(charts.TrackballBehavior),
    zoomPanBehavior: dart.finalFieldType(charts.ZoomPanBehavior),
    selectionType: dart.finalFieldType(charts.SelectionType),
    annotations: dart.finalFieldType(core.List$(charts.CartesianChartAnnotation)),
    enableMultiSelection: dart.finalFieldType(core.bool),
    selectionGesture: dart.finalFieldType(charts.ActivationMode),
    plotAreaBackgroundImage: dart.finalFieldType(image_provider.ImageProvider),
    isTransposed: dart.finalFieldType(core.bool),
    series: dart.finalFieldType(core.List$(charts.ChartSeries)),
    palette: dart.finalFieldType(core.List$(ui.Color)),
    indicators: dart.finalFieldType(core.List$(charts.TechnicalIndicators)),
    [_seriesDurationFactor]: dart.finalFieldType(core.double),
    [_trendlineDurationFactor]: dart.finalFieldType(core.double),
    [_chartState]: dart.fieldType(charts._SfCartesianChartState),
    [_requireInvertedAxis]: dart.fieldType(core.bool),
    [_chartAxis]: dart.fieldType(charts._ChartAxis),
    [_chartSeries]: dart.fieldType(charts._ChartSeries),
    [_chartLegend]: dart.fieldType(charts._ChartLegend),
    [_containerArea]: dart.fieldType(charts._ContainerArea),
    [_chartPointInfo]: dart.fieldType(core.List$(charts._ChartPointInfo))
  }));
  const _oldSeriesVisible = dart.privateName(charts, "_oldSeriesVisible");
  const _touchStartPositions = dart.privateName(charts, "_touchStartPositions");
  const _touchMovePositions = dart.privateName(charts, "_touchMovePositions");
  const _enableDoubleTap = dart.privateName(charts, "_enableDoubleTap");
  const _oldDeviceOrientation = dart.privateName(charts, "_oldDeviceOrientation");
  const _legendToggling = dart.privateName(charts, "_legendToggling");
  const _legendIconImage = dart.privateName(charts, "_legendIconImage");
  const _renderTitle = dart.privateName(charts, "_renderTitle");
  let C377;
  let C376;
  let C375;
  let C380;
  let C381;
  let C379;
  let C378;
  let C384;
  let C385;
  let C383;
  let C382;
  let C388;
  let C387;
  let C386;
  let C391;
  let C392;
  let C393;
  let C394;
  let C395;
  let C390;
  let C389;
  let C398;
  let C399;
  let C397;
  let C396;
  let C402;
  let C403;
  let C401;
  let C400;
  let C404;
  const _bindCartesianLegendTemplateWidgets = dart.privateName(charts, "_bindCartesianLegendTemplateWidgets");
  let C407;
  let C406;
  let C405;
  let C410;
  let C409;
  let C408;
  let C413;
  let C412;
  let C411;
  let C416;
  let C415;
  let C414;
  let C419;
  let C418;
  let C417;
  let C422;
  let C423;
  let C424;
  let C425;
  let C426;
  let C427;
  let C428;
  let C421;
  let C420;
  const _checkWithLegendToggleState = dart.privateName(charts, "_checkWithLegendToggleState");
  const _checkWithTrendlineLegendToggleState = dart.privateName(charts, "_checkWithTrendlineLegendToggleState");
  const _checkIndicatorLegendToggleState = dart.privateName(charts, "_checkIndicatorLegendToggleState");
  const State_SingleTickerProviderStateMixin$36$2 = class State_SingleTickerProviderStateMixin extends framework.State$(charts.SfCartesianChart) {};
  (State_SingleTickerProviderStateMixin$36$2.new = function() {
    ticker_provider.SingleTickerProviderStateMixin$(charts.SfCartesianChart)[dart.mixinNew].call(this);
    State_SingleTickerProviderStateMixin$36$2.__proto__.new.call(this);
  }).prototype = State_SingleTickerProviderStateMixin$36$2.prototype;
  dart.applyMixin(State_SingleTickerProviderStateMixin$36$2, ticker_provider.SingleTickerProviderStateMixin$(charts.SfCartesianChart));
  charts._SfCartesianChartState = class _SfCartesianChartState extends State_SingleTickerProviderStateMixin$36$2 {
    [_initializeDefaultValues]() {
      let t0;
      this.controllerList = JSArrayOfAnimationController().of([]);
      this.zoomRepaintNotifier = new (ValueNotifierOfint()).new(0);
      this.seriesRepaintNotifier = new (ValueNotifierOfint()).new(0);
      this.trendlineRepaintNotifier = new (ValueNotifierOfint()).new(0);
      this.trackballRepaintNotifier = new (ValueNotifierOfint()).new(0);
      this.crosshairRepaintNotifier = new (ValueNotifierOfint()).new(0);
      this.indicatorRepaintNotifier = new (ValueNotifierOfint()).new(0);
      this.legendWidgetContext = JSArrayOf_MeasureWidgetContext().of([]);
      this.templates = JSArrayOf_ChartTemplateInfo().of([]);
      this.zoomedAxisStates = JSArrayOfChartAxis().of([]);
      this.zoomAxes = JSArrayOf_ZoomAxisRange().of([]);
      this.containerRect = C348 || CT.C348;
      this.zoomProgress = false;
      this.initialRender = true;
      this.legendToggleStates = JSArrayOf_LegendRenderContext().of([]);
      this.selectedSegments = JSArrayOfChartSegment().of([]);
      this.unselectedSegments = JSArrayOfChartSegment().of([]);
      this.legendToggleTemplateStates = JSArrayOf_MeasureWidgetContext().of([]);
      this.renderDatalabelRegions = JSArrayOfRect().of([]);
      this.dataLabelTemplateRegions = JSArrayOfRect().of([]);
      this.annotationRegions = JSArrayOfRect().of([]);
      this.animateCompleted = false;
      this.widgetNeedUpdate = false;
      this.prevWidgetSeries = JSArrayOfChartSeries().of([]);
      this[_isLegendToggled] = false;
      this[_oldSeriesVisible] = JSArrayOfbool().of([]);
      this[_touchStartPositions] = JSArrayOfPointerEvent().of([]);
      this[_touchMovePositions] = JSArrayOfPointerEvent().of([]);
      this[_enableDoubleTap] = false;
      this[_legendToggling] = false;
      this.painterKeys = JSArrayOf_PainterKey().of([]);
      this.isNeedUpdate = true;
      this.animationController = (t0 = new animation_controller.AnimationController.new({vsync: this}), t0.addListener(dart.bind(this, 'repaintChartElements')), t0);
    }
    initState() {
      this[_initializeDefaultValues]();
      super.initState();
    }
    didChangeDependencies() {
      this[_chartTheme] = charts_theme.SfChartTheme.of(this.context);
      super.didChangeDependencies();
    }
    didUpdateWidget(oldWidget) {
      charts.SfCartesianChart._check(oldWidget);
      charts._needsRepaintChart(this.widget, oldWidget);
      this[_isLegendToggled] = false;
      if (this.widget[_chartState] != null && this.widget[_chartState].legendWidgetContext != null && dart.test(this.widget[_chartState].legendWidgetContext[$isNotEmpty])) {
        this.widget[_chartState].legendWidgetContext[$clear]();
      }
      if (dart.test(this.isNeedUpdate)) {
        this[_oldDeviceOrientation] = oldWidget[_chartState].deviceOrientation;
        this.initialRender = false;
        this.widgetNeedUpdate = true;
        this.prevWidgetSeries = oldWidget[_chartSeries].visibleSeries;
        this.oldAxes = oldWidget[_chartAxis][_axisCollections];
      }
      super.didUpdateWidget(oldWidget);
    }
    [_refresh]() {
      if (dart.test(this.widget[_chartState].legendWidgetContext[$isNotEmpty])) {
        for (let i = 0; i < dart.notNull(this.widget[_chartState].legendWidgetContext[$length]); i = i + 1) {
          let templateContext = this.widget[_chartState].legendWidgetContext[$_get](i);
          let renderBox = box.RenderBox._check(templateContext.context.findRenderObject());
          templateContext.size = renderBox.size;
        }
        this.setState(dart.fn(() => {
        }, VoidToNull()));
      }
    }
    [_redraw]() {
      this.widget[_chartState].oldAxes = this.widget[_chartAxis][_axisCollections];
      this.widget[_chartState].initialRender = false;
      if (dart.test(this.widget[_chartState][_isLegendToggled])) {
        this.widget[_chartState].segments = JSArrayOfChartSegment().of([]);
        this.widget[_chartState][_oldSeriesVisible] = ListOfbool().new(this.widget[_chartSeries].visibleSeries[$length]);
        for (let i = 0; i < dart.notNull(this.widget[_chartSeries].visibleSeries[$length]); i = i + 1) {
          let series = charts.CartesianSeries._check(this.widget[_chartSeries].visibleSeries[$_get](i));
          if (charts.ColumnSeries.is(series) || charts.BarSeries.is(series)) {
            for (let j = 0; j < dart.notNull(series.segments[$length]); j = j + 1) {
              this.widget[_chartState].segments[$add](series.segments[$_get](j));
            }
          }
        }
      }
      if (this.widget[_chartState].zoomedAxisStates != null && dart.test(this.widget[_chartState].zoomedAxisStates[$isNotEmpty])) {
        this.zoomedState = true;
      }
      if (dart.test(this.mounted)) {
        this.setState(dart.fn(() => {
        }, VoidToNull()));
      }
    }
    redrawByRangeChange() {
      if (dart.test(this.mounted)) {
        this.setState(dart.fn(() => {
        }, VoidToNull()));
      }
    }
    dispose() {
      if (this.animationController != null) {
        this.animationController.removeListener(dart.bind(this, 'repaintChartElements'));
        this.animationController.dispose();
        this.animationController = null;
      }
      super.dispose();
    }
    repaintChartElements() {
      let t0, t0$;
      t0 = this.seriesRepaintNotifier;
      t0.value = dart.notNull(t0.value) + 1;
      t0$ = this.trendlineRepaintNotifier;
      t0$.value = dart.notNull(t0$.value) + 1;
    }
    setPainterKey(index, name, renderComplete) {
      let value = 0;
      for (let i = 0; i < dart.notNull(this.painterKeys[$length]); i = i + 1) {
        let painterKey = this.painterKeys[$_get](i);
        if (dart.test(painterKey.isRenderCompleted)) {
          value = value + 1;
        } else if (painterKey.index == index && painterKey.name == name && !dart.test(painterKey.isRenderCompleted)) {
          painterKey.isRenderCompleted = renderComplete;
          value = value + 1;
        }
        if (value >= dart.notNull(this.painterKeys[$length]) && !dart.test(this.triggerLoaded)) {
          this.triggerLoaded = true;
        }
      }
    }
    build(context) {
      let t0;
      core$.SyncfusionLicense.validateLicense(context);
      this.widget[_chartState] = this;
      this.widget[_chartState].triggerLoaded = false;
      this[_findVisibleSeries](context);
      return new charts._ChartContainer.new({child: new container.Container.new({decoration: new box_decoration.BoxDecoration.new({color: (t0 = this.widget.backgroundColor, t0 == null ? this[_chartTheme].backgroundColor : t0), border: box_border.Border.all({color: this.widget.borderColor, width: this.widget.borderWidth})}), child: new container.Container.new({margin: new edge_insets.EdgeInsets.fromLTRB(this.widget.margin.left, this.widget.margin.top, this.widget.margin.right, this.widget.margin.bottom), child: new basic.Column.new({children: JSArrayOfWidget().of([this[_renderTitle](), this[_renderChartElements](context)]), $creationLocationd_0dea112b090073317d4: C375 || CT.C375}), $creationLocationd_0dea112b090073317d4: C378 || CT.C378}), $creationLocationd_0dea112b090073317d4: C382 || CT.C382}), $creationLocationd_0dea112b090073317d4: C386 || CT.C386});
    }
    [_renderTitle]() {
      let t0, t0$, t0$0, t0$1;
      let titleWidget = null;
      if (this.widget.title.text != null && this.widget.title.text[$isNotEmpty]) {
        let titleBackground = (t0 = ui.Paint.new(), t0.color = this.widget.title.borderColor, t0.style = ui.PaintingStyle.stroke, t0.strokeWidth = this.widget.title.borderWidth, t0);
        let titleStyle = charts._getTextStyle({textStyle: this.widget.title.textStyle, background: titleBackground, fontColor: (t0$ = this.widget.title.textStyle.color, t0$ == null ? this.widget[_chartState][_chartTheme].titleTextColor : t0$)});
        let textStyle = new text_style.TextStyle.new({color: titleStyle.color, fontSize: titleStyle.fontSize, fontFamily: titleStyle.fontFamily, fontStyle: titleStyle.fontStyle, fontWeight: titleStyle.fontWeight});
        titleWidget = new container.Container.new({child: new container.Container.new({child: new text.Text.new(this.widget.title.text, {overflow: paragraph.TextOverflow.clip, textAlign: ui.TextAlign.center, textScaleFactor: 1.2, style: textStyle, $creationLocationd_0dea112b090073317d4: C389 || CT.C389}), decoration: new box_decoration.BoxDecoration.new({color: (t0$0 = this.widget.title.backgroundColor, t0$0 == null ? this.widget[_chartState][_chartTheme].titleBackgroundColor : t0$0), border: box_border.Border.all({color: this.widget.title.borderWidth === 0 ? colors$.Colors.transparent : (t0$1 = this.widget.title.borderColor, t0$1 == null ? this.widget[_chartState][_chartTheme].titleTextColor : t0$1), width: this.widget.title.borderWidth})}), $creationLocationd_0dea112b090073317d4: C396 || CT.C396}), alignment: dart.equals(this.widget.title.alignment, charts.ChartAlignment.near) ? alignment.Alignment.topLeft : dart.equals(this.widget.title.alignment, charts.ChartAlignment.far) ? alignment.Alignment.topRight : dart.equals(this.widget.title.alignment, charts.ChartAlignment.center) ? alignment.Alignment.topCenter : alignment.Alignment.topCenter, $creationLocationd_0dea112b090073317d4: C400 || CT.C400});
      } else {
        titleWidget = new container.Container.new({$creationLocationd_0dea112b090073317d4: C404 || CT.C404});
      }
      return titleWidget;
    }
    [_renderChartElements](context) {
      if (this.widget.plotAreaBackgroundImage != null || this.widget.legend.image != null) charts._calculateImage(this.widget);
      if (this.widget[_chartState].deviceOrientation != null && !dart.equals(this.widget[_chartState].deviceOrientation, media_query.MediaQuery.of(context).orientation)) {
        this.widget[_chartState].deviceOrientation = media_query.MediaQuery.of(context).orientation;
      } else {
        this.widget[_chartState].selectedSegments = JSArrayOfChartSegment().of([]);
        this.widget[_chartState].unselectedSegments = JSArrayOfChartSegment().of([]);
        this.widget[_chartState].deviceOrientation = media_query.MediaQuery.of(context).orientation;
      }
      return new basic.Expanded.new({child: new layout_builder.LayoutBuilder.new({builder: dart.fn((context, constraints) => {
            let element = null;
            let legendTemplates = this[_bindCartesianLegendTemplateWidgets]();
            if (dart.test(legendTemplates[$isNotEmpty]) && dart.test(this.legendWidgetContext[$isEmpty])) {
              element = new container.Container.new({child: new basic.Stack.new({children: legendTemplates, $creationLocationd_0dea112b090073317d4: C405 || CT.C405}), $creationLocationd_0dea112b090073317d4: C408 || CT.C408});
              binding.SchedulerBinding.instance.addPostFrameCallback(dart.fn(_ => this[_refresh](), DurationTovoid()));
            } else {
              this[_initialize](constraints);
              this.widget[_chartLegend][_calculateLegendBounds](this.widget[_chartLegend].chartSize);
              element = charts._getElements(this.widget, new charts._ContainerArea.new({chart: this.widget, $creationLocationd_0dea112b090073317d4: C411 || CT.C411}), constraints);
            }
            return element;
          }, BuildContextAndBoxConstraintsToWidget()), $creationLocationd_0dea112b090073317d4: C414 || CT.C414}), $creationLocationd_0dea112b090073317d4: C417 || CT.C417});
    }
    [_bindCartesianLegendTemplateWidgets]() {
      let legendWidget = null;
      let templates = JSArrayOfWidget().of([]);
      if (dart.test(this.widget.legend.isVisible) && this.widget.legend.legendItemBuilder != null) {
        for (let i = 0; i < dart.notNull(this.widget.series[$length]); i = i + 1) {
          let series = charts.CartesianSeries._check(this.widget.series[$_get](i));
          if (dart.test(series.isVisibleInLegend)) {
            legendWidget = this.widget.legend.legendItemBuilder(series[_seriesName], series, null, i);
            templates[$add](new charts._MeasureWidgetSize.new({chart: this.widget, seriesIndex: i, pointIndex: null, type: "Legend", currentKey: GlobalKeyOfStateOfStatefulWidget().new(), currentWidget: legendWidget, opacityValue: 0.0, $creationLocationd_0dea112b090073317d4: C420 || CT.C420}));
          }
        }
      }
      return templates;
    }
    [_initialize](constraints) {
      this.widget[_chartLegend].chart = this.widget;
      this.widget[_chartSeries].chart = this.widget;
      this.widget[_chartAxis][_chartWidget] = this.widget;
      let width = constraints.maxWidth;
      let height = constraints.maxHeight;
      this.widget.legend.legendPosition = dart.equals(this.widget.legend.position, charts.LegendPosition.auto) ? dart.notNull(height) > dart.notNull(width) ? charts.LegendPosition.bottom : charts.LegendPosition.right : this.widget.legend.position;
      let position = this.widget.legend.legendPosition;
      let widthPadding = dart.equals(position, charts.LegendPosition.left) || dart.equals(position, charts.LegendPosition.right) ? 5.0 : 0.0;
      let heightPadding = dart.equals(position, charts.LegendPosition.top) || dart.equals(position, charts.LegendPosition.bottom) ? 5.0 : 0.0;
      this.widget[_chartLegend].chartSize = new ui.Size.new(dart.notNull(width) - widthPadding, dart.notNull(height) - heightPadding);
    }
    [_findVisibleSeries](context) {
      let t0, t3, t2, t1, t0$, t0$0, t0$1, t0$2;
      let _legendCheck = false;
      this.widget[_chartSeries].visibleSeries = JSArrayOfCartesianSeries().of([]);
      for (let i = 0; i < dart.notNull(this.widget.series[$length]); i = i + 1) {
        this.widget.series[$_get](i)[_seriesName] = (t0 = this.widget.series[$_get](i).name, t0 == null ? "Series " + dart.str(i) : t0);
        let trendlineTypes = JSArrayOfint().of([0, 0, 0, 0, 0, 0]);
        let cartesianSeries = charts.CartesianSeries._check(this.widget.series[$_get](i));
        if (cartesianSeries.trendlines != null) {
          for (let trendline of cartesianSeries.trendlines) {
            t0$ = trendline;
            t0$[_name$] == null ? t0$[_name$] = (dart.equals(trendline.type, charts.TrendlineType.movingAverage) ? "Moving average" : dart.toString(trendline.type)[$substring](14)) + (" " + dart.toString((t1 = trendlineTypes, t2 = trendline.type.index, t3 = t1[$_get](t2), t1[$_set](t2, dart.notNull(t3) + 1), t3))) : null;
          }
          for (let trendline of cartesianSeries.trendlines) {
            trendline[_name$] = trendline[_name$][$_get](0)[$toUpperCase]() + trendline[_name$][$substring](1);
            if (trendlineTypes[$_get](trendline.type.index) === 1 && trendline[_name$][$_get](trendline[_name$].length - 1) === "0") trendline[_name$] = trendline[_name$][$substring](0, trendline[_name$].length - 2);
          }
        }
        if (dart.test(this.widget[_chartState].initialRender) || dart.test(this.widget[_chartState].widgetNeedUpdate) && !dart.test(this.widget[_chartState][_legendToggling]) && dart.equals(this.widget[_chartState][_oldDeviceOrientation], media_query.MediaQuery.of(context).orientation)) {
          this.widget.series[$_get](i)[_visible] = dart.test(this.widget[_chartState].prevWidgetSeries[$isNotEmpty]) && dart.notNull(this.widget[_chartState].prevWidgetSeries[$length]) > i && dart.equals(this.widget[_chartState].prevWidgetSeries[$_get](i).isVisible, this.widget.series[$_get](i).isVisible) ? this.widget[_chartState].prevWidgetSeries[$_get](i)[_visible] : dart.test(this.widget[_chartState].initialRender) ? this.widget.series[$_get](i).isVisible : (t0$0 = this.widget.series[$_get](i)[_visible], t0$0 == null ? this.widget.series[$_get](i).isVisible : t0$0);
        } else {
          _legendCheck = true;
        }
        if (i === 0 || !dart.toString(this.widget.series[$_get](0))[$contains]("Bar") && !dart.toString(this.widget.series[$_get](i))[$contains]("Bar") || dart.toString(this.widget.series[$_get](0))[$contains]("Bar") && dart.toString(this.widget.series[$_get](i))[$contains]("Bar")) {
          this.widget[_chartSeries].visibleSeries[$add](this.widget.series[$_get](i));
          if (!dart.test(this.widget[_chartState].initialRender) && dart.test(this.widget[_chartState][_oldSeriesVisible][$isNotEmpty]) && i < dart.notNull(this.widget[_chartSeries].visibleSeries[$length])) {
            if (i < dart.notNull(this.widget[_chartSeries].visibleSeries[$length]) && i < dart.notNull(this.widget[_chartState][_oldSeriesVisible][$length])) {
              this.widget[_chartState][_oldSeriesVisible][$_set](i, this.widget[_chartSeries].visibleSeries[$_get](i)[_visible]);
            }
          }
          if (_legendCheck) {
            let index = dart.notNull(this.widget[_chartSeries].visibleSeries[$length]) - 1;
            let legendItemText = this.widget[_chartSeries].visibleSeries[$_get](index).legendItemText;
            let seriesName = this.widget[_chartSeries].visibleSeries[$_get](index).name;
            this.widget[_chartSeries].visibleSeries[$_get](dart.notNull(this.widget[_chartSeries].visibleSeries[$length]) - 1)[_visible] = this[_checkWithLegendToggleState](dart.notNull(this.widget[_chartSeries].visibleSeries[$length]) - 1, this.widget[_chartSeries].visibleSeries[$_get](dart.notNull(this.widget[_chartSeries].visibleSeries[$length]) - 1), legendItemText != null ? legendItemText : (t0$1 = seriesName, t0$1 == null ? "Series " + dart.str(index) : t0$1));
          }
          let cSeries = charts.CartesianSeries._check(charts.CartesianSeries.is(this.widget[_chartSeries].visibleSeries[$_get](dart.notNull(this.widget[_chartSeries].visibleSeries[$length]) - 1)) ? this.widget[_chartSeries].visibleSeries[$_get](dart.notNull(this.widget[_chartSeries].visibleSeries[$length]) - 1) : null);
          if (cSeries != null && cSeries.trendlines != null) {
            for (let j = 0; j < dart.notNull(cSeries.trendlines[$length]); j = j + 1) {
              let trendline = cSeries.trendlines[$_get](j);
              trendline[_visible] = dart.test(this[_checkWithTrendlineLegendToggleState](dart.notNull(this.widget[_chartSeries].visibleSeries[$length]) - 1, cSeries, j, trendline, trendline[_name$])) && dart.test(cSeries[_visible]);
            }
            this.isTrendlineToggled = false;
          }
        }
        _legendCheck = false;
      }
      if (dart.test(this.widget.indicators[$isNotEmpty])) {
        for (let i = 0; i < dart.notNull(this.widget.indicators[$length]); i = i + 1) {
          if (dart.test(this.widget[_chartState].initialRender)) {
            this.widget.indicators[$_get](i)[_visible] = this.widget.indicators[$_get](i).isVisible;
          } else {
            this.widget.indicators[$_get](i)[_visible] = this[_checkIndicatorLegendToggleState](dart.notNull(this.widget[_chartSeries].visibleSeries[$length]) + i, (t0$2 = this.widget.indicators[$_get](i)[_visible], t0$2 == null ? this.widget.indicators[$_get](i).isVisible : t0$2));
          }
        }
      }
    }
    [_checkIndicatorLegendToggleState](seriesIndex, seriesVisible) {
      let t0;
      let seriesRender = null;
      if (this.widget.legend.legendItemBuilder != null) {
        let legendToggles = this.widget[_chartState].legendToggleTemplateStates;
        if (dart.test(legendToggles[$isNotEmpty])) {
          for (let j = 0; j < dart.notNull(legendToggles[$length]); j = j + 1) {
            let item = legendToggles[$_get](j);
            if (seriesIndex == item.seriesIndex) {
              seriesRender = false;
              break;
            }
          }
        }
      } else {
        if (dart.test(this.widget[_chartState].legendToggleStates[$isNotEmpty])) {
          for (let j = 0; j < dart.notNull(this.widget[_chartState].legendToggleStates[$length]); j = j + 1) {
            let legendRenderContext = this.widget[_chartState].legendToggleStates[$_get](j);
            if (seriesIndex == legendRenderContext.seriesIndex) {
              seriesRender = false;
              break;
            }
          }
        }
      }
      t0 = seriesRender;
      return t0 == null ? true : t0;
    }
    [_checkWithTrendlineLegendToggleState](seriesIndex, series, trendlineIndex, trendline, text) {
      let t0;
      let seriesRender = null;
      if (dart.test(this.widget[_chartState].legendToggleStates[$isNotEmpty])) {
        for (let j = 0; j < dart.notNull(this.widget[_chartState].legendToggleStates[$length]); j = j + 1) {
          let legendRenderContext = this.widget[_chartState].legendToggleStates[$_get](j);
          if (legendRenderContext.text == text && legendRenderContext.seriesIndex == seriesIndex && legendRenderContext.trendlineIndex == trendlineIndex || dart.test(this.isTrendlineToggled)) {
            seriesRender = false;
            break;
          }
        }
      }
      t0 = seriesRender;
      return t0 == null ? true : t0;
    }
    [_checkWithLegendToggleState](seriesIndex, series, text) {
      let t0;
      let seriesRender = null;
      if (this.widget.legend.legendItemBuilder != null) {
        let legendToggles = this.widget[_chartState].legendToggleTemplateStates;
        if (dart.test(legendToggles[$isNotEmpty])) {
          for (let j = 0; j < dart.notNull(legendToggles[$length]); j = j + 1) {
            let item = legendToggles[$_get](j);
            if (seriesIndex == item.seriesIndex) {
              seriesRender = false;
              break;
            }
          }
        }
      } else {
        if (dart.test(this.widget[_chartState].legendToggleStates[$isNotEmpty])) {
          for (let j = 0; j < dart.notNull(this.widget[_chartState].legendToggleStates[$length]); j = j + 1) {
            let legendRenderContext = this.widget[_chartState].legendToggleStates[$_get](j);
            if (seriesIndex == legendRenderContext.seriesIndex && legendRenderContext.text == text) {
              if (charts.CartesianSeries.is(series)) {
                let cSeries = series;
                if (cSeries.trendlines != null) {
                  this.isTrendlineToggled = true;
                }
              }
              seriesRender = false;
              break;
            }
          }
        }
      }
      t0 = seriesRender;
      return t0 == null ? true : t0;
    }
  };
  (charts._SfCartesianChartState.new = function() {
    this.animationController = null;
    this.controllerList = null;
    this.zoomRepaintNotifier = null;
    this.seriesRepaintNotifier = null;
    this.trendlineRepaintNotifier = null;
    this.trackballRepaintNotifier = null;
    this.crosshairRepaintNotifier = null;
    this.indicatorRepaintNotifier = null;
    this.legendWidgetContext = null;
    this.templates = null;
    this.zoomedAxisStates = null;
    this.oldAxes = null;
    this.containerRect = null;
    this[_chartTheme] = null;
    this.zoomProgress = null;
    this.zoomAxes = null;
    this.initialRender = null;
    this.legendToggleStates = null;
    this.selectedSegments = null;
    this.unselectedSegments = null;
    this.legendToggleTemplateStates = null;
    this.renderDatalabelRegions = null;
    this.deviceOrientation = null;
    this.dataLabelTemplateRegions = null;
    this.annotationRegions = null;
    this.animateCompleted = null;
    this.widgetNeedUpdate = null;
    this.renderDataLabel = null;
    this.renderAxis = null;
    this.prevWidgetSeries = null;
    this[_isLegendToggled] = null;
    this.segments = null;
    this[_oldSeriesVisible] = null;
    this.zoomedState = null;
    this.chartElementAnimation = null;
    this[_touchStartPositions] = null;
    this[_touchMovePositions] = null;
    this[_enableDoubleTap] = null;
    this[_oldDeviceOrientation] = null;
    this[_legendToggling] = null;
    this[_backgroundImage] = null;
    this[_legendIconImage] = null;
    this.isTrendlineToggled = false;
    this.painterKeys = null;
    this.triggerLoaded = null;
    this.rangeChangeBySlider = false;
    this.isRangeSelectionSlider = false;
    this.isFullyLoaded = null;
    this.isNeedUpdate = null;
    this.trackballWithoutTouch = true;
    this.crosshairWithoutTouch = true;
    charts._SfCartesianChartState.__proto__.new.call(this);
    ;
  }).prototype = charts._SfCartesianChartState.prototype;
  dart.addTypeTests(charts._SfCartesianChartState);
  dart.setMethodSignature(charts._SfCartesianChartState, () => ({
    __proto__: dart.getMethods(charts._SfCartesianChartState.__proto__),
    [_initializeDefaultValues]: dart.fnType(dart.void, []),
    [_refresh]: dart.fnType(dart.void, []),
    [_redraw]: dart.fnType(dart.void, []),
    redrawByRangeChange: dart.fnType(dart.void, []),
    repaintChartElements: dart.fnType(dart.void, []),
    setPainterKey: dart.fnType(dart.void, [core.int, core.String, core.bool]),
    build: dart.fnType(framework.Widget, [framework.BuildContext]),
    [_renderTitle]: dart.fnType(framework.Widget, []),
    [_renderChartElements]: dart.fnType(framework.Widget, [framework.BuildContext]),
    [_bindCartesianLegendTemplateWidgets]: dart.fnType(core.List$(framework.Widget), []),
    [_initialize]: dart.fnType(dart.void, [box.BoxConstraints]),
    [_findVisibleSeries]: dart.fnType(dart.void, [framework.BuildContext]),
    [_checkIndicatorLegendToggleState]: dart.fnType(core.bool, [core.int, core.bool]),
    [_checkWithTrendlineLegendToggleState]: dart.fnType(core.bool, [core.int, charts.CartesianSeries, core.int, charts.Trendline, core.String]),
    [_checkWithLegendToggleState]: dart.fnType(core.bool, [core.int, charts.ChartSeries, core.String])
  }));
  dart.setLibraryUri(charts._SfCartesianChartState, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._SfCartesianChartState, () => ({
    __proto__: dart.getFields(charts._SfCartesianChartState.__proto__),
    animationController: dart.fieldType(animation_controller.AnimationController),
    controllerList: dart.fieldType(core.List$(animation_controller.AnimationController)),
    zoomRepaintNotifier: dart.fieldType(change_notifier.ValueNotifier$(core.int)),
    seriesRepaintNotifier: dart.fieldType(change_notifier.ValueNotifier$(core.int)),
    trendlineRepaintNotifier: dart.fieldType(change_notifier.ValueNotifier$(core.int)),
    trackballRepaintNotifier: dart.fieldType(change_notifier.ValueNotifier$(core.int)),
    crosshairRepaintNotifier: dart.fieldType(change_notifier.ValueNotifier$(core.int)),
    indicatorRepaintNotifier: dart.fieldType(change_notifier.ValueNotifier$(core.int)),
    legendWidgetContext: dart.fieldType(core.List$(charts._MeasureWidgetContext)),
    templates: dart.fieldType(core.List$(charts._ChartTemplateInfo)),
    zoomedAxisStates: dart.fieldType(core.List$(charts.ChartAxis)),
    oldAxes: dart.fieldType(core.List$(charts.ChartAxis)),
    containerRect: dart.fieldType(ui.Rect),
    [_chartTheme]: dart.fieldType(charts_theme.SfChartThemeData),
    zoomProgress: dart.fieldType(core.bool),
    zoomAxes: dart.fieldType(core.List$(charts._ZoomAxisRange)),
    initialRender: dart.fieldType(core.bool),
    legendToggleStates: dart.fieldType(core.List$(charts._LegendRenderContext)),
    selectedSegments: dart.fieldType(core.List$(charts.ChartSegment)),
    unselectedSegments: dart.fieldType(core.List$(charts.ChartSegment)),
    legendToggleTemplateStates: dart.fieldType(core.List$(charts._MeasureWidgetContext)),
    renderDatalabelRegions: dart.fieldType(core.List$(ui.Rect)),
    deviceOrientation: dart.fieldType(media_query.Orientation),
    dataLabelTemplateRegions: dart.fieldType(core.List$(ui.Rect)),
    annotationRegions: dart.fieldType(core.List$(ui.Rect)),
    animateCompleted: dart.fieldType(core.bool),
    widgetNeedUpdate: dart.fieldType(core.bool),
    renderDataLabel: dart.fieldType(charts._DataLabelRenderer),
    renderAxis: dart.fieldType(charts._CartesianAxisRenderer),
    prevWidgetSeries: dart.fieldType(core.List$(charts.ChartSeries)),
    [_isLegendToggled]: dart.fieldType(core.bool),
    segments: dart.fieldType(core.List$(charts.ChartSegment)),
    [_oldSeriesVisible]: dart.fieldType(core.List$(core.bool)),
    zoomedState: dart.fieldType(core.bool),
    chartElementAnimation: dart.fieldType(animation.Animation$(core.double)),
    [_touchStartPositions]: dart.fieldType(core.List$(events.PointerEvent)),
    [_touchMovePositions]: dart.fieldType(core.List$(events.PointerEvent)),
    [_enableDoubleTap]: dart.fieldType(core.bool),
    [_oldDeviceOrientation]: dart.fieldType(media_query.Orientation),
    [_legendToggling]: dart.fieldType(core.bool),
    [_backgroundImage]: dart.fieldType(ui.Image),
    [_legendIconImage]: dart.fieldType(ui.Image),
    isTrendlineToggled: dart.fieldType(core.bool),
    painterKeys: dart.fieldType(core.List$(charts._PainterKey)),
    triggerLoaded: dart.fieldType(core.bool),
    rangeChangeBySlider: dart.fieldType(core.bool),
    isRangeSelectionSlider: dart.fieldType(core.bool),
    isFullyLoaded: dart.fieldType(core.bool),
    isNeedUpdate: dart.fieldType(core.bool),
    trackballWithoutTouch: dart.fieldType(core.bool),
    crosshairWithoutTouch: dart.fieldType(core.bool)
  }));
  const _touchPosition = dart.privateName(charts, "_touchPosition");
  const _tapDownDetails = dart.privateName(charts, "_tapDownDetails");
  const _mousePointerDetails = dart.privateName(charts, "_mousePointerDetails");
  const _zoomStartPosition = dart.privateName(charts, "_zoomStartPosition");
  let C431;
  let C432;
  let C430;
  let C429;
  let C435;
  let C434;
  let C433;
  const _calculateBounds = dart.privateName(charts, "_calculateBounds");
  let C438;
  let C439;
  let C437;
  let C436;
  const _processData = dart.privateName(charts, "_processData");
  const _isNeedRender = dart.privateName(charts, "_isNeedRender");
  const _calculateTrendlineRegion = dart.privateName(charts, "_calculateTrendlineRegion");
  const _internalCreateSegments = dart.privateName(charts, "_internalCreateSegments");
  const _createSegment = dart.privateName(charts, "_createSegment");
  const _setChart = dart.privateName(charts, "_setChart");
  const _bindAxisWidgets = dart.privateName(charts, "_bindAxisWidgets");
  const _bindPlotBandWidgets = dart.privateName(charts, "_bindPlotBandWidgets");
  const _bindDataLabelWidgets = dart.privateName(charts, "_bindDataLabelWidgets");
  const _bindTrendlineWidget = dart.privateName(charts, "_bindTrendlineWidget");
  const _bindInteractionWidgets = dart.privateName(charts, "_bindInteractionWidgets");
  let C442;
  let C441;
  let C440;
  let C445;
  let C444;
  let C443;
  let C448;
  let C447;
  let C446;
  let C451;
  let C450;
  let C449;
  let C454;
  let C455;
  let C453;
  let C452;
  const _renderDataLabelTemplates = dart.privateName(charts, "_renderDataLabelTemplates");
  let C458;
  let C459;
  let C460;
  let C461;
  let C457;
  let C456;
  const _renderSeries = dart.privateName(charts, "_renderSeries");
  const _selectionRenderer = dart.privateName(charts, "_selectionRenderer");
  const _seriesIndex = dart.privateName(charts, "_seriesIndex");
  const _getSeriesPainter = dart.privateName(charts, "_getSeriesPainter");
  let C464;
  let C463;
  let C462;
  let C467;
  let C466;
  let C465;
  let C470;
  let C469;
  let C468;
  let C473;
  let C472;
  let C471;
  let C476;
  let C475;
  let C474;
  let C479;
  let C480;
  let C478;
  let C477;
  let C483;
  let C484;
  let C482;
  let C481;
  const _isOuterRegion = dart.privateName(charts, "_isOuterRegion");
  const _isSeriesContainsPoint = dart.privateName(charts, "_isSeriesContainsPoint");
  const _findSeries = dart.privateName(charts, "_findSeries");
  const _isPinching = dart.privateName(charts, "_isPinching");
  const _performPointerDown = dart.privateName(charts, "_performPointerDown");
  const _performPinchZooming = dart.privateName(charts, "_performPinchZooming");
  const _performPointerMove = dart.privateName(charts, "_performPointerMove");
  const _calculatePinchZoomingArgs = dart.privateName(charts, "_calculatePinchZoomingArgs");
  const _delayRedraw = dart.privateName(charts, "_delayRedraw");
  const _isLongPressActivated = dart.privateName(charts, "_isLongPressActivated");
  const _regionalData = dart.privateName(charts, "_regionalData");
  const _isInteraction = dart.privateName(charts, "_isInteraction");
  const _performPointerUp = dart.privateName(charts, "_performPointerUp");
  const _performMouseWheelZooming = dart.privateName(charts, "_performMouseWheelZooming");
  const _performPointerSignal = dart.privateName(charts, "_performPointerSignal");
  const _canPerformSelection = dart.privateName(charts, "_canPerformSelection");
  const _performLongPressMoveUpdate = dart.privateName(charts, "_performLongPressMoveUpdate");
  const _zoomingRect = dart.privateName(charts, "_zoomingRect");
  const _doSelectionZooming = dart.privateName(charts, "_doSelectionZooming");
  const _performLongPressEnd = dart.privateName(charts, "_performLongPressEnd");
  const _isPanning = dart.privateName(charts, "_isPanning");
  const _previousMovedPosition = dart.privateName(charts, "_previousMovedPosition");
  const _performPanDown = dart.privateName(charts, "_performPanDown");
  const _performLongPress = dart.privateName(charts, "_performLongPress");
  const _performDoubleTap = dart.privateName(charts, "_performDoubleTap");
  const _performPanUpdate = dart.privateName(charts, "_performPanUpdate");
  const _performPanEnd = dart.privateName(charts, "_performPanEnd");
  const _performMouseHover = dart.privateName(charts, "_performMouseHover");
  const _performMouseExit = dart.privateName(charts, "_performMouseExit");
  const _trackballPainter = dart.privateName(charts, "_trackballPainter");
  let C487;
  let C486;
  let C485;
  let C490;
  let C491;
  let C492;
  let C493;
  let C489;
  let C488;
  const _crosshairPainter = dart.privateName(charts, "_crosshairPainter");
  let C496;
  let C495;
  let C494;
  let C499;
  let C500;
  let C501;
  let C502;
  let C498;
  let C497;
  const _getMouseRegion = dart.privateName(charts, "_getMouseRegion");
  const _getListener = dart.privateName(charts, "_getListener");
  let C505;
  let C506;
  let C504;
  let C503;
  let C509;
  let C508;
  let C507;
  const _triggerAxisLabelEvent = dart.privateName(charts, "_triggerAxisLabelEvent");
  let C512;
  let C513;
  let C514;
  let C511;
  let C510;
  let C517;
  let C518;
  let C519;
  let C520;
  let C521;
  let C522;
  let C523;
  let C524;
  let C525;
  let C516;
  let C515;
  let C528;
  let C529;
  let C530;
  let C531;
  let C532;
  let C527;
  let C526;
  let C535;
  let C536;
  let C537;
  let C534;
  let C533;
  let C540;
  let C541;
  let C542;
  let C539;
  let C538;
  charts._ContainerArea = class _ContainerArea extends framework.StatelessWidget {
    build(context) {
      return new layout_builder.LayoutBuilder.new({builder: dart.fn((context, constraints) => new container.Container.new({decoration: C43 || CT.C43, child: this[_initializeChart](constraints, context), $creationLocationd_0dea112b090073317d4: C429 || CT.C429}), BuildContextAndBoxConstraintsToContainer()), $creationLocationd_0dea112b090073317d4: C433 || CT.C433});
    }
    [_initializeChart](constraints, context) {
      this[_calculateSize](constraints);
      this[_calculateBounds]();
      return new container.Container.new({decoration: C43 || CT.C43, child: this[_renderWidgets](constraints, context), $creationLocationd_0dea112b090073317d4: C436 || CT.C436});
    }
    [_calculateSize](constraints) {
      let width = constraints.maxWidth;
      let height = constraints.maxHeight;
      this.chart[_chartState].containerRect = new ui.Rect.fromLTWH(0.0, 0.0, width, height);
    }
    [_calculateBounds]() {
      let t0, t0$;
      this.chart[_chartSeries].chart = this.chart;
      this.chart[_chartAxis][_chartWidget] = this.chart;
      t0 = this.chart[_chartSeries];
      t0 == null ? null : t0[_processData]();
      t0$ = this.chart[_chartAxis];
      t0$ == null ? null : t0$[_measureAxesBounds]();
      this.chart[_chartState].rangeChangeBySlider = false;
    }
    [_calculateTrendlineRegion](chart, series) {
      if (series.trendlines != null) {
        for (let trendline of series.trendlines) {
          if (dart.test(trendline[_isNeedRender])) trendline.calculateTrendlinePoints(series, chart);
        }
      }
    }
    [_createSegment](chart, index) {
      let chartSeries = charts.CartesianSeries._check(chart[_chartSeries].visibleSeries[$_get](index));
      chartSeries[_internalCreateSegments]();
    }
    [_renderWidgets](constraints, context) {
      this[_chartWidgets] = JSArrayOfWidget().of([]);
      this.chart[_chartState].renderDatalabelRegions = JSArrayOfRect().of([]);
      this.chart.zoomPanBehavior[_setChart](this.chart);
      this[_bindAxisWidgets]("outside");
      this[_bindPlotBandWidgets](true);
      this[_bindSeriesWidgets]();
      this[_bindPlotBandWidgets](false);
      this[_bindDataLabelWidgets]();
      this[_bindTrendlineWidget]();
      this[_bindAxisWidgets]("inside");
      this[_renderTemplates]();
      this[_bindInteractionWidgets](constraints, context);
      this.renderBox = box.RenderBox._check(context.findRenderObject());
      this.chart[_containerArea] = this;
      return new container.Container.new({child: new basic.Stack.new({children: this[_chartWidgets], $creationLocationd_0dea112b090073317d4: C440 || CT.C440}), $creationLocationd_0dea112b090073317d4: C443 || CT.C443});
    }
    [_bindPlotBandWidgets](shouldRenderAboveSeries) {
      return this[_chartWidgets][$add](new basic.CustomPaint.new({painter: new charts._PlotBandPainter.new({chart: this.chart, shouldRenderAboveSeries: shouldRenderAboveSeries}), $creationLocationd_0dea112b090073317d4: C446 || CT.C446}));
    }
    [_bindTrendlineWidget]() {
      let trendlineAnimation = null;
      for (let i = 0; i < dart.notNull(this.chart[_chartSeries].visibleSeries[$length]); i = i + 1) {
        let _series = charts.CartesianSeries._check(this.chart[_chartSeries].visibleSeries[$_get](i));
        if (_series != null && dart.test(_series[_visible]) && _series.trendlines != null) {
          for (let j = 0; j < dart.notNull(_series.trendlines[$length]); j = j + 1) {
            if (dart.notNull(_series.trendlines[$_get](j).animationDuration) > 0 && this.chart[_chartState] != null && !dart.equals(this.chart[_chartState].zoomedState, true) && (dart.test(this.chart[_chartState].initialRender) || dart.test(this.chart[_chartState].widgetNeedUpdate) || dart.test(this.chart[_chartState][_isLegendToggled]))) {
              this.chart[_chartState].animationController.duration = new core.Duration.new({milliseconds: _series.trendlines[$_get](j).animationDuration[$toInt]()});
              trendlineAnimation = new (TweenOfdouble()).new({begin: 0.0, end: 1.0}).animate(new animations.CurvedAnimation.new({parent: this.chart[_chartState].animationController, curve: C124 || CT.C124}));
              this.chart[_chartState].animationController.forward({from: 0.0});
            }
          }
        }
        this[_chartWidgets][$add](new basic.CustomPaint.new({painter: new charts._TrendlinePainter.new({chart: this.chart, trendlineAnimation: trendlineAnimation, notifier: this.chart[_chartState].trendlineRepaintNotifier}), $creationLocationd_0dea112b090073317d4: C449 || CT.C449}));
      }
    }
    [_bindDataLabelWidgets]() {
      this.chart[_chartState].renderDataLabel = new charts._DataLabelRenderer.new({cartesianChart: this.chart, show: this.chart[_chartState].animateCompleted, $creationLocationd_0dea112b090073317d4: C452 || CT.C452});
      this[_chartWidgets][$add](this.chart[_chartState].renderDataLabel);
    }
    [_renderTemplates]() {
      this.chart[_chartState].annotationRegions = JSArrayOfRect().of([]);
      this.chart[_chartState].templates = JSArrayOf_ChartTemplateInfo().of([]);
      this[_renderDataLabelTemplates]();
      if (this.chart.annotations != null && dart.test(this.chart.annotations[$isNotEmpty])) {
        for (let i = 0; i < dart.notNull(this.chart.annotations[$length]); i = i + 1) {
          let annotation = this.chart.annotations[$_get](i);
          let location = charts._getAnnotationLocation(annotation, this.chart);
          let chartTemplateInfo = new charts._ChartTemplateInfo.new({key: GlobalKeyOfStateOfStatefulWidget().new(), animationDuration: 200, widget: annotation.widget, templateType: "Annotation", needMeasure: true, pointIndex: i, verticalAlignment: annotation.verticalAlignment, horizontalAlignment: annotation.horizontalAlignment, clipRect: dart.equals(annotation.region, charts.AnnotationRegion.chart) ? this.chart[_chartState].containerRect : this.chart[_chartAxis][_axisClipRect], location: new ui.Offset.new(location.x[$toDouble](), location.y[$toDouble]())});
          this.chart[_chartState].templates[$add](chartTemplateInfo);
        }
      }
      if (dart.test(this.chart[_chartState].templates[$isNotEmpty])) {
        let templateLength = this.chart[_chartState].templates[$length];
        for (let i = 0; i < dart.notNull(this.chart[_chartState].templates[$length]); i = i + 1) {
          let templateInfo = this.chart[_chartState].templates[$_get](i);
          this[_chartWidgets][$add](new charts._RenderTemplate.new({template: templateInfo, templateIndex: i, templateLength: templateLength, chart: this.chart, $creationLocationd_0dea112b090073317d4: C456 || CT.C456}));
        }
      }
    }
    [_renderDataLabelTemplates]() {
      let labelWidget = null;
      let point = null;
      this.chart[_chartState].dataLabelTemplateRegions = JSArrayOfRect().of([]);
      for (let i = 0; i < dart.notNull(this.chart[_chartSeries].visibleSeries[$length]); i = i + 1) {
        let series = charts.CartesianSeries._check(this.chart[_chartSeries].visibleSeries[$_get](i));
        if (dart.test(series.dataLabelSettings.isVisible) && dart.test(series[_visible])) {
          for (let j = 0; j < dart.notNull(series[_dataPoints$][$length]); j = j + 1) {
            point = series[_dataPoints$][$_get](j);
            if (dart.test(point.isVisible) && !dart.test(point.isGap)) {
              labelWidget = series.dataLabelSettings.builder != null ? series.dataLabelSettings.builder(series.dataSource[$_get](j), point, series, i, j) : null;
              if (labelWidget != null) {
                let location = charts._calculatePoint(core.num._check(point.xValue), core.num._check(series[_seriesType$][$contains]("range") ? point.high : point.yValue), series[_xAxis$], series[_yAxis$], this.chart[_requireInvertedAxis], series, this.chart[_chartAxis][_axisClipRect]);
                let templateInfo = new charts._ChartTemplateInfo.new({key: GlobalKeyOfStateOfStatefulWidget().new(), templateType: "DataLabel", pointIndex: j, seriesIndex: i, needMeasure: true, clipRect: this.chart[_chartAxis][_axisClipRect], animationDuration: (dart.notNull(series.animationDuration) + 1000.0)[$floor](), widget: labelWidget, location: new ui.Offset.new(location.x, location.y)});
                this.chart[_chartState].templates[$add](templateInfo);
                if (series[_seriesType$][$contains]("range")) {
                  let rangeLocation = charts._calculatePoint(core.num._check(point.xValue), core.num._check(point.low), series[_xAxis$], series[_yAxis$], this.chart[_requireInvertedAxis], series, this.chart[_chartAxis][_axisClipRect]);
                  let templateInfo2 = new charts._ChartTemplateInfo.new({key: GlobalKeyOfStateOfStatefulWidget().new(), templateType: "DataLabel", pointIndex: j, seriesIndex: i, needMeasure: true, clipRect: this.chart[_chartAxis][_axisClipRect], animationDuration: (dart.notNull(series.animationDuration) + 1000.0)[$floor](), widget: labelWidget, location: new ui.Offset.new(rangeLocation.x, rangeLocation.y)});
                  this.chart[_chartState].templates[$add](templateInfo2);
                }
              }
            }
          }
        }
      }
    }
    [_bindSeriesWidgets]() {
      let t0;
      let seriesAnimation = null;
      this.chart[_chartState].painterKeys = JSArrayOf_PainterKey().of([]);
      for (let i = 0; i < dart.notNull(this.chart[_chartSeries].visibleSeries[$length]); i = i + 1) {
        this[_series] = charts.CartesianSeries._check(this.chart[_chartSeries].visibleSeries[$_get](i));
        if (this[_series] != null && dart.test(this[_series][_visible])) {
          this[_calculateTrendlineRegion](this.chart, this[_series]);
          if (!(charts.LineSeries.is(this[_series]) || charts.FastLineSeries.is(this[_series]) || charts.ColumnSeries.is(this[_series]) || charts.BarSeries.is(this[_series]) || charts.AreaSeries.is(this[_series]) || charts.BubbleSeries.is(this[_series]) || charts.ScatterSeries.is(this[_series]))) {
            this[_series][_renderSeries](this.chart, i);
            this[_createSegment](this.chart, i);
          }
          if (this[_series].selectionSettings != null) {
            t0 = this[_series].selectionSettings;
            t0[_selectionRenderer] == null ? t0[_selectionRenderer] = new charts._SelectionRenderer.new() : null;
            this[_series].selectionSettings[_selectionRenderer].chart = this.chart;
            this[_series].selectionSettings[_selectionRenderer].series = this[_series];
            if (this[_series].selectionSettings.selectionController != null) {
              this[_series].selectionSettings.selectRange();
            }
            this[_series].selectionSettings[_selectionRenderer].selectedSegments = this.chart[_chartState].selectedSegments;
            this[_series].selectionSettings[_selectionRenderer].unselectedSegments = this.chart[_chartState].unselectedSegments;
            if (dart.equals(this.chart[_chartState].isRangeSelectionSlider, false) && dart.test(this[_series].selectionSettings.enable) && dart.test(this[_series].initialSelectedDataIndexes[$isNotEmpty])) {
              for (let j = 0; j < dart.notNull(this[_series].initialSelectedDataIndexes[$length]); j = j + 1) {
                let segment = new charts.ColumnSegment.new();
                segment.currentSegmentIndex = this[_series].initialSelectedDataIndexes[$_get](j);
                segment[_seriesIndex] = i;
                if (dart.test(this[_series].initialSelectedDataIndexes[$contains](segment.currentSegmentIndex))) this[_series].selectionSettings[_selectionRenderer].selectedSegments[$add](segment);
              }
            }
          }
          this.chart[_chartState].animateCompleted = false;
          if (this.chart[_chartState].animationController != null && dart.notNull(this[_series].animationDuration) > 0 && (this[_series][_seriesType$] === "column" || this[_series][_seriesType$] === "bar" || !dart.test(this.chart[_chartState][_isLegendToggled])) && this.chart[_chartState] != null && !dart.equals(this.chart[_chartState].zoomedState, true) && (dart.test(this.chart[_chartState].initialRender) || dart.test(this.chart[_chartState].widgetNeedUpdate))) {
            this.chart[_chartState].animationController.duration = new core.Duration.new({milliseconds: this[_series].animationDuration[$toInt]()});
            seriesAnimation = new (TweenOfdouble()).new({begin: 0.0, end: 1.0}).animate(new animations.CurvedAnimation.new({parent: this.chart[_chartState].animationController, curve: C124 || CT.C124}));
            this.chart[_chartState].chartElementAnimation = new (TweenOfdouble()).new({begin: 0.0, end: 1.0}).animate(new animations.CurvedAnimation.new({parent: this.chart[_chartState].animationController, curve: C108 || CT.C108}));
            this.chart[_chartState].animationController.addStatusListener(dart.fn(status => {
              if (dart.equals(status, animation.AnimationStatus.completed)) {
                this.chart[_chartState].animateCompleted = true;
                if (this.chart[_chartState].renderDataLabel != null) {
                  this.chart[_chartState].renderDataLabel.state.render();
                }
              }
            }, AnimationStatusToNull()));
            this.chart[_chartState].animationController.forward({from: 0.0});
          } else {
            this.chart[_chartState].animateCompleted = true;
          }
        }
        this[_chartWidgets][$add](new container.Container.new({child: new basic.RepaintBoundary.new({child: new basic.CustomPaint.new({painter: this[_getSeriesPainter](i, this.chart[_chartState].animationController, seriesAnimation, this.chart[_chartState].chartElementAnimation), $creationLocationd_0dea112b090073317d4: C462 || CT.C462}), $creationLocationd_0dea112b090073317d4: C465 || CT.C465}), $creationLocationd_0dea112b090073317d4: C468 || CT.C468}));
      }
      this[_chartWidgets][$add](new container.Container.new({color: colors$.Colors.red, child: new basic.RepaintBoundary.new({child: new basic.CustomPaint.new({painter: new charts._ZoomRectPainter.new({isRepaint: true, chart: this.chart, notifier: this.chart[_chartState].zoomRepaintNotifier}), $creationLocationd_0dea112b090073317d4: C471 || CT.C471}), $creationLocationd_0dea112b090073317d4: C474 || CT.C474}), $creationLocationd_0dea112b090073317d4: C477 || CT.C477}));
      this.chart[_chartState][_legendToggling] = false;
    }
    [_bindAxisWidgets](renderType) {
      if (this.chart[_chartAxis][_axisCollections] != null && dart.test(this.chart[_chartAxis][_axisCollections][$isNotEmpty]) && dart.notNull(this.chart[_chartAxis][_axisCollections][$length]) > 1) {
        this.chart[_chartState].renderAxis = new charts._CartesianAxisRenderer.new({chart: this.chart, renderType: renderType, $creationLocationd_0dea112b090073317d4: C481 || CT.C481});
        this[_chartWidgets][$add](this.chart[_chartState].renderAxis);
      }
    }
    [_findSeries](position) {
      let series = null;
      L0:
        for (let i = dart.notNull(this.chart[_chartSeries].visibleSeries[$length]) - 1; i >= 0; i = i - 1) {
          series = charts.CartesianSeries._check(this.chart[_chartSeries].visibleSeries[$_get](i));
          if (series[_seriesType$] === "column" || series[_seriesType$] === "bar" || series[_seriesType$] === "scatter" || series[_seriesType$] === "bubble" || series[_seriesType$] === "fastline" || series[_seriesType$][$contains]("area") || series[_seriesType$][$contains]("stackedcolumn") || series[_seriesType$][$contains]("stackedbar") || series[_seriesType$][$contains]("range")) {
            for (let j = 0; j < dart.notNull(series[_dataPoints$][$length]); j = j + 1) {
              if (series[_dataPoints$][$_get](j).region != null && dart.test(series[_dataPoints$][$_get](j).region.contains(position))) {
                series[_isOuterRegion] = false;
                break L0;
              } else {
                series[_isOuterRegion] = true;
              }
            }
          } else {
            let isSelect = false;
            series = charts.CartesianSeries._check(this.chart[_chartSeries].visibleSeries[$_get](i));
            for (let k = dart.notNull(this.chart[_chartSeries].visibleSeries[$length]) - 1; k >= 0; k = k - 1) {
              isSelect = dart.test(series.selectionSettings.enable) ? series.selectionSettings[_selectionRenderer][_isSeriesContainsPoint](this.chart[_chartSeries].visibleSeries[$_get](i), position) : false;
              if (dart.test(isSelect)) {
                return charts.CartesianSeries._check(this.chart[_chartSeries].visibleSeries[$_get](i));
              }
            }
          }
        }
      return series;
    }
    [_performPointerDown](event) {
      this.chart.tooltipBehavior[_isHovering] = false;
      this[_tapDownDetails] = event.position;
      if (dart.equals(this.chart.zoomPanBehavior.enablePinching, true)) {
        let zoomStartArgs = null;
        if (dart.notNull(this.chart[_chartState][_touchStartPositions][$length]) < 2) {
          this.chart[_chartState][_touchStartPositions][$add](event);
        }
        if (this.chart[_chartState][_touchStartPositions][$length] === 2) {
          for (let axisIndex = 0; axisIndex < dart.notNull(this.chart[_chartAxis][_axisCollections][$length]); axisIndex = axisIndex + 1) {
            let axis = this.chart[_chartAxis][_axisCollections][$_get](axisIndex);
            if (this.chart.onZoomStart != null) {
              zoomStartArgs = charts._zoomEvent(this.chart, axis, zoomStartArgs, this.chart.onZoomStart);
              dart.dput(axis, _zoomFactor, zoomStartArgs.currentZoomFactor);
              dart.dput(axis, _zoomPosition, zoomStartArgs.currentZoomPosition);
            }
            this.chart.zoomPanBehavior.onPinchStart(charts.ChartAxis._check(axis), this.chart[_chartState][_touchStartPositions][$_get](0).position.dx, this.chart[_chartState][_touchStartPositions][$_get](0).position.dy, this.chart[_chartState][_touchStartPositions][$_get](1).position.dx, this.chart[_chartState][_touchStartPositions][$_get](1).position.dy, core.double._check(dart.dload(axis, _zoomFactor)));
          }
        }
      }
      let position = this.renderBox.globalToLocal(event.position);
      this[_touchPosition] = position;
      if (this.chart[_chartSeries].visibleSeries != null && dart.test(this.chart[_chartSeries].visibleSeries[$isNotEmpty]) && dart.equals(this.chart.selectionGesture, charts.ActivationMode.singleTap) && !dart.equals(this.chart.zoomPanBehavior[_isPinching], true)) {
        let selectionSeries = this[_findSeries](position);
        if (!dart.test(selectionSeries[_isOuterRegion]) && selectionSeries.selectionSettings[_selectionRenderer] != null) {
          selectionSeries.selectionSettings[_selectionRenderer].series = selectionSeries;
          selectionSeries.selectionSettings.onTouchDown(position.dx, position.dy);
        }
      }
      if (this.chart.trackballBehavior != null && dart.test(this.chart.trackballBehavior.enable) && dart.equals(this.chart.trackballBehavior.activationMode, charts.ActivationMode.singleTap)) {
        this.chart.trackballBehavior.onTouchDown(position.dx, position.dy);
      }
      if (this.chart.crosshairBehavior != null && dart.test(this.chart.crosshairBehavior.enable) && dart.equals(this.chart.crosshairBehavior.activationMode, charts.ActivationMode.singleTap)) {
        this.chart.crosshairBehavior.onTouchDown(position.dx, position.dy);
      }
    }
    [_performPointerMove](event) {
      this.chart.tooltipBehavior[_isHovering] = false;
      let zoomingArgs = null;
      for (let index = 0; index < dart.notNull(this.chart[_chartAxis][_axisCollections][$length]); index = index + 1) {
        let axis = this.chart[_chartAxis][_axisCollections][$_get](index);
        if (this.chart.onZooming != null) {
          charts._zoomEvent(this.chart, axis, zoomingArgs, this.chart.onZooming);
        }
      }
      if (dart.equals(this.chart.zoomPanBehavior.enablePinching, true) && this.chart[_chartState][_touchStartPositions][$length] === 2) {
        this.chart.zoomPanBehavior[_isPinching] = true;
        let pointerID = event.pointer;
        let addPointer = true;
        for (let i = 0; i < dart.notNull(this.chart[_chartState][_touchMovePositions][$length]); i = i + 1) {
          if (this.chart[_chartState][_touchMovePositions][$_get](i).pointer == pointerID) {
            addPointer = false;
          }
        }
        if (dart.notNull(this.chart[_chartState][_touchMovePositions][$length]) < 2 && addPointer) {
          this.chart[_chartState][_touchMovePositions][$add](event);
        }
        if (this.chart[_chartState][_touchMovePositions][$length] === 2 && this.chart[_chartState][_touchStartPositions][$length] === 2) {
          if (this.chart[_chartState][_touchMovePositions][$_get](0).pointer == event.pointer) {
            this.chart[_chartState][_touchMovePositions][$_set](0, event);
          }
          if (this.chart[_chartState][_touchMovePositions][$_get](1).pointer == event.pointer) {
            this.chart[_chartState][_touchMovePositions][$_set](1, event);
          }
          this.chart.zoomPanBehavior[_performPinchZooming](this.chart[_chartState][_touchStartPositions], this.chart[_chartState][_touchMovePositions]);
        }
      }
    }
    [_performPointerUp](event) {
      if (this.chart[_chartState][_touchStartPositions][$length] === 2 && this.chart[_chartState][_touchMovePositions][$length] === 2 && dart.test(this.chart.zoomPanBehavior[_isPinching])) {
        this[_calculatePinchZoomingArgs]();
      }
      this.chart[_chartState][_touchStartPositions] = JSArrayOfPointerEvent().of([]);
      this.chart[_chartState][_touchMovePositions] = JSArrayOfPointerEvent().of([]);
      this.chart.zoomPanBehavior[_isPinching] = false;
      this.chart.zoomPanBehavior[_delayRedraw] = false;
      this.chart.tooltipBehavior[_isHovering] = false;
      let position = this.renderBox.globalToLocal(event.position);
      if (this.chart.trackballBehavior != null && dart.test(this.chart.trackballBehavior.enable) && !dart.test(this.chart.trackballBehavior.shouldAlwaysShow) && !dart.equals(this.chart.trackballBehavior.activationMode, charts.ActivationMode.doubleTap) && !dart.equals(this.chart.zoomPanBehavior[_isPinching], true) || this.chart.zoomPanBehavior != null && (dart.test(this.chart.zoomPanBehavior.enableDoubleTapZooming) || dart.test(this.chart.zoomPanBehavior.enablePanning) || dart.test(this.chart.zoomPanBehavior.enablePinching) || dart.test(this.chart.zoomPanBehavior.enableSelectionZooming)) && !dart.test(this.chart.trackballBehavior.shouldAlwaysShow)) {
        let touchUpArgs = null;
        this.chart.trackballBehavior.onTouchUp(position.dx, position.dy);
        this.chart.trackballBehavior[_isLongPressActivated] = false;
        if (this.chart.onChartTouchInteractionUp != null) {
          touchUpArgs = new charts.ChartTouchInteractionArgs.new();
          touchUpArgs.position = position;
          this.chart.onChartTouchInteractionUp(touchUpArgs);
        }
      }
      if (this.chart.crosshairBehavior != null && dart.test(this.chart.crosshairBehavior.enable) && !dart.test(this.chart.crosshairBehavior.shouldAlwaysShow) && !dart.equals(this.chart.crosshairBehavior.activationMode, charts.ActivationMode.doubleTap) && !dart.equals(this.chart.zoomPanBehavior[_isPinching], true) || this.chart.zoomPanBehavior != null && (dart.test(this.chart.zoomPanBehavior.enableDoubleTapZooming) || dart.test(this.chart.zoomPanBehavior.enablePanning) || dart.test(this.chart.zoomPanBehavior.enablePinching) || dart.test(this.chart.zoomPanBehavior.enableSelectionZooming)) && !dart.test(this.chart.crosshairBehavior.shouldAlwaysShow)) {
        let touchUpArgs = null;
        this.chart.crosshairBehavior.onTouchUp(position.dx, position.dy);
        this.chart.crosshairBehavior[_isLongPressActivated] = true;
        if (this.chart.onChartTouchInteractionUp != null) {
          touchUpArgs = new charts.ChartTouchInteractionArgs.new();
          touchUpArgs.position = position;
          this.chart.onChartTouchInteractionUp(touchUpArgs);
        }
      }
      if (dart.test(this.chart.tooltipBehavior.enable) && dart.equals(this.chart.tooltipBehavior.activationMode, charts.ActivationMode.singleTap)) {
        if (this.chart.tooltipBehavior.builder != null) {
          if (dart.test(this.chart[_chartAxis][_axisClipRect].contains(position))) {
            let isTooltipRegion = false;
            for (let i = 0; i < dart.notNull(this.chart[_chartSeries].visibleSeries[$length]); i = i + 1) {
              let series = charts.CartesianSeries._check(this.chart[_chartSeries].visibleSeries[$_get](i));
              let j = 0;
              let padding = dart.toString(dart.runtimeType(series))[$contains]("Bar") || dart.toString(dart.runtimeType(series))[$contains]("Column") ? 0.0 : 15.0;
              if (dart.test(series[_visible]) && dart.test(series.enableTooltip) && series[_regionalData] != null) {
                series[_regionalData][$forEach](dart.fn((regionRect, values) => {
                  let t0, t0$;
                  let region = ui.Rect._check(dart.dsend(regionRect, '_get', [0]));
                  let left = dart.notNull(region.left) - padding;
                  let right = dart.notNull(region.right) + padding;
                  let top = dart.notNull(region.top) - padding;
                  let bottom = dart.notNull(region.bottom) + padding;
                  let paddedRegion = new ui.Rect.fromLTRB(left, top, right, bottom);
                  if (dart.test(paddedRegion.contains(position))) {
                    let tooltipPosition = ui.Offset._check(dart.dsend(regionRect, '_get', [1]));
                    this.chart.tooltipBehavior[_tooltipTemplate].rect = new ui.Rect.fromLTWH(tooltipPosition.dx, dart.notNull(tooltipPosition.dy) - padding / 2, region.width, region.height);
                    this.chart.tooltipBehavior[_tooltipTemplate].template = this.chart.tooltipBehavior.builder(series.dataSource[$_get](j), dart.dsend(regionRect, '_get', [4]), series, series[_dataPoints$][$indexOf](charts.CartesianChartPoint._check(dart.dsend(regionRect, '_get', [4]))), i);
                    isTooltipRegion = true;
                    this.chart.tooltipBehavior[_tooltipTemplate].show = isTooltipRegion;
                    t0$ = (t0 = this.chart.tooltipBehavior[_tooltipTemplate], t0 == null ? null : t0.state);
                    t0$ == null ? null : t0$[_performTooltip]();
                  }
                  j = j + 1;
                }, dynamicAnddynamicToNull()));
              }
            }
          }
        } else {
          this.chart.tooltipBehavior[_isInteraction] = true;
          this.chart.tooltipBehavior.onTouchUp(position.dx, position.dy);
        }
      }
    }
    [_performPointerSignal](event) {
      this[_mousePointerDetails] = event.position;
      if (this[_mousePointerDetails] != null) {
        let position = this.renderBox.globalToLocal(event.position);
        if (dart.test(this.chart.zoomPanBehavior.enableMouseWheelZooming) && dart.test(this.chart[_chartAxis][_axisClipRect].contains(position))) {
          this.chart.zoomPanBehavior[_performMouseWheelZooming](event, position.dx, position.dy);
        }
      }
    }
    [_calculatePinchZoomingArgs]() {
      let zoomEndArgs = null;
      let zoomResetArgs = null;
      let resetFlag = false;
      let axisIndex = null;
      for (let t0 = axisIndex = 0; dart.notNull(axisIndex) < dart.notNull(this.chart[_chartAxis][_axisCollections][$length]); axisIndex = dart.notNull(axisIndex) + 1) {
        let axis = this.chart[_chartAxis][_axisCollections][$_get](axisIndex);
        if (this.chart.onZoomEnd != null) {
          zoomEndArgs = charts._zoomEvent(this.chart, axis, zoomEndArgs, this.chart.onZoomEnd);
          axis[_zoomFactor] = zoomEndArgs.currentZoomFactor;
          axis[_zoomPosition] = zoomEndArgs.currentZoomPosition;
        }
        if (axis[_zoomFactor][$toInt]() === 1 && axis[_zoomPosition][$toInt]() === 0 && this.chart.onZoomReset != null) {
          resetFlag = true;
        }
        this.chart[_chartState].zoomAxes = JSArrayOf_ZoomAxisRange().of([]);
        this.chart.zoomPanBehavior.onPinchEnd(axis, this.chart[_chartState][_touchMovePositions][$_get](0).position.dx, this.chart[_chartState][_touchMovePositions][$_get](0).position.dy, this.chart[_chartState][_touchMovePositions][$_get](1).position.dx, this.chart[_chartState][_touchMovePositions][$_get](1).position.dy, axis[_zoomFactor]);
      }
      if (resetFlag) {
        for (let index = 0; index < dart.notNull(this.chart[_chartAxis][_axisCollections][$length]); index = index + 1) {
          let axis = this.chart[_chartAxis][_axisCollections][$_get](index);
          charts._zoomEvent(this.chart, axis, zoomResetArgs, this.chart.onZoomReset);
        }
      }
    }
    [_performLongPressMoveUpdate](details) {
      let position = this.renderBox.globalToLocal(details.globalPosition);
      if (!dart.equals(this.chart.zoomPanBehavior[_isPinching], true)) {
        if (dart.test(this.chart.zoomPanBehavior.enableSelectionZooming) && position != null && this[_zoomStartPosition] != null) {
          this.chart.zoomPanBehavior[_canPerformSelection] = true;
          this.chart.zoomPanBehavior.onDrawSelectionZoomRect(position.dx, position.dy, this[_zoomStartPosition].dx, this[_zoomStartPosition].dy);
        }
      }
      if (this.chart.trackballBehavior != null && dart.test(this.chart.trackballBehavior.enable) && this.chart[_chartState] != null && !dart.equals(this.chart.trackballBehavior.activationMode, charts.ActivationMode.doubleTap) && position != null) {
        if (dart.equals(this.chart.trackballBehavior.activationMode, charts.ActivationMode.singleTap)) {
          this.chart.trackballBehavior.onTouchMove(position.dx, position.dy);
        } else if (dart.equals(this.chart.trackballBehavior.activationMode, charts.ActivationMode.longPress) && dart.test(this.chart.trackballBehavior[_isLongPressActivated])) {
          this.chart.trackballBehavior.onTouchMove(position.dx, position.dy);
        }
      }
      if (this.chart.crosshairBehavior != null && dart.test(this.chart.crosshairBehavior.enable) && !dart.equals(this.chart.crosshairBehavior.activationMode, charts.ActivationMode.doubleTap) && position != null) {
        if (dart.equals(this.chart.crosshairBehavior.activationMode, charts.ActivationMode.singleTap)) {
          this.chart.crosshairBehavior.onTouchMove(position.dx, position.dy);
        } else if (this.chart.crosshairBehavior != null && dart.equals(this.chart.crosshairBehavior.activationMode, charts.ActivationMode.longPress) && dart.test(this.chart.crosshairBehavior[_isLongPressActivated]) && !dart.test(this.chart.zoomPanBehavior.enableSelectionZooming)) {
          this.chart.crosshairBehavior.onTouchMove(position.dx, position.dy);
        }
      }
    }
    [_performLongPressEnd]() {
      if (!dart.equals(this.chart.zoomPanBehavior[_isPinching], true)) {
        this.chart.zoomPanBehavior[_canPerformSelection] = false;
        if (dart.test(this.chart.zoomPanBehavior.enableSelectionZooming) && this.chart.zoomPanBehavior[_zoomingRect].width !== 0) {
          this.chart.zoomPanBehavior[_doSelectionZooming](this.chart.zoomPanBehavior[_zoomingRect]);
          if (!dart.equals(this.chart.zoomPanBehavior[_canPerformSelection], true)) {
            this.chart.zoomPanBehavior[_zoomingRect] = C348 || CT.C348;
          }
        }
      }
    }
    [_performPanDown](details) {
      if (!dart.equals(this.chart.zoomPanBehavior[_isPinching], true)) {
        this[_zoomStartPosition] = this.renderBox.globalToLocal(details.globalPosition);
        if (dart.equals(this.chart.zoomPanBehavior.enablePanning, true)) {
          this.chart.zoomPanBehavior[_isPanning] = true;
          this.chart.zoomPanBehavior[_previousMovedPosition] = null;
        }
      }
    }
    [_performLongPress]() {
      let position = null;
      if (this[_tapDownDetails] != null) {
        position = this.renderBox.globalToLocal(this[_tapDownDetails]);
        if (dart.test(this.chart.tooltipBehavior.enable) && dart.equals(this.chart.tooltipBehavior.activationMode, charts.ActivationMode.longPress)) {
          this.chart.tooltipBehavior[_isInteraction] = true;
          this.chart.tooltipBehavior.onLongPress(position.dx, position.dy);
        }
      }
      if (this.chart[_chartSeries].visibleSeries != null && dart.equals(this.chart.selectionGesture, charts.ActivationMode.longPress)) {
        let selectionSeries = this[_findSeries](position);
        selectionSeries.selectionSettings[_selectionRenderer].series = selectionSeries;
        selectionSeries.selectionSettings.onLongPress(position.dx, position.dy);
      }
      if (this.chart.trackballBehavior != null && dart.equals(this.chart.trackballBehavior.enable, true) && dart.equals(this.chart.trackballBehavior.activationMode, charts.ActivationMode.longPress) && !dart.equals(this.chart.zoomPanBehavior[_isPinching], true)) {
        this.chart.trackballBehavior[_isLongPressActivated] = true;
        this.chart.trackballBehavior.onTouchDown(position.dx, position.dy);
      }
      if (this.chart.crosshairBehavior != null && dart.equals(this.chart.crosshairBehavior.enable, true) && dart.equals(this.chart.crosshairBehavior.activationMode, charts.ActivationMode.longPress) && !dart.test(this.chart.zoomPanBehavior.enableSelectionZooming) && !dart.equals(this.chart.zoomPanBehavior[_isPinching], true) && position != null) {
        this.chart.crosshairBehavior[_isLongPressActivated] = true;
        this.chart.crosshairBehavior.onTouchDown(position.dx, position.dy);
      }
    }
    [_performDoubleTap]() {
      if (this[_tapDownDetails] != null) {
        let position = this.renderBox.globalToLocal(this[_tapDownDetails]);
        if (this.chart.trackballBehavior != null && dart.test(this.chart.trackballBehavior.enable) && dart.equals(this.chart.trackballBehavior.activationMode, charts.ActivationMode.doubleTap)) {
          this.chart.trackballBehavior.onDoubleTap(position.dx, position.dy);
          this.chart[_chartState][_enableDoubleTap] = true;
          this.chart.trackballBehavior.onTouchUp(position.dx, position.dy);
          this.chart[_chartState][_enableDoubleTap] = false;
        }
        if (this.chart.crosshairBehavior != null && dart.test(this.chart.crosshairBehavior.enable) && dart.equals(this.chart.crosshairBehavior.activationMode, charts.ActivationMode.doubleTap)) {
          this.chart.crosshairBehavior.onDoubleTap(position.dx, position.dy);
          this.chart[_chartState][_enableDoubleTap] = true;
          this.chart.crosshairBehavior.onTouchUp(position.dx, position.dy);
          this.chart[_chartState][_enableDoubleTap] = false;
        }
        if (dart.test(this.chart.tooltipBehavior.enable) && dart.equals(this.chart.tooltipBehavior.activationMode, charts.ActivationMode.doubleTap)) {
          this.chart.tooltipBehavior[_isInteraction] = true;
          this.chart.tooltipBehavior.onDoubleTap(position.dx, position.dy);
        }
        if (this.chart[_chartSeries].visibleSeries != null && dart.equals(this.chart.selectionGesture, charts.ActivationMode.doubleTap)) {
          let selectionSeries = this[_findSeries](position);
          selectionSeries.selectionSettings[_selectionRenderer].series = selectionSeries;
          selectionSeries.selectionSettings.onDoubleTap(position.dx, position.dy);
        }
      }
      if (dart.equals(this.chart.zoomPanBehavior.enableDoubleTapZooming, true)) {
        let doubleTapPosition = this[_touchPosition];
        let position = doubleTapPosition;
        if (position != null) this.chart.zoomPanBehavior.onDoubleTap(position.dx, position.dy, this.chart.zoomPanBehavior[_zoomFactor]);
      }
    }
    [_performPanUpdate](details) {
      let position = null;
      if (!dart.equals(this.chart.zoomPanBehavior[_isPinching], true)) {
        position = this.renderBox.globalToLocal(details.globalPosition);
        if (dart.equals(this.chart.zoomPanBehavior[_isPanning], true) && dart.test(this.chart.zoomPanBehavior.enablePanning) && this.chart.zoomPanBehavior[_previousMovedPosition] != null) {
          this.chart.zoomPanBehavior.onPan(position.dx, position.dy);
        }
        this.chart.zoomPanBehavior[_previousMovedPosition] = position;
      }
      if (this.chart.trackballBehavior != null && dart.test(this.chart.trackballBehavior.enable) && position != null && !dart.equals(this.chart.trackballBehavior.activationMode, charts.ActivationMode.doubleTap)) {
        if (dart.equals(this.chart.trackballBehavior.activationMode, charts.ActivationMode.singleTap)) {
          this.chart.trackballBehavior.onTouchMove(position.dx, position.dy);
        } else if (this.chart.trackballBehavior != null && dart.equals(this.chart.trackballBehavior.activationMode, charts.ActivationMode.longPress) && dart.equals(this.chart.trackballBehavior[_isLongPressActivated], true)) {
          this.chart.trackballBehavior.onTouchMove(position.dx, position.dy);
        }
      }
      if (this.chart.crosshairBehavior != null && dart.test(this.chart.crosshairBehavior.enable) && !dart.equals(this.chart.crosshairBehavior.activationMode, charts.ActivationMode.doubleTap) && position != null) {
        if (dart.equals(this.chart.crosshairBehavior.activationMode, charts.ActivationMode.singleTap)) {
          this.chart.crosshairBehavior.onTouchMove(position.dx, position.dy);
        } else if (this.chart.crosshairBehavior != null && dart.equals(this.chart.crosshairBehavior.activationMode, charts.ActivationMode.longPress) && dart.test(this.chart.crosshairBehavior[_isLongPressActivated])) {
          this.chart.crosshairBehavior.onTouchMove(position.dx, position.dy);
        }
      }
    }
    [_performPanEnd](details) {
      let t1, t1$;
      if (!dart.equals(this.chart.zoomPanBehavior[_isPinching], true)) {
        this.chart.zoomPanBehavior[_isPanning] = false;
        this.chart.zoomPanBehavior[_previousMovedPosition] = null;
      }
      if (dart.test(this.chart.trackballBehavior.enable) && !dart.test(this.chart.trackballBehavior.shouldAlwaysShow) && !dart.equals(this.chart.trackballBehavior.activationMode, charts.ActivationMode.doubleTap) && this[_touchPosition] != null) {
        this.chart.trackballBehavior.onTouchUp(this[_touchPosition].dx, this[_touchPosition].dy);
        this.chart.trackballBehavior[_isLongPressActivated] = false;
      }
      if (dart.test(this.chart.crosshairBehavior.enable) && !dart.test(this.chart.crosshairBehavior.shouldAlwaysShow) && !dart.equals(this.chart.crosshairBehavior.activationMode, charts.ActivationMode.doubleTap)) {
        this.chart.crosshairBehavior.onTouchUp((t1 = this[_touchPosition], t1 == null ? null : t1.dx), (t1$ = this[_touchPosition], t1$ == null ? null : t1$.dy));
      }
    }
    [_performMouseHover](event) {
      this.chart.tooltipBehavior[_isHovering] = true;
      let position = this.renderBox.globalToLocal(event.position);
      if (dart.test(this.chart.tooltipBehavior.enable)) {
        if (this.chart.tooltipBehavior.builder != null) {
          if (dart.test(this.chart[_chartAxis][_axisClipRect].contains(position))) {
            let isTooltipRegion = false;
            for (let i = 0; i < dart.notNull(this.chart[_chartSeries].visibleSeries[$length]); i = i + 1) {
              let series = charts.CartesianSeries._check(this.chart[_chartSeries].visibleSeries[$_get](i));
              let j = 0;
              let padding = dart.toString(dart.runtimeType(series))[$contains]("Bar") || dart.toString(dart.runtimeType(series))[$contains]("Column") ? 0.0 : 15.0;
              if (dart.test(series[_visible]) && dart.test(series.enableTooltip) && series[_regionalData] != null) {
                series[_regionalData][$forEach](dart.fn((regionRect, values) => {
                  let t1, t1$;
                  let region = ui.Rect._check(dart.dsend(regionRect, '_get', [0]));
                  let left = dart.notNull(region.left) - padding;
                  let right = dart.notNull(region.right) + padding;
                  let top = dart.notNull(region.top) - padding;
                  let bottom = dart.notNull(region.bottom) + padding;
                  let paddedRegion = new ui.Rect.fromLTRB(left, top, right, bottom);
                  if (dart.test(paddedRegion.contains(position))) {
                    let tooltipPosition = ui.Offset._check(dart.dsend(regionRect, '_get', [1]));
                    this.chart.tooltipBehavior[_tooltipTemplate].rect = new ui.Rect.fromLTWH(tooltipPosition.dx, dart.notNull(tooltipPosition.dy) - padding / 2, region.width, region.height);
                    this.chart.tooltipBehavior[_tooltipTemplate].template = this.chart.tooltipBehavior.builder(series.dataSource[$_get](j), dart.dsend(regionRect, '_get', [4]), series, series[_dataPoints$][$indexOf](charts.CartesianChartPoint._check(dart.dsend(regionRect, '_get', [4]))), i);
                    isTooltipRegion = true;
                    this.chart.tooltipBehavior[_tooltipTemplate].show = isTooltipRegion;
                    t1$ = (t1 = this.chart.tooltipBehavior[_tooltipTemplate], t1 == null ? null : t1.state);
                    t1$ == null ? null : t1$[_performTooltip]();
                  }
                  j = j + 1;
                }, dynamicAnddynamicToNull()));
              }
            }
          }
        } else {
          this.chart.tooltipBehavior[_isInteraction] = true;
          this.chart.tooltipBehavior.onEnter(position.dx, position.dy);
        }
      }
      if (dart.test(this.chart.trackballBehavior.enable)) {
        this.chart.trackballBehavior.onEnter(position.dx, position.dy);
      }
      if (dart.test(this.chart.crosshairBehavior.enable)) {
        this.chart.crosshairBehavior.onEnter(position.dx, position.dy);
      }
    }
    [_performMouseExit](event) {
      this.chart.tooltipBehavior[_isHovering] = false;
      let position = this.renderBox.globalToLocal(event.position);
      if (dart.test(this.chart.tooltipBehavior.enable)) {
        this.chart.tooltipBehavior.onExit(position.dx, position.dy);
      }
      if (dart.test(this.chart.crosshairBehavior.enable)) {
        this.chart.crosshairBehavior.onExit(position.dx, position.dy);
      }
      if (dart.test(this.chart.trackballBehavior.enable)) {
        this.chart.trackballBehavior.onExit(position.dx, position.dy);
      }
    }
    [_bindInteractionWidgets](constraints, context) {
      let renderBox = box.RenderBox._check(context.findRenderObject());
      let trackballPainter = null;
      let crosshairPainter = null;
      let zoomRectPainter = new charts._ZoomRectPainter.new({chart: this.chart});
      this.chart.zoomPanBehavior[_painter] = zoomRectPainter;
      if (this.chart.trackballBehavior != null && dart.test(this.chart.trackballBehavior.enable)) {
        trackballPainter = new charts._TrackballPainter.new({chart: this.chart, valueNotifier: this.chart[_chartState].trackballRepaintNotifier});
        this.chart.trackballBehavior[_trackballPainter] = trackballPainter;
        this[_chartWidgets][$add](new container.Container.new({height: constraints.maxHeight, width: constraints.maxWidth, decoration: C43 || CT.C43, child: new basic.CustomPaint.new({painter: trackballPainter, $creationLocationd_0dea112b090073317d4: C485 || CT.C485}), $creationLocationd_0dea112b090073317d4: C488 || CT.C488}));
      }
      if (this.chart.crosshairBehavior != null && dart.test(this.chart.crosshairBehavior.enable)) {
        crosshairPainter = new charts._CrosshairPainter.new({chart: this.chart, valueNotifier: this.chart[_chartState].crosshairRepaintNotifier});
        this.chart.crosshairBehavior[_crosshairPainter] = crosshairPainter;
        this[_chartWidgets][$add](new container.Container.new({height: constraints.maxHeight, width: constraints.maxWidth, decoration: C43 || CT.C43, child: new basic.CustomPaint.new({painter: crosshairPainter, $creationLocationd_0dea112b090073317d4: C494 || CT.C494}), $creationLocationd_0dea112b090073317d4: C497 || CT.C497}));
      }
      this[_chartWidgets][$add](this[_getMouseRegion](renderBox, constraints));
      this[_chartWidgets][$add](this[_getListener](renderBox, constraints));
      if (dart.test(this.chart.tooltipBehavior.enable)) {
        if (this.chart.tooltipBehavior.builder != null) {
          this.chart.tooltipBehavior[_tooltipTemplate] = new charts._TooltipTemplate.new({show: false, clipRect: this.chart[_chartAxis][_axisClipRect], $creationLocationd_0dea112b090073317d4: C503 || CT.C503});
          this[_chartWidgets][$add](this.chart.tooltipBehavior[_tooltipTemplate]);
        } else {
          this.chart.tooltipBehavior.chartTooltip = new charts._ChartTooltipRenderer.new({chartWidget: this.chart, $creationLocationd_0dea112b090073317d4: C507 || CT.C507});
          this[_chartWidgets][$add](this.chart.tooltipBehavior.chartTooltip);
        }
      }
    }
    [_getListener](renderBox, constraints) {
      return new basic.Listener.new({onPointerDown: dart.fn(event => {
          this[_performPointerDown](event);
        }, PointerDownEventToNull()), onPointerMove: dart.fn(event => {
          this[_performPointerMove](event);
        }, PointerMoveEventToNull()), onPointerUp: dart.fn(event => {
          this[_performPointerUp](event);
          let touchArgs = null;
          if (this.chart.onChartTouchInteractionUp != null) {
            touchArgs = new charts.ChartTouchInteractionArgs.new();
            touchArgs.position = renderBox.globalToLocal(event.position);
            this.chart.onChartTouchInteractionUp(touchArgs);
          }
        }, PointerUpEventToNull()), onPointerSignal: dart.fn(event => {
          if (events.PointerScrollEvent.is(event)) {
            this[_performPointerSignal](event);
          }
        }, PointerSignalEventToNull()), child: new gesture_detector.GestureDetector.new({onTapDown: dart.fn(details => {
            let position = renderBox.globalToLocal(details.globalPosition);
            this[_touchPosition] = position;
            if (this.chart.onPointTapped != null) {
              this[_calculatePointSeriesIndex](this.chart, position);
            }
            if (this.chart.onAxisLabelTapped != null) {
              this[_triggerAxisLabelEvent](position);
            }
          }, TapDownDetailsToNull()), onDoubleTap: dart.fn(() => {
            this[_performDoubleTap]();
          }, VoidToNull()), onLongPressMoveUpdate: dart.fn(details => {
            this[_performLongPressMoveUpdate](details);
          }, LongPressMoveUpdateDetailsToNull()), onLongPress: dart.fn(() => {
            this[_performLongPress]();
          }, VoidToNull()), onLongPressEnd: dart.fn(details => {
            this[_performLongPressEnd]();
          }, LongPressEndDetailsToNull()), onPanUpdate: dart.fn(details => {
            this[_performPanUpdate](details);
          }, DragUpdateDetailsToNull()), onPanEnd: dart.fn(details => {
            this[_performPanEnd](details);
          }, DragEndDetailsToNull()), onPanDown: dart.fn(details => {
            this[_performPanDown](details);
          }, DragDownDetailsToNull()), child: new container.Container.new({height: constraints.maxHeight, width: constraints.maxWidth, decoration: C43 || CT.C43, $creationLocationd_0dea112b090073317d4: C510 || CT.C510}), $creationLocationd_0dea112b090073317d4: C515 || CT.C515}), $creationLocationd_0dea112b090073317d4: C526 || CT.C526});
    }
    [_getMouseRegion](renderBox, constraints) {
      return new basic.MouseRegion.new({child: new container.Container.new({height: constraints.maxHeight, width: constraints.maxWidth, decoration: C43 || CT.C43, $creationLocationd_0dea112b090073317d4: C533 || CT.C533}), onHover: dart.fn(event => this[_performMouseHover](event), PointerEventTovoid()), onExit: dart.fn(event => this[_performMouseExit](event), PointerEventTovoid()), $creationLocationd_0dea112b090073317d4: C538 || CT.C538});
    }
    [_calculatePointSeriesIndex](chart, position) {
      for (let i = 0; i < dart.notNull(chart[_chartSeries].visibleSeries[$length]); i = i + 1) {
        let series = charts.CartesianSeries._check(chart[_chartSeries].visibleSeries[$_get](i));
        let pointIndex = null;
        let count = 0;
        let padding = series[_seriesType$] === "bubble" || series[_seriesType$] === "scatter" || series[_seriesType$] === "bar" || series[_seriesType$] === "column" || series[_seriesType$] === "rangecolumn" || series[_seriesType$][$contains]("stackedcolumn") || series[_seriesType$][$contains]("stackedbar") ? 0.0 : 15.0;
        series[_regionalData][$forEach](dart.fn((regionRect, values) => {
          let region = ui.Rect._check(dart.dsend(regionRect, '_get', [0]));
          let left = dart.notNull(region.left) - padding;
          let right = dart.notNull(region.right) + padding;
          let top = dart.notNull(region.top) - padding;
          let bottom = dart.notNull(region.bottom) + padding;
          let paddedRegion = new ui.Rect.fromLTRB(left, top, right, bottom);
          if (dart.test(paddedRegion.contains(position))) {
            pointIndex = count;
          }
          count = count + 1;
        }, dynamicAnddynamicToNull()));
        if (pointIndex != null) {
          let pointTapArgs = null;
          pointTapArgs = new charts.PointTapArgs.new();
          pointTapArgs.pointIndex = dart.asInt(pointIndex);
          pointTapArgs.seriesIndex = i;
          pointTapArgs.dataPoints = series[_dataPoints$];
          chart.onPointTapped(pointTapArgs);
        }
      }
    }
    [_triggerAxisLabelEvent](position) {
      for (let i = 0; i < dart.notNull(this.chart[_chartAxis][_axisCollections][$length]); i = i + 1) {
        let labels = this.chart[_chartAxis][_axisCollections][$_get](i)[_visibleLabels];
        for (let k = 0; k < dart.notNull(labels[$length]); k = k + 1) {
          if (dart.test(this.chart[_chartAxis][_axisCollections][$_get](i).isVisible) && dart.test(labels[$_get](k)[_labelRegion].contains(position))) {
            let labelArgs = null;
            labelArgs = new charts.AxisLabelTapArgs.new();
            labelArgs.text = labels[$_get](k).text;
            labelArgs.axis = this.chart[_chartAxis][_axisCollections][$_get](i);
            labelArgs.axisName = this.chart[_chartAxis][_axisCollections][$_get](i)[_name$];
            labelArgs.value = labels[$_get](k).value;
            this.chart.onAxisLabelTapped(labelArgs);
          }
        }
      }
    }
    [_getSeriesPainter](value, controller, seriesAnimation, chartElementAnimation) {
      let customPainter = null;
      let series = charts.CartesianSeries._check(this.chart[_chartSeries].visibleSeries[$_get](value));
      let painterKey = new charts._PainterKey.new({index: value, name: "series " + dart.str(value), isRenderCompleted: false});
      this.chart[_chartState].painterKeys[$add](painterKey);
      switch (series[_seriesType$]) {
        case "line":
        {
          customPainter = new charts._LineChartPainter.new({chart: this.chart, series: charts.LineSeries._check(series), isRepaint: this.chart[_chartState].zoomedState != null ? this.chart[_chartState].zoomedState : dart.test(this.chart[_chartState][_legendToggling]) ? true : series[_needsRepaint], painterKey: painterKey, animationController: controller, seriesAnimation: seriesAnimation, chartElementAnimation: chartElementAnimation, notifier: this.chart[_chartState].seriesRepaintNotifier});
          break;
        }
        case "spline":
        {
          customPainter = new charts._SplineChartPainter.new({chart: this.chart, series: charts.XyDataSeries._check(series), isRepaint: this.chart[_chartState].zoomedState != null ? this.chart[_chartState].zoomedState : dart.test(this.chart[_chartState][_legendToggling]) ? true : series[_needsRepaint], animationController: controller, seriesAnimation: seriesAnimation, chartElementAnimation: chartElementAnimation, notifier: this.chart[_chartState].seriesRepaintNotifier});
          break;
        }
        case "column":
        {
          customPainter = new charts._ColumnChartPainter.new({chart: this.chart, series: charts.ColumnSeries._check(series), isRepaint: this.chart[_chartState].zoomedState != null ? this.chart[_chartState].zoomedState : true, painterKey: painterKey, animationController: controller, seriesAnimation: seriesAnimation, chartElementAnimation: chartElementAnimation, notifier: this.chart[_chartState].seriesRepaintNotifier});
          break;
        }
        case "scatter":
        {
          customPainter = new charts._ScatterChartPainter.new({chart: this.chart, series: charts.ScatterSeries._check(series), isRepaint: this.chart[_chartState].zoomedState != null ? this.chart[_chartState].zoomedState : dart.test(this.chart[_chartState][_legendToggling]) ? true : series[_needsRepaint], painterKey: painterKey, animationController: controller, seriesAnimation: seriesAnimation, chartElementAnimation: chartElementAnimation, notifier: this.chart[_chartState].seriesRepaintNotifier});
          break;
        }
        case "stepline":
        {
          customPainter = new charts._StepLineChartPainter.new({chart: this.chart, series: charts.XyDataSeries._check(series), isRepaint: this.chart[_chartState].zoomedState != null ? this.chart[_chartState].zoomedState : dart.test(this.chart[_chartState][_legendToggling]) ? true : series[_needsRepaint], animationController: controller, seriesAnimation: seriesAnimation, chartElementAnimation: chartElementAnimation, notifier: this.chart[_chartState].seriesRepaintNotifier});
          break;
        }
        case "area":
        {
          customPainter = new charts._AreaChartPainter.new({chart: this.chart, series: charts.AreaSeries._check(series), isRepaint: this.chart[_chartState].zoomedState != null ? this.chart[_chartState].zoomedState : dart.test(this.chart[_chartState][_legendToggling]) ? true : series[_needsRepaint], painterKey: painterKey, animationController: controller, seriesAnimation: seriesAnimation, chartElementAnimation: chartElementAnimation, notifier: this.chart[_chartState].seriesRepaintNotifier});
          break;
        }
        case "bubble":
        {
          customPainter = new charts._BubbleChartPainter.new({chart: this.chart, series: charts.BubbleSeries._check(series), isRepaint: this.chart[_chartState].zoomedState != null ? this.chart[_chartState].zoomedState : dart.test(this.chart[_chartState][_legendToggling]) ? true : series[_needsRepaint], painterKey: painterKey, animationController: controller, seriesAnimation: seriesAnimation, chartElementAnimation: chartElementAnimation, notifier: this.chart[_chartState].seriesRepaintNotifier});
          break;
        }
        case "bar":
        {
          customPainter = new charts._BarChartPainter.new({chart: this.chart, series: charts.BarSeries._check(series), isRepaint: this.chart[_chartState].zoomedState != null ? this.chart[_chartState].zoomedState : true, painterKey: painterKey, animationController: controller, seriesAnimation: seriesAnimation, chartElementAnimation: chartElementAnimation, notifier: this.chart[_chartState].seriesRepaintNotifier});
          break;
        }
        case "fastline":
        {
          customPainter = new charts._FastLineChartPainter.new({chart: this.chart, series: charts.FastLineSeries._check(series), isRepaint: this.chart[_chartState].zoomedState != null ? this.chart[_chartState].zoomedState : dart.test(this.chart[_chartState][_legendToggling]) ? true : series[_needsRepaint], painterKey: painterKey, animationController: controller, seriesAnimation: seriesAnimation, chartElementAnimation: chartElementAnimation, notifier: this.chart[_chartState].seriesRepaintNotifier});
          break;
        }
        case "rangecolumn":
        {
          customPainter = new charts._RangeColumnChartPainter.new({chart: this.chart, series: charts.XyDataSeries._check(series), isRepaint: this.chart[_chartState].zoomedState != null ? this.chart[_chartState].zoomedState : dart.test(this.chart[_chartState][_legendToggling]) ? true : series[_needsRepaint], animationController: controller, seriesAnimation: seriesAnimation, chartElementAnimation: chartElementAnimation, notifier: this.chart[_chartState].seriesRepaintNotifier});
          break;
        }
        case "rangearea":
        {
          customPainter = new charts._RangeAreaChartPainter.new({chart: this.chart, series: charts.XyDataSeries._check(series), isRepaint: this.chart[_chartState].zoomedState != null ? this.chart[_chartState].zoomedState : dart.test(this.chart[_chartState][_legendToggling]) ? true : series[_needsRepaint], animationController: controller, seriesAnimation: seriesAnimation, chartElementAnimation: chartElementAnimation, notifier: this.chart[_chartState].seriesRepaintNotifier});
          break;
        }
        case "steparea":
        {
          customPainter = new charts._StepAreaChartPainter.new({chart: this.chart, series: charts.XyDataSeries._check(series), isRepaint: this.chart[_chartState].zoomedState != null ? this.chart[_chartState].zoomedState : dart.test(this.chart[_chartState][_legendToggling]) ? true : series[_needsRepaint], animationController: controller, seriesAnimation: seriesAnimation, chartElementAnimation: chartElementAnimation, notifier: this.chart[_chartState].seriesRepaintNotifier});
          break;
        }
        case "splinearea":
        {
          customPainter = new charts._SplineAreaChartPainter.new({chart: this.chart, series: charts.XyDataSeries._check(series), isRepaint: this.chart[_chartState].zoomedState != null ? this.chart[_chartState].zoomedState : dart.test(this.chart[_chartState][_legendToggling]) ? true : series[_needsRepaint], animationController: controller, seriesAnimation: seriesAnimation, chartElementAnimation: chartElementAnimation, notifier: this.chart[_chartState].seriesRepaintNotifier});
          break;
        }
        case "stackedarea":
        {
          customPainter = new charts._StackedAreaChartPainter.new({chart: this.chart, series: charts.XyDataSeries._check(series), isRepaint: this.chart[_chartState].zoomedState != null ? this.chart[_chartState].zoomedState : dart.test(this.chart[_chartState][_legendToggling]) ? true : series[_needsRepaint], animationController: controller, seriesAnimation: seriesAnimation, chartElementAnimation: chartElementAnimation, notifier: this.chart[_chartState].seriesRepaintNotifier});
          break;
        }
        case "stackedbar":
        {
          customPainter = new charts._StackedBarChartPainter.new({chart: this.chart, series: charts.StackedBarSeries._check(series), isRepaint: this.chart[_chartState].zoomedState != null ? this.chart[_chartState].zoomedState : dart.test(this.chart[_chartState][_legendToggling]) ? true : series[_needsRepaint], animationController: controller, seriesAnimation: seriesAnimation, chartElementAnimation: chartElementAnimation, notifier: this.chart[_chartState].seriesRepaintNotifier});
          break;
        }
        case "stackedcolumn":
        {
          customPainter = new charts._StackedColummnChartPainter.new({chart: this.chart, series: charts.StackedColumnSeries._check(series), isRepaint: this.chart[_chartState].zoomedState != null ? this.chart[_chartState].zoomedState : dart.test(this.chart[_chartState][_legendToggling]) ? true : series[_needsRepaint], animationController: controller, seriesAnimation: seriesAnimation, chartElementAnimation: chartElementAnimation, notifier: this.chart[_chartState].seriesRepaintNotifier});
          break;
        }
        case "stackedline":
        {
          customPainter = new charts._StackedLineChartPainter.new({chart: this.chart, series: charts.XyDataSeries._check(series), isRepaint: this.chart[_chartState].zoomedState != null ? this.chart[_chartState].zoomedState : dart.test(this.chart[_chartState][_legendToggling]) ? true : series[_needsRepaint], animationController: controller, seriesAnimation: seriesAnimation, chartElementAnimation: chartElementAnimation, notifier: this.chart[_chartState].seriesRepaintNotifier});
          break;
        }
        case "stackedarea100":
        {
          customPainter = new charts._StackedArea100ChartPainter.new({chart: this.chart, series: charts.XyDataSeries._check(series), isRepaint: this.chart[_chartState].zoomedState != null ? this.chart[_chartState].zoomedState : dart.test(this.chart[_chartState][_legendToggling]) ? true : series[_needsRepaint], animationController: controller, seriesAnimation: seriesAnimation, chartElementAnimation: chartElementAnimation, notifier: this.chart[_chartState].seriesRepaintNotifier});
          break;
        }
        case "stackedbar100":
        {
          customPainter = new charts._StackedBar100ChartPainter.new({chart: this.chart, series: charts.StackedBar100Series._check(series), isRepaint: this.chart[_chartState].zoomedState != null ? this.chart[_chartState].zoomedState : dart.test(this.chart[_chartState][_legendToggling]) ? true : series[_needsRepaint], animationController: controller, seriesAnimation: seriesAnimation, chartElementAnimation: chartElementAnimation, notifier: this.chart[_chartState].seriesRepaintNotifier});
          break;
        }
        case "stackedcolumn100":
        {
          customPainter = new charts._StackedColumn100ChartPainter.new({chart: this.chart, series: charts.StackedColumn100Series._check(series), isRepaint: this.chart[_chartState].zoomedState != null ? this.chart[_chartState].zoomedState : dart.test(this.chart[_chartState][_legendToggling]) ? true : series[_needsRepaint], animationController: controller, seriesAnimation: seriesAnimation, chartElementAnimation: chartElementAnimation, notifier: this.chart[_chartState].seriesRepaintNotifier});
          break;
        }
        case "stackedline100":
        {
          customPainter = new charts._StackedLine100ChartPainter.new({chart: this.chart, series: charts.XyDataSeries._check(series), isRepaint: this.chart[_chartState].zoomedState != null ? this.chart[_chartState].zoomedState : dart.test(this.chart[_chartState][_legendToggling]) ? true : series[_needsRepaint], animationController: controller, seriesAnimation: seriesAnimation, chartElementAnimation: chartElementAnimation, notifier: this.chart[_chartState].seriesRepaintNotifier});
          break;
        }
        case "hilo":
        {
          customPainter = new charts._HiloPainter.new({chart: this.chart, series: charts.XyDataSeries._check(series), isRepaint: this.chart[_chartState].zoomedState != null ? this.chart[_chartState].zoomedState : dart.test(this.chart[_chartState][_legendToggling]) ? true : series[_needsRepaint], animationController: controller, seriesAnimation: seriesAnimation, chartElementAnimation: chartElementAnimation, notifier: this.chart[_chartState].seriesRepaintNotifier});
          break;
        }
        case "hiloopenclose":
        {
          customPainter = new charts._HiloOpenClosePainter.new({chart: this.chart, series: charts.XyDataSeries._check(series), isRepaint: this.chart[_chartState].zoomedState != null ? this.chart[_chartState].zoomedState : dart.test(this.chart[_chartState][_legendToggling]) ? true : series[_needsRepaint], animationController: controller, seriesAnimation: seriesAnimation, chartElementAnimation: chartElementAnimation, notifier: this.chart[_chartState].seriesRepaintNotifier});
          break;
        }
        case "candle":
        {
          customPainter = new charts._CandlePainter.new({chart: this.chart, series: charts.XyDataSeries._check(series), isRepaint: this.chart[_chartState].zoomedState != null ? this.chart[_chartState].zoomedState : dart.test(this.chart[_chartState][_legendToggling]) ? true : series[_needsRepaint], animationController: controller, seriesAnimation: seriesAnimation, chartElementAnimation: chartElementAnimation, notifier: this.chart[_chartState].seriesRepaintNotifier});
          break;
        }
        default:
        {
          break;
        }
      }
      return customPainter;
    }
  };
  (charts._ContainerArea.new = function(opts) {
    let chart = opts && 'chart' in opts ? opts.chart : null;
    let $36creationLocationd_0dea112b090073317d4 = opts && '$creationLocationd_0dea112b090073317d4' in opts ? opts.$creationLocationd_0dea112b090073317d4 : null;
    this[_chartWidgets] = null;
    this.renderBox = null;
    this[_touchPosition] = null;
    this[_tapDownDetails] = null;
    this[_mousePointerDetails] = null;
    this[_series] = null;
    this[_zoomStartPosition] = null;
    this.chart = chart;
    charts._ContainerArea.__proto__.new.call(this, {$creationLocationd_0dea112b090073317d4: $36creationLocationd_0dea112b090073317d4});
    ;
  }).prototype = charts._ContainerArea.prototype;
  dart.addTypeTests(charts._ContainerArea);
  dart.setMethodSignature(charts._ContainerArea, () => ({
    __proto__: dart.getMethods(charts._ContainerArea.__proto__),
    build: dart.fnType(framework.Widget, [framework.BuildContext]),
    [_initializeChart]: dart.fnType(framework.Widget, [box.BoxConstraints, framework.BuildContext]),
    [_calculateSize]: dart.fnType(dart.void, [box.BoxConstraints]),
    [_calculateBounds]: dart.fnType(dart.void, []),
    [_calculateTrendlineRegion]: dart.fnType(dart.void, [charts.SfCartesianChart, charts.CartesianSeries]),
    [_createSegment]: dart.fnType(dart.void, [charts.SfCartesianChart, core.int]),
    [_renderWidgets]: dart.fnType(framework.Widget, [box.BoxConstraints, framework.BuildContext]),
    [_bindPlotBandWidgets]: dart.fnType(dart.void, [core.bool]),
    [_bindTrendlineWidget]: dart.fnType(dart.void, []),
    [_bindDataLabelWidgets]: dart.fnType(dart.void, []),
    [_renderTemplates]: dart.fnType(dart.void, []),
    [_renderDataLabelTemplates]: dart.fnType(dart.void, []),
    [_bindSeriesWidgets]: dart.fnType(dart.void, []),
    [_bindAxisWidgets]: dart.fnType(dart.void, [core.String]),
    [_findSeries]: dart.fnType(charts.CartesianSeries, [ui.Offset]),
    [_performPointerDown]: dart.fnType(dart.void, [events.PointerDownEvent]),
    [_performPointerMove]: dart.fnType(dart.void, [events.PointerMoveEvent]),
    [_performPointerUp]: dart.fnType(dart.void, [events.PointerUpEvent]),
    [_performPointerSignal]: dart.fnType(dart.void, [events.PointerScrollEvent]),
    [_calculatePinchZoomingArgs]: dart.fnType(dart.void, []),
    [_performLongPressMoveUpdate]: dart.fnType(dart.void, [long_press.LongPressMoveUpdateDetails]),
    [_performLongPressEnd]: dart.fnType(dart.void, []),
    [_performPanDown]: dart.fnType(dart.void, [drag_details.DragDownDetails]),
    [_performLongPress]: dart.fnType(dart.void, []),
    [_performDoubleTap]: dart.fnType(dart.void, []),
    [_performPanUpdate]: dart.fnType(dart.void, [drag_details.DragUpdateDetails]),
    [_performPanEnd]: dart.fnType(dart.void, [drag_details.DragEndDetails]),
    [_performMouseHover]: dart.fnType(dart.void, [events.PointerEvent]),
    [_performMouseExit]: dart.fnType(dart.void, [events.PointerEvent]),
    [_bindInteractionWidgets]: dart.fnType(dart.void, [box.BoxConstraints, framework.BuildContext]),
    [_getListener]: dart.fnType(framework.Widget, [box.RenderBox, box.BoxConstraints]),
    [_getMouseRegion]: dart.fnType(framework.Widget, [box.RenderBox, box.BoxConstraints]),
    [_calculatePointSeriesIndex]: dart.fnType(dart.void, [charts.SfCartesianChart, ui.Offset]),
    [_triggerAxisLabelEvent]: dart.fnType(dart.void, [ui.Offset]),
    [_getSeriesPainter]: dart.fnType(custom_paint.CustomPainter, [core.int, animation_controller.AnimationController, animation.Animation$(core.double), animation.Animation$(core.double)])
  }));
  dart.setLibraryUri(charts._ContainerArea, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._ContainerArea, () => ({
    __proto__: dart.getFields(charts._ContainerArea.__proto__),
    chart: dart.fieldType(charts.SfCartesianChart),
    [_chartWidgets]: dart.fieldType(core.List$(framework.Widget)),
    renderBox: dart.fieldType(box.RenderBox),
    [_touchPosition]: dart.fieldType(ui.Offset),
    [_tapDownDetails]: dart.fieldType(ui.Offset),
    [_mousePointerDetails]: dart.fieldType(ui.Offset),
    [_series]: dart.fieldType(charts.CartesianSeries),
    [_zoomStartPosition]: dart.fieldType(ui.Offset)
  }));
  const _findAreaType = dart.privateName(charts, "_findAreaType");
  const _populateDataPoints = dart.privateName(charts, "_populateDataPoints");
  const _calculateIndicators = dart.privateName(charts, "_calculateIndicators");
  const _renderTrendline = dart.privateName(charts, "_renderTrendline");
  const _calculateStackedValues = dart.privateName(charts, "_calculateStackedValues");
  const _xValues = dart.privateName(charts, "_xValues");
  const _maxSize = dart.privateName(charts, "_maxSize");
  const _minSize = dart.privateName(charts, "_minSize");
  const _findMinMaxValue = dart.privateName(charts, "_findMinMaxValue");
  const _findSeriesMinMax = dart.privateName(charts, "_findSeriesMinMax");
  const _setDataSource = dart.privateName(charts, "_setDataSource");
  const _calculateStackingPercentage = dart.privateName(charts, "_calculateStackingPercentage");
  const _stackingValues$ = dart.privateName(charts, "_stackingValues");
  const _addStackingValues = dart.privateName(charts, "_addStackingValues");
  const _percentageValues = dart.privateName(charts, "_percentageValues");
  let C543;
  let C544;
  const _seriesColor = dart.privateName(charts, "_seriesColor");
  const _setIndicatorType = dart.privateName(charts, "_setIndicatorType");
  const _indicatorType = dart.privateName(charts, "_indicatorType");
  const _getIndicatorId = dart.privateName(charts, "_getIndicatorId");
  const _getFieldType = dart.privateName(charts, "_getFieldType");
  const _initSeriesCollection = dart.privateName(charts, "_initSeriesCollection");
  const _initDataSource = dart.privateName(charts, "_initDataSource");
  const _targetSeries = dart.privateName(charts, "_targetSeries");
  charts._ChartSeries = class _ChartSeries extends core.Object {
    [_processData]() {
      let t1, t1$;
      let seriesList = this.visibleSeries;
      this.isStacked100 = false;
      this.paletteIndex = 0;
      this[_findAreaType](ListOfCartesianSeries()._check(seriesList));
      if (dart.test(this.chart.indicators[$isNotEmpty])) {
        this[_populateDataPoints](ListOfCartesianSeries()._check(seriesList));
        this[_calculateIndicators]();
        t1 = this.chart[_chartAxis];
        t1 == null ? null : t1[_calculateVisibleAxes]();
        this[_findMinMax](ListOfCartesianSeries()._check(seriesList));
        this[_renderTrendline]();
      } else {
        t1$ = this.chart[_chartAxis];
        t1$ == null ? null : t1$[_calculateVisibleAxes]();
        this[_populateDataPoints](ListOfCartesianSeries()._check(seriesList));
      }
      this[_calculateStackedValues](charts._findSeriesCollection(this.chart));
      this[_renderTrendline]();
    }
    [_populateDataPoints](seriesList) {
      let t1, t1$, t1$0;
      for (let series of seriesList) {
        let xValue = series.xValueMapper;
        let yValue = series.yValueMapper;
        let sortField = series.sortFieldValueMapper;
        let _pointColor = series.pointColorMapper;
        let _bubbleSize = series.sizeValueMapper;
        let _pointText = series.dataLabelMapper;
        let _highValue = series.highValueMapper;
        let _lowValue = series.lowValueMapper;
        let currentPoint = null;
        series[_dataPoints$] = JSArrayOfCartesianChartPoint().of([]);
        series[_xValues] = [];
        if (!dart.test(this.isStacked100) && series[_seriesType$][$contains]("100")) {
          this.isStacked100 = true;
        }
        let needSorting = !dart.equals(series.sortingOrder, charts.SortingOrder.none) && series.sortFieldValueMapper != null;
        if (series.dataSource != null) {
          for (let pointIndex = 0; pointIndex < dart.notNull(series.dataSource[$length]); pointIndex = pointIndex + 1) {
            let xVal = dart.dcall(xValue, [pointIndex]);
            let yVal = charts.RangeColumnSeries.is(series) || charts.RangeAreaSeries.is(series) || charts.HiloSeries.is(series) || charts.HiloOpenCloseSeries.is(series) || charts.CandleSeries.is(series) ? null : dart.dcall(yValue, [pointIndex]);
            if (xVal != null) {
              let sortVal = null;
              let pointColor = null;
              let bubbleSize = null;
              let pointText = null;
              let highValue = null;
              let lowValue = null;
              let openValue = null;
              let volumeValue = null;
              let closeValue = null;
              if (series.sortFieldValueMapper != null) {
                sortVal = dart.dcall(sortField, [pointIndex]);
              }
              series[_dataPoints$][$add](new charts.CartesianChartPoint.new(xVal, yVal));
              series[_xValues][$add](xVal);
              currentPoint = series[_dataPoints$][$_get](dart.notNull(series[_dataPoints$][$length]) - 1);
              if (charts.BubbleSeries.is(series)) {
                bubbleSize = series.sizeValueMapper == null ? 4 : (t1 = dart.dcall(_bubbleSize, [pointIndex]), t1 == null ? 4 : t1);
                currentPoint.bubbleSize = core.double._check(dart.dsend(bubbleSize, 'toDouble', []));
                t1$ = series;
                t1$[_maxSize] == null ? t1$[_maxSize] = currentPoint.bubbleSize : null;
                t1$0 = series;
                t1$0[_minSize] == null ? t1$0[_minSize] = currentPoint.bubbleSize : null;
                series[_maxSize] = math.max(core.num, series[_maxSize], currentPoint.bubbleSize);
                series[_minSize] = math.min(core.num, series[_minSize], currentPoint.bubbleSize);
              }
              if (series.sizeValueMapper != null) {
                bubbleSize = dart.dcall(_bubbleSize, [pointIndex]);
                series[_dataPoints$][$_get](dart.notNull(series[_dataPoints$][$length]) - 1).bubbleSize = core.double._check(bubbleSize != null ? dart.dsend(bubbleSize, 'toDouble', []) : bubbleSize);
              }
              if (series.pointColorMapper != null) {
                pointColor = dart.dcall(_pointColor, [pointIndex]);
                series[_dataPoints$][$_get](dart.notNull(series[_dataPoints$][$length]) - 1).pointColorMapper = ui.Color._check(pointColor);
              }
              if (series.dataLabelMapper != null) {
                pointText = dart.dcall(_pointText, [pointIndex]);
                series[_dataPoints$][$_get](dart.notNull(series[_dataPoints$][$length]) - 1).dataLabelMapper = core.String._check(pointText);
              }
              if (series.highValueMapper != null) {
                highValue = dart.dcall(_highValue, [pointIndex]);
                series[_dataPoints$][$_get](dart.notNull(series[_dataPoints$][$length]) - 1).high = highValue;
              }
              if (series.lowValueMapper != null) {
                lowValue = dart.dcall(_lowValue, [pointIndex]);
                series[_dataPoints$][$_get](dart.notNull(series[_dataPoints$][$length]) - 1).low = lowValue;
              }
              if (charts._FinancialSeriesBase.is(series)) {
                let _openValue = series.openValueMapper;
                let _closeValue = series.closeValueMapper;
                if (series.openValueMapper != null) {
                  openValue = dart.dcall(_openValue, [pointIndex]);
                  series[_dataPoints$][$_get](dart.notNull(series[_dataPoints$][$length]) - 1).open = openValue;
                }
                if (charts.HiloOpenCloseSeries.is(series)) {
                  let _volumeValue = series.volumeValueMapper;
                  if (series.volumeValueMapper != null) {
                    volumeValue = dart.dcall(_volumeValue, [pointIndex]);
                    series[_dataPoints$][$_get](dart.notNull(series[_dataPoints$][$length]) - 1).volume = core.num._check(volumeValue);
                  }
                }
                if (series.closeValueMapper != null) {
                  closeValue = dart.dcall(_closeValue, [pointIndex]);
                  series[_dataPoints$][$_get](dart.notNull(series[_dataPoints$][$length]) - 1).close = closeValue;
                }
              }
              if (!dart.equals(series.sortingOrder, charts.SortingOrder.none) && sortVal != null) series[_dataPoints$][$_get](dart.notNull(series[_dataPoints$][$length]) - 1).sortValue = sortVal;
              if (series[_seriesType$][$contains]("range") || series[_seriesType$][$contains]("hilo") || series[_seriesType$][$contains]("candle") ? series[_seriesType$] === "hiloopenclose" || series[_seriesType$][$contains]("candle") ? currentPoint.low == null || currentPoint.high == null || currentPoint.open == null || currentPoint.close == null : currentPoint.low == null || currentPoint.high == null : currentPoint.y == null) {
                if (charts.XyDataSeries.is(series)) series.calculateEmptyPointValue(pointIndex, currentPoint);
              }
              if ((series[_seriesType$][$contains]("range") || series[_seriesType$][$contains]("hilo") || series[_seriesType$][$contains]("candle")) && dart.test(currentPoint.isVisible)) {
                let high = core.num._check(currentPoint.high);
                let low = core.num._check(currentPoint.low);
                currentPoint.high = math.max(core.num, high, low);
                currentPoint.low = math.min(core.num, high, low);
              }
              if (series[_xAxis$] != null && series[_yAxis$] != null && !needSorting && dart.test(this.chart.indicators[$isEmpty])) {
                this[_findMinMaxValue](series[_xAxis$], series, currentPoint, pointIndex, series.dataSource[$length]);
              }
            }
          }
          if (needSorting) {
            this[_sortDataSource](series);
            if (dart.test(this.chart.indicators[$isEmpty])) {
              this[_findSeriesMinMax](series);
            }
          }
        }
      }
    }
    [_findMinMaxValue](axis, series, currentPoint, pointIndex, dataLength) {
      if (dart.test(series[_visible])) {
        if (charts.NumericAxis.is(axis)) {
          axis[_findAxisMinMax](series, currentPoint, pointIndex, dataLength);
        } else if (charts.CategoryAxis.is(axis)) {
          axis[_findAxisMinMax](series, currentPoint, pointIndex, dataLength);
        } else if (charts.DateTimeAxis.is(axis)) {
          axis[_findAxisMinMax](series, currentPoint, pointIndex, dataLength);
        } else if (charts.LogarithmicAxis.is(axis)) {
          axis[_findAxisMinMax](series, currentPoint, pointIndex, dataLength);
        }
      }
    }
    [_findSeriesMinMax](series) {
      let axis = series[_xAxis$];
      if (dart.test(series[_visible])) {
        for (let pointIndex = 0; pointIndex < dart.notNull(series[_dataPoints$][$length]); pointIndex = pointIndex + 1) {
          this[_findMinMaxValue](charts.ChartAxis._check(axis), series, series[_dataPoints$][$_get](pointIndex), pointIndex, series[_dataPoints$][$length]);
        }
      }
    }
    [_findMinMax](seriesCollection) {
      for (let seriesIndex = 0; seriesIndex < dart.notNull(seriesCollection[$length]); seriesIndex = seriesIndex + 1) {
        this[_findSeriesMinMax](seriesCollection[$_get](seriesIndex));
      }
    }
    [_renderTrendline]() {
      for (let t1 of this.visibleSeries) {
        let series = charts.CartesianSeries._check(t1);
        if (series.trendlines != null) {
          for (let trendline of series.trendlines) {
            trendline[_isNeedRender] = dart.equals(trendline[_visible], true) && dart.test(series[_visible]) && (dart.equals(trendline.type, charts.TrendlineType.polynomial) ? dart.notNull(trendline.polynomialOrder) >= 2 && dart.notNull(trendline.polynomialOrder) <= 6 : dart.equals(trendline.type, charts.TrendlineType.movingAverage) ? dart.notNull(trendline.period) >= 2 && dart.notNull(trendline.period) <= dart.notNull(series.dataSource[$length]) - 1 : true);
            if (dart.test(trendline[_isNeedRender])) {
              trendline[_setDataSource](series, this.chart);
            }
          }
        }
      }
    }
    [_sortDataSource](series) {
      series[_dataPoints$][$sort](dart.fn((firstPoint, secondPoint) => {
        if (dart.equals(series.sortingOrder, charts.SortingOrder.ascending)) {
          return core.int._check(firstPoint.sortValue == null ? -1 : secondPoint.sortValue == null ? 1 : typeof firstPoint.sortValue == 'string' ? dart.dsend(dart.dsend(firstPoint.sortValue, 'toLowerCase', []), 'compareTo', [dart.dsend(secondPoint.sortValue, 'toLowerCase', [])]) : dart.dsend(firstPoint.sortValue, 'compareTo', [secondPoint.sortValue]));
        } else if (dart.equals(series.sortingOrder, charts.SortingOrder.descending)) {
          return core.int._check(firstPoint.sortValue == null ? 1 : secondPoint.sortValue == null ? -1 : typeof firstPoint.sortValue == 'string' ? dart.dsend(dart.dsend(secondPoint.sortValue, 'toLowerCase', []), 'compareTo', [dart.dsend(firstPoint.sortValue, 'toLowerCase', [])]) : dart.dsend(secondPoint.sortValue, 'compareTo', [firstPoint.sortValue]));
        }
      }, CartesianChartPointAndCartesianChartPointToint()));
    }
    [_calculateStackedValues](seriesCollection) {
      let t2;
      let groupName = " ";
      let positiveValues = null;
      let negativeValues = null;
      if (dart.test(this.isStacked100)) {
        this[_calculateStackingPercentage](seriesCollection);
      }
      this.chart[_chartSeries].clusterStackedItemInfo = JSArrayOf_ClusterStackedItemInfo().of([]);
      for (let i = 0; i < dart.notNull(seriesCollection[$length]); i = i + 1) {
        let series = seriesCollection[$_get](i);
        if (charts._StackedSeriesBase.is(series)) {
          if (dart.test(series[_dataPoints$][$isNotEmpty])) {
            groupName = series[_seriesType$][$contains]("stackedarea") ? "stackedareagroup" : (t2 = series.groupName, t2 == null ? "series " + i[$toString]() : t2);
            let stackedItemInfo = new charts._StackedItemInfo.new(i, series);
            if (dart.test(this.chart[_chartSeries].clusterStackedItemInfo[$isNotEmpty])) {
              for (let k = 0; k < dart.notNull(this.chart[_chartSeries].clusterStackedItemInfo[$length]); k = k + 1) {
                let clusterStackedItemInfo = this.chart[_chartSeries].clusterStackedItemInfo[$_get](k);
                if (clusterStackedItemInfo.stackName == groupName) {
                  clusterStackedItemInfo.stackedItemInfo[$add](stackedItemInfo);
                  break;
                } else if (k === dart.notNull(this.chart[_chartSeries].clusterStackedItemInfo[$length]) - 1) {
                  this.chart[_chartSeries].clusterStackedItemInfo[$add](new charts._ClusterStackedItemInfo.new(groupName, JSArrayOf_StackedItemInfo().of([stackedItemInfo])));
                  break;
                }
              }
            } else {
              this.chart[_chartSeries].clusterStackedItemInfo[$add](new charts._ClusterStackedItemInfo.new(groupName, JSArrayOf_StackedItemInfo().of([stackedItemInfo])));
            }
            series[_stackingValues$] = JSArrayOf_StackedValues().of([]);
            let currentPositiveStackInfo = null;
            if (positiveValues == null || negativeValues == null) {
              positiveValues = JSArrayOf_StackingInfo().of([]);
              currentPositiveStackInfo = new charts._StackingInfo.new(groupName, JSArrayOfdouble().of([]));
              positiveValues[$add](currentPositiveStackInfo);
              negativeValues = JSArrayOf_StackingInfo().of([]);
              negativeValues[$add](new charts._StackingInfo.new(groupName, JSArrayOfdouble().of([])));
            }
            this[_addStackingValues](series, this.isStacked100, positiveValues, negativeValues, currentPositiveStackInfo, groupName);
          }
        }
      }
    }
    [_addStackingValues](series, isStacked100, positiveValues, negativeValues, currentPositiveStackInfo, groupName) {
      let lastValue = null;
      let value = null;
      let point = null;
      let currentNegativeStackInfo = null;
      let startValues = JSArrayOfdouble().of([]);
      let endValues = JSArrayOfdouble().of([]);
      for (let j = 0; j < dart.notNull(series[_dataPoints$][$length]); j = j + 1) {
        point = series[_dataPoints$][$_get](j);
        value = core.num._check(point.y);
        if (dart.test(positiveValues[$isNotEmpty])) {
          for (let k = 0; k < dart.notNull(positiveValues[$length]); k = k + 1) {
            if (groupName == positiveValues[$_get](k).groupName) {
              currentPositiveStackInfo = positiveValues[$_get](k);
              break;
            } else if (k === dart.notNull(positiveValues[$length]) - 1) {
              currentPositiveStackInfo = new charts._StackingInfo.new(groupName, JSArrayOfdouble().of([]));
              positiveValues[$add](currentPositiveStackInfo);
            }
          }
        }
        if (dart.test(negativeValues[$isNotEmpty])) {
          for (let k = 0; k < dart.notNull(negativeValues[$length]); k = k + 1) {
            if (groupName == negativeValues[$_get](k).groupName) {
              currentNegativeStackInfo = negativeValues[$_get](k);
              break;
            } else if (k === dart.notNull(negativeValues[$length]) - 1) {
              currentNegativeStackInfo = new charts._StackingInfo.new(groupName, JSArrayOfdouble().of([]));
              negativeValues[$add](currentNegativeStackInfo);
            }
          }
        }
        if (currentPositiveStackInfo[_stackingValues$] != null) {
          let length = currentPositiveStackInfo[_stackingValues$][$length];
          if (length === 0 || j > dart.notNull(length) - 1) {
            currentPositiveStackInfo[_stackingValues$][$add](0.0);
          }
        }
        if (currentNegativeStackInfo[_stackingValues$] != null) {
          let length = currentNegativeStackInfo[_stackingValues$][$length];
          if (length === 0 || j > dart.notNull(length) - 1) {
            currentNegativeStackInfo[_stackingValues$][$add](0.0);
          }
        }
        if (dart.test(isStacked100)) {
          value = dart.notNull(value) / dart.notNull(series[_percentageValues][$_get](j)) * 100;
          value = value[$isNaN] ? 0 : value;
        }
        if (dart.notNull(value) > 0) {
          lastValue = currentPositiveStackInfo[_stackingValues$][$_get](j);
          currentPositiveStackInfo[_stackingValues$][$_set](j, dart.notNull(lastValue) + dart.notNull(value));
        } else {
          lastValue = currentNegativeStackInfo[_stackingValues$][$_get](j);
          currentNegativeStackInfo[_stackingValues$][$_set](j, dart.notNull(lastValue) + dart.notNull(value));
        }
        startValues[$add](lastValue[$toDouble]());
        endValues[$add](dart.notNull(value) + dart.notNull(lastValue));
        if (dart.test(isStacked100) && dart.notNull(endValues[$_get](j)) > 100) {
          endValues[$_set](j, 100.0);
        }
        point.cumulativeValue = !series[_seriesType$][$contains]("100") ? endValues[$_get](j) : endValues[$_get](j)[$truncateToDouble]();
      }
      series[_stackingValues$][$add](new charts._StackedValues.new(startValues, endValues));
      series[_minimumY] = startValues[$reduce](dart.gbind(C543 || CT.C543, core.double));
      series[_maximumY] = endValues[$reduce](dart.gbind(C544 || CT.C544, core.double));
      if (dart.notNull(series[_minimumY]) > dart.notNull(endValues[$reduce](dart.gbind(C543 || CT.C543, core.double)))) {
        series[_minimumY] = dart.test(isStacked100) ? -100 : endValues[$reduce](dart.gbind(C543 || CT.C543, core.double));
      }
      if (dart.notNull(series[_maximumY]) < dart.notNull(startValues[$reduce](dart.gbind(C544 || CT.C544, core.double)))) {
        series[_maximumY] = 0;
      }
    }
    [_calculateStackingPercentage](seriesCollection) {
      let t2;
      let percentageValues = null;
      let groupName = null;
      let stackingInfo = null;
      let lastValue = null;
      let value = null;
      let point = null;
      for (let i = 0; i < dart.notNull(seriesCollection[$length]); i = i + 1) {
        let series = seriesCollection[$_get](i);
        series[_yAxis$].isStack100 = true;
        if (charts._StackedSeriesBase.is(series)) {
          if (dart.test(series[_dataPoints$][$isNotEmpty])) {
            groupName = series[_seriesType$] === "stackedarea100" ? "stackedareagroup" : (t2 = series.groupName, t2 == null ? "series " + i[$toString]() : t2);
            if (percentageValues == null) {
              percentageValues = JSArrayOf_StackingInfo().of([]);
              stackingInfo = new charts._StackingInfo.new(groupName, JSArrayOfdouble().of([]));
            }
            for (let j = 0; j < dart.notNull(series[_dataPoints$][$length]); j = j + 1) {
              point = series[_dataPoints$][$_get](j);
              value = core.num._check(point.y);
              if (dart.test(percentageValues[$isNotEmpty])) {
                for (let k = 0; k < dart.notNull(percentageValues[$length]); k = k + 1) {
                  if (groupName == percentageValues[$_get](k).groupName) {
                    stackingInfo = percentageValues[$_get](k);
                    break;
                  } else if (k === dart.notNull(percentageValues[$length]) - 1) {
                    stackingInfo = new charts._StackingInfo.new(groupName, JSArrayOfdouble().of([]));
                    percentageValues[$add](stackingInfo);
                  }
                }
              }
              if (stackingInfo[_stackingValues$] != null) {
                let length = stackingInfo[_stackingValues$][$length];
                if (length === 0 || j > dart.notNull(length) - 1) {
                  stackingInfo[_stackingValues$][$add](0.0);
                }
              }
              if (dart.notNull(value) >= 0) {
                lastValue = stackingInfo[_stackingValues$][$_get](j);
                stackingInfo[_stackingValues$][$_set](j, dart.notNull(lastValue) + dart.notNull(value));
              } else {
                lastValue = stackingInfo[_stackingValues$][$_get](j);
                stackingInfo[_stackingValues$][$_set](j, dart.notNull(lastValue) - dart.notNull(value));
              }
              if (j === dart.notNull(series[_dataPoints$][$length]) - 1) percentageValues[$add](stackingInfo);
            }
          }
          if (percentageValues != null) {
            for (let i = 0; i < dart.notNull(percentageValues[$length]); i = i + 1) {
              if (series[_seriesType$] === "stackedarea100") {
                series[_percentageValues] = percentageValues[$_get](i)[_stackingValues$];
              } else {
                if (series.groupName == percentageValues[$_get](i).groupName) series[_percentageValues] = percentageValues[$_get](i)[_stackingValues$];
              }
            }
          }
        }
      }
    }
    [_findAreaType](seriesList) {
      if (dart.test(this.visibleSeries[$isNotEmpty])) {
        let index = -1;
        for (let series of seriesList) {
          this[_setSeriesType](series, index = index + 1);
        }
      }
    }
    [_setSeriesType](series, index) {
      if (series.color == null) {
        series[_seriesColor] = this.chart.palette[$_get](this.paletteIndex[$modulo](this.chart.palette[$length]));
        this.paletteIndex = dart.notNull(this.paletteIndex) + 1;
      } else {
        series[_seriesColor] = series.color;
      }
      if (charts.AreaSeries.is(series))
        series[_seriesType$] = "area";
      else if (charts.BarSeries.is(series))
        series[_seriesType$] = "bar";
      else if (charts.BubbleSeries.is(series))
        series[_seriesType$] = "bubble";
      else if (charts.ColumnSeries.is(series))
        series[_seriesType$] = "column";
      else if (charts.FastLineSeries.is(series))
        series[_seriesType$] = "fastline";
      else if (charts.LineSeries.is(series))
        series[_seriesType$] = "line";
      else if (charts.ScatterSeries.is(series))
        series[_seriesType$] = "scatter";
      else if (charts.SplineSeries.is(series))
        series[_seriesType$] = "spline";
      else if (charts.StepLineSeries.is(series))
        series[_seriesType$] = "stepline";
      else if (charts.StackedColumnSeries.is(series))
        series[_seriesType$] = "stackedcolumn";
      else if (charts.StackedBarSeries.is(series))
        series[_seriesType$] = "stackedbar";
      else if (charts.StackedAreaSeries.is(series))
        series[_seriesType$] = "stackedarea";
      else if (charts.StackedArea100Series.is(series))
        series[_seriesType$] = "stackedarea100";
      else if (charts.StackedLineSeries.is(series))
        series[_seriesType$] = "stackedline";
      else if (charts.StackedLine100Series.is(series))
        series[_seriesType$] = "stackedline100";
      else if (charts.RangeColumnSeries.is(series))
        series[_seriesType$] = "rangecolumn";
      else if (charts.RangeAreaSeries.is(series))
        series[_seriesType$] = "rangearea";
      else if (charts.StackedColumn100Series.is(series))
        series[_seriesType$] = "stackedcolumn100";
      else if (charts.StackedBar100Series.is(series))
        series[_seriesType$] = "stackedbar100";
      else if (charts.SplineAreaSeries.is(series))
        series[_seriesType$] = "splinearea";
      else if (charts.StepAreaSeries.is(series)) {
        series[_seriesType$] = "steparea";
      } else if (charts.HiloSeries.is(series)) {
        series[_seriesType$] = "hilo";
      } else if (charts.HiloOpenCloseSeries.is(series)) {
        series[_seriesType$] = "hiloopenclose";
      } else if (charts.CandleSeries.is(series)) {
        series[_seriesType$] = "candle";
      }
      if (index === 0) this.chart[_requireInvertedAxis] = !dart.test(this.chart.isTransposed) && series[_seriesType$][$toLowerCase]()[$contains]("bar") || dart.test(this.chart.isTransposed) && !series[_seriesType$][$toLowerCase]()[$contains]("bar");
    }
    [_calculateIndicators]() {
      let t2;
      if (this.chart.indicators != null && dart.test(this.chart.indicators[$isNotEmpty])) {
        let indicator = null;
        let existField = null;
        let _map = null;
        if (!dart.test(this.chart.legend.isVisible)) {
          let textCollection = JSArrayOfString().of([]);
          for (let i = 0; i < dart.notNull(this.chart.indicators[$length]); i = i + 1) {
            let indicator = this.chart.indicators[$_get](i);
            this[_setIndicatorType](charts.TechnicalIndicators._check(indicator));
            textCollection[$add](core.String._check(dart.dload(indicator, _indicatorType)));
          }
          _map = new (LinkedMapOfString$int()).new();
          textCollection[$forEach](dart.fn(str => {
            let t4, t3, t2;
            t2 = _map;
            t3 = core.String._check(str);
            t4 = !dart.test(_map[$containsKey](str)) ? 1 : dart.notNull(_map[$_get](str)) + 1;
            t2[$_set](t3, t4);
            return t4;
          }, dynamicToint()));
        }
        let indicatorTextCollection = JSArrayOfString().of([]);
        for (let i = 0; i < dart.notNull(this.chart.indicators[$length]); i = i + 1) {
          indicator = this.chart.indicators[$_get](i);
          dart.dput(indicator, _index, i);
          if (!dart.test(this.chart.legend.isVisible)) {
            let count = dart.test(indicatorTextCollection[$contains](dart.dload(indicator, _indicatorType))) ? this[_getIndicatorId](indicatorTextCollection, core.String._check(dart.dload(indicator, _indicatorType))) : 0;
            indicatorTextCollection[$add](core.String._check(dart.dload(indicator, _indicatorType)));
            dart.dput(indicator, _name$, (t2 = dart.dload(indicator, 'name'), t2 == null ? dart.dsend(dart.dload(indicator, _indicatorType), '+', [_map[$_get](dart.dload(indicator, _indicatorType)) === 1 ? "" : " " + dart.toString(count)]) : t2));
          }
          if (indicator != null && dart.dtest(dart.dload(indicator, 'isVisible')) && (dart.dload(indicator, 'dataSource') != null || dart.dload(indicator, 'seriesName') != null)) {
            if (dart.dload(indicator, 'dataSource') != null && dart.dtest(dart.dload(dart.dload(indicator, 'dataSource'), 'isNotEmpty'))) {
              existField = dart.equals(dart.dload(indicator, _indicatorType), "SMA") || dart.equals(dart.dload(indicator, _indicatorType), "TMA") || dart.equals(dart.dload(indicator, _indicatorType), "EMA");
              let valueField = dart.test(existField) ? this[_getFieldType](charts.TechnicalIndicators._check(indicator))[$toLowerCase]() : "";
              let currentPoint = null;
              for (let pointIndex = 0; pointIndex < dart.notNull(core.num._check(dart.dload(dart.dload(indicator, 'dataSource'), 'length'))); pointIndex = pointIndex + 1) {
                if (dart.dload(indicator, 'xValueMapper') != null) {
                  let xVal = dart.dsend(indicator, 'xValueMapper', [pointIndex]);
                  let highValue = null;
                  let lowValue = null;
                  let openValue = null;
                  let closeValue = null;
                  let volumeValue = null;
                  dart.dsend(dart.dload(indicator, _dataPoints$), 'add', [new charts.CartesianChartPoint.new(xVal, null)]);
                  currentPoint = charts.CartesianChartPoint._check(dart.dsend(dart.dload(indicator, _dataPoints$), '_get', [dart.dsend(dart.dload(dart.dload(indicator, _dataPoints$), 'length'), '-', [1])]));
                  if (dart.dload(indicator, 'highValueMapper') != null) {
                    highValue = core.num._check(dart.dsend(indicator, 'highValueMapper', [pointIndex]));
                    dart.dput(dart.dsend(dart.dload(indicator, _dataPoints$), '_get', [dart.dsend(dart.dload(dart.dload(indicator, _dataPoints$), 'length'), '-', [1])]), 'high', highValue);
                  }
                  if (dart.dload(indicator, 'lowValueMapper') != null) {
                    lowValue = core.num._check(dart.dsend(indicator, 'lowValueMapper', [pointIndex]));
                    dart.dput(dart.dsend(dart.dload(indicator, _dataPoints$), '_get', [dart.dsend(dart.dload(dart.dload(indicator, _dataPoints$), 'length'), '-', [1])]), 'low', lowValue);
                  }
                  if (currentPoint.high != null && currentPoint.low != null) {
                    let high = core.num._check(currentPoint.high);
                    let low = core.num._check(currentPoint.low);
                    currentPoint.high = math.max(core.num, high, low);
                    currentPoint.low = math.min(core.num, high, low);
                  }
                  if (dart.dload(indicator, 'openValueMapper') != null) {
                    openValue = core.num._check(dart.dsend(indicator, 'openValueMapper', [pointIndex]));
                    dart.dput(dart.dsend(dart.dload(indicator, _dataPoints$), '_get', [dart.dsend(dart.dload(dart.dload(indicator, _dataPoints$), 'length'), '-', [1])]), 'open', openValue);
                  }
                  if (dart.dload(indicator, 'closeValueMapper') != null) {
                    closeValue = core.num._check(dart.dsend(indicator, 'closeValueMapper', [pointIndex]));
                    dart.dput(dart.dsend(dart.dload(indicator, _dataPoints$), '_get', [dart.dsend(dart.dload(dart.dload(indicator, _dataPoints$), 'length'), '-', [1])]), 'close', closeValue);
                  }
                  if (charts.AccumulationDistributionIndicator.is(indicator) && indicator.volumeValueMapper != null) {
                    volumeValue = indicator.volumeValueMapper(pointIndex);
                    indicator[_dataPoints$][$_get](dart.notNull(indicator[_dataPoints$][$length]) - 1).volume = volumeValue;
                  }
                  if (closeValue == null && (!dart.test(existField) || valueField === "close") || highValue == null && (valueField === "high" || dart.equals(dart.dload(indicator, _indicatorType), "AD") || dart.equals(dart.dload(indicator, _indicatorType), "ATR") || dart.equals(dart.dload(indicator, _indicatorType), "RSI") || dart.equals(dart.dload(indicator, _indicatorType), "Stochastic")) || lowValue == null && (valueField === "low" || dart.equals(dart.dload(indicator, _indicatorType), "AD") || dart.equals(dart.dload(indicator, _indicatorType), "ATR") || dart.equals(dart.dload(indicator, _indicatorType), "RSI") || dart.equals(dart.dload(indicator, _indicatorType), "Stochastic")) || openValue == null && valueField === "open" || volumeValue == null && dart.equals(dart.dload(indicator, _indicatorType), "AD")) {
                    dart.dsend(dart.dload(indicator, _dataPoints$), 'removeAt', [dart.dsend(dart.dload(dart.dload(indicator, _dataPoints$), 'length'), '-', [1])]);
                  }
                }
              }
            } else if (dart.dload(indicator, 'seriesName') != null) {
              let series = null;
              for (let i = 0; i < dart.notNull(this.chart.series[$length]); i = i + 1) {
                if (dart.equals(dart.dload(indicator, 'seriesName'), this.chart.series[$_get](i).name)) {
                  series = this.chart.series[$_get](i);
                  break;
                }
              }
              dart.dput(indicator, _dataPoints$, series != null && (dart.equals(dart.dload(series, _seriesType$), "hiloopenclose") || dart.equals(dart.dload(series, _seriesType$), "candle")) ? dart.dload(series, _dataPoints$) : null);
            }
            if (dart.dload(indicator, _dataPoints$) != null && dart.dtest(dart.dload(dart.dload(indicator, _dataPoints$), 'isNotEmpty'))) {
              dart.dsend(indicator, _initSeriesCollection, [indicator, this.chart]);
              dart.dsend(indicator, _initDataSource, [indicator]);
              if (dart.dtest(dart.dload(dart.dload(indicator, _renderPoints), 'isNotEmpty'))) this.chart[_chartSeries].visibleSeries[$addAll](IterableOfChartSeries()._check(dart.dload(indicator, _targetSeries)));
            }
          }
        }
      }
    }
    [_getFieldType](indicator) {
      let valueField = null;
      if (charts.EmaIndicator.is(indicator))
        valueField = indicator.valueField;
      else if (charts.TmaIndicator.is(indicator))
        valueField = indicator.valueField;
      else if (charts.SmaIndicator.is(indicator)) {
        valueField = indicator.valueField;
      }
      return valueField;
    }
    [_getIndicatorId](list, str) {
      let count = 0;
      for (let i = 0; i < dart.notNull(list[$length]); i = i + 1) {
        if (list[$_get](i) == str) {
          count = count + 1;
        }
      }
      return count;
    }
    [_setIndicatorType](indicator) {
      if (charts.AtrIndicator.is(indicator))
        indicator[_indicatorType] = "ATR";
      else if (charts.AccumulationDistributionIndicator.is(indicator))
        indicator[_indicatorType] = "AD";
      else if (charts.BollingerBandIndicator.is(indicator))
        indicator[_indicatorType] = "Bollinger";
      else if (charts.EmaIndicator.is(indicator))
        indicator[_indicatorType] = "EMA";
      else if (charts.MacdIndicator.is(indicator))
        indicator[_indicatorType] = "MACD";
      else if (charts.MomentumIndicator.is(indicator))
        indicator[_indicatorType] = "Momentum";
      else if (charts.RsiIndicator.is(indicator))
        indicator[_indicatorType] = "RSI";
      else if (charts.SmaIndicator.is(indicator))
        indicator[_indicatorType] = "SMA";
      else if (charts.StochasticIndicator.is(indicator))
        indicator[_indicatorType] = "Stochastic";
      else if (charts.TmaIndicator.is(indicator)) {
        indicator[_indicatorType] = "TMA";
      }
    }
  };
  (charts._ChartSeries.new = function() {
    this.chart = null;
    this.isStacked100 = null;
    this.paletteIndex = 0;
    this.visibleSeries = null;
    this.clusterStackedItemInfo = null;
    ;
  }).prototype = charts._ChartSeries.prototype;
  dart.addTypeTests(charts._ChartSeries);
  dart.setMethodSignature(charts._ChartSeries, () => ({
    __proto__: dart.getMethods(charts._ChartSeries.__proto__),
    [_processData]: dart.fnType(dart.void, []),
    [_populateDataPoints]: dart.fnType(dart.void, [core.List$(charts.CartesianSeries)]),
    [_findMinMaxValue]: dart.fnType(dart.void, [charts.ChartAxis, charts.CartesianSeries, charts.CartesianChartPoint, core.int, core.int]),
    [_findSeriesMinMax]: dart.fnType(dart.void, [charts.CartesianSeries]),
    [_findMinMax]: dart.fnType(dart.void, [core.List$(charts.CartesianSeries)]),
    [_renderTrendline]: dart.fnType(dart.void, []),
    [_sortDataSource]: dart.fnType(dart.void, [charts.CartesianSeries]),
    [_calculateStackedValues]: dart.fnType(dart.void, [core.List$(charts.CartesianSeries)]),
    [_addStackingValues]: dart.fnType(dart.void, [charts._StackedSeriesBase, core.bool, core.List$(charts._StackingInfo), core.List$(charts._StackingInfo), charts._StackingInfo, core.String]),
    [_calculateStackingPercentage]: dart.fnType(dart.void, [core.List$(charts.CartesianSeries)]),
    [_findAreaType]: dart.fnType(dart.void, [core.List$(charts.CartesianSeries)]),
    [_setSeriesType]: dart.fnType(dart.void, [charts.CartesianSeries, core.int]),
    [_calculateIndicators]: dart.fnType(dart.void, []),
    [_getFieldType]: dart.fnType(core.String, [charts.TechnicalIndicators]),
    [_getIndicatorId]: dart.fnType(core.int, [core.List$(core.String), core.String]),
    [_setIndicatorType]: dart.fnType(dart.void, [charts.TechnicalIndicators])
  }));
  dart.setLibraryUri(charts._ChartSeries, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._ChartSeries, () => ({
    __proto__: dart.getFields(charts._ChartSeries.__proto__),
    chart: dart.fieldType(charts.SfCartesianChart),
    isStacked100: dart.fieldType(core.bool),
    paletteIndex: dart.fieldType(core.int),
    visibleSeries: dart.fieldType(core.List$(charts.ChartSeries)),
    clusterStackedItemInfo: dart.fieldType(core.List$(charts._ClusterStackedItemInfo))
  }));
  charts.ChartBehavior = class ChartBehavior extends core.Object {};
  (charts.ChartBehavior.new = function() {
    ;
  }).prototype = charts.ChartBehavior.prototype;
  dart.addTypeTests(charts.ChartBehavior);
  dart.setLibraryUri(charts.ChartBehavior, "package:syncfusion_flutter_charts/charts.dart");
  charts.ChartSelectionBehavior = class ChartSelectionBehavior extends core.Object {};
  (charts.ChartSelectionBehavior.new = function() {
    ;
  }).prototype = charts.ChartSelectionBehavior.prototype;
  dart.addTypeTests(charts.ChartSelectionBehavior);
  dart.setLibraryUri(charts.ChartSelectionBehavior, "package:syncfusion_flutter_charts/charts.dart");
  charts.ZoomBehavior = class ZoomBehavior extends core.Object {};
  (charts.ZoomBehavior.new = function() {
    ;
  }).prototype = charts.ZoomBehavior.prototype;
  dart.addTypeTests(charts.ZoomBehavior);
  dart.setLibraryUri(charts.ZoomBehavior, "package:syncfusion_flutter_charts/charts.dart");
  const _path$ = dart.privateName(charts, "_path");
  const _strokePath$ = dart.privateName(charts, "_strokePath");
  const _pathRect$ = dart.privateName(charts, "_pathRect");
  const _defaultFillColor = dart.privateName(charts, "_defaultFillColor");
  const _defaultStrokeColor = dart.privateName(charts, "_defaultStrokeColor");
  const _checkWithSelectionState = dart.privateName(charts, "_checkWithSelectionState");
  const _point = dart.privateName(charts, "_point");
  const _oldPoint = dart.privateName(charts, "_oldPoint");
  const _oldRegion = dart.privateName(charts, "_oldRegion");
  const _currentPoint = dart.privateName(charts, "_currentPoint");
  const _nextPoint = dart.privateName(charts, "_nextPoint");
  const color$7 = dart.privateName(charts, "ChartSegment.color");
  const strokeColor$ = dart.privateName(charts, "ChartSegment.strokeColor");
  const strokeWidth$ = dart.privateName(charts, "ChartSegment.strokeWidth");
  const fillPaint = dart.privateName(charts, "ChartSegment.fillPaint");
  const strokePaint = dart.privateName(charts, "ChartSegment.strokePaint");
  const series = dart.privateName(charts, "ChartSegment.series");
  const oldSeries = dart.privateName(charts, "ChartSegment.oldSeries");
  const animationFactor = dart.privateName(charts, "ChartSegment.animationFactor");
  const segmentRect = dart.privateName(charts, "ChartSegment.segmentRect");
  const currentSegmentIndex = dart.privateName(charts, "ChartSegment.currentSegmentIndex");
  const _currentPoint$ = dart.privateName(charts, "ChartSegment._currentPoint");
  const _nextPoint$ = dart.privateName(charts, "ChartSegment._nextPoint");
  const chart = dart.privateName(charts, "ChartSegment.chart");
  charts.ChartSegment = class ChartSegment extends core.Object {
    get color() {
      return this[color$7];
    }
    set color(value) {
      this[color$7] = value;
    }
    get strokeColor() {
      return this[strokeColor$];
    }
    set strokeColor(value) {
      this[strokeColor$] = value;
    }
    get strokeWidth() {
      return this[strokeWidth$];
    }
    set strokeWidth(value) {
      this[strokeWidth$] = value;
    }
    get fillPaint() {
      return this[fillPaint];
    }
    set fillPaint(value) {
      this[fillPaint] = value;
    }
    get strokePaint() {
      return this[strokePaint];
    }
    set strokePaint(value) {
      this[strokePaint] = value;
    }
    get series() {
      return this[series];
    }
    set series(value) {
      this[series] = value;
    }
    get oldSeries() {
      return this[oldSeries];
    }
    set oldSeries(value) {
      this[oldSeries] = value;
    }
    get animationFactor() {
      return this[animationFactor];
    }
    set animationFactor(value) {
      this[animationFactor] = value;
    }
    get segmentRect() {
      return this[segmentRect];
    }
    set segmentRect(value) {
      this[segmentRect] = value;
    }
    get currentSegmentIndex() {
      return this[currentSegmentIndex];
    }
    set currentSegmentIndex(value) {
      this[currentSegmentIndex] = value;
    }
    get [_currentPoint]() {
      return this[_currentPoint$];
    }
    set [_currentPoint](value) {
      this[_currentPoint$] = value;
    }
    get [_nextPoint]() {
      return this[_nextPoint$];
    }
    set [_nextPoint](value) {
      this[_nextPoint$] = value;
    }
    get chart() {
      return this[chart];
    }
    set chart(value) {
      this[chart] = value;
    }
  };
  (charts.ChartSegment.new = function() {
    this[color$7] = null;
    this[strokeColor$] = null;
    this[strokeWidth$] = null;
    this[fillPaint] = null;
    this[strokePaint] = null;
    this[series] = null;
    this[oldSeries] = null;
    this[animationFactor] = null;
    this[segmentRect] = null;
    this[_defaultFillColor] = null;
    this[_defaultStrokeColor] = null;
    this[currentSegmentIndex] = null;
    this[_seriesIndex] = null;
    this[_currentPoint$] = null;
    this[_point] = null;
    this[_oldPoint] = null;
    this[_nextPoint$] = null;
    this[_oldSeriesVisible] = null;
    this[_oldRegion] = null;
    this[chart] = null;
    ;
  }).prototype = charts.ChartSegment.prototype;
  dart.addTypeTests(charts.ChartSegment);
  dart.setLibraryUri(charts.ChartSegment, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.ChartSegment, () => ({
    __proto__: dart.getFields(charts.ChartSegment.__proto__),
    color: dart.fieldType(ui.Color),
    strokeColor: dart.fieldType(ui.Color),
    strokeWidth: dart.fieldType(core.double),
    fillPaint: dart.fieldType(ui.Paint),
    strokePaint: dart.fieldType(ui.Paint),
    series: dart.fieldType(charts.XyDataSeries),
    oldSeries: dart.fieldType(charts.XyDataSeries),
    animationFactor: dart.fieldType(core.double),
    segmentRect: dart.fieldType(ui.RRect),
    [_defaultFillColor]: dart.fieldType(ui.Paint),
    [_defaultStrokeColor]: dart.fieldType(ui.Paint),
    currentSegmentIndex: dart.fieldType(core.int),
    [_seriesIndex]: dart.fieldType(core.int),
    [_currentPoint]: dart.fieldType(charts.CartesianChartPoint),
    [_point]: dart.fieldType(charts.CartesianChartPoint),
    [_oldPoint]: dart.fieldType(charts.CartesianChartPoint),
    [_nextPoint]: dart.fieldType(charts.CartesianChartPoint),
    [_oldSeriesVisible]: dart.fieldType(core.bool),
    [_oldRegion]: dart.fieldType(ui.Rect),
    chart: dart.fieldType(charts.SfCartesianChart)
  }));
  const series$3 = dart.privateName(charts, "AreaSegment.series");
  charts.AreaSegment = class AreaSegment extends charts.ChartSegment {
    get series() {
      return this[series$3];
    }
    set series(value) {
      this[series$3] = value;
    }
    getFillPaint() {
      this.fillPaint = ui.Paint.new();
      if (this.series.gradient == null) {
        if (this.color != null) {
          this.fillPaint.color = this.color;
          this.fillPaint.style = ui.PaintingStyle.fill;
        }
      } else {
        this.fillPaint = this[_pathRect$] != null ? charts._getLinearGradientPaint(this.series.gradient, this[_pathRect$], this.series[_chart][_requireInvertedAxis]) : this.fillPaint;
      }
      if (this.fillPaint.color != null) this.fillPaint.color = dart.notNull(this.series.opacity) < 1 && !dart.equals(this.fillPaint.color, colors$.Colors.transparent) ? this.fillPaint.color.withOpacity(this.series.opacity) : this.fillPaint.color;
      this[_defaultFillColor] = this.fillPaint;
      return this.fillPaint;
    }
    getStrokePaint() {
      let t2;
      let strokePaint = ui.Paint.new();
      if (this.strokeColor != null) {
        t2 = strokePaint;
        t2.color = this.series.borderColor;
        t2.style = ui.PaintingStyle.stroke;
        t2.strokeWidth = this.series.borderWidth;
        t2;
        this.series.borderWidth === 0 ? strokePaint.color = colors$.Colors.transparent : strokePaint.color;
      }
      strokePaint.strokeCap = ui.StrokeCap.round;
      this[_defaultStrokeColor] = strokePaint;
      return strokePaint;
    }
    calculateSegmentPoints() {
    }
    onPaint(canvas) {
      this[_pathRect$] = this[_path$].getBounds();
      this.series.selectionSettings[_selectionRenderer][_checkWithSelectionState](this, this.series[_chart]);
      canvas.drawPath(this[_path$], this.series.gradient == null ? this.fillPaint : this.getFillPaint());
      if (!dart.equals(this.strokePaint.color, colors$.Colors.transparent)) charts._drawDashedLine(canvas, this.series.dashArray, this.strokePaint, this[_strokePath$]);
    }
  };
  (charts.AreaSegment.new = function() {
    this[_path$] = null;
    this[_strokePath$] = null;
    this[_pathRect$] = null;
    this[series$3] = null;
    charts.AreaSegment.__proto__.new.call(this);
    ;
  }).prototype = charts.AreaSegment.prototype;
  dart.addTypeTests(charts.AreaSegment);
  dart.setMethodSignature(charts.AreaSegment, () => ({
    __proto__: dart.getMethods(charts.AreaSegment.__proto__),
    getFillPaint: dart.fnType(ui.Paint, []),
    getStrokePaint: dart.fnType(ui.Paint, []),
    calculateSegmentPoints: dart.fnType(dart.void, []),
    onPaint: dart.fnType(dart.void, [ui.Canvas])
  }));
  dart.setLibraryUri(charts.AreaSegment, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.AreaSegment, () => ({
    __proto__: dart.getFields(charts.AreaSegment.__proto__),
    [_path$]: dart.fieldType(ui.Path),
    [_strokePath$]: dart.fieldType(ui.Path),
    [_pathRect$]: dart.fieldType(ui.Rect),
    series: dart.fieldType(charts.XyDataSeries)
  }));
  const series$4 = dart.privateName(charts, "StackedAreaSegment.series");
  charts.StackedAreaSegment = class StackedAreaSegment extends charts.ChartSegment {
    get series() {
      return this[series$4];
    }
    set series(value) {
      this[series$4] = value;
    }
    getFillPaint() {
      this.fillPaint = ui.Paint.new();
      if (this.series.gradient == null) {
        if (this.color != null) {
          this.fillPaint.color = this.color;
          this.fillPaint.style = ui.PaintingStyle.fill;
        }
      } else {
        this.fillPaint = this[_pathRect$] != null ? charts._getLinearGradientPaint(this.series.gradient, this[_pathRect$], this.series[_chart][_requireInvertedAxis]) : this.fillPaint;
      }
      if (this.fillPaint.color != null) this.fillPaint.color = dart.notNull(this.series.opacity) < 1 && !dart.equals(this.fillPaint.color, colors$.Colors.transparent) ? this.fillPaint.color.withOpacity(this.series.opacity) : this.fillPaint.color;
      this[_defaultFillColor] = this.fillPaint;
      return this.fillPaint;
    }
    getStrokePaint() {
      let t2;
      let strokePaint = ui.Paint.new();
      if (this.strokeColor != null) {
        t2 = strokePaint;
        t2.color = this.series.borderColor;
        t2.style = ui.PaintingStyle.stroke;
        t2.strokeWidth = this.series.borderWidth;
        t2;
        this.series.borderWidth === 0 ? strokePaint.color = colors$.Colors.transparent : strokePaint.color;
      }
      strokePaint.strokeCap = ui.StrokeCap.round;
      this[_defaultStrokeColor] = strokePaint;
      return strokePaint;
    }
    calculateSegmentPoints() {
    }
    onPaint(canvas) {
      charts._renderStackedAreaSeries(charts._StackedSeriesBase._check(this.series), this.fillPaint, this.strokePaint, canvas, this[_seriesIndex], dart.bind(this, 'getFillPaint'));
    }
  };
  (charts.StackedAreaSegment.new = function() {
    this[_pathRect$] = null;
    this[series$4] = null;
    charts.StackedAreaSegment.__proto__.new.call(this);
    ;
  }).prototype = charts.StackedAreaSegment.prototype;
  dart.addTypeTests(charts.StackedAreaSegment);
  dart.setMethodSignature(charts.StackedAreaSegment, () => ({
    __proto__: dart.getMethods(charts.StackedAreaSegment.__proto__),
    getFillPaint: dart.fnType(ui.Paint, []),
    getStrokePaint: dart.fnType(ui.Paint, []),
    calculateSegmentPoints: dart.fnType(dart.void, []),
    onPaint: dart.fnType(dart.void, [ui.Canvas])
  }));
  dart.setLibraryUri(charts.StackedAreaSegment, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.StackedAreaSegment, () => ({
    __proto__: dart.getFields(charts.StackedAreaSegment.__proto__),
    [_pathRect$]: dart.fieldType(ui.Rect),
    series: dart.fieldType(charts.XyDataSeries)
  }));
  const series$5 = dart.privateName(charts, "StackedArea100Segment.series");
  charts.StackedArea100Segment = class StackedArea100Segment extends charts.ChartSegment {
    get series() {
      return this[series$5];
    }
    set series(value) {
      this[series$5] = value;
    }
    getFillPaint() {
      this.fillPaint = ui.Paint.new();
      if (this.series.gradient == null) {
        if (this.color != null) {
          this.fillPaint.color = this.color;
          this.fillPaint.style = ui.PaintingStyle.fill;
        }
      } else {
        this.fillPaint = this[_pathRect$] != null ? charts._getLinearGradientPaint(this.series.gradient, this[_pathRect$], this.series[_chart][_requireInvertedAxis]) : this.fillPaint;
      }
      if (this.fillPaint.color != null) this.fillPaint.color = dart.notNull(this.series.opacity) < 1 && !dart.equals(this.fillPaint.color, colors$.Colors.transparent) ? this.fillPaint.color.withOpacity(this.series.opacity) : this.fillPaint.color;
      this[_defaultFillColor] = this.fillPaint;
      return this.fillPaint;
    }
    getStrokePaint() {
      let t2;
      let strokePaint = ui.Paint.new();
      if (this.strokeColor != null) {
        t2 = strokePaint;
        t2.color = this.series.borderColor;
        t2.style = ui.PaintingStyle.stroke;
        t2.strokeWidth = this.series.borderWidth;
        t2;
        this.series.borderWidth === 0 ? strokePaint.color = colors$.Colors.transparent : strokePaint.color;
      }
      strokePaint.strokeCap = ui.StrokeCap.round;
      this[_defaultStrokeColor] = strokePaint;
      return strokePaint;
    }
    calculateSegmentPoints() {
    }
    onPaint(canvas) {
      charts._renderStackedAreaSeries(charts._StackedSeriesBase._check(this.series), this.fillPaint, this.strokePaint, canvas, this[_seriesIndex], dart.bind(this, 'getFillPaint'));
    }
  };
  (charts.StackedArea100Segment.new = function() {
    this[_pathRect$] = null;
    this[series$5] = null;
    charts.StackedArea100Segment.__proto__.new.call(this);
    ;
  }).prototype = charts.StackedArea100Segment.prototype;
  dart.addTypeTests(charts.StackedArea100Segment);
  dart.setMethodSignature(charts.StackedArea100Segment, () => ({
    __proto__: dart.getMethods(charts.StackedArea100Segment.__proto__),
    getFillPaint: dart.fnType(ui.Paint, []),
    getStrokePaint: dart.fnType(ui.Paint, []),
    calculateSegmentPoints: dart.fnType(dart.void, []),
    onPaint: dart.fnType(dart.void, [ui.Canvas])
  }));
  dart.setLibraryUri(charts.StackedArea100Segment, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.StackedArea100Segment, () => ({
    __proto__: dart.getFields(charts.StackedArea100Segment.__proto__),
    [_pathRect$]: dart.fieldType(ui.Rect),
    series: dart.fieldType(charts.XyDataSeries)
  }));
  const _trackBarRect = dart.privateName(charts, "_trackBarRect");
  const _trackerFillPaint = dart.privateName(charts, "_trackerFillPaint");
  const _trackerStrokePaint = dart.privateName(charts, "_trackerStrokePaint");
  const _getTrackerFillPaint = dart.privateName(charts, "_getTrackerFillPaint");
  const _getTrackerStrokePaint = dart.privateName(charts, "_getTrackerStrokePaint");
  const x1 = dart.privateName(charts, "BarSegment.x1");
  const y1 = dart.privateName(charts, "BarSegment.y1");
  const x2 = dart.privateName(charts, "BarSegment.x2");
  const y2 = dart.privateName(charts, "BarSegment.y2");
  const _currentPoint$0 = dart.privateName(charts, "BarSegment._currentPoint");
  const path = dart.privateName(charts, "BarSegment.path");
  charts.BarSegment = class BarSegment extends charts.ChartSegment {
    get x1() {
      return this[x1];
    }
    set x1(value) {
      this[x1] = value;
    }
    get y1() {
      return this[y1];
    }
    set y1(value) {
      this[y1] = value;
    }
    get x2() {
      return this[x2];
    }
    set x2(value) {
      this[x2] = value;
    }
    get y2() {
      return this[y2];
    }
    set y2(value) {
      this[y2] = value;
    }
    get [_currentPoint]() {
      return this[_currentPoint$0];
    }
    set [_currentPoint](value) {
      this[_currentPoint$0] = value;
    }
    get path() {
      return this[path];
    }
    set path(value) {
      this[path] = value;
    }
    getFillPaint() {
      let t2;
      let hasPointColor = this.series.pointColorMapper != null ? true : false;
      if (this.series.gradient == null) {
        if (this.color != null) {
          this.fillPaint = (t2 = ui.Paint.new(), t2.color = dart.equals(this[_currentPoint].isEmpty, true) ? this.series.emptyPointSettings.color : hasPointColor && this[_currentPoint].pointColorMapper != null ? this[_currentPoint].pointColorMapper : this.color, t2.style = ui.PaintingStyle.fill, t2);
        }
      } else {
        this.fillPaint = charts._getLinearGradientPaint(this.series.gradient, this[_currentPoint].region, this.series[_chart][_requireInvertedAxis]);
      }
      if (this.fillPaint.color != null) this.fillPaint.color = dart.notNull(this.series.opacity) < 1 && !dart.equals(this.fillPaint.color, colors$.Colors.transparent) ? this.fillPaint.color.withOpacity(this.series.opacity) : this.fillPaint.color;
      this[_defaultFillColor] = this.fillPaint;
      return this.fillPaint;
    }
    getStrokePaint() {
      let t2;
      this.strokePaint = (t2 = ui.Paint.new(), t2.color = dart.equals(this[_currentPoint].isEmpty, true) ? this.series.emptyPointSettings.borderColor : this.strokeColor, t2.style = ui.PaintingStyle.stroke, t2.strokeWidth = dart.equals(this[_currentPoint].isEmpty, true) ? this.series.emptyPointSettings.borderWidth : this.strokeWidth, t2);
      this.series.borderWidth === 0 ? this.strokePaint.color = colors$.Colors.transparent : this.strokePaint.color;
      this[_defaultStrokeColor] = this.strokePaint;
      return this.strokePaint;
    }
    [_getTrackerFillPaint]() {
      let t2;
      let barSeries = charts.BarSeries._check(this.series);
      if (this.color != null) {
        this[_trackerFillPaint] = (t2 = ui.Paint.new(), t2.color = barSeries.trackColor, t2.style = ui.PaintingStyle.fill, t2);
      }
      return this[_trackerFillPaint];
    }
    [_getTrackerStrokePaint]() {
      let t2;
      let barSeries = charts.BarSeries._check(this.series);
      this[_trackerStrokePaint] = (t2 = ui.Paint.new(), t2.color = barSeries.trackBorderColor, t2.strokeWidth = barSeries.trackBorderWidth, t2.style = ui.PaintingStyle.stroke, t2);
      barSeries.trackBorderWidth === 0 ? this[_trackerStrokePaint].color = colors$.Colors.transparent : this[_trackerStrokePaint].color;
      return this[_trackerStrokePaint];
    }
    calculateSegmentPoints() {
    }
    onPaint(canvas) {
      let t2, t2$, t2$0, t2$1;
      let barSeries = charts.BarSeries._check(this.series);
      this.series.selectionSettings[_selectionRenderer][_checkWithSelectionState](this.series.segments[$_get](this.currentSegmentIndex), this.series[_chart]);
      if (this[_trackerFillPaint] != null && dart.test(barSeries.isTrackVisible)) {
        dart.notNull(this.series.animationDuration) > 0 ? charts._animateRectSeries(canvas, this.series, this[_trackerFillPaint], this[_trackBarRect], core.num._check(this[_currentPoint].yValue), this.animationFactor, this[_oldPoint] != null ? this[_oldPoint].region : this[_oldRegion], core.num._check((t2 = this[_oldPoint], t2 == null ? null : t2.yValue)), this[_oldSeriesVisible]) : canvas.drawRRect(this[_trackBarRect], this[_trackerFillPaint]);
      }
      if (this[_trackerStrokePaint] != null && dart.test(barSeries.isTrackVisible)) {
        dart.notNull(this.series.animationDuration) > 0 ? charts._animateRectSeries(canvas, this.series, this[_trackerStrokePaint], this[_trackBarRect], core.num._check(this[_currentPoint].yValue), this.animationFactor, this[_oldPoint] != null ? this[_oldPoint].region : this[_oldRegion], core.num._check((t2$ = this[_oldPoint], t2$ == null ? null : t2$.yValue)), this[_oldSeriesVisible]) : canvas.drawRRect(this[_trackBarRect], this[_trackerStrokePaint]);
      }
      if (this.fillPaint != null) {
        dart.notNull(this.series.animationDuration) > 0 ? charts._animateRectSeries(canvas, this.series, this.fillPaint, this.segmentRect, core.num._check(this[_currentPoint].yValue), this.animationFactor, this[_oldPoint] != null ? this[_oldPoint].region : this[_oldRegion], core.num._check((t2$0 = this[_oldPoint], t2$0 == null ? null : t2$0.yValue)), this[_oldSeriesVisible]) : canvas.drawRRect(this.segmentRect, this.fillPaint);
      }
      if (this.strokePaint != null) {
        if (this.series.dashArray[$_get](0) !== 0 && this.series.dashArray[$_get](1) !== 0) {
          charts._drawDashedLine(canvas, this.series.dashArray, this.strokePaint, this.path);
        } else {
          dart.notNull(this.series.animationDuration) > 0 ? charts._animateRectSeries(canvas, this.series, this.strokePaint, this.segmentRect, core.num._check(this[_currentPoint].yValue), this.animationFactor, this[_oldPoint] != null ? this[_oldPoint].region : this[_oldRegion], core.num._check((t2$1 = this[_oldPoint], t2$1 == null ? null : t2$1.yValue)), this[_oldSeriesVisible]) : canvas.drawRRect(this.segmentRect, this.strokePaint);
        }
      }
    }
  };
  (charts.BarSegment.new = function() {
    this[x1] = null;
    this[y1] = null;
    this[x2] = null;
    this[y2] = null;
    this[_trackBarRect] = null;
    this[_currentPoint$0] = null;
    this[_trackerFillPaint] = null;
    this[_trackerStrokePaint] = null;
    this[path] = null;
    charts.BarSegment.__proto__.new.call(this);
    ;
  }).prototype = charts.BarSegment.prototype;
  dart.addTypeTests(charts.BarSegment);
  dart.setMethodSignature(charts.BarSegment, () => ({
    __proto__: dart.getMethods(charts.BarSegment.__proto__),
    getFillPaint: dart.fnType(ui.Paint, []),
    getStrokePaint: dart.fnType(ui.Paint, []),
    [_getTrackerFillPaint]: dart.fnType(ui.Paint, []),
    [_getTrackerStrokePaint]: dart.fnType(ui.Paint, []),
    calculateSegmentPoints: dart.fnType(dart.void, []),
    onPaint: dart.fnType(dart.void, [ui.Canvas])
  }));
  dart.setLibraryUri(charts.BarSegment, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.BarSegment, () => ({
    __proto__: dart.getFields(charts.BarSegment.__proto__),
    x1: dart.fieldType(core.num),
    y1: dart.fieldType(core.num),
    x2: dart.fieldType(core.num),
    y2: dart.fieldType(core.num),
    [_trackBarRect]: dart.fieldType(ui.RRect),
    [_currentPoint]: dart.fieldType(charts.CartesianChartPoint),
    [_trackerFillPaint]: dart.fieldType(ui.Paint),
    [_trackerStrokePaint]: dart.fieldType(ui.Paint),
    path: dart.fieldType(ui.Path)
  }));
  const centerX = dart.privateName(charts, "BubbleSegment.centerX");
  const centerY = dart.privateName(charts, "BubbleSegment.centerY");
  const radius$1 = dart.privateName(charts, "BubbleSegment.radius");
  const xData = dart.privateName(charts, "BubbleSegment.xData");
  const yData = dart.privateName(charts, "BubbleSegment.yData");
  const size = dart.privateName(charts, "BubbleSegment.size");
  const series$6 = dart.privateName(charts, "BubbleSegment.series");
  const _currentPoint$1 = dart.privateName(charts, "BubbleSegment._currentPoint");
  charts.BubbleSegment = class BubbleSegment extends charts.ChartSegment {
    get centerX() {
      return this[centerX];
    }
    set centerX(value) {
      this[centerX] = value;
    }
    get centerY() {
      return this[centerY];
    }
    set centerY(value) {
      this[centerY] = value;
    }
    get radius() {
      return this[radius$1];
    }
    set radius(value) {
      this[radius$1] = value;
    }
    get xData() {
      return this[xData];
    }
    set xData(value) {
      this[xData] = value;
    }
    get yData() {
      return this[yData];
    }
    set yData(value) {
      this[yData] = value;
    }
    get size() {
      return this[size];
    }
    set size(value) {
      this[size] = value;
    }
    get series() {
      return this[series$6];
    }
    set series(value) {
      this[series$6] = value;
    }
    get [_currentPoint]() {
      return this[_currentPoint$1];
    }
    set [_currentPoint](value) {
      this[_currentPoint$1] = value;
    }
    getFillPaint() {
      let t2;
      let hasPointColor = this.series.pointColorMapper != null ? true : false;
      if (this.series.gradient == null) {
        if (this.color != null) {
          this.fillPaint = (t2 = ui.Paint.new(), t2.color = dart.equals(this[_currentPoint].isEmpty, true) ? this.series.emptyPointSettings.color : hasPointColor && this[_currentPoint].pointColorMapper != null ? this[_currentPoint].pointColorMapper : this.color, t2.style = ui.PaintingStyle.fill, t2);
        }
      } else {
        this.fillPaint = charts._getLinearGradientPaint(this.series.gradient, this[_currentPoint].region, this.series[_chart][_requireInvertedAxis]);
      }
      if (this.fillPaint.color != null) this.fillPaint.color = dart.notNull(this.series.opacity) < 1 && !dart.equals(this.fillPaint.color, colors$.Colors.transparent) ? this.fillPaint.color.withOpacity(this.series.opacity) : this.fillPaint.color;
      this[_defaultFillColor] = this.fillPaint;
      return this.fillPaint;
    }
    getStrokePaint() {
      let t2;
      let strokePaint = (t2 = ui.Paint.new(), t2.color = dart.equals(this[_currentPoint].isEmpty, true) ? this.series.emptyPointSettings.borderColor : this.strokeColor, t2.style = ui.PaintingStyle.stroke, t2.strokeWidth = dart.equals(this[_currentPoint].isEmpty, true) ? this.series.emptyPointSettings.borderWidth : this.strokeWidth, t2);
      this.series.borderWidth === 0 ? strokePaint.color = colors$.Colors.transparent : strokePaint.color;
      return strokePaint;
    }
    calculateSegmentPoints() {
      this.centerX = this.centerY = 0 / 0;
      let rect = charts._calculatePlotOffset(this.series[_chart][_chartAxis][_axisClipRect], new ui.Offset.new(this.series[_xAxis$].plotOffset, this.series[_yAxis$].plotOffset));
      let localtion = charts._calculatePoint(core.num._check(this[_currentPoint].xValue), core.num._check(this[_currentPoint].yValue), this.series[_xAxis$], this.series[_yAxis$], this.series[_chart][_requireInvertedAxis], this.series, rect);
      this.centerX = localtion.x;
      this.centerY = localtion.y;
      this.radius = this.calculateBubbleRadius();
      this[_currentPoint].region = new ui.Rect.fromLTRB(dart.notNull(localtion.x) - 2 * dart.notNull(this.radius), dart.notNull(localtion.y) - 2 * dart.notNull(this.radius), dart.notNull(localtion.x) + 2 * dart.notNull(this.radius), dart.notNull(localtion.y) + 2 * dart.notNull(this.radius));
      this.size = this.radius = dart.notNull(this[_currentPoint].region.width) / 2;
    }
    calculateBubbleRadius() {
      let t2;
      let bubbleSeries = charts.BubbleSeries._check(this.series);
      let bubbleRadius = null;
      let sizeRange = null;
      let radiusRange = null;
      let maxSize = null;
      let minSize = null;
      maxSize = bubbleSeries[_maxSize];
      minSize = bubbleSeries[_minSize];
      sizeRange = dart.notNull(maxSize) - dart.notNull(minSize);
      let bubbleSize = (t2 = this[_currentPoint].bubbleSize, t2 == null ? 4.0 : t2)[$toDouble]();
      if (bubbleSeries.sizeValueMapper == null)
        bubbleSeries.minimumRadius != null ? bubbleRadius = bubbleSeries.minimumRadius : bubbleRadius = bubbleSeries.maximumRadius;
      else {
        if (bubbleSeries.maximumRadius != null && bubbleSeries.minimumRadius != null) {
          if (sizeRange === 0)
            bubbleRadius = bubbleSeries.maximumRadius;
          else {
            radiusRange = (dart.notNull(bubbleSeries.maximumRadius) - dart.notNull(bubbleSeries.minimumRadius)) * 2;
            bubbleRadius = (bubbleSize[$abs]() - dart.notNull(minSize)) * dart.notNull(radiusRange) / dart.notNull(sizeRange) + dart.notNull(bubbleSeries.minimumRadius);
          }
        }
      }
      return bubbleRadius;
    }
    onPaint(canvas) {
      let t2, t2$, t2$0;
      this.series.selectionSettings[_selectionRenderer][_checkWithSelectionState](this.series.segments[$_get](this.currentSegmentIndex), this.series[_chart]);
      this.segmentRect = new ui.RRect.fromRectAndRadius(this[_currentPoint].region, ui.Radius.zero);
      if (dart.test(this.series[_chart][_chartState].widgetNeedUpdate) && !dart.test(this.series[_chart][_chartState][_isLegendToggled]) && this.series[_chart][_chartState].prevWidgetSeries != null && dart.test(this.series[_chart][_chartState].prevWidgetSeries[$isNotEmpty]) && this.oldSeries != null && dart.test(this.oldSeries.segments[$isNotEmpty]) && charts.BubbleSegment.is(this.oldSeries.segments[$_get](0)) && dart.notNull(this.series.animationDuration) > 0 && this[_oldPoint] != null) {
        let currentSegment = charts.BubbleSegment._check(this.series.segments[$_get](this.currentSegmentIndex));
        let oldSegment = charts.BubbleSegment._check(dart.notNull(currentSegment.oldSeries.segments[$length]) - 1 >= dart.notNull(this.currentSegmentIndex) ? currentSegment.oldSeries.segments[$_get](this.currentSegmentIndex) : null);
        charts._animateBubbleSeries(canvas, this.centerX, this.centerY, (t2 = oldSegment, t2 == null ? null : t2.centerX), (t2$ = oldSegment, t2$ == null ? null : t2$.centerY), (t2$0 = oldSegment, t2$0 == null ? null : t2$0.size), this.animationFactor, this.radius, this.strokePaint, this.fillPaint, this.series[_chart].isTransposed);
      } else {
        canvas.drawCircle(new ui.Offset.new(this.centerX, this.centerY), dart.notNull(this.radius) * dart.notNull(this.animationFactor), this.fillPaint);
        canvas.drawCircle(new ui.Offset.new(this.centerX, this.centerY), dart.notNull(this.radius) * dart.notNull(this.animationFactor), this.strokePaint);
      }
    }
  };
  (charts.BubbleSegment.new = function() {
    this[centerX] = null;
    this[centerY] = null;
    this[radius$1] = null;
    this[xData] = null;
    this[yData] = null;
    this[size] = null;
    this[series$6] = null;
    this[_currentPoint$1] = null;
    charts.BubbleSegment.__proto__.new.call(this);
    ;
  }).prototype = charts.BubbleSegment.prototype;
  dart.addTypeTests(charts.BubbleSegment);
  dart.setMethodSignature(charts.BubbleSegment, () => ({
    __proto__: dart.getMethods(charts.BubbleSegment.__proto__),
    getFillPaint: dart.fnType(ui.Paint, []),
    getStrokePaint: dart.fnType(ui.Paint, []),
    calculateSegmentPoints: dart.fnType(dart.void, []),
    calculateBubbleRadius: dart.fnType(core.num, []),
    onPaint: dart.fnType(dart.void, [ui.Canvas])
  }));
  dart.setLibraryUri(charts.BubbleSegment, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.BubbleSegment, () => ({
    __proto__: dart.getFields(charts.BubbleSegment.__proto__),
    centerX: dart.fieldType(core.num),
    centerY: dart.fieldType(core.num),
    radius: dart.fieldType(core.num),
    xData: dart.fieldType(core.num),
    yData: dart.fieldType(core.num),
    size: dart.fieldType(core.num),
    series: dart.fieldType(charts.XyDataSeries),
    [_currentPoint]: dart.fieldType(charts.CartesianChartPoint)
  }));
  const _trackRect = dart.privateName(charts, "_trackRect");
  const x1$ = dart.privateName(charts, "ColumnSegment.x1");
  const y1$ = dart.privateName(charts, "ColumnSegment.y1");
  const x2$ = dart.privateName(charts, "ColumnSegment.x2");
  const y2$ = dart.privateName(charts, "ColumnSegment.y2");
  const path$ = dart.privateName(charts, "ColumnSegment.path");
  const _currentPoint$2 = dart.privateName(charts, "ColumnSegment._currentPoint");
  charts.ColumnSegment = class ColumnSegment extends charts.ChartSegment {
    get x1() {
      return this[x1$];
    }
    set x1(value) {
      this[x1$] = value;
    }
    get y1() {
      return this[y1$];
    }
    set y1(value) {
      this[y1$] = value;
    }
    get x2() {
      return this[x2$];
    }
    set x2(value) {
      this[x2$] = value;
    }
    get y2() {
      return this[y2$];
    }
    set y2(value) {
      this[y2$] = value;
    }
    get path() {
      return this[path$];
    }
    set path(value) {
      this[path$] = value;
    }
    get [_currentPoint]() {
      return this[_currentPoint$2];
    }
    set [_currentPoint](value) {
      this[_currentPoint$2] = value;
    }
    getFillPaint() {
      let t2;
      if (this.series.gradient == null) {
        if (this.color != null) {
          this.fillPaint = (t2 = ui.Paint.new(), t2.color = dart.equals(this[_currentPoint].isEmpty, true) ? this.series.emptyPointSettings.color : this[_currentPoint].pointColorMapper != null ? this[_currentPoint].pointColorMapper : this.color, t2.style = ui.PaintingStyle.fill, t2);
        }
      } else {
        this.fillPaint = charts._getLinearGradientPaint(this.series.gradient, this[_currentPoint].region, this.series[_chart][_requireInvertedAxis]);
      }
      if (this.fillPaint.color != null) this.fillPaint.color = dart.notNull(this.series.opacity) < 1 && !dart.equals(this.fillPaint.color, colors$.Colors.transparent) ? this.fillPaint.color.withOpacity(this.series.opacity) : this.fillPaint.color;
      this[_defaultFillColor] = this.fillPaint;
      return this.fillPaint;
    }
    getStrokePaint() {
      let t2;
      if (this.strokeColor != null) {
        this.strokePaint = (t2 = ui.Paint.new(), t2.color = dart.equals(this[_currentPoint].isEmpty, true) ? this.series.emptyPointSettings.borderColor : this.strokeColor, t2.style = ui.PaintingStyle.stroke, t2.strokeWidth = dart.equals(this[_currentPoint].isEmpty, true) ? this.series.emptyPointSettings.borderWidth : this.strokeWidth, t2);
        this[_defaultStrokeColor] = this.strokePaint;
      }
      this.series.borderWidth === 0 ? this.strokePaint.color = colors$.Colors.transparent : this.strokePaint.color;
      return this.strokePaint;
    }
    [_getTrackerFillPaint]() {
      let t2;
      let columnSeries = charts.ColumnSeries._check(this.series);
      if (this.color != null) {
        this[_trackerFillPaint] = (t2 = ui.Paint.new(), t2.color = columnSeries.trackColor, t2.style = ui.PaintingStyle.fill, t2);
      }
      return this[_trackerFillPaint];
    }
    [_getTrackerStrokePaint]() {
      let t2;
      let columnSeries = charts.ColumnSeries._check(this.series);
      this[_trackerStrokePaint] = (t2 = ui.Paint.new(), t2.color = columnSeries.trackBorderColor, t2.strokeWidth = columnSeries.trackBorderWidth, t2.style = ui.PaintingStyle.stroke, t2);
      columnSeries.trackBorderWidth === 0 ? this[_trackerStrokePaint].color = colors$.Colors.transparent : this[_trackerStrokePaint].color;
      return this[_trackerStrokePaint];
    }
    calculateSegmentPoints() {
    }
    onPaint(canvas) {
      let t2, t2$, t2$0, t2$1;
      let columnSeries = charts.ColumnSeries._check(this.series);
      this.series.selectionSettings[_selectionRenderer][_checkWithSelectionState](this.series.segments[$_get](this.currentSegmentIndex), this.series[_chart]);
      if (this[_trackerFillPaint] != null && dart.test(columnSeries.isTrackVisible)) {
        dart.notNull(this.series.animationDuration) > 0 ? charts._animateRectSeries(canvas, this.series, this[_trackerFillPaint], this[_trackRect], core.num._check(this[_currentPoint].yValue), this.animationFactor, this[_oldPoint] != null ? this[_oldPoint].region : this[_oldRegion], core.num._check((t2 = this[_oldPoint], t2 == null ? null : t2.yValue)), this[_oldSeriesVisible]) : canvas.drawRRect(this[_trackRect], this[_trackerFillPaint]);
      }
      if (this[_trackerStrokePaint] != null && dart.test(columnSeries.isTrackVisible)) {
        dart.notNull(this.series.animationDuration) > 0 ? charts._animateRectSeries(canvas, this.series, this[_trackerStrokePaint], this[_trackRect], core.num._check(this[_currentPoint].yValue), this.animationFactor, this[_oldPoint] != null ? this[_oldPoint].region : this[_oldRegion], core.num._check((t2$ = this[_oldPoint], t2$ == null ? null : t2$.yValue)), this[_oldSeriesVisible]) : canvas.drawRRect(this[_trackRect], this[_trackerStrokePaint]);
      }
      if (this.fillPaint != null) {
        dart.notNull(this.series.animationDuration) > 0 ? charts._animateRectSeries(canvas, this.series, this.fillPaint, this.segmentRect, core.num._check(this[_currentPoint].yValue), this.animationFactor, this[_oldPoint] != null ? this[_oldPoint].region : this[_oldRegion], core.num._check((t2$0 = this[_oldPoint], t2$0 == null ? null : t2$0.yValue)), this[_oldSeriesVisible]) : canvas.drawRRect(this.segmentRect, this.fillPaint);
      }
      if (this.strokePaint != null) {
        if (this.series.dashArray[$_get](0) !== 0 && this.series.dashArray[$_get](1) !== 0) {
          charts._drawDashedLine(canvas, this.series.dashArray, this.strokePaint, this.path);
        } else {
          dart.notNull(this.series.animationDuration) > 0 ? charts._animateRectSeries(canvas, this.series, this.strokePaint, this.segmentRect, core.num._check(this[_currentPoint].yValue), this.animationFactor, this[_oldPoint] != null ? this[_oldPoint].region : this[_oldRegion], core.num._check((t2$1 = this[_oldPoint], t2$1 == null ? null : t2$1.yValue)), this[_oldSeriesVisible]) : canvas.drawRRect(this.segmentRect, this.strokePaint);
        }
      }
    }
  };
  (charts.ColumnSegment.new = function() {
    this[x1$] = null;
    this[y1$] = null;
    this[x2$] = null;
    this[y2$] = null;
    this[path$] = null;
    this[_trackRect] = null;
    this[_currentPoint$2] = null;
    this[_trackerFillPaint] = null;
    this[_trackerStrokePaint] = null;
    charts.ColumnSegment.__proto__.new.call(this);
    ;
  }).prototype = charts.ColumnSegment.prototype;
  dart.addTypeTests(charts.ColumnSegment);
  dart.setMethodSignature(charts.ColumnSegment, () => ({
    __proto__: dart.getMethods(charts.ColumnSegment.__proto__),
    getFillPaint: dart.fnType(ui.Paint, []),
    getStrokePaint: dart.fnType(ui.Paint, []),
    [_getTrackerFillPaint]: dart.fnType(ui.Paint, []),
    [_getTrackerStrokePaint]: dart.fnType(ui.Paint, []),
    calculateSegmentPoints: dart.fnType(dart.void, []),
    onPaint: dart.fnType(dart.void, [ui.Canvas])
  }));
  dart.setLibraryUri(charts.ColumnSegment, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.ColumnSegment, () => ({
    __proto__: dart.getFields(charts.ColumnSegment.__proto__),
    x1: dart.fieldType(core.num),
    y1: dart.fieldType(core.num),
    x2: dart.fieldType(core.num),
    y2: dart.fieldType(core.num),
    path: dart.fieldType(ui.Path),
    [_trackRect]: dart.fieldType(ui.RRect),
    [_currentPoint]: dart.fieldType(charts.CartesianChartPoint),
    [_trackerFillPaint]: dart.fieldType(ui.Paint),
    [_trackerStrokePaint]: dart.fieldType(ui.Paint)
  }));
  charts.FastLineSegment = class FastLineSegment extends charts.ChartSegment {
    getFillPaint() {
      let fillPaint = ui.Paint.new();
      if (this.color != null) {
        fillPaint.color = this.color.withOpacity(this.series.opacity);
      }
      fillPaint.style = ui.PaintingStyle.fill;
      this[_defaultFillColor] = fillPaint;
      return fillPaint;
    }
    getStrokePaint() {
      let strokePaint = ui.Paint.new();
      if (this.series.gradient == null) {
        if (this.strokeColor != null) {
          strokePaint.color = dart.notNull(this.series.opacity) < 1 && !dart.equals(this.strokeColor, colors$.Colors.transparent) ? this.strokeColor.withOpacity(this.series.opacity) : this.strokeColor;
        }
      } else {
        strokePaint.color = this.series.gradient.colors[$_get](0);
      }
      strokePaint.strokeWidth = this.strokeWidth;
      strokePaint.style = ui.PaintingStyle.stroke;
      strokePaint.strokeCap = ui.StrokeCap.round;
      this[_defaultStrokeColor] = strokePaint;
      return strokePaint;
    }
    onPaint(canvas) {
      this.series.selectionSettings[_selectionRenderer][_checkWithSelectionState](this.series.segments[$_get](0), this.series[_chart]);
      this.series.dashArray != null ? charts._drawDashedLine(canvas, this.series.dashArray, this.strokePaint, this.series.segmentPath) : canvas.drawPath(this.series.segmentPath, this.strokePaint);
    }
    calculateSegmentPoints() {
    }
  };
  (charts.FastLineSegment.new = function() {
    charts.FastLineSegment.__proto__.new.call(this);
    ;
  }).prototype = charts.FastLineSegment.prototype;
  dart.addTypeTests(charts.FastLineSegment);
  dart.setMethodSignature(charts.FastLineSegment, () => ({
    __proto__: dart.getMethods(charts.FastLineSegment.__proto__),
    getFillPaint: dart.fnType(ui.Paint, []),
    getStrokePaint: dart.fnType(ui.Paint, []),
    onPaint: dart.fnType(dart.void, [ui.Canvas]),
    calculateSegmentPoints: dart.fnType(dart.void, [])
  }));
  dart.setLibraryUri(charts.FastLineSegment, "package:syncfusion_flutter_charts/charts.dart");
  const _rectPosition = dart.privateName(charts, "_rectPosition");
  const _rectCount = dart.privateName(charts, "_rectCount");
  const _isRectSeries = dart.privateName(charts, "_isRectSeries");
  const _pointsData = dart.privateName(charts, "_pointsData");
  const _calculateAverageModeValue = dart.privateName(charts, "_calculateAverageModeValue");
  let C545;
  let C546;
  const _sideBySideIndex = dart.privateName(charts, "_sideBySideIndex");
  const _markerShapes = dart.privateName(charts, "_markerShapes");
  const _markerShapes2 = dart.privateName(charts, "_markerShapes2");
  const _isIndicator = dart.privateName(charts, "_isIndicator");
  const _draw = dart.privateName(charts, "_draw");
  const _is_CartesianSeries_default = Symbol('_is_CartesianSeries_default');
  const dataSource$3 = dart.privateName(charts, "CartesianSeries.dataSource");
  const xValueMapper$3 = dart.privateName(charts, "CartesianSeries.xValueMapper");
  const yValueMapper$3 = dart.privateName(charts, "CartesianSeries.yValueMapper");
  const pointColorMapper$3 = dart.privateName(charts, "CartesianSeries.pointColorMapper");
  const dataLabelMapper$1 = dart.privateName(charts, "CartesianSeries.dataLabelMapper");
  const sizeValueMapper$ = dart.privateName(charts, "CartesianSeries.sizeValueMapper");
  const highValueMapper$ = dart.privateName(charts, "CartesianSeries.highValueMapper");
  const lowValueMapper$ = dart.privateName(charts, "CartesianSeries.lowValueMapper");
  const xAxisName$0 = dart.privateName(charts, "CartesianSeries.xAxisName");
  const yAxisName$0 = dart.privateName(charts, "CartesianSeries.yAxisName");
  const color$8 = dart.privateName(charts, "CartesianSeries.color");
  const width$8 = dart.privateName(charts, "CartesianSeries.width");
  const markerSettings$ = dart.privateName(charts, "CartesianSeries.markerSettings");
  const emptyPointSettings$3 = dart.privateName(charts, "CartesianSeries.emptyPointSettings");
  const dataLabelSettings$3 = dart.privateName(charts, "CartesianSeries.dataLabelSettings");
  const trendlines$ = dart.privateName(charts, "CartesianSeries.trendlines");
  const gradient$1 = dart.privateName(charts, "CartesianSeries.gradient");
  const name$4 = dart.privateName(charts, "CartesianSeries.name");
  const enableTooltip$1 = dart.privateName(charts, "CartesianSeries.enableTooltip");
  const dashArray$3 = dart.privateName(charts, "CartesianSeries.dashArray");
  const animationDuration$3 = dart.privateName(charts, "CartesianSeries.animationDuration");
  const borderColor$8 = dart.privateName(charts, "CartesianSeries.borderColor");
  const borderWidth$8 = dart.privateName(charts, "CartesianSeries.borderWidth");
  const legendIconType$3 = dart.privateName(charts, "CartesianSeries.legendIconType");
  const isVisibleInLegend$ = dart.privateName(charts, "CartesianSeries.isVisibleInLegend");
  const legendItemText$0 = dart.privateName(charts, "CartesianSeries.legendItemText");
  const segments$ = dart.privateName(charts, "CartesianSeries.segments");
  const selectionSettings$3 = dart.privateName(charts, "CartesianSeries.selectionSettings");
  const opacity$4 = dart.privateName(charts, "CartesianSeries.opacity");
  const _seriesType = dart.privateName(charts, "CartesianSeries._seriesType");
  const sortFieldValueMapper$1 = dart.privateName(charts, "CartesianSeries.sortFieldValueMapper");
  const sortingOrder$1 = dart.privateName(charts, "CartesianSeries.sortingOrder");
  const isVisible$3 = dart.privateName(charts, "CartesianSeries.isVisible");
  const _stackingValues = dart.privateName(charts, "CartesianSeries._stackingValues");
  const _dataPoints = dart.privateName(charts, "CartesianSeries._dataPoints");
  const _seriesName$0 = dart.privateName(charts, "CartesianSeries._seriesName");
  const _visible$0 = dart.privateName(charts, "CartesianSeries._visible");
  const initialSelectedDataIndexes$2 = dart.privateName(charts, "CartesianSeries.initialSelectedDataIndexes");
  charts.CartesianSeries$ = dart.generic((T, D) => {
    class CartesianSeries extends charts.ChartSeries$(T, D) {
      get dataSource() {
        return this[dataSource$3];
      }
      set dataSource(value) {
        super.dataSource = value;
      }
      get xValueMapper() {
        return this[xValueMapper$3];
      }
      set xValueMapper(value) {
        super.xValueMapper = value;
      }
      get yValueMapper() {
        return this[yValueMapper$3];
      }
      set yValueMapper(value) {
        super.yValueMapper = value;
      }
      get pointColorMapper() {
        return this[pointColorMapper$3];
      }
      set pointColorMapper(value) {
        super.pointColorMapper = value;
      }
      get dataLabelMapper() {
        return this[dataLabelMapper$1];
      }
      set dataLabelMapper(value) {
        super.dataLabelMapper = value;
      }
      get sizeValueMapper() {
        return this[sizeValueMapper$];
      }
      set sizeValueMapper(value) {
        super.sizeValueMapper = value;
      }
      get highValueMapper() {
        return this[highValueMapper$];
      }
      set highValueMapper(value) {
        super.highValueMapper = value;
      }
      get lowValueMapper() {
        return this[lowValueMapper$];
      }
      set lowValueMapper(value) {
        super.lowValueMapper = value;
      }
      get xAxisName() {
        return this[xAxisName$0];
      }
      set xAxisName(value) {
        super.xAxisName = value;
      }
      get yAxisName() {
        return this[yAxisName$0];
      }
      set yAxisName(value) {
        super.yAxisName = value;
      }
      get color() {
        return this[color$8];
      }
      set color(value) {
        super.color = value;
      }
      get width() {
        return this[width$8];
      }
      set width(value) {
        super.width = value;
      }
      get markerSettings() {
        return this[markerSettings$];
      }
      set markerSettings(value) {
        super.markerSettings = value;
      }
      get emptyPointSettings() {
        return this[emptyPointSettings$3];
      }
      set emptyPointSettings(value) {
        super.emptyPointSettings = value;
      }
      get dataLabelSettings() {
        return this[dataLabelSettings$3];
      }
      set dataLabelSettings(value) {
        super.dataLabelSettings = value;
      }
      get trendlines() {
        return this[trendlines$];
      }
      set trendlines(value) {
        super.trendlines = value;
      }
      get gradient() {
        return this[gradient$1];
      }
      set gradient(value) {
        super.gradient = value;
      }
      get name() {
        return this[name$4];
      }
      set name(value) {
        super.name = value;
      }
      get enableTooltip() {
        return this[enableTooltip$1];
      }
      set enableTooltip(value) {
        super.enableTooltip = value;
      }
      get dashArray() {
        return this[dashArray$3];
      }
      set dashArray(value) {
        super.dashArray = value;
      }
      get animationDuration() {
        return this[animationDuration$3];
      }
      set animationDuration(value) {
        super.animationDuration = value;
      }
      get borderColor() {
        return this[borderColor$8];
      }
      set borderColor(value) {
        super.borderColor = value;
      }
      get borderWidth() {
        return this[borderWidth$8];
      }
      set borderWidth(value) {
        super.borderWidth = value;
      }
      get legendIconType() {
        return this[legendIconType$3];
      }
      set legendIconType(value) {
        super.legendIconType = value;
      }
      get isVisibleInLegend() {
        return this[isVisibleInLegend$];
      }
      set isVisibleInLegend(value) {
        super.isVisibleInLegend = value;
      }
      get legendItemText() {
        return this[legendItemText$0];
      }
      set legendItemText(value) {
        super.legendItemText = value;
      }
      get segments() {
        return this[segments$];
      }
      set segments(value) {
        this[segments$] = value;
      }
      get selectionSettings() {
        return this[selectionSettings$3];
      }
      set selectionSettings(value) {
        super.selectionSettings = value;
      }
      get opacity() {
        return this[opacity$4];
      }
      set opacity(value) {
        super.opacity = value;
      }
      get [_seriesType$]() {
        return this[_seriesType];
      }
      set [_seriesType$](value) {
        this[_seriesType] = value;
      }
      get sortFieldValueMapper() {
        return this[sortFieldValueMapper$1];
      }
      set sortFieldValueMapper(value) {
        super.sortFieldValueMapper = value;
      }
      get sortingOrder() {
        return this[sortingOrder$1];
      }
      set sortingOrder(value) {
        super.sortingOrder = value;
      }
      get isVisible() {
        return this[isVisible$3];
      }
      set isVisible(value) {
        super.isVisible = value;
      }
      get [_stackingValues$]() {
        return this[_stackingValues];
      }
      set [_stackingValues$](value) {
        this[_stackingValues] = value;
      }
      get [_dataPoints$]() {
        return this[_dataPoints];
      }
      set [_dataPoints$](value) {
        this[_dataPoints] = value;
      }
      get [_seriesName]() {
        return this[_seriesName$0];
      }
      set [_seriesName](value) {
        this[_seriesName$0] = value;
      }
      get [_visible]() {
        return this[_visible$0];
      }
      set [_visible](value) {
        this[_visible$0] = value;
      }
      get initialSelectedDataIndexes() {
        return this[initialSelectedDataIndexes$2];
      }
      set initialSelectedDataIndexes(value) {
        this[initialSelectedDataIndexes$2] = value;
      }
      [_renderSeries](chart, index) {
        return charts._calculateSeriesRegion(chart, index);
      }
      [_internalCreateSegments]() {
        let t2;
        if (dart.test(this.segments[$isNotEmpty])) {
          t2 = this.segments;
          t2 == null ? null : t2[$clear]();
        }
        this.createSegments();
      }
      [_draw](canvas, animationFactor = null) {
        for (let chartSegment of this.segments) {
          chartSegment.animationFactor = animationFactor;
          chartSegment.onPaint(canvas);
        }
      }
      renderSeriesElements(chart, canvas, animationController) {
        let t2;
        for (let pointIndex = 0; pointIndex < dart.notNull(this[_dataPoints$][$length]); pointIndex = pointIndex + 1) {
          let point = this[_dataPoints$][$_get](pointIndex);
          if (dart.test(this.markerSettings.isVisible) || charts.ScatterSeries.is(this) && dart.equals(this.markerSettings.shape, charts.DataMarkerType.image)) {
            t2 = this.markerSettings;
            t2 == null ? null : t2.renderMarker(this, point, animationController, canvas, pointIndex);
          }
        }
      }
    }
    (CartesianSeries.new = function(opts) {
      let t2, t2$, t2$0, t2$1, t2$2, t2$3, t2$4, t2$5, t2$6, t2$7, t2$8, t2$9, t2$10, t2$11, t2$12, t2$13;
      let xValueMapper = opts && 'xValueMapper' in opts ? opts.xValueMapper : null;
      let yValueMapper = opts && 'yValueMapper' in opts ? opts.yValueMapper : null;
      let dataLabelMapper = opts && 'dataLabelMapper' in opts ? opts.dataLabelMapper : null;
      let name = opts && 'name' in opts ? opts.name : null;
      let dataSource = opts && 'dataSource' in opts ? opts.dataSource : null;
      let xAxisName = opts && 'xAxisName' in opts ? opts.xAxisName : null;
      let yAxisName = opts && 'yAxisName' in opts ? opts.yAxisName : null;
      let sizeValueMapper = opts && 'sizeValueMapper' in opts ? opts.sizeValueMapper : null;
      let pointColorMapper = opts && 'pointColorMapper' in opts ? opts.pointColorMapper : null;
      let color = opts && 'color' in opts ? opts.color : null;
      let legendItemText = opts && 'legendItemText' in opts ? opts.legendItemText : null;
      let sortFieldValueMapper = opts && 'sortFieldValueMapper' in opts ? opts.sortFieldValueMapper : null;
      let gradient = opts && 'gradient' in opts ? opts.gradient : null;
      let width = opts && 'width' in opts ? opts.width : null;
      let highValueMapper = opts && 'highValueMapper' in opts ? opts.highValueMapper : null;
      let lowValueMapper = opts && 'lowValueMapper' in opts ? opts.lowValueMapper : null;
      let trendlines = opts && 'trendlines' in opts ? opts.trendlines : null;
      let markerSettings = opts && 'markerSettings' in opts ? opts.markerSettings : null;
      let isVisible = opts && 'isVisible' in opts ? opts.isVisible : null;
      let enableTooltip = opts && 'enableTooltip' in opts ? opts.enableTooltip : null;
      let emptyPointSettings = opts && 'emptyPointSettings' in opts ? opts.emptyPointSettings : null;
      let dataLabelSettings = opts && 'dataLabelSettings' in opts ? opts.dataLabelSettings : null;
      let animationDuration = opts && 'animationDuration' in opts ? opts.animationDuration : null;
      let dashArray = opts && 'dashArray' in opts ? opts.dashArray : null;
      let initialSelectedDataIndexes = opts && 'initialSelectedDataIndexes' in opts ? opts.initialSelectedDataIndexes : null;
      let borderColor = opts && 'borderColor' in opts ? opts.borderColor : null;
      let borderWidth = opts && 'borderWidth' in opts ? opts.borderWidth : null;
      let selectionSettings = opts && 'selectionSettings' in opts ? opts.selectionSettings : null;
      let isVisibleInLegend = opts && 'isVisibleInLegend' in opts ? opts.isVisibleInLegend : null;
      let legendIconType = opts && 'legendIconType' in opts ? opts.legendIconType : null;
      let opacity = opts && 'opacity' in opts ? opts.opacity : null;
      let segments = opts && 'segments' in opts ? opts.segments : null;
      let sortingOrder = opts && 'sortingOrder' in opts ? opts.sortingOrder : null;
      this[_seriesType] = null;
      this[_stackingValues] = null;
      this[_dataPoints] = null;
      this[_seriesName$0] = null;
      this[_xAxis$] = null;
      this[_yAxis$] = null;
      this[_minimumX] = null;
      this[_maximumX] = null;
      this[_minimumY] = null;
      this[_maximumY] = null;
      this[_regionalData] = null;
      this[_seriesColor] = null;
      this[_xValues] = null;
      this[_chart] = null;
      this[_sideBySideIndex] = null;
      this[_markerShapes] = null;
      this[_markerShapes2] = null;
      this[_visible$0] = null;
      this[_isOuterRegion] = false;
      this[_isIndicator] = false;
      this[xValueMapper$3] = xValueMapper;
      this[yValueMapper$3] = yValueMapper;
      this[dataLabelMapper$1] = dataLabelMapper;
      this[name$4] = name;
      this[dataSource$3] = dataSource;
      this[xAxisName$0] = xAxisName;
      this[yAxisName$0] = yAxisName;
      this[sizeValueMapper$] = sizeValueMapper;
      this[pointColorMapper$3] = pointColorMapper;
      this[color$8] = color;
      this[legendItemText$0] = legendItemText;
      this[sortFieldValueMapper$1] = sortFieldValueMapper;
      this[gradient$1] = gradient;
      this[width$8] = width;
      this[highValueMapper$] = highValueMapper;
      this[lowValueMapper$] = lowValueMapper;
      this[trendlines$] = trendlines;
      this[isVisible$3] = (t2 = isVisible, t2 == null ? true : t2);
      this[markerSettings$] = (t2$ = markerSettings, t2$ == null ? new charts.MarkerSettings.new() : t2$);
      this[dataLabelSettings$3] = (t2$0 = dataLabelSettings, t2$0 == null ? new charts.DataLabelSettings.new() : t2$0);
      this[enableTooltip$1] = (t2$1 = enableTooltip, t2$1 == null ? true : t2$1);
      this[emptyPointSettings$3] = (t2$2 = emptyPointSettings, t2$2 == null ? new charts.EmptyPointSettings.new() : t2$2);
      this[dashArray$3] = (t2$3 = dashArray, t2$3 == null ? JSArrayOfdouble().of([0.0, 0.0]) : t2$3);
      this[initialSelectedDataIndexes$2] = (t2$4 = initialSelectedDataIndexes, t2$4 == null ? JSArrayOfint().of([]) : t2$4);
      this[animationDuration$3] = (t2$5 = animationDuration, t2$5 == null ? 1500.0 : t2$5);
      this[borderColor$8] = (t2$6 = borderColor, t2$6 == null ? colors$.Colors.transparent : t2$6);
      this[selectionSettings$3] = (t2$7 = selectionSettings, t2$7 == null ? new charts.SelectionSettings.new() : t2$7);
      this[legendIconType$3] = (t2$8 = legendIconType, t2$8 == null ? charts.LegendIconType.seriesType : t2$8);
      this[isVisibleInLegend$] = (t2$9 = isVisibleInLegend, t2$9 == null ? true : t2$9);
      this[borderWidth$8] = (t2$10 = borderWidth, t2$10 == null ? 0.0 : t2$10);
      this[opacity$4] = (t2$11 = opacity, t2$11 == null ? 1.0 : t2$11);
      this[sortingOrder$1] = (t2$12 = sortingOrder, t2$12 == null ? charts.SortingOrder.none : t2$12);
      this[segments$] = (t2$13 = segments, t2$13 == null ? JSArrayOfChartSegment().of([]) : t2$13);
      CartesianSeries.__proto__.new.call(this, {name: name, xValueMapper: xValueMapper, yValueMapper: yValueMapper, sortFieldValueMapper: sortFieldValueMapper, pointColorMapper: pointColorMapper, dataLabelMapper: dataLabelMapper, dataSource: dataSource, emptyPointSettings: emptyPointSettings, dataLabelSettings: dataLabelSettings, enableTooltip: enableTooltip, animationDuration: animationDuration, selectionSettings: selectionSettings, legendIconType: legendIconType, sortingOrder: sortingOrder, opacity: opacity});
      ;
    }).prototype = CartesianSeries.prototype;
    dart.addTypeTests(CartesianSeries);
    CartesianSeries.prototype[_is_CartesianSeries_default] = true;
    dart.setMethodSignature(CartesianSeries, () => ({
      __proto__: dart.getMethods(CartesianSeries.__proto__),
      [_renderSeries]: dart.fnType(dart.void, [charts.SfCartesianChart, core.int]),
      [_internalCreateSegments]: dart.fnType(dart.void, []),
      [_draw]: dart.fnType(dart.void, [ui.Canvas], [core.double]),
      renderSeriesElements: dart.fnType(dart.void, [charts.SfCartesianChart, ui.Canvas, animation.Animation$(core.double)])
    }));
    dart.setLibraryUri(CartesianSeries, "package:syncfusion_flutter_charts/charts.dart");
    dart.setFieldSignature(CartesianSeries, () => ({
      __proto__: dart.getFields(CartesianSeries.__proto__),
      dataSource: dart.finalFieldType(core.List$(T)),
      xValueMapper: dart.finalFieldType(dart.fnType(D, [core.int])),
      yValueMapper: dart.finalFieldType(dart.fnType(core.num, [core.int])),
      pointColorMapper: dart.finalFieldType(dart.fnType(ui.Color, [core.int])),
      dataLabelMapper: dart.finalFieldType(dart.fnType(core.String, [core.int])),
      sizeValueMapper: dart.finalFieldType(dart.fnType(core.num, [core.int])),
      highValueMapper: dart.finalFieldType(dart.fnType(core.num, [core.int])),
      lowValueMapper: dart.finalFieldType(dart.fnType(core.num, [core.int])),
      xAxisName: dart.finalFieldType(core.String),
      yAxisName: dart.finalFieldType(core.String),
      color: dart.finalFieldType(ui.Color),
      width: dart.finalFieldType(core.double),
      markerSettings: dart.finalFieldType(charts.MarkerSettings),
      emptyPointSettings: dart.finalFieldType(charts.EmptyPointSettings),
      dataLabelSettings: dart.finalFieldType(charts.DataLabelSettings),
      trendlines: dart.finalFieldType(core.List$(charts.Trendline)),
      gradient: dart.finalFieldType(gradient$.LinearGradient),
      name: dart.finalFieldType(core.String),
      enableTooltip: dart.finalFieldType(core.bool),
      dashArray: dart.finalFieldType(core.List$(core.double)),
      animationDuration: dart.finalFieldType(core.double),
      borderColor: dart.finalFieldType(ui.Color),
      borderWidth: dart.finalFieldType(core.double),
      legendIconType: dart.finalFieldType(charts.LegendIconType),
      isVisibleInLegend: dart.finalFieldType(core.bool),
      legendItemText: dart.finalFieldType(core.String),
      segments: dart.fieldType(core.List$(charts.ChartSegment)),
      selectionSettings: dart.finalFieldType(charts.SelectionSettings),
      opacity: dart.finalFieldType(core.double),
      [_seriesType$]: dart.fieldType(core.String),
      sortFieldValueMapper: dart.finalFieldType(dart.fnType(dart.dynamic, [core.int])),
      sortingOrder: dart.finalFieldType(charts.SortingOrder),
      isVisible: dart.finalFieldType(core.bool),
      [_stackingValues$]: dart.fieldType(core.List$(charts._StackedValues)),
      [_dataPoints$]: dart.fieldType(core.List$(charts.CartesianChartPoint)),
      [_seriesName]: dart.fieldType(core.String),
      [_xAxis$]: dart.fieldType(charts.ChartAxis),
      [_yAxis$]: dart.fieldType(charts.ChartAxis),
      [_minimumX]: dart.fieldType(core.num),
      [_maximumX]: dart.fieldType(core.num),
      [_minimumY]: dart.fieldType(core.num),
      [_maximumY]: dart.fieldType(core.num),
      [_regionalData]: dart.fieldType(core.Map),
      [_seriesColor]: dart.fieldType(ui.Color),
      [_xValues]: dart.fieldType(core.List),
      [_chart]: dart.fieldType(charts.SfCartesianChart),
      [_sideBySideIndex]: dart.fieldType(core.int),
      [_markerShapes]: dart.fieldType(core.List$(ui.Path)),
      [_markerShapes2]: dart.fieldType(core.List$(ui.Path)),
      [_visible]: dart.fieldType(core.bool),
      initialSelectedDataIndexes: dart.fieldType(core.List$(core.int)),
      [_isOuterRegion]: dart.fieldType(core.bool),
      [_isIndicator]: dart.fieldType(core.bool)
    }));
    return CartesianSeries;
  });
  charts.CartesianSeries = charts.CartesianSeries$();
  dart.addTypeTests(charts.CartesianSeries, _is_CartesianSeries_default);
  const _is_XyDataSeries_default = Symbol('_is_XyDataSeries_default');
  const _seriesType$0 = dart.privateName(charts, "XyDataSeries._seriesType");
  const _dataPoints$0 = dart.privateName(charts, "XyDataSeries._dataPoints");
  const drawControlPoints = dart.privateName(charts, "XyDataSeries.drawControlPoints");
  const segmentPath = dart.privateName(charts, "XyDataSeries.segmentPath");
  charts.XyDataSeries$ = dart.generic((T, D) => {
    let intToD = () => (intToD = dart.constFn(dart.fnType(D, [core.int])))();
    class XyDataSeries extends charts.CartesianSeries$(T, D) {
      get [_seriesType$]() {
        return this[_seriesType$0];
      }
      set [_seriesType$](value) {
        this[_seriesType$0] = value;
      }
      get [_dataPoints$]() {
        return this[_dataPoints$0];
      }
      set [_dataPoints$](value) {
        this[_dataPoints$0] = value;
      }
      get drawControlPoints() {
        return this[drawControlPoints];
      }
      set drawControlPoints(value) {
        this[drawControlPoints] = value;
      }
      get segmentPath() {
        return this[segmentPath];
      }
      set segmentPath(value) {
        this[segmentPath] = value;
      }
      storeSeriesProperties(chart, index) {
        let t2;
        this[_chart] = chart;
        this[_isRectSeries] = this[_seriesType$][$contains]("column") || this[_seriesType$][$contains]("bar");
        this[_regionalData] = new _js_helper.LinkedMap.new();
        this.segmentPath = ui.Path.new();
        this.segments = JSArrayOfChartSegment().of([]);
        this[_seriesColor] = (t2 = this.color, t2 == null ? chart.palette[$_get](index[$modulo](chart.palette[$length])) : t2);
      }
      calculateRegionData(chart, series, seriesIndex, point, pointIndex, sideBySideInfo = null) {
        {
          series[_chart] = chart;
          let xAxis = series[_xAxis$];
          let yAxis = series[_yAxis$];
          let rect = charts._calculatePlotOffset(chart[_chartAxis][_axisClipRect], new ui.Offset.new(xAxis.plotOffset, yAxis.plotOffset));
          series[_isRectSeries] = series[_seriesType$] === "column" || series[_seriesType$] === "bar" || series[_seriesType$][$contains]("stackedcolumn") || series[_seriesType$][$contains]("stackedbar") || series[_seriesType$] === "rangecolumn";
          let point = null;
          let markerHeight = series.markerSettings.height;
          let markerWidth = series.markerSettings.width;
          let isPointSeries = series[_seriesType$] === "scatter" || series[_seriesType$] === "bubble";
          let isFastLine = series[_seriesType$] === "fastline";
          if ((!isFastLine || isFastLine && (dart.test(series.markerSettings.isVisible) || dart.test(series.dataLabelSettings.isVisible) || dart.test(series.enableTooltip))) && dart.test(series[_visible])) {
            point = series[_dataPoints$][$_get](pointIndex);
            if (dart.test(series[_isRectSeries])) {
              charts._calculateRectSeriesRegion(point, pointIndex, series, chart);
            } else if (isPointSeries) {
              charts._calculatePointSeriesRegion(point, pointIndex, series, chart, rect);
            } else {
              charts._calculatePathSeriesRegion(point, pointIndex, series, chart, rect, markerHeight, markerWidth);
            }
            charts._calculateTooltipRegion(point, seriesIndex, series, chart);
            let trendlinePoint = null;
            if (series.trendlines != null) {
              for (let j = 0; j < dart.notNull(series.trendlines[$length]); j = j + 1) {
                if (dart.test(series.trendlines[$_get](j)[_isNeedRender])) {
                  if (series.trendlines[$_get](j)[_pointsData] != null) {
                    for (let k = 0; k < dart.notNull(series.trendlines[$_get](j)[_pointsData][$length]); k = k + 1) {
                      trendlinePoint = series.trendlines[$_get](j)[_pointsData][$_get](k);
                      charts._calculateTooltipRegion(trendlinePoint, seriesIndex, series, chart, series.trendlines[$_get](j), j);
                    }
                  }
                }
              }
            }
          }
        }
      }
      calculateTooltipRegion(chart, seriesIndex, point, pointIndex) {
        let t2, t2$;
        if (this.enableTooltip != null && dart.test(this.enableTooltip) && point != null && !dart.test(point.isGap) && !dart.test(point.isDrop)) {
          let regionData = JSArrayOfString().of([]);
          let date = null;
          let regionRect = [];
          let primaryAxis = this[_xAxis$];
          if (charts.DateTimeAxis.is(primaryAxis)) {
            let dateFormat = (t2 = primaryAxis.dateFormat, t2 == null ? primaryAxis[_getLabelFormat](charts.DateTimeAxis._check(this[_xAxis$])) : t2);
            date = dateFormat.format(new core.DateTime.fromMillisecondsSinceEpoch(core.int._check(point.xValue)));
          }
          charts.CategoryAxis.is(this[_xAxis$]) ? regionData[$add](dart.toString(point.x)) : charts.DateTimeAxis.is(this[_xAxis$]) ? regionData[$add](dart.toString(date)) : regionData[$add](dart.toString(charts._getLabelValue(point.xValue, this[_xAxis$], chart.tooltipBehavior.decimalPlaces)));
          if (this[_seriesType$][$contains]("range")) {
            regionData[$add](dart.toString(charts._getLabelValue(point.high, this[_yAxis$], chart.tooltipBehavior.decimalPlaces)));
            regionData[$add](dart.toString(charts._getLabelValue(point.low, this[_yAxis$], chart.tooltipBehavior.decimalPlaces)));
          } else {
            regionData[$add](dart.toString(charts._getLabelValue(point.yValue, this[_yAxis$], chart.tooltipBehavior.decimalPlaces)));
          }
          regionData[$add]((t2$ = this.name, t2$ == null ? "series " + dart.str(seriesIndex) : t2$));
          regionRect[$add](point.region);
          regionRect[$add](dart.test(this[_isRectSeries]) ? this[_seriesType$] === "column" || this[_seriesType$][$contains]("stackedcolumn") ? dart.dtest(dart.dsend(point.yValue, '>', [0])) ? point.region.topCenter : point.region.bottomCenter : point.region.topCenter : this[_seriesType$] === "rangearea" ? new ui.Offset.new(point.markerPoint.x, (dart.notNull(point.markerPoint.y) + dart.notNull(point.markerPoint2.y)) / 2) : point.region.center);
          regionRect[$add](point.pointColorMapper);
          regionRect[$add](point.bubbleSize);
          if (this[_seriesType$][$contains]("stacked")) {
            regionData[$add](dart.toString(point.cumulativeValue));
          }
          this[_regionalData][$_set](regionRect, regionData);
        }
      }
      calculateEmptyPointValue(pointIndex, currentPoint) {
        let pointLength = dart.notNull(this[_dataPoints$][$length]) - 1;
        let prevPoint = this[_dataPoints$][$_get](dart.notNull(this[_dataPoints$][$length]) >= 2 ? pointLength - 1 : pointLength);
        if (this[_seriesType$][$contains]("range") || this[_seriesType$][$contains]("hilo") || this[_seriesType$] === "candle" ? this[_seriesType$] === "hiloopenclose" || this[_seriesType$] === "candle" ? currentPoint.low == null || currentPoint.high == null || currentPoint.open == null || currentPoint.close == null : currentPoint.low == null || currentPoint.high == null : currentPoint.y == null) {
          switch (this.emptyPointSettings.mode) {
            case C121 || CT.C121:
            {
              currentPoint.isEmpty = true;
              if (this[_seriesType$][$contains]("range") || this[_seriesType$][$contains]("hilo") || this[_seriesType$][$contains]("candle")) {
                currentPoint.high = 0;
                currentPoint.low = 0;
                if (this[_seriesType$] === "hiloopenclose" || this[_seriesType$] === "candle") {
                  currentPoint.open = 0;
                  currentPoint.close = 0;
                }
              } else
                currentPoint.y = 0;
              break;
            }
            case C120 || CT.C120:
            {
              this[_calculateAverageModeValue](pointIndex, pointLength, currentPoint, prevPoint);
              currentPoint.isEmpty = true;
              break;
            }
            case C545 || CT.C545:
            {
              if (this[_seriesType$] === "scatter" || this[_seriesType$] === "column" || this[_seriesType$] === "bar" || this[_seriesType$] === "bubble" || this[_seriesType$] === "splinearea" || this[_seriesType$][$contains]("stacked") || this[_seriesType$] === "rangecolumn" || this[_seriesType$][$contains]("hilo") || this[_seriesType$][$contains]("candle") || this[_seriesType$] === "rangearea") {
                currentPoint.y = pointIndex !== 0 && !this[_seriesType$][$contains]("stackedcolumn") && !this[_seriesType$][$contains]("stackedbar") ? prevPoint.y : 0;
                currentPoint.open = 0;
                currentPoint.close = 0;
                currentPoint.isVisible = false;
              } else if (this[_seriesType$][$contains]("line") || this[_seriesType$] === "area" || this[_seriesType$] === "steparea") {
                currentPoint.y = pointIndex !== 0 ? prevPoint.y : 0;
              }
              currentPoint.isGap = true;
              break;
            }
            case C546 || CT.C546:
            {
              currentPoint.y = pointIndex !== 0 && this[_seriesType$] !== "area" && this[_seriesType$] !== "splinearea" && this[_seriesType$] !== "steparea" && !this[_seriesType$][$contains]("stackedcolumn") && !this[_seriesType$][$contains]("stackedbar") ? prevPoint.y : 0;
              currentPoint.isDrop = true;
              currentPoint.isVisible = false;
              break;
            }
            default:
            {
              currentPoint.y = 0;
              break;
            }
          }
        }
      }
      [_calculateAverageModeValue](pointIndex, pointLength, currentPoint, prevPoint) {
        let t2, t2$, t2$0, t2$1, t2$2, t2$3, t2$4, t2$5, t2$6, t2$7, t2$8, t2$9, t2$10, t2$11, t2$12, t2$13, t2$14, t2$15, t2$16, t2$17;
        let nextPoint = charts._getPointFromData(this, dart.notNull(pointLength) < dart.notNull(this.dataSource[$length]) - 1 ? this.dataSource[$indexOf](this.dataSource[$_get](dart.notNull(pointLength) + 1)) : this.dataSource[$indexOf](this.dataSource[$_get](pointLength)));
        if (this[_seriesType$][$contains]("range") || this[_seriesType$][$contains]("hilo") || this[_seriesType$][$contains]("candle")) {
          if (pointIndex === 0) {
            if (currentPoint.low == null) {
              pointIndex === dart.notNull(this.dataSource[$length]) - 1 ? currentPoint.low = 0 : currentPoint.low = dart.dsend((t2 = nextPoint.low, t2 == null ? 0 : t2), '/', [2]);
            }
            if (currentPoint.high == null) {
              pointIndex === dart.notNull(this.dataSource[$length]) - 1 ? currentPoint.high = 0 : currentPoint.high = dart.dsend((t2$ = nextPoint.high, t2$ == null ? 0 : t2$), '/', [2]);
            }
            if (this[_seriesType$] === "hiloopenclose" || this[_seriesType$] === "candle") {
              if (currentPoint.open == null) {
                pointIndex === dart.notNull(this.dataSource[$length]) - 1 ? currentPoint.open = 0 : currentPoint.open = dart.dsend((t2$0 = nextPoint.open, t2$0 == null ? 0 : t2$0), '/', [2]);
              }
              if (currentPoint.close == null) {
                pointIndex === dart.notNull(this.dataSource[$length]) - 1 ? currentPoint.close = 0 : currentPoint.close = dart.dsend((t2$1 = nextPoint.close, t2$1 == null ? 0 : t2$1), '/', [2]);
              }
            }
          } else if (pointIndex === dart.notNull(this.dataSource[$length]) - 1) {
            currentPoint.low = currentPoint.low == null ? dart.dsend((t2$2 = prevPoint.low, t2$2 == null ? 0 : t2$2), '/', [2]) : currentPoint.low;
            currentPoint.high = currentPoint.high == null ? dart.dsend((t2$3 = prevPoint.high, t2$3 == null ? 0 : t2$3), '/', [2]) : currentPoint.high;
            if (this[_seriesType$] === "hiloopenclose" || this[_seriesType$] === "candle") {
              currentPoint.open = currentPoint.open == null ? dart.dsend((t2$4 = prevPoint.open, t2$4 == null ? 0 : t2$4), '/', [2]) : currentPoint.open;
              currentPoint.close = currentPoint.close == null ? dart.dsend((t2$5 = prevPoint.close, t2$5 == null ? 0 : t2$5), '/', [2]) : currentPoint.close;
            }
          } else {
            currentPoint.low = currentPoint.low == null ? dart.dsend(dart.dsend((t2$6 = prevPoint.low, t2$6 == null ? 0 : t2$6), '+', [(t2$7 = nextPoint.low, t2$7 == null ? 0 : t2$7)]), '/', [2]) : currentPoint.low;
            currentPoint.high = currentPoint.high == null ? dart.dsend(dart.dsend((t2$8 = prevPoint.high, t2$8 == null ? 0 : t2$8), '+', [(t2$9 = nextPoint.high, t2$9 == null ? 0 : t2$9)]), '/', [2]) : currentPoint.high;
            if (this[_seriesType$] === "hiloopenclose" || this[_seriesType$] === "candle") {
              currentPoint.open = currentPoint.open == null ? dart.dsend(dart.dsend((t2$10 = prevPoint.open, t2$10 == null ? 0 : t2$10), '+', [(t2$11 = nextPoint.open, t2$11 == null ? 0 : t2$11)]), '/', [2]) : currentPoint.open;
              currentPoint.close = currentPoint.close == null ? dart.dsend(dart.dsend((t2$12 = prevPoint.close, t2$12 == null ? 0 : t2$12), '+', [(t2$13 = nextPoint.close, t2$13 == null ? 0 : t2$13)]), '/', [2]) : currentPoint.close;
            }
          }
        } else {
          if (pointIndex === 0) {
            pointIndex === dart.notNull(this.dataSource[$length]) - 1 ? currentPoint.y = 0 : currentPoint.y = dart.dsend((t2$14 = nextPoint.y, t2$14 == null ? 0 : t2$14), '/', [2]);
          } else if (pointIndex === dart.notNull(this.dataSource[$length]) - 1) {
            currentPoint.y = dart.dsend((t2$15 = prevPoint.y, t2$15 == null ? 0 : t2$15), '/', [2]);
          } else {
            currentPoint.y = dart.dsend(dart.dsend((t2$16 = prevPoint.y, t2$16 == null ? 0 : t2$16), '+', [(t2$17 = nextPoint.y, t2$17 == null ? 0 : t2$17)]), '/', [2]);
          }
        }
      }
    }
    (XyDataSeries.new = function(opts) {
      let xValueMapper = opts && 'xValueMapper' in opts ? opts.xValueMapper : null;
      let yValueMapper = opts && 'yValueMapper' in opts ? opts.yValueMapper : null;
      let dataLabelMapper = opts && 'dataLabelMapper' in opts ? opts.dataLabelMapper : null;
      let name = opts && 'name' in opts ? opts.name : null;
      let dataSource = opts && 'dataSource' in opts ? opts.dataSource : null;
      let xAxisName = opts && 'xAxisName' in opts ? opts.xAxisName : null;
      let yAxisName = opts && 'yAxisName' in opts ? opts.yAxisName : null;
      let pointColorMapper = opts && 'pointColorMapper' in opts ? opts.pointColorMapper : null;
      let legendItemText = opts && 'legendItemText' in opts ? opts.legendItemText : null;
      let sortFieldValueMapper = opts && 'sortFieldValueMapper' in opts ? opts.sortFieldValueMapper : null;
      let gradient = opts && 'gradient' in opts ? opts.gradient : null;
      let sizeValueMapper = opts && 'sizeValueMapper' in opts ? opts.sizeValueMapper : null;
      let highValueMapper = opts && 'highValueMapper' in opts ? opts.highValueMapper : null;
      let lowValueMapper = opts && 'lowValueMapper' in opts ? opts.lowValueMapper : null;
      let trendlines = opts && 'trendlines' in opts ? opts.trendlines : null;
      let width = opts && 'width' in opts ? opts.width : null;
      let markerSettings = opts && 'markerSettings' in opts ? opts.markerSettings : null;
      let isVisible = opts && 'isVisible' in opts ? opts.isVisible : null;
      let enableTooltip = opts && 'enableTooltip' in opts ? opts.enableTooltip : null;
      let emptyPointSettings = opts && 'emptyPointSettings' in opts ? opts.emptyPointSettings : null;
      let dataLabelSettings = opts && 'dataLabelSettings' in opts ? opts.dataLabelSettings : null;
      let animationDuration = opts && 'animationDuration' in opts ? opts.animationDuration : null;
      let dashArray = opts && 'dashArray' in opts ? opts.dashArray : null;
      let borderColor = opts && 'borderColor' in opts ? opts.borderColor : null;
      let borderWidth = opts && 'borderWidth' in opts ? opts.borderWidth : null;
      let selectionSettings = opts && 'selectionSettings' in opts ? opts.selectionSettings : null;
      let isVisibleInLegend = opts && 'isVisibleInLegend' in opts ? opts.isVisibleInLegend : null;
      let legendIconType = opts && 'legendIconType' in opts ? opts.legendIconType : null;
      let opacity = opts && 'opacity' in opts ? opts.opacity : null;
      let segments = opts && 'segments' in opts ? opts.segments : null;
      let color = opts && 'color' in opts ? opts.color : null;
      let initialSelectedDataIndexes = opts && 'initialSelectedDataIndexes' in opts ? opts.initialSelectedDataIndexes : null;
      let sortingOrder = opts && 'sortingOrder' in opts ? opts.sortingOrder : null;
      this[_seriesType$0] = null;
      this[_dataPoints$0] = null;
      this[_isRectSeries] = null;
      this[segmentPath] = null;
      this[drawControlPoints] = JSArrayOf_ListControlPoints().of([]);
      XyDataSeries.__proto__.new.call(this, {isVisible: isVisible, legendItemText: legendItemText, xAxisName: xAxisName, dashArray: dashArray, segments: segments, isVisibleInLegend: isVisibleInLegend, borderColor: borderColor, trendlines: trendlines, borderWidth: borderWidth, yAxisName: yAxisName, color: color, name: name, width: width, xValueMapper: dart.fn(index => xValueMapper(dataSource[$_get](index), index), intToD()), yValueMapper: dart.fn(index => yValueMapper(dataSource[$_get](index), index), intTonum()), sortFieldValueMapper: sortFieldValueMapper != null ? dart.fn(index => sortFieldValueMapper(dataSource[$_get](index), index), intTodynamic()) : null, pointColorMapper: pointColorMapper != null ? dart.fn(index => pointColorMapper(dataSource[$_get](index), index), intToColor()) : null, dataLabelMapper: dataLabelMapper != null ? dart.fn(index => dataLabelMapper(dataSource[$_get](index), index), intToString()) : null, sizeValueMapper: sizeValueMapper != null ? dart.fn(index => sizeValueMapper(dataSource[$_get](index), index), intTonum()) : null, highValueMapper: highValueMapper != null ? dart.fn(index => highValueMapper(dataSource[$_get](index), index), intTonum()) : null, lowValueMapper: lowValueMapper != null ? dart.fn(index => lowValueMapper(dataSource[$_get](index), index), intTonum()) : null, dataSource: dataSource, emptyPointSettings: emptyPointSettings, dataLabelSettings: dataLabelSettings, enableTooltip: enableTooltip, animationDuration: animationDuration, selectionSettings: selectionSettings, legendIconType: legendIconType, sortingOrder: sortingOrder, opacity: opacity, gradient: gradient, markerSettings: markerSettings, initialSelectedDataIndexes: initialSelectedDataIndexes});
      ;
    }).prototype = XyDataSeries.prototype;
    dart.addTypeTests(XyDataSeries);
    XyDataSeries.prototype[_is_XyDataSeries_default] = true;
    dart.setMethodSignature(XyDataSeries, () => ({
      __proto__: dart.getMethods(XyDataSeries.__proto__),
      storeSeriesProperties: dart.fnType(dart.void, [charts.SfCartesianChart, core.int]),
      calculateRegionData: dart.fnType(dart.void, [charts.SfCartesianChart, charts.XyDataSeries, core.int, charts.CartesianChartPoint, core.int], [charts._VisibleRange]),
      calculateTooltipRegion: dart.fnType(dart.void, [charts.SfCartesianChart, core.int, charts.CartesianChartPoint, core.int]),
      calculateEmptyPointValue: dart.fnType(dart.void, [core.int, charts.CartesianChartPoint]),
      [_calculateAverageModeValue]: dart.fnType(dart.void, [core.int, core.int, charts.CartesianChartPoint, charts.CartesianChartPoint])
    }));
    dart.setLibraryUri(XyDataSeries, "package:syncfusion_flutter_charts/charts.dart");
    dart.setFieldSignature(XyDataSeries, () => ({
      __proto__: dart.getFields(XyDataSeries.__proto__),
      [_seriesType$]: dart.fieldType(core.String),
      [_dataPoints$]: dart.fieldType(core.List$(charts.CartesianChartPoint)),
      [_isRectSeries]: dart.fieldType(core.bool),
      drawControlPoints: dart.fieldType(core.List$(charts._ListControlPoints)),
      segmentPath: dart.fieldType(ui.Path)
    }));
    return XyDataSeries;
  });
  charts.XyDataSeries = charts.XyDataSeries$();
  dart.addTypeTests(charts.XyDataSeries, _is_XyDataSeries_default);
  const _is__FinancialSeriesBase_default = Symbol('_is__FinancialSeriesBase_default');
  const volumeValueMapper$ = dart.privateName(charts, "_FinancialSeriesBase.volumeValueMapper");
  const openValueMapper$ = dart.privateName(charts, "_FinancialSeriesBase.openValueMapper");
  const closeValueMapper$ = dart.privateName(charts, "_FinancialSeriesBase.closeValueMapper");
  const bearColor$ = dart.privateName(charts, "_FinancialSeriesBase.bearColor");
  const bullColor$ = dart.privateName(charts, "_FinancialSeriesBase.bullColor");
  const enableSolidCandles$ = dart.privateName(charts, "_FinancialSeriesBase.enableSolidCandles");
  const dashArray$4 = dart.privateName(charts, "_FinancialSeriesBase.dashArray");
  const spacing$ = dart.privateName(charts, "_FinancialSeriesBase.spacing");
  const _rectPosition$ = dart.privateName(charts, "_FinancialSeriesBase._rectPosition");
  const _rectCount$ = dart.privateName(charts, "_FinancialSeriesBase._rectCount");
  charts._FinancialSeriesBase$ = dart.generic((T, D) => {
    class _FinancialSeriesBase extends charts.XyDataSeries$(T, D) {
      get volumeValueMapper() {
        return this[volumeValueMapper$];
      }
      set volumeValueMapper(value) {
        super.volumeValueMapper = value;
      }
      get openValueMapper() {
        return this[openValueMapper$];
      }
      set openValueMapper(value) {
        super.openValueMapper = value;
      }
      get closeValueMapper() {
        return this[closeValueMapper$];
      }
      set closeValueMapper(value) {
        super.closeValueMapper = value;
      }
      get bearColor() {
        return this[bearColor$];
      }
      set bearColor(value) {
        super.bearColor = value;
      }
      get bullColor() {
        return this[bullColor$];
      }
      set bullColor(value) {
        super.bullColor = value;
      }
      get enableSolidCandles() {
        return this[enableSolidCandles$];
      }
      set enableSolidCandles(value) {
        super.enableSolidCandles = value;
      }
      get dashArray() {
        return this[dashArray$4];
      }
      set dashArray(value) {
        super.dashArray = value;
      }
      get spacing() {
        return this[spacing$];
      }
      set spacing(value) {
        super.spacing = value;
      }
      get [_rectPosition]() {
        return this[_rectPosition$];
      }
      set [_rectPosition](value) {
        this[_rectPosition$] = value;
      }
      get [_rectCount]() {
        return this[_rectCount$];
      }
      set [_rectCount](value) {
        this[_rectCount$] = value;
      }
    }
    (_FinancialSeriesBase.new = function(opts) {
      let t2, t2$, t2$0;
      let dataSource = opts && 'dataSource' in opts ? opts.dataSource : null;
      let xValueMapper = opts && 'xValueMapper' in opts ? opts.xValueMapper : null;
      let lowValueMapper = opts && 'lowValueMapper' in opts ? opts.lowValueMapper : null;
      let highValueMapper = opts && 'highValueMapper' in opts ? opts.highValueMapper : null;
      let openValueMapper = opts && 'openValueMapper' in opts ? opts.openValueMapper : null;
      let closeValueMapper = opts && 'closeValueMapper' in opts ? opts.closeValueMapper : null;
      let volumeValueMapper = opts && 'volumeValueMapper' in opts ? opts.volumeValueMapper : null;
      let sortFieldValueMapper = opts && 'sortFieldValueMapper' in opts ? opts.sortFieldValueMapper : null;
      let pointColorMapper = opts && 'pointColorMapper' in opts ? opts.pointColorMapper : null;
      let dataLabelMapper = opts && 'dataLabelMapper' in opts ? opts.dataLabelMapper : null;
      let sortingOrder = opts && 'sortingOrder' in opts ? opts.sortingOrder : null;
      let dashArray = opts && 'dashArray' in opts ? opts.dashArray : null;
      let xAxisName = opts && 'xAxisName' in opts ? opts.xAxisName : null;
      let yAxisName = opts && 'yAxisName' in opts ? opts.yAxisName : null;
      let name = opts && 'name' in opts ? opts.name : null;
      let color = opts && 'color' in opts ? opts.color : null;
      let width = opts && 'width' in opts ? opts.width : null;
      let spacing = opts && 'spacing' in opts ? opts.spacing : null;
      let markerSettings = opts && 'markerSettings' in opts ? opts.markerSettings : null;
      let emptyPointSettings = opts && 'emptyPointSettings' in opts ? opts.emptyPointSettings : null;
      let dataLabelSettings = opts && 'dataLabelSettings' in opts ? opts.dataLabelSettings : null;
      let isVisible = opts && 'isVisible' in opts ? opts.isVisible : null;
      let gradient = opts && 'gradient' in opts ? opts.gradient : null;
      let enableTooltip = opts && 'enableTooltip' in opts ? opts.enableTooltip : null;
      let animationDuration = opts && 'animationDuration' in opts ? opts.animationDuration : null;
      let borderWidth = opts && 'borderWidth' in opts ? opts.borderWidth : null;
      let selectionSettings = opts && 'selectionSettings' in opts ? opts.selectionSettings : null;
      let initialSelectedDataIndexes = opts && 'initialSelectedDataIndexes' in opts ? opts.initialSelectedDataIndexes : null;
      let isVisibleInLegend = opts && 'isVisibleInLegend' in opts ? opts.isVisibleInLegend : null;
      let legendIconType = opts && 'legendIconType' in opts ? opts.legendIconType : null;
      let legendItemText = opts && 'legendItemText' in opts ? opts.legendItemText : null;
      let enableSolidCandles = opts && 'enableSolidCandles' in opts ? opts.enableSolidCandles : null;
      let bearColor = opts && 'bearColor' in opts ? opts.bearColor : null;
      let bullColor = opts && 'bullColor' in opts ? opts.bullColor : null;
      let opacity = opts && 'opacity' in opts ? opts.opacity : null;
      let trendlines = opts && 'trendlines' in opts ? opts.trendlines : null;
      this[_rectPosition$] = null;
      this[_rectCount$] = null;
      this[openValueMapper$] = openValueMapper;
      this[closeValueMapper$] = closeValueMapper;
      this[volumeValueMapper$] = volumeValueMapper;
      this[enableSolidCandles$] = enableSolidCandles;
      this[bearColor$] = bearColor;
      this[bullColor$] = bullColor;
      this[dashArray$4] = (t2 = dashArray, t2 == null ? JSArrayOfdouble().of([0.0, 0.0]) : t2);
      this[spacing$] = (t2$ = spacing, t2$ == null ? 0.0 : t2$);
      _FinancialSeriesBase.__proto__.new.call(this, {name: name, xValueMapper: xValueMapper, lowValueMapper: lowValueMapper, highValueMapper: highValueMapper, sortFieldValueMapper: sortFieldValueMapper, pointColorMapper: pointColorMapper, dataLabelMapper: dataLabelMapper, dataSource: dataSource, xAxisName: xAxisName, yAxisName: yAxisName, color: color, width: (t2$0 = width, t2$0 == null ? 0.7 : t2$0), markerSettings: markerSettings, dataLabelSettings: dataLabelSettings, isVisible: isVisible, gradient: gradient, emptyPointSettings: emptyPointSettings, enableTooltip: enableTooltip, animationDuration: animationDuration, borderWidth: borderWidth, selectionSettings: selectionSettings, initialSelectedDataIndexes: initialSelectedDataIndexes, legendItemText: legendItemText, isVisibleInLegend: isVisibleInLegend, legendIconType: legendIconType, sortingOrder: sortingOrder, opacity: opacity, trendlines: trendlines});
      ;
    }).prototype = _FinancialSeriesBase.prototype;
    dart.addTypeTests(_FinancialSeriesBase);
    _FinancialSeriesBase.prototype[_is__FinancialSeriesBase_default] = true;
    dart.setLibraryUri(_FinancialSeriesBase, "package:syncfusion_flutter_charts/charts.dart");
    dart.setFieldSignature(_FinancialSeriesBase, () => ({
      __proto__: dart.getFields(_FinancialSeriesBase.__proto__),
      volumeValueMapper: dart.finalFieldType(dart.fnType(core.num, [core.int])),
      openValueMapper: dart.finalFieldType(dart.fnType(core.num, [core.int])),
      closeValueMapper: dart.finalFieldType(dart.fnType(core.num, [core.int])),
      bearColor: dart.finalFieldType(ui.Color),
      bullColor: dart.finalFieldType(ui.Color),
      enableSolidCandles: dart.finalFieldType(core.bool),
      dashArray: dart.finalFieldType(core.List$(core.double)),
      spacing: dart.finalFieldType(core.double),
      [_rectPosition]: dart.fieldType(core.num),
      [_rectCount]: dart.fieldType(core.num)
    }));
    return _FinancialSeriesBase;
  });
  charts._FinancialSeriesBase = charts._FinancialSeriesBase$();
  dart.addTypeTests(charts._FinancialSeriesBase, _is__FinancialSeriesBase_default);
  const _pointColorMapper = dart.privateName(charts, "_pointColorMapper");
  const _setData = dart.privateName(charts, "_setData");
  const x = dart.privateName(charts, "HiloSegment.x");
  const low = dart.privateName(charts, "HiloSegment.low");
  const high = dart.privateName(charts, "HiloSegment.high");
  const xPos = dart.privateName(charts, "HiloSegment.xPos");
  const lowPos = dart.privateName(charts, "HiloSegment.lowPos");
  const highPos = dart.privateName(charts, "HiloSegment.highPos");
  const centerX$0 = dart.privateName(charts, "HiloSegment.centerX");
  const highX = dart.privateName(charts, "HiloSegment.highX");
  const lowX = dart.privateName(charts, "HiloSegment.lowX");
  const centerY$0 = dart.privateName(charts, "HiloSegment.centerY");
  const highY = dart.privateName(charts, "HiloSegment.highY");
  const lowY = dart.privateName(charts, "HiloSegment.lowY");
  const startPos = dart.privateName(charts, "HiloSegment.startPos");
  const endPos = dart.privateName(charts, "HiloSegment.endPos");
  const lowPoint = dart.privateName(charts, "HiloSegment.lowPoint");
  const highPoint = dart.privateName(charts, "HiloSegment.highPoint");
  const path$0 = dart.privateName(charts, "HiloSegment.path");
  charts.HiloSegment = class HiloSegment extends charts.ChartSegment {
    get x() {
      return this[x];
    }
    set x(value) {
      this[x] = value;
    }
    get low() {
      return this[low];
    }
    set low(value) {
      this[low] = value;
    }
    get high() {
      return this[high];
    }
    set high(value) {
      this[high] = value;
    }
    get xPos() {
      return this[xPos];
    }
    set xPos(value) {
      this[xPos] = value;
    }
    get lowPos() {
      return this[lowPos];
    }
    set lowPos(value) {
      this[lowPos] = value;
    }
    get highPos() {
      return this[highPos];
    }
    set highPos(value) {
      this[highPos] = value;
    }
    get centerX() {
      return this[centerX$0];
    }
    set centerX(value) {
      this[centerX$0] = value;
    }
    get highX() {
      return this[highX];
    }
    set highX(value) {
      this[highX] = value;
    }
    get lowX() {
      return this[lowX];
    }
    set lowX(value) {
      this[lowX] = value;
    }
    get centerY() {
      return this[centerY$0];
    }
    set centerY(value) {
      this[centerY$0] = value;
    }
    get highY() {
      return this[highY];
    }
    set highY(value) {
      this[highY] = value;
    }
    get lowY() {
      return this[lowY];
    }
    set lowY(value) {
      this[lowY] = value;
    }
    get startPos() {
      return this[startPos];
    }
    set startPos(value) {
      this[startPos] = value;
    }
    get endPos() {
      return this[endPos];
    }
    set endPos(value) {
      this[endPos] = value;
    }
    get lowPoint() {
      return this[lowPoint];
    }
    set lowPoint(value) {
      this[lowPoint] = value;
    }
    get highPoint() {
      return this[highPoint];
    }
    set highPoint(value) {
      this[highPoint] = value;
    }
    get path() {
      return this[path$0];
    }
    set path(value) {
      this[path$0] = value;
    }
    getFillPaint() {
      let t2;
      let fillPaint = ui.Paint.new();
      if (this.color != null) {
        fillPaint.color = (t2 = this[_pointColorMapper], t2 == null ? this.color.withOpacity(this.series.opacity) : t2);
      }
      fillPaint.strokeWidth = this.strokeWidth;
      fillPaint.style = ui.PaintingStyle.fill;
      this[_defaultFillColor] = fillPaint;
      return fillPaint;
    }
    getStrokePaint() {
      let t2;
      let strokePaint = ui.Paint.new();
      if (this.series.gradient == null) {
        if (this.strokeColor != null) {
          strokePaint.color = (t2 = this[_pointColorMapper], t2 == null ? this.strokeColor : t2);
          strokePaint.color = dart.notNull(this.series.opacity) < 1 && !dart.equals(strokePaint.color, colors$.Colors.transparent) ? strokePaint.color.withOpacity(this.series.opacity) : strokePaint.color;
        }
      } else {
        strokePaint.color = this.series.gradient.colors[$_get](0);
      }
      strokePaint.strokeWidth = this.strokeWidth;
      strokePaint.style = ui.PaintingStyle.stroke;
      strokePaint.strokeCap = ui.StrokeCap.round;
      this[_defaultStrokeColor] = strokePaint;
      return strokePaint;
    }
    calculateSegmentPoints() {
      this.x = this.high = this.low = 0 / 0;
      let rect = charts._calculatePlotOffset(this.series[_chart][_chartAxis][_axisClipRect], new ui.Offset.new(this.series[_xAxis$].plotOffset, this.series[_yAxis$].plotOffset));
      if (this.xPos != null && this.high != null && this.lowPos != null) {
        this.lowPoint = charts._calculatePoint(this.xPos, this.lowPos, this.series[_xAxis$], this.series[_yAxis$], this.series[_chart][_requireInvertedAxis], this.series, rect);
        this.highPoint = charts._calculatePoint(this.xPos, this.highPos, this.series[_xAxis$], this.series[_yAxis$], this.series[_chart][_requireInvertedAxis], this.series, rect);
        this.x = this.lowPoint.x;
        this.low = this.lowPoint.y;
        this.high = this.highPoint.y;
      }
    }
    onPaint(canvas) {
      let t2, t2$;
      this.series.selectionSettings[_selectionRenderer][_checkWithSelectionState](this.series.segments[$_get](this.currentSegmentIndex), this.series[_chart]);
      if (dart.notNull(this.series.animationDuration) > 0 && !dart.test(this.series[_chart][_chartState][_isLegendToggled])) {
        if (!dart.test(this.series[_chart][_chartState].widgetNeedUpdate)) {
          if (dart.test(this.series[_chart][_requireInvertedAxis])) {
            this.lowX = this.lowPoint.x;
            this.highX = this.highPoint.x;
            this.centerX = dart.notNull(this.highX) + (dart.notNull(this.lowX) - dart.notNull(this.highX)) / 2;
            this.highX = dart.notNull(this.centerX) + (dart.notNull(this.centerX) - dart.notNull(this.highX))[$abs]() * dart.notNull(this.animationFactor);
            this.lowX = dart.notNull(this.centerX) - (dart.notNull(this.lowX) - dart.notNull(this.centerX))[$abs]() * dart.notNull(this.animationFactor);
            canvas.drawLine(new ui.Offset.new(this.lowX, this.lowPoint.y), new ui.Offset.new(this.highX, this.highPoint.y), this.strokePaint);
          } else {
            this.centerY = dart.notNull(this.high) + (dart.notNull(this.low) - dart.notNull(this.high)) / 2;
            this.highY = dart.notNull(this.centerY) - (dart.notNull(this.centerY) - dart.notNull(this.high)) * dart.notNull(this.animationFactor);
            this.lowY = dart.notNull(this.centerY) + (dart.notNull(this.low) - dart.notNull(this.centerY)) * dart.notNull(this.animationFactor);
            canvas.drawLine(new ui.Offset.new(this.lowPoint.x, this.highY), new ui.Offset.new(this.highPoint.x, this.lowY), this.strokePaint);
          }
        } else {
          let currentSegment = charts.HiloSegment._check(this.series.segments[$_get](this.currentSegmentIndex));
          let oldSegment = charts.HiloSegment._check(charts.HiloSegment.is(currentSegment.oldSeries.segments[$_get](0)) && dart.notNull(currentSegment.oldSeries.segments[$length]) - 1 >= dart.notNull(this.currentSegmentIndex) ? currentSegment.oldSeries.segments[$_get](this.currentSegmentIndex) : null);
          charts._animateHiloSeries(this.series[_chart][_requireInvertedAxis], this.lowPoint, this.highPoint, (t2 = oldSegment, t2 == null ? null : t2.lowPoint), (t2$ = oldSegment, t2$ == null ? null : t2$.highPoint), this.animationFactor, this.strokePaint, canvas);
        }
      } else {
        if (this.series.dashArray[$_get](0) !== 0 && this.series.dashArray[$_get](1) !== 0) {
          this.path = ui.Path.new();
          this.path.moveTo(this.lowPoint.x, this.high);
          this.path.lineTo(this.highPoint.x, this.low);
          charts._drawDashedLine(canvas, this.series.dashArray, this.strokePaint, this.path);
        } else {
          canvas.drawLine(new ui.Offset.new(this.lowPoint.x, this.high), new ui.Offset.new(this.highPoint.x, this.low), this.strokePaint);
        }
      }
    }
    [_setData](values) {
      this.xPos = values[$_get](0)[$toDouble]();
      this.lowPos = values[$_get](1)[$toDouble]();
      this.highPos = values[$_get](2)[$toDouble]();
    }
  };
  (charts.HiloSegment.new = function() {
    this[x] = null;
    this[low] = null;
    this[high] = null;
    this[xPos] = null;
    this[lowPos] = null;
    this[highPos] = null;
    this[centerX$0] = null;
    this[highX] = null;
    this[lowX] = null;
    this[centerY$0] = null;
    this[highY] = null;
    this[lowY] = null;
    this[startPos] = null;
    this[endPos] = null;
    this[_pointColorMapper] = null;
    this[lowPoint] = null;
    this[highPoint] = null;
    this[path$0] = null;
    charts.HiloSegment.__proto__.new.call(this);
    ;
  }).prototype = charts.HiloSegment.prototype;
  dart.addTypeTests(charts.HiloSegment);
  dart.setMethodSignature(charts.HiloSegment, () => ({
    __proto__: dart.getMethods(charts.HiloSegment.__proto__),
    getFillPaint: dart.fnType(ui.Paint, []),
    getStrokePaint: dart.fnType(ui.Paint, []),
    calculateSegmentPoints: dart.fnType(dart.void, []),
    onPaint: dart.fnType(dart.void, [ui.Canvas]),
    [_setData]: dart.fnType(dart.void, [core.List$(core.num)])
  }));
  dart.setLibraryUri(charts.HiloSegment, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.HiloSegment, () => ({
    __proto__: dart.getFields(charts.HiloSegment.__proto__),
    x: dart.fieldType(core.num),
    low: dart.fieldType(core.num),
    high: dart.fieldType(core.num),
    xPos: dart.fieldType(core.num),
    lowPos: dart.fieldType(core.num),
    highPos: dart.fieldType(core.num),
    centerX: dart.fieldType(core.num),
    highX: dart.fieldType(core.num),
    lowX: dart.fieldType(core.num),
    centerY: dart.fieldType(core.num),
    highY: dart.fieldType(core.num),
    lowY: dart.fieldType(core.num),
    startPos: dart.fieldType(core.num),
    endPos: dart.fieldType(core.num),
    [_pointColorMapper]: dart.fieldType(ui.Color),
    lowPoint: dart.fieldType(charts._ChartLocation),
    highPoint: dart.fieldType(charts._ChartLocation),
    path: dart.fieldType(ui.Path)
  }));
  const x$2 = dart.privateName(charts, "HiloOpenCloseSegment.x");
  const low$ = dart.privateName(charts, "HiloOpenCloseSegment.low");
  const high$ = dart.privateName(charts, "HiloOpenCloseSegment.high");
  const xPos$ = dart.privateName(charts, "HiloOpenCloseSegment.xPos");
  const lowPos$ = dart.privateName(charts, "HiloOpenCloseSegment.lowPos");
  const highPos$ = dart.privateName(charts, "HiloOpenCloseSegment.highPos");
  const centerY$1 = dart.privateName(charts, "HiloOpenCloseSegment.centerY");
  const highY$ = dart.privateName(charts, "HiloOpenCloseSegment.highY");
  const centerX$1 = dart.privateName(charts, "HiloOpenCloseSegment.centerX");
  const lowX$ = dart.privateName(charts, "HiloOpenCloseSegment.lowX");
  const highX$ = dart.privateName(charts, "HiloOpenCloseSegment.highX");
  const openX = dart.privateName(charts, "HiloOpenCloseSegment.openX");
  const openY = dart.privateName(charts, "HiloOpenCloseSegment.openY");
  const closeX = dart.privateName(charts, "HiloOpenCloseSegment.closeX");
  const closeY = dart.privateName(charts, "HiloOpenCloseSegment.closeY");
  const centerHigh = dart.privateName(charts, "HiloOpenCloseSegment.centerHigh");
  const centerLow = dart.privateName(charts, "HiloOpenCloseSegment.centerLow");
  const lowY$ = dart.privateName(charts, "HiloOpenCloseSegment.lowY");
  const startPos$ = dart.privateName(charts, "HiloOpenCloseSegment.startPos");
  const endPos$ = dart.privateName(charts, "HiloOpenCloseSegment.endPos");
  const open = dart.privateName(charts, "HiloOpenCloseSegment.open");
  const close = dart.privateName(charts, "HiloOpenCloseSegment.close");
  const isBull = dart.privateName(charts, "HiloOpenCloseSegment.isBull");
  const _currentPoint$3 = dart.privateName(charts, "HiloOpenCloseSegment._currentPoint");
  const path$1 = dart.privateName(charts, "HiloOpenCloseSegment.path");
  const centerLowPoint = dart.privateName(charts, "HiloOpenCloseSegment.centerLowPoint");
  const centerHighPoint = dart.privateName(charts, "HiloOpenCloseSegment.centerHighPoint");
  const lowPoint$ = dart.privateName(charts, "HiloOpenCloseSegment.lowPoint");
  const highPoint$ = dart.privateName(charts, "HiloOpenCloseSegment.highPoint");
  charts.HiloOpenCloseSegment = class HiloOpenCloseSegment extends charts.ChartSegment {
    get x() {
      return this[x$2];
    }
    set x(value) {
      this[x$2] = value;
    }
    get low() {
      return this[low$];
    }
    set low(value) {
      this[low$] = value;
    }
    get high() {
      return this[high$];
    }
    set high(value) {
      this[high$] = value;
    }
    get xPos() {
      return this[xPos$];
    }
    set xPos(value) {
      this[xPos$] = value;
    }
    get lowPos() {
      return this[lowPos$];
    }
    set lowPos(value) {
      this[lowPos$] = value;
    }
    get highPos() {
      return this[highPos$];
    }
    set highPos(value) {
      this[highPos$] = value;
    }
    get centerY() {
      return this[centerY$1];
    }
    set centerY(value) {
      this[centerY$1] = value;
    }
    get highY() {
      return this[highY$];
    }
    set highY(value) {
      this[highY$] = value;
    }
    get centerX() {
      return this[centerX$1];
    }
    set centerX(value) {
      this[centerX$1] = value;
    }
    get lowX() {
      return this[lowX$];
    }
    set lowX(value) {
      this[lowX$] = value;
    }
    get highX() {
      return this[highX$];
    }
    set highX(value) {
      this[highX$] = value;
    }
    get openX() {
      return this[openX];
    }
    set openX(value) {
      this[openX] = value;
    }
    get openY() {
      return this[openY];
    }
    set openY(value) {
      this[openY] = value;
    }
    get closeX() {
      return this[closeX];
    }
    set closeX(value) {
      this[closeX] = value;
    }
    get closeY() {
      return this[closeY];
    }
    set closeY(value) {
      this[closeY] = value;
    }
    get centerHigh() {
      return this[centerHigh];
    }
    set centerHigh(value) {
      this[centerHigh] = value;
    }
    get centerLow() {
      return this[centerLow];
    }
    set centerLow(value) {
      this[centerLow] = value;
    }
    get lowY() {
      return this[lowY$];
    }
    set lowY(value) {
      this[lowY$] = value;
    }
    get startPos() {
      return this[startPos$];
    }
    set startPos(value) {
      this[startPos$] = value;
    }
    get endPos() {
      return this[endPos$];
    }
    set endPos(value) {
      this[endPos$] = value;
    }
    get open() {
      return this[open];
    }
    set open(value) {
      this[open] = value;
    }
    get close() {
      return this[close];
    }
    set close(value) {
      this[close] = value;
    }
    get isBull() {
      return this[isBull];
    }
    set isBull(value) {
      this[isBull] = value;
    }
    get [_currentPoint]() {
      return this[_currentPoint$3];
    }
    set [_currentPoint](value) {
      this[_currentPoint$3] = value;
    }
    get path() {
      return this[path$1];
    }
    set path(value) {
      this[path$1] = value;
    }
    get centerLowPoint() {
      return this[centerLowPoint];
    }
    set centerLowPoint(value) {
      this[centerLowPoint] = value;
    }
    get centerHighPoint() {
      return this[centerHighPoint];
    }
    set centerHighPoint(value) {
      this[centerHighPoint] = value;
    }
    get lowPoint() {
      return this[lowPoint$];
    }
    set lowPoint(value) {
      this[lowPoint$] = value;
    }
    get highPoint() {
      return this[highPoint$];
    }
    set highPoint(value) {
      this[highPoint$] = value;
    }
    getFillPaint() {
      let t2;
      let fillPaint = ui.Paint.new();
      if (this.color != null) {
        fillPaint.color = (t2 = this[_pointColorMapper], t2 == null ? this.color.withOpacity(this.series.opacity) : t2);
      }
      fillPaint.strokeWidth = this.strokeWidth;
      fillPaint.style = ui.PaintingStyle.fill;
      this[_defaultFillColor] = fillPaint;
      return fillPaint;
    }
    getStrokePaint() {
      let t2;
      let strokePaint = ui.Paint.new();
      if (this.series.gradient == null) {
        if (this.strokeColor != null) {
          strokePaint.color = (t2 = this[_pointColorMapper], t2 == null ? this.strokeColor : t2);
          strokePaint.color = dart.notNull(this.series.opacity) < 1 && !dart.equals(strokePaint.color, colors$.Colors.transparent) ? strokePaint.color.withOpacity(this.series.opacity) : strokePaint.color;
        }
      } else {
        strokePaint.color = this.series.gradient.colors[$_get](0);
      }
      strokePaint.strokeWidth = this.strokeWidth;
      strokePaint.style = ui.PaintingStyle.stroke;
      strokePaint.strokeCap = ui.StrokeCap.round;
      this[_defaultStrokeColor] = strokePaint;
      return strokePaint;
    }
    calculateSegmentPoints() {
      let sideBySideInfo = charts._calculateSideBySideInfo(this.series, this.series[_chart]);
      let startPos = dart.notNull(this.xPos) + dart.notNull(core.num._check(sideBySideInfo.minimum));
      let endPos = dart.notNull(this.xPos) + dart.notNull(core.num._check(sideBySideInfo.maximum));
      let center = startPos + (endPos - startPos) / 2;
      this.isBull = dart.notNull(this.open) < dart.notNull(this.close);
      this.x = this.high = this.low = 0 / 0;
      let rect = charts._calculatePlotOffset(this.series[_chart][_chartAxis][_axisClipRect], new ui.Offset.new(this.series[_xAxis$].plotOffset, this.series[_yAxis$].plotOffset));
      if (this.xPos != null && this.high != null && this.lowPos != null && this.open != null && this.close != null) {
        this.lowPoint = charts._calculatePoint(startPos, this.lowPos, this.series[_xAxis$], this.series[_yAxis$], this.series[_chart][_requireInvertedAxis], this.series, rect);
        this.highPoint = charts._calculatePoint(endPos, this.highPos, this.series[_xAxis$], this.series[_yAxis$], this.series[_chart][_requireInvertedAxis], this.series, rect);
        this.centerHighPoint = charts._calculatePoint(core.num._check(center), this.highPos, this.series[_xAxis$], this.series[_yAxis$], this.series[_chart][_requireInvertedAxis], this.series, rect);
        this.centerLowPoint = charts._calculatePoint(core.num._check(center), this.lowPos, this.series[_xAxis$], this.series[_yAxis$], this.series[_chart][_requireInvertedAxis], this.series, rect);
        this.x = this.lowPoint.x;
        this.low = this.lowPoint.y;
        this.high = this.highPoint.y;
        this.centerHigh = this.centerHighPoint.x;
        this.highY = this.centerHighPoint.y;
        this.centerLow = this.centerLowPoint.x;
        this.lowY = this.centerLowPoint.y;
        this.openX = this[_currentPoint].openPoint.x;
        this.openY = this[_currentPoint].openPoint.y;
        this.closeX = this[_currentPoint].closePoint.x;
        this.closeY = this[_currentPoint].closePoint.y;
      }
    }
    onPaint(canvas) {
      let t2, t2$, t2$0, t2$1, t2$2, t2$3, t2$4, t2$5;
      this.series.selectionSettings[_selectionRenderer][_checkWithSelectionState](this.series.segments[$_get](this.currentSegmentIndex), this.series[_chart]);
      if (this.strokePaint != null) {
        this.path = ui.Path.new();
        if (dart.notNull(this.series.animationDuration) > 0 && !dart.test(this.series[_chart][_chartState][_isLegendToggled])) {
          if (!dart.test(this.series[_chart][_chartState].widgetNeedUpdate)) {
            if (dart.test(this.series[_chart][_requireInvertedAxis])) {
              this.lowX = this.lowPoint.x;
              this.highX = this.highPoint.x;
              this.centerX = dart.notNull(this.highX) + (dart.notNull(this.lowX) - dart.notNull(this.highX)) / 2;
              this.openX = dart.notNull(this.centerX) - (dart.notNull(this.centerX) - dart.notNull(this[_currentPoint].openPoint.x)) * dart.notNull(this.animationFactor);
              this.closeX = dart.notNull(this.centerX) + (dart.notNull(this[_currentPoint].closePoint.x) - dart.notNull(this.centerX)) * dart.notNull(this.animationFactor);
              this.highX = dart.notNull(this.centerX) + (dart.notNull(this.centerX) - dart.notNull(this.highX))[$abs]() * dart.notNull(this.animationFactor);
              this.lowX = dart.notNull(this.centerX) - (dart.notNull(this.lowX) - dart.notNull(this.centerX))[$abs]() * dart.notNull(this.animationFactor);
              canvas.drawLine(new ui.Offset.new(this.lowX, this.centerLowPoint.y), new ui.Offset.new(this.highX, this.centerHighPoint.y), this.strokePaint);
              canvas.drawLine(new ui.Offset.new(this.openX, this.openY), new ui.Offset.new(this.openX, this.highY), this.strokePaint);
              canvas.drawLine(new ui.Offset.new(this.closeX, this.lowY), new ui.Offset.new(this.closeX, this.closeY), this.strokePaint);
            } else {
              this.centerY = dart.notNull(this.high) + (dart.notNull(this.low) - dart.notNull(this.high)) / 2;
              this.openY = dart.notNull(this.centerY) - (dart.notNull(this.centerY) - dart.notNull(this[_currentPoint].openPoint.y)) * dart.notNull(this.animationFactor);
              this.closeY = dart.notNull(this.centerY) + (dart.notNull(this[_currentPoint].closePoint.y) - dart.notNull(this.centerY)) * dart.notNull(this.animationFactor);
              this.highY = dart.notNull(this.centerY) - (dart.notNull(this.centerY) - dart.notNull(this.high)) * dart.notNull(this.animationFactor);
              this.lowY = dart.notNull(this.centerY) + (dart.notNull(this.low) - dart.notNull(this.centerY)) * dart.notNull(this.animationFactor);
              canvas.drawLine(new ui.Offset.new(this.centerHigh, this.highY), new ui.Offset.new(this.centerLow, this.lowY), this.strokePaint);
              canvas.drawLine(new ui.Offset.new(this.openX, this.openY), new ui.Offset.new(this.centerHigh, this.openY), this.strokePaint);
              canvas.drawLine(new ui.Offset.new(this.centerLow, this.closeY), new ui.Offset.new(this.closeX, this.closeY), this.strokePaint);
            }
          } else {
            let currentSegment = charts.HiloOpenCloseSegment._check(this.series.segments[$_get](this.currentSegmentIndex));
            let oldSegment = charts.HiloOpenCloseSegment._check(charts.HiloOpenCloseSegment.is(currentSegment.oldSeries.segments[$_get](0)) && dart.notNull(currentSegment.oldSeries.segments[$length]) - 1 >= dart.notNull(this.currentSegmentIndex) ? currentSegment.oldSeries.segments[$_get](this.currentSegmentIndex) : null);
            charts._animateHiloOpenCloseSeries(this.series[_chart][_requireInvertedAxis], dart.test(this.series[_chart][_requireInvertedAxis]) ? this.lowPoint.x : this.low, dart.test(this.series[_chart][_requireInvertedAxis]) ? this.highPoint.x : this.high, dart.test(this.series[_chart][_requireInvertedAxis]) ? oldSegment != null ? oldSegment.lowPoint.x : null : (t2 = oldSegment, t2 == null ? null : t2.low), dart.test(this.series[_chart][_requireInvertedAxis]) ? oldSegment != null ? oldSegment.highPoint.x : null : (t2$ = oldSegment, t2$ == null ? null : t2$.high), this.openX, this.openY, this.closeX, this.closeY, dart.test(this.series[_chart][_requireInvertedAxis]) ? this.centerLowPoint.y : this.centerLow, dart.test(this.series[_chart][_requireInvertedAxis]) ? this.centerHighPoint.y : this.centerHigh, (t2$0 = oldSegment, t2$0 == null ? null : t2$0.openX), (t2$1 = oldSegment, t2$1 == null ? null : t2$1.openY), (t2$2 = oldSegment, t2$2 == null ? null : t2$2.closeX), (t2$3 = oldSegment, t2$3 == null ? null : t2$3.closeY), dart.test(this.series[_chart][_requireInvertedAxis]) ? oldSegment != null ? oldSegment.centerLowPoint.y : null : (t2$4 = oldSegment, t2$4 == null ? null : t2$4.centerLow), dart.test(this.series[_chart][_requireInvertedAxis]) ? oldSegment != null ? oldSegment.centerHighPoint.y : null : (t2$5 = oldSegment, t2$5 == null ? null : t2$5.centerHigh), this.animationFactor, this.strokePaint, canvas);
          }
        } else {
          this.path = ui.Path.new();
          this.path.moveTo(this.centerHigh, this.highY);
          this.path.lineTo(this.centerLow, this.lowY);
          if (this.series.dashArray[$_get](0) !== 0 && this.series.dashArray[$_get](1) !== 0) {
            charts._drawDashedLine(canvas, this.series.dashArray, this.strokePaint, this.drawOpenClosePath(this.path, this.openX, this.openY, this.closeX, this.closeY, this.highY, this.centerHigh, this.centerLow, this.series[_chart][_requireInvertedAxis]));
          } else {
            canvas.drawPath(this.drawOpenClosePath(this.path, this.openX, this.openY, this.closeX, this.closeY, this.highY, this.centerHigh, this.centerLow, this.series[_chart][_requireInvertedAxis]), this.strokePaint);
          }
        }
      }
    }
    drawOpenClosePath(path, openX, openY, closeX, closeY, highY, centerHigh, centerLow, isTransposed) {
      path.moveTo(openX, openY);
      path.lineTo(dart.test(isTransposed) ? openX : centerHigh, dart.test(isTransposed) ? highY : openY);
      path.moveTo(dart.test(isTransposed) ? closeX : centerLow, dart.test(isTransposed) ? highY : closeY);
      path.lineTo(closeX, closeY);
      return path;
    }
    [_setData](values) {
      this.xPos = values[$_get](0);
      this.lowPos = values[$_get](1);
      this.highPos = values[$_get](2);
      this.open = values[$_get](3);
      this.close = values[$_get](4);
    }
  };
  (charts.HiloOpenCloseSegment.new = function() {
    this[x$2] = null;
    this[low$] = null;
    this[high$] = null;
    this[xPos$] = null;
    this[lowPos$] = null;
    this[highPos$] = null;
    this[centerY$1] = null;
    this[highY$] = null;
    this[centerX$1] = null;
    this[lowX$] = null;
    this[highX$] = null;
    this[openX] = null;
    this[openY] = null;
    this[closeX] = null;
    this[closeY] = null;
    this[centerHigh] = null;
    this[centerLow] = null;
    this[lowY$] = null;
    this[startPos$] = null;
    this[endPos$] = null;
    this[open] = null;
    this[close] = null;
    this[_pointColorMapper] = null;
    this[isBull] = false;
    this[_currentPoint$3] = null;
    this[path$1] = null;
    this[centerLowPoint] = null;
    this[centerHighPoint] = null;
    this[lowPoint$] = null;
    this[highPoint$] = null;
    charts.HiloOpenCloseSegment.__proto__.new.call(this);
    ;
  }).prototype = charts.HiloOpenCloseSegment.prototype;
  dart.addTypeTests(charts.HiloOpenCloseSegment);
  dart.setMethodSignature(charts.HiloOpenCloseSegment, () => ({
    __proto__: dart.getMethods(charts.HiloOpenCloseSegment.__proto__),
    getFillPaint: dart.fnType(ui.Paint, []),
    getStrokePaint: dart.fnType(ui.Paint, []),
    calculateSegmentPoints: dart.fnType(dart.void, []),
    onPaint: dart.fnType(dart.void, [ui.Canvas]),
    drawOpenClosePath: dart.fnType(ui.Path, [ui.Path, core.num, core.num, core.num, core.num, core.num, core.num, core.num, core.bool]),
    [_setData]: dart.fnType(dart.void, [core.List$(core.num)])
  }));
  dart.setLibraryUri(charts.HiloOpenCloseSegment, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.HiloOpenCloseSegment, () => ({
    __proto__: dart.getFields(charts.HiloOpenCloseSegment.__proto__),
    x: dart.fieldType(core.num),
    low: dart.fieldType(core.num),
    high: dart.fieldType(core.num),
    xPos: dart.fieldType(core.num),
    lowPos: dart.fieldType(core.num),
    highPos: dart.fieldType(core.num),
    centerY: dart.fieldType(core.num),
    highY: dart.fieldType(core.num),
    centerX: dart.fieldType(core.num),
    lowX: dart.fieldType(core.num),
    highX: dart.fieldType(core.num),
    openX: dart.fieldType(core.num),
    openY: dart.fieldType(core.num),
    closeX: dart.fieldType(core.num),
    closeY: dart.fieldType(core.num),
    centerHigh: dart.fieldType(core.num),
    centerLow: dart.fieldType(core.num),
    lowY: dart.fieldType(core.num),
    startPos: dart.fieldType(core.num),
    endPos: dart.fieldType(core.num),
    open: dart.fieldType(core.num),
    close: dart.fieldType(core.num),
    [_pointColorMapper]: dart.fieldType(ui.Color),
    isBull: dart.fieldType(core.bool),
    [_currentPoint]: dart.fieldType(charts.CartesianChartPoint),
    path: dart.fieldType(ui.Path),
    centerLowPoint: dart.fieldType(charts._ChartLocation),
    centerHighPoint: dart.fieldType(charts._ChartLocation),
    lowPoint: dart.fieldType(charts._ChartLocation),
    highPoint: dart.fieldType(charts._ChartLocation)
  }));
  const x$3 = dart.privateName(charts, "CandleSegment.x");
  const low$0 = dart.privateName(charts, "CandleSegment.low");
  const high$0 = dart.privateName(charts, "CandleSegment.high");
  const xPos$0 = dart.privateName(charts, "CandleSegment.xPos");
  const lowPos$0 = dart.privateName(charts, "CandleSegment.lowPos");
  const highPos$0 = dart.privateName(charts, "CandleSegment.highPos");
  const centerY$2 = dart.privateName(charts, "CandleSegment.centerY");
  const highY$0 = dart.privateName(charts, "CandleSegment.highY");
  const openX$ = dart.privateName(charts, "CandleSegment.openX");
  const openY$ = dart.privateName(charts, "CandleSegment.openY");
  const closeX$ = dart.privateName(charts, "CandleSegment.closeX");
  const closeY$ = dart.privateName(charts, "CandleSegment.closeY");
  const centerHigh$ = dart.privateName(charts, "CandleSegment.centerHigh");
  const centerLow$ = dart.privateName(charts, "CandleSegment.centerLow");
  const lowY$0 = dart.privateName(charts, "CandleSegment.lowY");
  const startPos$0 = dart.privateName(charts, "CandleSegment.startPos");
  const endPos$0 = dart.privateName(charts, "CandleSegment.endPos");
  const open$ = dart.privateName(charts, "CandleSegment.open");
  const close$ = dart.privateName(charts, "CandleSegment.close");
  const isBull$ = dart.privateName(charts, "CandleSegment.isBull");
  const _currentPoint$4 = dart.privateName(charts, "CandleSegment._currentPoint");
  const width = dart.privateName(charts, "CandleSegment.width");
  const isSolid = dart.privateName(charts, "CandleSegment.isSolid");
  const path$2 = dart.privateName(charts, "CandleSegment.path");
  const openPoint = dart.privateName(charts, "CandleSegment.openPoint");
  const closePoint = dart.privateName(charts, "CandleSegment.closePoint");
  const lowPoint$0 = dart.privateName(charts, "CandleSegment.lowPoint");
  const highPoint$0 = dart.privateName(charts, "CandleSegment.highPoint");
  const centerLowPoint$ = dart.privateName(charts, "CandleSegment.centerLowPoint");
  const centerHighPoint$ = dart.privateName(charts, "CandleSegment.centerHighPoint");
  const currentChartPoint = dart.privateName(charts, "CandleSegment.currentChartPoint");
  charts.CandleSegment = class CandleSegment extends charts.ChartSegment {
    get x() {
      return this[x$3];
    }
    set x(value) {
      this[x$3] = value;
    }
    get low() {
      return this[low$0];
    }
    set low(value) {
      this[low$0] = value;
    }
    get high() {
      return this[high$0];
    }
    set high(value) {
      this[high$0] = value;
    }
    get xPos() {
      return this[xPos$0];
    }
    set xPos(value) {
      this[xPos$0] = value;
    }
    get lowPos() {
      return this[lowPos$0];
    }
    set lowPos(value) {
      this[lowPos$0] = value;
    }
    get highPos() {
      return this[highPos$0];
    }
    set highPos(value) {
      this[highPos$0] = value;
    }
    get centerY() {
      return this[centerY$2];
    }
    set centerY(value) {
      this[centerY$2] = value;
    }
    get highY() {
      return this[highY$0];
    }
    set highY(value) {
      this[highY$0] = value;
    }
    get openX() {
      return this[openX$];
    }
    set openX(value) {
      this[openX$] = value;
    }
    get openY() {
      return this[openY$];
    }
    set openY(value) {
      this[openY$] = value;
    }
    get closeX() {
      return this[closeX$];
    }
    set closeX(value) {
      this[closeX$] = value;
    }
    get closeY() {
      return this[closeY$];
    }
    set closeY(value) {
      this[closeY$] = value;
    }
    get centerHigh() {
      return this[centerHigh$];
    }
    set centerHigh(value) {
      this[centerHigh$] = value;
    }
    get centerLow() {
      return this[centerLow$];
    }
    set centerLow(value) {
      this[centerLow$] = value;
    }
    get lowY() {
      return this[lowY$0];
    }
    set lowY(value) {
      this[lowY$0] = value;
    }
    get startPos() {
      return this[startPos$0];
    }
    set startPos(value) {
      this[startPos$0] = value;
    }
    get endPos() {
      return this[endPos$0];
    }
    set endPos(value) {
      this[endPos$0] = value;
    }
    get open() {
      return this[open$];
    }
    set open(value) {
      this[open$] = value;
    }
    get close() {
      return this[close$];
    }
    set close(value) {
      this[close$] = value;
    }
    get isBull() {
      return this[isBull$];
    }
    set isBull(value) {
      this[isBull$] = value;
    }
    get [_currentPoint]() {
      return this[_currentPoint$4];
    }
    set [_currentPoint](value) {
      this[_currentPoint$4] = value;
    }
    get width() {
      return this[width];
    }
    set width(value) {
      this[width] = value;
    }
    get isSolid() {
      return this[isSolid];
    }
    set isSolid(value) {
      this[isSolid] = value;
    }
    get path() {
      return this[path$2];
    }
    set path(value) {
      this[path$2] = value;
    }
    get openPoint() {
      return this[openPoint];
    }
    set openPoint(value) {
      this[openPoint] = value;
    }
    get closePoint() {
      return this[closePoint];
    }
    set closePoint(value) {
      this[closePoint] = value;
    }
    get lowPoint() {
      return this[lowPoint$0];
    }
    set lowPoint(value) {
      this[lowPoint$0] = value;
    }
    get highPoint() {
      return this[highPoint$0];
    }
    set highPoint(value) {
      this[highPoint$0] = value;
    }
    get centerLowPoint() {
      return this[centerLowPoint$];
    }
    set centerLowPoint(value) {
      this[centerLowPoint$] = value;
    }
    get centerHighPoint() {
      return this[centerHighPoint$];
    }
    set centerHighPoint(value) {
      this[centerHighPoint$] = value;
    }
    get currentChartPoint() {
      return this[currentChartPoint];
    }
    set currentChartPoint(value) {
      this[currentChartPoint] = value;
    }
    getFillPaint() {
      let t2;
      let fillPaint = ui.Paint.new();
      if (this.color != null) {
        fillPaint.color = (t2 = this[_pointColorMapper], t2 == null ? this.color : t2);
        fillPaint.color = dart.notNull(this.series.opacity) < 1 && !dart.equals(fillPaint.color, colors$.Colors.transparent) ? fillPaint.color.withOpacity(this.series.opacity) : fillPaint.color;
      }
      fillPaint.strokeWidth = this.strokeWidth;
      if (dart.test(this.isSolid)) {
        fillPaint.style = ui.PaintingStyle.fill;
      } else {
        fillPaint.style = ui.PaintingStyle.stroke;
      }
      this[_defaultFillColor] = fillPaint;
      return fillPaint;
    }
    getStrokePaint() {
      let t2;
      let strokePaint = ui.Paint.new();
      if (this.series.gradient == null) {
        if (this.strokeColor != null) {
          strokePaint.color = (t2 = this[_pointColorMapper], t2 == null ? this.strokeColor : t2);
          strokePaint.color = dart.notNull(this.series.opacity) < 1 && !dart.equals(strokePaint.color, colors$.Colors.transparent) ? strokePaint.color.withOpacity(this.series.opacity) : strokePaint.color;
        }
      } else {
        strokePaint.color = this.series.gradient.colors[$_get](0);
      }
      strokePaint.strokeWidth = this.strokeWidth;
      strokePaint.style = ui.PaintingStyle.stroke;
      strokePaint.strokeCap = ui.StrokeCap.round;
      this[_defaultStrokeColor] = strokePaint;
      return strokePaint;
    }
    calculateSegmentPoints() {
      let sideBySideInfo = charts._calculateSideBySideInfo(this.series, this.series[_chart]);
      let startPos = dart.notNull(this.xPos) + dart.notNull(core.num._check(sideBySideInfo.minimum));
      let endPos = dart.notNull(this.xPos) + dart.notNull(core.num._check(sideBySideInfo.maximum));
      let center = startPos + (endPos - startPos) / 2;
      dart.notNull(this.open) < dart.notNull(this.close) ? this.isBull = true : this.isBull = false;
      this.x = this.high = this.low = 0 / 0;
      let rect = charts._calculatePlotOffset(this.series[_chart][_chartAxis][_axisClipRect], new ui.Offset.new(this.series[_xAxis$].plotOffset, this.series[_yAxis$].plotOffset));
      if (this.xPos != null && this.lowPos != null) {
        this.currentChartPoint = charts._calculatePoint(startPos, this.lowPos, this.series[_xAxis$], this.series[_yAxis$], this.series[_chart][_requireInvertedAxis], this.series, rect);
        this.centerHighPoint = charts._calculatePoint(core.num._check(center), this.highPos, this.series[_xAxis$], this.series[_yAxis$], this.series[_chart][_requireInvertedAxis], this.series, rect);
        this.centerLowPoint = charts._calculatePoint(core.num._check(center), this.lowPos, this.series[_xAxis$], this.series[_yAxis$], this.series[_chart][_requireInvertedAxis], this.series, rect);
        this.openPoint = charts._calculatePoint(startPos, this.open, this.series[_xAxis$], this.series[_yAxis$], this.series[_chart][_requireInvertedAxis], this.series, rect);
        this.closePoint = charts._calculatePoint(endPos, this.close, this.series[_xAxis$], this.series[_yAxis$], this.series[_chart][_requireInvertedAxis], this.series, rect);
        this.lowPoint = charts._calculatePoint(startPos, this.lowPos, this.series[_xAxis$], this.series[_yAxis$], this.series[_chart][_requireInvertedAxis], this.series, rect);
        this.highPoint = charts._calculatePoint(endPos, this.highPos, this.series[_xAxis$], this.series[_yAxis$], this.series[_chart][_requireInvertedAxis], this.series, rect);
        this.x = this.lowPoint.x;
        this.low = this.lowPoint.y;
        this.high = this.highPoint.y;
        this.centerHigh = this.centerHighPoint.x;
        this.highY = this.centerHighPoint.y;
        this.centerLow = this.centerLowPoint.x;
        this.lowY = this.centerLowPoint.y;
        this.openX = this.openPoint.x;
        this.openY = this.openPoint.y;
        this.closeX = this.closePoint.x;
        this.closeY = this.closePoint.y;
      }
    }
    onPaint(canvas) {
      let t2, t2$, t2$0, t2$1, t2$2, t2$3, t2$4, t2$5;
      this.series.selectionSettings[_selectionRenderer][_checkWithSelectionState](this.series.segments[$_get](this.currentSegmentIndex), this.series[_chart]);
      if (this.fillPaint != null && !(dart.test(this.series[_chart][_chartState].widgetNeedUpdate) && !dart.test(this.series[_chart][_chartState][_isLegendToggled]))) {
        this.path = ui.Path.new();
        if (!dart.test(this.series[_chart][_requireInvertedAxis]) && dart.notNull(this.open) > dart.notNull(this.close)) {
          let temp = this.closeY;
          this.closeY = this.openY;
          this.openY = temp;
        }
        if (dart.test(this.series[_chart][_chartState][_isLegendToggled])) {
          this.animationFactor = 1.0;
        }
        let centersY = dart.notNull(this.closeY) + (dart.notNull(this.closeY) - dart.notNull(this.openY))[$abs]() / 2;
        let topRectY = centersY - (centersY - dart.notNull(this.closeY))[$abs]() * dart.notNull(this.animationFactor);
        let topLineY = topRectY - (topRectY - dart.notNull(this.highY))[$abs]() * dart.notNull(this.animationFactor);
        let bottomRectY = centersY + (centersY - dart.notNull(this.openY))[$abs]() * dart.notNull(this.animationFactor);
        let bottomLineY = bottomRectY + (bottomRectY - dart.notNull(this.lowY))[$abs]() * dart.notNull(this.animationFactor);
        if (dart.notNull(this.lowY) < dart.notNull(this.openY)) {
          bottomLineY = bottomRectY - (dart.notNull(this.openY) - dart.notNull(this.lowY))[$abs]() * dart.notNull(this.animationFactor);
        }
        if (dart.notNull(this.highY) > dart.notNull(this.closeY)) {
          topLineY = topRectY + (dart.notNull(this.closeY) - dart.notNull(this.highY))[$abs]() * dart.notNull(this.animationFactor);
        }
        if (dart.test(this.series[_chart][_requireInvertedAxis])) {
          if (dart.notNull(this.open) > dart.notNull(this.close)) {
            centersY = dart.notNull(this.closeX) + (dart.notNull(this.openX) - dart.notNull(this.closeX))[$abs]() / 2;
            topRectY = centersY + (centersY - dart.notNull(this.openX))[$abs]() * dart.notNull(this.animationFactor);
            bottomRectY = centersY - (centersY - dart.notNull(this.closeX))[$abs]() * dart.notNull(this.animationFactor);
          } else {
            centersY = dart.notNull(this.openX) + (dart.notNull(this.closeX) - dart.notNull(this.openX))[$abs]() / 2;
            topRectY = centersY + (centersY - dart.notNull(this.closeX))[$abs]() * dart.notNull(this.animationFactor);
            bottomRectY = centersY - (centersY - dart.notNull(this.openX))[$abs]() * dart.notNull(this.animationFactor);
          }
        }
        if (dart.test(this.series[_chart][_requireInvertedAxis])) {
          this.path.moveTo(topRectY, this.highY);
          if (dart.notNull(this.centerHigh) < dart.notNull(this.closeX)) {
            this.path.lineTo(topRectY - (dart.notNull(this.closeX) - dart.notNull(this.centerHigh))[$abs]() * dart.notNull(this.animationFactor), this.highY);
          } else
            this.path.lineTo(topRectY + (dart.notNull(this.closeX) - dart.notNull(this.centerHigh))[$abs]() * dart.notNull(this.animationFactor), this.highY);
          this.path.moveTo(bottomRectY, this.highY);
          if (dart.notNull(this.centerLow) > dart.notNull(this.openX)) {
            this.path.lineTo(bottomRectY + (dart.notNull(this.openX) - dart.notNull(this.centerLow))[$abs]() * dart.notNull(this.animationFactor), this.highY);
          } else
            this.path.lineTo(bottomRectY - (dart.notNull(this.openX) - dart.notNull(this.centerLow))[$abs]() * dart.notNull(this.animationFactor), this.highY);
          this.path.moveTo(topRectY, this.closeY);
          this.path.lineTo(topRectY, this.openY);
          this.path.lineTo(bottomRectY, this.openY);
          this.path.lineTo(bottomRectY, this.closeY);
          this.path.lineTo(topRectY, this.closeY);
          this.path.close();
        } else {
          if (dart.notNull(this.open) > dart.notNull(this.close)) {
            let temp = this.closeY;
            this.closeY = this.openY;
            this.openY = temp;
          }
          this.path.moveTo(this.centerHigh, topRectY);
          this.path.lineTo(this.centerHigh, topLineY);
          this.path.moveTo(this.centerLow, bottomRectY);
          this.path.lineTo(this.centerLow, bottomLineY);
          this.path.moveTo(this.openX, topRectY);
          this.path.lineTo(this.closeX, topRectY);
          this.path.lineTo(this.closeX, bottomRectY);
          this.path.lineTo(this.openX, bottomRectY);
          this.path.lineTo(this.openX, topRectY);
          this.path.close();
        }
        if (this.series.dashArray[$_get](0) !== 0 && this.series.dashArray[$_get](1) !== 0 && !dart.equals(this.fillPaint.style, ui.PaintingStyle.fill) && dart.notNull(this.series.animationDuration) <= 0) {
          charts._drawDashedLine(canvas, this.series.dashArray, this.fillPaint, this.path);
        } else {
          canvas.drawPath(this.path, this.fillPaint);
          if (dart.equals(this.fillPaint.style, ui.PaintingStyle.fill)) {
            if (dart.test(this.series[_chart][_requireInvertedAxis])) {
              if (dart.notNull(this.open) > dart.notNull(this.close)) {
                canvas.drawLine(new ui.Offset.new(topRectY, this.highY), new ui.Offset.new(topRectY + (dart.notNull(this.openX) - dart.notNull(this.centerHigh))[$abs]() * dart.notNull(this.animationFactor), this.highY), this.fillPaint);
                canvas.drawLine(new ui.Offset.new(bottomRectY, this.highY), new ui.Offset.new(bottomRectY - (dart.notNull(this.closeX) - dart.notNull(this.centerLow))[$abs]() * dart.notNull(this.animationFactor), this.highY), this.fillPaint);
              } else {
                canvas.drawLine(new ui.Offset.new(topRectY, this.highY), new ui.Offset.new(topRectY + (dart.notNull(this.closeX) - dart.notNull(this.centerHigh))[$abs]() * dart.notNull(this.animationFactor), this.highY), this.fillPaint);
                canvas.drawLine(new ui.Offset.new(bottomRectY, this.highY), new ui.Offset.new(bottomRectY - (dart.notNull(this.openX) - dart.notNull(this.centerLow))[$abs]() * dart.notNull(this.animationFactor), this.highY), this.fillPaint);
              }
            } else {
              canvas.drawLine(new ui.Offset.new(this.centerHigh, topRectY), new ui.Offset.new(this.centerHigh, topLineY), this.fillPaint);
              canvas.drawLine(new ui.Offset.new(this.centerHigh, bottomRectY), new ui.Offset.new(this.centerHigh, bottomLineY), this.fillPaint);
            }
          }
        }
      } else if (!dart.test(this.series[_chart][_chartState][_isLegendToggled])) {
        let currentSegment = charts.CandleSegment._check(this.series.segments[$_get](this.currentSegmentIndex));
        let oldSegment = charts.CandleSegment._check(dart.test(currentSegment.oldSeries.segments[$isNotEmpty]) && charts.CandleSegment.is(currentSegment.oldSeries.segments[$_get](0)) && dart.notNull(currentSegment.oldSeries.segments[$length]) - 1 >= dart.notNull(this.currentSegmentIndex) ? currentSegment.oldSeries.segments[$_get](this.currentSegmentIndex) : null);
        charts._animateCandleSeries(this.series[_chart][_requireInvertedAxis], this.open, this.close, this.lowY, this.highY, (t2 = oldSegment, t2 == null ? null : t2.lowY), (t2$ = oldSegment, t2$ == null ? null : t2$.highY), this.openX, this.openY, this.closeX, this.closeY, this.centerLow, this.centerHigh, (t2$0 = oldSegment, t2$0 == null ? null : t2$0.openX), (t2$1 = oldSegment, t2$1 == null ? null : t2$1.openY), (t2$2 = oldSegment, t2$2 == null ? null : t2$2.closeX), (t2$3 = oldSegment, t2$3 == null ? null : t2$3.closeY), (t2$4 = oldSegment, t2$4 == null ? null : t2$4.centerLow), (t2$5 = oldSegment, t2$5 == null ? null : t2$5.centerHigh), this.animationFactor, this.fillPaint, canvas);
      }
    }
    [_setData](values) {
      this.xPos = values[$_get](0);
      this.lowPos = values[$_get](1);
      this.highPos = values[$_get](2);
      this.open = values[$_get](3);
      this.close = values[$_get](4);
    }
  };
  (charts.CandleSegment.new = function() {
    this[x$3] = null;
    this[low$0] = null;
    this[high$0] = null;
    this[xPos$0] = null;
    this[lowPos$0] = null;
    this[highPos$0] = null;
    this[centerY$2] = null;
    this[highY$0] = null;
    this[openX$] = null;
    this[openY$] = null;
    this[closeX$] = null;
    this[closeY$] = null;
    this[centerHigh$] = null;
    this[centerLow$] = null;
    this[lowY$0] = null;
    this[startPos$0] = null;
    this[endPos$0] = null;
    this[open$] = null;
    this[close$] = null;
    this[_pointColorMapper] = null;
    this[isBull$] = false;
    this[_currentPoint$4] = null;
    this[width] = 0.0;
    this[isSolid] = false;
    this[path$2] = null;
    this[openPoint] = null;
    this[closePoint] = null;
    this[lowPoint$0] = null;
    this[highPoint$0] = null;
    this[centerLowPoint$] = null;
    this[centerHighPoint$] = null;
    this[currentChartPoint] = null;
    charts.CandleSegment.__proto__.new.call(this);
    ;
  }).prototype = charts.CandleSegment.prototype;
  dart.addTypeTests(charts.CandleSegment);
  dart.setMethodSignature(charts.CandleSegment, () => ({
    __proto__: dart.getMethods(charts.CandleSegment.__proto__),
    getFillPaint: dart.fnType(ui.Paint, []),
    getStrokePaint: dart.fnType(ui.Paint, []),
    calculateSegmentPoints: dart.fnType(dart.void, []),
    onPaint: dart.fnType(dart.void, [ui.Canvas]),
    [_setData]: dart.fnType(dart.void, [core.List$(core.num)])
  }));
  dart.setLibraryUri(charts.CandleSegment, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.CandleSegment, () => ({
    __proto__: dart.getFields(charts.CandleSegment.__proto__),
    x: dart.fieldType(core.num),
    low: dart.fieldType(core.num),
    high: dart.fieldType(core.num),
    xPos: dart.fieldType(core.num),
    lowPos: dart.fieldType(core.num),
    highPos: dart.fieldType(core.num),
    centerY: dart.fieldType(core.num),
    highY: dart.fieldType(core.num),
    openX: dart.fieldType(core.num),
    openY: dart.fieldType(core.num),
    closeX: dart.fieldType(core.num),
    closeY: dart.fieldType(core.num),
    centerHigh: dart.fieldType(core.num),
    centerLow: dart.fieldType(core.num),
    lowY: dart.fieldType(core.num),
    startPos: dart.fieldType(core.num),
    endPos: dart.fieldType(core.num),
    open: dart.fieldType(core.num),
    close: dart.fieldType(core.num),
    [_pointColorMapper]: dart.fieldType(ui.Color),
    isBull: dart.fieldType(core.bool),
    [_currentPoint]: dart.fieldType(charts.CartesianChartPoint),
    width: dart.fieldType(core.double),
    isSolid: dart.fieldType(core.bool),
    path: dart.fieldType(ui.Path),
    openPoint: dart.fieldType(charts._ChartLocation),
    closePoint: dart.fieldType(charts._ChartLocation),
    lowPoint: dart.fieldType(charts._ChartLocation),
    highPoint: dart.fieldType(charts._ChartLocation),
    centerLowPoint: dart.fieldType(charts._ChartLocation),
    centerHighPoint: dart.fieldType(charts._ChartLocation),
    currentChartPoint: dart.fieldType(charts._ChartLocation)
  }));
  const x1$0 = dart.privateName(charts, "LineSegment.x1");
  const y1$0 = dart.privateName(charts, "LineSegment.y1");
  const x2$0 = dart.privateName(charts, "LineSegment.x2");
  const y2$0 = dart.privateName(charts, "LineSegment.y2");
  charts.LineSegment = class LineSegment extends charts.ChartSegment {
    get x1() {
      return this[x1$0];
    }
    set x1(value) {
      this[x1$0] = value;
    }
    get y1() {
      return this[y1$0];
    }
    set y1(value) {
      this[y1$0] = value;
    }
    get x2() {
      return this[x2$0];
    }
    set x2(value) {
      this[x2$0] = value;
    }
    get y2() {
      return this[y2$0];
    }
    set y2(value) {
      this[y2$0] = value;
    }
    getFillPaint() {
      let t2;
      let fillPaint = ui.Paint.new();
      if (this.color != null) {
        fillPaint.color = (t2 = this[_pointColorMapper], t2 == null ? this.color.withOpacity(this.series.opacity) : t2);
      }
      fillPaint.strokeWidth = this.strokeWidth;
      fillPaint.style = ui.PaintingStyle.fill;
      this[_defaultFillColor] = fillPaint;
      return fillPaint;
    }
    getStrokePaint() {
      let t2;
      let strokePaint = ui.Paint.new();
      if (this.series.gradient == null) {
        if (this.strokeColor != null) {
          strokePaint.color = (t2 = this[_pointColorMapper], t2 == null ? this.strokeColor : t2);
          strokePaint.color = dart.notNull(this.series.opacity) < 1 && !dart.equals(strokePaint.color, colors$.Colors.transparent) ? strokePaint.color.withOpacity(this.series.opacity) : strokePaint.color;
        }
      } else {
        strokePaint.color = this.series.gradient.colors[$_get](0);
      }
      strokePaint.strokeWidth = this.strokeWidth;
      strokePaint.style = ui.PaintingStyle.stroke;
      strokePaint.strokeCap = ui.StrokeCap.round;
      this[_defaultStrokeColor] = strokePaint;
      return strokePaint;
    }
    calculateSegmentPoints() {
      let _xAxis = this.series[_xAxis$];
      let _yAxis = this.series[_yAxis$];
      let axisClipRect = charts._calculatePlotOffset(this.chart[_chartAxis][_axisClipRect], new ui.Offset.new(this.series[_xAxis$].plotOffset, this.series[_yAxis$].plotOffset));
      let currentPointLocation = charts._calculatePoint(core.num._check(this[_currentPoint].xValue), core.num._check(this[_currentPoint].yValue), _xAxis, _yAxis, this.chart[_requireInvertedAxis], this.series, axisClipRect);
      this.x1 = currentPointLocation.x;
      this.y1 = currentPointLocation.y;
      let nextPointLocation = charts._calculatePoint(core.num._check(this[_nextPoint].xValue), core.num._check(this[_nextPoint].yValue), _xAxis, _yAxis, this.chart[_requireInvertedAxis], this.series, axisClipRect);
      this.x2 = nextPointLocation.x;
      this.y2 = nextPointLocation.y;
    }
    onPaint(canvas) {
      let t2, t2$, t2$0, t2$1;
      let rect = charts._calculatePlotOffset(this.series[_chart][_chartAxis][_axisClipRect], new ui.Offset.new(this.series[_xAxis$].plotOffset, this.series[_yAxis$].plotOffset));
      this.series.selectionSettings[_selectionRenderer][_checkWithSelectionState](this.series.segments[$_get](this.currentSegmentIndex), this.series[_chart]);
      if (dart.notNull(this.series.animationDuration) > 0 && this.oldSeries != null && dart.test(this.oldSeries.segments[$isNotEmpty]) && charts.LineSegment.is(this.oldSeries.segments[$_get](0)) && dart.notNull(this.series[_chart][_chartState].prevWidgetSeries[$length]) - 1 >= dart.notNull(this.series.segments[$_get](this.currentSegmentIndex)[_seriesIndex]) && dart.test(this.series.segments[$_get](this.currentSegmentIndex).oldSeries.segments[$isNotEmpty])) {
        let currentSegment = charts.LineSegment._check(this.series.segments[$_get](this.currentSegmentIndex));
        let oldSegment = charts.LineSegment._check(dart.notNull(currentSegment.oldSeries.segments[$length]) - 1 >= dart.notNull(this.currentSegmentIndex) ? currentSegment.oldSeries.segments[$_get](this.currentSegmentIndex) : null);
        let oldX1 = null;
        let oldY1 = null;
        let oldX2 = null;
        let oldY2 = null;
        oldX1 = (t2 = oldSegment, t2 == null ? null : t2.x1);
        oldY1 = (t2$ = oldSegment, t2$ == null ? null : t2$.y1);
        oldX2 = (t2$0 = oldSegment, t2$0 == null ? null : t2$0.x2);
        oldY2 = (t2$1 = oldSegment, t2$1 == null ? null : t2$1.y2);
        if (oldSegment != null && (oldX1[$isNaN] || oldX2[$isNaN]) && this.series[_chart][_chartState].oldAxes != null) {
          let oldXAxis = null;
          let oldYAxis = null;
          let needAnimate = null;
          let first = null;
          let second = null;
          oldXAxis = charts._getOldAxis(this.series[_xAxis$], this.series[_chart][_chartState].oldAxes);
          oldYAxis = charts._getOldAxis(this.series[_yAxis$], this.series[_chart][_chartState].oldAxes);
          if (oldYAxis != null && oldXAxis != null) {
            needAnimate = !dart.equals(oldYAxis[_visibleRange].minimum, this.series[_yAxis$][_visibleRange].minimum) || !dart.equals(oldYAxis[_visibleRange].maximum, this.series[_yAxis$][_visibleRange].maximum) || !dart.equals(oldXAxis[_visibleRange].minimum, this.series[_xAxis$][_visibleRange].minimum) || !dart.equals(oldXAxis[_visibleRange].maximum, this.series[_xAxis$][_visibleRange].maximum);
          }
          if (dart.test(needAnimate)) {
            first = charts._calculatePoint(core.num._check(this[_currentPoint].xValue), core.num._check(this[_currentPoint].yValue), oldXAxis, oldYAxis, this.series[_chart][_requireInvertedAxis], this.series, rect);
            second = charts._calculatePoint(core.num._check(this[_nextPoint].xValue), core.num._check(this[_nextPoint].yValue), oldXAxis, oldYAxis, this.series[_chart][_requireInvertedAxis], this.series, rect);
            oldX1 = first.x;
            oldX2 = second.x;
            oldY1 = first.y;
            oldY2 = second.y;
          }
        }
        charts._animateLineTypeSeries(canvas, this.series, this.strokePaint, this.animationFactor, currentSegment.x1, currentSegment.y1, currentSegment.x2, currentSegment.y2, oldX1, oldY1, oldX2, oldY2);
      } else {
        let path = ui.Path.new();
        path.moveTo(this.x1, this.y1);
        path.lineTo(this.x2, this.y2);
        charts._drawDashedLine(canvas, this.series.dashArray, this.strokePaint, path);
      }
    }
  };
  (charts.LineSegment.new = function() {
    this[x1$0] = null;
    this[y1$0] = null;
    this[x2$0] = null;
    this[y2$0] = null;
    this[_pointColorMapper] = null;
    charts.LineSegment.__proto__.new.call(this);
    ;
  }).prototype = charts.LineSegment.prototype;
  dart.addTypeTests(charts.LineSegment);
  dart.setMethodSignature(charts.LineSegment, () => ({
    __proto__: dart.getMethods(charts.LineSegment.__proto__),
    getFillPaint: dart.fnType(ui.Paint, []),
    getStrokePaint: dart.fnType(ui.Paint, []),
    calculateSegmentPoints: dart.fnType(dart.void, []),
    onPaint: dart.fnType(dart.void, [ui.Canvas])
  }));
  dart.setLibraryUri(charts.LineSegment, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.LineSegment, () => ({
    __proto__: dart.getFields(charts.LineSegment.__proto__),
    x1: dart.fieldType(core.num),
    y1: dart.fieldType(core.num),
    x2: dart.fieldType(core.num),
    y2: dart.fieldType(core.num),
    [_pointColorMapper]: dart.fieldType(ui.Color)
  }));
  const _currentCummulativePos = dart.privateName(charts, "_currentCummulativePos");
  const _nextCummulativePos = dart.privateName(charts, "_nextCummulativePos");
  const _x1Pos = dart.privateName(charts, "_x1Pos");
  const _y1Pos = dart.privateName(charts, "_y1Pos");
  const _x2Pos = dart.privateName(charts, "_x2Pos");
  const _y2Pos = dart.privateName(charts, "_y2Pos");
  const x1$1 = dart.privateName(charts, "StackedLineSegment.x1");
  const y1$1 = dart.privateName(charts, "StackedLineSegment.y1");
  const x2$1 = dart.privateName(charts, "StackedLineSegment.x2");
  const y2$1 = dart.privateName(charts, "StackedLineSegment.y2");
  const currentCummulativeValue = dart.privateName(charts, "StackedLineSegment.currentCummulativeValue");
  const nextCummulativeValue = dart.privateName(charts, "StackedLineSegment.nextCummulativeValue");
  charts.StackedLineSegment = class StackedLineSegment extends charts.ChartSegment {
    get x1() {
      return this[x1$1];
    }
    set x1(value) {
      this[x1$1] = value;
    }
    get y1() {
      return this[y1$1];
    }
    set y1(value) {
      this[y1$1] = value;
    }
    get x2() {
      return this[x2$1];
    }
    set x2(value) {
      this[x2$1] = value;
    }
    get y2() {
      return this[y2$1];
    }
    set y2(value) {
      this[y2$1] = value;
    }
    get currentCummulativeValue() {
      return this[currentCummulativeValue];
    }
    set currentCummulativeValue(value) {
      this[currentCummulativeValue] = value;
    }
    get nextCummulativeValue() {
      return this[nextCummulativeValue];
    }
    set nextCummulativeValue(value) {
      this[nextCummulativeValue] = value;
    }
    getFillPaint() {
      let t2;
      let fillPaint = ui.Paint.new();
      if (this.color != null) {
        fillPaint.color = (t2 = this[_pointColorMapper], t2 == null ? this.color.withOpacity(this.series.opacity) : t2);
      }
      fillPaint.strokeWidth = this.strokeWidth;
      fillPaint.style = ui.PaintingStyle.fill;
      this[_defaultFillColor] = fillPaint;
      return fillPaint;
    }
    getStrokePaint() {
      let t2;
      let strokePaint = ui.Paint.new();
      if (this.series.gradient == null) {
        if (this.strokeColor != null) {
          strokePaint.color = (t2 = this[_pointColorMapper], t2 == null ? this.strokeColor : t2);
          strokePaint.color = dart.notNull(this.series.opacity) < 1 && !dart.equals(strokePaint.color, colors$.Colors.transparent) ? strokePaint.color.withOpacity(this.series.opacity) : strokePaint.color;
        }
      } else {
        strokePaint.color = this.series.gradient.colors[$_get](0);
      }
      strokePaint.strokeWidth = this.strokeWidth;
      strokePaint.style = ui.PaintingStyle.stroke;
      strokePaint.strokeCap = ui.StrokeCap.round;
      this[_defaultStrokeColor] = strokePaint;
      return strokePaint;
    }
    calculateSegmentPoints() {
      let start = this.series[_xAxis$][_visibleRange].minimum;
      let end = this.series[_xAxis$][_visibleRange].maximum;
      this.x1 = this.y1 = this.x2 = this.y2 = 0 / 0;
      let rect = charts._calculatePlotOffset(this.series[_chart][_chartAxis][_axisClipRect], new ui.Offset.new(this.series[_xAxis$].plotOffset, this.series[_yAxis$].plotOffset));
      if (this[_x1Pos] != null && this[_x2Pos] != null && this[_y1Pos] != null && this[_y2Pos] != null && this[_currentCummulativePos] != null && this[_nextCummulativePos] != null && (dart.notNull(this[_x1Pos]) >= dart.notNull(core.num._check(start)) && dart.notNull(this[_x1Pos]) <= dart.notNull(core.num._check(end)) || dart.notNull(this[_x2Pos]) >= dart.notNull(core.num._check(start)) && dart.notNull(this[_x2Pos]) <= dart.notNull(core.num._check(end)) || dart.dtest(dart.dsend(start, '>=', [this[_x1Pos]])) && dart.dtest(dart.dsend(start, '<=', [this[_x2Pos]])))) {
        let currentChartPoint = charts._calculatePoint(this[_x1Pos], this[_y1Pos], this.series[_xAxis$], this.series[_yAxis$], this.series[_chart][_requireInvertedAxis], this.series, rect);
        let nextPoint = charts._calculatePoint(this[_x2Pos], this[_y2Pos], this.series[_xAxis$], this.series[_yAxis$], this.series[_chart][_requireInvertedAxis], this.series, rect);
        let currentCummulativePoint = charts._calculatePoint(this[_x1Pos], this[_currentCummulativePos], this.series[_xAxis$], this.series[_yAxis$], this.series[_chart][_requireInvertedAxis], this.series, rect);
        let nextCummulativePoint = charts._calculatePoint(this[_x2Pos], this[_nextCummulativePos], this.series[_xAxis$], this.series[_yAxis$], this.series[_chart][_requireInvertedAxis], this.series, rect);
        this.x1 = currentChartPoint.x;
        this.y1 = currentChartPoint.y;
        this.x2 = nextPoint.x;
        this.y2 = nextPoint.y;
        this.currentCummulativeValue = currentCummulativePoint.y;
        this.nextCummulativeValue = nextCummulativePoint.y;
      }
    }
    onPaint(canvas) {
      this.series.selectionSettings[_selectionRenderer][_checkWithSelectionState](this.series.segments[$_get](this.currentSegmentIndex), this.series[_chart]);
      charts._renderStackedLineSeries(charts._StackedSeriesBase._check(this.series), canvas, this.strokePaint);
    }
    [_setData](values) {
      this[_x1Pos] = values[$_get](0);
      this[_y1Pos] = values[$_get](1);
      this[_x2Pos] = values[$_get](3);
      this[_y2Pos] = values[$_get](4);
      this[_currentCummulativePos] = values[$_get](2);
      this[_nextCummulativePos] = values[$_get](5);
    }
  };
  (charts.StackedLineSegment.new = function() {
    this[x1$1] = null;
    this[y1$1] = null;
    this[x2$1] = null;
    this[y2$1] = null;
    this[_currentCummulativePos] = null;
    this[_nextCummulativePos] = null;
    this[_x1Pos] = null;
    this[_y1Pos] = null;
    this[_x2Pos] = null;
    this[_y2Pos] = null;
    this[currentCummulativeValue] = null;
    this[nextCummulativeValue] = null;
    this[_pointColorMapper] = null;
    charts.StackedLineSegment.__proto__.new.call(this);
    ;
  }).prototype = charts.StackedLineSegment.prototype;
  dart.addTypeTests(charts.StackedLineSegment);
  dart.setMethodSignature(charts.StackedLineSegment, () => ({
    __proto__: dart.getMethods(charts.StackedLineSegment.__proto__),
    getFillPaint: dart.fnType(ui.Paint, []),
    getStrokePaint: dart.fnType(ui.Paint, []),
    calculateSegmentPoints: dart.fnType(dart.void, []),
    onPaint: dart.fnType(dart.void, [ui.Canvas]),
    [_setData]: dart.fnType(dart.void, [core.List$(core.num)])
  }));
  dart.setLibraryUri(charts.StackedLineSegment, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.StackedLineSegment, () => ({
    __proto__: dart.getFields(charts.StackedLineSegment.__proto__),
    x1: dart.fieldType(core.num),
    y1: dart.fieldType(core.num),
    x2: dart.fieldType(core.num),
    y2: dart.fieldType(core.num),
    [_currentCummulativePos]: dart.fieldType(core.num),
    [_nextCummulativePos]: dart.fieldType(core.num),
    [_x1Pos]: dart.fieldType(core.num),
    [_y1Pos]: dart.fieldType(core.num),
    [_x2Pos]: dart.fieldType(core.num),
    [_y2Pos]: dart.fieldType(core.num),
    currentCummulativeValue: dart.fieldType(core.num),
    nextCummulativeValue: dart.fieldType(core.num),
    [_pointColorMapper]: dart.fieldType(ui.Color)
  }));
  const _borderPath = dart.privateName(charts, "_borderPath");
  const series$7 = dart.privateName(charts, "RangeAreaSegment.series");
  charts.RangeAreaSegment = class RangeAreaSegment extends charts.ChartSegment {
    get series() {
      return this[series$7];
    }
    set series(value) {
      this[series$7] = value;
    }
    getFillPaint() {
      this.fillPaint = ui.Paint.new();
      if (this.series.gradient == null) {
        if (this.color != null) {
          this.fillPaint.color = this.color;
          this.fillPaint.style = ui.PaintingStyle.fill;
        }
      } else {
        this.fillPaint = this[_pathRect$] != null ? charts._getLinearGradientPaint(this.series.gradient, this[_pathRect$], this.series[_chart][_requireInvertedAxis]) : this.fillPaint;
      }
      if (this.fillPaint.color != null) this.fillPaint.color = dart.notNull(this.series.opacity) < 1 && !dart.equals(this.fillPaint.color, colors$.Colors.transparent) ? this.fillPaint.color.withOpacity(this.series.opacity) : this.fillPaint.color;
      this[_defaultFillColor] = this.fillPaint;
      return this.fillPaint;
    }
    getStrokePaint() {
      let t2;
      let strokePaint = ui.Paint.new();
      if (this.strokeColor != null) {
        t2 = strokePaint;
        t2.color = this.series.borderColor;
        t2.style = ui.PaintingStyle.stroke;
        t2.strokeWidth = this.series.borderWidth;
        t2;
        this.series.borderWidth === 0 ? strokePaint.color = colors$.Colors.transparent : strokePaint.color;
      }
      strokePaint.strokeCap = ui.StrokeCap.round;
      this[_defaultStrokeColor] = strokePaint;
      return strokePaint;
    }
    calculateSegmentPoints() {
    }
    onPaint(canvas) {
      let rect = this.series[_chart][_chartAxis][_axisClipRect];
      let prevPoint = null;
      let currentPointLow = null;
      let currentPointHigh = null;
      let xAxis = this.series[_xAxis$];
      let yAxis = this.series[_yAxis$];
      let point = null;
      this[_path$] = ui.Path.new();
      this[_borderPath] = ui.Path.new();
      for (let pointIndex = 0; pointIndex < dart.notNull(this.series[_dataPoints$][$length]); pointIndex = pointIndex + 1) {
        point = this.series[_dataPoints$][$_get](pointIndex);
        if (dart.test(point.isVisible) && !dart.test(point.isDrop)) {
          currentPointLow = charts._calculatePoint(core.num._check(point.xValue), core.num._check(point.low), xAxis, yAxis, this.series[_chart][_requireInvertedAxis], this.series, rect);
          currentPointHigh = charts._calculatePoint(core.num._check(point.xValue), core.num._check(point.high), xAxis, yAxis, this.series[_chart][_requireInvertedAxis], this.series, rect);
          if (prevPoint == null || dart.equals(this.series[_dataPoints$][$_get](pointIndex - 1).isGap, true) || dart.equals(this.series[_dataPoints$][$_get](pointIndex).isGap, true) || dart.equals(this.series[_dataPoints$][$_get](pointIndex - 1).isVisible, false) && dart.equals(this.series.emptyPointSettings.mode, charts.EmptyPointMode.gap)) {
            this[_path$].moveTo(currentPointLow.x, currentPointLow.y);
            this[_path$].lineTo(currentPointHigh.x, currentPointHigh.y);
            this[_borderPath].moveTo(currentPointHigh.x, currentPointHigh.y);
          } else if (pointIndex === dart.notNull(this.series[_dataPoints$][$length]) - 1 || dart.equals(this.series[_dataPoints$][$_get](pointIndex + 1).isGap, true)) {
            this[_path$].lineTo(currentPointHigh.x, currentPointHigh.y);
            this[_path$].lineTo(currentPointLow.x, currentPointLow.y);
            this[_borderPath].lineTo(currentPointHigh.x, currentPointHigh.y);
            this[_borderPath].moveTo(currentPointLow.x, currentPointLow.y);
          } else {
            this[_borderPath].lineTo(currentPointHigh.x, currentPointHigh.y);
            this[_path$].lineTo(currentPointHigh.x, currentPointHigh.y);
          }
          prevPoint = point;
        }
      }
      for (let pointIndex = dart.notNull(this.series[_dataPoints$][$length]) - 2; pointIndex >= 0; pointIndex = pointIndex - 1) {
        point = this.series[_dataPoints$][$_get](pointIndex);
        if (dart.test(point.isVisible) && !dart.test(point.isDrop)) {
          currentPointLow = charts._calculatePoint(core.num._check(point.xValue), core.num._check(point.low), xAxis, yAxis, this.series[_chart][_requireInvertedAxis], this.series, rect);
          currentPointHigh = charts._calculatePoint(core.num._check(point.xValue), core.num._check(point.high), xAxis, yAxis, this.series[_chart][_requireInvertedAxis], this.series, rect);
          if (dart.equals(this.series[_dataPoints$][$_get](pointIndex + 1).isGap, true)) {
            this[_borderPath].moveTo(currentPointLow.x, currentPointLow.y);
            this[_path$].moveTo(currentPointLow.x, currentPointLow.y);
          } else if (!dart.equals(this.series[_dataPoints$][$_get](pointIndex).isGap, true)) {
            if (pointIndex + 1 === dart.notNull(this.series[_dataPoints$][$length]) - 1 && dart.test(this.series[_dataPoints$][$_get](pointIndex + 1).isDrop)) {
              this[_borderPath].moveTo(currentPointLow.x, currentPointLow.y);
            } else {
              this[_borderPath].lineTo(currentPointLow.x, currentPointLow.y);
            }
            this[_path$].lineTo(currentPointLow.x, currentPointLow.y);
          }
          prevPoint = point;
        }
      }
      this[_pathRect$] = this[_path$].getBounds();
      this.series.selectionSettings[_selectionRenderer][_checkWithSelectionState](this.series.segments[$_get](0), this.series[_chart]);
      canvas.drawPath(this[_path$], this.series.gradient == null ? this.fillPaint : this.getFillPaint());
      if (!dart.equals(this.strokePaint.color, colors$.Colors.transparent)) {
        let _series = charts.RangeAreaSeries._check(this.series);
        charts._drawDashedLine(canvas, this.series.dashArray, this.strokePaint, dart.equals(_series.borderDrawMode, charts.RangeAreaBorderMode.all) ? this[_path$] : this[_borderPath]);
      }
    }
  };
  (charts.RangeAreaSegment.new = function() {
    this[_path$] = null;
    this[_borderPath] = null;
    this[_pathRect$] = null;
    this[series$7] = null;
    charts.RangeAreaSegment.__proto__.new.call(this);
    ;
  }).prototype = charts.RangeAreaSegment.prototype;
  dart.addTypeTests(charts.RangeAreaSegment);
  dart.setMethodSignature(charts.RangeAreaSegment, () => ({
    __proto__: dart.getMethods(charts.RangeAreaSegment.__proto__),
    getFillPaint: dart.fnType(ui.Paint, []),
    getStrokePaint: dart.fnType(ui.Paint, []),
    calculateSegmentPoints: dart.fnType(dart.void, []),
    onPaint: dart.fnType(dart.void, [ui.Canvas])
  }));
  dart.setLibraryUri(charts.RangeAreaSegment, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.RangeAreaSegment, () => ({
    __proto__: dart.getFields(charts.RangeAreaSegment.__proto__),
    [_path$]: dart.fieldType(ui.Path),
    [_borderPath]: dart.fieldType(ui.Path),
    [_pathRect$]: dart.fieldType(ui.Rect),
    series: dart.fieldType(charts.XyDataSeries)
  }));
  const x1$2 = dart.privateName(charts, "StackedLine100Segment.x1");
  const y1$2 = dart.privateName(charts, "StackedLine100Segment.y1");
  const x2$2 = dart.privateName(charts, "StackedLine100Segment.x2");
  const y2$2 = dart.privateName(charts, "StackedLine100Segment.y2");
  const currentCummulativeValue$ = dart.privateName(charts, "StackedLine100Segment.currentCummulativeValue");
  const nextCummulativeValue$ = dart.privateName(charts, "StackedLine100Segment.nextCummulativeValue");
  charts.StackedLine100Segment = class StackedLine100Segment extends charts.ChartSegment {
    get x1() {
      return this[x1$2];
    }
    set x1(value) {
      this[x1$2] = value;
    }
    get y1() {
      return this[y1$2];
    }
    set y1(value) {
      this[y1$2] = value;
    }
    get x2() {
      return this[x2$2];
    }
    set x2(value) {
      this[x2$2] = value;
    }
    get y2() {
      return this[y2$2];
    }
    set y2(value) {
      this[y2$2] = value;
    }
    get currentCummulativeValue() {
      return this[currentCummulativeValue$];
    }
    set currentCummulativeValue(value) {
      this[currentCummulativeValue$] = value;
    }
    get nextCummulativeValue() {
      return this[nextCummulativeValue$];
    }
    set nextCummulativeValue(value) {
      this[nextCummulativeValue$] = value;
    }
    getFillPaint() {
      let t2;
      let fillPaint = ui.Paint.new();
      if (this.color != null) {
        fillPaint.color = (t2 = this[_pointColorMapper], t2 == null ? this.color.withOpacity(this.series.opacity) : t2);
      }
      fillPaint.strokeWidth = this.strokeWidth;
      fillPaint.style = ui.PaintingStyle.fill;
      this[_defaultFillColor] = fillPaint;
      return fillPaint;
    }
    getStrokePaint() {
      let t2;
      let strokePaint = ui.Paint.new();
      if (this.series.gradient == null) {
        if (this.strokeColor != null) {
          strokePaint.color = (t2 = this[_pointColorMapper], t2 == null ? this.strokeColor : t2);
          strokePaint.color = dart.notNull(this.series.opacity) < 1 && !dart.equals(strokePaint.color, colors$.Colors.transparent) ? strokePaint.color.withOpacity(this.series.opacity) : strokePaint.color;
        }
      } else {
        strokePaint.color = this.series.gradient.colors[$_get](0);
      }
      strokePaint.strokeWidth = this.strokeWidth;
      strokePaint.style = ui.PaintingStyle.stroke;
      strokePaint.strokeCap = ui.StrokeCap.round;
      this[_defaultStrokeColor] = strokePaint;
      return strokePaint;
    }
    calculateSegmentPoints() {
      let start = this.series[_xAxis$][_visibleRange].minimum;
      let end = this.series[_xAxis$][_visibleRange].maximum;
      this.x1 = this.y1 = this.x2 = this.y2 = 0 / 0;
      let rect = charts._calculatePlotOffset(this.series[_chart][_chartAxis][_axisClipRect], new ui.Offset.new(this.series[_xAxis$].plotOffset, this.series[_yAxis$].plotOffset));
      if (this[_x1Pos] != null && this[_x2Pos] != null && this[_y1Pos] != null && this[_y2Pos] != null && this[_currentCummulativePos] != null && this[_nextCummulativePos] != null && (dart.notNull(this[_x1Pos]) >= dart.notNull(core.num._check(start)) && dart.notNull(this[_x1Pos]) <= dart.notNull(core.num._check(end)) || dart.notNull(this[_x2Pos]) >= dart.notNull(core.num._check(start)) && dart.notNull(this[_x2Pos]) <= dart.notNull(core.num._check(end)) || dart.dtest(dart.dsend(start, '>=', [this[_x1Pos]])) && dart.dtest(dart.dsend(start, '<=', [this[_x2Pos]])))) {
        let currentChartPoint = charts._calculatePoint(this[_x1Pos], this[_y1Pos], this.series[_xAxis$], this.series[_yAxis$], this.series[_chart][_requireInvertedAxis], this.series, rect);
        let nextPoint = charts._calculatePoint(this[_x2Pos], this[_y2Pos], this.series[_xAxis$], this.series[_yAxis$], this.series[_chart][_requireInvertedAxis], this.series, rect);
        let currentCummulativePoint = charts._calculatePoint(this[_x1Pos], this[_currentCummulativePos], this.series[_xAxis$], this.series[_yAxis$], this.series[_chart][_requireInvertedAxis], this.series, rect);
        let nextCummulativePoint = charts._calculatePoint(this[_x2Pos], this[_nextCummulativePos], this.series[_xAxis$], this.series[_yAxis$], this.series[_chart][_requireInvertedAxis], this.series, rect);
        this.x1 = currentChartPoint.x;
        this.y1 = currentChartPoint.y;
        this.x2 = nextPoint.x;
        this.y2 = nextPoint.y;
        this.currentCummulativeValue = currentCummulativePoint.y;
        this.nextCummulativeValue = nextCummulativePoint.y;
      }
    }
    onPaint(canvas) {
      charts._renderStackedLineSeries(charts._StackedSeriesBase._check(this.series), canvas, this.strokePaint);
    }
    [_setData](values) {
      this[_x1Pos] = values[$_get](0);
      this[_y1Pos] = values[$_get](1);
      this[_x2Pos] = values[$_get](3);
      this[_y2Pos] = values[$_get](4);
      this[_currentCummulativePos] = values[$_get](2);
      this[_nextCummulativePos] = values[$_get](5);
    }
  };
  (charts.StackedLine100Segment.new = function() {
    this[x1$2] = null;
    this[y1$2] = null;
    this[x2$2] = null;
    this[y2$2] = null;
    this[_currentCummulativePos] = null;
    this[_nextCummulativePos] = null;
    this[currentCummulativeValue$] = null;
    this[nextCummulativeValue$] = null;
    this[_x1Pos] = null;
    this[_y1Pos] = null;
    this[_x2Pos] = null;
    this[_y2Pos] = null;
    this[_pointColorMapper] = null;
    charts.StackedLine100Segment.__proto__.new.call(this);
    ;
  }).prototype = charts.StackedLine100Segment.prototype;
  dart.addTypeTests(charts.StackedLine100Segment);
  dart.setMethodSignature(charts.StackedLine100Segment, () => ({
    __proto__: dart.getMethods(charts.StackedLine100Segment.__proto__),
    getFillPaint: dart.fnType(ui.Paint, []),
    getStrokePaint: dart.fnType(ui.Paint, []),
    calculateSegmentPoints: dart.fnType(dart.void, []),
    onPaint: dart.fnType(dart.void, [ui.Canvas]),
    [_setData]: dart.fnType(dart.void, [core.List$(core.num)])
  }));
  dart.setLibraryUri(charts.StackedLine100Segment, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.StackedLine100Segment, () => ({
    __proto__: dart.getFields(charts.StackedLine100Segment.__proto__),
    x1: dart.fieldType(core.num),
    y1: dart.fieldType(core.num),
    x2: dart.fieldType(core.num),
    y2: dart.fieldType(core.num),
    [_currentCummulativePos]: dart.fieldType(core.num),
    [_nextCummulativePos]: dart.fieldType(core.num),
    currentCummulativeValue: dart.fieldType(core.num),
    nextCummulativeValue: dart.fieldType(core.num),
    [_x1Pos]: dart.fieldType(core.num),
    [_y1Pos]: dart.fieldType(core.num),
    [_x2Pos]: dart.fieldType(core.num),
    [_y2Pos]: dart.fieldType(core.num),
    [_pointColorMapper]: dart.fieldType(ui.Color)
  }));
  const _borderRadius = dart.privateName(charts, "_borderRadius");
  const x1$3 = dart.privateName(charts, "RangeColumnSegment.x1");
  const topLeft = dart.privateName(charts, "RangeColumnSegment.topLeft");
  const topRight = dart.privateName(charts, "RangeColumnSegment.topRight");
  const bottomRight = dart.privateName(charts, "RangeColumnSegment.bottomRight");
  const bottomLeft = dart.privateName(charts, "RangeColumnSegment.bottomLeft");
  const borderWidth$9 = dart.privateName(charts, "RangeColumnSegment.borderWidth");
  const path$3 = dart.privateName(charts, "RangeColumnSegment.path");
  const low1 = dart.privateName(charts, "RangeColumnSegment.low1");
  const high1 = dart.privateName(charts, "RangeColumnSegment.high1");
  const _currentPoint$5 = dart.privateName(charts, "RangeColumnSegment._currentPoint");
  charts.RangeColumnSegment = class RangeColumnSegment extends charts.ChartSegment {
    get x1() {
      return this[x1$3];
    }
    set x1(value) {
      this[x1$3] = value;
    }
    get topLeft() {
      return this[topLeft];
    }
    set topLeft(value) {
      this[topLeft] = value;
    }
    get topRight() {
      return this[topRight];
    }
    set topRight(value) {
      this[topRight] = value;
    }
    get bottomRight() {
      return this[bottomRight];
    }
    set bottomRight(value) {
      this[bottomRight] = value;
    }
    get bottomLeft() {
      return this[bottomLeft];
    }
    set bottomLeft(value) {
      this[bottomLeft] = value;
    }
    get borderWidth() {
      return this[borderWidth$9];
    }
    set borderWidth(value) {
      this[borderWidth$9] = value;
    }
    get path() {
      return this[path$3];
    }
    set path(value) {
      this[path$3] = value;
    }
    get low1() {
      return this[low1];
    }
    set low1(value) {
      this[low1] = value;
    }
    get high1() {
      return this[high1];
    }
    set high1(value) {
      this[high1] = value;
    }
    get [_currentPoint]() {
      return this[_currentPoint$5];
    }
    set [_currentPoint](value) {
      this[_currentPoint$5] = value;
    }
    getFillPaint() {
      let t2;
      let hasPointColor = this.series.pointColorMapper != null ? true : false;
      if (this.series.gradient == null) {
        if (this.color != null) {
          this.fillPaint = (t2 = ui.Paint.new(), t2.color = dart.equals(this[_currentPoint].isEmpty, true) ? this.series.emptyPointSettings.color : hasPointColor && this[_currentPoint].pointColorMapper != null ? this[_currentPoint].pointColorMapper : this.color, t2.style = ui.PaintingStyle.fill, t2);
        }
      } else {
        this.fillPaint = charts._getLinearGradientPaint(this.series.gradient, this[_currentPoint].region, this.series[_chart][_requireInvertedAxis]);
      }
      if (this.fillPaint.color != null) this.fillPaint.color = dart.notNull(this.series.opacity) < 1 && !dart.equals(this.fillPaint.color, colors$.Colors.transparent) ? this.fillPaint.color.withOpacity(this.series.opacity) : this.fillPaint.color;
      this[_defaultFillColor] = this.fillPaint;
      return this.fillPaint;
    }
    getStrokePaint() {
      let t2;
      if (this.strokeColor != null) {
        this.strokePaint = (t2 = ui.Paint.new(), t2.color = dart.equals(this[_currentPoint].isEmpty, true) ? this.series.emptyPointSettings.borderColor : this.strokeColor, t2.style = ui.PaintingStyle.stroke, t2.strokeWidth = dart.equals(this[_currentPoint].isEmpty, true) ? this.series.emptyPointSettings.borderWidth : this.strokeWidth, t2);
        this[_defaultStrokeColor] = this.strokePaint;
      }
      this.series.borderWidth === 0 ? this.strokePaint.color = colors$.Colors.transparent : this.strokePaint.color;
      return this.strokePaint;
    }
    [_getTrackerFillPaint]() {
      let t2;
      let _series = charts.RangeColumnSeries._check(this.series);
      if (this.color != null) {
        this[_trackerFillPaint] = (t2 = ui.Paint.new(), t2.color = _series.trackColor, t2.style = ui.PaintingStyle.fill, t2);
      }
      return this[_trackerFillPaint];
    }
    [_getTrackerStrokePaint]() {
      let t2;
      let _series = charts.RangeColumnSeries._check(this.series);
      this[_trackerStrokePaint] = (t2 = ui.Paint.new(), t2.color = _series.trackBorderColor, t2.strokeWidth = _series.trackBorderWidth, t2.style = ui.PaintingStyle.stroke, t2);
      _series.trackBorderWidth === 0 ? this[_trackerStrokePaint].color = colors$.Colors.transparent : this[_trackerStrokePaint].color;
      return this[_trackerStrokePaint];
    }
    calculateSegmentPoints() {
      let _series = charts.RangeColumnSeries._check(this.series);
      this[_borderRadius] = _series.borderRadius;
      if (this[_currentPoint].region != null) {
        this.segmentRect = new ui.RRect.fromRectAndCorners(this[_currentPoint].region, {bottomLeft: this[_borderRadius].bottomLeft, bottomRight: this[_borderRadius].bottomRight, topLeft: this[_borderRadius].topLeft, topRight: this[_borderRadius].topRight});
        if (dart.test(_series.isTrackVisible)) {
          this[_trackRect] = new ui.RRect.fromRectAndCorners(this[_currentPoint].trackerRectRegion, {bottomLeft: this[_borderRadius].bottomLeft, bottomRight: this[_borderRadius].bottomRight, topLeft: this[_borderRadius].topLeft, topRight: this[_borderRadius].topRight});
        }
      }
      this.path = charts._dashedBorder(this[_currentPoint], this.series.borderWidth);
    }
    onPaint(canvas) {
      let _series = charts.RangeColumnSeries._check(this.series);
      this.series.selectionSettings[_selectionRenderer][_checkWithSelectionState](this.series.segments[$_get](this.currentSegmentIndex), this.series[_chart]);
      if (this[_trackerFillPaint] != null && dart.test(_series.isTrackVisible)) {
        canvas.drawRRect(this[_trackRect], this[_trackerFillPaint]);
      }
      if (this[_trackerStrokePaint] != null && dart.test(_series.isTrackVisible)) {
        canvas.drawRRect(this[_trackRect], this[_trackerStrokePaint]);
      }
      if (this.fillPaint != null) {
        dart.notNull(this.series.animationDuration) > 0 && !(dart.test(this.series[_chart][_chartState].widgetNeedUpdate) || dart.test(this.series[_chart][_chartState][_isLegendToggled])) ? charts._animateRangeColumn(canvas, this.series, this.fillPaint, this.segmentRect, this.animationFactor) : canvas.drawRRect(this.segmentRect, this.fillPaint);
      }
      if (this.strokePaint != null) {
        if (this.series.dashArray[$_get](0) !== 0 && this.series.dashArray[$_get](1) !== 0) {
          charts._drawDashedLine(canvas, this.series.dashArray, this.strokePaint, this.path);
        } else {
          dart.notNull(this.series.animationDuration) > 0 && !(dart.test(this.series[_chart][_chartState].widgetNeedUpdate) || dart.test(this.series[_chart][_chartState][_isLegendToggled])) ? charts._animateRangeColumn(canvas, this.series, this.strokePaint, this.segmentRect, this.animationFactor) : canvas.drawRRect(this.segmentRect, this.strokePaint);
        }
      }
    }
    [_setData](values) {
      this.x1 = values[$_get](0);
      this.low1 = values[$_get](1);
      this.high1 = values[$_get](2);
    }
  };
  (charts.RangeColumnSegment.new = function() {
    this[x1$3] = null;
    this[topLeft] = null;
    this[topRight] = null;
    this[bottomRight] = null;
    this[bottomLeft] = null;
    this[borderWidth$9] = null;
    this[path$3] = null;
    this[low1] = null;
    this[high1] = null;
    this[_borderRadius] = null;
    this[_trackRect] = null;
    this[_currentPoint$5] = null;
    this[_trackerFillPaint] = null;
    this[_trackerStrokePaint] = null;
    charts.RangeColumnSegment.__proto__.new.call(this);
    ;
  }).prototype = charts.RangeColumnSegment.prototype;
  dart.addTypeTests(charts.RangeColumnSegment);
  dart.setMethodSignature(charts.RangeColumnSegment, () => ({
    __proto__: dart.getMethods(charts.RangeColumnSegment.__proto__),
    getFillPaint: dart.fnType(ui.Paint, []),
    getStrokePaint: dart.fnType(ui.Paint, []),
    [_getTrackerFillPaint]: dart.fnType(ui.Paint, []),
    [_getTrackerStrokePaint]: dart.fnType(ui.Paint, []),
    calculateSegmentPoints: dart.fnType(dart.void, []),
    onPaint: dart.fnType(dart.void, [ui.Canvas]),
    [_setData]: dart.fnType(dart.void, [core.List$(core.num)])
  }));
  dart.setLibraryUri(charts.RangeColumnSegment, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.RangeColumnSegment, () => ({
    __proto__: dart.getFields(charts.RangeColumnSegment.__proto__),
    x1: dart.fieldType(core.num),
    topLeft: dart.fieldType(dart.dynamic),
    topRight: dart.fieldType(dart.dynamic),
    bottomRight: dart.fieldType(dart.dynamic),
    bottomLeft: dart.fieldType(dart.dynamic),
    borderWidth: dart.fieldType(dart.dynamic),
    path: dart.fieldType(ui.Path),
    low1: dart.fieldType(core.num),
    high1: dart.fieldType(core.num),
    [_borderRadius]: dart.fieldType(border_radius.BorderRadius),
    [_trackRect]: dart.fieldType(ui.RRect),
    [_currentPoint]: dart.fieldType(charts.CartesianChartPoint),
    [_trackerFillPaint]: dart.fieldType(ui.Paint),
    [_trackerStrokePaint]: dart.fieldType(ui.Paint)
  }));
  const _isLineType = dart.privateName(charts, "_isLineType");
  const centerX$2 = dart.privateName(charts, "ScatterSegment.centerX");
  const centerY$3 = dart.privateName(charts, "ScatterSegment.centerY");
  const radius$2 = dart.privateName(charts, "ScatterSegment.radius");
  const xData$ = dart.privateName(charts, "ScatterSegment.xData");
  const yData$ = dart.privateName(charts, "ScatterSegment.yData");
  const size$2 = dart.privateName(charts, "ScatterSegment.size");
  const _currentPoint$6 = dart.privateName(charts, "ScatterSegment._currentPoint");
  charts.ScatterSegment = class ScatterSegment extends charts.ChartSegment {
    get centerX() {
      return this[centerX$2];
    }
    set centerX(value) {
      this[centerX$2] = value;
    }
    get centerY() {
      return this[centerY$3];
    }
    set centerY(value) {
      this[centerY$3] = value;
    }
    get radius() {
      return this[radius$2];
    }
    set radius(value) {
      this[radius$2] = value;
    }
    get xData() {
      return this[xData$];
    }
    set xData(value) {
      this[xData$] = value;
    }
    get yData() {
      return this[yData$];
    }
    set yData(value) {
      this[yData$] = value;
    }
    get size() {
      return this[size$2];
    }
    set size(value) {
      this[size$2] = value;
    }
    get [_currentPoint]() {
      return this[_currentPoint$6];
    }
    set [_currentPoint](value) {
      this[_currentPoint$6] = value;
    }
    getFillPaint() {
      let t2;
      let hasPointColor = this.series.pointColorMapper != null ? true : false;
      if (this.series.gradient == null) {
        if (this.color != null) {
          this.fillPaint = (t2 = ui.Paint.new(), t2.color = dart.equals(this[_currentPoint].isEmpty, true) ? this.series.emptyPointSettings.color : hasPointColor && this[_currentPoint].pointColorMapper != null ? this[_currentPoint].pointColorMapper : this.color, t2.style = ui.PaintingStyle.fill, t2);
        }
      } else {
        this.fillPaint = charts._getLinearGradientPaint(this.series.gradient, this[_currentPoint].region, this.series[_chart][_requireInvertedAxis]);
      }
      this[_defaultFillColor] = this.fillPaint;
      if (this.fillPaint.color != null) this.fillPaint.color = dart.notNull(this.series.opacity) < 1 && !dart.equals(this.fillPaint.color, colors$.Colors.transparent) ? this.fillPaint.color.withOpacity(this.series.opacity) : this.fillPaint.color;
      return this.fillPaint;
    }
    getStrokePaint() {
      let t3, t2;
      let _series = charts.ScatterSeries._check(this.series);
      let strokePaint = (t2 = ui.Paint.new(), t2.color = dart.equals(this[_currentPoint].isEmpty, true) ? this.series.emptyPointSettings.borderColor : dart.test(this.series.markerSettings.isVisible) ? (t3 = this.series.markerSettings.borderColor, t3 == null ? this.series[_seriesColor] : t3) : this.strokeColor, t2.style = ui.PaintingStyle.stroke, t2.strokeWidth = dart.equals(this[_currentPoint].isEmpty, true) ? this.series.emptyPointSettings.borderWidth : this.strokeWidth, t2);
      this.series.borderWidth === 0 && !dart.test(_series[_isLineType]) ? strokePaint.color = colors$.Colors.transparent : strokePaint.color;
      this[_defaultStrokeColor] = strokePaint;
      return strokePaint;
    }
    calculateSegmentPoints() {
    }
    onPaint(canvas) {
      this.series.selectionSettings[_selectionRenderer][_checkWithSelectionState](this.series.segments[$_get](this.currentSegmentIndex), this.series[_chart]);
      if (this.fillPaint != null) {
        dart.notNull(this.series.animationDuration) > 0 && !dart.test(this.series[_chart][_chartState][_isLegendToggled]) ? charts._animateScatterSeries(this.series, this[_point], this[_oldPoint], this.animationFactor, canvas, this.fillPaint, this.strokePaint) : this.series.drawDataMarker(this.currentSegmentIndex, canvas, this.fillPaint, this.strokePaint, this[_point].markerPoint.x, this[_point].markerPoint.y);
      }
    }
  };
  (charts.ScatterSegment.new = function() {
    this[centerX$2] = null;
    this[centerY$3] = null;
    this[radius$2] = null;
    this[xData$] = null;
    this[yData$] = null;
    this[size$2] = null;
    this[_currentPoint$6] = null;
    charts.ScatterSegment.__proto__.new.call(this);
    ;
  }).prototype = charts.ScatterSegment.prototype;
  dart.addTypeTests(charts.ScatterSegment);
  dart.setMethodSignature(charts.ScatterSegment, () => ({
    __proto__: dart.getMethods(charts.ScatterSegment.__proto__),
    getFillPaint: dart.fnType(ui.Paint, []),
    getStrokePaint: dart.fnType(ui.Paint, []),
    calculateSegmentPoints: dart.fnType(dart.void, []),
    onPaint: dart.fnType(dart.void, [ui.Canvas])
  }));
  dart.setLibraryUri(charts.ScatterSegment, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.ScatterSegment, () => ({
    __proto__: dart.getFields(charts.ScatterSegment.__proto__),
    centerX: dart.fieldType(core.num),
    centerY: dart.fieldType(core.num),
    radius: dart.fieldType(core.num),
    xData: dart.fieldType(core.num),
    yData: dart.fieldType(core.num),
    size: dart.fieldType(core.num),
    [_currentPoint]: dart.fieldType(charts.CartesianChartPoint)
  }));
  const x1$4 = dart.privateName(charts, "SplineSegment.x1");
  const y1$3 = dart.privateName(charts, "SplineSegment.y1");
  const x2$3 = dart.privateName(charts, "SplineSegment.x2");
  const y2$3 = dart.privateName(charts, "SplineSegment.y2");
  const startControlX = dart.privateName(charts, "SplineSegment.startControlX");
  const startControlY = dart.privateName(charts, "SplineSegment.startControlY");
  const endControlX = dart.privateName(charts, "SplineSegment.endControlX");
  const endControlY = dart.privateName(charts, "SplineSegment.endControlY");
  const _currentPoint$7 = dart.privateName(charts, "SplineSegment._currentPoint");
  const _nextPoint$0 = dart.privateName(charts, "SplineSegment._nextPoint");
  charts.SplineSegment = class SplineSegment extends charts.ChartSegment {
    get x1() {
      return this[x1$4];
    }
    set x1(value) {
      this[x1$4] = value;
    }
    get y1() {
      return this[y1$3];
    }
    set y1(value) {
      this[y1$3] = value;
    }
    get x2() {
      return this[x2$3];
    }
    set x2(value) {
      this[x2$3] = value;
    }
    get y2() {
      return this[y2$3];
    }
    set y2(value) {
      this[y2$3] = value;
    }
    get startControlX() {
      return this[startControlX];
    }
    set startControlX(value) {
      this[startControlX] = value;
    }
    get startControlY() {
      return this[startControlY];
    }
    set startControlY(value) {
      this[startControlY] = value;
    }
    get endControlX() {
      return this[endControlX];
    }
    set endControlX(value) {
      this[endControlX] = value;
    }
    get endControlY() {
      return this[endControlY];
    }
    set endControlY(value) {
      this[endControlY] = value;
    }
    get [_currentPoint]() {
      return this[_currentPoint$7];
    }
    set [_currentPoint](value) {
      this[_currentPoint$7] = value;
    }
    get [_nextPoint]() {
      return this[_nextPoint$0];
    }
    set [_nextPoint](value) {
      this[_nextPoint$0] = value;
    }
    getFillPaint() {
      let fillPaint = ui.Paint.new();
      if (this.strokeColor != null) {
        fillPaint.color = this.strokeColor.withOpacity(this.series.opacity);
      }
      fillPaint.strokeWidth = this.strokeWidth;
      fillPaint.style = ui.PaintingStyle.stroke;
      this[_defaultFillColor] = fillPaint;
      return fillPaint;
    }
    getStrokePaint() {
      let t2;
      let strokePaint = ui.Paint.new();
      if (this.series.gradient == null) {
        if (this.strokeColor != null) {
          strokePaint.color = (t2 = this[_pointColorMapper], t2 == null ? this.strokeColor.withOpacity(this.series.opacity) : t2);
          strokePaint.color = dart.notNull(this.series.opacity) < 1 && !dart.equals(strokePaint.color, colors$.Colors.transparent) ? strokePaint.color.withOpacity(this.series.opacity) : strokePaint.color;
        }
      } else {
        strokePaint.color = this.series.gradient.colors[$_get](0);
      }
      strokePaint.strokeWidth = this.strokeWidth;
      strokePaint.style = ui.PaintingStyle.stroke;
      strokePaint.strokeCap = ui.StrokeCap.round;
      this[_defaultStrokeColor] = strokePaint;
      return strokePaint;
    }
    calculateSegmentPoints() {
      this.x1 = this[_x1Pos];
      this.y1 = this[_y1Pos];
      this.x2 = this[_x2Pos];
      this.y2 = this[_y2Pos];
    }
    onPaint(canvas) {
      let t2, t2$, t2$0, t2$1, t2$2, t2$3, t2$4, t2$5, t2$6, t2$7;
      let rect = charts._calculatePlotOffset(this.series[_chart][_chartAxis][_axisClipRect], new ui.Offset.new(this.series[_xAxis$].plotOffset, this.series[_yAxis$].plotOffset));
      this.series.selectionSettings[_selectionRenderer][_checkWithSelectionState](this.series.segments[$_get](this.currentSegmentIndex), this.series[_chart]);
      if (dart.notNull(this.series.animationDuration) > 0 && dart.test(this.series[_chart][_chartState].widgetNeedUpdate) && !dart.test(this.series[_chart][_chartState][_isLegendToggled]) && this.series[_chart][_chartState].prevWidgetSeries != null && dart.test(this.series[_chart][_chartState].prevWidgetSeries[$isNotEmpty]) && this.oldSeries != null && dart.test(this.oldSeries.segments[$isNotEmpty]) && charts.SplineSegment.is(this.oldSeries.segments[$_get](0)) && dart.notNull(this.series[_chart][_chartState].prevWidgetSeries[$length]) - 1 >= dart.notNull(this.series.segments[$_get](this.currentSegmentIndex)[_seriesIndex]) && dart.test(this.series.segments[$_get](this.currentSegmentIndex).oldSeries.segments[$isNotEmpty]) && !dart.equals(this[_currentPoint].isGap, true) && !dart.equals(this[_nextPoint].isGap, true)) {
        let currentSegment = charts.SplineSegment._check(this.series.segments[$_get](this.currentSegmentIndex));
        let oldSegment = charts.SplineSegment._check(dart.notNull(currentSegment.oldSeries.segments[$length]) - 1 >= dart.notNull(this.currentSegmentIndex) ? currentSegment.oldSeries.segments[$_get](this.currentSegmentIndex) : null);
        let oldX1 = null;
        let oldY1 = null;
        let oldX2 = null;
        let oldY2 = null;
        let oldX3 = null;
        let oldY3 = null;
        let oldX4 = null;
        let oldY4 = null;
        oldX1 = (t2 = oldSegment, t2 == null ? null : t2.x1);
        oldY1 = (t2$ = oldSegment, t2$ == null ? null : t2$.y1);
        oldX2 = (t2$0 = oldSegment, t2$0 == null ? null : t2$0.x2);
        oldY2 = (t2$1 = oldSegment, t2$1 == null ? null : t2$1.y2);
        oldX3 = (t2$2 = oldSegment, t2$2 == null ? null : t2$2.startControlX);
        oldY3 = (t2$3 = oldSegment, t2$3 == null ? null : t2$3.startControlY);
        oldX4 = (t2$4 = oldSegment, t2$4 == null ? null : t2$4.endControlX);
        oldY4 = (t2$5 = oldSegment, t2$5 == null ? null : t2$5.endControlY);
        if (oldSegment != null && (oldX1[$isNaN] || oldX2[$isNaN]) && this.series[_chart][_chartState].oldAxes != null) {
          let oldXAxis = null;
          let oldYAxis = null;
          let needAnimate = null;
          let oldPoint = null;
          oldXAxis = charts._getOldAxis(this.series[_xAxis$], this.series[_chart][_chartState].oldAxes);
          oldYAxis = charts._getOldAxis(this.series[_yAxis$], this.series[_chart][_chartState].oldAxes);
          if (oldYAxis != null && oldXAxis != null) {
            needAnimate = !dart.equals(oldYAxis[_visibleRange].minimum, this.series[_yAxis$][_visibleRange].minimum) || !dart.equals(oldYAxis[_visibleRange].maximum, this.series[_yAxis$][_visibleRange].maximum) || !dart.equals(oldXAxis[_visibleRange].minimum, this.series[_xAxis$][_visibleRange].minimum) || !dart.equals(oldXAxis[_visibleRange].maximum, this.series[_xAxis$][_visibleRange].maximum);
          }
          if (dart.test(needAnimate)) {
            oldPoint = charts._calculatePoint(this[_x1Pos], this[_y1Pos], oldXAxis, oldYAxis, this.series[_chart][_requireInvertedAxis], this.series, rect);
            oldX1 = oldPoint.x;
            oldY1 = oldPoint.y;
            oldPoint = charts._calculatePoint(this[_x2Pos], this[_y2Pos], oldXAxis, oldYAxis, this.series[_chart][_requireInvertedAxis], this.series, rect);
            oldX2 = oldPoint.x;
            oldY2 = oldPoint.y;
            oldPoint = charts._calculatePoint(this.startControlX, this.startControlY, oldXAxis, oldYAxis, this.series[_chart][_requireInvertedAxis], this.series, rect);
            oldX3 = oldPoint.x;
            oldY3 = oldPoint.y;
            oldPoint = charts._calculatePoint(this.endControlX, this.endControlY, oldXAxis, oldYAxis, this.series[_chart][_requireInvertedAxis], this.series, rect);
            oldX4 = oldPoint.x;
            oldY4 = oldPoint.y;
          }
        }
        charts._animateLineTypeSeries(canvas, this.series, this.strokePaint, this.animationFactor, currentSegment.x1, currentSegment.y1, currentSegment.x2, currentSegment.y2, oldX1, oldY1, oldX2, oldY2, (t2$6 = currentSegment, t2$6 == null ? null : t2$6.startControlX), (t2$7 = currentSegment, t2$7 == null ? null : t2$7.startControlY), oldX3, oldY3, currentSegment.endControlX, currentSegment.endControlY, oldX4, oldY4);
      } else {
        let path = ui.Path.new();
        path.moveTo(this.x1, this.y1);
        if (!dart.equals(this[_currentPoint].isGap, true) && !dart.equals(this[_nextPoint].isGap, true)) {
          path.cubicTo(this.startControlX, this.startControlY, this.endControlX, this.endControlY, this.x2, this.y2);
          charts._drawDashedLine(canvas, this.series.dashArray, this.strokePaint, path);
        }
      }
    }
    [_setData](values) {
      this[_x1Pos] = values[$_get](0);
      this[_y1Pos] = values[$_get](1);
      this[_x2Pos] = values[$_get](2);
      this[_y2Pos] = values[$_get](3);
      this.startControlX = values[$_get](4);
      this.startControlY = values[$_get](5);
      this.endControlX = values[$_get](6);
      this.endControlY = values[$_get](7);
    }
  };
  (charts.SplineSegment.new = function() {
    this[x1$4] = null;
    this[y1$3] = null;
    this[x2$3] = null;
    this[y2$3] = null;
    this[_x1Pos] = null;
    this[_y1Pos] = null;
    this[_x2Pos] = null;
    this[_y2Pos] = null;
    this[startControlX] = null;
    this[startControlY] = null;
    this[endControlX] = null;
    this[endControlY] = null;
    this[_currentPoint$7] = null;
    this[_nextPoint$0] = null;
    this[_pointColorMapper] = null;
    charts.SplineSegment.__proto__.new.call(this);
    ;
  }).prototype = charts.SplineSegment.prototype;
  dart.addTypeTests(charts.SplineSegment);
  dart.setMethodSignature(charts.SplineSegment, () => ({
    __proto__: dart.getMethods(charts.SplineSegment.__proto__),
    getFillPaint: dart.fnType(ui.Paint, []),
    getStrokePaint: dart.fnType(ui.Paint, []),
    calculateSegmentPoints: dart.fnType(dart.void, []),
    onPaint: dart.fnType(dart.void, [ui.Canvas]),
    [_setData]: dart.fnType(dart.void, [core.List$(core.num)])
  }));
  dart.setLibraryUri(charts.SplineSegment, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.SplineSegment, () => ({
    __proto__: dart.getFields(charts.SplineSegment.__proto__),
    x1: dart.fieldType(core.num),
    y1: dart.fieldType(core.num),
    x2: dart.fieldType(core.num),
    y2: dart.fieldType(core.num),
    [_x1Pos]: dart.fieldType(core.num),
    [_y1Pos]: dart.fieldType(core.num),
    [_x2Pos]: dart.fieldType(core.num),
    [_y2Pos]: dart.fieldType(core.num),
    startControlX: dart.fieldType(core.double),
    startControlY: dart.fieldType(core.double),
    endControlX: dart.fieldType(core.double),
    endControlY: dart.fieldType(core.double),
    [_currentPoint]: dart.fieldType(charts.CartesianChartPoint),
    [_nextPoint]: dart.fieldType(charts.CartesianChartPoint),
    [_pointColorMapper]: dart.fieldType(ui.Color)
  }));
  const _renderSplineAreaSeries = dart.privateName(charts, "_renderSplineAreaSeries");
  const _listControlPoints$ = dart.privateName(charts, "_listControlPoints");
  const points = dart.privateName(charts, "SplineAreaSegment.points");
  const series$8 = dart.privateName(charts, "SplineAreaSegment.series");
  charts.SplineAreaSegment = class SplineAreaSegment extends charts.ChartSegment {
    get points() {
      return this[points];
    }
    set points(value) {
      this[points] = value;
    }
    get series() {
      return this[series$8];
    }
    set series(value) {
      this[series$8] = value;
    }
    getFillPaint() {
      this.fillPaint = ui.Paint.new();
      if (this.series.gradient == null) {
        if (this.color != null) {
          this.fillPaint.color = this.color;
          this.fillPaint.style = ui.PaintingStyle.fill;
        }
      } else {
        this.fillPaint = this[_pathRect$] != null ? charts._getLinearGradientPaint(this.series.gradient, this[_pathRect$], this.series[_chart][_requireInvertedAxis]) : this.fillPaint;
      }
      if (this.fillPaint.color != null) this.fillPaint.color = dart.notNull(this.series.opacity) < 1 && !dart.equals(this.fillPaint.color, colors$.Colors.transparent) ? this.fillPaint.color.withOpacity(this.series.opacity) : this.fillPaint.color;
      this[_defaultFillColor] = this.fillPaint;
      return this.fillPaint;
    }
    getStrokePaint() {
      let t2;
      let strokePaint = ui.Paint.new();
      if (this.strokeColor != null) {
        t2 = strokePaint;
        t2.color = this.series.borderColor.withOpacity(this.series.opacity);
        t2.style = ui.PaintingStyle.stroke;
        t2.strokeWidth = this.series.borderWidth;
        t2;
        this.series.borderWidth === 0 ? strokePaint.color = colors$.Colors.transparent : strokePaint.color;
      }
      strokePaint.strokeCap = ui.StrokeCap.round;
      this[_defaultStrokeColor] = strokePaint;
      return strokePaint;
    }
    calculateSegmentPoints() {
    }
    onPaint(canvas) {
      let rect = this.series[_chart][_chartAxis][_axisClipRect];
      this[_path$] = ui.Path.new();
      this[_strokePath$] = ui.Path.new();
      let xAxis = this.series[_xAxis$];
      let yAxis = this.series[_yAxis$];
      let splineAreaSeries = charts.SplineAreaSeries._check(this.series);
      let startPoint = null;
      let renderPoint = null;
      let pointsLength = this.series[_dataPoints$][$length];
      let firstPoint = null;
      let point = null;
      for (let i = 0; i < dart.notNull(pointsLength); i = i + 1) {
        point = this.series[_dataPoints$][$_get](i);
        if (dart.test(point.isVisible)) {
          let _list = this[_renderSplineAreaSeries](i, firstPoint, point, startPoint, renderPoint, rect, xAxis, yAxis, splineAreaSeries);
          renderPoint = _list[$_get](0);
          startPoint = _list[$_get](1);
          firstPoint = point;
        } else {
          firstPoint = i !== 0 && dart.equals(point.isDrop, true) ? point : null;
        }
        if ((i + 1 < dart.notNull(pointsLength) && !dart.test(this.series[_dataPoints$][$_get](i + 1).isVisible) || i === dart.notNull(pointsLength) - 1) && renderPoint != null && startPoint != null) {
          startPoint = charts._calculatePoint(core.num._check(i + 1 < dart.notNull(pointsLength) && dart.test(this.series[_dataPoints$][$_get](i + 1).isDrop) ? this.series[_dataPoints$][$_get](i).xValue : i === dart.notNull(pointsLength) - 1 && dart.test(this.series[_dataPoints$][$_get](i).isDrop) ? this.series[_dataPoints$][$_get](i - 1).xValue : this.series[_dataPoints$][$_get](i).xValue), core.num._check(i + 1 < dart.notNull(pointsLength) && dart.test(this.series[_dataPoints$][$_get](i + 1).isDrop) ? this.series[_dataPoints$][$_get](i).yValue : math.max(core.num, core.num._check(yAxis[_visibleRange].minimum), 0)), xAxis, yAxis, this.series[_chart][_requireInvertedAxis], this.series, rect);
          this[_path$].lineTo(startPoint.x, startPoint.y);
          if (!dart.equals(splineAreaSeries.borderDrawMode, charts.BorderDrawMode.top)) this[_strokePath$].lineTo(startPoint.x, startPoint.y);
        }
      }
      if (dart.equals(splineAreaSeries.borderDrawMode, charts.BorderDrawMode.all)) {
        this[_strokePath$].close();
      }
      this[_pathRect$] = this[_path$].getBounds();
      canvas.drawPath(this[_path$], this.series.gradient == null ? this.fillPaint : this.getFillPaint());
      charts._drawDashedLine(canvas, this.series.dashArray, this.strokePaint, this[_strokePath$]);
    }
    [_renderSplineAreaSeries](i, firstPoint, point, startPoint, renderPoint, rect, xAxis, yAxis, splineAreaSeries) {
      let controlPoint = null;
      let renderControlPoint1 = null;
      let startPoint1 = null;
      let renderControlPoint2 = null;
      if (firstPoint != null) {
        controlPoint = this.series.drawControlPoints[$_get](dart.notNull(this.series[_dataPoints$][$indexOf](point)) - 1)[_listControlPoints$];
        renderPoint = charts._calculatePoint(core.num._check(point.xValue), core.num._check(point.yValue), xAxis, yAxis, this.series[_chart][_requireInvertedAxis], this.series, rect);
        renderControlPoint1 = charts._calculatePoint(controlPoint[$_get](0).controlPoint1, controlPoint[$_get](0).controlPoint2, xAxis, yAxis, this.series[_chart][_requireInvertedAxis], this.series, rect);
        renderControlPoint2 = charts._calculatePoint(controlPoint[$_get](1).controlPoint1, controlPoint[$_get](1).controlPoint2, xAxis, yAxis, this.series[_chart][_requireInvertedAxis], this.series, rect);
        this[_path$].cubicTo(renderControlPoint1.x, renderControlPoint1.y, renderControlPoint2.x, renderControlPoint2.y, renderPoint.x, renderPoint.y);
        this[_strokePath$].cubicTo(renderControlPoint1.x, renderControlPoint1.y, renderControlPoint2.x, renderControlPoint2.y, renderPoint.x, renderPoint.y);
      } else {
        startPoint = charts._calculatePoint(core.num._check(this.series[_dataPoints$][$_get](i).xValue), math.max(core.num, core.num._check(yAxis[_visibleRange].minimum), 0), xAxis, yAxis, this.series[_chart][_requireInvertedAxis], this.series, rect);
        this[_path$].moveTo(startPoint.x, startPoint.y);
        if (!dart.equals(splineAreaSeries.borderDrawMode, charts.BorderDrawMode.top)) this[_strokePath$].moveTo(startPoint.x, startPoint.y);
        startPoint1 = charts._calculatePoint(core.num._check(this.series[_dataPoints$][$_get](i).xValue), core.num._check(this.series[_dataPoints$][$_get](i).yValue), xAxis, yAxis, this.series[_chart][_requireInvertedAxis], this.series, rect);
        this[_path$].lineTo(startPoint1.x, startPoint1.y);
        if (dart.equals(splineAreaSeries.borderDrawMode, charts.BorderDrawMode.top)) this[_strokePath$].moveTo(startPoint1.x, startPoint1.y);
        this[_strokePath$].lineTo(startPoint1.x, startPoint1.y);
      }
      return JSArrayOf_ChartLocation().of([renderPoint, startPoint]);
    }
  };
  (charts.SplineAreaSegment.new = function() {
    this[_path$] = null;
    this[_strokePath$] = null;
    this[_pathRect$] = null;
    this[points] = JSArrayOfCartesianChartPoint().of([]);
    this[series$8] = null;
    charts.SplineAreaSegment.__proto__.new.call(this);
    ;
  }).prototype = charts.SplineAreaSegment.prototype;
  dart.addTypeTests(charts.SplineAreaSegment);
  dart.setMethodSignature(charts.SplineAreaSegment, () => ({
    __proto__: dart.getMethods(charts.SplineAreaSegment.__proto__),
    getFillPaint: dart.fnType(ui.Paint, []),
    getStrokePaint: dart.fnType(ui.Paint, []),
    calculateSegmentPoints: dart.fnType(dart.void, []),
    onPaint: dart.fnType(dart.void, [ui.Canvas]),
    [_renderSplineAreaSeries]: dart.fnType(core.List$(charts._ChartLocation), [core.int, charts.CartesianChartPoint, charts.CartesianChartPoint, charts._ChartLocation, charts._ChartLocation, ui.Rect, charts.ChartAxis, charts.ChartAxis, charts.SplineAreaSeries])
  }));
  dart.setLibraryUri(charts.SplineAreaSegment, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.SplineAreaSegment, () => ({
    __proto__: dart.getFields(charts.SplineAreaSegment.__proto__),
    [_path$]: dart.fieldType(ui.Path),
    [_strokePath$]: dart.fieldType(ui.Path),
    [_pathRect$]: dart.fieldType(ui.Rect),
    points: dart.fieldType(core.List$(charts.CartesianChartPoint)),
    series: dart.fieldType(charts.XyDataSeries)
  }));
  const Radius_y = dart.privateName(ui, "Radius.y");
  const Radius_x = dart.privateName(ui, "Radius.x");
  let C548;
  const BorderRadius_bottomRight = dart.privateName(border_radius, "BorderRadius.bottomRight");
  const BorderRadius_bottomLeft = dart.privateName(border_radius, "BorderRadius.bottomLeft");
  const BorderRadius_topRight = dart.privateName(border_radius, "BorderRadius.topRight");
  const BorderRadius_topLeft = dart.privateName(border_radius, "BorderRadius.topLeft");
  let C547;
  const _is__StackedSeriesBase_default = Symbol('_is__StackedSeriesBase_default');
  const _stackingValues$0 = dart.privateName(charts, "_StackedSeriesBase._stackingValues");
  const groupName$ = dart.privateName(charts, "_StackedSeriesBase.groupName");
  const dashArray$5 = dart.privateName(charts, "_StackedSeriesBase.dashArray");
  const borderRadius$ = dart.privateName(charts, "_StackedSeriesBase.borderRadius");
  const spacing$0 = dart.privateName(charts, "_StackedSeriesBase.spacing");
  const isTrackVisible$ = dart.privateName(charts, "_StackedSeriesBase.isTrackVisible");
  const _rectPosition$0 = dart.privateName(charts, "_StackedSeriesBase._rectPosition");
  const _rectCount$0 = dart.privateName(charts, "_StackedSeriesBase._rectCount");
  const trackColor$0 = dart.privateName(charts, "_StackedSeriesBase.trackColor");
  const trackBorderColor$0 = dart.privateName(charts, "_StackedSeriesBase.trackBorderColor");
  const trackBorderWidth$0 = dart.privateName(charts, "_StackedSeriesBase.trackBorderWidth");
  const trackPadding$ = dart.privateName(charts, "_StackedSeriesBase.trackPadding");
  charts._StackedSeriesBase$ = dart.generic((T, D) => {
    class _StackedSeriesBase extends charts.XyDataSeries$(T, D) {
      get [_stackingValues$]() {
        return this[_stackingValues$0];
      }
      set [_stackingValues$](value) {
        this[_stackingValues$0] = value;
      }
      get groupName() {
        return this[groupName$];
      }
      set groupName(value) {
        this[groupName$] = value;
      }
      get dashArray() {
        return this[dashArray$5];
      }
      set dashArray(value) {
        this[dashArray$5] = value;
      }
      get borderRadius() {
        return this[borderRadius$];
      }
      set borderRadius(value) {
        super.borderRadius = value;
      }
      get spacing() {
        return this[spacing$0];
      }
      set spacing(value) {
        super.spacing = value;
      }
      get isTrackVisible() {
        return this[isTrackVisible$];
      }
      set isTrackVisible(value) {
        super.isTrackVisible = value;
      }
      get [_rectPosition]() {
        return this[_rectPosition$0];
      }
      set [_rectPosition](value) {
        this[_rectPosition$0] = value;
      }
      get [_rectCount]() {
        return this[_rectCount$0];
      }
      set [_rectCount](value) {
        this[_rectCount$0] = value;
      }
      get trackColor() {
        return this[trackColor$0];
      }
      set trackColor(value) {
        super.trackColor = value;
      }
      get trackBorderColor() {
        return this[trackBorderColor$0];
      }
      set trackBorderColor(value) {
        super.trackBorderColor = value;
      }
      get trackBorderWidth() {
        return this[trackBorderWidth$0];
      }
      set trackBorderWidth(value) {
        super.trackBorderWidth = value;
      }
      get trackPadding() {
        return this[trackPadding$];
      }
      set trackPadding(value) {
        super.trackPadding = value;
      }
    }
    (_StackedSeriesBase.new = function(opts) {
      let t2, t2$, t2$0, t2$1, t2$2, t2$3, t2$4, t2$5, t2$6, t2$7;
      let dataSource = opts && 'dataSource' in opts ? opts.dataSource : null;
      let xValueMapper = opts && 'xValueMapper' in opts ? opts.xValueMapper : null;
      let yValueMapper = opts && 'yValueMapper' in opts ? opts.yValueMapper : null;
      let sortFieldValueMapper = opts && 'sortFieldValueMapper' in opts ? opts.sortFieldValueMapper : null;
      let pointColorMapper = opts && 'pointColorMapper' in opts ? opts.pointColorMapper : null;
      let dataLabelMapper = opts && 'dataLabelMapper' in opts ? opts.dataLabelMapper : null;
      let sortingOrder = opts && 'sortingOrder' in opts ? opts.sortingOrder : null;
      let dashArray = opts && 'dashArray' in opts ? opts.dashArray : null;
      let xAxisName = opts && 'xAxisName' in opts ? opts.xAxisName : null;
      let yAxisName = opts && 'yAxisName' in opts ? opts.yAxisName : null;
      let name = opts && 'name' in opts ? opts.name : null;
      let color = opts && 'color' in opts ? opts.color : null;
      let width = opts && 'width' in opts ? opts.width : null;
      let spacing = opts && 'spacing' in opts ? opts.spacing : null;
      let markerSettings = opts && 'markerSettings' in opts ? opts.markerSettings : null;
      let emptyPointSettings = opts && 'emptyPointSettings' in opts ? opts.emptyPointSettings : null;
      let dataLabelSettings = opts && 'dataLabelSettings' in opts ? opts.dataLabelSettings : null;
      let isVisible = opts && 'isVisible' in opts ? opts.isVisible : null;
      let gradient = opts && 'gradient' in opts ? opts.gradient : null;
      let borderRadius = opts && 'borderRadius' in opts ? opts.borderRadius : null;
      let groupName = opts && 'groupName' in opts ? opts.groupName : null;
      let isTrackVisible = opts && 'isTrackVisible' in opts ? opts.isTrackVisible : null;
      let trendlines = opts && 'trendlines' in opts ? opts.trendlines : null;
      let enableTooltip = opts && 'enableTooltip' in opts ? opts.enableTooltip : null;
      let animationDuration = opts && 'animationDuration' in opts ? opts.animationDuration : null;
      let trackColor = opts && 'trackColor' in opts ? opts.trackColor : null;
      let trackBorderColor = opts && 'trackBorderColor' in opts ? opts.trackBorderColor : null;
      let trackBorderWidth = opts && 'trackBorderWidth' in opts ? opts.trackBorderWidth : null;
      let trackPadding = opts && 'trackPadding' in opts ? opts.trackPadding : null;
      let borderColor = opts && 'borderColor' in opts ? opts.borderColor : null;
      let borderWidth = opts && 'borderWidth' in opts ? opts.borderWidth : null;
      let selectionSettings = opts && 'selectionSettings' in opts ? opts.selectionSettings : null;
      let initialSelectedDataIndexes = opts && 'initialSelectedDataIndexes' in opts ? opts.initialSelectedDataIndexes : null;
      let isVisibleInLegend = opts && 'isVisibleInLegend' in opts ? opts.isVisibleInLegend : null;
      let legendIconType = opts && 'legendIconType' in opts ? opts.legendIconType : null;
      let legendItemText = opts && 'legendItemText' in opts ? opts.legendItemText : null;
      let opacity = opts && 'opacity' in opts ? opts.opacity : null;
      this[_stackingValues$0] = null;
      this[_percentageValues] = null;
      this[_rectPosition$0] = null;
      this[_rectCount$0] = null;
      this[borderRadius$] = (t2 = borderRadius, t2 == null ? C547 || CT.C547 : t2);
      this[trackColor$0] = (t2$ = trackColor, t2$ == null ? colors$.Colors.grey : t2$);
      this[trackBorderColor$0] = (t2$0 = trackBorderColor, t2$0 == null ? colors$.Colors.transparent : t2$0);
      this[trackBorderWidth$0] = (t2$1 = trackBorderWidth, t2$1 == null ? 1.0 : t2$1);
      this[trackPadding$] = (t2$2 = trackPadding, t2$2 == null ? 0.0 : t2$2);
      this[groupName$] = (t2$3 = groupName, t2$3 == null ? "" : t2$3);
      this[isTrackVisible$] = (t2$4 = isTrackVisible, t2$4 == null ? false : t2$4);
      this[dashArray$5] = (t2$5 = dashArray, t2$5 == null ? JSArrayOfdouble().of([0.0, 0.0]) : t2$5);
      this[spacing$0] = (t2$6 = spacing, t2$6 == null ? 0.0 : t2$6);
      _StackedSeriesBase.__proto__.new.call(this, {name: name, xValueMapper: xValueMapper, yValueMapper: yValueMapper, sortFieldValueMapper: sortFieldValueMapper, pointColorMapper: pointColorMapper, dataLabelMapper: dataLabelMapper, trendlines: trendlines, dataSource: dataSource, xAxisName: xAxisName, yAxisName: yAxisName, color: color, width: (t2$7 = width, t2$7 == null ? 0.7 : t2$7), markerSettings: markerSettings, dataLabelSettings: dataLabelSettings, isVisible: isVisible, gradient: gradient, emptyPointSettings: emptyPointSettings, enableTooltip: enableTooltip, animationDuration: animationDuration, borderColor: borderColor, borderWidth: borderWidth, selectionSettings: selectionSettings, initialSelectedDataIndexes: initialSelectedDataIndexes, legendItemText: legendItemText, isVisibleInLegend: isVisibleInLegend, legendIconType: legendIconType, sortingOrder: sortingOrder, opacity: opacity});
      ;
    }).prototype = _StackedSeriesBase.prototype;
    dart.addTypeTests(_StackedSeriesBase);
    _StackedSeriesBase.prototype[_is__StackedSeriesBase_default] = true;
    dart.setLibraryUri(_StackedSeriesBase, "package:syncfusion_flutter_charts/charts.dart");
    dart.setFieldSignature(_StackedSeriesBase, () => ({
      __proto__: dart.getFields(_StackedSeriesBase.__proto__),
      [_stackingValues$]: dart.fieldType(core.List$(charts._StackedValues)),
      [_percentageValues]: dart.fieldType(core.List$(core.double)),
      groupName: dart.fieldType(core.String),
      dashArray: dart.fieldType(core.List$(core.double)),
      borderRadius: dart.finalFieldType(border_radius.BorderRadius),
      spacing: dart.finalFieldType(core.double),
      isTrackVisible: dart.finalFieldType(core.bool),
      [_rectPosition]: dart.fieldType(core.num),
      [_rectCount]: dart.fieldType(core.num),
      trackColor: dart.finalFieldType(ui.Color),
      trackBorderColor: dart.finalFieldType(ui.Color),
      trackBorderWidth: dart.finalFieldType(core.double),
      trackPadding: dart.finalFieldType(core.double)
    }));
    return _StackedSeriesBase;
  });
  charts._StackedSeriesBase = charts._StackedSeriesBase$();
  dart.addTypeTests(charts._StackedSeriesBase, _is__StackedSeriesBase_default);
  const x1$5 = dart.privateName(charts, "StackedBarSegment.x1");
  const y1$4 = dart.privateName(charts, "StackedBarSegment.y1");
  const x2$4 = dart.privateName(charts, "StackedBarSegment.x2");
  const y2$4 = dart.privateName(charts, "StackedBarSegment.y2");
  const stackValues = dart.privateName(charts, "StackedBarSegment.stackValues");
  const _currentPoint$8 = dart.privateName(charts, "StackedBarSegment._currentPoint");
  const path$4 = dart.privateName(charts, "StackedBarSegment.path");
  const rect = dart.privateName(charts, "StackedBarSegment.rect");
  charts.StackedBarSegment = class StackedBarSegment extends charts.ChartSegment {
    get x1() {
      return this[x1$5];
    }
    set x1(value) {
      this[x1$5] = value;
    }
    get y1() {
      return this[y1$4];
    }
    set y1(value) {
      this[y1$4] = value;
    }
    get x2() {
      return this[x2$4];
    }
    set x2(value) {
      this[x2$4] = value;
    }
    get y2() {
      return this[y2$4];
    }
    set y2(value) {
      this[y2$4] = value;
    }
    get stackValues() {
      return this[stackValues];
    }
    set stackValues(value) {
      this[stackValues] = value;
    }
    get [_currentPoint]() {
      return this[_currentPoint$8];
    }
    set [_currentPoint](value) {
      this[_currentPoint$8] = value;
    }
    get path() {
      return this[path$4];
    }
    set path(value) {
      this[path$4] = value;
    }
    get rect() {
      return this[rect];
    }
    set rect(value) {
      this[rect] = value;
    }
    getFillPaint() {
      let t2;
      let hasPointColor = this.series.pointColorMapper != null ? true : false;
      if (this.series.gradient == null) {
        if (this.color != null) {
          this.fillPaint = (t2 = ui.Paint.new(), t2.color = dart.equals(this[_currentPoint].isEmpty, true) ? this.series.emptyPointSettings.color : hasPointColor && this[_currentPoint].pointColorMapper != null ? this[_currentPoint].pointColorMapper : this.color, t2.style = ui.PaintingStyle.fill, t2);
        }
      } else {
        this.fillPaint = charts._getLinearGradientPaint(this.series.gradient, this[_currentPoint].region, this.series[_chart][_requireInvertedAxis]);
      }
      this[_defaultFillColor] = this.fillPaint;
      if (this.fillPaint.color != null) this.fillPaint.color = dart.notNull(this.series.opacity) < 1 && !dart.equals(this.fillPaint.color, colors$.Colors.transparent) ? this.fillPaint.color.withOpacity(this.series.opacity) : this.fillPaint.color;
      return this.fillPaint;
    }
    getStrokePaint() {
      let t2;
      if (this.strokeColor != null) {
        this.strokePaint = (t2 = ui.Paint.new(), t2.color = dart.equals(this[_currentPoint].isEmpty, true) ? this.series.emptyPointSettings.borderColor : this.strokeColor, t2.style = ui.PaintingStyle.stroke, t2.strokeWidth = dart.equals(this[_currentPoint].isEmpty, true) ? this.series.emptyPointSettings.borderWidth : this.strokeWidth, t2);
        this[_defaultStrokeColor] = this.strokePaint;
      }
      this.series.borderWidth === 0 ? this.strokePaint.color = colors$.Colors.transparent : this.strokePaint.color;
      return this.strokePaint;
    }
    [_getTrackerFillPaint]() {
      let t2;
      let columnSeries = charts.StackedBarSeries._check(this.series);
      if (this.color != null) {
        this[_trackerFillPaint] = (t2 = ui.Paint.new(), t2.color = columnSeries.trackColor, t2.style = ui.PaintingStyle.fill, t2);
      }
      return this[_trackerFillPaint];
    }
    [_getTrackerStrokePaint]() {
      let t2;
      let columnSeries = charts.StackedBarSeries._check(this.series);
      this[_trackerStrokePaint] = (t2 = ui.Paint.new(), t2.color = columnSeries.trackBorderColor, t2.strokeWidth = columnSeries.trackBorderWidth, t2.style = ui.PaintingStyle.stroke, t2);
      columnSeries.trackBorderWidth === 0 ? this[_trackerStrokePaint].color = colors$.Colors.transparent : this[_trackerStrokePaint].color;
      return this[_trackerStrokePaint];
    }
    calculateSegmentPoints() {
      let stackedBarSeries = charts.StackedBarSeries._check(this.series);
      this[_borderRadius] = stackedBarSeries.borderRadius;
      if (this[_currentPoint].region != null) {
        this.segmentRect = new ui.RRect.fromRectAndCorners(this[_currentPoint].region, {bottomLeft: this[_borderRadius].bottomLeft, bottomRight: this[_borderRadius].bottomRight, topLeft: this[_borderRadius].topLeft, topRight: this[_borderRadius].topRight});
        if (dart.test(stackedBarSeries.isTrackVisible)) {
          this[_trackRect] = new ui.RRect.fromRectAndCorners(this[_currentPoint].trackerRectRegion, {bottomLeft: this[_borderRadius].bottomLeft, bottomRight: this[_borderRadius].bottomRight, topLeft: this[_borderRadius].topLeft, topRight: this[_borderRadius].topRight});
        }
      }
      this.path = charts._dashedBorder(this[_currentPoint], this.series.borderWidth);
    }
    onPaint(canvas) {
      let stackedBarSeries = charts.StackedBarSeries._check(this.series);
      this.series.selectionSettings[_selectionRenderer][_checkWithSelectionState](this.series.segments[$_get](this.currentSegmentIndex), this.series[_chart]);
      if (this[_trackerFillPaint] != null && dart.test(stackedBarSeries.isTrackVisible)) {
        canvas.drawRRect(this[_trackRect], this[_trackerFillPaint]);
      }
      if (this[_trackerStrokePaint] != null && dart.test(stackedBarSeries.isTrackVisible)) {
        canvas.drawRRect(this[_trackRect], this[_trackerStrokePaint]);
      }
      charts._renderStackingRectSeries(this.fillPaint, this.strokePaint, this.path, this.animationFactor, charts._StackedSeriesBase._check(this.series), canvas, this.segmentRect, this[_currentPoint]);
    }
    [_setData](values) {
      this.x1 = values[$_get](0);
      this.y1 = values[$_get](1);
    }
  };
  (charts.StackedBarSegment.new = function() {
    this[x1$5] = null;
    this[y1$4] = null;
    this[x2$4] = null;
    this[y2$4] = null;
    this[stackValues] = null;
    this[_borderRadius] = null;
    this[_currentPoint$8] = null;
    this[path$4] = null;
    this[rect] = null;
    this[_trackRect] = null;
    this[_trackerFillPaint] = null;
    this[_trackerStrokePaint] = null;
    charts.StackedBarSegment.__proto__.new.call(this);
    ;
  }).prototype = charts.StackedBarSegment.prototype;
  dart.addTypeTests(charts.StackedBarSegment);
  dart.setMethodSignature(charts.StackedBarSegment, () => ({
    __proto__: dart.getMethods(charts.StackedBarSegment.__proto__),
    getFillPaint: dart.fnType(ui.Paint, []),
    getStrokePaint: dart.fnType(ui.Paint, []),
    [_getTrackerFillPaint]: dart.fnType(ui.Paint, []),
    [_getTrackerStrokePaint]: dart.fnType(ui.Paint, []),
    calculateSegmentPoints: dart.fnType(dart.void, []),
    onPaint: dart.fnType(dart.void, [ui.Canvas]),
    [_setData]: dart.fnType(dart.void, [core.List$(core.num)])
  }));
  dart.setLibraryUri(charts.StackedBarSegment, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.StackedBarSegment, () => ({
    __proto__: dart.getFields(charts.StackedBarSegment.__proto__),
    x1: dart.fieldType(core.num),
    y1: dart.fieldType(core.num),
    x2: dart.fieldType(core.num),
    y2: dart.fieldType(core.num),
    stackValues: dart.fieldType(core.double),
    [_borderRadius]: dart.fieldType(border_radius.BorderRadius),
    [_currentPoint]: dart.fieldType(charts.CartesianChartPoint),
    path: dart.fieldType(ui.Path),
    rect: dart.fieldType(ui.RRect),
    [_trackRect]: dart.fieldType(ui.RRect),
    [_trackerFillPaint]: dart.fieldType(ui.Paint),
    [_trackerStrokePaint]: dart.fieldType(ui.Paint)
  }));
  const x1$6 = dart.privateName(charts, "StackedBar100Segment.x1");
  const y1$5 = dart.privateName(charts, "StackedBar100Segment.y1");
  const x2$5 = dart.privateName(charts, "StackedBar100Segment.x2");
  const y2$5 = dart.privateName(charts, "StackedBar100Segment.y2");
  const stackValues$ = dart.privateName(charts, "StackedBar100Segment.stackValues");
  const _currentPoint$9 = dart.privateName(charts, "StackedBar100Segment._currentPoint");
  const path$5 = dart.privateName(charts, "StackedBar100Segment.path");
  const rect$ = dart.privateName(charts, "StackedBar100Segment.rect");
  charts.StackedBar100Segment = class StackedBar100Segment extends charts.ChartSegment {
    get x1() {
      return this[x1$6];
    }
    set x1(value) {
      this[x1$6] = value;
    }
    get y1() {
      return this[y1$5];
    }
    set y1(value) {
      this[y1$5] = value;
    }
    get x2() {
      return this[x2$5];
    }
    set x2(value) {
      this[x2$5] = value;
    }
    get y2() {
      return this[y2$5];
    }
    set y2(value) {
      this[y2$5] = value;
    }
    get stackValues() {
      return this[stackValues$];
    }
    set stackValues(value) {
      this[stackValues$] = value;
    }
    get [_currentPoint]() {
      return this[_currentPoint$9];
    }
    set [_currentPoint](value) {
      this[_currentPoint$9] = value;
    }
    get path() {
      return this[path$5];
    }
    set path(value) {
      this[path$5] = value;
    }
    get rect() {
      return this[rect$];
    }
    set rect(value) {
      this[rect$] = value;
    }
    getFillPaint() {
      let t2;
      let hasPointColor = this.series.pointColorMapper != null ? true : false;
      if (this.series.gradient == null) {
        if (this.color != null) {
          this.fillPaint = (t2 = ui.Paint.new(), t2.color = dart.equals(this[_currentPoint].isEmpty, true) ? this.series.emptyPointSettings.color : hasPointColor && this[_currentPoint].pointColorMapper != null ? this[_currentPoint].pointColorMapper : this.color, t2.style = ui.PaintingStyle.fill, t2);
        }
      } else {
        this.fillPaint = charts._getLinearGradientPaint(this.series.gradient, this[_currentPoint].region, this.series[_chart][_requireInvertedAxis]);
      }
      this[_defaultFillColor] = this.fillPaint;
      if (this.fillPaint.color != null) this.fillPaint.color = dart.notNull(this.series.opacity) < 1 && !dart.equals(this.fillPaint.color, colors$.Colors.transparent) ? this.fillPaint.color.withOpacity(this.series.opacity) : this.fillPaint.color;
      return this.fillPaint;
    }
    getStrokePaint() {
      let t2;
      if (this.strokeColor != null) {
        this.strokePaint = (t2 = ui.Paint.new(), t2.color = dart.equals(this[_currentPoint].isEmpty, true) ? this.series.emptyPointSettings.borderColor : this.strokeColor, t2.style = ui.PaintingStyle.stroke, t2.strokeWidth = dart.equals(this[_currentPoint].isEmpty, true) ? this.series.emptyPointSettings.borderWidth : this.strokeWidth, t2);
        this[_defaultStrokeColor] = this.strokePaint;
      }
      this.series.borderWidth === 0 ? this.strokePaint.color = colors$.Colors.transparent : this.strokePaint.color;
      return this.strokePaint;
    }
    calculateSegmentPoints() {
      let stackedBar100Series = charts.StackedBar100Series._check(this.series);
      this[_borderRadius] = stackedBar100Series.borderRadius;
      if (this[_currentPoint].region != null) {
        this.segmentRect = new ui.RRect.fromRectAndCorners(this[_currentPoint].region, {bottomLeft: this[_borderRadius].bottomLeft, bottomRight: this[_borderRadius].bottomRight, topLeft: this[_borderRadius].topLeft, topRight: this[_borderRadius].topRight});
      }
      this.path = charts._dashedBorder(this[_currentPoint], this.series.borderWidth);
    }
    onPaint(canvas) {
      charts._renderStackingRectSeries(this.fillPaint, this.strokePaint, this.path, this.animationFactor, charts._StackedSeriesBase._check(this.series), canvas, this.segmentRect, this[_currentPoint]);
    }
    [_setData](values) {
      this.x1 = values[$_get](0);
      this.y1 = values[$_get](1);
    }
  };
  (charts.StackedBar100Segment.new = function() {
    this[x1$6] = null;
    this[y1$5] = null;
    this[x2$5] = null;
    this[y2$5] = null;
    this[stackValues$] = null;
    this[_borderRadius] = null;
    this[_currentPoint$9] = null;
    this[path$5] = null;
    this[rect$] = null;
    charts.StackedBar100Segment.__proto__.new.call(this);
    ;
  }).prototype = charts.StackedBar100Segment.prototype;
  dart.addTypeTests(charts.StackedBar100Segment);
  dart.setMethodSignature(charts.StackedBar100Segment, () => ({
    __proto__: dart.getMethods(charts.StackedBar100Segment.__proto__),
    getFillPaint: dart.fnType(ui.Paint, []),
    getStrokePaint: dart.fnType(ui.Paint, []),
    calculateSegmentPoints: dart.fnType(dart.void, []),
    onPaint: dart.fnType(dart.void, [ui.Canvas]),
    [_setData]: dart.fnType(dart.void, [core.List$(core.num)])
  }));
  dart.setLibraryUri(charts.StackedBar100Segment, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.StackedBar100Segment, () => ({
    __proto__: dart.getFields(charts.StackedBar100Segment.__proto__),
    x1: dart.fieldType(core.num),
    y1: dart.fieldType(core.num),
    x2: dart.fieldType(core.num),
    y2: dart.fieldType(core.num),
    stackValues: dart.fieldType(core.double),
    [_borderRadius]: dart.fieldType(border_radius.BorderRadius),
    [_currentPoint]: dart.fieldType(charts.CartesianChartPoint),
    path: dart.fieldType(ui.Path),
    rect: dart.fieldType(ui.RRect)
  }));
  const x1$7 = dart.privateName(charts, "StackedColumnSegment.x1");
  const y1$6 = dart.privateName(charts, "StackedColumnSegment.y1");
  const x2$6 = dart.privateName(charts, "StackedColumnSegment.x2");
  const y2$6 = dart.privateName(charts, "StackedColumnSegment.y2");
  const stackValues$0 = dart.privateName(charts, "StackedColumnSegment.stackValues");
  const _currentPoint$10 = dart.privateName(charts, "StackedColumnSegment._currentPoint");
  const path$6 = dart.privateName(charts, "StackedColumnSegment.path");
  const topLeft$ = dart.privateName(charts, "StackedColumnSegment.topLeft");
  const topRight$ = dart.privateName(charts, "StackedColumnSegment.topRight");
  const bottomRight$ = dart.privateName(charts, "StackedColumnSegment.bottomRight");
  const bottomLeft$ = dart.privateName(charts, "StackedColumnSegment.bottomLeft");
  charts.StackedColumnSegment = class StackedColumnSegment extends charts.ChartSegment {
    get x1() {
      return this[x1$7];
    }
    set x1(value) {
      this[x1$7] = value;
    }
    get y1() {
      return this[y1$6];
    }
    set y1(value) {
      this[y1$6] = value;
    }
    get x2() {
      return this[x2$6];
    }
    set x2(value) {
      this[x2$6] = value;
    }
    get y2() {
      return this[y2$6];
    }
    set y2(value) {
      this[y2$6] = value;
    }
    get stackValues() {
      return this[stackValues$0];
    }
    set stackValues(value) {
      this[stackValues$0] = value;
    }
    get [_currentPoint]() {
      return this[_currentPoint$10];
    }
    set [_currentPoint](value) {
      this[_currentPoint$10] = value;
    }
    get path() {
      return this[path$6];
    }
    set path(value) {
      this[path$6] = value;
    }
    get topLeft() {
      return this[topLeft$];
    }
    set topLeft(value) {
      this[topLeft$] = value;
    }
    get topRight() {
      return this[topRight$];
    }
    set topRight(value) {
      this[topRight$] = value;
    }
    get bottomRight() {
      return this[bottomRight$];
    }
    set bottomRight(value) {
      this[bottomRight$] = value;
    }
    get bottomLeft() {
      return this[bottomLeft$];
    }
    set bottomLeft(value) {
      this[bottomLeft$] = value;
    }
    getFillPaint() {
      let t2;
      let hasPointColor = this.series.pointColorMapper != null ? true : false;
      if (this.series.gradient == null) {
        if (this.color != null) {
          this.fillPaint = (t2 = ui.Paint.new(), t2.color = dart.equals(this[_currentPoint].isEmpty, true) ? this.series.emptyPointSettings.color : hasPointColor && this[_currentPoint].pointColorMapper != null ? this[_currentPoint].pointColorMapper : this.color, t2.style = ui.PaintingStyle.fill, t2);
        }
      } else {
        this.fillPaint = charts._getLinearGradientPaint(this.series.gradient, this[_currentPoint].region, this.series[_chart][_requireInvertedAxis]);
      }
      if (this.fillPaint.color != null) this.fillPaint.color = dart.notNull(this.series.opacity) < 1 && !dart.equals(this.fillPaint.color, colors$.Colors.transparent) ? this.fillPaint.color.withOpacity(this.series.opacity) : this.fillPaint.color;
      this[_defaultFillColor] = this.fillPaint;
      return this.fillPaint;
    }
    getStrokePaint() {
      let t2;
      if (this.strokeColor != null) {
        this.strokePaint = (t2 = ui.Paint.new(), t2.color = dart.equals(this[_currentPoint].isEmpty, true) ? this.series.emptyPointSettings.borderColor : this.strokeColor, t2.style = ui.PaintingStyle.stroke, t2.strokeWidth = dart.equals(this[_currentPoint].isEmpty, true) ? this.series.emptyPointSettings.borderWidth : this.strokeWidth, t2);
        this[_defaultStrokeColor] = this.strokePaint;
      }
      this.series.borderWidth === 0 ? this.strokePaint.color = colors$.Colors.transparent : this.strokePaint.color;
      return this.strokePaint;
    }
    [_getTrackerFillPaint]() {
      let t2;
      let columnSeries = charts.StackedColumnSeries._check(this.series);
      if (this.color != null) {
        this[_trackerFillPaint] = (t2 = ui.Paint.new(), t2.color = columnSeries.trackColor, t2.style = ui.PaintingStyle.fill, t2);
      }
      return this[_trackerFillPaint];
    }
    [_getTrackerStrokePaint]() {
      let t2;
      let columnSeries = charts.StackedColumnSeries._check(this.series);
      this[_trackerStrokePaint] = (t2 = ui.Paint.new(), t2.color = columnSeries.trackBorderColor, t2.strokeWidth = columnSeries.trackBorderWidth, t2.style = ui.PaintingStyle.stroke, t2);
      columnSeries.trackBorderWidth === 0 ? this[_trackerStrokePaint].color = colors$.Colors.transparent : this[_trackerStrokePaint].color;
      return this[_trackerStrokePaint];
    }
    calculateSegmentPoints() {
      let stackedColumnSeries = charts.StackedColumnSeries._check(this.series);
      this[_borderRadius] = stackedColumnSeries.borderRadius;
      if (this[_currentPoint].region != null) {
        this.segmentRect = new ui.RRect.fromRectAndCorners(this[_currentPoint].region, {bottomLeft: this[_borderRadius].bottomLeft, bottomRight: this[_borderRadius].bottomRight, topLeft: this[_borderRadius].topLeft, topRight: this[_borderRadius].topRight});
        if (dart.test(stackedColumnSeries.isTrackVisible)) {
          this[_trackRect] = new ui.RRect.fromRectAndCorners(this[_currentPoint].trackerRectRegion, {bottomLeft: this[_borderRadius].bottomLeft, bottomRight: this[_borderRadius].bottomRight, topLeft: this[_borderRadius].topLeft, topRight: this[_borderRadius].topRight});
        }
      }
      this.path = charts._dashedBorder(this[_currentPoint], this.series.borderWidth);
    }
    onPaint(canvas) {
      let stackedColumnSeries = charts.StackedColumnSeries._check(this.series);
      if (this[_trackerFillPaint] != null && dart.test(stackedColumnSeries.isTrackVisible)) {
        canvas.drawRRect(this[_trackRect], this[_trackerFillPaint]);
      }
      if (this[_trackerStrokePaint] != null && dart.test(stackedColumnSeries.isTrackVisible)) {
        canvas.drawRRect(this[_trackRect], this[_trackerStrokePaint]);
      }
      charts._renderStackingRectSeries(this.fillPaint, this.strokePaint, this.path, this.animationFactor, charts._StackedSeriesBase._check(this.series), canvas, this.segmentRect, this[_currentPoint]);
    }
    [_setData](values) {
      this.x1 = values[$_get](0);
      this.y1 = values[$_get](1);
    }
  };
  (charts.StackedColumnSegment.new = function() {
    this[x1$7] = null;
    this[y1$6] = null;
    this[x2$6] = null;
    this[y2$6] = null;
    this[stackValues$0] = null;
    this[_borderRadius] = null;
    this[_currentPoint$10] = null;
    this[path$6] = null;
    this[_trackRect] = null;
    this[topLeft$] = null;
    this[topRight$] = null;
    this[bottomRight$] = null;
    this[bottomLeft$] = null;
    this[_trackerFillPaint] = null;
    this[_trackerStrokePaint] = null;
    charts.StackedColumnSegment.__proto__.new.call(this);
    ;
  }).prototype = charts.StackedColumnSegment.prototype;
  dart.addTypeTests(charts.StackedColumnSegment);
  dart.setMethodSignature(charts.StackedColumnSegment, () => ({
    __proto__: dart.getMethods(charts.StackedColumnSegment.__proto__),
    getFillPaint: dart.fnType(ui.Paint, []),
    getStrokePaint: dart.fnType(ui.Paint, []),
    [_getTrackerFillPaint]: dart.fnType(ui.Paint, []),
    [_getTrackerStrokePaint]: dart.fnType(ui.Paint, []),
    calculateSegmentPoints: dart.fnType(dart.void, []),
    onPaint: dart.fnType(dart.void, [ui.Canvas]),
    [_setData]: dart.fnType(dart.void, [core.List$(core.num)])
  }));
  dart.setLibraryUri(charts.StackedColumnSegment, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.StackedColumnSegment, () => ({
    __proto__: dart.getFields(charts.StackedColumnSegment.__proto__),
    x1: dart.fieldType(core.num),
    y1: dart.fieldType(core.num),
    x2: dart.fieldType(core.num),
    y2: dart.fieldType(core.num),
    stackValues: dart.fieldType(core.double),
    [_borderRadius]: dart.fieldType(border_radius.BorderRadius),
    [_currentPoint]: dart.fieldType(charts.CartesianChartPoint),
    path: dart.fieldType(ui.Path),
    [_trackRect]: dart.fieldType(ui.RRect),
    topLeft: dart.fieldType(dart.dynamic),
    topRight: dart.fieldType(dart.dynamic),
    bottomRight: dart.fieldType(dart.dynamic),
    bottomLeft: dart.fieldType(dart.dynamic),
    [_trackerFillPaint]: dart.fieldType(ui.Paint),
    [_trackerStrokePaint]: dart.fieldType(ui.Paint)
  }));
  const x1$8 = dart.privateName(charts, "StackedColumn100Segment.x1");
  const y1$7 = dart.privateName(charts, "StackedColumn100Segment.y1");
  const x2$7 = dart.privateName(charts, "StackedColumn100Segment.x2");
  const y2$7 = dart.privateName(charts, "StackedColumn100Segment.y2");
  const stackValues$1 = dart.privateName(charts, "StackedColumn100Segment.stackValues");
  const _currentPoint$11 = dart.privateName(charts, "StackedColumn100Segment._currentPoint");
  const path$7 = dart.privateName(charts, "StackedColumn100Segment.path");
  charts.StackedColumn100Segment = class StackedColumn100Segment extends charts.ChartSegment {
    get x1() {
      return this[x1$8];
    }
    set x1(value) {
      this[x1$8] = value;
    }
    get y1() {
      return this[y1$7];
    }
    set y1(value) {
      this[y1$7] = value;
    }
    get x2() {
      return this[x2$7];
    }
    set x2(value) {
      this[x2$7] = value;
    }
    get y2() {
      return this[y2$7];
    }
    set y2(value) {
      this[y2$7] = value;
    }
    get stackValues() {
      return this[stackValues$1];
    }
    set stackValues(value) {
      this[stackValues$1] = value;
    }
    get [_currentPoint]() {
      return this[_currentPoint$11];
    }
    set [_currentPoint](value) {
      this[_currentPoint$11] = value;
    }
    get path() {
      return this[path$7];
    }
    set path(value) {
      this[path$7] = value;
    }
    getFillPaint() {
      let t2;
      let hasPointColor = this.series.pointColorMapper != null ? true : false;
      if (this.series.gradient == null) {
        if (this.color != null) {
          this.fillPaint = (t2 = ui.Paint.new(), t2.color = dart.equals(this[_currentPoint].isEmpty, true) ? this.series.emptyPointSettings.color : hasPointColor && this[_currentPoint].pointColorMapper != null ? this[_currentPoint].pointColorMapper : this.color, t2.style = ui.PaintingStyle.fill, t2);
        }
      } else {
        this.fillPaint = charts._getLinearGradientPaint(this.series.gradient, this[_currentPoint].region, this.series[_chart][_requireInvertedAxis]);
      }
      if (this.fillPaint.color != null) this.fillPaint.color = dart.notNull(this.series.opacity) < 1 && !dart.equals(this.fillPaint.color, colors$.Colors.transparent) ? this.fillPaint.color.withOpacity(this.series.opacity) : this.fillPaint.color;
      this[_defaultFillColor] = this.fillPaint;
      return this.fillPaint;
    }
    getStrokePaint() {
      let t2;
      if (this.strokeColor != null) {
        this.strokePaint = (t2 = ui.Paint.new(), t2.color = dart.equals(this[_currentPoint].isEmpty, true) ? this.series.emptyPointSettings.borderColor : this.strokeColor, t2.style = ui.PaintingStyle.stroke, t2.strokeWidth = dart.equals(this[_currentPoint].isEmpty, true) ? this.series.emptyPointSettings.borderWidth : this.strokeWidth, t2);
        this[_defaultStrokeColor] = this.strokePaint;
      }
      this.series.borderWidth === 0 ? this.strokePaint.color = colors$.Colors.transparent : this.strokePaint.color;
      return this.strokePaint;
    }
    calculateSegmentPoints() {
      let stackedColumn100Series = charts.StackedColumn100Series._check(this.series);
      this[_borderRadius] = stackedColumn100Series.borderRadius;
      if (this[_currentPoint].region != null) {
        this.segmentRect = new ui.RRect.fromRectAndCorners(this[_currentPoint].region, {bottomLeft: this[_borderRadius].bottomLeft, bottomRight: this[_borderRadius].bottomRight, topLeft: this[_borderRadius].topLeft, topRight: this[_borderRadius].topRight});
      }
      this.path = charts._dashedBorder(this[_currentPoint], this.series.borderWidth);
    }
    onPaint(canvas) {
      charts._renderStackingRectSeries(this.fillPaint, this.strokePaint, this.path, this.animationFactor, charts._StackedSeriesBase._check(this.series), canvas, this.segmentRect, this[_currentPoint]);
    }
    [_setData](values) {
      this.x1 = values[$_get](0);
      this.y1 = values[$_get](1);
    }
  };
  (charts.StackedColumn100Segment.new = function() {
    this[x1$8] = null;
    this[y1$7] = null;
    this[x2$7] = null;
    this[y2$7] = null;
    this[stackValues$1] = null;
    this[_borderRadius] = null;
    this[_currentPoint$11] = null;
    this[path$7] = null;
    charts.StackedColumn100Segment.__proto__.new.call(this);
    ;
  }).prototype = charts.StackedColumn100Segment.prototype;
  dart.addTypeTests(charts.StackedColumn100Segment);
  dart.setMethodSignature(charts.StackedColumn100Segment, () => ({
    __proto__: dart.getMethods(charts.StackedColumn100Segment.__proto__),
    getFillPaint: dart.fnType(ui.Paint, []),
    getStrokePaint: dart.fnType(ui.Paint, []),
    calculateSegmentPoints: dart.fnType(dart.void, []),
    onPaint: dart.fnType(dart.void, [ui.Canvas]),
    [_setData]: dart.fnType(dart.void, [core.List$(core.num)])
  }));
  dart.setLibraryUri(charts.StackedColumn100Segment, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.StackedColumn100Segment, () => ({
    __proto__: dart.getFields(charts.StackedColumn100Segment.__proto__),
    x1: dart.fieldType(core.num),
    y1: dart.fieldType(core.num),
    x2: dart.fieldType(core.num),
    y2: dart.fieldType(core.num),
    stackValues: dart.fieldType(core.double),
    [_borderRadius]: dart.fieldType(border_radius.BorderRadius),
    [_currentPoint]: dart.fieldType(charts.CartesianChartPoint),
    path: dart.fieldType(ui.Path)
  }));
  const _drawStepAreaPath = dart.privateName(charts, "_drawStepAreaPath");
  const _getVisibility = dart.privateName(charts, "_getVisibility");
  const series$9 = dart.privateName(charts, "StepAreaSegment.series");
  charts.StepAreaSegment = class StepAreaSegment extends charts.ChartSegment {
    get series() {
      return this[series$9];
    }
    set series(value) {
      this[series$9] = value;
    }
    getFillPaint() {
      this.fillPaint = ui.Paint.new();
      if (this.series.gradient == null) {
        if (this.color != null) {
          this.fillPaint.color = this.color;
          this.fillPaint.style = ui.PaintingStyle.fill;
        }
      } else {
        this.fillPaint = this[_pathRect$] != null ? charts._getLinearGradientPaint(this.series.gradient, this[_pathRect$], this.series[_chart][_requireInvertedAxis]) : this.fillPaint;
      }
      if (this.fillPaint.color != null) this.fillPaint.color = dart.notNull(this.series.opacity) < 1 && !dart.equals(this.fillPaint.color, colors$.Colors.transparent) ? this.fillPaint.color.withOpacity(this.series.opacity) : this.fillPaint.color;
      this[_defaultFillColor] = this.fillPaint;
      return this.fillPaint;
    }
    getStrokePaint() {
      let t2;
      let strokePaint = ui.Paint.new();
      if (this.strokeColor != null) {
        t2 = strokePaint;
        t2.color = this.series.borderColor;
        t2.style = ui.PaintingStyle.stroke;
        t2.strokeWidth = this.series.borderWidth;
        t2;
        this.series.borderWidth === 0 ? strokePaint.color = colors$.Colors.transparent : strokePaint.color;
      }
      strokePaint.strokeCap = ui.StrokeCap.round;
      this[_defaultStrokeColor] = strokePaint;
      return strokePaint;
    }
    calculateSegmentPoints() {
    }
    onPaint(canvas) {
      let t2, t2$;
      let rect = this.series[_chart][_chartAxis][_axisClipRect];
      let prevPoint = null;
      let point = null;
      let currentPoint = null;
      let originPoint = null;
      let previousPoint = null;
      let xAxis = this.series[_xAxis$];
      let yAxis = this.series[_yAxis$];
      let _series = charts.StepAreaSeries._check(this.series);
      this[_path$] = ui.Path.new();
      this[_strokePath$] = ui.Path.new();
      for (let pointIndex = 0; pointIndex < dart.notNull(this.series[_dataPoints$][$length]); pointIndex = pointIndex + 1) {
        point = this.series[_dataPoints$][$_get](pointIndex);
        if (dart.test(point.isVisible)) {
          currentPoint = charts._calculatePoint(core.num._check(point.xValue), core.num._check(point.yValue), xAxis, yAxis, this.series[_chart][_requireInvertedAxis], this.series, rect);
          previousPoint = charts._ChartLocation._check(prevPoint != null ? charts._calculatePoint(core.num._check((t2 = prevPoint, t2 == null ? null : t2.xValue)), core.num._check((t2$ = prevPoint, t2$ == null ? null : t2$.yValue)), xAxis, yAxis, this.series[_chart][_requireInvertedAxis], this.series, rect) : prevPoint);
          originPoint = charts._calculatePoint(core.num._check(point.xValue), math.max(core.num, core.num._check(yAxis[_visibleRange].minimum), 0), xAxis, yAxis, this.series[_chart][_requireInvertedAxis], this.series, rect);
          this[_drawStepAreaPath](prevPoint, currentPoint, originPoint, previousPoint, pointIndex, _series);
          prevPoint = point;
        }
      }
      this[_pathRect$] = this[_path$].getBounds();
      this.series.selectionSettings[_selectionRenderer][_checkWithSelectionState](this.series.segments[$_get](0), this.series[_chart]);
      canvas.drawPath(this[_path$], this.series.gradient == null ? this.fillPaint : this.getFillPaint());
      if (!dart.equals(this.strokePaint.color, colors$.Colors.transparent)) charts._drawDashedLine(canvas, this.series.dashArray, this.strokePaint, this[_strokePath$]);
    }
    [_drawStepAreaPath](prevPoint, currentPoint, originPoint, previousPoint, pointIndex, stepAreaSeries) {
      let x = currentPoint.x;
      let y = currentPoint.y;
      let closed = dart.equals(this.series.emptyPointSettings.mode, charts.EmptyPointMode.drop) ? this[_getVisibility](this.series[_dataPoints$], pointIndex) : false;
      if (prevPoint == null || dart.equals(this.series[_dataPoints$][$_get](dart.notNull(pointIndex) - 1).isGap, true) || dart.equals(this.series[_dataPoints$][$_get](pointIndex).isGap, true) || dart.equals(this.series[_dataPoints$][$_get](dart.notNull(pointIndex) - 1).isVisible, false) && dart.equals(this.series.emptyPointSettings.mode, charts.EmptyPointMode.gap)) {
        this[_path$].moveTo(originPoint.x, originPoint.y);
        if (dart.equals(stepAreaSeries.borderDrawMode, charts.BorderDrawMode.excludeBottom)) {
          if (!dart.equals(this.series[_dataPoints$][$_get](pointIndex).isGap, true)) {
            this[_strokePath$].moveTo(originPoint.x, originPoint.y);
            this[_strokePath$].lineTo(x, y);
          }
        } else if (dart.equals(stepAreaSeries.borderDrawMode, charts.BorderDrawMode.all)) {
          if (!dart.equals(this.series[_dataPoints$][$_get](pointIndex).isGap, true)) {
            this[_strokePath$].moveTo(originPoint.x, originPoint.y);
            this[_strokePath$].lineTo(x, y);
          }
        } else if (dart.equals(stepAreaSeries.borderDrawMode, charts.BorderDrawMode.top)) {
          this[_strokePath$].moveTo(x, y);
        }
        this[_path$].lineTo(x, y);
      } else if (pointIndex === dart.notNull(this.series[_dataPoints$][$length]) - 1 || dart.equals(this.series[_dataPoints$][$_get](dart.notNull(pointIndex) + 1).isGap, true)) {
        this[_strokePath$].lineTo(x, previousPoint.y);
        this[_strokePath$].lineTo(x, y);
        if (dart.equals(stepAreaSeries.borderDrawMode, charts.BorderDrawMode.excludeBottom))
          this[_strokePath$].lineTo(originPoint.x, originPoint.y);
        else if (dart.equals(stepAreaSeries.borderDrawMode, charts.BorderDrawMode.all)) {
          this[_strokePath$].lineTo(originPoint.x, originPoint.y);
          this[_strokePath$].close();
        }
        this[_path$].lineTo(x, previousPoint.y);
        this[_path$].lineTo(x, y);
        this[_path$].lineTo(originPoint.x, originPoint.y);
      } else {
        this[_path$].lineTo(x, previousPoint.y);
        this[_strokePath$].lineTo(x, previousPoint.y);
        this[_strokePath$].lineTo(x, y);
        this[_path$].lineTo(x, y);
        if (dart.test(closed)) {
          this[_path$].lineTo(originPoint.x, originPoint.y);
          if (dart.equals(stepAreaSeries.borderDrawMode, charts.BorderDrawMode.excludeBottom)) {
            this[_strokePath$].lineTo(originPoint.x, originPoint.y);
          } else if (dart.equals(stepAreaSeries.borderDrawMode, charts.BorderDrawMode.all)) {
            this[_strokePath$].lineTo(originPoint.x, originPoint.y);
            this[_strokePath$].close();
          }
        }
      }
    }
    [_getVisibility](points, index) {
      for (let i = index; dart.notNull(i) < dart.notNull(points[$length]) - 1; i = dart.notNull(i) + 1) {
        if (!dart.test(points[$_get](dart.notNull(i) + 1).isDrop)) {
          return false;
        }
      }
      return true;
    }
  };
  (charts.StepAreaSegment.new = function() {
    this[_path$] = null;
    this[_strokePath$] = null;
    this[_pathRect$] = null;
    this[series$9] = null;
    charts.StepAreaSegment.__proto__.new.call(this);
    ;
  }).prototype = charts.StepAreaSegment.prototype;
  dart.addTypeTests(charts.StepAreaSegment);
  dart.setMethodSignature(charts.StepAreaSegment, () => ({
    __proto__: dart.getMethods(charts.StepAreaSegment.__proto__),
    getFillPaint: dart.fnType(ui.Paint, []),
    getStrokePaint: dart.fnType(ui.Paint, []),
    calculateSegmentPoints: dart.fnType(dart.void, []),
    onPaint: dart.fnType(dart.void, [ui.Canvas]),
    [_drawStepAreaPath]: dart.fnType(dart.void, [charts.CartesianChartPoint, charts._ChartLocation, charts._ChartLocation, charts._ChartLocation, core.int, charts.StepAreaSeries]),
    [_getVisibility]: dart.fnType(core.bool, [core.List$(charts.CartesianChartPoint), core.int])
  }));
  dart.setLibraryUri(charts.StepAreaSegment, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.StepAreaSegment, () => ({
    __proto__: dart.getFields(charts.StepAreaSegment.__proto__),
    [_path$]: dart.fieldType(ui.Path),
    [_strokePath$]: dart.fieldType(ui.Path),
    [_pathRect$]: dart.fieldType(ui.Rect),
    series: dart.fieldType(charts.XyDataSeries)
  }));
  const _midX = dart.privateName(charts, "_midX");
  const _midY = dart.privateName(charts, "_midY");
  const _presentPoint = dart.privateName(charts, "_presentPoint");
  const x1$9 = dart.privateName(charts, "StepLineSegment.x1");
  const y1$8 = dart.privateName(charts, "StepLineSegment.y1");
  const x2$8 = dart.privateName(charts, "StepLineSegment.x2");
  const y2$8 = dart.privateName(charts, "StepLineSegment.y2");
  const x3 = dart.privateName(charts, "StepLineSegment.x3");
  const y3 = dart.privateName(charts, "StepLineSegment.y3");
  charts.StepLineSegment = class StepLineSegment extends charts.ChartSegment {
    get x1() {
      return this[x1$9];
    }
    set x1(value) {
      this[x1$9] = value;
    }
    get y1() {
      return this[y1$8];
    }
    set y1(value) {
      this[y1$8] = value;
    }
    get x2() {
      return this[x2$8];
    }
    set x2(value) {
      this[x2$8] = value;
    }
    get y2() {
      return this[y2$8];
    }
    set y2(value) {
      this[y2$8] = value;
    }
    get x3() {
      return this[x3];
    }
    set x3(value) {
      this[x3] = value;
    }
    get y3() {
      return this[y3];
    }
    set y3(value) {
      this[y3] = value;
    }
    getFillPaint() {
      let fillPaint = ui.Paint.new();
      if (this.color != null) {
        fillPaint.color = this.color.withOpacity(this.series.opacity);
      }
      fillPaint.strokeWidth = this.strokeWidth;
      fillPaint.style = ui.PaintingStyle.stroke;
      this[_defaultFillColor] = fillPaint;
      return fillPaint;
    }
    getStrokePaint() {
      let t2;
      let strokePaint = ui.Paint.new();
      if (this.series.gradient == null) {
        if (this.strokeColor != null) {
          strokePaint.color = (t2 = this[_pointColorMapper], t2 == null ? this.strokeColor : t2);
          strokePaint.color = dart.notNull(this.series.opacity) < 1 && !dart.equals(strokePaint.color, colors$.Colors.transparent) ? strokePaint.color.withOpacity(this.series.opacity) : strokePaint.color;
        }
      } else {
        strokePaint.color = this.series.gradient.colors[$_get](0);
      }
      strokePaint.strokeWidth = this.strokeWidth;
      strokePaint.style = ui.PaintingStyle.stroke;
      strokePaint.strokeCap = ui.StrokeCap.square;
      this[_defaultStrokeColor] = strokePaint;
      return strokePaint;
    }
    calculateSegmentPoints() {
      let start = this.series[_xAxis$][_visibleRange].minimum;
      let end = this.series[_xAxis$][_visibleRange].maximum;
      this.x1 = this.y1 = this.x2 = this.y2 = 0 / 0;
      let rect = charts._calculatePlotOffset(this.series[_chart][_chartAxis][_axisClipRect], new ui.Offset.new(this.series[_xAxis$].plotOffset, this.series[_yAxis$].plotOffset));
      if (this[_x1Pos] != null && this[_x2Pos] != null && this[_y1Pos] != null && this[_y2Pos] != null && (dart.notNull(this[_x1Pos]) >= dart.notNull(core.num._check(start)) && dart.notNull(this[_x1Pos]) <= dart.notNull(core.num._check(end)) || dart.notNull(this[_x2Pos]) >= dart.notNull(core.num._check(start)) && dart.notNull(this[_x2Pos]) <= dart.notNull(core.num._check(end)) || dart.dtest(dart.dsend(start, '>=', [this[_x1Pos]])) && dart.dtest(dart.dsend(start, '<=', [this[_x2Pos]])))) {
        let currentPoint = charts._calculatePoint(this[_x1Pos], this[_y1Pos], this.series[_xAxis$], this.series[_yAxis$], this.series[_chart][_requireInvertedAxis], this.series, rect);
        let nextPoint = charts._calculatePoint(this[_x2Pos], this[_y2Pos], this.series[_xAxis$], this.series[_yAxis$], this.series[_chart][_requireInvertedAxis], this.series, rect);
        let midPoint = charts._calculatePoint(this[_midX], this[_midY], this.series[_xAxis$], this.series[_yAxis$], this.series[_chart][_requireInvertedAxis], this.series, rect);
        this.x1 = currentPoint.x;
        this.y1 = currentPoint.y;
        this.x2 = nextPoint.x;
        this.y2 = nextPoint.y;
        this.x3 = midPoint.x;
        this.y3 = midPoint.y;
        this.segmentRect = new ui.RRect.fromRectAndRadius(this[_presentPoint].region, ui.Radius.zero);
      }
    }
    onPaint(canvas) {
      let t2, t2$, t2$0, t2$1, t2$2, t2$3;
      let rect = charts._calculatePlotOffset(this.series[_chart][_chartAxis][_axisClipRect], new ui.Offset.new(this.series[_xAxis$].plotOffset, this.series[_yAxis$].plotOffset));
      let path = ui.Path.new();
      this.series.selectionSettings[_selectionRenderer][_checkWithSelectionState](this.series.segments[$_get](this.currentSegmentIndex), this.series[_chart]);
      if (dart.notNull(this.series.animationDuration) > 0 && dart.test(this.series[_chart][_chartState].widgetNeedUpdate) && !dart.test(this.series[_chart][_chartState][_isLegendToggled]) && this.series[_chart][_chartState].prevWidgetSeries != null && dart.test(this.series[_chart][_chartState].prevWidgetSeries[$isNotEmpty]) && this.oldSeries != null && dart.test(this.oldSeries.segments[$isNotEmpty]) && charts.StepLineSegment.is(this.oldSeries.segments[$_get](0)) && dart.notNull(this.series[_chart][_chartState].prevWidgetSeries[$length]) - 1 >= dart.notNull(this.series.segments[$_get](this.currentSegmentIndex)[_seriesIndex]) && dart.test(this.series.segments[$_get](this.currentSegmentIndex).oldSeries.segments[$isNotEmpty])) {
        let currentSegment = charts.StepLineSegment._check(this.series.segments[$_get](this.currentSegmentIndex));
        let oldSegment = charts.StepLineSegment._check(dart.notNull(currentSegment.oldSeries.segments[$length]) - 1 >= dart.notNull(this.currentSegmentIndex) ? currentSegment.oldSeries.segments[$_get](this.currentSegmentIndex) : null);
        let oldX1 = null;
        let oldY1 = null;
        let oldX2 = null;
        let oldY2 = null;
        let oldX3 = null;
        let oldY3 = null;
        oldX1 = (t2 = oldSegment, t2 == null ? null : t2.x1);
        oldY1 = (t2$ = oldSegment, t2$ == null ? null : t2$.y1);
        oldX2 = (t2$0 = oldSegment, t2$0 == null ? null : t2$0.x2);
        oldY2 = (t2$1 = oldSegment, t2$1 == null ? null : t2$1.y2);
        oldX3 = (t2$2 = oldSegment, t2$2 == null ? null : t2$2.x3);
        oldY3 = (t2$3 = oldSegment, t2$3 == null ? null : t2$3.y3);
        if (oldSegment != null && (oldX1[$isNaN] || oldX2[$isNaN]) && this.series[_chart][_chartState].oldAxes != null) {
          let oldXAxis = null;
          let oldYAxis = null;
          let needAnimate = null;
          let oldPoint = null;
          oldXAxis = charts._getOldAxis(this.series[_xAxis$], this.series[_chart][_chartState].oldAxes);
          oldYAxis = charts._getOldAxis(this.series[_yAxis$], this.series[_chart][_chartState].oldAxes);
          if (oldYAxis != null && oldXAxis != null) {
            needAnimate = !dart.equals(oldYAxis[_visibleRange].minimum, this.series[_yAxis$][_visibleRange].minimum) || !dart.equals(oldYAxis[_visibleRange].maximum, this.series[_yAxis$][_visibleRange].maximum) || !dart.equals(oldXAxis[_visibleRange].minimum, this.series[_xAxis$][_visibleRange].minimum) || !dart.equals(oldXAxis[_visibleRange].maximum, this.series[_xAxis$][_visibleRange].maximum);
          }
          if (dart.test(needAnimate)) {
            oldPoint = charts._calculatePoint(this[_x1Pos], this[_y1Pos], oldXAxis, oldYAxis, this.series[_chart][_requireInvertedAxis], this.series, rect);
            oldX1 = oldPoint.x;
            oldY1 = oldPoint.y;
            oldPoint = charts._calculatePoint(this[_x2Pos], this[_y2Pos], oldXAxis, oldYAxis, this.series[_chart][_requireInvertedAxis], this.series, rect);
            oldX2 = oldPoint.x;
            oldY2 = oldPoint.y;
            oldPoint = charts._calculatePoint(this[_midX], this[_midY], oldXAxis, oldYAxis, this.series[_chart][_requireInvertedAxis], this.series, rect);
            oldX3 = oldPoint.x;
            oldY3 = oldPoint.y;
          }
        }
        charts._animateLineTypeSeries(canvas, this.series, this.strokePaint, this.animationFactor, currentSegment.x1, currentSegment.y1, currentSegment.x2, currentSegment.y2, oldX1, oldY1, oldX2, oldY2, currentSegment.x3, currentSegment.y3, oldX3, oldY3);
      } else {
        path.moveTo(this.x1, this.y1);
        path.lineTo(this.x3, this.y3);
        path.lineTo(this.x2, this.y2);
        charts._drawDashedLine(canvas, this.series.dashArray, this.strokePaint, path);
      }
    }
    setData(values) {
      this[_x1Pos] = values[$_get](0);
      this[_y1Pos] = values[$_get](1);
      this[_x2Pos] = values[$_get](2);
      this[_y2Pos] = values[$_get](3);
      this[_midX] = this[_x2Pos];
      this[_midY] = this[_y1Pos];
    }
  };
  (charts.StepLineSegment.new = function() {
    this[x1$9] = null;
    this[y1$8] = null;
    this[x2$8] = null;
    this[y2$8] = null;
    this[x3] = null;
    this[y3] = null;
    this[_x1Pos] = null;
    this[_y1Pos] = null;
    this[_x2Pos] = null;
    this[_y2Pos] = null;
    this[_midX] = null;
    this[_midY] = null;
    this[_presentPoint] = null;
    this[_pointColorMapper] = null;
    charts.StepLineSegment.__proto__.new.call(this);
    ;
  }).prototype = charts.StepLineSegment.prototype;
  dart.addTypeTests(charts.StepLineSegment);
  dart.setMethodSignature(charts.StepLineSegment, () => ({
    __proto__: dart.getMethods(charts.StepLineSegment.__proto__),
    getFillPaint: dart.fnType(ui.Paint, []),
    getStrokePaint: dart.fnType(ui.Paint, []),
    calculateSegmentPoints: dart.fnType(dart.void, []),
    onPaint: dart.fnType(dart.void, [ui.Canvas]),
    setData: dart.fnType(dart.void, [core.List$(core.num)])
  }));
  dart.setLibraryUri(charts.StepLineSegment, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.StepLineSegment, () => ({
    __proto__: dart.getFields(charts.StepLineSegment.__proto__),
    x1: dart.fieldType(core.num),
    y1: dart.fieldType(core.num),
    x2: dart.fieldType(core.num),
    y2: dart.fieldType(core.num),
    x3: dart.fieldType(core.num),
    y3: dart.fieldType(core.num),
    [_x1Pos]: dart.fieldType(core.num),
    [_y1Pos]: dart.fieldType(core.num),
    [_x2Pos]: dart.fieldType(core.num),
    [_y2Pos]: dart.fieldType(core.num),
    [_midX]: dart.fieldType(core.num),
    [_midY]: dart.fieldType(core.num),
    [_presentPoint]: dart.fieldType(charts.CartesianChartPoint),
    [_pointColorMapper]: dart.fieldType(ui.Color)
  }));
  const _is_AreaSeries_default = Symbol('_is_AreaSeries_default');
  const borderDrawMode$ = dart.privateName(charts, "AreaSeries.borderDrawMode");
  charts.AreaSeries$ = dart.generic((T, D) => {
    class AreaSeries extends charts.XyDataSeries$(T, D) {
      get borderDrawMode() {
        return this[borderDrawMode$];
      }
      set borderDrawMode(value) {
        super.borderDrawMode = value;
      }
      createSegment() {
        return new charts.AreaSegment.new();
      }
      createSegments() {
      }
      addSegment(seriesIndex, chart, animateFactor) {
        let segment = charts.AreaSegment._check(this.createSegment());
        segment.series = this;
        segment[_seriesIndex] = seriesIndex;
        segment.animationFactor = animateFactor;
        if (dart.test(this[_chart][_chartState].widgetNeedUpdate) && this[_chart][_chartState].prevWidgetSeries != null && dart.test(this[_chart][_chartState].prevWidgetSeries[$isNotEmpty]) && dart.notNull(this[_chart][_chartState].prevWidgetSeries[$length]) - 1 >= dart.notNull(segment[_seriesIndex]) && this[_chart][_chartState].prevWidgetSeries[$_get](segment[_seriesIndex])[_seriesName] == segment.series[_seriesName]) {
          segment.oldSeries = charts.XyDataSeries._check(this[_chart][_chartState].prevWidgetSeries[$_get](segment[_seriesIndex]));
        }
        this.customizeSegment(segment);
        segment.chart = chart;
        this.segments[$add](segment);
        return segment;
      }
      drawSegment(canvas, segment) {
        segment.onPaint(canvas);
      }
      customizeSegment(segment) {
        let areaSegment = charts.AreaSegment._check(segment);
        areaSegment.color = areaSegment.series[_seriesColor];
        areaSegment.strokeColor = areaSegment.series[_seriesColor];
        areaSegment.strokeWidth = areaSegment.series.width;
        areaSegment.strokePaint = areaSegment.getStrokePaint();
        areaSegment.fillPaint = areaSegment.getFillPaint();
      }
      drawDataMarker(index, canvas, fillPaint, strokePaint, pointX, pointY) {
        let size = new ui.Size.new(this.markerSettings.width, this.markerSettings.height);
        let markerPath = charts._getMarkerShapes(this.markerSettings.shape, new ui.Offset.new(pointX, pointY), size, this);
        canvas.drawPath(markerPath, fillPaint);
        canvas.drawPath(markerPath, strokePaint);
      }
      drawDataLabel(index, canvas, dataLabel, pointX, pointY, angle, style) {
        return charts._drawText(canvas, dataLabel, new ui.Offset.new(pointX, pointY), style, angle);
      }
    }
    (AreaSeries.new = function(opts) {
      let t2;
      let dataSource = opts && 'dataSource' in opts ? opts.dataSource : null;
      let xValueMapper = opts && 'xValueMapper' in opts ? opts.xValueMapper : null;
      let yValueMapper = opts && 'yValueMapper' in opts ? opts.yValueMapper : null;
      let sortFieldValueMapper = opts && 'sortFieldValueMapper' in opts ? opts.sortFieldValueMapper : null;
      let pointColorMapper = opts && 'pointColorMapper' in opts ? opts.pointColorMapper : null;
      let dataLabelMapper = opts && 'dataLabelMapper' in opts ? opts.dataLabelMapper : null;
      let sortingOrder = opts && 'sortingOrder' in opts ? opts.sortingOrder : null;
      let xAxisName = opts && 'xAxisName' in opts ? opts.xAxisName : null;
      let yAxisName = opts && 'yAxisName' in opts ? opts.yAxisName : null;
      let name = opts && 'name' in opts ? opts.name : null;
      let color = opts && 'color' in opts ? opts.color : null;
      let markerSettings = opts && 'markerSettings' in opts ? opts.markerSettings : null;
      let emptyPointSettings = opts && 'emptyPointSettings' in opts ? opts.emptyPointSettings : null;
      let dataLabelSettings = opts && 'dataLabelSettings' in opts ? opts.dataLabelSettings : null;
      let trendlines = opts && 'trendlines' in opts ? opts.trendlines : null;
      let isVisible = opts && 'isVisible' in opts ? opts.isVisible : null;
      let enableTooltip = opts && 'enableTooltip' in opts ? opts.enableTooltip : null;
      let dashArray = opts && 'dashArray' in opts ? opts.dashArray : null;
      let animationDuration = opts && 'animationDuration' in opts ? opts.animationDuration : null;
      let borderColor = opts && 'borderColor' in opts ? opts.borderColor : null;
      let borderWidth = opts && 'borderWidth' in opts ? opts.borderWidth : null;
      let gradient = opts && 'gradient' in opts ? opts.gradient : null;
      let selectionSettings = opts && 'selectionSettings' in opts ? opts.selectionSettings : null;
      let isVisibleInLegend = opts && 'isVisibleInLegend' in opts ? opts.isVisibleInLegend : null;
      let legendIconType = opts && 'legendIconType' in opts ? opts.legendIconType : null;
      let legendItemText = opts && 'legendItemText' in opts ? opts.legendItemText : null;
      let opacity = opts && 'opacity' in opts ? opts.opacity : null;
      let borderDrawMode = opts && 'borderDrawMode' in opts ? opts.borderDrawMode : null;
      this[borderDrawMode$] = (t2 = borderDrawMode, t2 == null ? charts.BorderDrawMode.top : t2);
      AreaSeries.__proto__.new.call(this, {xValueMapper: xValueMapper, yValueMapper: yValueMapper, sortFieldValueMapper: sortFieldValueMapper, pointColorMapper: pointColorMapper, dataLabelMapper: dataLabelMapper, dataSource: dataSource, xAxisName: xAxisName, yAxisName: yAxisName, name: name, color: color, trendlines: trendlines, markerSettings: markerSettings, dataLabelSettings: dataLabelSettings, isVisible: isVisible, emptyPointSettings: emptyPointSettings, enableTooltip: enableTooltip, dashArray: dashArray, animationDuration: animationDuration, borderColor: borderColor, borderWidth: borderWidth, gradient: gradient, selectionSettings: selectionSettings, legendItemText: legendItemText, isVisibleInLegend: isVisibleInLegend, legendIconType: legendIconType, sortingOrder: sortingOrder, opacity: opacity});
      ;
    }).prototype = AreaSeries.prototype;
    dart.addTypeTests(AreaSeries);
    AreaSeries.prototype[_is_AreaSeries_default] = true;
    dart.setMethodSignature(AreaSeries, () => ({
      __proto__: dart.getMethods(AreaSeries.__proto__),
      createSegment: dart.fnType(charts.ChartSegment, []),
      createSegments: dart.fnType(dart.void, []),
      addSegment: dart.fnType(charts.ChartSegment, [core.int, charts.SfCartesianChart, core.num]),
      drawSegment: dart.fnType(dart.void, [ui.Canvas, charts.ChartSegment]),
      customizeSegment: dart.fnType(dart.void, [charts.ChartSegment]),
      drawDataMarker: dart.fnType(dart.void, [core.int, ui.Canvas, ui.Paint, ui.Paint, core.double, core.double]),
      drawDataLabel: dart.fnType(dart.void, [core.int, ui.Canvas, core.String, core.double, core.double, core.int, charts.ChartTextStyle])
    }));
    dart.setLibraryUri(AreaSeries, "package:syncfusion_flutter_charts/charts.dart");
    dart.setFieldSignature(AreaSeries, () => ({
      __proto__: dart.getFields(AreaSeries.__proto__),
      borderDrawMode: dart.finalFieldType(charts.BorderDrawMode)
    }));
    return AreaSeries;
  });
  charts.AreaSeries = charts.AreaSeries$();
  dart.addTypeTests(charts.AreaSeries, _is_AreaSeries_default);
  const _is_StackedAreaSeries_default = Symbol('_is_StackedAreaSeries_default');
  const borderDrawMode$0 = dart.privateName(charts, "StackedAreaSeries.borderDrawMode");
  charts.StackedAreaSeries$ = dart.generic((T, D) => {
    class StackedAreaSeries extends charts._StackedSeriesBase$(T, D) {
      get borderDrawMode() {
        return this[borderDrawMode$0];
      }
      set borderDrawMode(value) {
        super.borderDrawMode = value;
      }
      createSegment() {
        return new charts.StackedAreaSegment.new();
      }
      createSegments() {
        this[_createSegment](this[_dataPoints$]);
      }
      [_createSegment](dataPoints) {
        let segment = charts.StackedAreaSegment._check(this.createSegment());
        this[_isRectSeries] = false;
        if (segment != null) {
          segment[_seriesIndex] = this[_chart][_chartSeries].visibleSeries[$indexOf](this);
          segment.series = this;
          if (dart.test(this[_chart][_chartState].widgetNeedUpdate) && this[_xAxis$][_zoomFactor] === 1 && this[_yAxis$][_zoomFactor] === 1 && this[_chart][_chartState].prevWidgetSeries != null && dart.test(this[_chart][_chartState].prevWidgetSeries[$isNotEmpty]) && dart.notNull(this[_chart][_chartState].prevWidgetSeries[$length]) - 1 >= dart.notNull(segment[_seriesIndex]) && this[_chart][_chartState].prevWidgetSeries[$_get](segment[_seriesIndex])[_seriesName] == segment.series[_seriesName]) {
            segment.oldSeries = charts.XyDataSeries._check(this[_chart][_chartState].prevWidgetSeries[$_get](segment[_seriesIndex]));
          }
          this.customizeSegment(segment);
          segment.strokePaint = segment.getStrokePaint();
          segment.fillPaint = segment.getFillPaint();
          this.segments[$add](segment);
        }
      }
      customizeSegment(segment) {
        segment.color = segment.series[_seriesColor];
        segment.strokeColor = segment.series.borderColor;
        segment.strokeWidth = segment.series.borderWidth;
      }
      drawDataMarker(index, canvas, fillPaint, strokePaint, pointX, pointY) {
        canvas.drawPath(this[_markerShapes][$_get](index), strokePaint);
        canvas.drawPath(this[_markerShapes][$_get](index), fillPaint);
      }
      drawDataLabel(index, canvas, dataLabel, pointX, pointY, angle, style) {
        return charts._drawText(canvas, dataLabel, new ui.Offset.new(pointX, pointY), style, angle);
      }
    }
    (StackedAreaSeries.new = function(opts) {
      let t2;
      let dataSource = opts && 'dataSource' in opts ? opts.dataSource : null;
      let xValueMapper = opts && 'xValueMapper' in opts ? opts.xValueMapper : null;
      let yValueMapper = opts && 'yValueMapper' in opts ? opts.yValueMapper : null;
      let sortFieldValueMapper = opts && 'sortFieldValueMapper' in opts ? opts.sortFieldValueMapper : null;
      let pointColorMapper = opts && 'pointColorMapper' in opts ? opts.pointColorMapper : null;
      let dataLabelMapper = opts && 'dataLabelMapper' in opts ? opts.dataLabelMapper : null;
      let sortingOrder = opts && 'sortingOrder' in opts ? opts.sortingOrder : null;
      let xAxisName = opts && 'xAxisName' in opts ? opts.xAxisName : null;
      let yAxisName = opts && 'yAxisName' in opts ? opts.yAxisName : null;
      let name = opts && 'name' in opts ? opts.name : null;
      let groupName = opts && 'groupName' in opts ? opts.groupName : null;
      let trendlines = opts && 'trendlines' in opts ? opts.trendlines : null;
      let color = opts && 'color' in opts ? opts.color : null;
      let markerSettings = opts && 'markerSettings' in opts ? opts.markerSettings : null;
      let emptyPointSettings = opts && 'emptyPointSettings' in opts ? opts.emptyPointSettings : null;
      let dataLabelSettings = opts && 'dataLabelSettings' in opts ? opts.dataLabelSettings : null;
      let isVisible = opts && 'isVisible' in opts ? opts.isVisible : null;
      let enableTooltip = opts && 'enableTooltip' in opts ? opts.enableTooltip : null;
      let dashArray = opts && 'dashArray' in opts ? opts.dashArray : null;
      let animationDuration = opts && 'animationDuration' in opts ? opts.animationDuration : null;
      let borderColor = opts && 'borderColor' in opts ? opts.borderColor : null;
      let borderWidth = opts && 'borderWidth' in opts ? opts.borderWidth : null;
      let gradient = opts && 'gradient' in opts ? opts.gradient : null;
      let selectionSettings = opts && 'selectionSettings' in opts ? opts.selectionSettings : null;
      let isVisibleInLegend = opts && 'isVisibleInLegend' in opts ? opts.isVisibleInLegend : null;
      let legendIconType = opts && 'legendIconType' in opts ? opts.legendIconType : null;
      let legendItemText = opts && 'legendItemText' in opts ? opts.legendItemText : null;
      let opacity = opts && 'opacity' in opts ? opts.opacity : null;
      let borderDrawMode = opts && 'borderDrawMode' in opts ? opts.borderDrawMode : null;
      this[borderDrawMode$0] = (t2 = borderDrawMode, t2 == null ? charts.BorderDrawMode.top : t2);
      StackedAreaSeries.__proto__.new.call(this, {xValueMapper: xValueMapper, yValueMapper: yValueMapper, sortFieldValueMapper: sortFieldValueMapper, pointColorMapper: pointColorMapper, dataLabelMapper: dataLabelMapper, dataSource: dataSource, xAxisName: xAxisName, yAxisName: yAxisName, name: name, color: color, trendlines: trendlines, markerSettings: markerSettings, dataLabelSettings: dataLabelSettings, isVisible: isVisible, emptyPointSettings: emptyPointSettings, enableTooltip: enableTooltip, dashArray: dashArray, animationDuration: animationDuration, borderColor: borderColor, borderWidth: borderWidth, gradient: gradient, selectionSettings: selectionSettings, legendItemText: legendItemText, isVisibleInLegend: isVisibleInLegend, legendIconType: legendIconType, sortingOrder: sortingOrder, groupName: groupName, opacity: opacity});
      ;
    }).prototype = StackedAreaSeries.prototype;
    dart.addTypeTests(StackedAreaSeries);
    StackedAreaSeries.prototype[_is_StackedAreaSeries_default] = true;
    dart.setMethodSignature(StackedAreaSeries, () => ({
      __proto__: dart.getMethods(StackedAreaSeries.__proto__),
      createSegment: dart.fnType(charts.ChartSegment, []),
      createSegments: dart.fnType(dart.void, []),
      [_createSegment]: dart.fnType(dart.void, [core.List$(charts.CartesianChartPoint)]),
      customizeSegment: dart.fnType(dart.void, [charts.ChartSegment]),
      drawDataMarker: dart.fnType(dart.void, [core.int, ui.Canvas, ui.Paint, ui.Paint, core.double, core.double]),
      drawDataLabel: dart.fnType(dart.void, [core.int, ui.Canvas, core.String, core.double, core.double, core.int, charts.ChartTextStyle])
    }));
    dart.setLibraryUri(StackedAreaSeries, "package:syncfusion_flutter_charts/charts.dart");
    dart.setFieldSignature(StackedAreaSeries, () => ({
      __proto__: dart.getFields(StackedAreaSeries.__proto__),
      borderDrawMode: dart.finalFieldType(charts.BorderDrawMode)
    }));
    return StackedAreaSeries;
  });
  charts.StackedAreaSeries = charts.StackedAreaSeries$();
  dart.addTypeTests(charts.StackedAreaSeries, _is_StackedAreaSeries_default);
  const _is_StackedArea100Series_default = Symbol('_is_StackedArea100Series_default');
  const borderDrawMode$1 = dart.privateName(charts, "StackedArea100Series.borderDrawMode");
  charts.StackedArea100Series$ = dart.generic((T, D) => {
    class StackedArea100Series extends charts._StackedSeriesBase$(T, D) {
      get borderDrawMode() {
        return this[borderDrawMode$1];
      }
      set borderDrawMode(value) {
        super.borderDrawMode = value;
      }
      createSegment() {
        return new charts.StackedArea100Segment.new();
      }
      createSegments() {
        this[_createSegment](this[_dataPoints$]);
      }
      [_createSegment](dataPoints) {
        let segment = charts.StackedArea100Segment._check(this.createSegment());
        this[_isRectSeries] = false;
        if (segment != null) {
          segment[_seriesIndex] = this[_chart][_chartSeries].visibleSeries[$indexOf](this);
          segment.series = this;
          if (dart.test(this[_chart][_chartState].widgetNeedUpdate) && this[_xAxis$][_zoomFactor] === 1 && this[_yAxis$][_zoomFactor] === 1 && this[_chart][_chartState].prevWidgetSeries != null && dart.test(this[_chart][_chartState].prevWidgetSeries[$isNotEmpty]) && dart.notNull(this[_chart][_chartState].prevWidgetSeries[$length]) - 1 >= dart.notNull(segment[_seriesIndex]) && this[_chart][_chartState].prevWidgetSeries[$_get](segment[_seriesIndex])[_seriesName] == segment.series[_seriesName]) {
            segment.oldSeries = charts.XyDataSeries._check(this[_chart][_chartState].prevWidgetSeries[$_get](segment[_seriesIndex]));
          }
          this.customizeSegment(segment);
          segment.strokePaint = segment.getStrokePaint();
          segment.fillPaint = segment.getFillPaint();
          this.segments[$add](segment);
        }
      }
      customizeSegment(segment) {
        segment.color = segment.series[_seriesColor];
        segment.strokeColor = segment.series.borderColor;
        segment.strokeWidth = segment.series.borderWidth;
      }
      drawDataMarker(index, canvas, fillPaint, strokePaint, pointX, pointY) {
        canvas.drawPath(this[_markerShapes][$_get](index), strokePaint);
        canvas.drawPath(this[_markerShapes][$_get](index), fillPaint);
      }
      drawDataLabel(index, canvas, dataLabel, pointX, pointY, angle, style) {
        return charts._drawText(canvas, dataLabel, new ui.Offset.new(pointX, pointY), style, angle);
      }
    }
    (StackedArea100Series.new = function(opts) {
      let t2;
      let dataSource = opts && 'dataSource' in opts ? opts.dataSource : null;
      let xValueMapper = opts && 'xValueMapper' in opts ? opts.xValueMapper : null;
      let yValueMapper = opts && 'yValueMapper' in opts ? opts.yValueMapper : null;
      let sortFieldValueMapper = opts && 'sortFieldValueMapper' in opts ? opts.sortFieldValueMapper : null;
      let pointColorMapper = opts && 'pointColorMapper' in opts ? opts.pointColorMapper : null;
      let dataLabelMapper = opts && 'dataLabelMapper' in opts ? opts.dataLabelMapper : null;
      let sortingOrder = opts && 'sortingOrder' in opts ? opts.sortingOrder : null;
      let xAxisName = opts && 'xAxisName' in opts ? opts.xAxisName : null;
      let yAxisName = opts && 'yAxisName' in opts ? opts.yAxisName : null;
      let name = opts && 'name' in opts ? opts.name : null;
      let groupName = opts && 'groupName' in opts ? opts.groupName : null;
      let color = opts && 'color' in opts ? opts.color : null;
      let markerSettings = opts && 'markerSettings' in opts ? opts.markerSettings : null;
      let trendlines = opts && 'trendlines' in opts ? opts.trendlines : null;
      let emptyPointSettings = opts && 'emptyPointSettings' in opts ? opts.emptyPointSettings : null;
      let dataLabelSettings = opts && 'dataLabelSettings' in opts ? opts.dataLabelSettings : null;
      let isVisible = opts && 'isVisible' in opts ? opts.isVisible : null;
      let enableTooltip = opts && 'enableTooltip' in opts ? opts.enableTooltip : null;
      let dashArray = opts && 'dashArray' in opts ? opts.dashArray : null;
      let animationDuration = opts && 'animationDuration' in opts ? opts.animationDuration : null;
      let borderColor = opts && 'borderColor' in opts ? opts.borderColor : null;
      let borderWidth = opts && 'borderWidth' in opts ? opts.borderWidth : null;
      let gradient = opts && 'gradient' in opts ? opts.gradient : null;
      let selectionSettings = opts && 'selectionSettings' in opts ? opts.selectionSettings : null;
      let isVisibleInLegend = opts && 'isVisibleInLegend' in opts ? opts.isVisibleInLegend : null;
      let legendIconType = opts && 'legendIconType' in opts ? opts.legendIconType : null;
      let legendItemText = opts && 'legendItemText' in opts ? opts.legendItemText : null;
      let opacity = opts && 'opacity' in opts ? opts.opacity : null;
      let borderDrawMode = opts && 'borderDrawMode' in opts ? opts.borderDrawMode : null;
      this[borderDrawMode$1] = (t2 = borderDrawMode, t2 == null ? charts.BorderDrawMode.top : t2);
      StackedArea100Series.__proto__.new.call(this, {xValueMapper: xValueMapper, yValueMapper: yValueMapper, sortFieldValueMapper: sortFieldValueMapper, pointColorMapper: pointColorMapper, dataLabelMapper: dataLabelMapper, dataSource: dataSource, xAxisName: xAxisName, yAxisName: yAxisName, name: name, color: color, trendlines: trendlines, markerSettings: markerSettings, dataLabelSettings: dataLabelSettings, isVisible: isVisible, emptyPointSettings: emptyPointSettings, enableTooltip: enableTooltip, dashArray: dashArray, animationDuration: animationDuration, borderColor: borderColor, borderWidth: borderWidth, gradient: gradient, selectionSettings: selectionSettings, legendItemText: legendItemText, isVisibleInLegend: isVisibleInLegend, legendIconType: legendIconType, sortingOrder: sortingOrder, groupName: groupName, opacity: opacity});
      ;
    }).prototype = StackedArea100Series.prototype;
    dart.addTypeTests(StackedArea100Series);
    StackedArea100Series.prototype[_is_StackedArea100Series_default] = true;
    dart.setMethodSignature(StackedArea100Series, () => ({
      __proto__: dart.getMethods(StackedArea100Series.__proto__),
      createSegment: dart.fnType(charts.ChartSegment, []),
      createSegments: dart.fnType(dart.void, []),
      [_createSegment]: dart.fnType(dart.void, [core.List$(charts.CartesianChartPoint)]),
      customizeSegment: dart.fnType(dart.void, [charts.ChartSegment]),
      drawDataMarker: dart.fnType(dart.void, [core.int, ui.Canvas, ui.Paint, ui.Paint, core.double, core.double]),
      drawDataLabel: dart.fnType(dart.void, [core.int, ui.Canvas, core.String, core.double, core.double, core.int, charts.ChartTextStyle])
    }));
    dart.setLibraryUri(StackedArea100Series, "package:syncfusion_flutter_charts/charts.dart");
    dart.setFieldSignature(StackedArea100Series, () => ({
      __proto__: dart.getFields(StackedArea100Series.__proto__),
      borderDrawMode: dart.finalFieldType(charts.BorderDrawMode)
    }));
    return StackedArea100Series;
  });
  charts.StackedArea100Series = charts.StackedArea100Series$();
  dart.addTypeTests(charts.StackedArea100Series, _is_StackedArea100Series_default);
  const _is_BarSeries_default = Symbol('_is_BarSeries_default');
  const trackColor$1 = dart.privateName(charts, "BarSeries.trackColor");
  const trackBorderColor$1 = dart.privateName(charts, "BarSeries.trackBorderColor");
  const trackBorderWidth$1 = dart.privateName(charts, "BarSeries.trackBorderWidth");
  const trackPadding$0 = dart.privateName(charts, "BarSeries.trackPadding");
  const spacing$1 = dart.privateName(charts, "BarSeries.spacing");
  const borderRadius$0 = dart.privateName(charts, "BarSeries.borderRadius");
  const isTrackVisible$0 = dart.privateName(charts, "BarSeries.isTrackVisible");
  charts.BarSeries$ = dart.generic((T, D) => {
    class BarSeries extends charts.XyDataSeries$(T, D) {
      get trackColor() {
        return this[trackColor$1];
      }
      set trackColor(value) {
        super.trackColor = value;
      }
      get trackBorderColor() {
        return this[trackBorderColor$1];
      }
      set trackBorderColor(value) {
        super.trackBorderColor = value;
      }
      get trackBorderWidth() {
        return this[trackBorderWidth$1];
      }
      set trackBorderWidth(value) {
        super.trackBorderWidth = value;
      }
      get trackPadding() {
        return this[trackPadding$0];
      }
      set trackPadding(value) {
        super.trackPadding = value;
      }
      get spacing() {
        return this[spacing$1];
      }
      set spacing(value) {
        super.spacing = value;
      }
      get borderRadius() {
        return this[borderRadius$0];
      }
      set borderRadius(value) {
        super.borderRadius = value;
      }
      get isTrackVisible() {
        return this[isTrackVisible$0];
      }
      set isTrackVisible(value) {
        super.isTrackVisible = value;
      }
      createSegment() {
        return new charts.BarSegment.new();
      }
      createSegments() {
      }
      addSegment(currentPoint, pointIndex, seriesIndex, sideBySideInfo, chart, origin, animateFactor) {
        let segment = charts.BarSegment._check(this.createSegment());
        segment.series = this;
        segment.chart = chart;
        segment[_seriesIndex] = seriesIndex;
        segment.currentSegmentIndex = pointIndex;
        segment.animationFactor = animateFactor;
        segment[_currentPoint] = currentPoint;
        if (dart.test(this[_chart][_chartState].widgetNeedUpdate) && !dart.test(this[_chart][_chartState][_isLegendToggled]) && this[_chart][_chartState].prevWidgetSeries != null && dart.test(this[_chart][_chartState].prevWidgetSeries[$isNotEmpty]) && dart.notNull(this[_chart][_chartState].prevWidgetSeries[$length]) - 1 >= dart.notNull(segment[_seriesIndex]) && this[_chart][_chartState].prevWidgetSeries[$_get](segment[_seriesIndex])[_seriesName] == segment.series[_seriesName]) {
          segment.oldSeries = charts.XyDataSeries._check(this[_chart][_chartState].prevWidgetSeries[$_get](segment[_seriesIndex]));
          segment[_oldPoint] = dart.test(segment.oldSeries.segments[$isNotEmpty]) && charts.BarSegment.is(segment.oldSeries.segments[$_get](0)) && dart.notNull(segment.oldSeries[_dataPoints$][$length]) - 1 >= dart.notNull(pointIndex) ? segment.oldSeries[_dataPoints$][$_get](pointIndex) : null;
        } else if (dart.test(this[_chart][_chartState][_isLegendToggled]) && this[_chart][_chartState].segments != null && dart.test(this[_chart][_chartState].segments[$isNotEmpty])) {
          segment[_oldSeriesVisible] = this[_chart][_chartState][_oldSeriesVisible][$_get](segment[_seriesIndex]);
          for (let i = 0; i < dart.notNull(this[_chart][_chartState].segments[$length]); i = i + 1) {
            let oldSegment = this[_chart][_chartState].segments[$_get](i);
            if (oldSegment.currentSegmentIndex == segment.currentSegmentIndex && oldSegment[_seriesIndex] == segment[_seriesIndex]) {
              segment[_oldRegion] = oldSegment.segmentRect.outerRect;
            }
          }
        }
        segment.path = charts._dashedBorder(currentPoint, this.borderWidth);
        if (this.borderRadius != null) {
          segment.segmentRect = charts.getRRectFromRect(currentPoint.region, this.borderRadius);
        }
        if (dart.test(this.isTrackVisible)) {
          if (this.borderRadius != null) {
            segment[_trackBarRect] = charts.getRRectFromRect(currentPoint.trackerRectRegion, this.borderRadius);
          }
        }
        this.customizeSegment(segment);
        this.segments[$add](segment);
        return segment;
      }
      drawSegment(canvas, segment) {
        segment.onPaint(canvas);
      }
      customizeSegment(segment) {
        let barSegment = charts.BarSegment._check(segment);
        barSegment.color = segment.series[_seriesColor];
        barSegment.strokeColor = segment.series.borderColor;
        barSegment.strokeWidth = segment.series.borderWidth;
        barSegment.strokePaint = barSegment.getStrokePaint();
        barSegment.fillPaint = barSegment.getFillPaint();
        barSegment[_trackerFillPaint] = barSegment[_getTrackerFillPaint]();
        barSegment[_trackerStrokePaint] = barSegment[_getTrackerStrokePaint]();
      }
      drawDataMarker(index, canvas, fillPaint, strokePaint, pointX, pointY) {
        let size = new ui.Size.new(this.markerSettings.width, this.markerSettings.height);
        let markerPath = charts._getMarkerShapes(this.markerSettings.shape, new ui.Offset.new(pointX, pointY), size, this);
        canvas.drawPath(markerPath, fillPaint);
        canvas.drawPath(markerPath, strokePaint);
      }
      drawDataLabel(index, canvas, dataLabel, pointX, pointY, angle, style) {
        return charts._drawText(canvas, dataLabel, new ui.Offset.new(pointX, pointY), style, angle);
      }
    }
    (BarSeries.new = function(opts) {
      let t2, t2$, t2$0, t2$1, t2$2, t2$3, t2$4;
      let dataSource = opts && 'dataSource' in opts ? opts.dataSource : null;
      let xValueMapper = opts && 'xValueMapper' in opts ? opts.xValueMapper : null;
      let yValueMapper = opts && 'yValueMapper' in opts ? opts.yValueMapper : null;
      let sortFieldValueMapper = opts && 'sortFieldValueMapper' in opts ? opts.sortFieldValueMapper : null;
      let pointColorMapper = opts && 'pointColorMapper' in opts ? opts.pointColorMapper : null;
      let dataLabelMapper = opts && 'dataLabelMapper' in opts ? opts.dataLabelMapper : null;
      let sortingOrder = opts && 'sortingOrder' in opts ? opts.sortingOrder : null;
      let isTrackVisible = opts && 'isTrackVisible' in opts ? opts.isTrackVisible : false;
      let xAxisName = opts && 'xAxisName' in opts ? opts.xAxisName : null;
      let yAxisName = opts && 'yAxisName' in opts ? opts.yAxisName : null;
      let name = opts && 'name' in opts ? opts.name : null;
      let color = opts && 'color' in opts ? opts.color : null;
      let width = opts && 'width' in opts ? opts.width : null;
      let spacing = opts && 'spacing' in opts ? opts.spacing : null;
      let markerSettings = opts && 'markerSettings' in opts ? opts.markerSettings : null;
      let emptyPointSettings = opts && 'emptyPointSettings' in opts ? opts.emptyPointSettings : null;
      let dataLabelSettings = opts && 'dataLabelSettings' in opts ? opts.dataLabelSettings : null;
      let isVisible = opts && 'isVisible' in opts ? opts.isVisible : null;
      let gradient = opts && 'gradient' in opts ? opts.gradient : null;
      let borderRadius = opts && 'borderRadius' in opts ? opts.borderRadius : null;
      let enableTooltip = opts && 'enableTooltip' in opts ? opts.enableTooltip : null;
      let animationDuration = opts && 'animationDuration' in opts ? opts.animationDuration : null;
      let trackColor = opts && 'trackColor' in opts ? opts.trackColor : null;
      let trackBorderColor = opts && 'trackBorderColor' in opts ? opts.trackBorderColor : null;
      let trackBorderWidth = opts && 'trackBorderWidth' in opts ? opts.trackBorderWidth : null;
      let trackPadding = opts && 'trackPadding' in opts ? opts.trackPadding : null;
      let trendlines = opts && 'trendlines' in opts ? opts.trendlines : null;
      let borderColor = opts && 'borderColor' in opts ? opts.borderColor : null;
      let borderWidth = opts && 'borderWidth' in opts ? opts.borderWidth : null;
      let selectionSettings = opts && 'selectionSettings' in opts ? opts.selectionSettings : null;
      let isVisibleInLegend = opts && 'isVisibleInLegend' in opts ? opts.isVisibleInLegend : null;
      let legendIconType = opts && 'legendIconType' in opts ? opts.legendIconType : null;
      let legendItemText = opts && 'legendItemText' in opts ? opts.legendItemText : null;
      let opacity = opts && 'opacity' in opts ? opts.opacity : null;
      let dashArray = opts && 'dashArray' in opts ? opts.dashArray : null;
      let initialSelectedDataIndexes = opts && 'initialSelectedDataIndexes' in opts ? opts.initialSelectedDataIndexes : null;
      this[_rectPosition] = null;
      this[_rectCount] = null;
      this[isTrackVisible$0] = isTrackVisible;
      this[trackColor$1] = (t2 = trackColor, t2 == null ? colors$.Colors.grey : t2);
      this[trackBorderColor$1] = (t2$ = trackBorderColor, t2$ == null ? colors$.Colors.transparent : t2$);
      this[trackBorderWidth$1] = (t2$0 = trackBorderWidth, t2$0 == null ? 1.0 : t2$0);
      this[trackPadding$0] = (t2$1 = trackPadding, t2$1 == null ? 0.0 : t2$1);
      this[spacing$1] = (t2$2 = spacing, t2$2 == null ? 0.0 : t2$2);
      this[borderRadius$0] = (t2$3 = borderRadius, t2$3 == null ? C547 || CT.C547 : t2$3);
      BarSeries.__proto__.new.call(this, {name: name, xValueMapper: xValueMapper, yValueMapper: yValueMapper, sortFieldValueMapper: sortFieldValueMapper, pointColorMapper: pointColorMapper, dataLabelMapper: dataLabelMapper, dataSource: dataSource, xAxisName: xAxisName, yAxisName: yAxisName, color: color, trendlines: trendlines, width: (t2$4 = width, t2$4 == null ? 0.7 : t2$4), markerSettings: markerSettings, dataLabelSettings: dataLabelSettings, emptyPointSettings: emptyPointSettings, isVisible: isVisible, gradient: gradient, enableTooltip: enableTooltip, animationDuration: animationDuration, borderColor: borderColor, borderWidth: borderWidth, selectionSettings: selectionSettings, legendItemText: legendItemText, isVisibleInLegend: isVisibleInLegend, legendIconType: legendIconType, sortingOrder: sortingOrder, opacity: opacity, initialSelectedDataIndexes: initialSelectedDataIndexes, dashArray: dashArray});
      ;
    }).prototype = BarSeries.prototype;
    dart.addTypeTests(BarSeries);
    BarSeries.prototype[_is_BarSeries_default] = true;
    dart.setMethodSignature(BarSeries, () => ({
      __proto__: dart.getMethods(BarSeries.__proto__),
      createSegment: dart.fnType(charts.ChartSegment, []),
      createSegments: dart.fnType(dart.void, []),
      addSegment: dart.fnType(charts.ChartSegment, [charts.CartesianChartPoint, core.int, core.int, charts._VisibleRange, charts.SfCartesianChart, core.num, core.num]),
      drawSegment: dart.fnType(dart.void, [ui.Canvas, charts.ChartSegment]),
      customizeSegment: dart.fnType(dart.void, [charts.ChartSegment]),
      drawDataMarker: dart.fnType(dart.void, [core.int, ui.Canvas, ui.Paint, ui.Paint, core.double, core.double]),
      drawDataLabel: dart.fnType(dart.void, [core.int, ui.Canvas, core.String, core.double, core.double, core.int, charts.ChartTextStyle])
    }));
    dart.setLibraryUri(BarSeries, "package:syncfusion_flutter_charts/charts.dart");
    dart.setFieldSignature(BarSeries, () => ({
      __proto__: dart.getFields(BarSeries.__proto__),
      [_rectPosition]: dart.fieldType(core.num),
      [_rectCount]: dart.fieldType(core.num),
      trackColor: dart.finalFieldType(ui.Color),
      trackBorderColor: dart.finalFieldType(ui.Color),
      trackBorderWidth: dart.finalFieldType(core.double),
      trackPadding: dart.finalFieldType(core.double),
      spacing: dart.finalFieldType(core.double),
      borderRadius: dart.finalFieldType(border_radius.BorderRadius),
      isTrackVisible: dart.finalFieldType(core.bool)
    }));
    return BarSeries;
  });
  charts.BarSeries = charts.BarSeries$();
  dart.addTypeTests(charts.BarSeries, _is_BarSeries_default);
  const _is_BubbleSeries_default = Symbol('_is_BubbleSeries_default');
  const maximumRadius$ = dart.privateName(charts, "BubbleSeries.maximumRadius");
  const minimumRadius$ = dart.privateName(charts, "BubbleSeries.minimumRadius");
  charts.BubbleSeries$ = dart.generic((T, D) => {
    class BubbleSeries extends charts.XyDataSeries$(T, D) {
      get maximumRadius() {
        return this[maximumRadius$];
      }
      set maximumRadius(value) {
        super.maximumRadius = value;
      }
      get minimumRadius() {
        return this[minimumRadius$];
      }
      set minimumRadius(value) {
        super.minimumRadius = value;
      }
      createSegment() {
        return new charts.BubbleSegment.new();
      }
      createSegments() {
      }
      drawSegment(canvas, segment) {
        segment.onPaint(canvas);
      }
      addSegment(currentPoint, pointIndex, seriesIndex, animateFactor) {
        let segment = charts.BubbleSegment._check(this.createSegment());
        this[_isRectSeries] = false;
        if (segment != null) {
          segment[_seriesIndex] = seriesIndex;
          segment.currentSegmentIndex = pointIndex;
          segment[_seriesIndex] = seriesIndex;
          segment.series = this;
          segment.animationFactor = animateFactor;
          segment[_currentPoint] = currentPoint;
          if (dart.test(this[_chart][_chartState].widgetNeedUpdate) && this[_chart][_chartState].prevWidgetSeries != null && dart.test(this[_chart][_chartState].prevWidgetSeries[$isNotEmpty]) && dart.notNull(this[_chart][_chartState].prevWidgetSeries[$length]) - 1 >= dart.notNull(segment[_seriesIndex]) && this[_chart][_chartState].prevWidgetSeries[$_get](segment[_seriesIndex])[_seriesName] == segment.series[_seriesName]) {
            segment.oldSeries = charts.XyDataSeries._check(this[_chart][_chartState].prevWidgetSeries[$_get](segment[_seriesIndex]));
            segment[_oldPoint] = dart.notNull(segment.oldSeries[_dataPoints$][$length]) - 1 >= dart.notNull(pointIndex) ? segment.oldSeries[_dataPoints$][$_get](pointIndex) : null;
          }
          segment.calculateSegmentPoints();
          this.customizeSegment(segment);
          segment.strokePaint = segment.getStrokePaint();
          segment.fillPaint = segment.getFillPaint();
          this.segments[$add](segment);
        }
        return segment;
      }
      customizeSegment(segment) {
        let t2;
        let bubbleSegment = charts.BubbleSegment._check(segment);
        bubbleSegment.color = bubbleSegment.series[_seriesColor];
        bubbleSegment.strokeColor = (t2 = bubbleSegment.series.borderColor, t2 == null ? bubbleSegment.series[_seriesColor] : t2);
        bubbleSegment.strokeWidth = bubbleSegment.series.borderWidth;
        bubbleSegment.strokePaint = bubbleSegment.getStrokePaint();
        bubbleSegment.fillPaint = bubbleSegment.getFillPaint();
      }
      drawDataMarker(index, canvas, fillPaint, strokePaint, pointX, pointY) {
        let size = new ui.Size.new(this.markerSettings.width, this.markerSettings.height);
        let markerPath = charts._getMarkerShapes(this.markerSettings.shape, new ui.Offset.new(pointX, pointY), size, this);
        canvas.drawPath(markerPath, fillPaint);
        canvas.drawPath(markerPath, strokePaint);
      }
      drawDataLabel(index, canvas, dataLabel, pointX, pointY, angle, style) {
        return charts._drawText(canvas, dataLabel, new ui.Offset.new(pointX, pointY), style, angle);
      }
    }
    (BubbleSeries.new = function(opts) {
      let t2, t2$;
      let dataSource = opts && 'dataSource' in opts ? opts.dataSource : null;
      let xValueMapper = opts && 'xValueMapper' in opts ? opts.xValueMapper : null;
      let yValueMapper = opts && 'yValueMapper' in opts ? opts.yValueMapper : null;
      let sortFieldValueMapper = opts && 'sortFieldValueMapper' in opts ? opts.sortFieldValueMapper : null;
      let sizeValueMapper = opts && 'sizeValueMapper' in opts ? opts.sizeValueMapper : null;
      let pointColorMapper = opts && 'pointColorMapper' in opts ? opts.pointColorMapper : null;
      let dataLabelMapper = opts && 'dataLabelMapper' in opts ? opts.dataLabelMapper : null;
      let xAxisName = opts && 'xAxisName' in opts ? opts.xAxisName : null;
      let yAxisName = opts && 'yAxisName' in opts ? opts.yAxisName : null;
      let color = opts && 'color' in opts ? opts.color : null;
      let markerSettings = opts && 'markerSettings' in opts ? opts.markerSettings : null;
      let trendlines = opts && 'trendlines' in opts ? opts.trendlines : null;
      let minimumRadius = opts && 'minimumRadius' in opts ? opts.minimumRadius : null;
      let maximumRadius = opts && 'maximumRadius' in opts ? opts.maximumRadius : null;
      let emptyPointSettings = opts && 'emptyPointSettings' in opts ? opts.emptyPointSettings : null;
      let dataLabelSettings = opts && 'dataLabelSettings' in opts ? opts.dataLabelSettings : null;
      let isVisible = opts && 'isVisible' in opts ? opts.isVisible : null;
      let name = opts && 'name' in opts ? opts.name : null;
      let enableTooltip = opts && 'enableTooltip' in opts ? opts.enableTooltip : null;
      let dashArray = opts && 'dashArray' in opts ? opts.dashArray : null;
      let animationDuration = opts && 'animationDuration' in opts ? opts.animationDuration : null;
      let borderColor = opts && 'borderColor' in opts ? opts.borderColor : null;
      let borderWidth = opts && 'borderWidth' in opts ? opts.borderWidth : null;
      let gradient = opts && 'gradient' in opts ? opts.gradient : null;
      let selectionSettings = opts && 'selectionSettings' in opts ? opts.selectionSettings : null;
      let isVisibleInLegend = opts && 'isVisibleInLegend' in opts ? opts.isVisibleInLegend : null;
      let legendIconType = opts && 'legendIconType' in opts ? opts.legendIconType : null;
      let sortingOrder = opts && 'sortingOrder' in opts ? opts.sortingOrder : null;
      let legendItemText = opts && 'legendItemText' in opts ? opts.legendItemText : null;
      let opacity = opts && 'opacity' in opts ? opts.opacity : null;
      let initialSelectedDataIndexes = opts && 'initialSelectedDataIndexes' in opts ? opts.initialSelectedDataIndexes : null;
      this[_maxSize] = null;
      this[_minSize] = null;
      this[minimumRadius$] = (t2 = minimumRadius, t2 == null ? 3 : t2);
      this[maximumRadius$] = (t2$ = maximumRadius, t2$ == null ? 10 : t2$);
      BubbleSeries.__proto__.new.call(this, {name: name, xValueMapper: xValueMapper, yValueMapper: yValueMapper, sortFieldValueMapper: sortFieldValueMapper, pointColorMapper: pointColorMapper, dataLabelMapper: dataLabelMapper, sizeValueMapper: sizeValueMapper, dataSource: dataSource, trendlines: trendlines, xAxisName: xAxisName, yAxisName: yAxisName, color: color, markerSettings: markerSettings, emptyPointSettings: emptyPointSettings, dataLabelSettings: dataLabelSettings, isVisible: isVisible, enableTooltip: enableTooltip, dashArray: dashArray, animationDuration: animationDuration, borderColor: borderColor, borderWidth: borderWidth, gradient: gradient, selectionSettings: selectionSettings, legendItemText: legendItemText, isVisibleInLegend: isVisibleInLegend, legendIconType: legendIconType, sortingOrder: sortingOrder, opacity: opacity, initialSelectedDataIndexes: initialSelectedDataIndexes});
      ;
    }).prototype = BubbleSeries.prototype;
    dart.addTypeTests(BubbleSeries);
    BubbleSeries.prototype[_is_BubbleSeries_default] = true;
    dart.setMethodSignature(BubbleSeries, () => ({
      __proto__: dart.getMethods(BubbleSeries.__proto__),
      createSegment: dart.fnType(charts.ChartSegment, []),
      createSegments: dart.fnType(dart.void, []),
      drawSegment: dart.fnType(dart.void, [ui.Canvas, charts.ChartSegment]),
      addSegment: dart.fnType(charts.ChartSegment, [charts.CartesianChartPoint, core.int, core.int, core.num]),
      customizeSegment: dart.fnType(dart.void, [charts.ChartSegment]),
      drawDataMarker: dart.fnType(dart.void, [core.int, ui.Canvas, ui.Paint, ui.Paint, core.double, core.double]),
      drawDataLabel: dart.fnType(dart.void, [core.int, ui.Canvas, core.String, core.double, core.double, core.int, charts.ChartTextStyle])
    }));
    dart.setLibraryUri(BubbleSeries, "package:syncfusion_flutter_charts/charts.dart");
    dart.setFieldSignature(BubbleSeries, () => ({
      __proto__: dart.getFields(BubbleSeries.__proto__),
      maximumRadius: dart.finalFieldType(core.num),
      minimumRadius: dart.finalFieldType(core.num),
      [_maxSize]: dart.fieldType(core.num),
      [_minSize]: dart.fieldType(core.num)
    }));
    return BubbleSeries;
  });
  charts.BubbleSeries = charts.BubbleSeries$();
  dart.addTypeTests(charts.BubbleSeries, _is_BubbleSeries_default);
  const _is_ColumnSeries_default = Symbol('_is_ColumnSeries_default');
  const trackColor$2 = dart.privateName(charts, "ColumnSeries.trackColor");
  const trackBorderColor$2 = dart.privateName(charts, "ColumnSeries.trackBorderColor");
  const trackBorderWidth$2 = dart.privateName(charts, "ColumnSeries.trackBorderWidth");
  const trackPadding$1 = dart.privateName(charts, "ColumnSeries.trackPadding");
  const spacing$2 = dart.privateName(charts, "ColumnSeries.spacing");
  const isTrackVisible$1 = dart.privateName(charts, "ColumnSeries.isTrackVisible");
  const borderRadius$1 = dart.privateName(charts, "ColumnSeries.borderRadius");
  charts.ColumnSeries$ = dart.generic((T, D) => {
    class ColumnSeries extends charts.XyDataSeries$(T, D) {
      get trackColor() {
        return this[trackColor$2];
      }
      set trackColor(value) {
        super.trackColor = value;
      }
      get trackBorderColor() {
        return this[trackBorderColor$2];
      }
      set trackBorderColor(value) {
        super.trackBorderColor = value;
      }
      get trackBorderWidth() {
        return this[trackBorderWidth$2];
      }
      set trackBorderWidth(value) {
        super.trackBorderWidth = value;
      }
      get trackPadding() {
        return this[trackPadding$1];
      }
      set trackPadding(value) {
        super.trackPadding = value;
      }
      get spacing() {
        return this[spacing$2];
      }
      set spacing(value) {
        super.spacing = value;
      }
      get isTrackVisible() {
        return this[isTrackVisible$1];
      }
      set isTrackVisible(value) {
        super.isTrackVisible = value;
      }
      get borderRadius() {
        return this[borderRadius$1];
      }
      set borderRadius(value) {
        super.borderRadius = value;
      }
      createSegment() {
        return new charts.ColumnSegment.new();
      }
      createSegments() {
      }
      addSegment(currentPoint, pointIndex, sideBySideInfo, seriesIndex, animateFactor) {
        let t2, t2$;
        let segment = charts.ColumnSegment._check(this.createSegment());
        segment.series = this;
        segment.chart = this[_chart];
        segment[_seriesIndex] = seriesIndex;
        segment.currentSegmentIndex = pointIndex;
        segment.animationFactor = animateFactor;
        let origin = math.max(core.num, core.num._check(this[_yAxis$][_visibleRange].minimum), 0);
        currentPoint.region = charts._calculateRectangle(core.num._check(dart.dsend(currentPoint.xValue, '+', [sideBySideInfo.minimum])), core.num._check(currentPoint.yValue), core.num._check(dart.dsend(currentPoint.xValue, '+', [sideBySideInfo.maximum])), math.max(core.num, core.num._check(this[_yAxis$][_visibleRange].minimum), 0), this, this[_chart]);
        segment[_currentPoint] = currentPoint;
        if (dart.test(this[_chart][_chartState].widgetNeedUpdate) && !dart.test(this[_chart][_chartState][_isLegendToggled]) && this[_chart][_chartState].prevWidgetSeries != null && dart.test(this[_chart][_chartState].prevWidgetSeries[$isNotEmpty]) && dart.notNull(this[_chart][_chartState].prevWidgetSeries[$length]) - 1 >= dart.notNull(segment[_seriesIndex]) && this[_chart][_chartState].prevWidgetSeries[$_get](segment[_seriesIndex])[_seriesName] == segment.series[_seriesName]) {
          segment.oldSeries = charts.XyDataSeries._check(this[_chart][_chartState].prevWidgetSeries[$_get](segment[_seriesIndex]));
          segment[_oldPoint] = dart.test(segment.oldSeries.segments[$isNotEmpty]) && charts.ColumnSegment.is(segment.oldSeries.segments[$_get](0)) && dart.notNull(segment.oldSeries[_dataPoints$][$length]) - 1 >= dart.notNull(pointIndex) ? segment.oldSeries[_dataPoints$][$_get](pointIndex) : null;
        } else if (dart.test(this[_chart][_chartState][_isLegendToggled]) && this[_chart][_chartState].segments != null && dart.test(this[_chart][_chartState].segments[$isNotEmpty])) {
          segment[_oldSeriesVisible] = this[_chart][_chartState][_oldSeriesVisible][$_get](segment[_seriesIndex]);
          for (let i = 0; i < dart.notNull(this[_chart][_chartState].segments[$length]); i = i + 1) {
            let oldSegment = this[_chart][_chartState].segments[$_get](i);
            if (oldSegment.currentSegmentIndex == segment.currentSegmentIndex && oldSegment[_seriesIndex] == segment[_seriesIndex]) {
              segment[_oldRegion] = oldSegment.segmentRect.outerRect;
            }
          }
        }
        segment.path = charts._dashedBorder(currentPoint, this.borderWidth);
        if (this.borderRadius != null) {
          segment.segmentRect = charts.getRRectFromRect(currentPoint.region, this.borderRadius);
        }
        if (dart.test(this.isTrackVisible)) {
          currentPoint.trackerRectRegion = charts._calculateShadowRectangle(core.num._check(dart.dsend(currentPoint.xValue, '+', [sideBySideInfo.minimum])), core.num._check(currentPoint.yValue), core.num._check(dart.dsend(currentPoint.xValue, '+', [sideBySideInfo.maximum])), origin, this, this[_chart], new ui.Offset.new((t2 = segment.series[_xAxis$], t2 == null ? null : t2.plotOffset), (t2$ = segment.series[_yAxis$], t2$ == null ? null : t2$.plotOffset)));
          if (this.borderRadius != null) {
            segment[_trackRect] = charts.getRRectFromRect(currentPoint.trackerRectRegion, this.borderRadius);
          }
        }
        this.customizeSegment(segment);
        this.segments[$add](segment);
        return segment;
      }
      drawSegment(canvas, segment) {
        segment.onPaint(canvas);
      }
      customizeSegment(segment) {
        let t2;
        let columnSegment = charts.ColumnSegment._check(segment);
        columnSegment.color = (t2 = columnSegment[_currentPoint].pointColorMapper, t2 == null ? segment.series[_seriesColor] : t2);
        columnSegment.strokeColor = segment.series.borderColor;
        columnSegment.strokeWidth = segment.series.borderWidth;
        columnSegment.strokePaint = columnSegment.getStrokePaint();
        columnSegment.fillPaint = columnSegment.getFillPaint();
        columnSegment[_trackerFillPaint] = columnSegment[_getTrackerFillPaint]();
        columnSegment[_trackerStrokePaint] = columnSegment[_getTrackerStrokePaint]();
      }
      drawDataMarker(index, canvas, fillPaint, strokePaint, pointX, pointY) {
        let size = new ui.Size.new(this.markerSettings.width, this.markerSettings.height);
        let markerPath = charts._getMarkerShapes(this.markerSettings.shape, new ui.Offset.new(pointX, pointY), size, this);
        canvas.drawPath(markerPath, fillPaint);
        canvas.drawPath(markerPath, strokePaint);
      }
      drawDataLabel(index, canvas, dataLabel, pointX, pointY, angle, style) {
        return charts._drawText(canvas, dataLabel, new ui.Offset.new(pointX, pointY), style, angle);
      }
    }
    (ColumnSeries.new = function(opts) {
      let t2, t2$, t2$0, t2$1, t2$2, t2$3, t2$4;
      let dataSource = opts && 'dataSource' in opts ? opts.dataSource : null;
      let xValueMapper = opts && 'xValueMapper' in opts ? opts.xValueMapper : null;
      let yValueMapper = opts && 'yValueMapper' in opts ? opts.yValueMapper : null;
      let sortFieldValueMapper = opts && 'sortFieldValueMapper' in opts ? opts.sortFieldValueMapper : null;
      let pointColorMapper = opts && 'pointColorMapper' in opts ? opts.pointColorMapper : null;
      let dataLabelMapper = opts && 'dataLabelMapper' in opts ? opts.dataLabelMapper : null;
      let sortingOrder = opts && 'sortingOrder' in opts ? opts.sortingOrder : null;
      let isTrackVisible = opts && 'isTrackVisible' in opts ? opts.isTrackVisible : false;
      let xAxisName = opts && 'xAxisName' in opts ? opts.xAxisName : null;
      let yAxisName = opts && 'yAxisName' in opts ? opts.yAxisName : null;
      let name = opts && 'name' in opts ? opts.name : null;
      let color = opts && 'color' in opts ? opts.color : null;
      let width = opts && 'width' in opts ? opts.width : null;
      let spacing = opts && 'spacing' in opts ? opts.spacing : null;
      let markerSettings = opts && 'markerSettings' in opts ? opts.markerSettings : null;
      let trendlines = opts && 'trendlines' in opts ? opts.trendlines : null;
      let emptyPointSettings = opts && 'emptyPointSettings' in opts ? opts.emptyPointSettings : null;
      let dataLabelSettings = opts && 'dataLabelSettings' in opts ? opts.dataLabelSettings : null;
      let isVisible = opts && 'isVisible' in opts ? opts.isVisible : null;
      let gradient = opts && 'gradient' in opts ? opts.gradient : null;
      let borderRadius = opts && 'borderRadius' in opts ? opts.borderRadius : null;
      let enableTooltip = opts && 'enableTooltip' in opts ? opts.enableTooltip : null;
      let animationDuration = opts && 'animationDuration' in opts ? opts.animationDuration : null;
      let trackColor = opts && 'trackColor' in opts ? opts.trackColor : null;
      let trackBorderColor = opts && 'trackBorderColor' in opts ? opts.trackBorderColor : null;
      let trackBorderWidth = opts && 'trackBorderWidth' in opts ? opts.trackBorderWidth : null;
      let trackPadding = opts && 'trackPadding' in opts ? opts.trackPadding : null;
      let borderColor = opts && 'borderColor' in opts ? opts.borderColor : null;
      let borderWidth = opts && 'borderWidth' in opts ? opts.borderWidth : null;
      let selectionSettings = opts && 'selectionSettings' in opts ? opts.selectionSettings : null;
      let isVisibleInLegend = opts && 'isVisibleInLegend' in opts ? opts.isVisibleInLegend : null;
      let legendIconType = opts && 'legendIconType' in opts ? opts.legendIconType : null;
      let legendItemText = opts && 'legendItemText' in opts ? opts.legendItemText : null;
      let opacity = opts && 'opacity' in opts ? opts.opacity : null;
      let dashArray = opts && 'dashArray' in opts ? opts.dashArray : null;
      let initialSelectedDataIndexes = opts && 'initialSelectedDataIndexes' in opts ? opts.initialSelectedDataIndexes : null;
      this[_rectPosition] = null;
      this[_rectCount] = null;
      this[isTrackVisible$1] = isTrackVisible;
      this[trackColor$2] = (t2 = trackColor, t2 == null ? colors$.Colors.grey : t2);
      this[trackBorderColor$2] = (t2$ = trackBorderColor, t2$ == null ? colors$.Colors.transparent : t2$);
      this[trackBorderWidth$2] = (t2$0 = trackBorderWidth, t2$0 == null ? 1.0 : t2$0);
      this[trackPadding$1] = (t2$1 = trackPadding, t2$1 == null ? 0.0 : t2$1);
      this[spacing$2] = (t2$2 = spacing, t2$2 == null ? 0.0 : t2$2);
      this[borderRadius$1] = (t2$3 = borderRadius, t2$3 == null ? C547 || CT.C547 : t2$3);
      ColumnSeries.__proto__.new.call(this, {name: name, xValueMapper: xValueMapper, yValueMapper: yValueMapper, sortFieldValueMapper: sortFieldValueMapper, pointColorMapper: pointColorMapper, dataLabelMapper: dataLabelMapper, dataSource: dataSource, xAxisName: xAxisName, yAxisName: yAxisName, trendlines: trendlines, color: color, width: (t2$4 = width, t2$4 == null ? 0.7 : t2$4), markerSettings: markerSettings, dataLabelSettings: dataLabelSettings, isVisible: isVisible, gradient: gradient, emptyPointSettings: emptyPointSettings, enableTooltip: enableTooltip, animationDuration: animationDuration, borderColor: borderColor, borderWidth: borderWidth, selectionSettings: selectionSettings, legendItemText: legendItemText, isVisibleInLegend: isVisibleInLegend, legendIconType: legendIconType, sortingOrder: sortingOrder, opacity: opacity, dashArray: dashArray, initialSelectedDataIndexes: initialSelectedDataIndexes});
      ;
    }).prototype = ColumnSeries.prototype;
    dart.addTypeTests(ColumnSeries);
    ColumnSeries.prototype[_is_ColumnSeries_default] = true;
    dart.setMethodSignature(ColumnSeries, () => ({
      __proto__: dart.getMethods(ColumnSeries.__proto__),
      createSegment: dart.fnType(charts.ChartSegment, []),
      createSegments: dart.fnType(dart.void, []),
      addSegment: dart.fnType(charts.ChartSegment, [charts.CartesianChartPoint, core.int, charts._VisibleRange, core.int, core.num]),
      drawSegment: dart.fnType(dart.void, [ui.Canvas, charts.ChartSegment]),
      customizeSegment: dart.fnType(dart.void, [charts.ChartSegment]),
      drawDataMarker: dart.fnType(dart.void, [core.int, ui.Canvas, ui.Paint, ui.Paint, core.double, core.double]),
      drawDataLabel: dart.fnType(dart.void, [core.int, ui.Canvas, core.String, core.double, core.double, core.int, charts.ChartTextStyle])
    }));
    dart.setLibraryUri(ColumnSeries, "package:syncfusion_flutter_charts/charts.dart");
    dart.setFieldSignature(ColumnSeries, () => ({
      __proto__: dart.getFields(ColumnSeries.__proto__),
      [_rectPosition]: dart.fieldType(core.num),
      [_rectCount]: dart.fieldType(core.num),
      trackColor: dart.finalFieldType(ui.Color),
      trackBorderColor: dart.finalFieldType(ui.Color),
      trackBorderWidth: dart.finalFieldType(core.double),
      trackPadding: dart.finalFieldType(core.double),
      spacing: dart.finalFieldType(core.double),
      isTrackVisible: dart.finalFieldType(core.bool),
      borderRadius: dart.finalFieldType(border_radius.BorderRadius)
    }));
    return ColumnSeries;
  });
  charts.ColumnSeries = charts.ColumnSeries$();
  dart.addTypeTests(charts.ColumnSeries, _is_ColumnSeries_default);
  const _is_FastLineSeries_default = Symbol('_is_FastLineSeries_default');
  charts.FastLineSeries$ = dart.generic((T, D) => {
    class FastLineSeries extends charts.XyDataSeries$(T, D) {
      createSegment() {
        return new charts.FastLineSegment.new();
      }
      createSegments() {
      }
      addSegment(seriesIndex, chart, animateFactor) {
        let segment = charts.FastLineSegment._check(this.createSegment());
        segment.series = this;
        segment[_seriesIndex] = seriesIndex;
        segment.animationFactor = animateFactor;
        this.customizeSegment(segment);
        segment.chart = chart;
        this.segments[$add](segment);
        return segment;
      }
      drawSegment(canvas, segment) {
        segment.onPaint(canvas);
      }
      customizeSegment(segment) {
        let fastLineSegment = charts.FastLineSegment._check(segment);
        fastLineSegment.color = fastLineSegment.series[_seriesColor];
        fastLineSegment.strokeColor = fastLineSegment.series[_seriesColor];
        fastLineSegment.strokeWidth = fastLineSegment.series.width;
        fastLineSegment.strokePaint = fastLineSegment.getStrokePaint();
        fastLineSegment.fillPaint = fastLineSegment.getFillPaint();
      }
      drawDataMarker(index, canvas, fillPaint, strokePaint, pointX, pointY) {
        let size = new ui.Size.new(this.markerSettings.width, this.markerSettings.height);
        let markerPath = charts._getMarkerShapes(this.markerSettings.shape, new ui.Offset.new(pointX, pointY), size, this);
        canvas.drawPath(markerPath, fillPaint);
        canvas.drawPath(markerPath, strokePaint);
      }
      drawDataLabel(index, canvas, dataLabel, pointX, pointY, angle, style) {
        return charts._drawText(canvas, dataLabel, new ui.Offset.new(pointX, pointY), style, angle);
      }
    }
    (FastLineSeries.new = function(opts) {
      let t2;
      let dataSource = opts && 'dataSource' in opts ? opts.dataSource : null;
      let xValueMapper = opts && 'xValueMapper' in opts ? opts.xValueMapper : null;
      let yValueMapper = opts && 'yValueMapper' in opts ? opts.yValueMapper : null;
      let sortFieldValueMapper = opts && 'sortFieldValueMapper' in opts ? opts.sortFieldValueMapper : null;
      let dataLabelMapper = opts && 'dataLabelMapper' in opts ? opts.dataLabelMapper : null;
      let xAxisName = opts && 'xAxisName' in opts ? opts.xAxisName : null;
      let yAxisName = opts && 'yAxisName' in opts ? opts.yAxisName : null;
      let color = opts && 'color' in opts ? opts.color : null;
      let width = opts && 'width' in opts ? opts.width : null;
      let dashArray = opts && 'dashArray' in opts ? opts.dashArray : null;
      let gradient = opts && 'gradient' in opts ? opts.gradient : null;
      let markerSettings = opts && 'markerSettings' in opts ? opts.markerSettings : null;
      let emptyPointSettings = opts && 'emptyPointSettings' in opts ? opts.emptyPointSettings : null;
      let trendlines = opts && 'trendlines' in opts ? opts.trendlines : null;
      let dataLabelSettings = opts && 'dataLabelSettings' in opts ? opts.dataLabelSettings : null;
      let sortingOrder = opts && 'sortingOrder' in opts ? opts.sortingOrder : null;
      let isVisible = opts && 'isVisible' in opts ? opts.isVisible : null;
      let name = opts && 'name' in opts ? opts.name : null;
      let enableTooltip = opts && 'enableTooltip' in opts ? opts.enableTooltip : null;
      let animationDuration = opts && 'animationDuration' in opts ? opts.animationDuration : null;
      let selectionSettings = opts && 'selectionSettings' in opts ? opts.selectionSettings : null;
      let isVisibleInLegend = opts && 'isVisibleInLegend' in opts ? opts.isVisibleInLegend : null;
      let legendIconType = opts && 'legendIconType' in opts ? opts.legendIconType : null;
      let legendItemText = opts && 'legendItemText' in opts ? opts.legendItemText : null;
      let opacity = opts && 'opacity' in opts ? opts.opacity : null;
      FastLineSeries.__proto__.new.call(this, {name: name, xValueMapper: xValueMapper, yValueMapper: yValueMapper, sortFieldValueMapper: sortFieldValueMapper, dataLabelMapper: dataLabelMapper, dataSource: dataSource, xAxisName: xAxisName, yAxisName: yAxisName, trendlines: trendlines, color: color, width: (t2 = width, t2 == null ? 2.0 : t2), gradient: gradient, dashArray: dashArray, markerSettings: markerSettings, emptyPointSettings: emptyPointSettings, dataLabelSettings: dataLabelSettings, isVisible: isVisible, enableTooltip: enableTooltip, animationDuration: animationDuration, selectionSettings: selectionSettings, legendItemText: legendItemText, isVisibleInLegend: isVisibleInLegend, legendIconType: legendIconType, sortingOrder: sortingOrder, opacity: opacity});
      ;
    }).prototype = FastLineSeries.prototype;
    dart.addTypeTests(FastLineSeries);
    FastLineSeries.prototype[_is_FastLineSeries_default] = true;
    dart.setMethodSignature(FastLineSeries, () => ({
      __proto__: dart.getMethods(FastLineSeries.__proto__),
      createSegment: dart.fnType(charts.ChartSegment, []),
      createSegments: dart.fnType(dart.void, []),
      addSegment: dart.fnType(charts.ChartSegment, [core.int, charts.SfCartesianChart, core.num]),
      drawSegment: dart.fnType(dart.void, [ui.Canvas, charts.ChartSegment]),
      customizeSegment: dart.fnType(dart.void, [charts.ChartSegment]),
      drawDataMarker: dart.fnType(dart.void, [core.int, ui.Canvas, ui.Paint, ui.Paint, core.double, core.double]),
      drawDataLabel: dart.fnType(dart.void, [core.int, ui.Canvas, core.String, core.double, core.double, core.int, charts.ChartTextStyle])
    }));
    dart.setLibraryUri(FastLineSeries, "package:syncfusion_flutter_charts/charts.dart");
    return FastLineSeries;
  });
  charts.FastLineSeries = charts.FastLineSeries$();
  dart.addTypeTests(charts.FastLineSeries, _is_FastLineSeries_default);
  const _is_HiloSeries_default = Symbol('_is_HiloSeries_default');
  const _rectPosition$1 = dart.privateName(charts, "HiloSeries._rectPosition");
  const _rectCount$1 = dart.privateName(charts, "HiloSeries._rectCount");
  charts.HiloSeries$ = dart.generic((T, D) => {
    class HiloSeries extends charts._FinancialSeriesBase$(T, D) {
      get [_rectPosition]() {
        return this[_rectPosition$1];
      }
      set [_rectPosition](value) {
        this[_rectPosition$1] = value;
      }
      get [_rectCount]() {
        return this[_rectCount$1];
      }
      set [_rectCount](value) {
        this[_rectCount$1] = value;
      }
      createSegment() {
        return new charts.HiloSegment.new();
      }
      createSegments() {
        let segmentIndex = 0;
        for (let i = 0; i < dart.notNull(this[_dataPoints$][$length]); i = i + 1) {
          if (dart.test(this[_dataPoints$][$_get](i).isVisible) && !dart.equals(this[_dataPoints$][$_get](i).isGap, true) && !dart.equals(this[_dataPoints$][$_get](i).high, this[_dataPoints$][$_get](i).low)) {
            let values = JSArrayOfnum().of([]);
            values[$add](core.num._check(this[_dataPoints$][$_get](i).xValue));
            values[$add](core.num._check(this[_dataPoints$][$_get](i).low));
            values[$add](core.num._check(this[_dataPoints$][$_get](i).high));
            this[_createSegment](values, this[_dataPoints$][$_get](i), segmentIndex);
            segmentIndex = segmentIndex + 1;
          }
        }
      }
      [_createSegment](values, currentPoint, segmentIndex) {
        this[_isRectSeries] = false;
        let segment = charts.HiloSegment._check(this.createSegment());
        if (segment != null) {
          segment[_seriesIndex] = this[_chart][_chartSeries].visibleSeries[$indexOf](this);
          segment.currentSegmentIndex = segmentIndex;
          segment.series = this;
          segment[_currentPoint] = currentPoint;
          if (dart.test(this[_chart][_chartState].widgetNeedUpdate) && !dart.test(this[_chart][_chartState][_isLegendToggled]) && this[_chart][_chartState].prevWidgetSeries != null && dart.test(this[_chart][_chartState].prevWidgetSeries[$isNotEmpty]) && dart.notNull(this[_chart][_chartState].prevWidgetSeries[$length]) - 1 >= dart.notNull(segment[_seriesIndex]) && this[_chart][_chartState].prevWidgetSeries[$_get](segment[_seriesIndex])[_seriesName] == segment.series[_seriesName]) {
            segment.oldSeries = charts.XyDataSeries._check(this[_chart][_chartState].prevWidgetSeries[$_get](segment[_seriesIndex]));
          }
          segment[_pointColorMapper] = currentPoint.pointColorMapper;
          segment[_setData](values);
          segment.calculateSegmentPoints();
          this.customizeSegment(segment);
          segment.strokePaint = segment.getStrokePaint();
          segment.fillPaint = segment.getFillPaint();
          this.segments[$add](segment);
        }
      }
      customizeSegment(segment) {
        segment.color = segment.series[_seriesColor];
        segment.strokeColor = segment.series[_seriesColor];
        segment.strokeWidth = segment.series.borderWidth;
      }
      drawDataMarker(index, canvas, fillPaint, strokePaint, pointX, pointY) {
      }
      drawDataLabel(index, canvas, dataLabel, pointX, pointY, angle, style) {
        return charts._drawText(canvas, dataLabel, new ui.Offset.new(pointX, pointY), style, angle);
      }
    }
    (HiloSeries.new = function(opts) {
      let t2;
      let dataSource = opts && 'dataSource' in opts ? opts.dataSource : null;
      let xValueMapper = opts && 'xValueMapper' in opts ? opts.xValueMapper : null;
      let lowValueMapper = opts && 'lowValueMapper' in opts ? opts.lowValueMapper : null;
      let highValueMapper = opts && 'highValueMapper' in opts ? opts.highValueMapper : null;
      let sortFieldValueMapper = opts && 'sortFieldValueMapper' in opts ? opts.sortFieldValueMapper : null;
      let pointColorMapper = opts && 'pointColorMapper' in opts ? opts.pointColorMapper : null;
      let dataLabelMapper = opts && 'dataLabelMapper' in opts ? opts.dataLabelMapper : null;
      let sortingOrder = opts && 'sortingOrder' in opts ? opts.sortingOrder : null;
      let xAxisName = opts && 'xAxisName' in opts ? opts.xAxisName : null;
      let yAxisName = opts && 'yAxisName' in opts ? opts.yAxisName : null;
      let name = opts && 'name' in opts ? opts.name : null;
      let color = opts && 'color' in opts ? opts.color : null;
      let markerSettings = opts && 'markerSettings' in opts ? opts.markerSettings : null;
      let emptyPointSettings = opts && 'emptyPointSettings' in opts ? opts.emptyPointSettings : null;
      let dataLabelSettings = opts && 'dataLabelSettings' in opts ? opts.dataLabelSettings : null;
      let isVisible = opts && 'isVisible' in opts ? opts.isVisible : null;
      let gradient = opts && 'gradient' in opts ? opts.gradient : null;
      let enableTooltip = opts && 'enableTooltip' in opts ? opts.enableTooltip : null;
      let animationDuration = opts && 'animationDuration' in opts ? opts.animationDuration : null;
      let borderWidth = opts && 'borderWidth' in opts ? opts.borderWidth : null;
      let selectionSettings = opts && 'selectionSettings' in opts ? opts.selectionSettings : null;
      let isVisibleInLegend = opts && 'isVisibleInLegend' in opts ? opts.isVisibleInLegend : null;
      let legendIconType = opts && 'legendIconType' in opts ? opts.legendIconType : null;
      let legendItemText = opts && 'legendItemText' in opts ? opts.legendItemText : null;
      let dashArray = opts && 'dashArray' in opts ? opts.dashArray : null;
      let opacity = opts && 'opacity' in opts ? opts.opacity : null;
      let spacing = opts && 'spacing' in opts ? opts.spacing : null;
      let initialSelectedDataIndexes = opts && 'initialSelectedDataIndexes' in opts ? opts.initialSelectedDataIndexes : null;
      let trendlines = opts && 'trendlines' in opts ? opts.trendlines : null;
      this[_rectPosition$1] = null;
      this[_rectCount$1] = null;
      HiloSeries.__proto__.new.call(this, {name: name, dashArray: dashArray, spacing: spacing, xValueMapper: xValueMapper, lowValueMapper: lowValueMapper, highValueMapper: highValueMapper, sortFieldValueMapper: sortFieldValueMapper, pointColorMapper: pointColorMapper, dataLabelMapper: dataLabelMapper, color: color, dataSource: dataSource, xAxisName: xAxisName, yAxisName: yAxisName, markerSettings: markerSettings, dataLabelSettings: dataLabelSettings, isVisible: isVisible, gradient: gradient, emptyPointSettings: emptyPointSettings, enableTooltip: enableTooltip, animationDuration: animationDuration, borderWidth: (t2 = borderWidth, t2 == null ? 2.0 : t2), selectionSettings: selectionSettings, legendItemText: legendItemText, isVisibleInLegend: isVisibleInLegend, legendIconType: legendIconType, sortingOrder: sortingOrder, opacity: opacity, initialSelectedDataIndexes: initialSelectedDataIndexes, trendlines: trendlines});
      ;
    }).prototype = HiloSeries.prototype;
    dart.addTypeTests(HiloSeries);
    HiloSeries.prototype[_is_HiloSeries_default] = true;
    dart.setMethodSignature(HiloSeries, () => ({
      __proto__: dart.getMethods(HiloSeries.__proto__),
      createSegment: dart.fnType(charts.ChartSegment, []),
      createSegments: dart.fnType(dart.void, []),
      [_createSegment]: dart.fnType(dart.void, [core.List$(core.num), charts.CartesianChartPoint, core.int]),
      customizeSegment: dart.fnType(dart.void, [charts.ChartSegment]),
      drawDataMarker: dart.fnType(dart.void, [core.int, ui.Canvas, ui.Paint, ui.Paint, core.double, core.double]),
      drawDataLabel: dart.fnType(dart.void, [core.int, ui.Canvas, core.String, core.double, core.double, core.int, charts.ChartTextStyle])
    }));
    dart.setLibraryUri(HiloSeries, "package:syncfusion_flutter_charts/charts.dart");
    dart.setFieldSignature(HiloSeries, () => ({
      __proto__: dart.getFields(HiloSeries.__proto__),
      [_rectPosition]: dart.fieldType(core.num),
      [_rectCount]: dart.fieldType(core.num)
    }));
    return HiloSeries;
  });
  charts.HiloSeries = charts.HiloSeries$();
  dart.addTypeTests(charts.HiloSeries, _is_HiloSeries_default);
  const _is_HiloOpenCloseSeries_default = Symbol('_is_HiloOpenCloseSeries_default');
  const _rectPosition$2 = dart.privateName(charts, "HiloOpenCloseSeries._rectPosition");
  const _rectCount$2 = dart.privateName(charts, "HiloOpenCloseSeries._rectCount");
  charts.HiloOpenCloseSeries$ = dart.generic((T, D) => {
    class HiloOpenCloseSeries extends charts._FinancialSeriesBase$(T, D) {
      get [_rectPosition]() {
        return this[_rectPosition$2];
      }
      set [_rectPosition](value) {
        this[_rectPosition$2] = value;
      }
      get [_rectCount]() {
        return this[_rectCount$2];
      }
      set [_rectCount](value) {
        this[_rectCount$2] = value;
      }
      createSegment() {
        return new charts.HiloOpenCloseSegment.new();
      }
      createSegments() {
        let segmentIndex = 0;
        for (let i = 0; i < dart.notNull(this[_dataPoints$][$length]); i = i + 1) {
          if (dart.test(this[_dataPoints$][$_get](i).isVisible) && !dart.equals(this[_dataPoints$][$_get](i).isGap, true) && !dart.equals(this[_dataPoints$][$_get](i).high, this[_dataPoints$][$_get](i).low)) {
            let values = JSArrayOfnum().of([]);
            values[$add](core.num._check(this[_dataPoints$][$_get](i).xValue));
            values[$add](core.num._check(this[_dataPoints$][$_get](i).low));
            values[$add](core.num._check(this[_dataPoints$][$_get](i).high));
            values[$add](core.num._check(this[_dataPoints$][$_get](i).open));
            values[$add](core.num._check(this[_dataPoints$][$_get](i).close));
            this[_createSegment](values, this[_dataPoints$][$_get](i), segmentIndex);
            segmentIndex = segmentIndex + 1;
          }
        }
      }
      [_createSegment](values, currentPoint, segmentIndex) {
        let segment = charts.HiloOpenCloseSegment._check(this.createSegment());
        if (segment != null) {
          segment[_seriesIndex] = this[_chart][_chartSeries].visibleSeries[$indexOf](this);
          segment.currentSegmentIndex = segmentIndex;
          segment.series = this;
          segment[_currentPoint] = currentPoint;
          if (dart.test(this[_chart][_chartState].widgetNeedUpdate) && !dart.test(this[_chart][_chartState][_isLegendToggled]) && this[_chart][_chartState].prevWidgetSeries != null && dart.test(this[_chart][_chartState].prevWidgetSeries[$isNotEmpty]) && dart.notNull(this[_chart][_chartState].prevWidgetSeries[$length]) - 1 >= dart.notNull(segment[_seriesIndex]) && this[_chart][_chartState].prevWidgetSeries[$_get](segment[_seriesIndex])[_seriesName] == segment.series[_seriesName]) {
            segment.oldSeries = charts.XyDataSeries._check(this[_chart][_chartState].prevWidgetSeries[$_get](segment[_seriesIndex]));
          }
          segment[_pointColorMapper] = currentPoint.pointColorMapper;
          segment[_setData](values);
          segment.calculateSegmentPoints();
          this.customizeSegment(segment);
          segment.strokePaint = segment.getStrokePaint();
          segment.fillPaint = segment.getFillPaint();
          this.segments[$add](segment);
        }
      }
      customizeSegment(segment) {
        segment.color = segment.series[_seriesColor];
        segment.strokeColor = charts.HiloOpenCloseSegment.is(segment) && dart.test(segment.isBull) ? this.bullColor : this.bearColor;
        segment.strokeWidth = segment.series.borderWidth;
      }
      drawDataMarker(index, canvas, fillPaint, strokePaint, pointX, pointY) {
      }
      drawDataLabel(index, canvas, dataLabel, pointX, pointY, angle, style) {
        return charts._drawText(canvas, dataLabel, new ui.Offset.new(pointX, pointY), style, angle);
      }
    }
    (HiloOpenCloseSeries.new = function(opts) {
      let t2, t2$, t2$0;
      let dataSource = opts && 'dataSource' in opts ? opts.dataSource : null;
      let xValueMapper = opts && 'xValueMapper' in opts ? opts.xValueMapper : null;
      let lowValueMapper = opts && 'lowValueMapper' in opts ? opts.lowValueMapper : null;
      let highValueMapper = opts && 'highValueMapper' in opts ? opts.highValueMapper : null;
      let openValueMapper = opts && 'openValueMapper' in opts ? opts.openValueMapper : null;
      let closeValueMapper = opts && 'closeValueMapper' in opts ? opts.closeValueMapper : null;
      let volumeValueMapper = opts && 'volumeValueMapper' in opts ? opts.volumeValueMapper : null;
      let sortFieldValueMapper = opts && 'sortFieldValueMapper' in opts ? opts.sortFieldValueMapper : null;
      let pointColorMapper = opts && 'pointColorMapper' in opts ? opts.pointColorMapper : null;
      let dataLabelMapper = opts && 'dataLabelMapper' in opts ? opts.dataLabelMapper : null;
      let sortingOrder = opts && 'sortingOrder' in opts ? opts.sortingOrder : null;
      let xAxisName = opts && 'xAxisName' in opts ? opts.xAxisName : null;
      let yAxisName = opts && 'yAxisName' in opts ? opts.yAxisName : null;
      let name = opts && 'name' in opts ? opts.name : null;
      let bearColor = opts && 'bearColor' in opts ? opts.bearColor : null;
      let bullColor = opts && 'bullColor' in opts ? opts.bullColor : null;
      let emptyPointSettings = opts && 'emptyPointSettings' in opts ? opts.emptyPointSettings : null;
      let dataLabelSettings = opts && 'dataLabelSettings' in opts ? opts.dataLabelSettings : null;
      let isVisible = opts && 'isVisible' in opts ? opts.isVisible : null;
      let gradient = opts && 'gradient' in opts ? opts.gradient : null;
      let enableTooltip = opts && 'enableTooltip' in opts ? opts.enableTooltip : null;
      let animationDuration = opts && 'animationDuration' in opts ? opts.animationDuration : null;
      let borderWidth = opts && 'borderWidth' in opts ? opts.borderWidth : null;
      let selectionSettings = opts && 'selectionSettings' in opts ? opts.selectionSettings : null;
      let isVisibleInLegend = opts && 'isVisibleInLegend' in opts ? opts.isVisibleInLegend : null;
      let legendIconType = opts && 'legendIconType' in opts ? opts.legendIconType : null;
      let legendItemText = opts && 'legendItemText' in opts ? opts.legendItemText : null;
      let dashArray = opts && 'dashArray' in opts ? opts.dashArray : null;
      let opacity = opts && 'opacity' in opts ? opts.opacity : null;
      let spacing = opts && 'spacing' in opts ? opts.spacing : null;
      let initialSelectedDataIndexes = opts && 'initialSelectedDataIndexes' in opts ? opts.initialSelectedDataIndexes : null;
      let trendlines = opts && 'trendlines' in opts ? opts.trendlines : null;
      this[_rectPosition$2] = null;
      this[_rectCount$2] = null;
      HiloOpenCloseSeries.__proto__.new.call(this, {name: name, dashArray: dashArray, spacing: spacing, xValueMapper: xValueMapper, lowValueMapper: lowValueMapper, highValueMapper: highValueMapper, openValueMapper: openValueMapper != null ? dart.fn(index => openValueMapper(dataSource[$_get](index), index), intTonum()) : null, closeValueMapper: closeValueMapper != null ? dart.fn(index => closeValueMapper(dataSource[$_get](index), index), intTonum()) : null, volumeValueMapper: volumeValueMapper != null ? dart.fn(index => volumeValueMapper(dataSource[$_get](index), index), intTonum()) : null, sortFieldValueMapper: sortFieldValueMapper, pointColorMapper: pointColorMapper, dataLabelMapper: dataLabelMapper, dataSource: dataSource, xAxisName: xAxisName, yAxisName: yAxisName, dataLabelSettings: dataLabelSettings, isVisible: isVisible, gradient: gradient, emptyPointSettings: emptyPointSettings, enableTooltip: enableTooltip, animationDuration: animationDuration, borderWidth: (t2 = borderWidth, t2 == null ? 2.0 : t2), selectionSettings: selectionSettings, legendItemText: legendItemText, isVisibleInLegend: isVisibleInLegend, legendIconType: legendIconType, sortingOrder: sortingOrder, opacity: opacity, bearColor: (t2$ = bearColor, t2$ == null ? colors$.Colors.red : t2$), bullColor: (t2$0 = bullColor, t2$0 == null ? colors$.Colors.green : t2$0), initialSelectedDataIndexes: initialSelectedDataIndexes, trendlines: trendlines});
      ;
    }).prototype = HiloOpenCloseSeries.prototype;
    dart.addTypeTests(HiloOpenCloseSeries);
    HiloOpenCloseSeries.prototype[_is_HiloOpenCloseSeries_default] = true;
    dart.setMethodSignature(HiloOpenCloseSeries, () => ({
      __proto__: dart.getMethods(HiloOpenCloseSeries.__proto__),
      createSegment: dart.fnType(charts.ChartSegment, []),
      createSegments: dart.fnType(dart.void, []),
      [_createSegment]: dart.fnType(dart.void, [core.List$(core.num), charts.CartesianChartPoint, core.int]),
      customizeSegment: dart.fnType(dart.void, [charts.ChartSegment]),
      drawDataMarker: dart.fnType(dart.void, [core.int, ui.Canvas, ui.Paint, ui.Paint, core.double, core.double]),
      drawDataLabel: dart.fnType(dart.void, [core.int, ui.Canvas, core.String, core.double, core.double, core.int, charts.ChartTextStyle])
    }));
    dart.setLibraryUri(HiloOpenCloseSeries, "package:syncfusion_flutter_charts/charts.dart");
    dart.setFieldSignature(HiloOpenCloseSeries, () => ({
      __proto__: dart.getFields(HiloOpenCloseSeries.__proto__),
      [_rectPosition]: dart.fieldType(core.num),
      [_rectCount]: dart.fieldType(core.num)
    }));
    return HiloOpenCloseSeries;
  });
  charts.HiloOpenCloseSeries = charts.HiloOpenCloseSeries$();
  dart.addTypeTests(charts.HiloOpenCloseSeries, _is_HiloOpenCloseSeries_default);
  const _is_CandleSeries_default = Symbol('_is_CandleSeries_default');
  const _rectPosition$3 = dart.privateName(charts, "CandleSeries._rectPosition");
  const _rectCount$3 = dart.privateName(charts, "CandleSeries._rectCount");
  charts.CandleSeries$ = dart.generic((T, D) => {
    class CandleSeries extends charts._FinancialSeriesBase$(T, D) {
      get [_rectPosition]() {
        return this[_rectPosition$3];
      }
      set [_rectPosition](value) {
        this[_rectPosition$3] = value;
      }
      get [_rectCount]() {
        return this[_rectCount$3];
      }
      set [_rectCount](value) {
        this[_rectCount$3] = value;
      }
      createSegment() {
        return new charts.CandleSegment.new();
      }
      createSegments() {
        let segmentIndex = 0;
        for (let i = 0; i < dart.notNull(this[_dataPoints$][$length]); i = i + 1) {
          if (dart.test(this[_dataPoints$][$_get](i).isVisible) && !dart.equals(this[_dataPoints$][$_get](i).isGap, true)) {
            let values = JSArrayOfnum().of([]);
            values[$add](core.num._check(this[_dataPoints$][$_get](i).xValue));
            values[$add](core.num._check(this[_dataPoints$][$_get](i).low));
            values[$add](core.num._check(this[_dataPoints$][$_get](i).high));
            values[$add](core.num._check(this[_dataPoints$][$_get](i).open));
            values[$add](core.num._check(this[_dataPoints$][$_get](i).close));
            this[_createSegment](values, this[_dataPoints$][$_get](i), segmentIndex);
            segmentIndex = segmentIndex + 1;
          }
        }
      }
      [_createSegment](values, currentPoint, segmentIndex) {
        let segment = charts.CandleSegment._check(this.createSegment());
        if (segment != null) {
          segment[_seriesIndex] = this[_chart][_chartSeries].visibleSeries[$indexOf](this);
          segment.currentSegmentIndex = segmentIndex;
          segment.series = this;
          segment[_currentPoint] = currentPoint;
          if (dart.test(this[_chart][_chartState].widgetNeedUpdate) && !dart.test(this[_chart][_chartState][_isLegendToggled]) && this[_chart][_chartState].prevWidgetSeries != null && dart.test(this[_chart][_chartState].prevWidgetSeries[$isNotEmpty]) && dart.notNull(this[_chart][_chartState].prevWidgetSeries[$length]) - 1 >= dart.notNull(segment[_seriesIndex]) && this[_chart][_chartState].prevWidgetSeries[$_get](segment[_seriesIndex])[_seriesName] == segment.series[_seriesName]) {
            segment.oldSeries = charts.XyDataSeries._check(this[_chart][_chartState].prevWidgetSeries[$_get](segment[_seriesIndex]));
          }
          segment[_pointColorMapper] = currentPoint.pointColorMapper;
          segment[_setData](values);
          segment.calculateSegmentPoints();
          this.customizeSegment(segment);
          segment.strokePaint = segment.getStrokePaint();
          segment.fillPaint = segment.getFillPaint();
          this.segments[$add](segment);
        }
      }
      customizeSegment(segment) {
        if (dart.test(this.enableSolidCandles)) {
          if (charts.CandleSegment.is(segment)) {
            segment.isSolid = true;
          }
          segment.color = charts.CandleSegment.is(segment) && dart.test(segment.isBull) ? this.bullColor : this.bearColor;
        } else {
          if (charts.CandleSegment.is(segment) && dart.notNull(segment.currentSegmentIndex) - 1 >= 0 && dart.dtest(dart.dsend(segment.series[_dataPoints$][$_get](dart.notNull(segment.currentSegmentIndex) - 1).close, '>', [segment.series[_dataPoints$][$_get](segment.currentSegmentIndex).close]))) {
            if (!dart.test(segment.isBull)) {
              segment.isSolid = true;
            }
            segment.color = this.bearColor;
          } else {
            if (charts.CandleSegment.is(segment) && !dart.test(segment.isBull)) {
              segment.isSolid = true;
            }
            segment.color = this.bullColor;
          }
        }
        segment.strokeWidth = segment.series.borderWidth;
      }
      drawDataMarker(index, canvas, fillPaint, strokePaint, pointX, pointY) {
      }
      drawDataLabel(index, canvas, dataLabel, pointX, pointY, angle, style) {
        return charts._drawText(canvas, dataLabel, new ui.Offset.new(pointX, pointY), style, angle);
      }
    }
    (CandleSeries.new = function(opts) {
      let t2, t2$, t2$0, t2$1;
      let dataSource = opts && 'dataSource' in opts ? opts.dataSource : null;
      let xValueMapper = opts && 'xValueMapper' in opts ? opts.xValueMapper : null;
      let lowValueMapper = opts && 'lowValueMapper' in opts ? opts.lowValueMapper : null;
      let highValueMapper = opts && 'highValueMapper' in opts ? opts.highValueMapper : null;
      let openValueMapper = opts && 'openValueMapper' in opts ? opts.openValueMapper : null;
      let closeValueMapper = opts && 'closeValueMapper' in opts ? opts.closeValueMapper : null;
      let sortFieldValueMapper = opts && 'sortFieldValueMapper' in opts ? opts.sortFieldValueMapper : null;
      let pointColorMapper = opts && 'pointColorMapper' in opts ? opts.pointColorMapper : null;
      let dataLabelMapper = opts && 'dataLabelMapper' in opts ? opts.dataLabelMapper : null;
      let sortingOrder = opts && 'sortingOrder' in opts ? opts.sortingOrder : null;
      let xAxisName = opts && 'xAxisName' in opts ? opts.xAxisName : null;
      let yAxisName = opts && 'yAxisName' in opts ? opts.yAxisName : null;
      let name = opts && 'name' in opts ? opts.name : null;
      let bearColor = opts && 'bearColor' in opts ? opts.bearColor : null;
      let bullColor = opts && 'bullColor' in opts ? opts.bullColor : null;
      let enableSolidCandles = opts && 'enableSolidCandles' in opts ? opts.enableSolidCandles : null;
      let emptyPointSettings = opts && 'emptyPointSettings' in opts ? opts.emptyPointSettings : null;
      let dataLabelSettings = opts && 'dataLabelSettings' in opts ? opts.dataLabelSettings : null;
      let isVisible = opts && 'isVisible' in opts ? opts.isVisible : null;
      let gradient = opts && 'gradient' in opts ? opts.gradient : null;
      let enableTooltip = opts && 'enableTooltip' in opts ? opts.enableTooltip : null;
      let animationDuration = opts && 'animationDuration' in opts ? opts.animationDuration : null;
      let borderWidth = opts && 'borderWidth' in opts ? opts.borderWidth : null;
      let selectionSettings = opts && 'selectionSettings' in opts ? opts.selectionSettings : null;
      let isVisibleInLegend = opts && 'isVisibleInLegend' in opts ? opts.isVisibleInLegend : null;
      let legendIconType = opts && 'legendIconType' in opts ? opts.legendIconType : null;
      let legendItemText = opts && 'legendItemText' in opts ? opts.legendItemText : null;
      let dashArray = opts && 'dashArray' in opts ? opts.dashArray : null;
      let opacity = opts && 'opacity' in opts ? opts.opacity : null;
      let initialSelectedDataIndexes = opts && 'initialSelectedDataIndexes' in opts ? opts.initialSelectedDataIndexes : null;
      let trendlines = opts && 'trendlines' in opts ? opts.trendlines : null;
      this[_rectPosition$3] = null;
      this[_rectCount$3] = null;
      CandleSeries.__proto__.new.call(this, {name: name, dashArray: dashArray, xValueMapper: xValueMapper, lowValueMapper: lowValueMapper, highValueMapper: highValueMapper, openValueMapper: openValueMapper != null ? dart.fn(index => openValueMapper(dataSource[$_get](index), index), intTonum()) : null, closeValueMapper: closeValueMapper != null ? dart.fn(index => closeValueMapper(dataSource[$_get](index), index), intTonum()) : null, sortFieldValueMapper: sortFieldValueMapper, pointColorMapper: pointColorMapper, dataLabelMapper: dataLabelMapper, dataSource: dataSource, xAxisName: xAxisName, yAxisName: yAxisName, dataLabelSettings: dataLabelSettings, isVisible: isVisible, gradient: gradient, emptyPointSettings: emptyPointSettings, enableTooltip: enableTooltip, animationDuration: animationDuration, borderWidth: (t2 = borderWidth, t2 == null ? 2.0 : t2), selectionSettings: selectionSettings, legendItemText: legendItemText, isVisibleInLegend: isVisibleInLegend, legendIconType: legendIconType, sortingOrder: sortingOrder, opacity: opacity, bearColor: (t2$ = bearColor, t2$ == null ? colors$.Colors.red : t2$), bullColor: (t2$0 = bullColor, t2$0 == null ? colors$.Colors.green : t2$0), enableSolidCandles: (t2$1 = enableSolidCandles, t2$1 == null ? false : t2$1), initialSelectedDataIndexes: initialSelectedDataIndexes, trendlines: trendlines});
      ;
    }).prototype = CandleSeries.prototype;
    dart.addTypeTests(CandleSeries);
    CandleSeries.prototype[_is_CandleSeries_default] = true;
    dart.setMethodSignature(CandleSeries, () => ({
      __proto__: dart.getMethods(CandleSeries.__proto__),
      createSegment: dart.fnType(charts.ChartSegment, []),
      createSegments: dart.fnType(dart.void, []),
      [_createSegment]: dart.fnType(dart.void, [core.List$(core.num), charts.CartesianChartPoint, core.int]),
      customizeSegment: dart.fnType(dart.void, [charts.ChartSegment]),
      drawDataMarker: dart.fnType(dart.void, [core.int, ui.Canvas, ui.Paint, ui.Paint, core.double, core.double]),
      drawDataLabel: dart.fnType(dart.void, [core.int, ui.Canvas, core.String, core.double, core.double, core.int, charts.ChartTextStyle])
    }));
    dart.setLibraryUri(CandleSeries, "package:syncfusion_flutter_charts/charts.dart");
    dart.setFieldSignature(CandleSeries, () => ({
      __proto__: dart.getFields(CandleSeries.__proto__),
      [_rectPosition]: dart.fieldType(core.num),
      [_rectCount]: dart.fieldType(core.num)
    }));
    return CandleSeries;
  });
  charts.CandleSeries = charts.CandleSeries$();
  dart.addTypeTests(charts.CandleSeries, _is_CandleSeries_default);
  const _is_LineSeries_default = Symbol('_is_LineSeries_default');
  charts.LineSeries$ = dart.generic((T, D) => {
    class LineSeries extends charts.XyDataSeries$(T, D) {
      createSegment() {
        return new charts.LineSegment.new();
      }
      createSegments() {
      }
      addSegment(currentPoint, nextPoint, pointIndex, seriesIndex, animateFactor) {
        let segment = charts.LineSegment._check(this.createSegment());
        segment.series = this;
        segment[_seriesIndex] = seriesIndex;
        segment[_currentPoint] = currentPoint;
        segment.currentSegmentIndex = pointIndex;
        segment[_nextPoint] = nextPoint;
        segment.chart = this[_chart];
        segment.animationFactor = animateFactor;
        segment[_pointColorMapper] = currentPoint.pointColorMapper;
        if (dart.test(this[_chart][_chartState].widgetNeedUpdate) && this[_chart][_chartState].prevWidgetSeries != null && dart.test(this[_chart][_chartState].prevWidgetSeries[$isNotEmpty]) && dart.notNull(this[_chart][_chartState].prevWidgetSeries[$length]) - 1 >= dart.notNull(segment[_seriesIndex]) && this[_chart][_chartState].prevWidgetSeries[$_get](segment[_seriesIndex])[_seriesName] == segment.series[_seriesName]) {
          segment.oldSeries = charts.XyDataSeries._check(this[_chart][_chartState].prevWidgetSeries[$_get](segment[_seriesIndex]));
        }
        segment.calculateSegmentPoints();
        this.customizeSegment(segment);
        this.segments[$add](segment);
        return segment;
      }
      drawSegment(canvas, segment) {
        segment.onPaint(canvas);
      }
      customizeSegment(segment) {
        let t2, t2$, t2$0, t2$1;
        let lineSegment = charts.LineSegment._check(segment);
        lineSegment.color = (t2$ = (t2 = lineSegment[_pointColorMapper], t2 == null ? lineSegment.series.color : t2), t2$ == null ? lineSegment.series[_seriesColor] : t2$);
        lineSegment.strokeColor = (t2$1 = (t2$0 = lineSegment[_pointColorMapper], t2$0 == null ? lineSegment.series.color : t2$0), t2$1 == null ? lineSegment.series[_seriesColor] : t2$1);
        lineSegment.strokeWidth = lineSegment.series.width;
        lineSegment.strokePaint = lineSegment.getStrokePaint();
        lineSegment.fillPaint = lineSegment.getFillPaint();
      }
      drawDataMarker(index, canvas, fillPaint, strokePaint, pointX, pointY) {
        let size = new ui.Size.new(this.markerSettings.width, this.markerSettings.height);
        let markerPath = charts._getMarkerShapes(this.markerSettings.shape, new ui.Offset.new(pointX, pointY), size, this);
        canvas.drawPath(markerPath, fillPaint);
        canvas.drawPath(markerPath, strokePaint);
      }
      drawDataLabel(index, canvas, dataLabel, pointX, pointY, angle, style) {
        return charts._drawText(canvas, dataLabel, new ui.Offset.new(pointX, pointY), style, angle);
      }
    }
    (LineSeries.new = function(opts) {
      let t2;
      let dataSource = opts && 'dataSource' in opts ? opts.dataSource : null;
      let xValueMapper = opts && 'xValueMapper' in opts ? opts.xValueMapper : null;
      let yValueMapper = opts && 'yValueMapper' in opts ? opts.yValueMapper : null;
      let sortFieldValueMapper = opts && 'sortFieldValueMapper' in opts ? opts.sortFieldValueMapper : null;
      let pointColorMapper = opts && 'pointColorMapper' in opts ? opts.pointColorMapper : null;
      let dataLabelMapper = opts && 'dataLabelMapper' in opts ? opts.dataLabelMapper : null;
      let xAxisName = opts && 'xAxisName' in opts ? opts.xAxisName : null;
      let yAxisName = opts && 'yAxisName' in opts ? opts.yAxisName : null;
      let color = opts && 'color' in opts ? opts.color : null;
      let width = opts && 'width' in opts ? opts.width : null;
      let gradient = opts && 'gradient' in opts ? opts.gradient : null;
      let markerSettings = opts && 'markerSettings' in opts ? opts.markerSettings : null;
      let emptyPointSettings = opts && 'emptyPointSettings' in opts ? opts.emptyPointSettings : null;
      let dataLabelSettings = opts && 'dataLabelSettings' in opts ? opts.dataLabelSettings : null;
      let trendlines = opts && 'trendlines' in opts ? opts.trendlines : null;
      let isVisible = opts && 'isVisible' in opts ? opts.isVisible : null;
      let name = opts && 'name' in opts ? opts.name : null;
      let enableTooltip = opts && 'enableTooltip' in opts ? opts.enableTooltip : null;
      let dashArray = opts && 'dashArray' in opts ? opts.dashArray : null;
      let animationDuration = opts && 'animationDuration' in opts ? opts.animationDuration : null;
      let selectionSettings = opts && 'selectionSettings' in opts ? opts.selectionSettings : null;
      let isVisibleInLegend = opts && 'isVisibleInLegend' in opts ? opts.isVisibleInLegend : null;
      let legendIconType = opts && 'legendIconType' in opts ? opts.legendIconType : null;
      let sortingOrder = opts && 'sortingOrder' in opts ? opts.sortingOrder : null;
      let legendItemText = opts && 'legendItemText' in opts ? opts.legendItemText : null;
      let opacity = opts && 'opacity' in opts ? opts.opacity : null;
      let initialSelectedDataIndexes = opts && 'initialSelectedDataIndexes' in opts ? opts.initialSelectedDataIndexes : null;
      LineSeries.__proto__.new.call(this, {name: name, xValueMapper: xValueMapper, yValueMapper: yValueMapper, sortFieldValueMapper: sortFieldValueMapper, pointColorMapper: pointColorMapper, dataLabelMapper: dataLabelMapper, dataSource: dataSource, xAxisName: xAxisName, yAxisName: yAxisName, color: color, width: (t2 = width, t2 == null ? 2.0 : t2), gradient: gradient, markerSettings: markerSettings, emptyPointSettings: emptyPointSettings, trendlines: trendlines, dataLabelSettings: dataLabelSettings, isVisible: isVisible, enableTooltip: enableTooltip, dashArray: dashArray, animationDuration: animationDuration, selectionSettings: selectionSettings, legendItemText: legendItemText, isVisibleInLegend: isVisibleInLegend, legendIconType: legendIconType, sortingOrder: sortingOrder, opacity: opacity, initialSelectedDataIndexes: initialSelectedDataIndexes});
      ;
    }).prototype = LineSeries.prototype;
    dart.addTypeTests(LineSeries);
    LineSeries.prototype[_is_LineSeries_default] = true;
    dart.setMethodSignature(LineSeries, () => ({
      __proto__: dart.getMethods(LineSeries.__proto__),
      createSegment: dart.fnType(charts.ChartSegment, []),
      createSegments: dart.fnType(dart.void, []),
      addSegment: dart.fnType(charts.ChartSegment, [charts.CartesianChartPoint, charts.CartesianChartPoint, core.int, core.int, core.num]),
      drawSegment: dart.fnType(dart.void, [ui.Canvas, charts.ChartSegment]),
      customizeSegment: dart.fnType(dart.void, [charts.ChartSegment]),
      drawDataMarker: dart.fnType(dart.void, [core.int, ui.Canvas, ui.Paint, ui.Paint, core.double, core.double]),
      drawDataLabel: dart.fnType(dart.void, [core.int, ui.Canvas, core.String, core.double, core.double, core.int, charts.ChartTextStyle])
    }));
    dart.setLibraryUri(LineSeries, "package:syncfusion_flutter_charts/charts.dart");
    return LineSeries;
  });
  charts.LineSeries = charts.LineSeries$();
  dart.addTypeTests(charts.LineSeries, _is_LineSeries_default);
  const _is_StackedLineSeries_default = Symbol('_is_StackedLineSeries_default');
  charts.StackedLineSeries$ = dart.generic((T, D) => {
    class StackedLineSeries extends charts._StackedSeriesBase$(T, D) {
      createSegment() {
        return new charts.StackedLineSegment.new();
      }
      createSegments() {
        let values = JSArrayOfnum().of([]);
        let segmentIndex = 0;
        for (let i = 0; i < dart.notNull(this[_dataPoints$][$length]); i = i + 1) {
          if (dart.notNull(this[_dataPoints$][$length]) > 1) {
            if (values !== null && dart.test(values[$isNotEmpty]) && dart.notNull(values[$length]) > 3) {
              values[$_set](0, values[$_get](3));
              values[$_set](1, values[$_get](4));
              values[$_set](2, values[$_get](5));
              values[$removeRange](3, 6);
            }
            if (dart.test(this[_dataPoints$][$_get](i).isVisible)) {
              if (!dart.equals(this[_dataPoints$][$_get](i).isGap, true)) {
                if (dart.test(values[$isEmpty]) || dart.test(values[$isNotEmpty]) && !(core.identical(values[$_get](0), this[_dataPoints$][$_get](i).xValue) && core.identical(values[$_get](1), this[_dataPoints$][$_get](i).yValue))) {
                  values[$add](core.num._check(this[_dataPoints$][$_get](i).xValue));
                  values[$add](core.num._check(this[_dataPoints$][$_get](i).yValue));
                  values[$add](this[_dataPoints$][$_get](i).cumulativeValue);
                }
              }
              if ((i === 0 || dart.equals(this[_dataPoints$][$_get](i - 1).isGap, true)) && !dart.equals(this[_dataPoints$][$_get](i).isGap, true) && i !== dart.notNull(this[_dataPoints$][$length]) - 1 && !dart.equals(this[_dataPoints$][$_get](i + 1).isGap, true) && dart.test(this[_dataPoints$][$_get](i + 1).isVisible)) {
                values[$add](core.num._check(this[_dataPoints$][$_get](i + 1).xValue));
                values[$add](core.num._check(this[_dataPoints$][$_get](i + 1).yValue));
                values[$add](this[_dataPoints$][$_get](i + 1).cumulativeValue);
              } else if (dart.equals(this[_dataPoints$][$_get](i).isGap, true)) {
                values = JSArrayOfnum().of([]);
              }
            }
          }
          if (values !== null && dart.test(values[$isNotEmpty]) && dart.notNull(values[$length]) > 3) {
            this[_createSegment](values, this[_dataPoints$][$_get](i), segmentIndex, this[_dataPoints$][$_get](segmentIndex).pointColorMapper);
            segmentIndex = segmentIndex + 1;
          }
        }
      }
      [_createSegment](values, currentPoint, segmentIndex, pointColorMapper) {
        let segment = charts.StackedLineSegment._check(this.createSegment());
        this[_isRectSeries] = false;
        if (segment != null) {
          segment.currentSegmentIndex = segmentIndex;
          segment[_seriesIndex] = this[_chart][_chartSeries].visibleSeries[$indexOf](this);
          segment.series = this;
          segment[_currentPoint] = currentPoint;
          if (dart.test(this[_chart][_chartState].widgetNeedUpdate) && this[_xAxis$][_zoomFactor] === 1 && this[_yAxis$][_zoomFactor] === 1 && this[_chart][_chartState].prevWidgetSeries != null && dart.test(this[_chart][_chartState].prevWidgetSeries[$isNotEmpty]) && dart.notNull(this[_chart][_chartState].prevWidgetSeries[$length]) - 1 >= dart.notNull(segment[_seriesIndex]) && this[_chart][_chartState].prevWidgetSeries[$_get](segment[_seriesIndex])[_seriesName] == segment.series[_seriesName]) {
            segment.oldSeries = charts.XyDataSeries._check(this[_chart][_chartState].prevWidgetSeries[$_get](segment[_seriesIndex]));
          }
          segment[_pointColorMapper] = pointColorMapper;
          segment[_setData](values);
          segment.calculateSegmentPoints();
          this.customizeSegment(segment);
          segment.strokePaint = segment.getStrokePaint();
          segment.fillPaint = segment.getFillPaint();
          this.segments[$add](segment);
        }
      }
      customizeSegment(segment) {
        segment.color = segment.series[_seriesColor];
        segment.strokeColor = segment.series[_seriesColor];
        segment.strokeWidth = segment.series.width;
      }
      drawDataMarker(index, canvas, fillPaint, strokePaint, pointX, pointY) {
        canvas.drawPath(this[_markerShapes][$_get](index), strokePaint);
        canvas.drawPath(this[_markerShapes][$_get](index), fillPaint);
      }
      drawDataLabel(index, canvas, dataLabel, pointX, pointY, angle, style) {
        return charts._drawText(canvas, dataLabel, new ui.Offset.new(pointX, pointY), style, angle);
      }
    }
    (StackedLineSeries.new = function(opts) {
      let t2;
      let dataSource = opts && 'dataSource' in opts ? opts.dataSource : null;
      let xValueMapper = opts && 'xValueMapper' in opts ? opts.xValueMapper : null;
      let yValueMapper = opts && 'yValueMapper' in opts ? opts.yValueMapper : null;
      let sortFieldValueMapper = opts && 'sortFieldValueMapper' in opts ? opts.sortFieldValueMapper : null;
      let pointColorMapper = opts && 'pointColorMapper' in opts ? opts.pointColorMapper : null;
      let dataLabelMapper = opts && 'dataLabelMapper' in opts ? opts.dataLabelMapper : null;
      let xAxisName = opts && 'xAxisName' in opts ? opts.xAxisName : null;
      let yAxisName = opts && 'yAxisName' in opts ? opts.yAxisName : null;
      let color = opts && 'color' in opts ? opts.color : null;
      let width = opts && 'width' in opts ? opts.width : null;
      let gradient = opts && 'gradient' in opts ? opts.gradient : null;
      let markerSettings = opts && 'markerSettings' in opts ? opts.markerSettings : null;
      let emptyPointSettings = opts && 'emptyPointSettings' in opts ? opts.emptyPointSettings : null;
      let dataLabelSettings = opts && 'dataLabelSettings' in opts ? opts.dataLabelSettings : null;
      let isVisible = opts && 'isVisible' in opts ? opts.isVisible : null;
      let name = opts && 'name' in opts ? opts.name : null;
      let enableTooltip = opts && 'enableTooltip' in opts ? opts.enableTooltip : null;
      let dashArray = opts && 'dashArray' in opts ? opts.dashArray : null;
      let animationDuration = opts && 'animationDuration' in opts ? opts.animationDuration : null;
      let groupName = opts && 'groupName' in opts ? opts.groupName : null;
      let trendlines = opts && 'trendlines' in opts ? opts.trendlines : null;
      let selectionSettings = opts && 'selectionSettings' in opts ? opts.selectionSettings : null;
      let isVisibleInLegend = opts && 'isVisibleInLegend' in opts ? opts.isVisibleInLegend : null;
      let legendIconType = opts && 'legendIconType' in opts ? opts.legendIconType : null;
      let sortingOrder = opts && 'sortingOrder' in opts ? opts.sortingOrder : null;
      let legendItemText = opts && 'legendItemText' in opts ? opts.legendItemText : null;
      let opacity = opts && 'opacity' in opts ? opts.opacity : null;
      let initialSelectedDataIndexes = opts && 'initialSelectedDataIndexes' in opts ? opts.initialSelectedDataIndexes : null;
      StackedLineSeries.__proto__.new.call(this, {name: name, xValueMapper: xValueMapper, yValueMapper: yValueMapper, sortFieldValueMapper: sortFieldValueMapper, pointColorMapper: pointColorMapper, dataLabelMapper: dataLabelMapper, dataSource: dataSource, xAxisName: xAxisName, trendlines: trendlines, yAxisName: yAxisName, color: color, width: (t2 = width, t2 == null ? 2.0 : t2), gradient: gradient, markerSettings: markerSettings, emptyPointSettings: emptyPointSettings, dataLabelSettings: dataLabelSettings, isVisible: isVisible, enableTooltip: enableTooltip, dashArray: dashArray, animationDuration: animationDuration, selectionSettings: selectionSettings, legendItemText: legendItemText, isVisibleInLegend: isVisibleInLegend, legendIconType: legendIconType, sortingOrder: sortingOrder, groupName: groupName, opacity: opacity, initialSelectedDataIndexes: initialSelectedDataIndexes});
      ;
    }).prototype = StackedLineSeries.prototype;
    dart.addTypeTests(StackedLineSeries);
    StackedLineSeries.prototype[_is_StackedLineSeries_default] = true;
    dart.setMethodSignature(StackedLineSeries, () => ({
      __proto__: dart.getMethods(StackedLineSeries.__proto__),
      createSegment: dart.fnType(charts.ChartSegment, []),
      createSegments: dart.fnType(dart.void, []),
      [_createSegment]: dart.fnType(dart.void, [core.List$(core.num), charts.CartesianChartPoint, core.int, ui.Color]),
      customizeSegment: dart.fnType(dart.void, [charts.ChartSegment]),
      drawDataMarker: dart.fnType(dart.void, [core.int, ui.Canvas, ui.Paint, ui.Paint, core.double, core.double]),
      drawDataLabel: dart.fnType(dart.void, [core.int, ui.Canvas, core.String, core.double, core.double, core.int, charts.ChartTextStyle])
    }));
    dart.setLibraryUri(StackedLineSeries, "package:syncfusion_flutter_charts/charts.dart");
    return StackedLineSeries;
  });
  charts.StackedLineSeries = charts.StackedLineSeries$();
  dart.addTypeTests(charts.StackedLineSeries, _is_StackedLineSeries_default);
  const _is_RangeAreaSeries_default = Symbol('_is_RangeAreaSeries_default');
  const borderDrawMode$2 = dart.privateName(charts, "RangeAreaSeries.borderDrawMode");
  charts.RangeAreaSeries$ = dart.generic((T, D) => {
    class RangeAreaSeries extends charts.XyDataSeries$(T, D) {
      get borderDrawMode() {
        return this[borderDrawMode$2];
      }
      set borderDrawMode(value) {
        super.borderDrawMode = value;
      }
      createSegment() {
        return new charts.RangeAreaSegment.new();
      }
      createSegments() {
        return this[_createSegment](this[_dataPoints$]);
      }
      [_createSegment](dataPoints) {
        let segment = charts.RangeAreaSegment._check(this.createSegment());
        this[_isRectSeries] = false;
        if (segment != null) {
          segment[_seriesIndex] = this[_chart][_chartSeries].visibleSeries[$indexOf](this);
          segment.series = this;
          this.customizeSegment(segment);
          segment.strokePaint = segment.getStrokePaint();
          segment.fillPaint = segment.getFillPaint();
          this.segments[$add](segment);
        }
      }
      customizeSegment(segment) {
        segment.color = segment.series[_seriesColor];
        segment.strokeColor = segment.series.borderColor;
        segment.strokeWidth = segment.series.borderWidth;
      }
      drawDataMarker(index, canvas, fillPaint, strokePaint, pointX, pointY) {
        canvas.drawPath(this[_markerShapes][$_get](index), strokePaint);
        canvas.drawPath(this[_markerShapes][$_get](index), fillPaint);
        canvas.drawPath(this[_markerShapes2][$_get](index), strokePaint);
        canvas.drawPath(this[_markerShapes2][$_get](index), fillPaint);
      }
      drawDataLabel(index, canvas, dataLabel, pointX, pointY, angle, style) {
        return charts._drawText(canvas, dataLabel, new ui.Offset.new(pointX, pointY), style, angle);
      }
    }
    (RangeAreaSeries.new = function(opts) {
      let t2;
      let dataSource = opts && 'dataSource' in opts ? opts.dataSource : null;
      let xValueMapper = opts && 'xValueMapper' in opts ? opts.xValueMapper : null;
      let highValueMapper = opts && 'highValueMapper' in opts ? opts.highValueMapper : null;
      let lowValueMapper = opts && 'lowValueMapper' in opts ? opts.lowValueMapper : null;
      let sortFieldValueMapper = opts && 'sortFieldValueMapper' in opts ? opts.sortFieldValueMapper : null;
      let pointColorMapper = opts && 'pointColorMapper' in opts ? opts.pointColorMapper : null;
      let dataLabelMapper = opts && 'dataLabelMapper' in opts ? opts.dataLabelMapper : null;
      let sortingOrder = opts && 'sortingOrder' in opts ? opts.sortingOrder : null;
      let xAxisName = opts && 'xAxisName' in opts ? opts.xAxisName : null;
      let trendlines = opts && 'trendlines' in opts ? opts.trendlines : null;
      let yAxisName = opts && 'yAxisName' in opts ? opts.yAxisName : null;
      let name = opts && 'name' in opts ? opts.name : null;
      let color = opts && 'color' in opts ? opts.color : null;
      let markerSettings = opts && 'markerSettings' in opts ? opts.markerSettings : null;
      let emptyPointSettings = opts && 'emptyPointSettings' in opts ? opts.emptyPointSettings : null;
      let dataLabelSettings = opts && 'dataLabelSettings' in opts ? opts.dataLabelSettings : null;
      let isVisible = opts && 'isVisible' in opts ? opts.isVisible : null;
      let enableTooltip = opts && 'enableTooltip' in opts ? opts.enableTooltip : null;
      let dashArray = opts && 'dashArray' in opts ? opts.dashArray : null;
      let animationDuration = opts && 'animationDuration' in opts ? opts.animationDuration : null;
      let borderColor = opts && 'borderColor' in opts ? opts.borderColor : null;
      let borderWidth = opts && 'borderWidth' in opts ? opts.borderWidth : null;
      let gradient = opts && 'gradient' in opts ? opts.gradient : null;
      let selectionSettings = opts && 'selectionSettings' in opts ? opts.selectionSettings : null;
      let isVisibleInLegend = opts && 'isVisibleInLegend' in opts ? opts.isVisibleInLegend : null;
      let legendIconType = opts && 'legendIconType' in opts ? opts.legendIconType : null;
      let legendItemText = opts && 'legendItemText' in opts ? opts.legendItemText : null;
      let opacity = opts && 'opacity' in opts ? opts.opacity : null;
      let borderDrawMode = opts && 'borderDrawMode' in opts ? opts.borderDrawMode : null;
      this[borderDrawMode$2] = (t2 = borderDrawMode, t2 == null ? charts.RangeAreaBorderMode.all : t2);
      RangeAreaSeries.__proto__.new.call(this, {xValueMapper: xValueMapper, highValueMapper: highValueMapper, lowValueMapper: lowValueMapper, sortFieldValueMapper: sortFieldValueMapper, pointColorMapper: pointColorMapper, dataLabelMapper: dataLabelMapper, dataSource: dataSource, trendlines: trendlines, xAxisName: xAxisName, yAxisName: yAxisName, name: name, color: color, markerSettings: markerSettings, dataLabelSettings: dataLabelSettings, isVisible: isVisible, emptyPointSettings: emptyPointSettings, enableTooltip: enableTooltip, dashArray: dashArray, animationDuration: animationDuration, borderColor: borderColor, borderWidth: borderWidth, gradient: gradient, selectionSettings: selectionSettings, legendItemText: legendItemText, isVisibleInLegend: isVisibleInLegend, legendIconType: legendIconType, sortingOrder: sortingOrder, opacity: opacity});
      ;
    }).prototype = RangeAreaSeries.prototype;
    dart.addTypeTests(RangeAreaSeries);
    RangeAreaSeries.prototype[_is_RangeAreaSeries_default] = true;
    dart.setMethodSignature(RangeAreaSeries, () => ({
      __proto__: dart.getMethods(RangeAreaSeries.__proto__),
      createSegment: dart.fnType(charts.ChartSegment, []),
      createSegments: dart.fnType(dart.void, []),
      [_createSegment]: dart.fnType(dart.void, [core.List$(charts.CartesianChartPoint)]),
      customizeSegment: dart.fnType(dart.void, [charts.ChartSegment]),
      drawDataMarker: dart.fnType(dart.void, [core.int, ui.Canvas, ui.Paint, ui.Paint, core.double, core.double]),
      drawDataLabel: dart.fnType(dart.void, [core.int, ui.Canvas, core.String, core.double, core.double, core.int, charts.ChartTextStyle])
    }));
    dart.setLibraryUri(RangeAreaSeries, "package:syncfusion_flutter_charts/charts.dart");
    dart.setFieldSignature(RangeAreaSeries, () => ({
      __proto__: dart.getFields(RangeAreaSeries.__proto__),
      borderDrawMode: dart.finalFieldType(charts.RangeAreaBorderMode)
    }));
    return RangeAreaSeries;
  });
  charts.RangeAreaSeries = charts.RangeAreaSeries$();
  dart.addTypeTests(charts.RangeAreaSeries, _is_RangeAreaSeries_default);
  const _is_StackedLine100Series_default = Symbol('_is_StackedLine100Series_default');
  charts.StackedLine100Series$ = dart.generic((T, D) => {
    class StackedLine100Series extends charts._StackedSeriesBase$(T, D) {
      createSegment() {
        return new charts.StackedLine100Segment.new();
      }
      createSegments() {
        let values = JSArrayOfnum().of([]);
        let segmentIndex = 0;
        for (let i = 0; i < dart.notNull(this[_dataPoints$][$length]); i = i + 1) {
          if (dart.notNull(this[_dataPoints$][$length]) > 1) {
            if (values !== null && dart.test(values[$isNotEmpty]) && dart.notNull(values[$length]) > 3) {
              values[$_set](0, values[$_get](3));
              values[$_set](1, values[$_get](4));
              values[$_set](2, values[$_get](5));
              values[$removeRange](3, 6);
            }
            if (dart.test(this[_dataPoints$][$_get](i).isVisible)) {
              if (!dart.equals(this[_dataPoints$][$_get](i).isGap, true)) {
                if (dart.test(values[$isEmpty]) || dart.test(values[$isNotEmpty]) && !(core.identical(values[$_get](0), this[_dataPoints$][$_get](i).xValue) && core.identical(values[$_get](1), this[_dataPoints$][$_get](i).yValue))) {
                  values[$add](core.num._check(this[_dataPoints$][$_get](i).xValue));
                  values[$add](core.num._check(this[_dataPoints$][$_get](i).yValue));
                  values[$add](this[_dataPoints$][$_get](i).cumulativeValue);
                }
              }
              if ((i === 0 || dart.equals(this[_dataPoints$][$_get](i - 1).isGap, true)) && !dart.equals(this[_dataPoints$][$_get](i).isGap, true) && i !== dart.notNull(this[_dataPoints$][$length]) - 1 && !dart.equals(this[_dataPoints$][$_get](i + 1).isGap, true) && dart.test(this[_dataPoints$][$_get](i + 1).isVisible)) {
                values[$add](core.num._check(this[_dataPoints$][$_get](i + 1).xValue));
                values[$add](core.num._check(this[_dataPoints$][$_get](i + 1).yValue));
                values[$add](this[_dataPoints$][$_get](i + 1).cumulativeValue);
              } else if (dart.equals(this[_dataPoints$][$_get](i).isGap, true)) {
                values = JSArrayOfnum().of([]);
              }
            }
          }
          if (values !== null && dart.test(values[$isNotEmpty]) && dart.notNull(values[$length]) > 3) {
            this[_createSegment](values, this[_dataPoints$][$_get](i), segmentIndex, this[_dataPoints$][$_get](segmentIndex).pointColorMapper);
            segmentIndex = segmentIndex + 1;
          }
        }
      }
      [_createSegment](values, currentPoint, segmentIndex, pointColorMapper) {
        let segment = charts.StackedLine100Segment._check(this.createSegment());
        this[_isRectSeries] = false;
        if (segment != null) {
          segment.currentSegmentIndex = segmentIndex;
          segment[_seriesIndex] = this[_chart][_chartSeries].visibleSeries[$indexOf](this);
          segment.series = this;
          segment[_currentPoint] = currentPoint;
          if (dart.test(this[_chart][_chartState].widgetNeedUpdate) && this[_xAxis$][_zoomFactor] === 1 && this[_yAxis$][_zoomFactor] === 1 && this[_chart][_chartState].prevWidgetSeries != null && dart.test(this[_chart][_chartState].prevWidgetSeries[$isNotEmpty]) && dart.notNull(this[_chart][_chartState].prevWidgetSeries[$length]) - 1 >= dart.notNull(segment[_seriesIndex]) && this[_chart][_chartState].prevWidgetSeries[$_get](segment[_seriesIndex])[_seriesName] == segment.series[_seriesName]) {
            segment.oldSeries = charts.XyDataSeries._check(this[_chart][_chartState].prevWidgetSeries[$_get](segment[_seriesIndex]));
          }
          segment[_pointColorMapper] = pointColorMapper;
          segment[_setData](values);
          segment.calculateSegmentPoints();
          this.customizeSegment(segment);
          segment.strokePaint = segment.getStrokePaint();
          segment.fillPaint = segment.getFillPaint();
          this.segments[$add](segment);
        }
      }
      customizeSegment(segment) {
        segment.color = segment.series[_seriesColor];
        segment.strokeColor = segment.series[_seriesColor];
        segment.strokeWidth = segment.series.width;
      }
      drawDataMarker(index, canvas, fillPaint, strokePaint, pointX, pointY) {
        canvas.drawPath(this[_markerShapes][$_get](index), strokePaint);
        canvas.drawPath(this[_markerShapes][$_get](index), fillPaint);
      }
      drawDataLabel(index, canvas, dataLabel, pointX, pointY, angle, style) {
        return charts._drawText(canvas, dataLabel, new ui.Offset.new(pointX, pointY), style, angle);
      }
    }
    (StackedLine100Series.new = function(opts) {
      let t2;
      let dataSource = opts && 'dataSource' in opts ? opts.dataSource : null;
      let xValueMapper = opts && 'xValueMapper' in opts ? opts.xValueMapper : null;
      let yValueMapper = opts && 'yValueMapper' in opts ? opts.yValueMapper : null;
      let sortFieldValueMapper = opts && 'sortFieldValueMapper' in opts ? opts.sortFieldValueMapper : null;
      let pointColorMapper = opts && 'pointColorMapper' in opts ? opts.pointColorMapper : null;
      let dataLabelMapper = opts && 'dataLabelMapper' in opts ? opts.dataLabelMapper : null;
      let xAxisName = opts && 'xAxisName' in opts ? opts.xAxisName : null;
      let yAxisName = opts && 'yAxisName' in opts ? opts.yAxisName : null;
      let color = opts && 'color' in opts ? opts.color : null;
      let width = opts && 'width' in opts ? opts.width : null;
      let gradient = opts && 'gradient' in opts ? opts.gradient : null;
      let markerSettings = opts && 'markerSettings' in opts ? opts.markerSettings : null;
      let emptyPointSettings = opts && 'emptyPointSettings' in opts ? opts.emptyPointSettings : null;
      let dataLabelSettings = opts && 'dataLabelSettings' in opts ? opts.dataLabelSettings : null;
      let isVisible = opts && 'isVisible' in opts ? opts.isVisible : null;
      let name = opts && 'name' in opts ? opts.name : null;
      let enableTooltip = opts && 'enableTooltip' in opts ? opts.enableTooltip : null;
      let dashArray = opts && 'dashArray' in opts ? opts.dashArray : null;
      let animationDuration = opts && 'animationDuration' in opts ? opts.animationDuration : null;
      let trendlines = opts && 'trendlines' in opts ? opts.trendlines : null;
      let groupName = opts && 'groupName' in opts ? opts.groupName : null;
      let selectionSettings = opts && 'selectionSettings' in opts ? opts.selectionSettings : null;
      let isVisibleInLegend = opts && 'isVisibleInLegend' in opts ? opts.isVisibleInLegend : null;
      let legendIconType = opts && 'legendIconType' in opts ? opts.legendIconType : null;
      let sortingOrder = opts && 'sortingOrder' in opts ? opts.sortingOrder : null;
      let legendItemText = opts && 'legendItemText' in opts ? opts.legendItemText : null;
      let opacity = opts && 'opacity' in opts ? opts.opacity : null;
      let initialSelectedDataIndexes = opts && 'initialSelectedDataIndexes' in opts ? opts.initialSelectedDataIndexes : null;
      StackedLine100Series.__proto__.new.call(this, {name: name, xValueMapper: xValueMapper, yValueMapper: yValueMapper, sortFieldValueMapper: sortFieldValueMapper, pointColorMapper: pointColorMapper, dataLabelMapper: dataLabelMapper, dataSource: dataSource, xAxisName: xAxisName, yAxisName: yAxisName, color: color, width: (t2 = width, t2 == null ? 2.0 : t2), trendlines: trendlines, gradient: gradient, markerSettings: markerSettings, emptyPointSettings: emptyPointSettings, dataLabelSettings: dataLabelSettings, isVisible: isVisible, enableTooltip: enableTooltip, dashArray: dashArray, animationDuration: animationDuration, selectionSettings: selectionSettings, legendItemText: legendItemText, isVisibleInLegend: isVisibleInLegend, legendIconType: legendIconType, sortingOrder: sortingOrder, groupName: groupName, opacity: opacity, initialSelectedDataIndexes: initialSelectedDataIndexes});
      ;
    }).prototype = StackedLine100Series.prototype;
    dart.addTypeTests(StackedLine100Series);
    StackedLine100Series.prototype[_is_StackedLine100Series_default] = true;
    dart.setMethodSignature(StackedLine100Series, () => ({
      __proto__: dart.getMethods(StackedLine100Series.__proto__),
      createSegment: dart.fnType(charts.ChartSegment, []),
      createSegments: dart.fnType(dart.void, []),
      [_createSegment]: dart.fnType(dart.void, [core.List$(core.num), charts.CartesianChartPoint, core.int, ui.Color]),
      customizeSegment: dart.fnType(dart.void, [charts.ChartSegment]),
      drawDataMarker: dart.fnType(dart.void, [core.int, ui.Canvas, ui.Paint, ui.Paint, core.double, core.double]),
      drawDataLabel: dart.fnType(dart.void, [core.int, ui.Canvas, core.String, core.double, core.double, core.int, charts.ChartTextStyle])
    }));
    dart.setLibraryUri(StackedLine100Series, "package:syncfusion_flutter_charts/charts.dart");
    return StackedLine100Series;
  });
  charts.StackedLine100Series = charts.StackedLine100Series$();
  dart.addTypeTests(charts.StackedLine100Series, _is_StackedLine100Series_default);
  const _is_RangeColumnSeries_default = Symbol('_is_RangeColumnSeries_default');
  const trackColor$3 = dart.privateName(charts, "RangeColumnSeries.trackColor");
  const trackBorderColor$3 = dart.privateName(charts, "RangeColumnSeries.trackBorderColor");
  const trackBorderWidth$3 = dart.privateName(charts, "RangeColumnSeries.trackBorderWidth");
  const trackPadding$2 = dart.privateName(charts, "RangeColumnSeries.trackPadding");
  const spacing$3 = dart.privateName(charts, "RangeColumnSeries.spacing");
  const isTrackVisible$2 = dart.privateName(charts, "RangeColumnSeries.isTrackVisible");
  const borderRadius$2 = dart.privateName(charts, "RangeColumnSeries.borderRadius");
  charts.RangeColumnSeries$ = dart.generic((T, D) => {
    class RangeColumnSeries extends charts.XyDataSeries$(T, D) {
      get trackColor() {
        return this[trackColor$3];
      }
      set trackColor(value) {
        super.trackColor = value;
      }
      get trackBorderColor() {
        return this[trackBorderColor$3];
      }
      set trackBorderColor(value) {
        super.trackBorderColor = value;
      }
      get trackBorderWidth() {
        return this[trackBorderWidth$3];
      }
      set trackBorderWidth(value) {
        super.trackBorderWidth = value;
      }
      get trackPadding() {
        return this[trackPadding$2];
      }
      set trackPadding(value) {
        super.trackPadding = value;
      }
      get spacing() {
        return this[spacing$3];
      }
      set spacing(value) {
        super.spacing = value;
      }
      get isTrackVisible() {
        return this[isTrackVisible$2];
      }
      set isTrackVisible(value) {
        super.isTrackVisible = value;
      }
      get borderRadius() {
        return this[borderRadius$2];
      }
      set borderRadius(value) {
        super.borderRadius = value;
      }
      createSegment() {
        return new charts.RangeColumnSegment.new();
      }
      createSegments() {
        let segmentIndex = 0;
        for (let i = 0; i < dart.notNull(this[_dataPoints$][$length]); i = i + 1) {
          if (dart.test(this[_dataPoints$][$_get](i).isVisible) && !dart.equals(this[_dataPoints$][$_get](i).isGap, true) && !dart.equals(this[_dataPoints$][$_get](i).high, this[_dataPoints$][$_get](i).low)) {
            let values = JSArrayOfnum().of([]);
            values[$add](core.num._check(this[_dataPoints$][$_get](i).xValue));
            values[$add](core.num._check(this[_dataPoints$][$_get](i).high));
            values[$add](core.num._check(this[_dataPoints$][$_get](i).low));
            this[_createSegment](values, this[_dataPoints$][$_get](i), segmentIndex);
            segmentIndex = segmentIndex + 1;
          }
        }
      }
      [_createSegment](values, currentPoint, segmentIndex) {
        let segment = charts.RangeColumnSegment._check(this.createSegment());
        this[_isRectSeries] = true;
        if (segment != null) {
          segment[_seriesIndex] = this[_chart][_chartSeries].visibleSeries[$indexOf](this);
          segment.currentSegmentIndex = segmentIndex;
          segment.series = this;
          segment[_currentPoint] = currentPoint;
          segment[_setData](values);
          segment.calculateSegmentPoints();
          this.customizeSegment(segment);
          segment.strokePaint = segment.getStrokePaint();
          segment.fillPaint = segment.getFillPaint();
          segment[_trackerFillPaint] = segment[_getTrackerFillPaint]();
          segment[_trackerStrokePaint] = segment[_getTrackerStrokePaint]();
          this.segments[$add](segment);
        }
      }
      customizeSegment(segment) {
        segment.color = segment.series[_seriesColor];
        segment.strokeColor = segment.series.borderColor;
        segment.strokeWidth = segment.series.borderWidth;
      }
      drawDataMarker(index, canvas, fillPaint, strokePaint, pointX, pointY) {
        canvas.drawPath(this[_markerShapes][$_get](index), strokePaint);
        canvas.drawPath(this[_markerShapes][$_get](index), fillPaint);
        canvas.drawPath(this[_markerShapes2][$_get](index), strokePaint);
        canvas.drawPath(this[_markerShapes2][$_get](index), fillPaint);
      }
      drawDataLabel(index, canvas, dataLabel, pointX, pointY, angle, style) {
        return charts._drawText(canvas, dataLabel, new ui.Offset.new(pointX, pointY), style, angle);
      }
    }
    (RangeColumnSeries.new = function(opts) {
      let t2, t2$, t2$0, t2$1, t2$2, t2$3, t2$4;
      let dataSource = opts && 'dataSource' in opts ? opts.dataSource : null;
      let xValueMapper = opts && 'xValueMapper' in opts ? opts.xValueMapper : null;
      let highValueMapper = opts && 'highValueMapper' in opts ? opts.highValueMapper : null;
      let lowValueMapper = opts && 'lowValueMapper' in opts ? opts.lowValueMapper : null;
      let sortFieldValueMapper = opts && 'sortFieldValueMapper' in opts ? opts.sortFieldValueMapper : null;
      let pointColorMapper = opts && 'pointColorMapper' in opts ? opts.pointColorMapper : null;
      let dataLabelMapper = opts && 'dataLabelMapper' in opts ? opts.dataLabelMapper : null;
      let sortingOrder = opts && 'sortingOrder' in opts ? opts.sortingOrder : null;
      let isTrackVisible = opts && 'isTrackVisible' in opts ? opts.isTrackVisible : false;
      let xAxisName = opts && 'xAxisName' in opts ? opts.xAxisName : null;
      let yAxisName = opts && 'yAxisName' in opts ? opts.yAxisName : null;
      let name = opts && 'name' in opts ? opts.name : null;
      let color = opts && 'color' in opts ? opts.color : null;
      let width = opts && 'width' in opts ? opts.width : null;
      let spacing = opts && 'spacing' in opts ? opts.spacing : null;
      let markerSettings = opts && 'markerSettings' in opts ? opts.markerSettings : null;
      let emptyPointSettings = opts && 'emptyPointSettings' in opts ? opts.emptyPointSettings : null;
      let dataLabelSettings = opts && 'dataLabelSettings' in opts ? opts.dataLabelSettings : null;
      let isVisible = opts && 'isVisible' in opts ? opts.isVisible : null;
      let gradient = opts && 'gradient' in opts ? opts.gradient : null;
      let borderRadius = opts && 'borderRadius' in opts ? opts.borderRadius : null;
      let enableTooltip = opts && 'enableTooltip' in opts ? opts.enableTooltip : null;
      let animationDuration = opts && 'animationDuration' in opts ? opts.animationDuration : null;
      let trackColor = opts && 'trackColor' in opts ? opts.trackColor : null;
      let trackBorderColor = opts && 'trackBorderColor' in opts ? opts.trackBorderColor : null;
      let trackBorderWidth = opts && 'trackBorderWidth' in opts ? opts.trackBorderWidth : null;
      let trackPadding = opts && 'trackPadding' in opts ? opts.trackPadding : null;
      let borderColor = opts && 'borderColor' in opts ? opts.borderColor : null;
      let trendlines = opts && 'trendlines' in opts ? opts.trendlines : null;
      let borderWidth = opts && 'borderWidth' in opts ? opts.borderWidth : null;
      let selectionSettings = opts && 'selectionSettings' in opts ? opts.selectionSettings : null;
      let isVisibleInLegend = opts && 'isVisibleInLegend' in opts ? opts.isVisibleInLegend : null;
      let legendIconType = opts && 'legendIconType' in opts ? opts.legendIconType : null;
      let legendItemText = opts && 'legendItemText' in opts ? opts.legendItemText : null;
      let opacity = opts && 'opacity' in opts ? opts.opacity : null;
      let dashArray = opts && 'dashArray' in opts ? opts.dashArray : null;
      let initialSelectedDataIndexes = opts && 'initialSelectedDataIndexes' in opts ? opts.initialSelectedDataIndexes : null;
      this[_rectPosition] = null;
      this[_rectCount] = null;
      this[isTrackVisible$2] = isTrackVisible;
      this[trackColor$3] = (t2 = trackColor, t2 == null ? colors$.Colors.grey : t2);
      this[trackBorderColor$3] = (t2$ = trackBorderColor, t2$ == null ? colors$.Colors.transparent : t2$);
      this[trackBorderWidth$3] = (t2$0 = trackBorderWidth, t2$0 == null ? 1.0 : t2$0);
      this[trackPadding$2] = (t2$1 = trackPadding, t2$1 == null ? 0.0 : t2$1);
      this[spacing$3] = (t2$2 = spacing, t2$2 == null ? 0.0 : t2$2);
      this[borderRadius$2] = (t2$3 = borderRadius, t2$3 == null ? C547 || CT.C547 : t2$3);
      RangeColumnSeries.__proto__.new.call(this, {name: name, xValueMapper: xValueMapper, highValueMapper: highValueMapper, lowValueMapper: lowValueMapper, sortFieldValueMapper: sortFieldValueMapper, pointColorMapper: pointColorMapper, dataLabelMapper: dataLabelMapper, dataSource: dataSource, trendlines: trendlines, xAxisName: xAxisName, yAxisName: yAxisName, color: color, width: (t2$4 = width, t2$4 == null ? 0.7 : t2$4), markerSettings: markerSettings, dataLabelSettings: dataLabelSettings, isVisible: isVisible, gradient: gradient, emptyPointSettings: emptyPointSettings, enableTooltip: enableTooltip, animationDuration: animationDuration, borderColor: borderColor, borderWidth: borderWidth, selectionSettings: selectionSettings, legendItemText: legendItemText, isVisibleInLegend: isVisibleInLegend, legendIconType: legendIconType, sortingOrder: sortingOrder, opacity: opacity, dashArray: dashArray, initialSelectedDataIndexes: initialSelectedDataIndexes});
      ;
    }).prototype = RangeColumnSeries.prototype;
    dart.addTypeTests(RangeColumnSeries);
    RangeColumnSeries.prototype[_is_RangeColumnSeries_default] = true;
    dart.setMethodSignature(RangeColumnSeries, () => ({
      __proto__: dart.getMethods(RangeColumnSeries.__proto__),
      createSegment: dart.fnType(charts.ChartSegment, []),
      createSegments: dart.fnType(dart.void, []),
      [_createSegment]: dart.fnType(dart.void, [core.List$(core.num), charts.CartesianChartPoint, core.int]),
      customizeSegment: dart.fnType(dart.void, [charts.ChartSegment]),
      drawDataMarker: dart.fnType(dart.void, [core.int, ui.Canvas, ui.Paint, ui.Paint, core.double, core.double]),
      drawDataLabel: dart.fnType(dart.void, [core.int, ui.Canvas, core.String, core.double, core.double, core.int, charts.ChartTextStyle])
    }));
    dart.setLibraryUri(RangeColumnSeries, "package:syncfusion_flutter_charts/charts.dart");
    dart.setFieldSignature(RangeColumnSeries, () => ({
      __proto__: dart.getFields(RangeColumnSeries.__proto__),
      [_rectPosition]: dart.fieldType(core.num),
      [_rectCount]: dart.fieldType(core.num),
      trackColor: dart.finalFieldType(ui.Color),
      trackBorderColor: dart.finalFieldType(ui.Color),
      trackBorderWidth: dart.finalFieldType(core.double),
      trackPadding: dart.finalFieldType(core.double),
      spacing: dart.finalFieldType(core.double),
      isTrackVisible: dart.finalFieldType(core.bool),
      borderRadius: dart.finalFieldType(border_radius.BorderRadius)
    }));
    return RangeColumnSeries;
  });
  charts.RangeColumnSeries = charts.RangeColumnSeries$();
  dart.addTypeTests(charts.RangeColumnSeries, _is_RangeColumnSeries_default);
  const _is_ScatterSeries_default = Symbol('_is_ScatterSeries_default');
  charts.ScatterSeries$ = dart.generic((T, D) => {
    class ScatterSeries extends charts.XyDataSeries$(T, D) {
      createSegment() {
        return new charts.ScatterSegment.new();
      }
      createSegments() {
      }
      drawSegment(canvas, segment) {
        segment.onPaint(canvas);
      }
      addSegment(currentPoint, pointIndex, seriesIndex, animateFactor) {
        let segment = charts.ScatterSegment._check(this.createSegment());
        this[_isRectSeries] = false;
        if (segment != null) {
          segment[_seriesIndex] = seriesIndex;
          segment.currentSegmentIndex = pointIndex;
          segment.series = this;
          segment.animationFactor = animateFactor;
          segment[_point] = currentPoint;
          segment[_currentPoint] = currentPoint;
          if (dart.test(this[_chart][_chartState].widgetNeedUpdate) && !dart.test(this[_chart][_chartState][_isLegendToggled]) && this[_chart][_chartState].prevWidgetSeries != null && dart.test(this[_chart][_chartState].prevWidgetSeries[$isNotEmpty]) && dart.notNull(this[_chart][_chartState].prevWidgetSeries[$length]) - 1 >= dart.notNull(segment[_seriesIndex]) && this[_chart][_chartState].prevWidgetSeries[$_get](segment[_seriesIndex])[_seriesName] == segment.series[_seriesName]) {
            segment.oldSeries = charts.XyDataSeries._check(this[_chart][_chartState].prevWidgetSeries[$_get](segment[_seriesIndex]));
            segment[_oldPoint] = dart.test(segment.oldSeries.segments[$isNotEmpty]) && charts.ScatterSegment.is(segment.oldSeries.segments[$_get](0)) && dart.notNull(segment.oldSeries[_dataPoints$][$length]) - 1 >= dart.notNull(pointIndex) ? segment.oldSeries[_dataPoints$][$_get](pointIndex) : null;
          }
          let location = charts._calculatePoint(core.num._check(currentPoint.xValue), core.num._check(currentPoint.yValue), this[_xAxis$], this[_yAxis$], this[_chart][_requireInvertedAxis], this, this[_chart][_chartAxis][_axisClipRect]);
          segment.centerX = location.x;
          segment.centerY = location.y;
          segment.radius = this.markerSettings.width;
          segment.segmentRect = new ui.RRect.fromRectAndRadius(currentPoint.region, ui.Radius.zero);
          this.customizeSegment(segment);
          this.segments[$add](segment);
        }
        return segment;
      }
      customizeSegment(segment) {
        let t2;
        let scatterSegment = charts.ScatterSegment._check(segment);
        scatterSegment.color = scatterSegment.series[_seriesColor];
        scatterSegment.strokeColor = (t2 = scatterSegment.series.borderColor, t2 == null ? scatterSegment.series[_seriesColor] : t2);
        scatterSegment.strokeWidth = scatterSegment.series.borderWidth;
        scatterSegment.strokePaint = scatterSegment.getStrokePaint();
        scatterSegment.fillPaint = scatterSegment.getFillPaint();
      }
      drawDataMarker(index, canvas, fillPaint, strokePaint, pointX, pointY) {
        let size = new ui.Size.new(this.markerSettings.width, this.markerSettings.height);
        let markerPath = charts._getMarkerShapes(this.markerSettings.shape, new ui.Offset.new(pointX, pointY), size, this);
        canvas.drawPath(markerPath, fillPaint);
        canvas.drawPath(markerPath, strokePaint);
      }
      drawDataLabel(index, canvas, dataLabel, pointX, pointY, angle, style) {
        return charts._drawText(canvas, dataLabel, new ui.Offset.new(pointX, pointY), style, angle);
      }
    }
    (ScatterSeries.new = function(opts) {
      let dataSource = opts && 'dataSource' in opts ? opts.dataSource : null;
      let xValueMapper = opts && 'xValueMapper' in opts ? opts.xValueMapper : null;
      let yValueMapper = opts && 'yValueMapper' in opts ? opts.yValueMapper : null;
      let sortFieldValueMapper = opts && 'sortFieldValueMapper' in opts ? opts.sortFieldValueMapper : null;
      let pointColorMapper = opts && 'pointColorMapper' in opts ? opts.pointColorMapper : null;
      let dataLabelMapper = opts && 'dataLabelMapper' in opts ? opts.dataLabelMapper : null;
      let xAxisName = opts && 'xAxisName' in opts ? opts.xAxisName : null;
      let yAxisName = opts && 'yAxisName' in opts ? opts.yAxisName : null;
      let name = opts && 'name' in opts ? opts.name : null;
      let color = opts && 'color' in opts ? opts.color : null;
      let markerSettings = opts && 'markerSettings' in opts ? opts.markerSettings : null;
      let emptyPointSettings = opts && 'emptyPointSettings' in opts ? opts.emptyPointSettings : null;
      let isVisible = opts && 'isVisible' in opts ? opts.isVisible : null;
      let dataLabelSettings = opts && 'dataLabelSettings' in opts ? opts.dataLabelSettings : null;
      let enableTooltip = opts && 'enableTooltip' in opts ? opts.enableTooltip : null;
      let trendlines = opts && 'trendlines' in opts ? opts.trendlines : null;
      let animationDuration = opts && 'animationDuration' in opts ? opts.animationDuration : null;
      let borderColor = opts && 'borderColor' in opts ? opts.borderColor : null;
      let borderWidth = opts && 'borderWidth' in opts ? opts.borderWidth : null;
      let gradient = opts && 'gradient' in opts ? opts.gradient : null;
      let selectionSettings = opts && 'selectionSettings' in opts ? opts.selectionSettings : null;
      let isVisibleInLegend = opts && 'isVisibleInLegend' in opts ? opts.isVisibleInLegend : null;
      let legendIconType = opts && 'legendIconType' in opts ? opts.legendIconType : null;
      let sortingOrder = opts && 'sortingOrder' in opts ? opts.sortingOrder : null;
      let legendItemText = opts && 'legendItemText' in opts ? opts.legendItemText : null;
      let opacity = opts && 'opacity' in opts ? opts.opacity : null;
      let initialSelectedDataIndexes = opts && 'initialSelectedDataIndexes' in opts ? opts.initialSelectedDataIndexes : null;
      this[_point] = null;
      this[_isLineType] = false;
      ScatterSeries.__proto__.new.call(this, {xValueMapper: xValueMapper, yValueMapper: yValueMapper, sortFieldValueMapper: sortFieldValueMapper, pointColorMapper: pointColorMapper, dataLabelMapper: dataLabelMapper, dataSource: dataSource, xAxisName: xAxisName, yAxisName: yAxisName, name: name, color: color, markerSettings: markerSettings, dataLabelSettings: dataLabelSettings, emptyPointSettings: emptyPointSettings, enableTooltip: enableTooltip, isVisible: isVisible, animationDuration: animationDuration, borderColor: borderColor, borderWidth: borderWidth, trendlines: trendlines, gradient: gradient, selectionSettings: selectionSettings, legendItemText: legendItemText, isVisibleInLegend: isVisibleInLegend, legendIconType: legendIconType, sortingOrder: sortingOrder, opacity: opacity, initialSelectedDataIndexes: initialSelectedDataIndexes});
      ;
    }).prototype = ScatterSeries.prototype;
    dart.addTypeTests(ScatterSeries);
    ScatterSeries.prototype[_is_ScatterSeries_default] = true;
    dart.setMethodSignature(ScatterSeries, () => ({
      __proto__: dart.getMethods(ScatterSeries.__proto__),
      createSegment: dart.fnType(charts.ChartSegment, []),
      createSegments: dart.fnType(dart.void, []),
      drawSegment: dart.fnType(dart.void, [ui.Canvas, charts.ChartSegment]),
      addSegment: dart.fnType(charts.ChartSegment, [charts.CartesianChartPoint, core.int, core.int, core.num]),
      customizeSegment: dart.fnType(dart.void, [charts.ChartSegment]),
      drawDataMarker: dart.fnType(dart.void, [core.int, ui.Canvas, ui.Paint, ui.Paint, core.double, core.double]),
      drawDataLabel: dart.fnType(dart.void, [core.int, ui.Canvas, core.String, core.double, core.double, core.int, charts.ChartTextStyle])
    }));
    dart.setLibraryUri(ScatterSeries, "package:syncfusion_flutter_charts/charts.dart");
    dart.setFieldSignature(ScatterSeries, () => ({
      __proto__: dart.getFields(ScatterSeries.__proto__),
      [_point]: dart.fieldType(charts.CartesianChartPoint),
      [_isLineType]: dart.finalFieldType(core.bool)
    }));
    return ScatterSeries;
  });
  charts.ScatterSeries = charts.ScatterSeries$();
  dart.addTypeTests(charts.ScatterSeries, _is_ScatterSeries_default);
  const _is_StackedBarSeries_default = Symbol('_is_StackedBarSeries_default');
  const _rectPosition$4 = dart.privateName(charts, "StackedBarSeries._rectPosition");
  const _rectCount$4 = dart.privateName(charts, "StackedBarSeries._rectCount");
  charts.StackedBarSeries$ = dart.generic((T, D) => {
    class StackedBarSeries extends charts._StackedSeriesBase$(T, D) {
      get [_rectPosition]() {
        return this[_rectPosition$4];
      }
      set [_rectPosition](value) {
        this[_rectPosition$4] = value;
      }
      get [_rectCount]() {
        return this[_rectCount$4];
      }
      set [_rectCount](value) {
        this[_rectCount$4] = value;
      }
      createSegment() {
        return new charts.StackedBarSegment.new();
      }
      createSegments() {
        let segmentIndex = 0;
        for (let i = 0; i < dart.notNull(this[_dataPoints$][$length]); i = i + 1) {
          if (dart.test(this[_dataPoints$][$_get](i).isVisible) && !dart.equals(this[_dataPoints$][$_get](i).isGap, true)) {
            let values = JSArrayOfnum().of([]);
            values[$add](core.num._check(this[_dataPoints$][$_get](i).xValue));
            values[$add](core.num._check(this[_dataPoints$][$_get](i).yValue));
            this[_createSegment](values, this[_dataPoints$][$_get](i), segmentIndex);
            segmentIndex = segmentIndex + 1;
          }
        }
      }
      [_createSegment](values, currentPoint, segmentIndex) {
        let segment = charts.StackedBarSegment._check(this.createSegment());
        this[_isRectSeries] = true;
        if (segment != null) {
          segment[_seriesIndex] = this[_chart][_chartSeries].visibleSeries[$indexOf](this);
          segment.currentSegmentIndex = segmentIndex;
          segment.series = this;
          segment[_currentPoint] = currentPoint;
          segment[_setData](values);
          segment.calculateSegmentPoints();
          this.customizeSegment(segment);
          segment.strokePaint = segment.getStrokePaint();
          segment.fillPaint = segment.getFillPaint();
          segment[_trackerFillPaint] = segment[_getTrackerFillPaint]();
          segment[_trackerStrokePaint] = segment[_getTrackerStrokePaint]();
          this.segments[$add](segment);
        }
      }
      customizeSegment(segment) {
        segment.color = segment.series[_seriesColor];
        segment.strokeColor = segment.series.borderColor;
        segment.strokeWidth = segment.series.borderWidth;
      }
      drawDataLabel(index, canvas, dataLabel, pointX, pointY, angle, style) {
        return charts._drawText(canvas, dataLabel, new ui.Offset.new(pointX, pointY), style, angle);
      }
      drawDataMarker(index, canvas, fillPaint, strokePaint, pointX, pointY) {
        canvas.drawPath(this[_markerShapes][$_get](index), strokePaint);
        canvas.drawPath(this[_markerShapes][$_get](index), fillPaint);
      }
    }
    (StackedBarSeries.new = function(opts) {
      let t2;
      let dataSource = opts && 'dataSource' in opts ? opts.dataSource : null;
      let xValueMapper = opts && 'xValueMapper' in opts ? opts.xValueMapper : null;
      let yValueMapper = opts && 'yValueMapper' in opts ? opts.yValueMapper : null;
      let sortFieldValueMapper = opts && 'sortFieldValueMapper' in opts ? opts.sortFieldValueMapper : null;
      let pointColorMapper = opts && 'pointColorMapper' in opts ? opts.pointColorMapper : null;
      let dataLabelMapper = opts && 'dataLabelMapper' in opts ? opts.dataLabelMapper : null;
      let sortingOrder = opts && 'sortingOrder' in opts ? opts.sortingOrder : null;
      let isTrackVisible = opts && 'isTrackVisible' in opts ? opts.isTrackVisible : null;
      let groupName = opts && 'groupName' in opts ? opts.groupName : null;
      let xAxisName = opts && 'xAxisName' in opts ? opts.xAxisName : null;
      let yAxisName = opts && 'yAxisName' in opts ? opts.yAxisName : null;
      let name = opts && 'name' in opts ? opts.name : null;
      let color = opts && 'color' in opts ? opts.color : null;
      let width = opts && 'width' in opts ? opts.width : null;
      let spacing = opts && 'spacing' in opts ? opts.spacing : null;
      let markerSettings = opts && 'markerSettings' in opts ? opts.markerSettings : null;
      let emptyPointSettings = opts && 'emptyPointSettings' in opts ? opts.emptyPointSettings : null;
      let dataLabelSettings = opts && 'dataLabelSettings' in opts ? opts.dataLabelSettings : null;
      let isVisible = opts && 'isVisible' in opts ? opts.isVisible : null;
      let gradient = opts && 'gradient' in opts ? opts.gradient : null;
      let borderRadius = opts && 'borderRadius' in opts ? opts.borderRadius : null;
      let enableTooltip = opts && 'enableTooltip' in opts ? opts.enableTooltip : null;
      let animationDuration = opts && 'animationDuration' in opts ? opts.animationDuration : null;
      let trackColor = opts && 'trackColor' in opts ? opts.trackColor : null;
      let trackBorderColor = opts && 'trackBorderColor' in opts ? opts.trackBorderColor : null;
      let trackBorderWidth = opts && 'trackBorderWidth' in opts ? opts.trackBorderWidth : null;
      let trackPadding = opts && 'trackPadding' in opts ? opts.trackPadding : null;
      let trendlines = opts && 'trendlines' in opts ? opts.trendlines : null;
      let borderColor = opts && 'borderColor' in opts ? opts.borderColor : null;
      let borderWidth = opts && 'borderWidth' in opts ? opts.borderWidth : null;
      let selectionSettings = opts && 'selectionSettings' in opts ? opts.selectionSettings : null;
      let isVisibleInLegend = opts && 'isVisibleInLegend' in opts ? opts.isVisibleInLegend : null;
      let legendIconType = opts && 'legendIconType' in opts ? opts.legendIconType : null;
      let legendItemText = opts && 'legendItemText' in opts ? opts.legendItemText : null;
      let dashArray = opts && 'dashArray' in opts ? opts.dashArray : null;
      let opacity = opts && 'opacity' in opts ? opts.opacity : null;
      let initialSelectedDataIndexes = opts && 'initialSelectedDataIndexes' in opts ? opts.initialSelectedDataIndexes : null;
      this[_rectPosition$4] = null;
      this[_rectCount$4] = null;
      StackedBarSeries.__proto__.new.call(this, {name: name, dashArray: dashArray, groupName: groupName, spacing: spacing, xValueMapper: xValueMapper, yValueMapper: yValueMapper, sortFieldValueMapper: sortFieldValueMapper, pointColorMapper: pointColorMapper, dataLabelMapper: dataLabelMapper, dataSource: dataSource, trendlines: trendlines, xAxisName: xAxisName, isTrackVisible: isTrackVisible, trackColor: trackColor, trackBorderColor: trackBorderColor, trackBorderWidth: trackBorderWidth, trackPadding: trackPadding, yAxisName: yAxisName, color: color, width: (t2 = width, t2 == null ? 0.7 : t2), markerSettings: markerSettings, dataLabelSettings: dataLabelSettings, isVisible: isVisible, gradient: gradient, emptyPointSettings: emptyPointSettings, enableTooltip: enableTooltip, animationDuration: animationDuration, borderColor: borderColor, borderWidth: borderWidth, borderRadius: borderRadius, selectionSettings: selectionSettings, legendItemText: legendItemText, isVisibleInLegend: isVisibleInLegend, legendIconType: legendIconType, sortingOrder: sortingOrder, opacity: opacity, initialSelectedDataIndexes: initialSelectedDataIndexes});
      ;
    }).prototype = StackedBarSeries.prototype;
    dart.addTypeTests(StackedBarSeries);
    StackedBarSeries.prototype[_is_StackedBarSeries_default] = true;
    dart.setMethodSignature(StackedBarSeries, () => ({
      __proto__: dart.getMethods(StackedBarSeries.__proto__),
      createSegment: dart.fnType(charts.ChartSegment, []),
      createSegments: dart.fnType(dart.void, []),
      [_createSegment]: dart.fnType(dart.void, [core.List$(core.num), charts.CartesianChartPoint, core.int]),
      customizeSegment: dart.fnType(dart.void, [charts.ChartSegment]),
      drawDataLabel: dart.fnType(dart.void, [core.int, ui.Canvas, core.String, core.double, core.double, core.int, charts.ChartTextStyle]),
      drawDataMarker: dart.fnType(dart.void, [core.int, ui.Canvas, ui.Paint, ui.Paint, core.double, core.double])
    }));
    dart.setLibraryUri(StackedBarSeries, "package:syncfusion_flutter_charts/charts.dart");
    dart.setFieldSignature(StackedBarSeries, () => ({
      __proto__: dart.getFields(StackedBarSeries.__proto__),
      [_rectPosition]: dart.fieldType(core.num),
      [_rectCount]: dart.fieldType(core.num)
    }));
    return StackedBarSeries;
  });
  charts.StackedBarSeries = charts.StackedBarSeries$();
  dart.addTypeTests(charts.StackedBarSeries, _is_StackedBarSeries_default);
  const _is_StackedBar100Series_default = Symbol('_is_StackedBar100Series_default');
  const _rectPosition$5 = dart.privateName(charts, "StackedBar100Series._rectPosition");
  const _rectCount$5 = dart.privateName(charts, "StackedBar100Series._rectCount");
  charts.StackedBar100Series$ = dart.generic((T, D) => {
    class StackedBar100Series extends charts._StackedSeriesBase$(T, D) {
      get [_rectPosition]() {
        return this[_rectPosition$5];
      }
      set [_rectPosition](value) {
        this[_rectPosition$5] = value;
      }
      get [_rectCount]() {
        return this[_rectCount$5];
      }
      set [_rectCount](value) {
        this[_rectCount$5] = value;
      }
      createSegment() {
        return new charts.StackedBar100Segment.new();
      }
      createSegments() {
        let segmentIndex = 0;
        for (let i = 0; i < dart.notNull(this[_dataPoints$][$length]); i = i + 1) {
          if (dart.test(this[_dataPoints$][$_get](i).isVisible) && !dart.equals(this[_dataPoints$][$_get](i).isGap, true)) {
            let values = JSArrayOfnum().of([]);
            values[$add](core.num._check(this[_dataPoints$][$_get](i).xValue));
            values[$add](core.num._check(this[_dataPoints$][$_get](i).yValue));
            this[_createSegment](values, this[_dataPoints$][$_get](i), segmentIndex);
            segmentIndex = segmentIndex + 1;
          }
        }
      }
      [_createSegment](values, currentPoint, segmentIndex) {
        let segment = charts.StackedBar100Segment._check(this.createSegment());
        this[_isRectSeries] = true;
        if (segment != null) {
          segment[_seriesIndex] = this[_chart][_chartSeries].visibleSeries[$indexOf](this);
          segment.currentSegmentIndex = segmentIndex;
          segment.series = this;
          segment[_currentPoint] = currentPoint;
          segment[_setData](values);
          segment.calculateSegmentPoints();
          this.customizeSegment(segment);
          segment.strokePaint = segment.getStrokePaint();
          segment.fillPaint = segment.getFillPaint();
          this.segments[$add](segment);
        }
      }
      customizeSegment(segment) {
        segment.color = segment.series[_seriesColor];
        segment.strokeColor = segment.series.borderColor;
        segment.strokeWidth = segment.series.borderWidth;
      }
      drawDataLabel(index, canvas, dataLabel, pointX, pointY, angle, style) {
        return charts._drawText(canvas, dataLabel, new ui.Offset.new(pointX, pointY), style, angle);
      }
      drawDataMarker(index, canvas, fillPaint, strokePaint, pointX, pointY) {
        canvas.drawPath(this[_markerShapes][$_get](index), strokePaint);
        canvas.drawPath(this[_markerShapes][$_get](index), fillPaint);
      }
    }
    (StackedBar100Series.new = function(opts) {
      let t2;
      let dataSource = opts && 'dataSource' in opts ? opts.dataSource : null;
      let xValueMapper = opts && 'xValueMapper' in opts ? opts.xValueMapper : null;
      let yValueMapper = opts && 'yValueMapper' in opts ? opts.yValueMapper : null;
      let sortFieldValueMapper = opts && 'sortFieldValueMapper' in opts ? opts.sortFieldValueMapper : null;
      let pointColorMapper = opts && 'pointColorMapper' in opts ? opts.pointColorMapper : null;
      let dataLabelMapper = opts && 'dataLabelMapper' in opts ? opts.dataLabelMapper : null;
      let sortingOrder = opts && 'sortingOrder' in opts ? opts.sortingOrder : null;
      let groupName = opts && 'groupName' in opts ? opts.groupName : null;
      let xAxisName = opts && 'xAxisName' in opts ? opts.xAxisName : null;
      let yAxisName = opts && 'yAxisName' in opts ? opts.yAxisName : null;
      let name = opts && 'name' in opts ? opts.name : null;
      let color = opts && 'color' in opts ? opts.color : null;
      let width = opts && 'width' in opts ? opts.width : null;
      let spacing = opts && 'spacing' in opts ? opts.spacing : null;
      let markerSettings = opts && 'markerSettings' in opts ? opts.markerSettings : null;
      let emptyPointSettings = opts && 'emptyPointSettings' in opts ? opts.emptyPointSettings : null;
      let dataLabelSettings = opts && 'dataLabelSettings' in opts ? opts.dataLabelSettings : null;
      let isVisible = opts && 'isVisible' in opts ? opts.isVisible : null;
      let gradient = opts && 'gradient' in opts ? opts.gradient : null;
      let borderRadius = opts && 'borderRadius' in opts ? opts.borderRadius : null;
      let enableTooltip = opts && 'enableTooltip' in opts ? opts.enableTooltip : null;
      let animationDuration = opts && 'animationDuration' in opts ? opts.animationDuration : null;
      let trendlines = opts && 'trendlines' in opts ? opts.trendlines : null;
      let borderColor = opts && 'borderColor' in opts ? opts.borderColor : null;
      let borderWidth = opts && 'borderWidth' in opts ? opts.borderWidth : null;
      let selectionSettings = opts && 'selectionSettings' in opts ? opts.selectionSettings : null;
      let isVisibleInLegend = opts && 'isVisibleInLegend' in opts ? opts.isVisibleInLegend : null;
      let legendIconType = opts && 'legendIconType' in opts ? opts.legendIconType : null;
      let legendItemText = opts && 'legendItemText' in opts ? opts.legendItemText : null;
      let dashArray = opts && 'dashArray' in opts ? opts.dashArray : null;
      let opacity = opts && 'opacity' in opts ? opts.opacity : null;
      let initialSelectedDataIndexes = opts && 'initialSelectedDataIndexes' in opts ? opts.initialSelectedDataIndexes : null;
      this[_rectPosition$5] = null;
      this[_rectCount$5] = null;
      StackedBar100Series.__proto__.new.call(this, {name: name, dashArray: dashArray, groupName: groupName, spacing: spacing, xValueMapper: xValueMapper, yValueMapper: yValueMapper, sortFieldValueMapper: sortFieldValueMapper, pointColorMapper: pointColorMapper, dataLabelMapper: dataLabelMapper, dataSource: dataSource, xAxisName: xAxisName, yAxisName: yAxisName, trendlines: trendlines, color: color, width: (t2 = width, t2 == null ? 0.7 : t2), markerSettings: markerSettings, dataLabelSettings: dataLabelSettings, isVisible: isVisible, gradient: gradient, emptyPointSettings: emptyPointSettings, enableTooltip: enableTooltip, animationDuration: animationDuration, borderColor: borderColor, borderWidth: borderWidth, borderRadius: borderRadius, selectionSettings: selectionSettings, legendItemText: legendItemText, isVisibleInLegend: isVisibleInLegend, legendIconType: legendIconType, sortingOrder: sortingOrder, opacity: opacity, initialSelectedDataIndexes: initialSelectedDataIndexes});
      ;
    }).prototype = StackedBar100Series.prototype;
    dart.addTypeTests(StackedBar100Series);
    StackedBar100Series.prototype[_is_StackedBar100Series_default] = true;
    dart.setMethodSignature(StackedBar100Series, () => ({
      __proto__: dart.getMethods(StackedBar100Series.__proto__),
      createSegment: dart.fnType(charts.ChartSegment, []),
      createSegments: dart.fnType(dart.void, []),
      [_createSegment]: dart.fnType(dart.void, [core.List$(core.num), charts.CartesianChartPoint, core.int]),
      customizeSegment: dart.fnType(dart.void, [charts.ChartSegment]),
      drawDataLabel: dart.fnType(dart.void, [core.int, ui.Canvas, core.String, core.double, core.double, core.int, charts.ChartTextStyle]),
      drawDataMarker: dart.fnType(dart.void, [core.int, ui.Canvas, ui.Paint, ui.Paint, core.double, core.double])
    }));
    dart.setLibraryUri(StackedBar100Series, "package:syncfusion_flutter_charts/charts.dart");
    dart.setFieldSignature(StackedBar100Series, () => ({
      __proto__: dart.getFields(StackedBar100Series.__proto__),
      [_rectPosition]: dart.fieldType(core.num),
      [_rectCount]: dart.fieldType(core.num)
    }));
    return StackedBar100Series;
  });
  charts.StackedBar100Series = charts.StackedBar100Series$();
  dart.addTypeTests(charts.StackedBar100Series, _is_StackedBar100Series_default);
  const _is_StackedColumnSeries_default = Symbol('_is_StackedColumnSeries_default');
  const _rectPosition$6 = dart.privateName(charts, "StackedColumnSeries._rectPosition");
  const _rectCount$6 = dart.privateName(charts, "StackedColumnSeries._rectCount");
  charts.StackedColumnSeries$ = dart.generic((T, D) => {
    class StackedColumnSeries extends charts._StackedSeriesBase$(T, D) {
      get [_rectPosition]() {
        return this[_rectPosition$6];
      }
      set [_rectPosition](value) {
        this[_rectPosition$6] = value;
      }
      get [_rectCount]() {
        return this[_rectCount$6];
      }
      set [_rectCount](value) {
        this[_rectCount$6] = value;
      }
      createSegment() {
        return new charts.StackedColumnSegment.new();
      }
      createSegments() {
        let segmentIndex = 0;
        for (let i = 0; i < dart.notNull(this[_dataPoints$][$length]); i = i + 1) {
          if (dart.test(this[_dataPoints$][$_get](i).isVisible) && !dart.equals(this[_dataPoints$][$_get](i).isGap, true)) {
            let values = JSArrayOfnum().of([]);
            values[$add](core.num._check(this[_dataPoints$][$_get](i).xValue));
            values[$add](core.num._check(this[_dataPoints$][$_get](i).yValue));
            this[_createSegment](values, this[_dataPoints$][$_get](i), segmentIndex);
            segmentIndex = segmentIndex + 1;
          }
        }
      }
      [_createSegment](values, currentPoint, segmentIndex) {
        let segment = charts.StackedColumnSegment._check(this.createSegment());
        this[_isRectSeries] = true;
        if (segment != null) {
          segment[_seriesIndex] = this[_chart][_chartSeries].visibleSeries[$indexOf](this);
          segment.currentSegmentIndex = segmentIndex;
          segment.series = this;
          segment[_currentPoint] = currentPoint;
          segment[_setData](values);
          segment.calculateSegmentPoints();
          this.customizeSegment(segment);
          segment.strokePaint = segment.getStrokePaint();
          segment.fillPaint = segment.getFillPaint();
          segment[_trackerFillPaint] = segment[_getTrackerFillPaint]();
          segment[_trackerStrokePaint] = segment[_getTrackerStrokePaint]();
          this.segments[$add](segment);
        }
      }
      customizeSegment(segment) {
        segment.color = segment.series[_seriesColor];
        segment.strokeColor = segment.series.borderColor;
        segment.strokeWidth = segment.series.borderWidth;
      }
      drawDataLabel(index, canvas, dataLabel, pointX, pointY, angle, style) {
        return charts._drawText(canvas, dataLabel, new ui.Offset.new(pointX, pointY), style, angle);
      }
      drawDataMarker(index, canvas, fillPaint, strokePaint, pointX, pointY) {
        canvas.drawPath(this[_markerShapes][$_get](index), strokePaint);
        canvas.drawPath(this[_markerShapes][$_get](index), fillPaint);
      }
    }
    (StackedColumnSeries.new = function(opts) {
      let t2;
      let dataSource = opts && 'dataSource' in opts ? opts.dataSource : null;
      let xValueMapper = opts && 'xValueMapper' in opts ? opts.xValueMapper : null;
      let yValueMapper = opts && 'yValueMapper' in opts ? opts.yValueMapper : null;
      let sortFieldValueMapper = opts && 'sortFieldValueMapper' in opts ? opts.sortFieldValueMapper : null;
      let pointColorMapper = opts && 'pointColorMapper' in opts ? opts.pointColorMapper : null;
      let dataLabelMapper = opts && 'dataLabelMapper' in opts ? opts.dataLabelMapper : null;
      let sortingOrder = opts && 'sortingOrder' in opts ? opts.sortingOrder : null;
      let isTrackVisible = opts && 'isTrackVisible' in opts ? opts.isTrackVisible : null;
      let groupName = opts && 'groupName' in opts ? opts.groupName : null;
      let xAxisName = opts && 'xAxisName' in opts ? opts.xAxisName : null;
      let yAxisName = opts && 'yAxisName' in opts ? opts.yAxisName : null;
      let trendlines = opts && 'trendlines' in opts ? opts.trendlines : null;
      let name = opts && 'name' in opts ? opts.name : null;
      let color = opts && 'color' in opts ? opts.color : null;
      let width = opts && 'width' in opts ? opts.width : null;
      let spacing = opts && 'spacing' in opts ? opts.spacing : null;
      let markerSettings = opts && 'markerSettings' in opts ? opts.markerSettings : null;
      let emptyPointSettings = opts && 'emptyPointSettings' in opts ? opts.emptyPointSettings : null;
      let dataLabelSettings = opts && 'dataLabelSettings' in opts ? opts.dataLabelSettings : null;
      let isVisible = opts && 'isVisible' in opts ? opts.isVisible : null;
      let gradient = opts && 'gradient' in opts ? opts.gradient : null;
      let borderRadius = opts && 'borderRadius' in opts ? opts.borderRadius : null;
      let enableTooltip = opts && 'enableTooltip' in opts ? opts.enableTooltip : null;
      let animationDuration = opts && 'animationDuration' in opts ? opts.animationDuration : null;
      let trackColor = opts && 'trackColor' in opts ? opts.trackColor : null;
      let trackBorderColor = opts && 'trackBorderColor' in opts ? opts.trackBorderColor : null;
      let trackBorderWidth = opts && 'trackBorderWidth' in opts ? opts.trackBorderWidth : null;
      let trackPadding = opts && 'trackPadding' in opts ? opts.trackPadding : null;
      let borderColor = opts && 'borderColor' in opts ? opts.borderColor : null;
      let borderWidth = opts && 'borderWidth' in opts ? opts.borderWidth : null;
      let selectionSettings = opts && 'selectionSettings' in opts ? opts.selectionSettings : null;
      let isVisibleInLegend = opts && 'isVisibleInLegend' in opts ? opts.isVisibleInLegend : null;
      let legendIconType = opts && 'legendIconType' in opts ? opts.legendIconType : null;
      let legendItemText = opts && 'legendItemText' in opts ? opts.legendItemText : null;
      let dashArray = opts && 'dashArray' in opts ? opts.dashArray : null;
      let opacity = opts && 'opacity' in opts ? opts.opacity : null;
      let initialSelectedDataIndexes = opts && 'initialSelectedDataIndexes' in opts ? opts.initialSelectedDataIndexes : null;
      this[_rectPosition$6] = null;
      this[_rectCount$6] = null;
      StackedColumnSeries.__proto__.new.call(this, {name: name, dashArray: dashArray, groupName: groupName, spacing: spacing, xValueMapper: xValueMapper, yValueMapper: yValueMapper, sortFieldValueMapper: sortFieldValueMapper, pointColorMapper: pointColorMapper, trendlines: trendlines, dataLabelMapper: dataLabelMapper, dataSource: dataSource, xAxisName: xAxisName, isTrackVisible: isTrackVisible, trackColor: trackColor, trackBorderColor: trackBorderColor, trackBorderWidth: trackBorderWidth, trackPadding: trackPadding, yAxisName: yAxisName, color: color, width: (t2 = width, t2 == null ? 0.7 : t2), markerSettings: markerSettings, dataLabelSettings: dataLabelSettings, isVisible: isVisible, gradient: gradient, emptyPointSettings: emptyPointSettings, enableTooltip: enableTooltip, animationDuration: animationDuration, borderColor: borderColor, borderWidth: borderWidth, borderRadius: borderRadius, selectionSettings: selectionSettings, legendItemText: legendItemText, isVisibleInLegend: isVisibleInLegend, legendIconType: legendIconType, sortingOrder: sortingOrder, opacity: opacity, initialSelectedDataIndexes: initialSelectedDataIndexes});
      ;
    }).prototype = StackedColumnSeries.prototype;
    dart.addTypeTests(StackedColumnSeries);
    StackedColumnSeries.prototype[_is_StackedColumnSeries_default] = true;
    dart.setMethodSignature(StackedColumnSeries, () => ({
      __proto__: dart.getMethods(StackedColumnSeries.__proto__),
      createSegment: dart.fnType(charts.ChartSegment, []),
      createSegments: dart.fnType(dart.void, []),
      [_createSegment]: dart.fnType(dart.void, [core.List$(core.num), charts.CartesianChartPoint, core.int]),
      customizeSegment: dart.fnType(dart.void, [charts.ChartSegment]),
      drawDataLabel: dart.fnType(dart.void, [core.int, ui.Canvas, core.String, core.double, core.double, core.int, charts.ChartTextStyle]),
      drawDataMarker: dart.fnType(dart.void, [core.int, ui.Canvas, ui.Paint, ui.Paint, core.double, core.double])
    }));
    dart.setLibraryUri(StackedColumnSeries, "package:syncfusion_flutter_charts/charts.dart");
    dart.setFieldSignature(StackedColumnSeries, () => ({
      __proto__: dart.getFields(StackedColumnSeries.__proto__),
      [_rectPosition]: dart.fieldType(core.num),
      [_rectCount]: dart.fieldType(core.num)
    }));
    return StackedColumnSeries;
  });
  charts.StackedColumnSeries = charts.StackedColumnSeries$();
  dart.addTypeTests(charts.StackedColumnSeries, _is_StackedColumnSeries_default);
  const _is_StackedColumn100Series_default = Symbol('_is_StackedColumn100Series_default');
  const _rectPosition$7 = dart.privateName(charts, "StackedColumn100Series._rectPosition");
  const _rectCount$7 = dart.privateName(charts, "StackedColumn100Series._rectCount");
  charts.StackedColumn100Series$ = dart.generic((T, D) => {
    class StackedColumn100Series extends charts._StackedSeriesBase$(T, D) {
      get [_rectPosition]() {
        return this[_rectPosition$7];
      }
      set [_rectPosition](value) {
        this[_rectPosition$7] = value;
      }
      get [_rectCount]() {
        return this[_rectCount$7];
      }
      set [_rectCount](value) {
        this[_rectCount$7] = value;
      }
      createSegment() {
        return new charts.StackedColumn100Segment.new();
      }
      createSegments() {
        let segmentIndex = 0;
        for (let i = 0; i < dart.notNull(this[_dataPoints$][$length]); i = i + 1) {
          if (dart.test(this[_dataPoints$][$_get](i).isVisible) && !dart.equals(this[_dataPoints$][$_get](i).isGap, true)) {
            let values = JSArrayOfnum().of([]);
            values[$add](core.num._check(this[_dataPoints$][$_get](i).xValue));
            values[$add](core.num._check(this[_dataPoints$][$_get](i).yValue));
            this[_createSegment](values, this[_dataPoints$][$_get](i), segmentIndex);
            segmentIndex = segmentIndex + 1;
          }
        }
      }
      [_createSegment](values, currentPoint, segmentIndex) {
        let segment = charts.StackedColumn100Segment._check(this.createSegment());
        this[_isRectSeries] = true;
        if (segment != null) {
          segment[_seriesIndex] = this[_chart][_chartSeries].visibleSeries[$indexOf](this);
          segment.currentSegmentIndex = segmentIndex;
          segment.series = this;
          segment[_currentPoint] = currentPoint;
          segment[_setData](values);
          segment.calculateSegmentPoints();
          this.customizeSegment(segment);
          segment.strokePaint = segment.getStrokePaint();
          segment.fillPaint = segment.getFillPaint();
          this.segments[$add](segment);
        }
      }
      customizeSegment(segment) {
        segment.color = segment.series[_seriesColor];
        segment.strokeColor = segment.series.borderColor;
        segment.strokeWidth = segment.series.borderWidth;
      }
      drawDataLabel(index, canvas, dataLabel, pointX, pointY, angle, style) {
        return charts._drawText(canvas, dataLabel, new ui.Offset.new(pointX, pointY), style, angle);
      }
      drawDataMarker(index, canvas, fillPaint, strokePaint, pointX, pointY) {
        canvas.drawPath(this[_markerShapes][$_get](index), strokePaint);
        canvas.drawPath(this[_markerShapes][$_get](index), fillPaint);
      }
    }
    (StackedColumn100Series.new = function(opts) {
      let t2;
      let dataSource = opts && 'dataSource' in opts ? opts.dataSource : null;
      let xValueMapper = opts && 'xValueMapper' in opts ? opts.xValueMapper : null;
      let yValueMapper = opts && 'yValueMapper' in opts ? opts.yValueMapper : null;
      let sortFieldValueMapper = opts && 'sortFieldValueMapper' in opts ? opts.sortFieldValueMapper : null;
      let pointColorMapper = opts && 'pointColorMapper' in opts ? opts.pointColorMapper : null;
      let dataLabelMapper = opts && 'dataLabelMapper' in opts ? opts.dataLabelMapper : null;
      let sortingOrder = opts && 'sortingOrder' in opts ? opts.sortingOrder : null;
      let groupName = opts && 'groupName' in opts ? opts.groupName : null;
      let xAxisName = opts && 'xAxisName' in opts ? opts.xAxisName : null;
      let yAxisName = opts && 'yAxisName' in opts ? opts.yAxisName : null;
      let name = opts && 'name' in opts ? opts.name : null;
      let color = opts && 'color' in opts ? opts.color : null;
      let width = opts && 'width' in opts ? opts.width : null;
      let spacing = opts && 'spacing' in opts ? opts.spacing : null;
      let markerSettings = opts && 'markerSettings' in opts ? opts.markerSettings : null;
      let trendlines = opts && 'trendlines' in opts ? opts.trendlines : null;
      let emptyPointSettings = opts && 'emptyPointSettings' in opts ? opts.emptyPointSettings : null;
      let dataLabelSettings = opts && 'dataLabelSettings' in opts ? opts.dataLabelSettings : null;
      let isVisible = opts && 'isVisible' in opts ? opts.isVisible : null;
      let gradient = opts && 'gradient' in opts ? opts.gradient : null;
      let borderRadius = opts && 'borderRadius' in opts ? opts.borderRadius : null;
      let enableTooltip = opts && 'enableTooltip' in opts ? opts.enableTooltip : null;
      let animationDuration = opts && 'animationDuration' in opts ? opts.animationDuration : null;
      let borderColor = opts && 'borderColor' in opts ? opts.borderColor : null;
      let borderWidth = opts && 'borderWidth' in opts ? opts.borderWidth : null;
      let selectionSettings = opts && 'selectionSettings' in opts ? opts.selectionSettings : null;
      let isVisibleInLegend = opts && 'isVisibleInLegend' in opts ? opts.isVisibleInLegend : null;
      let legendIconType = opts && 'legendIconType' in opts ? opts.legendIconType : null;
      let legendItemText = opts && 'legendItemText' in opts ? opts.legendItemText : null;
      let dashArray = opts && 'dashArray' in opts ? opts.dashArray : null;
      let opacity = opts && 'opacity' in opts ? opts.opacity : null;
      let initialSelectedDataIndexes = opts && 'initialSelectedDataIndexes' in opts ? opts.initialSelectedDataIndexes : null;
      this[_rectPosition$7] = null;
      this[_rectCount$7] = null;
      StackedColumn100Series.__proto__.new.call(this, {name: name, dashArray: dashArray, groupName: groupName, spacing: spacing, xValueMapper: xValueMapper, yValueMapper: yValueMapper, sortFieldValueMapper: sortFieldValueMapper, pointColorMapper: pointColorMapper, dataLabelMapper: dataLabelMapper, dataSource: dataSource, trendlines: trendlines, xAxisName: xAxisName, yAxisName: yAxisName, color: color, width: (t2 = width, t2 == null ? 0.7 : t2), markerSettings: markerSettings, dataLabelSettings: dataLabelSettings, isVisible: isVisible, gradient: gradient, emptyPointSettings: emptyPointSettings, enableTooltip: enableTooltip, animationDuration: animationDuration, borderColor: borderColor, borderWidth: borderWidth, borderRadius: borderRadius, selectionSettings: selectionSettings, legendItemText: legendItemText, isVisibleInLegend: isVisibleInLegend, legendIconType: legendIconType, sortingOrder: sortingOrder, opacity: opacity, initialSelectedDataIndexes: initialSelectedDataIndexes});
      ;
    }).prototype = StackedColumn100Series.prototype;
    dart.addTypeTests(StackedColumn100Series);
    StackedColumn100Series.prototype[_is_StackedColumn100Series_default] = true;
    dart.setMethodSignature(StackedColumn100Series, () => ({
      __proto__: dart.getMethods(StackedColumn100Series.__proto__),
      createSegment: dart.fnType(charts.ChartSegment, []),
      createSegments: dart.fnType(dart.void, []),
      [_createSegment]: dart.fnType(dart.void, [core.List$(core.num), charts.CartesianChartPoint, core.int]),
      customizeSegment: dart.fnType(dart.void, [charts.ChartSegment]),
      drawDataLabel: dart.fnType(dart.void, [core.int, ui.Canvas, core.String, core.double, core.double, core.int, charts.ChartTextStyle]),
      drawDataMarker: dart.fnType(dart.void, [core.int, ui.Canvas, ui.Paint, ui.Paint, core.double, core.double])
    }));
    dart.setLibraryUri(StackedColumn100Series, "package:syncfusion_flutter_charts/charts.dart");
    dart.setFieldSignature(StackedColumn100Series, () => ({
      __proto__: dart.getFields(StackedColumn100Series.__proto__),
      [_rectPosition]: dart.fieldType(core.num),
      [_rectCount]: dart.fieldType(core.num)
    }));
    return StackedColumn100Series;
  });
  charts.StackedColumn100Series = charts.StackedColumn100Series$();
  dart.addTypeTests(charts.StackedColumn100Series, _is_StackedColumn100Series_default);
  const _findControlPoint = dart.privateName(charts, "_findControlPoint");
  const _is_SplineSeries_default = Symbol('_is_SplineSeries_default');
  const splineType$ = dart.privateName(charts, "SplineSeries.splineType");
  const cardinalSplineTension$ = dart.privateName(charts, "SplineSeries.cardinalSplineTension");
  charts.SplineSeries$ = dart.generic((T, D) => {
    class SplineSeries extends charts.XyDataSeries$(T, D) {
      get splineType() {
        return this[splineType$];
      }
      set splineType(value) {
        super.splineType = value;
      }
      get cardinalSplineTension() {
        return this[cardinalSplineTension$];
      }
      set cardinalSplineTension(value) {
        super.cardinalSplineTension = value;
      }
      createSegment() {
        return new charts.SplineSegment.new();
      }
      createSegments() {
        let yCoef = JSArrayOfnum().of([]);
        let xValues = JSArrayOfnum().of([]);
        let yValues = JSArrayOfnum().of([]);
        let splineType = null;
        if (charts.SplineSeries.is(this)) {
          splineType = this.splineType;
        }
        for (let i = 0; i < dart.notNull(this[_dataPoints$][$length]); i = i + 1) {
          if (!dart.equals(this[_dataPoints$][$_get](i).isDrop, true)) {
            xValues[$add](core.num._check(this[_dataPoints$][$_get](i).xValue));
            yValues[$add](core.num._check(this[_dataPoints$][$_get](i).yValue));
          }
        }
        if (dart.test(xValues[$isNotEmpty])) {
          let dx = ListOfnum().new(dart.notNull(xValues[$length]) - 1);
          if (dart.equals(splineType, charts.SplineType.monotonic)) {
            yCoef = charts._getMonotonicSpline(xValues, yValues, yCoef, xValues[$length], dx);
          } else if (dart.equals(splineType, charts.SplineType.cardinal)) {
            if (charts.SplineSeries.is(this)) {
              yCoef = charts._getCardinalSpline(xValues, yValues, yCoef, xValues[$length], this.cardinalSplineTension);
            }
          } else {
            yCoef = charts._naturalSpline(xValues, yValues, yCoef, xValues[$length], charts.SplineType._check(splineType));
          }
          this[_findControlPoint](xValues, yValues, dx, yCoef);
        }
      }
      [_findControlPoint](xValues, yValues, dx, yCoef) {
        let controlPoints = JSArrayOfdouble().of([]);
        let x1 = null;
        let x2 = null;
        let y1 = null;
        let y2 = null;
        let rect = charts._calculatePlotOffset(this[_chart][_chartAxis][_axisClipRect], new ui.Offset.new(this[_xAxis$].plotOffset, this[_yAxis$].plotOffset));
        let startControlX = null;
        let startControlY = null;
        let endControlX = null;
        let endControlY = null;
        for (let pointIndex = 0; pointIndex < dart.notNull(xValues[$length]) - 1; pointIndex = pointIndex + 1) {
          if (xValues[$_get](pointIndex) != null && yValues[$_get](pointIndex) != null && xValues[$_get](pointIndex + 1) != null && yValues[$_get](pointIndex + 1) != null) {
            let x = xValues[$_get](pointIndex)[$toDouble]();
            let y = yValues[$_get](pointIndex)[$toDouble]();
            let nextX = xValues[$_get](pointIndex + 1)[$toDouble]();
            let nextY = yValues[$_get](pointIndex + 1)[$toDouble]();
            if (dart.equals(this.splineType, charts.SplineType.monotonic)) {
              controlPoints = charts._calculateMonotonicControlPoints(x, y, nextX, nextY, yCoef[$_get](pointIndex)[$toDouble](), yCoef[$_get](pointIndex + 1)[$toDouble](), dx[$_get](pointIndex)[$toDouble]());
            } else if (dart.equals(this.splineType, charts.SplineType.cardinal)) {
              controlPoints = charts._calculateCardinalControlPoints(x, y, nextX, nextY, yCoef[$_get](pointIndex)[$toDouble](), yCoef[$_get](pointIndex + 1)[$toDouble]());
            } else {
              controlPoints = charts._calculateControlPoints(xValues, yValues, yCoef[$_get](pointIndex)[$toDouble](), yCoef[$_get](pointIndex + 1)[$toDouble](), pointIndex);
            }
            let currentPointXValue = xValues[$_get](pointIndex);
            let currentPointYValue = yValues[$_get](pointIndex);
            let nextPointXValue = xValues[$_get](pointIndex + 1);
            let nextPointYValue = yValues[$_get](pointIndex + 1);
            x1 = charts._calculatePoint(currentPointXValue, currentPointYValue, this[_xAxis$], this[_yAxis$], this[_chart][_requireInvertedAxis], this, rect).x;
            y1 = charts._calculatePoint(currentPointXValue, currentPointYValue, this[_xAxis$], this[_yAxis$], this[_chart][_requireInvertedAxis], this, rect).y;
            x2 = charts._calculatePoint(nextPointXValue, nextPointYValue, this[_xAxis$], this[_yAxis$], this[_chart][_requireInvertedAxis], this, rect).x;
            y2 = charts._calculatePoint(nextPointXValue, nextPointYValue, this[_xAxis$], this[_yAxis$], this[_chart][_requireInvertedAxis], this, rect).y;
            startControlX = charts._calculatePoint(controlPoints[$_get](0), controlPoints[$_get](1), this[_xAxis$], this[_yAxis$], this[_chart][_requireInvertedAxis], this, rect).x;
            startControlY = charts._calculatePoint(controlPoints[$_get](0), controlPoints[$_get](1), this[_xAxis$], this[_yAxis$], this[_chart][_requireInvertedAxis], this, rect).y;
            endControlX = charts._calculatePoint(controlPoints[$_get](2), controlPoints[$_get](3), this[_xAxis$], this[_yAxis$], this[_chart][_requireInvertedAxis], this, rect).x;
            endControlY = charts._calculatePoint(controlPoints[$_get](2), controlPoints[$_get](3), this[_xAxis$], this[_yAxis$], this[_chart][_requireInvertedAxis], this, rect).y;
            let values = JSArrayOfnum().of([]);
            values[$add](x1);
            values[$add](y1);
            values[$add](x2);
            values[$add](y2);
            values[$add](startControlX);
            values[$add](startControlY);
            values[$add](endControlX);
            values[$add](endControlY);
            this[_createSegment](values, this[_dataPoints$][$_get](pointIndex), this[_dataPoints$][$_get](pointIndex + 1));
          }
        }
      }
      [_createSegment](values, currentPt, nextPt) {
        let segment = charts.SplineSegment._check(this.createSegment());
        this[_isRectSeries] = false;
        if (segment != null) {
          segment[_currentPoint] = currentPt;
          segment[_pointColorMapper] = currentPt.pointColorMapper;
          segment[_nextPoint] = nextPt;
          segment.currentSegmentIndex = this[_dataPoints$][$indexOf](currentPt);
          segment[_seriesIndex] = this[_chart][_chartSeries].visibleSeries[$indexOf](this);
          segment.series = this;
          if (dart.test(this[_chart][_chartState].widgetNeedUpdate) && this[_chart][_chartState].prevWidgetSeries != null && dart.test(this[_chart][_chartState].prevWidgetSeries[$isNotEmpty]) && dart.notNull(this[_chart][_chartState].prevWidgetSeries[$length]) - 1 >= dart.notNull(segment[_seriesIndex]) && this[_chart][_chartState].prevWidgetSeries[$_get](segment[_seriesIndex])[_seriesName] == segment.series[_seriesName]) {
            segment.oldSeries = charts.XyDataSeries._check(this[_chart][_chartState].prevWidgetSeries[$_get](segment[_seriesIndex]));
          }
          segment[_setData](values);
          segment.calculateSegmentPoints();
          this.customizeSegment(segment);
          segment.strokePaint = segment.getStrokePaint();
          segment.fillPaint = segment.getFillPaint();
          this.segments[$add](segment);
        }
      }
      customizeSegment(segment) {
        segment.color = segment.series[_seriesColor];
        segment.strokeColor = segment.series[_seriesColor];
        segment.strokeWidth = segment.series.width;
      }
      drawDataMarker(index, canvas, fillPaint, strokePaint, pointX, pointY) {
        canvas.drawPath(this[_markerShapes][$_get](index), strokePaint);
        canvas.drawPath(this[_markerShapes][$_get](index), fillPaint);
      }
      drawDataLabel(index, canvas, dataLabel, pointX, pointY, angle, style) {
        return charts._drawText(canvas, dataLabel, new ui.Offset.new(pointX, pointY), style, angle);
      }
    }
    (SplineSeries.new = function(opts) {
      let t2, t2$;
      let dataSource = opts && 'dataSource' in opts ? opts.dataSource : null;
      let xValueMapper = opts && 'xValueMapper' in opts ? opts.xValueMapper : null;
      let yValueMapper = opts && 'yValueMapper' in opts ? opts.yValueMapper : null;
      let sortFieldValueMapper = opts && 'sortFieldValueMapper' in opts ? opts.sortFieldValueMapper : null;
      let pointColorMapper = opts && 'pointColorMapper' in opts ? opts.pointColorMapper : null;
      let dataLabelMapper = opts && 'dataLabelMapper' in opts ? opts.dataLabelMapper : null;
      let xAxisName = opts && 'xAxisName' in opts ? opts.xAxisName : null;
      let yAxisName = opts && 'yAxisName' in opts ? opts.yAxisName : null;
      let name = opts && 'name' in opts ? opts.name : null;
      let color = opts && 'color' in opts ? opts.color : null;
      let width = opts && 'width' in opts ? opts.width : null;
      let gradient = opts && 'gradient' in opts ? opts.gradient : null;
      let markerSettings = opts && 'markerSettings' in opts ? opts.markerSettings : null;
      let splineType = opts && 'splineType' in opts ? opts.splineType : null;
      let cardinalSplineTension = opts && 'cardinalSplineTension' in opts ? opts.cardinalSplineTension : null;
      let emptyPointSettings = opts && 'emptyPointSettings' in opts ? opts.emptyPointSettings : null;
      let dataLabelSettings = opts && 'dataLabelSettings' in opts ? opts.dataLabelSettings : null;
      let isVisible = opts && 'isVisible' in opts ? opts.isVisible : null;
      let trendlines = opts && 'trendlines' in opts ? opts.trendlines : null;
      let enableTooltip = opts && 'enableTooltip' in opts ? opts.enableTooltip : null;
      let dashArray = opts && 'dashArray' in opts ? opts.dashArray : null;
      let animationDuration = opts && 'animationDuration' in opts ? opts.animationDuration : null;
      let selectionSettings = opts && 'selectionSettings' in opts ? opts.selectionSettings : null;
      let isVisibleInLegend = opts && 'isVisibleInLegend' in opts ? opts.isVisibleInLegend : null;
      let legendIconType = opts && 'legendIconType' in opts ? opts.legendIconType : null;
      let sortingOrder = opts && 'sortingOrder' in opts ? opts.sortingOrder : null;
      let legendItemText = opts && 'legendItemText' in opts ? opts.legendItemText : null;
      let opacity = opts && 'opacity' in opts ? opts.opacity : null;
      let initialSelectedDataIndexes = opts && 'initialSelectedDataIndexes' in opts ? opts.initialSelectedDataIndexes : null;
      this[splineType$] = splineType;
      this[cardinalSplineTension$] = (t2 = cardinalSplineTension, t2 == null ? 0.5 : t2);
      SplineSeries.__proto__.new.call(this, {xValueMapper: xValueMapper, yValueMapper: yValueMapper, sortFieldValueMapper: sortFieldValueMapper, pointColorMapper: pointColorMapper, dataLabelMapper: dataLabelMapper, dataSource: dataSource, xAxisName: xAxisName, yAxisName: yAxisName, name: name, color: color, width: (t2$ = width, t2$ == null ? 2.0 : t2$), gradient: gradient, trendlines: trendlines, markerSettings: markerSettings, dataLabelSettings: dataLabelSettings, emptyPointSettings: emptyPointSettings, enableTooltip: enableTooltip, isVisible: isVisible, dashArray: dashArray, animationDuration: animationDuration, selectionSettings: selectionSettings, legendItemText: legendItemText, isVisibleInLegend: isVisibleInLegend, legendIconType: legendIconType, sortingOrder: sortingOrder, opacity: opacity, initialSelectedDataIndexes: initialSelectedDataIndexes});
      ;
    }).prototype = SplineSeries.prototype;
    dart.addTypeTests(SplineSeries);
    SplineSeries.prototype[_is_SplineSeries_default] = true;
    dart.setMethodSignature(SplineSeries, () => ({
      __proto__: dart.getMethods(SplineSeries.__proto__),
      createSegment: dart.fnType(charts.ChartSegment, []),
      createSegments: dart.fnType(dart.void, []),
      [_findControlPoint]: dart.fnType(dart.void, [core.List$(core.num), core.List$(core.num), core.List$(core.num), core.List$(core.num)]),
      [_createSegment]: dart.fnType(dart.void, [core.List$(core.num), charts.CartesianChartPoint, charts.CartesianChartPoint]),
      customizeSegment: dart.fnType(dart.void, [charts.ChartSegment]),
      drawDataMarker: dart.fnType(dart.void, [core.int, ui.Canvas, ui.Paint, ui.Paint, core.double, core.double]),
      drawDataLabel: dart.fnType(dart.void, [core.int, ui.Canvas, core.String, core.double, core.double, core.int, charts.ChartTextStyle])
    }));
    dart.setLibraryUri(SplineSeries, "package:syncfusion_flutter_charts/charts.dart");
    dart.setFieldSignature(SplineSeries, () => ({
      __proto__: dart.getFields(SplineSeries.__proto__),
      splineType: dart.finalFieldType(charts.SplineType),
      cardinalSplineTension: dart.finalFieldType(core.double)
    }));
    return SplineSeries;
  });
  charts.SplineSeries = charts.SplineSeries$();
  dart.addTypeTests(charts.SplineSeries, _is_SplineSeries_default);
  const _drawPoints = dart.privateName(charts, "_drawPoints");
  const _is_SplineAreaSeries_default = Symbol('_is_SplineAreaSeries_default');
  const borderDrawMode$3 = dart.privateName(charts, "SplineAreaSeries.borderDrawMode");
  const splineType$0 = dart.privateName(charts, "SplineAreaSeries.splineType");
  const cardinalSplineTension$0 = dart.privateName(charts, "SplineAreaSeries.cardinalSplineTension");
  charts.SplineAreaSeries$ = dart.generic((T, D) => {
    class SplineAreaSeries extends charts.XyDataSeries$(T, D) {
      get borderDrawMode() {
        return this[borderDrawMode$3];
      }
      set borderDrawMode(value) {
        super.borderDrawMode = value;
      }
      get splineType() {
        return this[splineType$0];
      }
      set splineType(value) {
        super.splineType = value;
      }
      get cardinalSplineTension() {
        return this[cardinalSplineTension$0];
      }
      set cardinalSplineTension(value) {
        super.cardinalSplineTension = value;
      }
      createSegment() {
        return new charts.SplineAreaSegment.new();
      }
      createSegments() {
        return this[_createSegment](this[_dataPoints$]);
      }
      [_createSegment](dataPoints) {
        let segment = charts.SplineAreaSegment._check(this.createSegment());
        this[_isRectSeries] = false;
        if (segment != null) {
          segment[_seriesIndex] = this[_chart][_chartSeries].visibleSeries[$indexOf](this);
          segment.series = this;
          charts._calculateSplineAreaControlPoints(segment.series);
          this.customizeSegment(segment);
          segment.strokePaint = segment.getStrokePaint();
          segment.fillPaint = segment.getFillPaint();
          this.segments[$add](segment);
        }
      }
      customizeSegment(segment) {
        segment.color = segment.series[_seriesColor];
        segment.strokeColor = segment.series[_seriesColor];
        segment.strokeWidth = segment.series.width;
      }
      drawDataMarker(index, canvas, fillPaint, strokePaint, pointX, pointY) {
        canvas.drawPath(this[_markerShapes][$_get](index), strokePaint);
        canvas.drawPath(this[_markerShapes][$_get](index), fillPaint);
      }
      drawDataLabel(index, canvas, dataLabel, pointX, pointY, angle, style) {
        return charts._drawText(canvas, dataLabel, new ui.Offset.new(pointX, pointY), style, angle);
      }
    }
    (SplineAreaSeries.new = function(opts) {
      let t2, t2$;
      let dataSource = opts && 'dataSource' in opts ? opts.dataSource : null;
      let xValueMapper = opts && 'xValueMapper' in opts ? opts.xValueMapper : null;
      let yValueMapper = opts && 'yValueMapper' in opts ? opts.yValueMapper : null;
      let sortFieldValueMapper = opts && 'sortFieldValueMapper' in opts ? opts.sortFieldValueMapper : null;
      let dataLabelMapper = opts && 'dataLabelMapper' in opts ? opts.dataLabelMapper : null;
      let sortingOrder = opts && 'sortingOrder' in opts ? opts.sortingOrder : null;
      let xAxisName = opts && 'xAxisName' in opts ? opts.xAxisName : null;
      let yAxisName = opts && 'yAxisName' in opts ? opts.yAxisName : null;
      let name = opts && 'name' in opts ? opts.name : null;
      let color = opts && 'color' in opts ? opts.color : null;
      let markerSettings = opts && 'markerSettings' in opts ? opts.markerSettings : null;
      let splineType = opts && 'splineType' in opts ? opts.splineType : null;
      let trendlines = opts && 'trendlines' in opts ? opts.trendlines : null;
      let cardinalSplineTension = opts && 'cardinalSplineTension' in opts ? opts.cardinalSplineTension : null;
      let emptyPointSettings = opts && 'emptyPointSettings' in opts ? opts.emptyPointSettings : null;
      let dataLabelSettings = opts && 'dataLabelSettings' in opts ? opts.dataLabelSettings : null;
      let isVisible = opts && 'isVisible' in opts ? opts.isVisible : null;
      let enableTooltip = opts && 'enableTooltip' in opts ? opts.enableTooltip : null;
      let dashArray = opts && 'dashArray' in opts ? opts.dashArray : null;
      let animationDuration = opts && 'animationDuration' in opts ? opts.animationDuration : null;
      let borderColor = opts && 'borderColor' in opts ? opts.borderColor : null;
      let borderWidth = opts && 'borderWidth' in opts ? opts.borderWidth : null;
      let gradient = opts && 'gradient' in opts ? opts.gradient : null;
      let selectionSettings = opts && 'selectionSettings' in opts ? opts.selectionSettings : null;
      let isVisibleInLegend = opts && 'isVisibleInLegend' in opts ? opts.isVisibleInLegend : null;
      let legendIconType = opts && 'legendIconType' in opts ? opts.legendIconType : null;
      let legendItemText = opts && 'legendItemText' in opts ? opts.legendItemText : null;
      let opacity = opts && 'opacity' in opts ? opts.opacity : null;
      let borderDrawMode = opts && 'borderDrawMode' in opts ? opts.borderDrawMode : null;
      this[splineType$0] = splineType;
      this[_drawPoints] = JSArrayOf_ControlPoints().of([]);
      this[borderDrawMode$3] = (t2 = borderDrawMode, t2 == null ? charts.BorderDrawMode.top : t2);
      this[cardinalSplineTension$0] = (t2$ = cardinalSplineTension, t2$ == null ? 0.5 : t2$);
      SplineAreaSeries.__proto__.new.call(this, {xValueMapper: xValueMapper, yValueMapper: yValueMapper, sortFieldValueMapper: sortFieldValueMapper, dataLabelMapper: dataLabelMapper, dataSource: dataSource, xAxisName: xAxisName, yAxisName: yAxisName, name: name, color: color, trendlines: trendlines, markerSettings: markerSettings, dataLabelSettings: dataLabelSettings, isVisible: isVisible, emptyPointSettings: emptyPointSettings, enableTooltip: enableTooltip, dashArray: dashArray, animationDuration: animationDuration, borderColor: borderColor, borderWidth: borderWidth, gradient: gradient, selectionSettings: selectionSettings, legendItemText: legendItemText, isVisibleInLegend: isVisibleInLegend, legendIconType: legendIconType, sortingOrder: sortingOrder, opacity: opacity});
      ;
    }).prototype = SplineAreaSeries.prototype;
    dart.addTypeTests(SplineAreaSeries);
    SplineAreaSeries.prototype[_is_SplineAreaSeries_default] = true;
    dart.setMethodSignature(SplineAreaSeries, () => ({
      __proto__: dart.getMethods(SplineAreaSeries.__proto__),
      createSegment: dart.fnType(charts.ChartSegment, []),
      createSegments: dart.fnType(dart.void, []),
      [_createSegment]: dart.fnType(dart.void, [core.List$(charts.CartesianChartPoint)]),
      customizeSegment: dart.fnType(dart.void, [charts.ChartSegment]),
      drawDataMarker: dart.fnType(dart.void, [core.int, ui.Canvas, ui.Paint, ui.Paint, core.double, core.double]),
      drawDataLabel: dart.fnType(dart.void, [core.int, ui.Canvas, core.String, core.double, core.double, core.int, charts.ChartTextStyle])
    }));
    dart.setLibraryUri(SplineAreaSeries, "package:syncfusion_flutter_charts/charts.dart");
    dart.setFieldSignature(SplineAreaSeries, () => ({
      __proto__: dart.getFields(SplineAreaSeries.__proto__),
      borderDrawMode: dart.finalFieldType(charts.BorderDrawMode),
      splineType: dart.finalFieldType(charts.SplineType),
      [_drawPoints]: dart.fieldType(core.List$(charts._ControlPoints)),
      cardinalSplineTension: dart.finalFieldType(core.double)
    }));
    return SplineAreaSeries;
  });
  charts.SplineAreaSeries = charts.SplineAreaSeries$();
  dart.addTypeTests(charts.SplineAreaSeries, _is_SplineAreaSeries_default);
  const _is_StepAreaSeries_default = Symbol('_is_StepAreaSeries_default');
  const borderDrawMode$4 = dart.privateName(charts, "StepAreaSeries.borderDrawMode");
  charts.StepAreaSeries$ = dart.generic((T, D) => {
    class StepAreaSeries extends charts.XyDataSeries$(T, D) {
      get borderDrawMode() {
        return this[borderDrawMode$4];
      }
      set borderDrawMode(value) {
        super.borderDrawMode = value;
      }
      createSegment() {
        return new charts.StepAreaSegment.new();
      }
      createSegments() {
        return this[_createSegment](this[_dataPoints$]);
      }
      [_createSegment](dataPoints) {
        let segment = charts.StepAreaSegment._check(this.createSegment());
        this[_isRectSeries] = false;
        if (segment != null) {
          segment[_seriesIndex] = this[_chart][_chartSeries].visibleSeries[$indexOf](this);
          segment.series = this;
          this.customizeSegment(segment);
          segment.strokePaint = segment.getStrokePaint();
          segment.fillPaint = segment.getFillPaint();
          this.segments[$add](segment);
        }
      }
      customizeSegment(segment) {
        segment.color = segment.series[_seriesColor];
        segment.strokeColor = segment.series.borderColor;
        segment.strokeWidth = segment.series.borderWidth;
      }
      drawDataMarker(index, canvas, fillPaint, strokePaint, pointX, pointY) {
        canvas.drawPath(this[_markerShapes][$_get](index), strokePaint);
        canvas.drawPath(this[_markerShapes][$_get](index), fillPaint);
      }
      drawDataLabel(index, canvas, dataLabel, pointX, pointY, angle, style) {
        return charts._drawText(canvas, dataLabel, new ui.Offset.new(pointX, pointY), style, angle);
      }
    }
    (StepAreaSeries.new = function(opts) {
      let t2;
      let dataSource = opts && 'dataSource' in opts ? opts.dataSource : null;
      let xValueMapper = opts && 'xValueMapper' in opts ? opts.xValueMapper : null;
      let yValueMapper = opts && 'yValueMapper' in opts ? opts.yValueMapper : null;
      let sortFieldValueMapper = opts && 'sortFieldValueMapper' in opts ? opts.sortFieldValueMapper : null;
      let pointColorMapper = opts && 'pointColorMapper' in opts ? opts.pointColorMapper : null;
      let dataLabelMapper = opts && 'dataLabelMapper' in opts ? opts.dataLabelMapper : null;
      let sortingOrder = opts && 'sortingOrder' in opts ? opts.sortingOrder : null;
      let xAxisName = opts && 'xAxisName' in opts ? opts.xAxisName : null;
      let yAxisName = opts && 'yAxisName' in opts ? opts.yAxisName : null;
      let name = opts && 'name' in opts ? opts.name : null;
      let color = opts && 'color' in opts ? opts.color : null;
      let markerSettings = opts && 'markerSettings' in opts ? opts.markerSettings : null;
      let trendlines = opts && 'trendlines' in opts ? opts.trendlines : null;
      let emptyPointSettings = opts && 'emptyPointSettings' in opts ? opts.emptyPointSettings : null;
      let dataLabelSettings = opts && 'dataLabelSettings' in opts ? opts.dataLabelSettings : null;
      let isVisible = opts && 'isVisible' in opts ? opts.isVisible : null;
      let enableTooltip = opts && 'enableTooltip' in opts ? opts.enableTooltip : null;
      let dashArray = opts && 'dashArray' in opts ? opts.dashArray : null;
      let animationDuration = opts && 'animationDuration' in opts ? opts.animationDuration : null;
      let borderColor = opts && 'borderColor' in opts ? opts.borderColor : null;
      let borderWidth = opts && 'borderWidth' in opts ? opts.borderWidth : null;
      let gradient = opts && 'gradient' in opts ? opts.gradient : null;
      let selectionSettings = opts && 'selectionSettings' in opts ? opts.selectionSettings : null;
      let isVisibleInLegend = opts && 'isVisibleInLegend' in opts ? opts.isVisibleInLegend : null;
      let legendIconType = opts && 'legendIconType' in opts ? opts.legendIconType : null;
      let legendItemText = opts && 'legendItemText' in opts ? opts.legendItemText : null;
      let opacity = opts && 'opacity' in opts ? opts.opacity : null;
      let borderDrawMode = opts && 'borderDrawMode' in opts ? opts.borderDrawMode : null;
      this[borderDrawMode$4] = (t2 = borderDrawMode, t2 == null ? charts.BorderDrawMode.top : t2);
      StepAreaSeries.__proto__.new.call(this, {xValueMapper: xValueMapper, yValueMapper: yValueMapper, sortFieldValueMapper: sortFieldValueMapper, pointColorMapper: pointColorMapper, dataLabelMapper: dataLabelMapper, dataSource: dataSource, xAxisName: xAxisName, yAxisName: yAxisName, name: name, trendlines: trendlines, color: color, markerSettings: markerSettings, dataLabelSettings: dataLabelSettings, isVisible: isVisible, emptyPointSettings: emptyPointSettings, enableTooltip: enableTooltip, dashArray: dashArray, animationDuration: animationDuration, borderColor: borderColor, borderWidth: borderWidth, gradient: gradient, selectionSettings: selectionSettings, legendItemText: legendItemText, isVisibleInLegend: isVisibleInLegend, legendIconType: legendIconType, sortingOrder: sortingOrder, opacity: opacity});
      ;
    }).prototype = StepAreaSeries.prototype;
    dart.addTypeTests(StepAreaSeries);
    StepAreaSeries.prototype[_is_StepAreaSeries_default] = true;
    dart.setMethodSignature(StepAreaSeries, () => ({
      __proto__: dart.getMethods(StepAreaSeries.__proto__),
      createSegment: dart.fnType(charts.ChartSegment, []),
      createSegments: dart.fnType(dart.void, []),
      [_createSegment]: dart.fnType(dart.void, [core.List$(charts.CartesianChartPoint)]),
      customizeSegment: dart.fnType(dart.void, [charts.ChartSegment]),
      drawDataMarker: dart.fnType(dart.void, [core.int, ui.Canvas, ui.Paint, ui.Paint, core.double, core.double]),
      drawDataLabel: dart.fnType(dart.void, [core.int, ui.Canvas, core.String, core.double, core.double, core.int, charts.ChartTextStyle])
    }));
    dart.setLibraryUri(StepAreaSeries, "package:syncfusion_flutter_charts/charts.dart");
    dart.setFieldSignature(StepAreaSeries, () => ({
      __proto__: dart.getFields(StepAreaSeries.__proto__),
      borderDrawMode: dart.finalFieldType(charts.BorderDrawMode)
    }));
    return StepAreaSeries;
  });
  charts.StepAreaSeries = charts.StepAreaSeries$();
  dart.addTypeTests(charts.StepAreaSeries, _is_StepAreaSeries_default);
  const _is_StepLineSeries_default = Symbol('_is_StepLineSeries_default');
  charts.StepLineSeries$ = dart.generic((T, D) => {
    class StepLineSeries extends charts.XyDataSeries$(T, D) {
      createSegment() {
        return new charts.StepLineSegment.new();
      }
      createSegments() {
        let values = JSArrayOfnum().of([]);
        let segmentIndex = 0;
        for (let i = 0; i < dart.notNull(this[_dataPoints$][$length]); i = i + 1) {
          if (dart.notNull(this[_dataPoints$][$length]) > 1) {
            if (values !== null && dart.test(values[$isNotEmpty]) && dart.notNull(values[$length]) > 2) {
              values[$_set](0, values[$_get](2));
              values[$_set](1, values[$_get](3));
              values[$removeRange](2, 4);
            }
            if (dart.test(this[_dataPoints$][$_get](i).isVisible)) {
              if (!dart.equals(this[_dataPoints$][$_get](i).isGap, true)) {
                if (dart.test(values[$isEmpty]) || dart.test(values[$isNotEmpty]) && !(core.identical(values[$_get](0), this[_dataPoints$][$_get](i).xValue) && core.identical(values[$_get](1), this[_dataPoints$][$_get](i).yValue))) {
                  values[$add](core.num._check(this[_dataPoints$][$_get](i).xValue));
                  values[$add](core.num._check(this[_dataPoints$][$_get](i).yValue));
                }
              }
              if ((i === 0 || dart.equals(this[_dataPoints$][$_get](i - 1).isGap, true)) && !dart.equals(this[_dataPoints$][$_get](i).isGap, true) && !dart.equals(this[_dataPoints$][$_get](i + 1).isGap, true) && dart.test(this[_dataPoints$][$_get](i + 1).isVisible)) {
                values[$add](core.num._check(this[_dataPoints$][$_get](i + 1).xValue));
                values[$add](core.num._check(this[_dataPoints$][$_get](i + 1).yValue));
              } else if (dart.equals(this[_dataPoints$][$_get](i).isGap, true)) {
                values = JSArrayOfnum().of([]);
              }
            }
          }
          if (values !== null && dart.test(values[$isNotEmpty]) && dart.notNull(values[$length]) > 2) {
            this[_createSegment](values, this[_dataPoints$][$_get](i), segmentIndex, this[_dataPoints$][$_get](segmentIndex).pointColorMapper);
            segmentIndex = segmentIndex + 1;
          }
        }
      }
      [_createSegment](values, currentPoint, segmentIndex, pointColorMapper) {
        let segment = charts.StepLineSegment._check(this.createSegment());
        this[_isRectSeries] = false;
        if (segment != null) {
          segment.currentSegmentIndex = segmentIndex;
          segment[_seriesIndex] = this[_chart][_chartSeries].visibleSeries[$indexOf](this);
          segment.series = this;
          segment[_presentPoint] = currentPoint;
          if (dart.test(this[_chart][_chartState].widgetNeedUpdate) && this[_chart][_chartState].prevWidgetSeries != null && dart.test(this[_chart][_chartState].prevWidgetSeries[$isNotEmpty]) && dart.notNull(this[_chart][_chartState].prevWidgetSeries[$length]) - 1 >= dart.notNull(segment[_seriesIndex]) && this[_chart][_chartState].prevWidgetSeries[$_get](segment[_seriesIndex])[_seriesName] == segment.series[_seriesName]) {
            segment.oldSeries = charts.XyDataSeries._check(this[_chart][_chartState].prevWidgetSeries[$_get](segment[_seriesIndex]));
          }
          segment[_pointColorMapper] = pointColorMapper;
          segment.setData(values);
          segment.calculateSegmentPoints();
          this.customizeSegment(segment);
          segment.strokePaint = segment.getStrokePaint();
          segment.fillPaint = segment.getFillPaint();
          this.segments[$add](segment);
        }
      }
      customizeSegment(segment) {
        segment.color = segment.series[_seriesColor];
        segment.strokeColor = segment.series[_seriesColor];
        segment.strokeWidth = segment.series.width;
      }
      drawDataMarker(index, canvas, fillPaint, strokePaint, pointX, pointY) {
        canvas.drawPath(this[_markerShapes][$_get](index), strokePaint);
        canvas.drawPath(this[_markerShapes][$_get](index), fillPaint);
      }
      drawDataLabel(index, canvas, dataLabel, pointX, pointY, angle, style) {
        return charts._drawText(canvas, dataLabel, new ui.Offset.new(pointX, pointY), style, angle);
      }
    }
    (StepLineSeries.new = function(opts) {
      let t2;
      let dataSource = opts && 'dataSource' in opts ? opts.dataSource : null;
      let xValueMapper = opts && 'xValueMapper' in opts ? opts.xValueMapper : null;
      let yValueMapper = opts && 'yValueMapper' in opts ? opts.yValueMapper : null;
      let sortFieldValueMapper = opts && 'sortFieldValueMapper' in opts ? opts.sortFieldValueMapper : null;
      let pointColorMapper = opts && 'pointColorMapper' in opts ? opts.pointColorMapper : null;
      let dataLabelMapper = opts && 'dataLabelMapper' in opts ? opts.dataLabelMapper : null;
      let xAxisName = opts && 'xAxisName' in opts ? opts.xAxisName : null;
      let yAxisName = opts && 'yAxisName' in opts ? opts.yAxisName : null;
      let name = opts && 'name' in opts ? opts.name : null;
      let color = opts && 'color' in opts ? opts.color : null;
      let width = opts && 'width' in opts ? opts.width : null;
      let gradient = opts && 'gradient' in opts ? opts.gradient : null;
      let markerSettings = opts && 'markerSettings' in opts ? opts.markerSettings : null;
      let trendlines = opts && 'trendlines' in opts ? opts.trendlines : null;
      let emptyPointSettings = opts && 'emptyPointSettings' in opts ? opts.emptyPointSettings : null;
      let dataLabelSettings = opts && 'dataLabelSettings' in opts ? opts.dataLabelSettings : null;
      let isVisible = opts && 'isVisible' in opts ? opts.isVisible : null;
      let enableTooltip = opts && 'enableTooltip' in opts ? opts.enableTooltip : null;
      let dashArray = opts && 'dashArray' in opts ? opts.dashArray : null;
      let animationDuration = opts && 'animationDuration' in opts ? opts.animationDuration : null;
      let selectionSettings = opts && 'selectionSettings' in opts ? opts.selectionSettings : null;
      let sortingOrder = opts && 'sortingOrder' in opts ? opts.sortingOrder : null;
      let isVisibleInLegend = opts && 'isVisibleInLegend' in opts ? opts.isVisibleInLegend : null;
      let legendIconType = opts && 'legendIconType' in opts ? opts.legendIconType : null;
      let legendItemText = opts && 'legendItemText' in opts ? opts.legendItemText : null;
      let opacity = opts && 'opacity' in opts ? opts.opacity : null;
      StepLineSeries.__proto__.new.call(this, {xValueMapper: xValueMapper, yValueMapper: yValueMapper, sortFieldValueMapper: sortFieldValueMapper, pointColorMapper: pointColorMapper, dataLabelMapper: dataLabelMapper, dataSource: dataSource, xAxisName: xAxisName, yAxisName: yAxisName, trendlines: trendlines, name: name, color: color, width: (t2 = width, t2 == null ? 2.0 : t2), gradient: gradient, markerSettings: markerSettings, dataLabelSettings: dataLabelSettings, emptyPointSettings: emptyPointSettings, enableTooltip: enableTooltip, dashArray: dashArray, isVisible: isVisible, animationDuration: animationDuration, selectionSettings: selectionSettings, legendItemText: legendItemText, isVisibleInLegend: isVisibleInLegend, legendIconType: legendIconType, sortingOrder: sortingOrder, opacity: opacity});
      ;
    }).prototype = StepLineSeries.prototype;
    dart.addTypeTests(StepLineSeries);
    StepLineSeries.prototype[_is_StepLineSeries_default] = true;
    dart.setMethodSignature(StepLineSeries, () => ({
      __proto__: dart.getMethods(StepLineSeries.__proto__),
      createSegment: dart.fnType(charts.ChartSegment, []),
      createSegments: dart.fnType(dart.void, []),
      [_createSegment]: dart.fnType(dart.void, [core.List$(core.num), charts.CartesianChartPoint, core.int, ui.Color]),
      customizeSegment: dart.fnType(dart.void, [charts.ChartSegment]),
      drawDataMarker: dart.fnType(dart.void, [core.int, ui.Canvas, ui.Paint, ui.Paint, core.double, core.double]),
      drawDataLabel: dart.fnType(dart.void, [core.int, ui.Canvas, core.String, core.double, core.double, core.int, charts.ChartTextStyle])
    }));
    dart.setLibraryUri(StepLineSeries, "package:syncfusion_flutter_charts/charts.dart");
    return StepLineSeries;
  });
  charts.StepLineSeries = charts.StepLineSeries$();
  dart.addTypeTests(charts.StepLineSeries, _is_StepLineSeries_default);
  const _is_CartesianChartPoint_default = Symbol('_is_CartesianChartPoint_default');
  const x$4 = dart.privateName(charts, "CartesianChartPoint.x");
  const y$2 = dart.privateName(charts, "CartesianChartPoint.y");
  const xValue = dart.privateName(charts, "CartesianChartPoint.xValue");
  const yValue = dart.privateName(charts, "CartesianChartPoint.yValue");
  const sortValue$0 = dart.privateName(charts, "CartesianChartPoint.sortValue");
  const high$1 = dart.privateName(charts, "CartesianChartPoint.high");
  const low$1 = dart.privateName(charts, "CartesianChartPoint.low");
  const open$0 = dart.privateName(charts, "CartesianChartPoint.open");
  const close$0 = dart.privateName(charts, "CartesianChartPoint.close");
  const volume$ = dart.privateName(charts, "CartesianChartPoint.volume");
  const markerPoint = dart.privateName(charts, "CartesianChartPoint.markerPoint");
  const markerPoint2 = dart.privateName(charts, "CartesianChartPoint.markerPoint2");
  const bubbleSize$ = dart.privateName(charts, "CartesianChartPoint.bubbleSize");
  const isEmpty$0 = dart.privateName(charts, "CartesianChartPoint.isEmpty");
  const isGap = dart.privateName(charts, "CartesianChartPoint.isGap");
  const isDrop = dart.privateName(charts, "CartesianChartPoint.isDrop");
  const isVisible$4 = dart.privateName(charts, "CartesianChartPoint.isVisible");
  const pointColorMapper$4 = dart.privateName(charts, "CartesianChartPoint.pointColorMapper");
  const dataLabelMapper$2 = dart.privateName(charts, "CartesianChartPoint.dataLabelMapper");
  const region$0 = dart.privateName(charts, "CartesianChartPoint.region");
  const openPoint$ = dart.privateName(charts, "CartesianChartPoint.openPoint");
  const closePoint$ = dart.privateName(charts, "CartesianChartPoint.closePoint");
  const centerOpenPoint = dart.privateName(charts, "CartesianChartPoint.centerOpenPoint");
  const centerClosePoint = dart.privateName(charts, "CartesianChartPoint.centerClosePoint");
  const sideBySideInfo = dart.privateName(charts, "CartesianChartPoint.sideBySideInfo");
  const regions = dart.privateName(charts, "CartesianChartPoint.regions");
  const cumulativeValue = dart.privateName(charts, "CartesianChartPoint.cumulativeValue");
  const trackerRectRegion = dart.privateName(charts, "CartesianChartPoint.trackerRectRegion");
  const label = dart.privateName(charts, "CartesianChartPoint.label");
  const label2 = dart.privateName(charts, "CartesianChartPoint.label2");
  const label3 = dart.privateName(charts, "CartesianChartPoint.label3");
  const label4 = dart.privateName(charts, "CartesianChartPoint.label4");
  const labelFillRect = dart.privateName(charts, "CartesianChartPoint.labelFillRect");
  const labelFillRect2 = dart.privateName(charts, "CartesianChartPoint.labelFillRect2");
  const labelFillRect3 = dart.privateName(charts, "CartesianChartPoint.labelFillRect3");
  const labelFillRect4 = dart.privateName(charts, "CartesianChartPoint.labelFillRect4");
  const labelLocation = dart.privateName(charts, "CartesianChartPoint.labelLocation");
  const labelLocation2 = dart.privateName(charts, "CartesianChartPoint.labelLocation2");
  const labelLocation3 = dart.privateName(charts, "CartesianChartPoint.labelLocation3");
  const labelLocation4 = dart.privateName(charts, "CartesianChartPoint.labelLocation4");
  const dataLabelSaturationRegionInside = dart.privateName(charts, "CartesianChartPoint.dataLabelSaturationRegionInside");
  const dataLabelRegion = dart.privateName(charts, "CartesianChartPoint.dataLabelRegion");
  const dataLabelRegion2 = dart.privateName(charts, "CartesianChartPoint.dataLabelRegion2");
  const dataLabelRegion3 = dart.privateName(charts, "CartesianChartPoint.dataLabelRegion3");
  const dataLabelRegion4 = dart.privateName(charts, "CartesianChartPoint.dataLabelRegion4");
  const index = dart.privateName(charts, "CartesianChartPoint.index");
  const regionData = dart.privateName(charts, "CartesianChartPoint.regionData");
  charts.CartesianChartPoint$ = dart.generic(D => {
    class CartesianChartPoint extends core.Object {
      get x() {
        return this[x$4];
      }
      set x(value) {
        this[x$4] = D._check(value);
      }
      get y() {
        return this[y$2];
      }
      set y(value) {
        this[y$2] = D._check(value);
      }
      get xValue() {
        return this[xValue];
      }
      set xValue(value) {
        this[xValue] = D._check(value);
      }
      get yValue() {
        return this[yValue];
      }
      set yValue(value) {
        this[yValue] = D._check(value);
      }
      get sortValue() {
        return this[sortValue$0];
      }
      set sortValue(value) {
        this[sortValue$0] = D._check(value);
      }
      get high() {
        return this[high$1];
      }
      set high(value) {
        this[high$1] = D._check(value);
      }
      get low() {
        return this[low$1];
      }
      set low(value) {
        this[low$1] = D._check(value);
      }
      get open() {
        return this[open$0];
      }
      set open(value) {
        this[open$0] = D._check(value);
      }
      get close() {
        return this[close$0];
      }
      set close(value) {
        this[close$0] = D._check(value);
      }
      get volume() {
        return this[volume$];
      }
      set volume(value) {
        this[volume$] = value;
      }
      get markerPoint() {
        return this[markerPoint];
      }
      set markerPoint(value) {
        this[markerPoint] = value;
      }
      get markerPoint2() {
        return this[markerPoint2];
      }
      set markerPoint2(value) {
        this[markerPoint2] = value;
      }
      get bubbleSize() {
        return this[bubbleSize$];
      }
      set bubbleSize(value) {
        this[bubbleSize$] = value;
      }
      get isEmpty() {
        return this[isEmpty$0];
      }
      set isEmpty(value) {
        this[isEmpty$0] = value;
      }
      get isGap() {
        return this[isGap];
      }
      set isGap(value) {
        this[isGap] = value;
      }
      get isDrop() {
        return this[isDrop];
      }
      set isDrop(value) {
        this[isDrop] = value;
      }
      get isVisible() {
        return this[isVisible$4];
      }
      set isVisible(value) {
        this[isVisible$4] = value;
      }
      get pointColorMapper() {
        return this[pointColorMapper$4];
      }
      set pointColorMapper(value) {
        this[pointColorMapper$4] = value;
      }
      get dataLabelMapper() {
        return this[dataLabelMapper$2];
      }
      set dataLabelMapper(value) {
        this[dataLabelMapper$2] = value;
      }
      get region() {
        return this[region$0];
      }
      set region(value) {
        this[region$0] = value;
      }
      get openPoint() {
        return this[openPoint$];
      }
      set openPoint(value) {
        this[openPoint$] = value;
      }
      get closePoint() {
        return this[closePoint$];
      }
      set closePoint(value) {
        this[closePoint$] = value;
      }
      get centerOpenPoint() {
        return this[centerOpenPoint];
      }
      set centerOpenPoint(value) {
        this[centerOpenPoint] = value;
      }
      get centerClosePoint() {
        return this[centerClosePoint];
      }
      set centerClosePoint(value) {
        this[centerClosePoint] = value;
      }
      get sideBySideInfo() {
        return this[sideBySideInfo];
      }
      set sideBySideInfo(value) {
        this[sideBySideInfo] = value;
      }
      get regions() {
        return this[regions];
      }
      set regions(value) {
        this[regions] = value;
      }
      get cumulativeValue() {
        return this[cumulativeValue];
      }
      set cumulativeValue(value) {
        this[cumulativeValue] = value;
      }
      get trackerRectRegion() {
        return this[trackerRectRegion];
      }
      set trackerRectRegion(value) {
        this[trackerRectRegion] = value;
      }
      get label() {
        return this[label];
      }
      set label(value) {
        this[label] = value;
      }
      get label2() {
        return this[label2];
      }
      set label2(value) {
        this[label2] = value;
      }
      get label3() {
        return this[label3];
      }
      set label3(value) {
        this[label3] = value;
      }
      get label4() {
        return this[label4];
      }
      set label4(value) {
        this[label4] = value;
      }
      get labelFillRect() {
        return this[labelFillRect];
      }
      set labelFillRect(value) {
        this[labelFillRect] = value;
      }
      get labelFillRect2() {
        return this[labelFillRect2];
      }
      set labelFillRect2(value) {
        this[labelFillRect2] = value;
      }
      get labelFillRect3() {
        return this[labelFillRect3];
      }
      set labelFillRect3(value) {
        this[labelFillRect3] = value;
      }
      get labelFillRect4() {
        return this[labelFillRect4];
      }
      set labelFillRect4(value) {
        this[labelFillRect4] = value;
      }
      get labelLocation() {
        return this[labelLocation];
      }
      set labelLocation(value) {
        this[labelLocation] = value;
      }
      get labelLocation2() {
        return this[labelLocation2];
      }
      set labelLocation2(value) {
        this[labelLocation2] = value;
      }
      get labelLocation3() {
        return this[labelLocation3];
      }
      set labelLocation3(value) {
        this[labelLocation3] = value;
      }
      get labelLocation4() {
        return this[labelLocation4];
      }
      set labelLocation4(value) {
        this[labelLocation4] = value;
      }
      get dataLabelSaturationRegionInside() {
        return this[dataLabelSaturationRegionInside];
      }
      set dataLabelSaturationRegionInside(value) {
        this[dataLabelSaturationRegionInside] = value;
      }
      get dataLabelRegion() {
        return this[dataLabelRegion];
      }
      set dataLabelRegion(value) {
        this[dataLabelRegion] = value;
      }
      get dataLabelRegion2() {
        return this[dataLabelRegion2];
      }
      set dataLabelRegion2(value) {
        this[dataLabelRegion2] = value;
      }
      get dataLabelRegion3() {
        return this[dataLabelRegion3];
      }
      set dataLabelRegion3(value) {
        this[dataLabelRegion3] = value;
      }
      get dataLabelRegion4() {
        return this[dataLabelRegion4];
      }
      set dataLabelRegion4(value) {
        this[dataLabelRegion4] = value;
      }
      get index() {
        return this[index];
      }
      set index(value) {
        this[index] = value;
      }
      get regionData() {
        return this[regionData];
      }
      set regionData(value) {
        this[regionData] = value;
      }
    }
    (CartesianChartPoint.new = function(x = null, y = null, dataLabelMapper = null, pointColorMapper = null, bubbleSize = null, high = null, low = null, open = null, close = null, volume = null) {
      this[xValue] = null;
      this[yValue] = null;
      this[sortValue$0] = null;
      this[markerPoint] = null;
      this[markerPoint2] = null;
      this[isEmpty$0] = null;
      this[isGap] = false;
      this[isDrop] = false;
      this[isVisible$4] = true;
      this[region$0] = null;
      this[openPoint$] = null;
      this[closePoint$] = null;
      this[centerOpenPoint] = null;
      this[centerClosePoint] = null;
      this[sideBySideInfo] = null;
      this[regions] = null;
      this[cumulativeValue] = null;
      this[trackerRectRegion] = null;
      this[label] = null;
      this[label2] = null;
      this[label3] = null;
      this[label4] = null;
      this[labelFillRect] = null;
      this[labelFillRect2] = null;
      this[labelFillRect3] = null;
      this[labelFillRect4] = null;
      this[labelLocation] = null;
      this[labelLocation2] = null;
      this[labelLocation3] = null;
      this[labelLocation4] = null;
      this[dataLabelSaturationRegionInside] = false;
      this[dataLabelRegion] = null;
      this[dataLabelRegion2] = null;
      this[dataLabelRegion3] = null;
      this[dataLabelRegion4] = null;
      this[index] = null;
      this[regionData] = null;
      this[x$4] = x;
      this[y$2] = y;
      this[dataLabelMapper$2] = dataLabelMapper;
      this[pointColorMapper$4] = pointColorMapper;
      this[bubbleSize$] = bubbleSize;
      this[high$1] = high;
      this[low$1] = low;
      this[open$0] = open;
      this[close$0] = close;
      this[volume$] = volume;
      this.x = this.x;
      this.y = this.y;
      this.sortValue = this.sortValue;
      this.markerPoint = this.markerPoint;
      this.isEmpty = this.isEmpty;
      this.isGap = this.isGap;
      this.isVisible = this.isVisible;
      this.bubbleSize = this.bubbleSize;
      this.pointColorMapper = this.pointColorMapper;
      this.dataLabelMapper = this.dataLabelMapper;
      this.high = this.high;
      this.low = this.low;
      this.open = this.open;
      this.close = this.close;
      this.markerPoint2 = this.markerPoint2;
      this.volume = this.volume;
    }).prototype = CartesianChartPoint.prototype;
    dart.addTypeTests(CartesianChartPoint);
    CartesianChartPoint.prototype[_is_CartesianChartPoint_default] = true;
    dart.setLibraryUri(CartesianChartPoint, "package:syncfusion_flutter_charts/charts.dart");
    dart.setFieldSignature(CartesianChartPoint, () => ({
      __proto__: dart.getFields(CartesianChartPoint.__proto__),
      x: dart.fieldType(D),
      y: dart.fieldType(D),
      xValue: dart.fieldType(D),
      yValue: dart.fieldType(D),
      sortValue: dart.fieldType(D),
      high: dart.fieldType(D),
      low: dart.fieldType(D),
      open: dart.fieldType(D),
      close: dart.fieldType(D),
      volume: dart.fieldType(core.num),
      markerPoint: dart.fieldType(charts._ChartLocation),
      markerPoint2: dart.fieldType(charts._ChartLocation),
      bubbleSize: dart.fieldType(core.double),
      isEmpty: dart.fieldType(core.bool),
      isGap: dart.fieldType(core.bool),
      isDrop: dart.fieldType(core.bool),
      isVisible: dart.fieldType(core.bool),
      pointColorMapper: dart.fieldType(ui.Color),
      dataLabelMapper: dart.fieldType(core.String),
      region: dart.fieldType(ui.Rect),
      openPoint: dart.fieldType(charts._ChartLocation),
      closePoint: dart.fieldType(charts._ChartLocation),
      centerOpenPoint: dart.fieldType(charts._ChartLocation),
      centerClosePoint: dart.fieldType(charts._ChartLocation),
      sideBySideInfo: dart.fieldType(charts._VisibleRange),
      regions: dart.fieldType(core.List$(ui.Rect)),
      cumulativeValue: dart.fieldType(core.double),
      trackerRectRegion: dart.fieldType(ui.Rect),
      label: dart.fieldType(core.String),
      label2: dart.fieldType(core.String),
      label3: dart.fieldType(core.String),
      label4: dart.fieldType(core.String),
      labelFillRect: dart.fieldType(ui.RRect),
      labelFillRect2: dart.fieldType(ui.RRect),
      labelFillRect3: dart.fieldType(ui.RRect),
      labelFillRect4: dart.fieldType(ui.RRect),
      labelLocation: dart.fieldType(charts._ChartLocation),
      labelLocation2: dart.fieldType(charts._ChartLocation),
      labelLocation3: dart.fieldType(charts._ChartLocation),
      labelLocation4: dart.fieldType(charts._ChartLocation),
      dataLabelSaturationRegionInside: dart.fieldType(core.bool),
      dataLabelRegion: dart.fieldType(ui.Rect),
      dataLabelRegion2: dart.fieldType(ui.Rect),
      dataLabelRegion3: dart.fieldType(ui.Rect),
      dataLabelRegion4: dart.fieldType(ui.Rect),
      index: dart.fieldType(core.int),
      regionData: dart.fieldType(core.List$(core.String))
    }));
    return CartesianChartPoint;
  });
  charts.CartesianChartPoint = charts.CartesianChartPoint$();
  dart.addTypeTests(charts.CartesianChartPoint, _is_CartesianChartPoint_default);
  charts._ChartLocation = class _ChartLocation extends core.Object {};
  (charts._ChartLocation.new = function(x, y) {
    this.x = x;
    this.y = y;
    ;
  }).prototype = charts._ChartLocation.prototype;
  dart.addTypeTests(charts._ChartLocation);
  dart.setLibraryUri(charts._ChartLocation, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._ChartLocation, () => ({
    __proto__: dart.getFields(charts._ChartLocation.__proto__),
    x: dart.fieldType(core.num),
    y: dart.fieldType(core.num)
  }));
  const _values$ = dart.privateName(charts, "_values");
  const _is__CircularIntervalList_default = Symbol('_is__CircularIntervalList_default');
  charts._CircularIntervalList$ = dart.generic(T => {
    class _CircularIntervalList extends core.Object {
      get next() {
        let t2;
        if (dart.notNull(this[_index]) >= dart.notNull(this[_values$][$length])) {
          this[_index] = 0;
        }
        return this[_values$][$_get]((t2 = this[_index], this[_index] = dart.notNull(t2) + 1, t2));
      }
    }
    (_CircularIntervalList.new = function(_values) {
      this[_index] = 0;
      this[_values$] = _values;
      ;
    }).prototype = _CircularIntervalList.prototype;
    dart.addTypeTests(_CircularIntervalList);
    _CircularIntervalList.prototype[_is__CircularIntervalList_default] = true;
    dart.setGetterSignature(_CircularIntervalList, () => ({
      __proto__: dart.getGetters(_CircularIntervalList.__proto__),
      next: T
    }));
    dart.setLibraryUri(_CircularIntervalList, "package:syncfusion_flutter_charts/charts.dart");
    dart.setFieldSignature(_CircularIntervalList, () => ({
      __proto__: dart.getFields(_CircularIntervalList.__proto__),
      [_values$]: dart.finalFieldType(core.List$(T)),
      [_index]: dart.fieldType(core.int)
    }));
    return _CircularIntervalList;
  });
  charts._CircularIntervalList = charts._CircularIntervalList$();
  dart.addTypeTests(charts._CircularIntervalList, _is__CircularIntervalList_default);
  charts._CustomPaintStyle = class _CustomPaintStyle extends core.Object {};
  (charts._CustomPaintStyle.new = function(strokeWidth, color, paintStyle) {
    this.strokeWidth = strokeWidth;
    this.color = color;
    this.paintStyle = paintStyle;
    ;
  }).prototype = charts._CustomPaintStyle.prototype;
  dart.addTypeTests(charts._CustomPaintStyle);
  dart.setLibraryUri(charts._CustomPaintStyle, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._CustomPaintStyle, () => ({
    __proto__: dart.getFields(charts._CustomPaintStyle.__proto__),
    color: dart.fieldType(ui.Color),
    strokeWidth: dart.fieldType(core.double),
    paintStyle: dart.fieldType(ui.PaintingStyle)
  }));
  charts._AxisSize = class _AxisSize extends core.Object {};
  (charts._AxisSize.new = function(axis, size) {
    this.axis = axis;
    this.size = size;
    ;
  }).prototype = charts._AxisSize.prototype;
  dart.addTypeTests(charts._AxisSize);
  dart.setLibraryUri(charts._AxisSize, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._AxisSize, () => ({
    __proto__: dart.getFields(charts._AxisSize.__proto__),
    size: dart.fieldType(core.num),
    axis: dart.fieldType(charts.ChartAxis)
  }));
  charts._PainterKey = class _PainterKey extends core.Object {};
  (charts._PainterKey.new = function(opts) {
    let index = opts && 'index' in opts ? opts.index : null;
    let name = opts && 'name' in opts ? opts.name : null;
    let isRenderCompleted = opts && 'isRenderCompleted' in opts ? opts.isRenderCompleted : null;
    this.index = index;
    this.name = name;
    this.isRenderCompleted = isRenderCompleted;
    ;
  }).prototype = charts._PainterKey.prototype;
  dart.addTypeTests(charts._PainterKey);
  dart.setLibraryUri(charts._PainterKey, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._PainterKey, () => ({
    __proto__: dart.getFields(charts._PainterKey.__proto__),
    index: dart.finalFieldType(core.int),
    name: dart.finalFieldType(core.String),
    isRenderCompleted: dart.fieldType(core.bool)
  }));
  const enable$ = dart.privateName(charts, "InteractiveTooltip.enable");
  const color$9 = dart.privateName(charts, "InteractiveTooltip.color");
  const borderColor$9 = dart.privateName(charts, "InteractiveTooltip.borderColor");
  const borderWidth$10 = dart.privateName(charts, "InteractiveTooltip.borderWidth");
  const textStyle$1 = dart.privateName(charts, "InteractiveTooltip.textStyle");
  const borderRadius$3 = dart.privateName(charts, "InteractiveTooltip.borderRadius");
  const arrowLength$ = dart.privateName(charts, "InteractiveTooltip.arrowLength");
  const arrowWidth$ = dart.privateName(charts, "InteractiveTooltip.arrowWidth");
  const format$ = dart.privateName(charts, "InteractiveTooltip.format");
  const connectorLineWidth$ = dart.privateName(charts, "InteractiveTooltip.connectorLineWidth");
  const connectorLineColor$ = dart.privateName(charts, "InteractiveTooltip.connectorLineColor");
  const connectorLineDashArray$ = dart.privateName(charts, "InteractiveTooltip.connectorLineDashArray");
  const decimalPlaces$0 = dart.privateName(charts, "InteractiveTooltip.decimalPlaces");
  charts.InteractiveTooltip = class InteractiveTooltip extends core.Object {
    get enable() {
      return this[enable$];
    }
    set enable(value) {
      super.enable = value;
    }
    get color() {
      return this[color$9];
    }
    set color(value) {
      super.color = value;
    }
    get borderColor() {
      return this[borderColor$9];
    }
    set borderColor(value) {
      super.borderColor = value;
    }
    get borderWidth() {
      return this[borderWidth$10];
    }
    set borderWidth(value) {
      super.borderWidth = value;
    }
    get textStyle() {
      return this[textStyle$1];
    }
    set textStyle(value) {
      super.textStyle = value;
    }
    get borderRadius() {
      return this[borderRadius$3];
    }
    set borderRadius(value) {
      super.borderRadius = value;
    }
    get arrowLength() {
      return this[arrowLength$];
    }
    set arrowLength(value) {
      super.arrowLength = value;
    }
    get arrowWidth() {
      return this[arrowWidth$];
    }
    set arrowWidth(value) {
      super.arrowWidth = value;
    }
    get format() {
      return this[format$];
    }
    set format(value) {
      super.format = value;
    }
    get connectorLineWidth() {
      return this[connectorLineWidth$];
    }
    set connectorLineWidth(value) {
      super.connectorLineWidth = value;
    }
    get connectorLineColor() {
      return this[connectorLineColor$];
    }
    set connectorLineColor(value) {
      super.connectorLineColor = value;
    }
    get connectorLineDashArray() {
      return this[connectorLineDashArray$];
    }
    set connectorLineDashArray(value) {
      super.connectorLineDashArray = value;
    }
    get decimalPlaces() {
      return this[decimalPlaces$0];
    }
    set decimalPlaces(value) {
      super.decimalPlaces = value;
    }
  };
  (charts.InteractiveTooltip.new = function(opts) {
    let t2;
    let enable = opts && 'enable' in opts ? opts.enable : true;
    let color = opts && 'color' in opts ? opts.color : null;
    let borderColor = opts && 'borderColor' in opts ? opts.borderColor : null;
    let borderWidth = opts && 'borderWidth' in opts ? opts.borderWidth : 0;
    let borderRadius = opts && 'borderRadius' in opts ? opts.borderRadius : 5;
    let arrowLength = opts && 'arrowLength' in opts ? opts.arrowLength : 7;
    let arrowWidth = opts && 'arrowWidth' in opts ? opts.arrowWidth : 5;
    let format = opts && 'format' in opts ? opts.format : null;
    let connectorLineColor = opts && 'connectorLineColor' in opts ? opts.connectorLineColor : null;
    let connectorLineWidth = opts && 'connectorLineWidth' in opts ? opts.connectorLineWidth : 1.5;
    let connectorLineDashArray = opts && 'connectorLineDashArray' in opts ? opts.connectorLineDashArray : null;
    let decimalPlaces = opts && 'decimalPlaces' in opts ? opts.decimalPlaces : 3;
    let textStyle = opts && 'textStyle' in opts ? opts.textStyle : null;
    this[enable$] = enable;
    this[color$9] = color;
    this[borderColor$9] = borderColor;
    this[borderWidth$10] = borderWidth;
    this[borderRadius$3] = borderRadius;
    this[arrowLength$] = arrowLength;
    this[arrowWidth$] = arrowWidth;
    this[format$] = format;
    this[connectorLineColor$] = connectorLineColor;
    this[connectorLineWidth$] = connectorLineWidth;
    this[connectorLineDashArray$] = connectorLineDashArray;
    this[decimalPlaces$0] = decimalPlaces;
    this[textStyle$1] = (t2 = textStyle, t2 == null ? new charts.ChartTextStyle.new() : t2);
    ;
  }).prototype = charts.InteractiveTooltip.prototype;
  dart.addTypeTests(charts.InteractiveTooltip);
  dart.setLibraryUri(charts.InteractiveTooltip, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.InteractiveTooltip, () => ({
    __proto__: dart.getFields(charts.InteractiveTooltip.__proto__),
    enable: dart.finalFieldType(core.bool),
    color: dart.finalFieldType(ui.Color),
    borderColor: dart.finalFieldType(ui.Color),
    borderWidth: dart.finalFieldType(core.double),
    textStyle: dart.finalFieldType(charts.ChartTextStyle),
    borderRadius: dart.finalFieldType(core.double),
    arrowLength: dart.finalFieldType(core.double),
    arrowWidth: dart.finalFieldType(core.double),
    format: dart.finalFieldType(core.String),
    connectorLineWidth: dart.finalFieldType(core.double),
    connectorLineColor: dart.finalFieldType(ui.Color),
    connectorLineDashArray: dart.finalFieldType(core.List$(core.double)),
    decimalPlaces: dart.finalFieldType(core.int)
  }));
  charts._StackedValues = class _StackedValues extends core.Object {};
  (charts._StackedValues.new = function(startValues, endValues) {
    this.startValues = startValues;
    this.endValues = endValues;
    ;
  }).prototype = charts._StackedValues.prototype;
  dart.addTypeTests(charts._StackedValues);
  dart.setLibraryUri(charts._StackedValues, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._StackedValues, () => ({
    __proto__: dart.getFields(charts._StackedValues.__proto__),
    startValues: dart.fieldType(core.List$(core.double)),
    endValues: dart.fieldType(core.List$(core.double))
  }));
  charts._ClusterStackedItemInfo = class _ClusterStackedItemInfo extends core.Object {};
  (charts._ClusterStackedItemInfo.new = function(stackName, stackedItemInfo) {
    this.stackName = stackName;
    this.stackedItemInfo = stackedItemInfo;
    ;
  }).prototype = charts._ClusterStackedItemInfo.prototype;
  dart.addTypeTests(charts._ClusterStackedItemInfo);
  dart.setLibraryUri(charts._ClusterStackedItemInfo, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._ClusterStackedItemInfo, () => ({
    __proto__: dart.getFields(charts._ClusterStackedItemInfo.__proto__),
    stackName: dart.fieldType(core.String),
    stackedItemInfo: dart.fieldType(core.List$(charts._StackedItemInfo))
  }));
  charts._StackedItemInfo = class _StackedItemInfo extends core.Object {};
  (charts._StackedItemInfo.new = function(seriesIndex, series) {
    this.seriesIndex = seriesIndex;
    this.series = series;
    ;
  }).prototype = charts._StackedItemInfo.prototype;
  dart.addTypeTests(charts._StackedItemInfo);
  dart.setLibraryUri(charts._StackedItemInfo, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._StackedItemInfo, () => ({
    __proto__: dart.getFields(charts._StackedItemInfo.__proto__),
    seriesIndex: dart.fieldType(core.int),
    series: dart.fieldType(charts._StackedSeriesBase)
  }));
  let C549;
  let C550;
  const alignment$0 = dart.privateName(charts, "DataLabelSettings.alignment");
  const color$10 = dart.privateName(charts, "DataLabelSettings.color");
  const textStyle$2 = dart.privateName(charts, "DataLabelSettings.textStyle");
  const margin$3 = dart.privateName(charts, "DataLabelSettings.margin");
  const opacity$5 = dart.privateName(charts, "DataLabelSettings.opacity");
  const useSeriesColor$0 = dart.privateName(charts, "DataLabelSettings.useSeriesColor");
  const labelAlignment$0 = dart.privateName(charts, "DataLabelSettings.labelAlignment");
  const borderRadius$4 = dart.privateName(charts, "DataLabelSettings.borderRadius");
  const isVisible$5 = dart.privateName(charts, "DataLabelSettings.isVisible");
  const angle$0 = dart.privateName(charts, "DataLabelSettings.angle");
  const borderColor$10 = dart.privateName(charts, "DataLabelSettings.borderColor");
  const borderWidth$11 = dart.privateName(charts, "DataLabelSettings.borderWidth");
  const labelPosition$0 = dart.privateName(charts, "DataLabelSettings.labelPosition");
  const connectorLineSettings$ = dart.privateName(charts, "DataLabelSettings.connectorLineSettings");
  const labelIntersectAction$0 = dart.privateName(charts, "DataLabelSettings.labelIntersectAction");
  const builder$ = dart.privateName(charts, "DataLabelSettings.builder");
  const showCumulativeValues$ = dart.privateName(charts, "DataLabelSettings.showCumulativeValues");
  charts.DataLabelSettings = class DataLabelSettings extends core.Object {
    get alignment() {
      return this[alignment$0];
    }
    set alignment(value) {
      super.alignment = value;
    }
    get color() {
      return this[color$10];
    }
    set color(value) {
      super.color = value;
    }
    get textStyle() {
      return this[textStyle$2];
    }
    set textStyle(value) {
      super.textStyle = value;
    }
    get margin() {
      return this[margin$3];
    }
    set margin(value) {
      super.margin = value;
    }
    get opacity() {
      return this[opacity$5];
    }
    set opacity(value) {
      super.opacity = value;
    }
    get useSeriesColor() {
      return this[useSeriesColor$0];
    }
    set useSeriesColor(value) {
      super.useSeriesColor = value;
    }
    get labelAlignment() {
      return this[labelAlignment$0];
    }
    set labelAlignment(value) {
      super.labelAlignment = value;
    }
    get borderRadius() {
      return this[borderRadius$4];
    }
    set borderRadius(value) {
      super.borderRadius = value;
    }
    get isVisible() {
      return this[isVisible$5];
    }
    set isVisible(value) {
      super.isVisible = value;
    }
    get angle() {
      return this[angle$0];
    }
    set angle(value) {
      super.angle = value;
    }
    get borderColor() {
      return this[borderColor$10];
    }
    set borderColor(value) {
      super.borderColor = value;
    }
    get borderWidth() {
      return this[borderWidth$11];
    }
    set borderWidth(value) {
      super.borderWidth = value;
    }
    get labelPosition() {
      return this[labelPosition$0];
    }
    set labelPosition(value) {
      super.labelPosition = value;
    }
    get connectorLineSettings() {
      return this[connectorLineSettings$];
    }
    set connectorLineSettings(value) {
      super.connectorLineSettings = value;
    }
    get labelIntersectAction() {
      return this[labelIntersectAction$0];
    }
    set labelIntersectAction(value) {
      super.labelIntersectAction = value;
    }
    get builder() {
      return this[builder$];
    }
    set builder(value) {
      super.builder = value;
    }
    get showCumulativeValues() {
      return this[showCumulativeValues$];
    }
    set showCumulativeValues(value) {
      super.showCumulativeValues = value;
    }
    renderDataLabel(chart, series, point, animationController, canvas, labelIndex) {
      charts._calculateDataLabelPosition(charts.XyDataSeries._check(series), point, labelIndex, chart);
      charts._drawDataLabel(canvas, series, chart, series.dataLabelSettings, point, labelIndex, animationController);
    }
  };
  (charts.DataLabelSettings.new = function(opts) {
    let t2, t2$, t2$0, t2$1, t2$2, t2$3, t2$4, t2$5;
    let alignment = opts && 'alignment' in opts ? opts.alignment : C355 || CT.C355;
    let color = opts && 'color' in opts ? opts.color : null;
    let textStyle = opts && 'textStyle' in opts ? opts.textStyle : null;
    let margin = opts && 'margin' in opts ? opts.margin : null;
    let opacity = opts && 'opacity' in opts ? opts.opacity : 1;
    let labelAlignment = opts && 'labelAlignment' in opts ? opts.labelAlignment : C549 || CT.C549;
    let borderRadius = opts && 'borderRadius' in opts ? opts.borderRadius : 5;
    let isVisible = opts && 'isVisible' in opts ? opts.isVisible : false;
    let angle = opts && 'angle' in opts ? opts.angle : 0;
    let builder = opts && 'builder' in opts ? opts.builder : null;
    let useSeriesColor = opts && 'useSeriesColor' in opts ? opts.useSeriesColor : null;
    let showCumulativeValues = opts && 'showCumulativeValues' in opts ? opts.showCumulativeValues : false;
    let borderColor = opts && 'borderColor' in opts ? opts.borderColor : null;
    let borderWidth = opts && 'borderWidth' in opts ? opts.borderWidth : null;
    let labelIntersectAction = opts && 'labelIntersectAction' in opts ? opts.labelIntersectAction : null;
    let connectorLineSettings = opts && 'connectorLineSettings' in opts ? opts.connectorLineSettings : null;
    let labelPosition = opts && 'labelPosition' in opts ? opts.labelPosition : null;
    this[alignment$0] = alignment;
    this[color$10] = color;
    this[opacity$5] = opacity;
    this[labelAlignment$0] = labelAlignment;
    this[borderRadius$4] = borderRadius;
    this[isVisible$5] = isVisible;
    this[angle$0] = angle;
    this[builder$] = builder;
    this[showCumulativeValues$] = showCumulativeValues;
    this[borderColor$10] = (t2 = borderColor, t2 == null ? colors$.Colors.transparent : t2);
    this[useSeriesColor$0] = (t2$ = useSeriesColor, t2$ == null ? false : t2$);
    this[labelPosition$0] = (t2$0 = labelPosition, t2$0 == null ? charts.ChartDataLabelPosition.inside : t2$0);
    this[borderWidth$11] = (t2$1 = borderWidth, t2$1 == null ? 0.0 : t2$1);
    this[margin$3] = (t2$2 = margin, t2$2 == null ? C550 || CT.C550 : t2$2);
    this[connectorLineSettings$] = (t2$3 = connectorLineSettings, t2$3 == null ? new charts.ConnectorLineSettings.new() : t2$3);
    this[labelIntersectAction$0] = (t2$4 = labelIntersectAction, t2$4 == null ? charts.LabelIntersectAction.hide : t2$4);
    this[textStyle$2] = (t2$5 = textStyle, t2$5 == null ? new charts.ChartTextStyle.new() : t2$5);
    ;
  }).prototype = charts.DataLabelSettings.prototype;
  dart.addTypeTests(charts.DataLabelSettings);
  dart.setMethodSignature(charts.DataLabelSettings, () => ({
    __proto__: dart.getMethods(charts.DataLabelSettings.__proto__),
    renderDataLabel: dart.fnType(dart.void, [charts.SfCartesianChart, charts.CartesianSeries, charts.CartesianChartPoint, animation.Animation$(core.double), ui.Canvas, core.int])
  }));
  dart.setLibraryUri(charts.DataLabelSettings, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.DataLabelSettings, () => ({
    __proto__: dart.getFields(charts.DataLabelSettings.__proto__),
    alignment: dart.finalFieldType(charts.ChartAlignment),
    color: dart.finalFieldType(ui.Color),
    textStyle: dart.finalFieldType(charts.ChartTextStyle),
    margin: dart.finalFieldType(edge_insets.EdgeInsets),
    opacity: dart.finalFieldType(core.double),
    useSeriesColor: dart.finalFieldType(core.bool),
    labelAlignment: dart.finalFieldType(charts.ChartDataLabelAlignment),
    borderRadius: dart.finalFieldType(core.double),
    isVisible: dart.finalFieldType(core.bool),
    angle: dart.finalFieldType(core.int),
    borderColor: dart.finalFieldType(ui.Color),
    borderWidth: dart.finalFieldType(core.double),
    labelPosition: dart.finalFieldType(charts.ChartDataLabelPosition),
    connectorLineSettings: dart.finalFieldType(charts.ConnectorLineSettings),
    labelIntersectAction: dart.finalFieldType(charts.LabelIntersectAction),
    builder: dart.finalFieldType(dart.fnType(framework.Widget, [dart.dynamic, dart.dynamic, dart.dynamic, core.int, core.int])),
    showCumulativeValues: dart.finalFieldType(core.bool)
  }));
  let C551;
  const _image = dart.privateName(charts, "_image");
  const _drawImageMarker = dart.privateName(charts, "_drawImageMarker");
  const isVisible$6 = dart.privateName(charts, "MarkerSettings.isVisible");
  const height$2 = dart.privateName(charts, "MarkerSettings.height");
  const width$9 = dart.privateName(charts, "MarkerSettings.width");
  const color$11 = dart.privateName(charts, "MarkerSettings.color");
  const shape$ = dart.privateName(charts, "MarkerSettings.shape");
  const borderColor$11 = dart.privateName(charts, "MarkerSettings.borderColor");
  const borderWidth$12 = dart.privateName(charts, "MarkerSettings.borderWidth");
  const image$ = dart.privateName(charts, "MarkerSettings.image");
  charts.MarkerSettings = class MarkerSettings extends core.Object {
    get isVisible() {
      return this[isVisible$6];
    }
    set isVisible(value) {
      super.isVisible = value;
    }
    get height() {
      return this[height$2];
    }
    set height(value) {
      super.height = value;
    }
    get width() {
      return this[width$9];
    }
    set width(value) {
      super.width = value;
    }
    get color() {
      return this[color$11];
    }
    set color(value) {
      super.color = value;
    }
    get shape() {
      return this[shape$];
    }
    set shape(value) {
      super.shape = value;
    }
    get borderColor() {
      return this[borderColor$11];
    }
    set borderColor(value) {
      super.borderColor = value;
    }
    get borderWidth() {
      return this[borderWidth$12];
    }
    set borderWidth(value) {
      super.borderWidth = value;
    }
    get image() {
      return this[image$];
    }
    set image(value) {
      super.image = value;
    }
    renderMarker(series, point, animationController, canvas, markerIndex) {
      let t2, t2$, t3, t2$0;
      {
        let strokePaint = null;
        let fillPaint = null;
        let size = new ui.Size.new(series.markerSettings.width, series.markerSettings.height);
        let markerType = series.markerSettings.shape;
        let point = null;
        let _borderColor = null;
        let hasPointColor = series.pointColorMapper != null ? true : false;
        let opacity = animationController != null ? animationController.value : 1.0;
        point = series[_dataPoints$][$_get](markerIndex);
        _borderColor = (t2 = series.markerSettings.borderColor, t2 == null ? series[_seriesColor] : t2);
        strokePaint = (t2$ = ui.Paint.new(), t2$.color = dart.equals(point.isEmpty, true) ? series.emptyPointSettings.borderWidth === 0 ? colors$.Colors.transparent : series.emptyPointSettings.borderColor.withOpacity(opacity) : series.markerSettings.borderWidth === 0 ? colors$.Colors.transparent : hasPointColor && point.pointColorMapper != null ? point.pointColorMapper.withOpacity(opacity) : _borderColor.withOpacity(opacity), t2$.style = ui.PaintingStyle.stroke, t2$.strokeWidth = dart.equals(point.isEmpty, true) ? series.emptyPointSettings.borderWidth : series.markerSettings.borderWidth, t2$);
        if (series.gradient != null && series.markerSettings.borderColor == null) {
          strokePaint = charts._getLinearGradientPaint(series.gradient, charts._getMarkerShapes(markerType, new ui.Offset.new(point.markerPoint.x, point.markerPoint.y), size, series).getBounds(), series[_chart][_requireInvertedAxis]);
          strokePaint.style = ui.PaintingStyle.stroke;
          strokePaint.strokeWidth = dart.equals(point.isEmpty, true) ? series.emptyPointSettings.borderWidth : series.markerSettings.borderWidth;
        }
        fillPaint = (t2$0 = ui.Paint.new(), t2$0.color = dart.equals(point.isEmpty, true) ? series.emptyPointSettings.color : !dart.equals(series.markerSettings.color, colors$.Colors.transparent) ? (t3 = series.markerSettings.color, t3 == null ? dart.equals(series[_chart][_chartState][_chartTheme].brightness, ui.Brightness.light) ? colors$.Colors.white : colors$.Colors.black : t3).withOpacity(opacity) : series.markerSettings.color, t2$0.style = ui.PaintingStyle.fill, t2$0);
        let isScatter = series[_seriesType$] === "scatter";
        if ((dart.test(series.markerSettings.isVisible) || isScatter) && dart.test(point.isVisible) && point.markerPoint != null && !dart.equals(point.isGap, true) && (!isScatter || dart.equals(series.markerSettings.shape, charts.DataMarkerType.image))) {
          series.drawDataMarker(markerIndex, canvas, fillPaint, strokePaint, point.markerPoint.x, point.markerPoint.y);
          if (dart.equals(series.markerSettings.shape, charts.DataMarkerType.image)) {
            this[_drawImageMarker](series, canvas, point.markerPoint.x, point.markerPoint.y);
            if (series[_seriesType$][$contains]("range")) this[_drawImageMarker](series, canvas, point.markerPoint2.x, point.markerPoint2.y);
          }
        }
      }
    }
    [_drawImageMarker](series, canvas, pointX, pointY) {
      if (series.markerSettings[_image] != null) {
        let imageWidth = 2 * dart.notNull(series.markerSettings.width);
        let imageHeight = 2 * dart.notNull(series.markerSettings.height);
        let positionRect = new ui.Rect.fromLTWH(dart.notNull(pointX) - imageWidth / 2, dart.notNull(pointY) - imageHeight / 2, imageWidth, imageHeight);
        decoration_image.paintImage({canvas: canvas, rect: positionRect, image: series.markerSettings[_image], fit: box_fit.BoxFit.fill});
      }
    }
  };
  (charts.MarkerSettings.new = function(opts) {
    let isVisible = opts && 'isVisible' in opts ? opts.isVisible : false;
    let height = opts && 'height' in opts ? opts.height : 8;
    let width = opts && 'width' in opts ? opts.width : 8;
    let color = opts && 'color' in opts ? opts.color : null;
    let shape = opts && 'shape' in opts ? opts.shape : C551 || CT.C551;
    let borderWidth = opts && 'borderWidth' in opts ? opts.borderWidth : 2;
    let borderColor = opts && 'borderColor' in opts ? opts.borderColor : null;
    let image = opts && 'image' in opts ? opts.image : null;
    this[_image] = null;
    this[isVisible$6] = isVisible;
    this[height$2] = height;
    this[width$9] = width;
    this[color$11] = color;
    this[shape$] = shape;
    this[borderWidth$12] = borderWidth;
    this[borderColor$11] = borderColor;
    this[image$] = image;
    ;
  }).prototype = charts.MarkerSettings.prototype;
  dart.addTypeTests(charts.MarkerSettings);
  dart.setMethodSignature(charts.MarkerSettings, () => ({
    __proto__: dart.getMethods(charts.MarkerSettings.__proto__),
    renderMarker: dart.fnType(dart.void, [charts.CartesianSeries, charts.CartesianChartPoint, animation.Animation$(core.double), ui.Canvas, core.int]),
    [_drawImageMarker]: dart.fnType(dart.void, [charts.CartesianSeries, ui.Canvas, core.double, core.double])
  }));
  dart.setLibraryUri(charts.MarkerSettings, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.MarkerSettings, () => ({
    __proto__: dart.getFields(charts.MarkerSettings.__proto__),
    isVisible: dart.finalFieldType(core.bool),
    height: dart.finalFieldType(core.double),
    width: dart.finalFieldType(core.double),
    color: dart.finalFieldType(ui.Color),
    shape: dart.finalFieldType(charts.DataMarkerType),
    borderColor: dart.finalFieldType(ui.Color),
    borderWidth: dart.finalFieldType(core.double),
    image: dart.finalFieldType(image_provider.ImageProvider),
    [_image]: dart.fieldType(ui.Image)
  }));
  charts._DataLabelRenderer = class _DataLabelRenderer extends framework.StatefulWidget {
    createState() {
      return new charts._DataLabelRendererState.new();
    }
  };
  (charts._DataLabelRenderer.new = function(opts) {
    let cartesianChart = opts && 'cartesianChart' in opts ? opts.cartesianChart : null;
    let show = opts && 'show' in opts ? opts.show : null;
    let $36creationLocationd_0dea112b090073317d4 = opts && '$creationLocationd_0dea112b090073317d4' in opts ? opts.$creationLocationd_0dea112b090073317d4 : null;
    this.state = null;
    this.cartesianChart = cartesianChart;
    this.show = show;
    charts._DataLabelRenderer.__proto__.new.call(this, {$creationLocationd_0dea112b090073317d4: $36creationLocationd_0dea112b090073317d4});
    ;
  }).prototype = charts._DataLabelRenderer.prototype;
  dart.addTypeTests(charts._DataLabelRenderer);
  dart.setMethodSignature(charts._DataLabelRenderer, () => ({
    __proto__: dart.getMethods(charts._DataLabelRenderer.__proto__),
    createState: dart.fnType(framework.State$(framework.StatefulWidget), [])
  }));
  dart.setLibraryUri(charts._DataLabelRenderer, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._DataLabelRenderer, () => ({
    __proto__: dart.getFields(charts._DataLabelRenderer.__proto__),
    cartesianChart: dart.finalFieldType(charts.SfCartesianChart),
    show: dart.fieldType(core.bool),
    state: dart.fieldType(charts._DataLabelRendererState)
  }));
  let C552;
  let C553;
  let C554;
  const State_SingleTickerProviderStateMixin$36$3 = class State_SingleTickerProviderStateMixin extends framework.State$(charts._DataLabelRenderer) {};
  (State_SingleTickerProviderStateMixin$36$3.new = function() {
    ticker_provider.SingleTickerProviderStateMixin$(charts._DataLabelRenderer)[dart.mixinNew].call(this);
    State_SingleTickerProviderStateMixin$36$3.__proto__.new.call(this);
  }).prototype = State_SingleTickerProviderStateMixin$36$3.prototype;
  dart.applyMixin(State_SingleTickerProviderStateMixin$36$3, ticker_provider.SingleTickerProviderStateMixin$(charts._DataLabelRenderer));
  charts._DataLabelRendererState = class _DataLabelRendererState extends State_SingleTickerProviderStateMixin$36$3 {
    initState() {
      let t2;
      this.dataLabelRepaintNotifier = new (ValueNotifierOfint()).new(0);
      this.animationController = (t2 = new animation_controller.AnimationController.new({vsync: this}), t2.addListener(dart.bind(this, 'repaintDataLabelElements')), t2);
      super.initState();
    }
    dispose() {
      if (this.animationController != null) {
        this.animationController.removeListener(dart.bind(this, 'repaintDataLabelElements'));
        this.animationController.dispose();
        this.animationController = null;
      }
      super.dispose();
    }
    repaintDataLabelElements() {
      let t2;
      t2 = this.dataLabelRepaintNotifier;
      t2.value = dart.notNull(t2.value) + 1;
    }
    render() {
      this.setState(dart.fn(() => {
        this.widget.show = true;
      }, VoidToNull()));
    }
    build(context) {
      this.widget.state = this;
      this.animationController.duration = new core.Duration.new({milliseconds: dart.test(this.widget.cartesianChart[_chartState].initialRender) ? 500 : 0});
      let dataLabelAnimation = new (TweenOfdouble()).new({begin: 0.0, end: 1.0}).animate(new animations.CurvedAnimation.new({parent: this.animationController, curve: C124 || CT.C124}));
      this.animationController.forward({from: 0.0});
      return !dart.test(this.widget.show) ? new container.Container.new({$creationLocationd_0dea112b090073317d4: C552 || CT.C552}) : new container.Container.new({child: new basic.CustomPaint.new({painter: new charts._DataLabelPainter.new({cartesianChart: this.widget.cartesianChart, animation: dataLabelAnimation, state: this, animationController: this.animationController, notifier: this.dataLabelRepaintNotifier}), $creationLocationd_0dea112b090073317d4: C553 || CT.C553}), $creationLocationd_0dea112b090073317d4: C554 || CT.C554});
    }
  };
  (charts._DataLabelRendererState.new = function() {
    this.animationControllersList = null;
    this.animationController = null;
    this.dataLabelRepaintNotifier = null;
    charts._DataLabelRendererState.__proto__.new.call(this);
    ;
  }).prototype = charts._DataLabelRendererState.prototype;
  dart.addTypeTests(charts._DataLabelRendererState);
  dart.setMethodSignature(charts._DataLabelRendererState, () => ({
    __proto__: dart.getMethods(charts._DataLabelRendererState.__proto__),
    repaintDataLabelElements: dart.fnType(dart.void, []),
    render: dart.fnType(dart.void, []),
    build: dart.fnType(framework.Widget, [framework.BuildContext])
  }));
  dart.setLibraryUri(charts._DataLabelRendererState, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._DataLabelRendererState, () => ({
    __proto__: dart.getFields(charts._DataLabelRendererState.__proto__),
    animationControllersList: dart.fieldType(core.List$(animation_controller.AnimationController)),
    animationController: dart.fieldType(animation_controller.AnimationController),
    dataLabelRepaintNotifier: dart.fieldType(change_notifier.ValueNotifier$(core.int))
  }));
  charts._DataLabelPainter = class _DataLabelPainter extends custom_paint.CustomPainter {
    paint(canvas, size) {
      let t2;
      canvas.clipRect(this.cartesianChart[_chartAxis][_axisClipRect]);
      this.cartesianChart[_chartState].renderDatalabelRegions = JSArrayOfRect().of([]);
      for (let i = 0; i < dart.notNull(this.cartesianChart[_chartSeries].visibleSeries[$length]); i = i + 1) {
        let series = charts.XyDataSeries._check(this.cartesianChart[_chartSeries].visibleSeries[$_get](i));
        if (dart.test(series.dataLabelSettings.isVisible) && series.dataLabelSettings.builder == null) {
          for (let j = 0; j < dart.notNull(series[_dataPoints$][$length]); j = j + 1) {
            if (dart.test(series[_visible]) && series.dataLabelSettings != null) {
              t2 = series.dataLabelSettings;
              t2 == null ? null : t2.renderDataLabel(this.cartesianChart, series, series[_dataPoints$][$_get](j), this.animation, canvas, j);
            }
          }
        }
      }
    }
    shouldRepaint(oldDelegate) {
      charts._DataLabelPainter._check(oldDelegate);
      return true;
    }
  };
  (charts._DataLabelPainter.new = function(opts) {
    let cartesianChart = opts && 'cartesianChart' in opts ? opts.cartesianChart : null;
    let state = opts && 'state' in opts ? opts.state : null;
    let animationController = opts && 'animationController' in opts ? opts.animationController : null;
    let animation = opts && 'animation' in opts ? opts.animation : null;
    let notifier = opts && 'notifier' in opts ? opts.notifier : null;
    this.cartesianChart = cartesianChart;
    this.state = state;
    this.animationController = animationController;
    this.animation = animation;
    charts._DataLabelPainter.__proto__.new.call(this, {repaint: notifier});
    ;
  }).prototype = charts._DataLabelPainter.prototype;
  dart.addTypeTests(charts._DataLabelPainter);
  dart.setMethodSignature(charts._DataLabelPainter, () => ({
    __proto__: dart.getMethods(charts._DataLabelPainter.__proto__),
    paint: dart.fnType(dart.void, [ui.Canvas, ui.Size]),
    shouldRepaint: dart.fnType(core.bool, [core.Object])
  }));
  dart.setLibraryUri(charts._DataLabelPainter, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._DataLabelPainter, () => ({
    __proto__: dart.getFields(charts._DataLabelPainter.__proto__),
    cartesianChart: dart.finalFieldType(charts.SfCartesianChart),
    state: dart.finalFieldType(charts._DataLabelRendererState),
    animationController: dart.finalFieldType(animation_controller.AnimationController),
    animation: dart.finalFieldType(animation.Animation$(core.double))
  }));
  charts._AreaChartPainter = class _AreaChartPainter extends custom_paint.CustomPainter {
    paint(canvas, size) {
      let t2;
      let seriesIndex = this.painterKey.index;
      let clipRect = null;
      this.series.storeSeriesProperties(this.chart, seriesIndex);
      let animationFactor = null;
      let prevPoint = null;
      let point = null;
      let _point = null;
      let currentPoint = null;
      let originPoint = null;
      let oldPoint = null;
      let xAxis = this.series[_xAxis$];
      let yAxis = this.series[_yAxis$];
      let oldSeries = null;
      let _path = ui.Path.new();
      let _strokePath = ui.Path.new();
      if (dart.test(this.series[_visible])) {
        canvas.save();
        animationFactor = this.seriesAnimation != null ? this.seriesAnimation.value : 1.0;
        let axisClipRect = charts._calculatePlotOffset(this.chart[_chartAxis][_axisClipRect], new ui.Offset.new(this.series[_xAxis$].plotOffset, this.series[_yAxis$].plotOffset));
        canvas.clipRect(axisClipRect);
        if (dart.test(this.chart[_chartState].widgetNeedUpdate) && xAxis[_zoomFactor] === 1 && yAxis[_zoomFactor] === 1 && this.chart[_chartState].prevWidgetSeries != null && dart.test(this.chart[_chartState].prevWidgetSeries[$isNotEmpty]) && dart.notNull(this.chart[_chartState].prevWidgetSeries[$length]) - 1 >= dart.notNull(seriesIndex) && this.chart[_chartState].prevWidgetSeries[$_get](seriesIndex)[_seriesName] == this.series[_seriesName]) {
          oldSeries = charts.XyDataSeries._check(this.chart[_chartState].prevWidgetSeries[$_get](seriesIndex));
        }
        if (!dart.test(this.series[_chart][_chartState].widgetNeedUpdate) && dart.notNull(this.series.animationDuration) > 0 && !dart.test(this.series[_chart][_chartState][_isLegendToggled])) {
          charts._performLinearAnimation(this.series[_chart], this.series[_xAxis$], canvas, animationFactor);
        }
        for (let pointIndex = 0; pointIndex < dart.notNull(this.series[_dataPoints$][$length]); pointIndex = pointIndex + 1) {
          point = this.series[_dataPoints$][$_get](pointIndex);
          this.series.calculateRegionData(this.chart, this.series, this.painterKey.index, point, pointIndex);
          if (dart.test(point.isVisible) && !dart.test(point.isDrop)) {
            _point = dart.notNull(this.series.animationDuration) > 0 && dart.test(this.series[_chart][_chartState].widgetNeedUpdate) && !dart.test(this.series[_chart][_chartState][_isLegendToggled]) && this.series[_chart][_chartState].prevWidgetSeries != null && dart.test(this.series[_chart][_chartState].prevWidgetSeries[$isNotEmpty]) && oldSeries != null && dart.test(oldSeries.segments[$isNotEmpty]) && charts.AreaSegment.is(oldSeries.segments[$_get](0)) && dart.notNull(this.series[_chart][_chartState].prevWidgetSeries[$length]) - 1 >= dart.notNull(seriesIndex) && dart.notNull(oldSeries[_dataPoints$][$length]) - 1 >= pointIndex ? oldSeries[_dataPoints$][$_get](pointIndex) : null;
            oldPoint = _point != null ? charts._calculatePoint(core.num._check(_point.xValue), core.num._check(_point.yValue), oldSeries[_xAxis$], oldSeries[_yAxis$], this.series[_chart][_requireInvertedAxis], oldSeries, axisClipRect) : null;
            currentPoint = charts._calculatePoint(core.num._check(point.xValue), core.num._check(point.yValue), xAxis, yAxis, this.series[_chart][_requireInvertedAxis], this.series, axisClipRect);
            originPoint = charts._calculatePoint(core.num._check(point.xValue), math.max(core.num, core.num._check(yAxis[_visibleRange].minimum), 0), xAxis, yAxis, this.series[_chart][_requireInvertedAxis], this.series, axisClipRect);
            let x = currentPoint.x;
            let y = currentPoint.y;
            let closed = dart.equals(this.series.emptyPointSettings.mode, charts.EmptyPointMode.drop) ? this[_getVisibility](this.series[_dataPoints$], pointIndex) : false;
            if (oldPoint != null) {
              if (dart.test(this.series[_chart].isTransposed)) {
                x = charts._getValue(animationFactor, x, oldPoint.x, currentPoint.x);
              } else {
                y = charts._getValue(animationFactor, y, oldPoint.y, currentPoint.y);
              }
            }
            if (prevPoint == null || dart.equals(this.series[_dataPoints$][$_get](pointIndex - 1).isGap, true) || dart.equals(this.series[_dataPoints$][$_get](pointIndex).isGap, true) || dart.equals(this.series[_dataPoints$][$_get](pointIndex - 1).isVisible, false) && dart.equals(this.series.emptyPointSettings.mode, charts.EmptyPointMode.gap)) {
              _path.moveTo(originPoint.x, originPoint.y);
              if (dart.equals(this.series.borderDrawMode, charts.BorderDrawMode.excludeBottom)) {
                if (!dart.equals(this.series[_dataPoints$][$_get](pointIndex).isGap, true)) {
                  _strokePath.moveTo(originPoint.x, originPoint.y);
                  _strokePath.lineTo(x, y);
                }
              } else if (dart.equals(this.series.borderDrawMode, charts.BorderDrawMode.all)) {
                if (!dart.equals(this.series[_dataPoints$][$_get](pointIndex).isGap, true)) {
                  _strokePath.moveTo(originPoint.x, originPoint.y);
                  _strokePath.lineTo(x, y);
                }
              } else if (dart.equals(this.series.borderDrawMode, charts.BorderDrawMode.top)) {
                _strokePath.moveTo(x, y);
              }
              _path.lineTo(x, y);
            } else if (pointIndex === dart.notNull(this.series[_dataPoints$][$length]) - 1 || dart.equals(this.series[_dataPoints$][$_get](pointIndex + 1).isGap, true)) {
              _strokePath.lineTo(x, y);
              if (dart.equals(this.series.borderDrawMode, charts.BorderDrawMode.excludeBottom))
                _strokePath.lineTo(originPoint.x, originPoint.y);
              else if (dart.equals(this.series.borderDrawMode, charts.BorderDrawMode.all)) {
                _strokePath.lineTo(originPoint.x, originPoint.y);
                _strokePath.close();
              }
              _path.lineTo(x, y);
              _path.lineTo(originPoint.x, originPoint.y);
            } else {
              _strokePath.lineTo(x, y);
              _path.lineTo(x, y);
              if (dart.test(closed)) {
                _path.lineTo(originPoint.x, originPoint.y);
                if (dart.equals(this.series.borderDrawMode, charts.BorderDrawMode.excludeBottom)) {
                  _strokePath.lineTo(originPoint.x, originPoint.y);
                } else if (dart.equals(this.series.borderDrawMode, charts.BorderDrawMode.all)) {
                  _strokePath.lineTo(originPoint.x, originPoint.y);
                  _strokePath.close();
                }
              }
            }
            prevPoint = point;
          }
          if (pointIndex >= dart.notNull(this.series[_dataPoints$][$length]) - 1) {
            this.series.addSegment(this.painterKey.index, this.chart, animationFactor);
          }
        }
        if (_path != null && this.series.segments != null && dart.test(this.series.segments[$isNotEmpty])) {
          let areaSegment = charts.AreaSegment._check(this.series.segments[$_get](0));
          this.series.drawSegment(canvas, (t2 = areaSegment, t2[_path$] = _path, t2[_strokePath$] = _strokePath, t2));
        }
        clipRect = charts._calculatePlotOffset(new ui.Rect.fromLTRB(dart.notNull(this.chart[_chartAxis][_axisClipRect].left) - dart.notNull(this.series.markerSettings.width), dart.notNull(this.chart[_chartAxis][_axisClipRect].top) - dart.notNull(this.series.markerSettings.height), dart.notNull(this.chart[_chartAxis][_axisClipRect].right) + dart.notNull(this.series.markerSettings.width), dart.notNull(this.chart[_chartAxis][_axisClipRect].bottom) + dart.notNull(this.series.markerSettings.height)), new ui.Offset.new(this.series[_xAxis$].plotOffset, this.series[_yAxis$].plotOffset));
        canvas.restore();
        if ((dart.notNull(this.series.animationDuration) <= 0 || dart.notNull(animationFactor) >= dart.notNull(this.chart[_seriesDurationFactor])) && (dart.test(this.series.markerSettings.isVisible) || dart.test(this.series.dataLabelSettings.isVisible))) {
          canvas.clipRect(clipRect);
          this.series.renderSeriesElements(this.chart, canvas, this.chartElementAnimation);
        }
        if (dart.notNull(animationFactor) >= 1) {
          this.chart[_chartState].setPainterKey(this.painterKey.index, this.painterKey.name, true);
        }
      }
    }
    [_getVisibility](points, index) {
      for (let i = index; dart.notNull(i) < dart.notNull(points[$length]) - 1; i = dart.notNull(i) + 1) {
        if (!dart.test(points[$_get](dart.notNull(i) + 1).isDrop)) {
          return false;
        }
      }
      return true;
    }
    shouldRepaint(oldDelegate) {
      charts._AreaChartPainter._check(oldDelegate);
      return this.isRepaint;
    }
  };
  (charts._AreaChartPainter.new = function(opts) {
    let chart = opts && 'chart' in opts ? opts.chart : null;
    let series = opts && 'series' in opts ? opts.series : null;
    let isRepaint = opts && 'isRepaint' in opts ? opts.isRepaint : null;
    let animationController = opts && 'animationController' in opts ? opts.animationController : null;
    let seriesAnimation = opts && 'seriesAnimation' in opts ? opts.seriesAnimation : null;
    let chartElementAnimation = opts && 'chartElementAnimation' in opts ? opts.chartElementAnimation : null;
    let notifier = opts && 'notifier' in opts ? opts.notifier : null;
    let painterKey = opts && 'painterKey' in opts ? opts.painterKey : null;
    this.chart = chart;
    this.series = series;
    this.isRepaint = isRepaint;
    this.animationController = animationController;
    this.seriesAnimation = seriesAnimation;
    this.chartElementAnimation = chartElementAnimation;
    this.painterKey = painterKey;
    charts._AreaChartPainter.__proto__.new.call(this, {repaint: notifier});
    ;
  }).prototype = charts._AreaChartPainter.prototype;
  dart.addTypeTests(charts._AreaChartPainter);
  dart.setMethodSignature(charts._AreaChartPainter, () => ({
    __proto__: dart.getMethods(charts._AreaChartPainter.__proto__),
    paint: dart.fnType(dart.void, [ui.Canvas, ui.Size]),
    [_getVisibility]: dart.fnType(core.bool, [core.List$(charts.CartesianChartPoint), core.int]),
    shouldRepaint: dart.fnType(core.bool, [core.Object])
  }));
  dart.setLibraryUri(charts._AreaChartPainter, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._AreaChartPainter, () => ({
    __proto__: dart.getFields(charts._AreaChartPainter.__proto__),
    chart: dart.finalFieldType(charts.SfCartesianChart),
    isRepaint: dart.finalFieldType(core.bool),
    seriesAnimation: dart.finalFieldType(animation.Animation$(core.double)),
    chartElementAnimation: dart.finalFieldType(animation.Animation$(core.double)),
    animationController: dart.finalFieldType(animation.Animation$(core.double)),
    series: dart.finalFieldType(charts.AreaSeries),
    painterKey: dart.finalFieldType(charts._PainterKey)
  }));
  charts._StackedAreaChartPainter = class _StackedAreaChartPainter extends custom_paint.CustomPainter {
    paint(canvas, size) {
      charts._stackedAreaPainter(canvas, charts._StackedSeriesBase._check(this.series), this.seriesAnimation, this.chartElementAnimation);
    }
    shouldRepaint(oldDelegate) {
      charts._StackedAreaChartPainter._check(oldDelegate);
      return this.isRepaint;
    }
  };
  (charts._StackedAreaChartPainter.new = function(opts) {
    let chart = opts && 'chart' in opts ? opts.chart : null;
    let series = opts && 'series' in opts ? opts.series : null;
    let isRepaint = opts && 'isRepaint' in opts ? opts.isRepaint : null;
    let animationController = opts && 'animationController' in opts ? opts.animationController : null;
    let seriesAnimation = opts && 'seriesAnimation' in opts ? opts.seriesAnimation : null;
    let chartElementAnimation = opts && 'chartElementAnimation' in opts ? opts.chartElementAnimation : null;
    let notifier = opts && 'notifier' in opts ? opts.notifier : null;
    this.chart = chart;
    this.series = series;
    this.isRepaint = isRepaint;
    this.animationController = animationController;
    this.seriesAnimation = seriesAnimation;
    this.chartElementAnimation = chartElementAnimation;
    charts._StackedAreaChartPainter.__proto__.new.call(this, {repaint: notifier});
    ;
  }).prototype = charts._StackedAreaChartPainter.prototype;
  dart.addTypeTests(charts._StackedAreaChartPainter);
  dart.setMethodSignature(charts._StackedAreaChartPainter, () => ({
    __proto__: dart.getMethods(charts._StackedAreaChartPainter.__proto__),
    paint: dart.fnType(dart.void, [ui.Canvas, ui.Size]),
    shouldRepaint: dart.fnType(core.bool, [core.Object])
  }));
  dart.setLibraryUri(charts._StackedAreaChartPainter, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._StackedAreaChartPainter, () => ({
    __proto__: dart.getFields(charts._StackedAreaChartPainter.__proto__),
    chart: dart.finalFieldType(charts.SfCartesianChart),
    isRepaint: dart.finalFieldType(core.bool),
    seriesAnimation: dart.finalFieldType(animation.Animation$(core.double)),
    chartElementAnimation: dart.finalFieldType(animation.Animation$(core.double)),
    animationController: dart.finalFieldType(animation.Animation$(core.double)),
    series: dart.finalFieldType(charts.XyDataSeries)
  }));
  charts._StackedArea100ChartPainter = class _StackedArea100ChartPainter extends custom_paint.CustomPainter {
    paint(canvas, size) {
      charts._stackedAreaPainter(canvas, charts._StackedSeriesBase._check(this.series), this.seriesAnimation, this.chartElementAnimation);
    }
    shouldRepaint(oldDelegate) {
      charts._StackedArea100ChartPainter._check(oldDelegate);
      return this.isRepaint;
    }
  };
  (charts._StackedArea100ChartPainter.new = function(opts) {
    let chart = opts && 'chart' in opts ? opts.chart : null;
    let series = opts && 'series' in opts ? opts.series : null;
    let isRepaint = opts && 'isRepaint' in opts ? opts.isRepaint : null;
    let animationController = opts && 'animationController' in opts ? opts.animationController : null;
    let seriesAnimation = opts && 'seriesAnimation' in opts ? opts.seriesAnimation : null;
    let chartElementAnimation = opts && 'chartElementAnimation' in opts ? opts.chartElementAnimation : null;
    let notifier = opts && 'notifier' in opts ? opts.notifier : null;
    this.chart = chart;
    this.series = series;
    this.isRepaint = isRepaint;
    this.animationController = animationController;
    this.seriesAnimation = seriesAnimation;
    this.chartElementAnimation = chartElementAnimation;
    charts._StackedArea100ChartPainter.__proto__.new.call(this, {repaint: notifier});
    ;
  }).prototype = charts._StackedArea100ChartPainter.prototype;
  dart.addTypeTests(charts._StackedArea100ChartPainter);
  dart.setMethodSignature(charts._StackedArea100ChartPainter, () => ({
    __proto__: dart.getMethods(charts._StackedArea100ChartPainter.__proto__),
    paint: dart.fnType(dart.void, [ui.Canvas, ui.Size]),
    shouldRepaint: dart.fnType(core.bool, [core.Object])
  }));
  dart.setLibraryUri(charts._StackedArea100ChartPainter, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._StackedArea100ChartPainter, () => ({
    __proto__: dart.getFields(charts._StackedArea100ChartPainter.__proto__),
    chart: dart.finalFieldType(charts.SfCartesianChart),
    isRepaint: dart.finalFieldType(core.bool),
    seriesAnimation: dart.finalFieldType(animation.Animation$(core.double)),
    chartElementAnimation: dart.finalFieldType(animation.Animation$(core.double)),
    animationController: dart.finalFieldType(animation.Animation$(core.double)),
    series: dart.finalFieldType(charts.XyDataSeries)
  }));
  charts._BarChartPainter = class _BarChartPainter extends custom_paint.CustomPainter {
    paint(canvas, size) {
      let axisClipRect = null;
      let clipRect = null;
      let animationFactor = null;
      let point = null;
      if (dart.test(this.series[_visible])) {
        canvas.save();
        let seriesIndex = this.painterKey.index;
        this.series.storeSeriesProperties(this.chart, seriesIndex);
        axisClipRect = charts._calculatePlotOffset(this.chart[_chartAxis][_axisClipRect], new ui.Offset.new(this.series[_xAxis$].plotOffset, this.series[_yAxis$].plotOffset));
        canvas.clipRect(axisClipRect);
        animationFactor = this.seriesAnimation != null ? this.seriesAnimation.value : 1.0;
        let sideBySideInfo = charts._calculateSideBySideInfo(this.series, this.chart);
        let origin = math.max(core.num, core.num._check(this.series[_yAxis$][_visibleRange].minimum), 0);
        let segmentIndex = -1;
        for (let pointIndex = 0; pointIndex < dart.notNull(this.series[_dataPoints$][$length]); pointIndex = pointIndex + 1) {
          point = this.series[_dataPoints$][$_get](pointIndex);
          this.series.calculateRegionData(this.chart, this.series, this.painterKey.index, point, pointIndex, sideBySideInfo);
          if (dart.test(point.isVisible) && !dart.test(point.isGap)) {
            this.series.drawSegment(canvas, this.series.addSegment(point, segmentIndex = segmentIndex + 1, this.painterKey.index, sideBySideInfo, this.chart, origin, animationFactor));
          }
        }
        clipRect = charts._calculatePlotOffset(new ui.Rect.fromLTRB(dart.notNull(this.chart[_chartAxis][_axisClipRect].left) - dart.notNull(this.series.markerSettings.width), dart.notNull(this.chart[_chartAxis][_axisClipRect].top) - dart.notNull(this.series.markerSettings.height), dart.notNull(this.chart[_chartAxis][_axisClipRect].right) + dart.notNull(this.series.markerSettings.width), dart.notNull(this.chart[_chartAxis][_axisClipRect].bottom) + dart.notNull(this.series.markerSettings.height)), new ui.Offset.new(this.series[_xAxis$].plotOffset, this.series[_yAxis$].plotOffset));
        canvas.restore();
        if ((dart.notNull(this.series.animationDuration) <= 0 || dart.notNull(animationFactor) >= dart.notNull(this.chart[_seriesDurationFactor])) && (dart.test(this.series.markerSettings.isVisible) || dart.test(this.series.dataLabelSettings.isVisible))) {
          canvas.clipRect(clipRect);
          this.series.renderSeriesElements(this.chart, canvas, this.chartElementAnimation);
        }
        if (dart.notNull(animationFactor) >= 1) {
          this.chart[_chartState].setPainterKey(this.painterKey.index, this.painterKey.name, true);
        }
      }
    }
    shouldRepaint(oldDelegate) {
      charts._BarChartPainter._check(oldDelegate);
      return this.isRepaint;
    }
  };
  (charts._BarChartPainter.new = function(opts) {
    let chart = opts && 'chart' in opts ? opts.chart : null;
    let series = opts && 'series' in opts ? opts.series : null;
    let isRepaint = opts && 'isRepaint' in opts ? opts.isRepaint : null;
    let animationController = opts && 'animationController' in opts ? opts.animationController : null;
    let seriesAnimation = opts && 'seriesAnimation' in opts ? opts.seriesAnimation : null;
    let chartElementAnimation = opts && 'chartElementAnimation' in opts ? opts.chartElementAnimation : null;
    let notifier = opts && 'notifier' in opts ? opts.notifier : null;
    let painterKey = opts && 'painterKey' in opts ? opts.painterKey : null;
    this.chart = chart;
    this.series = series;
    this.isRepaint = isRepaint;
    this.animationController = animationController;
    this.seriesAnimation = seriesAnimation;
    this.chartElementAnimation = chartElementAnimation;
    this.painterKey = painterKey;
    charts._BarChartPainter.__proto__.new.call(this, {repaint: notifier});
    ;
  }).prototype = charts._BarChartPainter.prototype;
  dart.addTypeTests(charts._BarChartPainter);
  dart.setMethodSignature(charts._BarChartPainter, () => ({
    __proto__: dart.getMethods(charts._BarChartPainter.__proto__),
    paint: dart.fnType(dart.void, [ui.Canvas, ui.Size]),
    shouldRepaint: dart.fnType(core.bool, [core.Object])
  }));
  dart.setLibraryUri(charts._BarChartPainter, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._BarChartPainter, () => ({
    __proto__: dart.getFields(charts._BarChartPainter.__proto__),
    chart: dart.finalFieldType(charts.SfCartesianChart),
    isRepaint: dart.finalFieldType(core.bool),
    animationController: dart.finalFieldType(animation.Animation$(core.double)),
    seriesAnimation: dart.finalFieldType(animation.Animation$(core.double)),
    chartElementAnimation: dart.finalFieldType(animation.Animation$(core.double)),
    series: dart.finalFieldType(charts.BarSeries),
    painterKey: dart.finalFieldType(charts._PainterKey)
  }));
  charts._BubbleChartPainter = class _BubbleChartPainter extends custom_paint.CustomPainter {
    paint(canvas, size) {
      canvas.save();
      let animationFactor = null;
      if (dart.test(this.series[_visible])) {
        let seriesIndex = this.painterKey.index;
        this.series.storeSeriesProperties(this.chart, seriesIndex);
        animationFactor = this.seriesAnimation != null ? this.seriesAnimation.value : 1.0;
        let axisClipRect = charts._calculatePlotOffset(this.chart[_chartAxis][_axisClipRect], new ui.Offset.new(this.series[_xAxis$].plotOffset, this.series[_yAxis$].plotOffset));
        canvas.clipRect(axisClipRect);
        let segmentIndex = -1;
        for (let pointIndex = 0; pointIndex < dart.notNull(this.series[_dataPoints$][$length]); pointIndex = pointIndex + 1) {
          let currentPoint = this.series[_dataPoints$][$_get](pointIndex);
          this.series.calculateRegionData(this.chart, this.series, this.painterKey.index, currentPoint, pointIndex);
          if (dart.test(currentPoint.isVisible) && !dart.test(currentPoint.isGap)) {
            this.series.drawSegment(canvas, this.series.addSegment(currentPoint, segmentIndex = segmentIndex + 1, seriesIndex, animationFactor));
          }
        }
        if ((dart.notNull(this.series.animationDuration) <= 0 || dart.notNull(animationFactor) >= dart.notNull(this.chart[_seriesDurationFactor])) && (dart.test(this.series.markerSettings.isVisible) || dart.test(this.series.dataLabelSettings.isVisible))) {
          this.series.renderSeriesElements(this.chart, canvas, this.chartElementAnimation);
        }
        if (dart.notNull(animationFactor) >= 1) {
          this.chart[_chartState].setPainterKey(this.painterKey.index, this.painterKey.name, true);
        }
      }
      canvas.restore();
    }
    shouldRepaint(oldDelegate) {
      charts._BubbleChartPainter._check(oldDelegate);
      return this.isRepaint;
    }
  };
  (charts._BubbleChartPainter.new = function(opts) {
    let chart = opts && 'chart' in opts ? opts.chart : null;
    let series = opts && 'series' in opts ? opts.series : null;
    let isRepaint = opts && 'isRepaint' in opts ? opts.isRepaint : null;
    let animationController = opts && 'animationController' in opts ? opts.animationController : null;
    let seriesAnimation = opts && 'seriesAnimation' in opts ? opts.seriesAnimation : null;
    let chartElementAnimation = opts && 'chartElementAnimation' in opts ? opts.chartElementAnimation : null;
    let notifier = opts && 'notifier' in opts ? opts.notifier : null;
    let painterKey = opts && 'painterKey' in opts ? opts.painterKey : null;
    this.chart = chart;
    this.series = series;
    this.isRepaint = isRepaint;
    this.animationController = animationController;
    this.seriesAnimation = seriesAnimation;
    this.chartElementAnimation = chartElementAnimation;
    this.painterKey = painterKey;
    charts._BubbleChartPainter.__proto__.new.call(this, {repaint: notifier});
    ;
  }).prototype = charts._BubbleChartPainter.prototype;
  dart.addTypeTests(charts._BubbleChartPainter);
  dart.setMethodSignature(charts._BubbleChartPainter, () => ({
    __proto__: dart.getMethods(charts._BubbleChartPainter.__proto__),
    paint: dart.fnType(dart.void, [ui.Canvas, ui.Size]),
    shouldRepaint: dart.fnType(core.bool, [core.Object])
  }));
  dart.setLibraryUri(charts._BubbleChartPainter, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._BubbleChartPainter, () => ({
    __proto__: dart.getFields(charts._BubbleChartPainter.__proto__),
    chart: dart.finalFieldType(charts.SfCartesianChart),
    isRepaint: dart.finalFieldType(core.bool),
    animationController: dart.finalFieldType(animation.Animation$(core.double)),
    seriesAnimation: dart.finalFieldType(animation.Animation$(core.double)),
    chartElementAnimation: dart.finalFieldType(animation.Animation$(core.double)),
    series: dart.finalFieldType(charts.BubbleSeries),
    painterKey: dart.finalFieldType(charts._PainterKey)
  }));
  charts._ColumnChartPainter = class _ColumnChartPainter extends custom_paint.CustomPainter {
    paint(canvas, size) {
      let axisClipRect = null;
      let clipRect = null;
      let animationFactor = null;
      let point = null;
      if (dart.test(this.series[_visible])) {
        canvas.save();
        let seriesIndex = this.painterKey.index;
        this.series.storeSeriesProperties(this.chart, seriesIndex);
        axisClipRect = charts._calculatePlotOffset(this.chart[_chartAxis][_axisClipRect], new ui.Offset.new(this.series[_xAxis$].plotOffset, this.series[_yAxis$].plotOffset));
        canvas.clipRect(axisClipRect);
        animationFactor = this.seriesAnimation != null ? this.seriesAnimation.value : 1.0;
        let sideBySideInfo = charts._calculateSideBySideInfo(this.series, this.chart);
        let segmentIndex = -1;
        for (let pointIndex = 0; pointIndex < dart.notNull(this.series[_dataPoints$][$length]); pointIndex = pointIndex + 1) {
          point = this.series[_dataPoints$][$_get](pointIndex);
          this.series.calculateRegionData(this.chart, this.series, this.painterKey.index, point, pointIndex, sideBySideInfo);
          if (dart.test(point.isVisible) && !dart.test(point.isGap)) {
            this.series.drawSegment(canvas, this.series.addSegment(point, segmentIndex = segmentIndex + 1, sideBySideInfo, this.painterKey.index, animationFactor));
          }
        }
        clipRect = charts._calculatePlotOffset(new ui.Rect.fromLTRB(dart.notNull(this.chart[_chartAxis][_axisClipRect].left) - dart.notNull(this.series.markerSettings.width), dart.notNull(this.chart[_chartAxis][_axisClipRect].top) - dart.notNull(this.series.markerSettings.height), dart.notNull(this.chart[_chartAxis][_axisClipRect].right) + dart.notNull(this.series.markerSettings.width), dart.notNull(this.chart[_chartAxis][_axisClipRect].bottom) + dart.notNull(this.series.markerSettings.height)), new ui.Offset.new(this.series[_xAxis$].plotOffset, this.series[_yAxis$].plotOffset));
        canvas.restore();
        if ((dart.notNull(this.series.animationDuration) <= 0 || dart.notNull(animationFactor) >= dart.notNull(this.chart[_seriesDurationFactor])) && (dart.test(this.series.markerSettings.isVisible) || dart.test(this.series.dataLabelSettings.isVisible))) {
          canvas.clipRect(clipRect);
          this.series.renderSeriesElements(this.chart, canvas, this.chartElementAnimation);
        }
        if (dart.notNull(animationFactor) >= 1) {
          this.chart[_chartState].setPainterKey(this.painterKey.index, this.painterKey.name, true);
        }
      }
    }
    shouldRepaint(oldDelegate) {
      charts._ColumnChartPainter._check(oldDelegate);
      return this.isRepaint;
    }
  };
  (charts._ColumnChartPainter.new = function(opts) {
    let chart = opts && 'chart' in opts ? opts.chart : null;
    let series = opts && 'series' in opts ? opts.series : null;
    let isRepaint = opts && 'isRepaint' in opts ? opts.isRepaint : null;
    let animationController = opts && 'animationController' in opts ? opts.animationController : null;
    let seriesAnimation = opts && 'seriesAnimation' in opts ? opts.seriesAnimation : null;
    let chartElementAnimation = opts && 'chartElementAnimation' in opts ? opts.chartElementAnimation : null;
    let notifier = opts && 'notifier' in opts ? opts.notifier : null;
    let painterKey = opts && 'painterKey' in opts ? opts.painterKey : null;
    this.currentChartLocations = JSArrayOf_ChartLocation().of([]);
    this.chart = chart;
    this.series = series;
    this.isRepaint = isRepaint;
    this.animationController = animationController;
    this.seriesAnimation = seriesAnimation;
    this.chartElementAnimation = chartElementAnimation;
    this.painterKey = painterKey;
    charts._ColumnChartPainter.__proto__.new.call(this, {repaint: notifier});
    ;
  }).prototype = charts._ColumnChartPainter.prototype;
  dart.addTypeTests(charts._ColumnChartPainter);
  dart.setMethodSignature(charts._ColumnChartPainter, () => ({
    __proto__: dart.getMethods(charts._ColumnChartPainter.__proto__),
    paint: dart.fnType(dart.void, [ui.Canvas, ui.Size]),
    shouldRepaint: dart.fnType(core.bool, [core.Object])
  }));
  dart.setLibraryUri(charts._ColumnChartPainter, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._ColumnChartPainter, () => ({
    __proto__: dart.getFields(charts._ColumnChartPainter.__proto__),
    chart: dart.finalFieldType(charts.SfCartesianChart),
    isRepaint: dart.finalFieldType(core.bool),
    animationController: dart.finalFieldType(animation_controller.AnimationController),
    seriesAnimation: dart.finalFieldType(animation.Animation$(core.double)),
    chartElementAnimation: dart.finalFieldType(animation.Animation$(core.double)),
    currentChartLocations: dart.fieldType(core.List$(charts._ChartLocation)),
    series: dart.fieldType(charts.ColumnSeries),
    painterKey: dart.finalFieldType(charts._PainterKey)
  }));
  charts._FastLineChartPainter = class _FastLineChartPainter extends custom_paint.CustomPainter {
    paint(canvas, size) {
      let clipRect = null;
      let animationFactor = null;
      if (dart.test(this.series[_visible])) {
        canvas.save();
        let seriesIndex = this.painterKey.index;
        this.series.storeSeriesProperties(this.chart, seriesIndex);
        animationFactor = this.seriesAnimation != null ? this.seriesAnimation.value : 1.0;
        let axisClipRect = charts._calculatePlotOffset(this.chart[_chartAxis][_axisClipRect], new ui.Offset.new(this.series[_xAxis$].plotOffset, this.series[_yAxis$].plotOffset));
        canvas.clipRect(axisClipRect);
        if (dart.notNull(this.series.animationDuration) > 0 && !dart.test(this.series[_chart][_chartState][_isLegendToggled])) {
          charts._performLinearAnimation(this.series[_chart], this.series[_xAxis$], canvas, animationFactor);
        }
        let prevPoint = null;
        let point = null;
        let currentLocation = null;
        let xVisibleRange = this.series[_xAxis$][_visibleRange];
        let yVisibleRange = this.series[_yAxis$][_visibleRange];
        let seriesPoints = this.series[_dataPoints$];
        let areaBounds = this.series[_chart][_chartAxis][_axisClipRect];
        let xTolerance = (dart.notNull(xVisibleRange.delta) / dart.notNull(areaBounds.width))[$abs]();
        let yTolerance = (dart.notNull(yVisibleRange.delta) / dart.notNull(areaBounds.height))[$abs]();
        let prevXValue = dart.test(seriesPoints[$isNotEmpty]) && seriesPoints[$_get](0) != null && dart.dtest(dart.dsend(seriesPoints[$_get](0).xValue, '>', [xTolerance])) ? 0 : xTolerance;
        let prevYValue = dart.test(seriesPoints[$isNotEmpty]) && seriesPoints[$_get](0) != null && dart.dtest(dart.dsend(seriesPoints[$_get](0).yValue, '>', [yTolerance])) ? 0 : yTolerance;
        let xVal = 0;
        let yVal = 0;
        let dataPoints = JSArrayOfCartesianChartPoint().of([]);
        let currentPoint = null;
        for (let pointIndex = 0; pointIndex < dart.notNull(this.series[_dataPoints$][$length]); pointIndex = pointIndex + 1) {
          currentPoint = this.series[_dataPoints$][$_get](pointIndex);
          xVal = core.num._check(dart.dload(currentPoint, 'xValue') != null ? dart.dload(currentPoint, 'xValue') : xVisibleRange.minimum);
          yVal = core.num._check(dart.dload(currentPoint, 'yValue') != null ? dart.dload(currentPoint, 'yValue') : yVisibleRange.minimum);
          if ((dart.notNull(prevXValue) - dart.notNull(xVal))[$abs]() >= xTolerance || (dart.notNull(prevYValue) - dart.notNull(yVal))[$abs]() >= yTolerance) {
            point = charts.CartesianChartPoint._check(currentPoint);
            dataPoints[$add](charts.CartesianChartPoint._check(currentPoint));
            this.series.calculateRegionData(this.chart, this.series, this.painterKey.index, point, pointIndex);
            if (dart.test(point.isVisible)) {
              currentLocation = charts._calculatePoint(xVal, yVal, this.series[_xAxis$], this.series[_yAxis$], this.series[_chart][_requireInvertedAxis], this.series, this.series[_chart][_chartAxis][_axisClipRect]);
              if (prevPoint == null)
                this.series.segmentPath.moveTo(currentLocation.x, currentLocation.y);
              else if (dart.equals(this.series[_dataPoints$][$_get](pointIndex - 1).isVisible, false) && dart.equals(this.series.emptyPointSettings.mode, charts.EmptyPointMode.gap))
                this.series.segmentPath.moveTo(currentLocation.x, currentLocation.y);
              else if (!dart.equals(point.isGap, true) && !dart.equals(this.series[_dataPoints$][$_get](pointIndex - 1).isGap, true) && dart.equals(this.series[_dataPoints$][$_get](pointIndex).isVisible, true))
                this.series.segmentPath.lineTo(currentLocation.x, currentLocation.y);
              else
                this.series.segmentPath.moveTo(currentLocation.x, currentLocation.y);
              prevPoint = point;
            }
            prevXValue = xVal;
            prevYValue = yVal;
          }
        }
        if (this.series.segmentPath != null) {
          this.series[_dataPoints$] = dataPoints;
          this.series.drawSegment(canvas, this.series.addSegment(this.painterKey.index, this.chart, animationFactor));
        }
        clipRect = charts._calculatePlotOffset(new ui.Rect.fromLTRB(dart.notNull(this.chart[_chartAxis][_axisClipRect].left) - dart.notNull(this.series.markerSettings.width), dart.notNull(this.chart[_chartAxis][_axisClipRect].top) - dart.notNull(this.series.markerSettings.height), dart.notNull(this.chart[_chartAxis][_axisClipRect].right) + dart.notNull(this.series.markerSettings.width), dart.notNull(this.chart[_chartAxis][_axisClipRect].bottom) + dart.notNull(this.series.markerSettings.height)), new ui.Offset.new(this.series[_xAxis$].plotOffset, this.series[_yAxis$].plotOffset));
        canvas.restore();
        if ((dart.notNull(this.series.animationDuration) <= 0 || dart.notNull(animationFactor) >= dart.notNull(this.chart[_seriesDurationFactor])) && (dart.test(this.series.markerSettings.isVisible) || dart.test(this.series.dataLabelSettings.isVisible))) {
          canvas.clipRect(clipRect);
          this.series.renderSeriesElements(this.chart, canvas, this.chartElementAnimation);
        }
        if (dart.notNull(animationFactor) >= 1) {
          this.chart[_chartState].setPainterKey(this.painterKey.index, this.painterKey.name, true);
        }
      }
    }
    shouldRepaint(oldDelegate) {
      charts._FastLineChartPainter._check(oldDelegate);
      return this.isRepaint;
    }
  };
  (charts._FastLineChartPainter.new = function(opts) {
    let chart = opts && 'chart' in opts ? opts.chart : null;
    let series = opts && 'series' in opts ? opts.series : null;
    let isRepaint = opts && 'isRepaint' in opts ? opts.isRepaint : null;
    let animationController = opts && 'animationController' in opts ? opts.animationController : null;
    let seriesAnimation = opts && 'seriesAnimation' in opts ? opts.seriesAnimation : null;
    let chartElementAnimation = opts && 'chartElementAnimation' in opts ? opts.chartElementAnimation : null;
    let notifier = opts && 'notifier' in opts ? opts.notifier : null;
    let painterKey = opts && 'painterKey' in opts ? opts.painterKey : null;
    this.path = null;
    this.pathPaint = null;
    this.chart = chart;
    this.series = series;
    this.isRepaint = isRepaint;
    this.animationController = animationController;
    this.seriesAnimation = seriesAnimation;
    this.chartElementAnimation = chartElementAnimation;
    this.painterKey = painterKey;
    charts._FastLineChartPainter.__proto__.new.call(this, {repaint: notifier});
    ;
  }).prototype = charts._FastLineChartPainter.prototype;
  dart.addTypeTests(charts._FastLineChartPainter);
  dart.setMethodSignature(charts._FastLineChartPainter, () => ({
    __proto__: dart.getMethods(charts._FastLineChartPainter.__proto__),
    paint: dart.fnType(dart.void, [ui.Canvas, ui.Size]),
    shouldRepaint: dart.fnType(core.bool, [core.Object])
  }));
  dart.setLibraryUri(charts._FastLineChartPainter, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._FastLineChartPainter, () => ({
    __proto__: dart.getFields(charts._FastLineChartPainter.__proto__),
    chart: dart.finalFieldType(charts.SfCartesianChart),
    isRepaint: dart.finalFieldType(core.bool),
    animationController: dart.finalFieldType(animation_controller.AnimationController),
    seriesAnimation: dart.finalFieldType(animation.Animation$(core.double)),
    chartElementAnimation: dart.finalFieldType(animation.Animation$(core.double)),
    series: dart.finalFieldType(charts.FastLineSeries),
    path: dart.fieldType(ui.Path),
    pathPaint: dart.fieldType(ui.Paint),
    painterKey: dart.finalFieldType(charts._PainterKey)
  }));
  charts._HiloPainter = class _HiloPainter extends custom_paint.CustomPainter {
    paint(canvas, size) {
      canvas.save();
      let clipRect = null;
      let animationFactor = null;
      if (dart.test(this.series[_visible])) {
        let axisClipRect = charts._calculatePlotOffset(this.chart[_chartAxis][_axisClipRect], new ui.Offset.new(this.series[_xAxis$].plotOffset, this.series[_yAxis$].plotOffset));
        canvas.clipRect(axisClipRect);
        animationFactor = this.seriesAnimation != null ? this.seriesAnimation.value : 1.0;
        this.series[_draw](canvas, animationFactor);
        clipRect = charts._calculatePlotOffset(new ui.Rect.fromLTWH(dart.notNull(this.chart[_chartAxis][_axisClipRect].left) - dart.notNull(this.series.markerSettings.width), dart.notNull(this.chart[_chartAxis][_axisClipRect].top) - dart.notNull(this.series.markerSettings.height), dart.notNull(this.chart[_chartAxis][_axisClipRect].right) + dart.notNull(this.series.markerSettings.width), dart.notNull(this.chart[_chartAxis][_axisClipRect].bottom) + dart.notNull(this.series.markerSettings.height)), new ui.Offset.new(this.series[_xAxis$].plotOffset, this.series[_yAxis$].plotOffset));
      }
      canvas.restore();
      if (dart.test(this.series[_visible]) && dart.notNull(animationFactor) > dart.notNull(this.chart[_seriesDurationFactor])) {
        canvas.clipRect(clipRect);
        charts._renderSeriesElements(canvas, this.series, this.chartElementAnimation);
      }
    }
    shouldRepaint(oldDelegate) {
      charts._HiloPainter._check(oldDelegate);
      return this.isRepaint;
    }
  };
  (charts._HiloPainter.new = function(opts) {
    let chart = opts && 'chart' in opts ? opts.chart : null;
    let series = opts && 'series' in opts ? opts.series : null;
    let isRepaint = opts && 'isRepaint' in opts ? opts.isRepaint : null;
    let animationController = opts && 'animationController' in opts ? opts.animationController : null;
    let seriesAnimation = opts && 'seriesAnimation' in opts ? opts.seriesAnimation : null;
    let chartElementAnimation = opts && 'chartElementAnimation' in opts ? opts.chartElementAnimation : null;
    let notifier = opts && 'notifier' in opts ? opts.notifier : null;
    this.currentChartLocations = JSArrayOf_ChartLocation().of([]);
    this.chart = chart;
    this.series = series;
    this.isRepaint = isRepaint;
    this.animationController = animationController;
    this.seriesAnimation = seriesAnimation;
    this.chartElementAnimation = chartElementAnimation;
    charts._HiloPainter.__proto__.new.call(this, {repaint: notifier});
    ;
  }).prototype = charts._HiloPainter.prototype;
  dart.addTypeTests(charts._HiloPainter);
  dart.setMethodSignature(charts._HiloPainter, () => ({
    __proto__: dart.getMethods(charts._HiloPainter.__proto__),
    paint: dart.fnType(dart.void, [ui.Canvas, ui.Size]),
    shouldRepaint: dart.fnType(core.bool, [core.Object])
  }));
  dart.setLibraryUri(charts._HiloPainter, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._HiloPainter, () => ({
    __proto__: dart.getFields(charts._HiloPainter.__proto__),
    chart: dart.finalFieldType(charts.SfCartesianChart),
    isRepaint: dart.finalFieldType(core.bool),
    animationController: dart.finalFieldType(animation_controller.AnimationController),
    seriesAnimation: dart.finalFieldType(animation.Animation$(core.double)),
    chartElementAnimation: dart.finalFieldType(animation.Animation$(core.double)),
    currentChartLocations: dart.fieldType(core.List$(charts._ChartLocation)),
    series: dart.fieldType(charts.XyDataSeries)
  }));
  charts._HiloOpenClosePainter = class _HiloOpenClosePainter extends custom_paint.CustomPainter {
    paint(canvas, size) {
      canvas.save();
      let clipRect = null;
      let animationFactor = null;
      if (dart.test(this.series[_visible])) {
        let axisClipRect = charts._calculatePlotOffset(this.chart[_chartAxis][_axisClipRect], new ui.Offset.new(this.series[_xAxis$].plotOffset, this.series[_yAxis$].plotOffset));
        canvas.clipRect(axisClipRect);
        animationFactor = this.seriesAnimation != null ? this.seriesAnimation.value : 1.0;
        this.series[_draw](canvas, animationFactor);
        clipRect = charts._calculatePlotOffset(new ui.Rect.fromLTWH(dart.notNull(this.chart[_chartAxis][_axisClipRect].left) - dart.notNull(this.series.markerSettings.width), dart.notNull(this.chart[_chartAxis][_axisClipRect].top) - dart.notNull(this.series.markerSettings.height), dart.notNull(this.chart[_chartAxis][_axisClipRect].right) + dart.notNull(this.series.markerSettings.width), dart.notNull(this.chart[_chartAxis][_axisClipRect].bottom) + dart.notNull(this.series.markerSettings.height)), new ui.Offset.new(this.series[_xAxis$].plotOffset, this.series[_yAxis$].plotOffset));
      }
      canvas.restore();
      if (dart.test(this.series[_visible]) && dart.notNull(animationFactor) > dart.notNull(this.chart[_seriesDurationFactor])) {
        canvas.clipRect(clipRect);
        charts._renderSeriesElements(canvas, this.series, this.chartElementAnimation);
      }
    }
    shouldRepaint(oldDelegate) {
      charts._HiloOpenClosePainter._check(oldDelegate);
      return this.isRepaint;
    }
  };
  (charts._HiloOpenClosePainter.new = function(opts) {
    let chart = opts && 'chart' in opts ? opts.chart : null;
    let series = opts && 'series' in opts ? opts.series : null;
    let isRepaint = opts && 'isRepaint' in opts ? opts.isRepaint : null;
    let animationController = opts && 'animationController' in opts ? opts.animationController : null;
    let seriesAnimation = opts && 'seriesAnimation' in opts ? opts.seriesAnimation : null;
    let chartElementAnimation = opts && 'chartElementAnimation' in opts ? opts.chartElementAnimation : null;
    let notifier = opts && 'notifier' in opts ? opts.notifier : null;
    this.currentChartLocations = JSArrayOf_ChartLocation().of([]);
    this.chart = chart;
    this.series = series;
    this.isRepaint = isRepaint;
    this.animationController = animationController;
    this.seriesAnimation = seriesAnimation;
    this.chartElementAnimation = chartElementAnimation;
    charts._HiloOpenClosePainter.__proto__.new.call(this, {repaint: notifier});
    ;
  }).prototype = charts._HiloOpenClosePainter.prototype;
  dart.addTypeTests(charts._HiloOpenClosePainter);
  dart.setMethodSignature(charts._HiloOpenClosePainter, () => ({
    __proto__: dart.getMethods(charts._HiloOpenClosePainter.__proto__),
    paint: dart.fnType(dart.void, [ui.Canvas, ui.Size]),
    shouldRepaint: dart.fnType(core.bool, [core.Object])
  }));
  dart.setLibraryUri(charts._HiloOpenClosePainter, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._HiloOpenClosePainter, () => ({
    __proto__: dart.getFields(charts._HiloOpenClosePainter.__proto__),
    chart: dart.finalFieldType(charts.SfCartesianChart),
    isRepaint: dart.finalFieldType(core.bool),
    animationController: dart.finalFieldType(animation_controller.AnimationController),
    seriesAnimation: dart.finalFieldType(animation.Animation$(core.double)),
    chartElementAnimation: dart.finalFieldType(animation.Animation$(core.double)),
    currentChartLocations: dart.fieldType(core.List$(charts._ChartLocation)),
    series: dart.fieldType(charts.XyDataSeries)
  }));
  charts._CandlePainter = class _CandlePainter extends custom_paint.CustomPainter {
    paint(canvas, size) {
      canvas.save();
      let clipRect = null;
      let animationFactor = null;
      if (dart.test(this.series[_visible])) {
        let axisClipRect = charts._calculatePlotOffset(this.chart[_chartAxis][_axisClipRect], new ui.Offset.new(this.series[_xAxis$].plotOffset, this.series[_yAxis$].plotOffset));
        canvas.clipRect(axisClipRect);
        animationFactor = this.seriesAnimation != null ? this.seriesAnimation.value : 1.0;
        this.series[_draw](canvas, animationFactor);
        clipRect = charts._calculatePlotOffset(new ui.Rect.fromLTWH(dart.notNull(this.chart[_chartAxis][_axisClipRect].left) - dart.notNull(this.series.markerSettings.width), dart.notNull(this.chart[_chartAxis][_axisClipRect].top) - dart.notNull(this.series.markerSettings.height), dart.notNull(this.chart[_chartAxis][_axisClipRect].right) + dart.notNull(this.series.markerSettings.width), dart.notNull(this.chart[_chartAxis][_axisClipRect].bottom) + dart.notNull(this.series.markerSettings.height)), new ui.Offset.new(this.series[_xAxis$].plotOffset, this.series[_yAxis$].plotOffset));
      }
      canvas.restore();
      if (dart.test(this.series[_visible]) && dart.notNull(animationFactor) > dart.notNull(this.chart[_seriesDurationFactor])) {
        canvas.clipRect(clipRect);
        charts._renderSeriesElements(canvas, this.series, this.chartElementAnimation);
      }
    }
    shouldRepaint(oldDelegate) {
      charts._CandlePainter._check(oldDelegate);
      return this.isRepaint;
    }
  };
  (charts._CandlePainter.new = function(opts) {
    let chart = opts && 'chart' in opts ? opts.chart : null;
    let series = opts && 'series' in opts ? opts.series : null;
    let isRepaint = opts && 'isRepaint' in opts ? opts.isRepaint : null;
    let animationController = opts && 'animationController' in opts ? opts.animationController : null;
    let seriesAnimation = opts && 'seriesAnimation' in opts ? opts.seriesAnimation : null;
    let chartElementAnimation = opts && 'chartElementAnimation' in opts ? opts.chartElementAnimation : null;
    let notifier = opts && 'notifier' in opts ? opts.notifier : null;
    this.currentChartLocations = JSArrayOf_ChartLocation().of([]);
    this.chart = chart;
    this.series = series;
    this.isRepaint = isRepaint;
    this.animationController = animationController;
    this.seriesAnimation = seriesAnimation;
    this.chartElementAnimation = chartElementAnimation;
    charts._CandlePainter.__proto__.new.call(this, {repaint: notifier});
    ;
  }).prototype = charts._CandlePainter.prototype;
  dart.addTypeTests(charts._CandlePainter);
  dart.setMethodSignature(charts._CandlePainter, () => ({
    __proto__: dart.getMethods(charts._CandlePainter.__proto__),
    paint: dart.fnType(dart.void, [ui.Canvas, ui.Size]),
    shouldRepaint: dart.fnType(core.bool, [core.Object])
  }));
  dart.setLibraryUri(charts._CandlePainter, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._CandlePainter, () => ({
    __proto__: dart.getFields(charts._CandlePainter.__proto__),
    chart: dart.finalFieldType(charts.SfCartesianChart),
    isRepaint: dart.finalFieldType(core.bool),
    animationController: dart.finalFieldType(animation_controller.AnimationController),
    seriesAnimation: dart.finalFieldType(animation.Animation$(core.double)),
    chartElementAnimation: dart.finalFieldType(animation.Animation$(core.double)),
    currentChartLocations: dart.fieldType(core.List$(charts._ChartLocation)),
    series: dart.fieldType(charts.XyDataSeries)
  }));
  charts._LineChartPainter = class _LineChartPainter extends custom_paint.CustomPainter {
    paint(canvas, size) {
      let animationFactor = null;
      let clipRect = null;
      if (dart.test(this.series[_visible])) {
        canvas.save();
        let seriesIndex = this.painterKey.index;
        this.series.storeSeriesProperties(this.chart, seriesIndex);
        animationFactor = this.seriesAnimation != null ? this.seriesAnimation.value : 1.0;
        let axisClipRect = charts._calculatePlotOffset(this.chart[_chartAxis][_axisClipRect], new ui.Offset.new(this.series[_xAxis$].plotOffset, this.series[_yAxis$].plotOffset));
        canvas.clipRect(axisClipRect);
        if (!(dart.test(this.chart[_chartState].widgetNeedUpdate) || dart.test(this.chart[_chartState][_isLegendToggled])) && dart.notNull(this.series.animationDuration) > 0) {
          charts._performLinearAnimation(this.series[_chart], this.series[_xAxis$], canvas, animationFactor);
        }
        let segmentIndex = -1;
        let startPoint = null;
        let endPoint = null;
        for (let pointIndex = 0; pointIndex < dart.notNull(this.series[_dataPoints$][$length]); pointIndex = pointIndex + 1) {
          let currentPoint = this.series[_dataPoints$][$_get](pointIndex);
          this.series.calculateRegionData(this.chart, this.series, seriesIndex, currentPoint, pointIndex);
          if (dart.test(currentPoint.isVisible) && !dart.test(currentPoint.isGap) && startPoint == null) {
            startPoint = currentPoint;
          }
          if (pointIndex + 1 < dart.notNull(this.series[_dataPoints$][$length])) {
            let nextPoint = this.series[_dataPoints$][$_get](pointIndex + 1);
            if (startPoint != null && dart.test(nextPoint.isVisible) && dart.test(nextPoint.isGap)) {
              startPoint = null;
            } else if (dart.test(nextPoint.isVisible) && !dart.test(nextPoint.isGap)) {
              endPoint = nextPoint;
            }
          }
          if (startPoint != null && endPoint != null) {
            this.series.drawSegment(canvas, this.series.addSegment(startPoint, endPoint, segmentIndex = segmentIndex + 1, seriesIndex, animationFactor));
            endPoint = startPoint = null;
          }
        }
        clipRect = charts._calculatePlotOffset(new ui.Rect.fromLTRB(dart.notNull(this.chart[_chartAxis][_axisClipRect].left) - dart.notNull(this.series.markerSettings.width), dart.notNull(this.chart[_chartAxis][_axisClipRect].top) - dart.notNull(this.series.markerSettings.height), dart.notNull(this.chart[_chartAxis][_axisClipRect].right) + dart.notNull(this.series.markerSettings.width), dart.notNull(this.chart[_chartAxis][_axisClipRect].bottom) + dart.notNull(this.series.markerSettings.height)), new ui.Offset.new(this.series[_xAxis$].plotOffset, this.series[_yAxis$].plotOffset));
        canvas.restore();
        if ((dart.notNull(this.series.animationDuration) <= 0 || dart.notNull(animationFactor) >= dart.notNull(this.chart[_seriesDurationFactor])) && (dart.test(this.series.markerSettings.isVisible) || dart.test(this.series.dataLabelSettings.isVisible))) {
          canvas.clipRect(clipRect);
          this.series.renderSeriesElements(this.chart, canvas, this.chartElementAnimation);
        }
        if (dart.notNull(animationFactor) >= 1) {
          this.chart[_chartState].setPainterKey(seriesIndex, this.painterKey.name, true);
        }
      }
    }
    shouldRepaint(oldDelegate) {
      charts._LineChartPainter._check(oldDelegate);
      return this.isRepaint;
    }
  };
  (charts._LineChartPainter.new = function(opts) {
    let chart = opts && 'chart' in opts ? opts.chart : null;
    let series = opts && 'series' in opts ? opts.series : null;
    let isRepaint = opts && 'isRepaint' in opts ? opts.isRepaint : null;
    let animationController = opts && 'animationController' in opts ? opts.animationController : null;
    let seriesAnimation = opts && 'seriesAnimation' in opts ? opts.seriesAnimation : null;
    let chartElementAnimation = opts && 'chartElementAnimation' in opts ? opts.chartElementAnimation : null;
    let notifier = opts && 'notifier' in opts ? opts.notifier : null;
    let painterKey = opts && 'painterKey' in opts ? opts.painterKey : null;
    this.chart = chart;
    this.series = series;
    this.isRepaint = isRepaint;
    this.animationController = animationController;
    this.seriesAnimation = seriesAnimation;
    this.chartElementAnimation = chartElementAnimation;
    this.painterKey = painterKey;
    charts._LineChartPainter.__proto__.new.call(this, {repaint: notifier});
    ;
  }).prototype = charts._LineChartPainter.prototype;
  dart.addTypeTests(charts._LineChartPainter);
  dart.setMethodSignature(charts._LineChartPainter, () => ({
    __proto__: dart.getMethods(charts._LineChartPainter.__proto__),
    paint: dart.fnType(dart.void, [ui.Canvas, ui.Size]),
    shouldRepaint: dart.fnType(core.bool, [core.Object])
  }));
  dart.setLibraryUri(charts._LineChartPainter, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._LineChartPainter, () => ({
    __proto__: dart.getFields(charts._LineChartPainter.__proto__),
    chart: dart.finalFieldType(charts.SfCartesianChart),
    isRepaint: dart.finalFieldType(core.bool),
    animationController: dart.finalFieldType(animation_controller.AnimationController),
    seriesAnimation: dart.finalFieldType(animation.Animation$(core.double)),
    chartElementAnimation: dart.finalFieldType(animation.Animation$(core.double)),
    series: dart.finalFieldType(charts.LineSeries),
    painterKey: dart.finalFieldType(charts._PainterKey)
  }));
  charts._StackedLineChartPainter = class _StackedLineChartPainter extends custom_paint.CustomPainter {
    paint(canvas, size) {
      charts._stackedLinePainter(canvas, charts._StackedSeriesBase._check(this.series), this.seriesAnimation, this.chartElementAnimation);
    }
    shouldRepaint(oldDelegate) {
      charts._StackedLineChartPainter._check(oldDelegate);
      return this.isRepaint;
    }
  };
  (charts._StackedLineChartPainter.new = function(opts) {
    let chart = opts && 'chart' in opts ? opts.chart : null;
    let series = opts && 'series' in opts ? opts.series : null;
    let isRepaint = opts && 'isRepaint' in opts ? opts.isRepaint : null;
    let animationController = opts && 'animationController' in opts ? opts.animationController : null;
    let seriesAnimation = opts && 'seriesAnimation' in opts ? opts.seriesAnimation : null;
    let chartElementAnimation = opts && 'chartElementAnimation' in opts ? opts.chartElementAnimation : null;
    let notifier = opts && 'notifier' in opts ? opts.notifier : null;
    this.chart = chart;
    this.series = series;
    this.isRepaint = isRepaint;
    this.animationController = animationController;
    this.seriesAnimation = seriesAnimation;
    this.chartElementAnimation = chartElementAnimation;
    charts._StackedLineChartPainter.__proto__.new.call(this, {repaint: notifier});
    ;
  }).prototype = charts._StackedLineChartPainter.prototype;
  dart.addTypeTests(charts._StackedLineChartPainter);
  dart.setMethodSignature(charts._StackedLineChartPainter, () => ({
    __proto__: dart.getMethods(charts._StackedLineChartPainter.__proto__),
    paint: dart.fnType(dart.void, [ui.Canvas, ui.Size]),
    shouldRepaint: dart.fnType(core.bool, [core.Object])
  }));
  dart.setLibraryUri(charts._StackedLineChartPainter, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._StackedLineChartPainter, () => ({
    __proto__: dart.getFields(charts._StackedLineChartPainter.__proto__),
    chart: dart.finalFieldType(charts.SfCartesianChart),
    isRepaint: dart.finalFieldType(core.bool),
    animationController: dart.finalFieldType(animation_controller.AnimationController),
    seriesAnimation: dart.finalFieldType(animation.Animation$(core.double)),
    chartElementAnimation: dart.finalFieldType(animation.Animation$(core.double)),
    series: dart.finalFieldType(charts.XyDataSeries)
  }));
  charts._RangeAreaChartPainter = class _RangeAreaChartPainter extends custom_paint.CustomPainter {
    paint(canvas, size) {
      canvas.save();
      let clipRect = null;
      let animationFactor = null;
      if (dart.test(this.series[_visible])) {
        let axisClipRect = charts._calculatePlotOffset(this.chart[_chartAxis][_axisClipRect], new ui.Offset.new(this.series[_xAxis$].plotOffset, this.series[_yAxis$].plotOffset));
        canvas.clipRect(axisClipRect);
        animationFactor = this.seriesAnimation != null ? this.seriesAnimation.value : 1.0;
        if (!dart.test(this.series[_chart][_chartState].widgetNeedUpdate) && dart.notNull(this.series.animationDuration) > 0 && !dart.test(this.series[_chart][_chartState][_isLegendToggled])) {
          charts._performLinearAnimation(this.series[_chart], this.series[_xAxis$], canvas, animationFactor);
        }
        this.series[_draw](canvas, animationFactor);
        clipRect = charts._calculatePlotOffset(new ui.Rect.fromLTRB(dart.notNull(this.chart[_chartAxis][_axisClipRect].left) - dart.notNull(this.series.markerSettings.width), dart.notNull(this.chart[_chartAxis][_axisClipRect].top) - dart.notNull(this.series.markerSettings.height), dart.notNull(this.chart[_chartAxis][_axisClipRect].right) + dart.notNull(this.series.markerSettings.width), dart.notNull(this.chart[_chartAxis][_axisClipRect].bottom) + dart.notNull(this.series.markerSettings.height)), new ui.Offset.new(this.series[_xAxis$].plotOffset, this.series[_yAxis$].plotOffset));
      }
      canvas.restore();
      if (dart.test(this.series[_visible]) && dart.notNull(animationFactor) > dart.notNull(this.chart[_seriesDurationFactor])) {
        canvas.clipRect(clipRect);
        charts._renderSeriesElements(canvas, this.series, this.chartElementAnimation);
      }
    }
    shouldRepaint(oldDelegate) {
      charts._RangeAreaChartPainter._check(oldDelegate);
      return this.isRepaint;
    }
  };
  (charts._RangeAreaChartPainter.new = function(opts) {
    let chart = opts && 'chart' in opts ? opts.chart : null;
    let series = opts && 'series' in opts ? opts.series : null;
    let isRepaint = opts && 'isRepaint' in opts ? opts.isRepaint : null;
    let animationController = opts && 'animationController' in opts ? opts.animationController : null;
    let seriesAnimation = opts && 'seriesAnimation' in opts ? opts.seriesAnimation : null;
    let chartElementAnimation = opts && 'chartElementAnimation' in opts ? opts.chartElementAnimation : null;
    let notifier = opts && 'notifier' in opts ? opts.notifier : null;
    this.chart = chart;
    this.series = series;
    this.isRepaint = isRepaint;
    this.animationController = animationController;
    this.seriesAnimation = seriesAnimation;
    this.chartElementAnimation = chartElementAnimation;
    charts._RangeAreaChartPainter.__proto__.new.call(this, {repaint: notifier});
    ;
  }).prototype = charts._RangeAreaChartPainter.prototype;
  dart.addTypeTests(charts._RangeAreaChartPainter);
  dart.setMethodSignature(charts._RangeAreaChartPainter, () => ({
    __proto__: dart.getMethods(charts._RangeAreaChartPainter.__proto__),
    paint: dart.fnType(dart.void, [ui.Canvas, ui.Size]),
    shouldRepaint: dart.fnType(core.bool, [core.Object])
  }));
  dart.setLibraryUri(charts._RangeAreaChartPainter, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._RangeAreaChartPainter, () => ({
    __proto__: dart.getFields(charts._RangeAreaChartPainter.__proto__),
    chart: dart.finalFieldType(charts.SfCartesianChart),
    isRepaint: dart.finalFieldType(core.bool),
    seriesAnimation: dart.finalFieldType(animation.Animation$(core.double)),
    chartElementAnimation: dart.finalFieldType(animation.Animation$(core.double)),
    animationController: dart.finalFieldType(animation.Animation$(core.double)),
    series: dart.finalFieldType(charts.XyDataSeries)
  }));
  charts._StackedLine100ChartPainter = class _StackedLine100ChartPainter extends custom_paint.CustomPainter {
    paint(canvas, size) {
      charts._stackedLinePainter(canvas, charts._StackedSeriesBase._check(this.series), this.seriesAnimation, this.chartElementAnimation);
    }
    shouldRepaint(oldDelegate) {
      charts._StackedLine100ChartPainter._check(oldDelegate);
      return this.isRepaint;
    }
  };
  (charts._StackedLine100ChartPainter.new = function(opts) {
    let chart = opts && 'chart' in opts ? opts.chart : null;
    let series = opts && 'series' in opts ? opts.series : null;
    let isRepaint = opts && 'isRepaint' in opts ? opts.isRepaint : null;
    let animationController = opts && 'animationController' in opts ? opts.animationController : null;
    let seriesAnimation = opts && 'seriesAnimation' in opts ? opts.seriesAnimation : null;
    let chartElementAnimation = opts && 'chartElementAnimation' in opts ? opts.chartElementAnimation : null;
    let notifier = opts && 'notifier' in opts ? opts.notifier : null;
    this.chart = chart;
    this.series = series;
    this.isRepaint = isRepaint;
    this.animationController = animationController;
    this.seriesAnimation = seriesAnimation;
    this.chartElementAnimation = chartElementAnimation;
    charts._StackedLine100ChartPainter.__proto__.new.call(this, {repaint: notifier});
    ;
  }).prototype = charts._StackedLine100ChartPainter.prototype;
  dart.addTypeTests(charts._StackedLine100ChartPainter);
  dart.setMethodSignature(charts._StackedLine100ChartPainter, () => ({
    __proto__: dart.getMethods(charts._StackedLine100ChartPainter.__proto__),
    paint: dart.fnType(dart.void, [ui.Canvas, ui.Size]),
    shouldRepaint: dart.fnType(core.bool, [core.Object])
  }));
  dart.setLibraryUri(charts._StackedLine100ChartPainter, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._StackedLine100ChartPainter, () => ({
    __proto__: dart.getFields(charts._StackedLine100ChartPainter.__proto__),
    chart: dart.finalFieldType(charts.SfCartesianChart),
    isRepaint: dart.finalFieldType(core.bool),
    animationController: dart.finalFieldType(animation_controller.AnimationController),
    seriesAnimation: dart.finalFieldType(animation.Animation$(core.double)),
    chartElementAnimation: dart.finalFieldType(animation.Animation$(core.double)),
    series: dart.finalFieldType(charts.XyDataSeries)
  }));
  charts._RangeColumnChartPainter = class _RangeColumnChartPainter extends custom_paint.CustomPainter {
    paint(canvas, size) {
      canvas.save();
      let clipRect = null;
      let animationFactor = null;
      if (dart.test(this.series[_visible])) {
        let axisClipRect = charts._calculatePlotOffset(this.chart[_chartAxis][_axisClipRect], new ui.Offset.new(this.series[_xAxis$].plotOffset, this.series[_yAxis$].plotOffset));
        canvas.clipRect(axisClipRect);
        animationFactor = this.seriesAnimation != null ? this.seriesAnimation.value : 1.0;
        this.series[_draw](canvas, animationFactor);
        clipRect = charts._calculatePlotOffset(new ui.Rect.fromLTWH(dart.notNull(this.chart[_chartAxis][_axisClipRect].left) - dart.notNull(this.series.markerSettings.width), dart.notNull(this.chart[_chartAxis][_axisClipRect].top) - dart.notNull(this.series.markerSettings.height), dart.notNull(this.chart[_chartAxis][_axisClipRect].right) + dart.notNull(this.series.markerSettings.width), dart.notNull(this.chart[_chartAxis][_axisClipRect].bottom) + dart.notNull(this.series.markerSettings.height)), new ui.Offset.new(this.series[_xAxis$].plotOffset, this.series[_yAxis$].plotOffset));
      }
      canvas.restore();
      if (dart.test(this.series[_visible]) && dart.notNull(animationFactor) > dart.notNull(this.chart[_seriesDurationFactor])) {
        canvas.clipRect(clipRect);
        charts._renderSeriesElements(canvas, this.series, this.chartElementAnimation);
      }
    }
    shouldRepaint(oldDelegate) {
      charts._RangeColumnChartPainter._check(oldDelegate);
      return this.isRepaint;
    }
  };
  (charts._RangeColumnChartPainter.new = function(opts) {
    let chart = opts && 'chart' in opts ? opts.chart : null;
    let series = opts && 'series' in opts ? opts.series : null;
    let isRepaint = opts && 'isRepaint' in opts ? opts.isRepaint : null;
    let animationController = opts && 'animationController' in opts ? opts.animationController : null;
    let seriesAnimation = opts && 'seriesAnimation' in opts ? opts.seriesAnimation : null;
    let chartElementAnimation = opts && 'chartElementAnimation' in opts ? opts.chartElementAnimation : null;
    let notifier = opts && 'notifier' in opts ? opts.notifier : null;
    this.currentChartLocations = JSArrayOf_ChartLocation().of([]);
    this.chart = chart;
    this.series = series;
    this.isRepaint = isRepaint;
    this.animationController = animationController;
    this.seriesAnimation = seriesAnimation;
    this.chartElementAnimation = chartElementAnimation;
    charts._RangeColumnChartPainter.__proto__.new.call(this, {repaint: notifier});
    ;
  }).prototype = charts._RangeColumnChartPainter.prototype;
  dart.addTypeTests(charts._RangeColumnChartPainter);
  dart.setMethodSignature(charts._RangeColumnChartPainter, () => ({
    __proto__: dart.getMethods(charts._RangeColumnChartPainter.__proto__),
    paint: dart.fnType(dart.void, [ui.Canvas, ui.Size]),
    shouldRepaint: dart.fnType(core.bool, [core.Object])
  }));
  dart.setLibraryUri(charts._RangeColumnChartPainter, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._RangeColumnChartPainter, () => ({
    __proto__: dart.getFields(charts._RangeColumnChartPainter.__proto__),
    chart: dart.finalFieldType(charts.SfCartesianChart),
    isRepaint: dart.finalFieldType(core.bool),
    animationController: dart.finalFieldType(animation_controller.AnimationController),
    seriesAnimation: dart.finalFieldType(animation.Animation$(core.double)),
    chartElementAnimation: dart.finalFieldType(animation.Animation$(core.double)),
    currentChartLocations: dart.fieldType(core.List$(charts._ChartLocation)),
    series: dart.fieldType(charts.XyDataSeries)
  }));
  charts._ScatterChartPainter = class _ScatterChartPainter extends custom_paint.CustomPainter {
    paint(canvas, size) {
      canvas.save();
      let animationFactor = null;
      if (dart.test(this.series[_visible])) {
        animationFactor = this.seriesAnimation != null ? this.seriesAnimation.value : 1.0;
        let axisClipRect = charts._calculatePlotOffset(this.chart[_chartAxis][_axisClipRect], new ui.Offset.new(this.series[_xAxis$].plotOffset, this.series[_yAxis$].plotOffset));
        canvas.clipRect(axisClipRect);
        let seriesIndex = this.painterKey.index;
        this.series.storeSeriesProperties(this.chart, seriesIndex);
        let segmentIndex = -1;
        for (let pointIndex = 0; pointIndex < dart.notNull(this.series[_dataPoints$][$length]); pointIndex = pointIndex + 1) {
          let currentPoint = this.series[_dataPoints$][$_get](pointIndex);
          this.series.calculateRegionData(this.chart, this.series, this.painterKey.index, currentPoint, pointIndex);
          if (dart.test(currentPoint.isVisible) && !dart.test(currentPoint.isGap)) {
            this.series.drawSegment(canvas, this.series.addSegment(currentPoint, segmentIndex = segmentIndex + 1, seriesIndex, animationFactor));
          }
        }
        if (dart.notNull(this.series.animationDuration) <= 0 || dart.notNull(animationFactor) >= dart.notNull(this.chart[_seriesDurationFactor])) {
          this.series.renderSeriesElements(this.chart, canvas, this.chartElementAnimation);
        }
        if (dart.notNull(animationFactor) >= 1) {
          this.chart[_chartState].setPainterKey(this.painterKey.index, this.painterKey.name, true);
        }
      }
      canvas.restore();
    }
    shouldRepaint(oldDelegate) {
      charts._ScatterChartPainter._check(oldDelegate);
      return this.isRepaint;
    }
  };
  (charts._ScatterChartPainter.new = function(opts) {
    let chart = opts && 'chart' in opts ? opts.chart : null;
    let series = opts && 'series' in opts ? opts.series : null;
    let isRepaint = opts && 'isRepaint' in opts ? opts.isRepaint : null;
    let animationController = opts && 'animationController' in opts ? opts.animationController : null;
    let seriesAnimation = opts && 'seriesAnimation' in opts ? opts.seriesAnimation : null;
    let chartElementAnimation = opts && 'chartElementAnimation' in opts ? opts.chartElementAnimation : null;
    let notifier = opts && 'notifier' in opts ? opts.notifier : null;
    let painterKey = opts && 'painterKey' in opts ? opts.painterKey : null;
    this.chart = chart;
    this.series = series;
    this.isRepaint = isRepaint;
    this.animationController = animationController;
    this.seriesAnimation = seriesAnimation;
    this.chartElementAnimation = chartElementAnimation;
    this.painterKey = painterKey;
    charts._ScatterChartPainter.__proto__.new.call(this, {repaint: notifier});
    ;
  }).prototype = charts._ScatterChartPainter.prototype;
  dart.addTypeTests(charts._ScatterChartPainter);
  dart.setMethodSignature(charts._ScatterChartPainter, () => ({
    __proto__: dart.getMethods(charts._ScatterChartPainter.__proto__),
    paint: dart.fnType(dart.void, [ui.Canvas, ui.Size]),
    shouldRepaint: dart.fnType(core.bool, [core.Object])
  }));
  dart.setLibraryUri(charts._ScatterChartPainter, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._ScatterChartPainter, () => ({
    __proto__: dart.getFields(charts._ScatterChartPainter.__proto__),
    chart: dart.finalFieldType(charts.SfCartesianChart),
    isRepaint: dart.finalFieldType(core.bool),
    animationController: dart.finalFieldType(animation.Animation$(core.double)),
    seriesAnimation: dart.finalFieldType(animation.Animation$(core.double)),
    chartElementAnimation: dart.finalFieldType(animation.Animation$(core.double)),
    series: dart.finalFieldType(charts.ScatterSeries),
    painterKey: dart.finalFieldType(charts._PainterKey)
  }));
  charts._SplineChartPainter = class _SplineChartPainter extends custom_paint.CustomPainter {
    paint(canvas, size) {
      canvas.save();
      let clipRect = null;
      let animationFactor = null;
      if (dart.test(this.series[_visible])) {
        let axisClipRect = charts._calculatePlotOffset(this.chart[_chartAxis][_axisClipRect], new ui.Offset.new(this.series[_xAxis$].plotOffset, this.series[_yAxis$].plotOffset));
        canvas.clipRect(axisClipRect);
        animationFactor = this.seriesAnimation != null ? this.seriesAnimation.value : 1.0;
        if (!(dart.test(this.chart[_chartState].widgetNeedUpdate) || dart.test(this.chart[_chartState][_isLegendToggled])) && dart.notNull(this.series.animationDuration) > 0) {
          charts._performLinearAnimation(this.series[_chart], this.series[_xAxis$], canvas, animationFactor);
        }
        this.series[_draw](canvas, animationFactor);
        clipRect = charts._calculatePlotOffset(new ui.Rect.fromLTRB(dart.notNull(this.chart[_chartAxis][_axisClipRect].left) - dart.notNull(this.series.markerSettings.width), dart.notNull(this.chart[_chartAxis][_axisClipRect].top) - dart.notNull(this.series.markerSettings.height), dart.notNull(this.chart[_chartAxis][_axisClipRect].right) + dart.notNull(this.series.markerSettings.width), dart.notNull(this.chart[_chartAxis][_axisClipRect].bottom) + dart.notNull(this.series.markerSettings.height)), new ui.Offset.new(this.series[_xAxis$].plotOffset, this.series[_yAxis$].plotOffset));
      }
      canvas.restore();
      if (dart.test(this.series[_visible]) && dart.notNull(animationFactor) > dart.notNull(this.chart[_seriesDurationFactor])) {
        canvas.clipRect(clipRect);
        charts._renderSeriesElements(canvas, this.series, this.chartElementAnimation);
      }
    }
    shouldRepaint(oldDelegate) {
      charts._SplineChartPainter._check(oldDelegate);
      return this.isRepaint;
    }
  };
  (charts._SplineChartPainter.new = function(opts) {
    let chart = opts && 'chart' in opts ? opts.chart : null;
    let series = opts && 'series' in opts ? opts.series : null;
    let isRepaint = opts && 'isRepaint' in opts ? opts.isRepaint : null;
    let animationController = opts && 'animationController' in opts ? opts.animationController : null;
    let seriesAnimation = opts && 'seriesAnimation' in opts ? opts.seriesAnimation : null;
    let chartElementAnimation = opts && 'chartElementAnimation' in opts ? opts.chartElementAnimation : null;
    let notifier = opts && 'notifier' in opts ? opts.notifier : null;
    this.chart = chart;
    this.series = series;
    this.isRepaint = isRepaint;
    this.animationController = animationController;
    this.seriesAnimation = seriesAnimation;
    this.chartElementAnimation = chartElementAnimation;
    charts._SplineChartPainter.__proto__.new.call(this, {repaint: notifier});
    ;
  }).prototype = charts._SplineChartPainter.prototype;
  dart.addTypeTests(charts._SplineChartPainter);
  dart.setMethodSignature(charts._SplineChartPainter, () => ({
    __proto__: dart.getMethods(charts._SplineChartPainter.__proto__),
    paint: dart.fnType(dart.void, [ui.Canvas, ui.Size]),
    shouldRepaint: dart.fnType(core.bool, [core.Object])
  }));
  dart.setLibraryUri(charts._SplineChartPainter, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._SplineChartPainter, () => ({
    __proto__: dart.getFields(charts._SplineChartPainter.__proto__),
    chart: dart.finalFieldType(charts.SfCartesianChart),
    isRepaint: dart.finalFieldType(core.bool),
    animationController: dart.finalFieldType(animation_controller.AnimationController),
    seriesAnimation: dart.finalFieldType(animation.Animation$(core.double)),
    chartElementAnimation: dart.finalFieldType(animation.Animation$(core.double)),
    series: dart.finalFieldType(charts.XyDataSeries)
  }));
  charts._SplineAreaChartPainter = class _SplineAreaChartPainter extends custom_paint.CustomPainter {
    paint(canvas, size) {
      canvas.save();
      let clipRect = null;
      let animationFactor = null;
      if (dart.test(this.series[_visible])) {
        let axisClipRect = charts._calculatePlotOffset(this.chart[_chartAxis][_axisClipRect], new ui.Offset.new(this.series[_xAxis$].plotOffset, this.series[_yAxis$].plotOffset));
        canvas.clipRect(axisClipRect);
        animationFactor = this.seriesAnimation != null ? this.seriesAnimation.value : 1.0;
        if (!dart.test(this.series[_chart][_chartState].widgetNeedUpdate) && dart.notNull(this.series.animationDuration) > 0 && !dart.test(this.series[_chart][_chartState][_isLegendToggled])) {
          charts._performLinearAnimation(this.series[_chart], this.series[_xAxis$], canvas, animationFactor);
        }
        this.series[_draw](canvas, animationFactor);
        clipRect = charts._calculatePlotOffset(new ui.Rect.fromLTRB(dart.notNull(this.chart[_chartAxis][_axisClipRect].left) - dart.notNull(this.series.markerSettings.width), dart.notNull(this.chart[_chartAxis][_axisClipRect].top) - dart.notNull(this.series.markerSettings.height), dart.notNull(this.chart[_chartAxis][_axisClipRect].right) + dart.notNull(this.series.markerSettings.width), dart.notNull(this.chart[_chartAxis][_axisClipRect].bottom) + dart.notNull(this.series.markerSettings.height)), new ui.Offset.new(this.series[_xAxis$].plotOffset, this.series[_yAxis$].plotOffset));
      }
      canvas.restore();
      if (dart.test(this.series[_visible]) && dart.notNull(animationFactor) > dart.notNull(this.chart[_seriesDurationFactor])) {
        canvas.clipRect(clipRect);
        charts._renderSeriesElements(canvas, this.series, this.chartElementAnimation);
      }
    }
    shouldRepaint(oldDelegate) {
      charts._SplineAreaChartPainter._check(oldDelegate);
      return this.isRepaint;
    }
  };
  (charts._SplineAreaChartPainter.new = function(opts) {
    let chart = opts && 'chart' in opts ? opts.chart : null;
    let series = opts && 'series' in opts ? opts.series : null;
    let isRepaint = opts && 'isRepaint' in opts ? opts.isRepaint : null;
    let animationController = opts && 'animationController' in opts ? opts.animationController : null;
    let seriesAnimation = opts && 'seriesAnimation' in opts ? opts.seriesAnimation : null;
    let chartElementAnimation = opts && 'chartElementAnimation' in opts ? opts.chartElementAnimation : null;
    let notifier = opts && 'notifier' in opts ? opts.notifier : null;
    this.chart = chart;
    this.series = series;
    this.isRepaint = isRepaint;
    this.animationController = animationController;
    this.seriesAnimation = seriesAnimation;
    this.chartElementAnimation = chartElementAnimation;
    charts._SplineAreaChartPainter.__proto__.new.call(this, {repaint: notifier});
    ;
  }).prototype = charts._SplineAreaChartPainter.prototype;
  dart.addTypeTests(charts._SplineAreaChartPainter);
  dart.setMethodSignature(charts._SplineAreaChartPainter, () => ({
    __proto__: dart.getMethods(charts._SplineAreaChartPainter.__proto__),
    paint: dart.fnType(dart.void, [ui.Canvas, ui.Size]),
    shouldRepaint: dart.fnType(core.bool, [core.Object])
  }));
  dart.setLibraryUri(charts._SplineAreaChartPainter, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._SplineAreaChartPainter, () => ({
    __proto__: dart.getFields(charts._SplineAreaChartPainter.__proto__),
    chart: dart.finalFieldType(charts.SfCartesianChart),
    isRepaint: dart.finalFieldType(core.bool),
    animationController: dart.finalFieldType(animation_controller.AnimationController),
    seriesAnimation: dart.finalFieldType(animation.Animation$(core.double)),
    chartElementAnimation: dart.finalFieldType(animation.Animation$(core.double)),
    series: dart.finalFieldType(charts.XyDataSeries)
  }));
  charts._StackedBarChartPainter = class _StackedBarChartPainter extends custom_paint.CustomPainter {
    paint(canvas, size) {
      charts._stackedRectPainter(canvas, this.series, this.seriesAnimation, this.chartElementAnimation);
    }
    shouldRepaint(oldDelegate) {
      charts._StackedBarChartPainter._check(oldDelegate);
      return this.isRepaint;
    }
  };
  (charts._StackedBarChartPainter.new = function(opts) {
    let chart = opts && 'chart' in opts ? opts.chart : null;
    let series = opts && 'series' in opts ? opts.series : null;
    let isRepaint = opts && 'isRepaint' in opts ? opts.isRepaint : null;
    let animationController = opts && 'animationController' in opts ? opts.animationController : null;
    let seriesAnimation = opts && 'seriesAnimation' in opts ? opts.seriesAnimation : null;
    let chartElementAnimation = opts && 'chartElementAnimation' in opts ? opts.chartElementAnimation : null;
    let notifier = opts && 'notifier' in opts ? opts.notifier : null;
    this.point = null;
    this.currentChartLocations = JSArrayOf_ChartLocation().of([]);
    this.chart = chart;
    this.series = series;
    this.isRepaint = isRepaint;
    this.animationController = animationController;
    this.seriesAnimation = seriesAnimation;
    this.chartElementAnimation = chartElementAnimation;
    charts._StackedBarChartPainter.__proto__.new.call(this, {repaint: notifier});
    ;
  }).prototype = charts._StackedBarChartPainter.prototype;
  dart.addTypeTests(charts._StackedBarChartPainter);
  dart.setMethodSignature(charts._StackedBarChartPainter, () => ({
    __proto__: dart.getMethods(charts._StackedBarChartPainter.__proto__),
    paint: dart.fnType(dart.void, [ui.Canvas, ui.Size]),
    shouldRepaint: dart.fnType(core.bool, [core.Object])
  }));
  dart.setLibraryUri(charts._StackedBarChartPainter, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._StackedBarChartPainter, () => ({
    __proto__: dart.getFields(charts._StackedBarChartPainter.__proto__),
    chart: dart.finalFieldType(charts.SfCartesianChart),
    point: dart.fieldType(charts.CartesianChartPoint),
    isRepaint: dart.finalFieldType(core.bool),
    animationController: dart.finalFieldType(animation_controller.AnimationController),
    seriesAnimation: dart.finalFieldType(animation.Animation$(core.double)),
    chartElementAnimation: dart.finalFieldType(animation.Animation$(core.double)),
    currentChartLocations: dart.fieldType(core.List$(charts._ChartLocation)),
    series: dart.fieldType(charts.StackedBarSeries)
  }));
  dart.defineLazy(charts._StackedBarChartPainter, {
    /*charts._StackedBarChartPainter.animation*/get animation() {
      return null;
    },
    set animation(_) {}
  });
  charts._StackedBar100ChartPainter = class _StackedBar100ChartPainter extends custom_paint.CustomPainter {
    paint(canvas, size) {
      charts._stackedRectPainter(canvas, this.series, this.seriesAnimation, this.chartElementAnimation);
    }
    shouldRepaint(oldDelegate) {
      charts._StackedBar100ChartPainter._check(oldDelegate);
      return this.isRepaint;
    }
  };
  (charts._StackedBar100ChartPainter.new = function(opts) {
    let chart = opts && 'chart' in opts ? opts.chart : null;
    let series = opts && 'series' in opts ? opts.series : null;
    let isRepaint = opts && 'isRepaint' in opts ? opts.isRepaint : null;
    let animationController = opts && 'animationController' in opts ? opts.animationController : null;
    let seriesAnimation = opts && 'seriesAnimation' in opts ? opts.seriesAnimation : null;
    let chartElementAnimation = opts && 'chartElementAnimation' in opts ? opts.chartElementAnimation : null;
    let notifier = opts && 'notifier' in opts ? opts.notifier : null;
    this.point = null;
    this.currentChartLocations = JSArrayOf_ChartLocation().of([]);
    this.chart = chart;
    this.series = series;
    this.isRepaint = isRepaint;
    this.animationController = animationController;
    this.seriesAnimation = seriesAnimation;
    this.chartElementAnimation = chartElementAnimation;
    charts._StackedBar100ChartPainter.__proto__.new.call(this, {repaint: notifier});
    ;
  }).prototype = charts._StackedBar100ChartPainter.prototype;
  dart.addTypeTests(charts._StackedBar100ChartPainter);
  dart.setMethodSignature(charts._StackedBar100ChartPainter, () => ({
    __proto__: dart.getMethods(charts._StackedBar100ChartPainter.__proto__),
    paint: dart.fnType(dart.void, [ui.Canvas, ui.Size]),
    shouldRepaint: dart.fnType(core.bool, [core.Object])
  }));
  dart.setLibraryUri(charts._StackedBar100ChartPainter, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._StackedBar100ChartPainter, () => ({
    __proto__: dart.getFields(charts._StackedBar100ChartPainter.__proto__),
    chart: dart.finalFieldType(charts.SfCartesianChart),
    point: dart.fieldType(charts.CartesianChartPoint),
    isRepaint: dart.finalFieldType(core.bool),
    animationController: dart.finalFieldType(animation_controller.AnimationController),
    seriesAnimation: dart.finalFieldType(animation.Animation$(core.double)),
    chartElementAnimation: dart.finalFieldType(animation.Animation$(core.double)),
    currentChartLocations: dart.fieldType(core.List$(charts._ChartLocation)),
    series: dart.fieldType(charts.StackedBar100Series)
  }));
  dart.defineLazy(charts._StackedBar100ChartPainter, {
    /*charts._StackedBar100ChartPainter.animation*/get animation() {
      return null;
    },
    set animation(_) {}
  });
  charts._StackedColummnChartPainter = class _StackedColummnChartPainter extends custom_paint.CustomPainter {
    paint(canvas, size) {
      charts._stackedRectPainter(canvas, this.series, this.seriesAnimation, this.chartElementAnimation);
    }
    shouldRepaint(oldDelegate) {
      charts._StackedColummnChartPainter._check(oldDelegate);
      return this.isRepaint;
    }
  };
  (charts._StackedColummnChartPainter.new = function(opts) {
    let chart = opts && 'chart' in opts ? opts.chart : null;
    let series = opts && 'series' in opts ? opts.series : null;
    let isRepaint = opts && 'isRepaint' in opts ? opts.isRepaint : null;
    let animationController = opts && 'animationController' in opts ? opts.animationController : null;
    let seriesAnimation = opts && 'seriesAnimation' in opts ? opts.seriesAnimation : null;
    let chartElementAnimation = opts && 'chartElementAnimation' in opts ? opts.chartElementAnimation : null;
    let notifier = opts && 'notifier' in opts ? opts.notifier : null;
    this.point = null;
    this.currentChartLocations = JSArrayOf_ChartLocation().of([]);
    this.chart = chart;
    this.series = series;
    this.isRepaint = isRepaint;
    this.animationController = animationController;
    this.seriesAnimation = seriesAnimation;
    this.chartElementAnimation = chartElementAnimation;
    charts._StackedColummnChartPainter.__proto__.new.call(this, {repaint: notifier});
    ;
  }).prototype = charts._StackedColummnChartPainter.prototype;
  dart.addTypeTests(charts._StackedColummnChartPainter);
  dart.setMethodSignature(charts._StackedColummnChartPainter, () => ({
    __proto__: dart.getMethods(charts._StackedColummnChartPainter.__proto__),
    paint: dart.fnType(dart.void, [ui.Canvas, ui.Size]),
    shouldRepaint: dart.fnType(core.bool, [core.Object])
  }));
  dart.setLibraryUri(charts._StackedColummnChartPainter, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._StackedColummnChartPainter, () => ({
    __proto__: dart.getFields(charts._StackedColummnChartPainter.__proto__),
    chart: dart.finalFieldType(charts.SfCartesianChart),
    point: dart.fieldType(charts.CartesianChartPoint),
    isRepaint: dart.finalFieldType(core.bool),
    animationController: dart.finalFieldType(animation_controller.AnimationController),
    seriesAnimation: dart.finalFieldType(animation.Animation$(core.double)),
    chartElementAnimation: dart.finalFieldType(animation.Animation$(core.double)),
    currentChartLocations: dart.fieldType(core.List$(charts._ChartLocation)),
    series: dart.fieldType(charts.StackedColumnSeries)
  }));
  charts._StackedColumn100ChartPainter = class _StackedColumn100ChartPainter extends custom_paint.CustomPainter {
    paint(canvas, size) {
      charts._stackedRectPainter(canvas, this.series, this.seriesAnimation, this.chartElementAnimation);
    }
    shouldRepaint(oldDelegate) {
      charts._StackedColumn100ChartPainter._check(oldDelegate);
      return this.isRepaint;
    }
  };
  (charts._StackedColumn100ChartPainter.new = function(opts) {
    let chart = opts && 'chart' in opts ? opts.chart : null;
    let series = opts && 'series' in opts ? opts.series : null;
    let isRepaint = opts && 'isRepaint' in opts ? opts.isRepaint : null;
    let animationController = opts && 'animationController' in opts ? opts.animationController : null;
    let seriesAnimation = opts && 'seriesAnimation' in opts ? opts.seriesAnimation : null;
    let chartElementAnimation = opts && 'chartElementAnimation' in opts ? opts.chartElementAnimation : null;
    let notifier = opts && 'notifier' in opts ? opts.notifier : null;
    this.point = null;
    this.currentChartLocations = JSArrayOf_ChartLocation().of([]);
    this.chart = chart;
    this.series = series;
    this.isRepaint = isRepaint;
    this.animationController = animationController;
    this.seriesAnimation = seriesAnimation;
    this.chartElementAnimation = chartElementAnimation;
    charts._StackedColumn100ChartPainter.__proto__.new.call(this, {repaint: notifier});
    ;
  }).prototype = charts._StackedColumn100ChartPainter.prototype;
  dart.addTypeTests(charts._StackedColumn100ChartPainter);
  dart.setMethodSignature(charts._StackedColumn100ChartPainter, () => ({
    __proto__: dart.getMethods(charts._StackedColumn100ChartPainter.__proto__),
    paint: dart.fnType(dart.void, [ui.Canvas, ui.Size]),
    shouldRepaint: dart.fnType(core.bool, [core.Object])
  }));
  dart.setLibraryUri(charts._StackedColumn100ChartPainter, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._StackedColumn100ChartPainter, () => ({
    __proto__: dart.getFields(charts._StackedColumn100ChartPainter.__proto__),
    chart: dart.finalFieldType(charts.SfCartesianChart),
    point: dart.fieldType(charts.CartesianChartPoint),
    isRepaint: dart.finalFieldType(core.bool),
    animationController: dart.finalFieldType(animation_controller.AnimationController),
    seriesAnimation: dart.finalFieldType(animation.Animation$(core.double)),
    chartElementAnimation: dart.finalFieldType(animation.Animation$(core.double)),
    currentChartLocations: dart.fieldType(core.List$(charts._ChartLocation)),
    series: dart.fieldType(charts.StackedColumn100Series)
  }));
  charts._StepAreaChartPainter = class _StepAreaChartPainter extends custom_paint.CustomPainter {
    paint(canvas, size) {
      canvas.save();
      let clipRect = null;
      let animationFactor = null;
      if (dart.test(this.series[_visible])) {
        let axisClipRect = charts._calculatePlotOffset(this.chart[_chartAxis][_axisClipRect], new ui.Offset.new(this.series[_xAxis$].plotOffset, this.series[_yAxis$].plotOffset));
        canvas.clipRect(axisClipRect);
        animationFactor = this.seriesAnimation != null ? this.seriesAnimation.value : 1.0;
        if (!dart.test(this.series[_chart][_chartState].widgetNeedUpdate) && dart.notNull(this.series.animationDuration) > 0 && !dart.test(this.series[_chart][_chartState][_isLegendToggled])) {
          charts._performLinearAnimation(this.series[_chart], this.series[_xAxis$], canvas, animationFactor);
        }
        this.series[_draw](canvas, animationFactor);
        clipRect = charts._calculatePlotOffset(new ui.Rect.fromLTRB(dart.notNull(this.chart[_chartAxis][_axisClipRect].left) - dart.notNull(this.series.markerSettings.width), dart.notNull(this.chart[_chartAxis][_axisClipRect].top) - dart.notNull(this.series.markerSettings.height), dart.notNull(this.chart[_chartAxis][_axisClipRect].right) + dart.notNull(this.series.markerSettings.width), dart.notNull(this.chart[_chartAxis][_axisClipRect].bottom) + dart.notNull(this.series.markerSettings.height)), new ui.Offset.new(this.series[_xAxis$].plotOffset, this.series[_yAxis$].plotOffset));
      }
      canvas.restore();
      if (dart.test(this.series[_visible]) && dart.notNull(animationFactor) > dart.notNull(this.chart[_seriesDurationFactor])) {
        canvas.clipRect(clipRect);
        charts._renderSeriesElements(canvas, this.series, this.chartElementAnimation);
      }
    }
    shouldRepaint(oldDelegate) {
      charts._StepAreaChartPainter._check(oldDelegate);
      return this.isRepaint;
    }
  };
  (charts._StepAreaChartPainter.new = function(opts) {
    let chart = opts && 'chart' in opts ? opts.chart : null;
    let series = opts && 'series' in opts ? opts.series : null;
    let isRepaint = opts && 'isRepaint' in opts ? opts.isRepaint : null;
    let animationController = opts && 'animationController' in opts ? opts.animationController : null;
    let seriesAnimation = opts && 'seriesAnimation' in opts ? opts.seriesAnimation : null;
    let chartElementAnimation = opts && 'chartElementAnimation' in opts ? opts.chartElementAnimation : null;
    let notifier = opts && 'notifier' in opts ? opts.notifier : null;
    this.chart = chart;
    this.series = series;
    this.isRepaint = isRepaint;
    this.animationController = animationController;
    this.seriesAnimation = seriesAnimation;
    this.chartElementAnimation = chartElementAnimation;
    charts._StepAreaChartPainter.__proto__.new.call(this, {repaint: notifier});
    ;
  }).prototype = charts._StepAreaChartPainter.prototype;
  dart.addTypeTests(charts._StepAreaChartPainter);
  dart.setMethodSignature(charts._StepAreaChartPainter, () => ({
    __proto__: dart.getMethods(charts._StepAreaChartPainter.__proto__),
    paint: dart.fnType(dart.void, [ui.Canvas, ui.Size]),
    shouldRepaint: dart.fnType(core.bool, [core.Object])
  }));
  dart.setLibraryUri(charts._StepAreaChartPainter, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._StepAreaChartPainter, () => ({
    __proto__: dart.getFields(charts._StepAreaChartPainter.__proto__),
    chart: dart.finalFieldType(charts.SfCartesianChart),
    isRepaint: dart.finalFieldType(core.bool),
    seriesAnimation: dart.finalFieldType(animation.Animation$(core.double)),
    chartElementAnimation: dart.finalFieldType(animation.Animation$(core.double)),
    animationController: dart.finalFieldType(animation.Animation$(core.double)),
    series: dart.finalFieldType(charts.XyDataSeries)
  }));
  charts._StepLineChartPainter = class _StepLineChartPainter extends custom_paint.CustomPainter {
    paint(canvas, size) {
      canvas.save();
      let clipRect = null;
      let animationFactor = null;
      if (dart.test(this.series[_visible])) {
        animationFactor = this.seriesAnimation != null ? this.seriesAnimation.value : 1.0;
        let axisClipRect = charts._calculatePlotOffset(this.chart[_chartAxis][_axisClipRect], new ui.Offset.new(this.series[_xAxis$].plotOffset, this.series[_yAxis$].plotOffset));
        canvas.clipRect(axisClipRect);
        this.series[_draw](canvas, animationFactor);
        clipRect = charts._calculatePlotOffset(new ui.Rect.fromLTRB(dart.notNull(this.chart[_chartAxis][_axisClipRect].left) - dart.notNull(this.series.markerSettings.width), dart.notNull(this.chart[_chartAxis][_axisClipRect].top) - dart.notNull(this.series.markerSettings.height), dart.notNull(this.chart[_chartAxis][_axisClipRect].right) + dart.notNull(this.series.markerSettings.width), dart.notNull(this.chart[_chartAxis][_axisClipRect].bottom) + dart.notNull(this.series.markerSettings.height)), new ui.Offset.new(this.series[_xAxis$].plotOffset, this.series[_yAxis$].plotOffset));
      }
      canvas.restore();
      if (dart.test(this.series[_visible]) && dart.notNull(animationFactor) > dart.notNull(this.chart[_seriesDurationFactor])) {
        canvas.clipRect(clipRect);
        charts._renderSeriesElements(canvas, this.series, this.chartElementAnimation);
      }
    }
    shouldRepaint(oldDelegate) {
      charts._StepLineChartPainter._check(oldDelegate);
      return this.isRepaint;
    }
  };
  (charts._StepLineChartPainter.new = function(opts) {
    let chart = opts && 'chart' in opts ? opts.chart : null;
    let series = opts && 'series' in opts ? opts.series : null;
    let isRepaint = opts && 'isRepaint' in opts ? opts.isRepaint : null;
    let animationController = opts && 'animationController' in opts ? opts.animationController : null;
    let seriesAnimation = opts && 'seriesAnimation' in opts ? opts.seriesAnimation : null;
    let chartElementAnimation = opts && 'chartElementAnimation' in opts ? opts.chartElementAnimation : null;
    let notifier = opts && 'notifier' in opts ? opts.notifier : null;
    this.chart = chart;
    this.series = series;
    this.isRepaint = isRepaint;
    this.animationController = animationController;
    this.seriesAnimation = seriesAnimation;
    this.chartElementAnimation = chartElementAnimation;
    charts._StepLineChartPainter.__proto__.new.call(this, {repaint: notifier});
    ;
  }).prototype = charts._StepLineChartPainter.prototype;
  dart.addTypeTests(charts._StepLineChartPainter);
  dart.setMethodSignature(charts._StepLineChartPainter, () => ({
    __proto__: dart.getMethods(charts._StepLineChartPainter.__proto__),
    paint: dart.fnType(dart.void, [ui.Canvas, ui.Size]),
    shouldRepaint: dart.fnType(core.bool, [core.Object])
  }));
  dart.setLibraryUri(charts._StepLineChartPainter, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._StepLineChartPainter, () => ({
    __proto__: dart.getFields(charts._StepLineChartPainter.__proto__),
    chart: dart.finalFieldType(charts.SfCartesianChart),
    isRepaint: dart.finalFieldType(core.bool),
    animationController: dart.finalFieldType(animation.Animation$(core.double)),
    seriesAnimation: dart.finalFieldType(animation.Animation$(core.double)),
    chartElementAnimation: dart.finalFieldType(animation.Animation$(core.double)),
    series: dart.finalFieldType(charts.XyDataSeries)
  }));
  const _setSeriesProperties = dart.privateName(charts, "_setSeriesProperties");
  const _calculateADPoints = dart.privateName(charts, "_calculateADPoints");
  const _getDataPoint = dart.privateName(charts, "_getDataPoint");
  const _setSeriesRange = dart.privateName(charts, "_setSeriesRange");
  const _getRangePoint = dart.privateName(charts, "_getRangePoint");
  const _getFieldValue = dart.privateName(charts, "_getFieldValue");
  const _is_TechnicalIndicators_default = Symbol('_is_TechnicalIndicators_default');
  const isVisible$7 = dart.privateName(charts, "TechnicalIndicators.isVisible");
  const xAxisName$1 = dart.privateName(charts, "TechnicalIndicators.xAxisName");
  const yAxisName$1 = dart.privateName(charts, "TechnicalIndicators.yAxisName");
  const seriesName$ = dart.privateName(charts, "TechnicalIndicators.seriesName");
  const dashArray$6 = dart.privateName(charts, "TechnicalIndicators.dashArray");
  const animationDuration$4 = dart.privateName(charts, "TechnicalIndicators.animationDuration");
  const dataSource$4 = dart.privateName(charts, "TechnicalIndicators.dataSource");
  const xValueMapper$4 = dart.privateName(charts, "TechnicalIndicators.xValueMapper");
  const lowValueMapper$0 = dart.privateName(charts, "TechnicalIndicators.lowValueMapper");
  const highValueMapper$0 = dart.privateName(charts, "TechnicalIndicators.highValueMapper");
  const openValueMapper$0 = dart.privateName(charts, "TechnicalIndicators.openValueMapper");
  const closeValueMapper$0 = dart.privateName(charts, "TechnicalIndicators.closeValueMapper");
  const name$5 = dart.privateName(charts, "TechnicalIndicators.name");
  const isVisibleInLegend$0 = dart.privateName(charts, "TechnicalIndicators.isVisibleInLegend");
  const legendIconType$4 = dart.privateName(charts, "TechnicalIndicators.legendIconType");
  const legendItemText$1 = dart.privateName(charts, "TechnicalIndicators.legendItemText");
  const signalLineColor$ = dart.privateName(charts, "TechnicalIndicators.signalLineColor");
  const signalLineWidth$ = dart.privateName(charts, "TechnicalIndicators.signalLineWidth");
  const period$ = dart.privateName(charts, "TechnicalIndicators.period");
  charts.TechnicalIndicators$ = dart.generic((T, D) => {
    let intToD = () => (intToD = dart.constFn(dart.fnType(D, [core.int])))();
    class TechnicalIndicators extends core.Object {
      get isVisible() {
        return this[isVisible$7];
      }
      set isVisible(value) {
        super.isVisible = value;
      }
      get xAxisName() {
        return this[xAxisName$1];
      }
      set xAxisName(value) {
        super.xAxisName = value;
      }
      get yAxisName() {
        return this[yAxisName$1];
      }
      set yAxisName(value) {
        super.yAxisName = value;
      }
      get seriesName() {
        return this[seriesName$];
      }
      set seriesName(value) {
        super.seriesName = value;
      }
      get dashArray() {
        return this[dashArray$6];
      }
      set dashArray(value) {
        super.dashArray = value;
      }
      get animationDuration() {
        return this[animationDuration$4];
      }
      set animationDuration(value) {
        super.animationDuration = value;
      }
      get dataSource() {
        return this[dataSource$4];
      }
      set dataSource(value) {
        super.dataSource = value;
      }
      get xValueMapper() {
        return this[xValueMapper$4];
      }
      set xValueMapper(value) {
        super.xValueMapper = value;
      }
      get lowValueMapper() {
        return this[lowValueMapper$0];
      }
      set lowValueMapper(value) {
        super.lowValueMapper = value;
      }
      get highValueMapper() {
        return this[highValueMapper$0];
      }
      set highValueMapper(value) {
        super.highValueMapper = value;
      }
      get openValueMapper() {
        return this[openValueMapper$0];
      }
      set openValueMapper(value) {
        super.openValueMapper = value;
      }
      get closeValueMapper() {
        return this[closeValueMapper$0];
      }
      set closeValueMapper(value) {
        super.closeValueMapper = value;
      }
      get name() {
        return this[name$5];
      }
      set name(value) {
        super.name = value;
      }
      get isVisibleInLegend() {
        return this[isVisibleInLegend$0];
      }
      set isVisibleInLegend(value) {
        super.isVisibleInLegend = value;
      }
      get legendIconType() {
        return this[legendIconType$4];
      }
      set legendIconType(value) {
        super.legendIconType = value;
      }
      get legendItemText() {
        return this[legendItemText$1];
      }
      set legendItemText(value) {
        super.legendItemText = value;
      }
      get signalLineColor() {
        return this[signalLineColor$];
      }
      set signalLineColor(value) {
        super.signalLineColor = value;
      }
      get signalLineWidth() {
        return this[signalLineWidth$];
      }
      set signalLineWidth(value) {
        super.signalLineWidth = value;
      }
      get period() {
        return this[period$];
      }
      set period(value) {
        super.period = value;
      }
      [_getDataPoint](x, y, sourcePoint, series, index, indicator = null) {
        let point = new charts.CartesianChartPoint.new(x, y);
        point.xValue = sourcePoint.xValue;
        point.index = dart.asInt(index);
        point.yValue = y;
        point.isVisible = true;
        if (charts.MacdIndicator.is(indicator) && series[_seriesType$] === "column") {
          let _indicator = indicator;
          point.pointColorMapper = dart.dtest(dart.dsend(point.yValue, '>=', [0])) ? _indicator.histogramPositiveColor : _indicator.histogramNegativeColor;
        }
        return point;
      }
      [_getRangePoint](x, high, low, sourcePoint, series, index, indicator = null) {
        let point = new charts.CartesianChartPoint.new(x, null);
        point.high = high;
        point.low = low;
        point.xValue = sourcePoint.xValue;
        point.index = index;
        point.isVisible = true;
        return point;
      }
      [_setSeriesProperties](indicator, name, color, width, chart) {
        let t3;
        let _dashArray = null;
        if (chart.onIndicatorRender != null && name !== "rangearea" && name !== "Histogram" && !name[$contains]("Line")) {
          let indicatorArgs = new charts.IndicatorRenderArgs.new();
          indicatorArgs.index = this[_index];
          indicatorArgs.indicatorname = name;
          indicatorArgs.signalLineColor = color;
          indicatorArgs.signalLineWidth = width;
          indicatorArgs.lineDashArray = indicator.dashArray;
          indicatorArgs.indicator = indicator;
          indicatorArgs.dataPoints = indicator[_dataPoints$];
          indicatorArgs.seriesName = chart.indicators[$_get](this[_index]).seriesName;
          chart.onIndicatorRender(indicatorArgs);
          color = indicatorArgs.signalLineColor;
          width = indicatorArgs.signalLineWidth;
          name = indicatorArgs.indicatorname;
          _dashArray = indicatorArgs.lineDashArray;
        }
        let series = name === "rangearea" ? new charts.RangeAreaSeries.new({name: name, color: color, dashArray: indicator.dashArray, borderWidth: width, xAxisName: indicator.xAxisName, animationDuration: indicator.animationDuration, yAxisName: indicator.yAxisName, enableTooltip: false, xValueMapper: null, highValueMapper: null, lowValueMapper: null, dataSource: null}) : name === "Histogram" ? new charts.ColumnSeries.new({name: name, color: color, width: width, xAxisName: indicator.xAxisName, animationDuration: indicator.animationDuration, yAxisName: indicator.yAxisName, xValueMapper: null, yValueMapper: null, dataSource: null}) : new charts.LineSeries.new({name: name, color: color, dashArray: (t3 = _dashArray, t3 == null ? indicator.dashArray : t3), width: width, xAxisName: indicator.xAxisName, animationDuration: indicator.animationDuration, yAxisName: indicator.yAxisName, xValueMapper: null, yValueMapper: null, dataSource: null});
        series[_visible] = indicator[_visible];
        series[_chart] = chart;
        series[_seriesType$] = name === "rangearea" ? "rangearea" : name === "Histogram" ? "column" : "line";
        series[_isIndicator] = true;
        series[_seriesName] = indicator[_name$];
        indicator[_targetSeries][$add](series);
      }
      [_setSeriesRange](points, indicator, xValues, series = null) {
        if (series == null) {
          indicator[_targetSeries][$_get](0)[_dataPoints$] = points;
          indicator[_targetSeries][$_get](0)[_xValues] = xValues;
        } else {
          series[_dataPoints$] = points;
          series[_xValues] = xValues;
        }
      }
      [_getFieldValue](point, itr, valueField) {
        let t3, t3$, t3$0, t3$1, t3$2;
        let val = null;
        if (valueField === "low")
          val = core.num._check((t3 = point[$_get](itr), t3 == null ? null : t3.low));
        else if (valueField === "high")
          val = core.num._check((t3$ = point[$_get](itr), t3$ == null ? null : t3$.high));
        else if (valueField === "open")
          val = core.num._check((t3$0 = point[$_get](itr), t3$0 == null ? null : t3$0.open));
        else if (valueField === "y")
          val = core.num._check((t3$1 = point[$_get](itr), t3$1 == null ? null : t3$1.y));
        else {
          val = core.num._check((t3$2 = point[$_get](itr), t3$2 == null ? null : t3$2.close));
        }
        val == null ? val = 0 : val;
        return val;
      }
    }
    (TechnicalIndicators.new = function(opts) {
      let t3, t3$, t3$0, t3$1, t3$2, t3$3, t3$4, t3$5;
      let isVisible = opts && 'isVisible' in opts ? opts.isVisible : null;
      let xAxisName = opts && 'xAxisName' in opts ? opts.xAxisName : null;
      let yAxisName = opts && 'yAxisName' in opts ? opts.yAxisName : null;
      let seriesName = opts && 'seriesName' in opts ? opts.seriesName : null;
      let dashArray = opts && 'dashArray' in opts ? opts.dashArray : null;
      let animationDuration = opts && 'animationDuration' in opts ? opts.animationDuration : null;
      let dataSource = opts && 'dataSource' in opts ? opts.dataSource : null;
      let xValueMapper = opts && 'xValueMapper' in opts ? opts.xValueMapper : null;
      let lowValueMapper = opts && 'lowValueMapper' in opts ? opts.lowValueMapper : null;
      let highValueMapper = opts && 'highValueMapper' in opts ? opts.highValueMapper : null;
      let openValueMapper = opts && 'openValueMapper' in opts ? opts.openValueMapper : null;
      let closeValueMapper = opts && 'closeValueMapper' in opts ? opts.closeValueMapper : null;
      let name = opts && 'name' in opts ? opts.name : null;
      let isVisibleInLegend = opts && 'isVisibleInLegend' in opts ? opts.isVisibleInLegend : null;
      let legendIconType = opts && 'legendIconType' in opts ? opts.legendIconType : null;
      let legendItemText = opts && 'legendItemText' in opts ? opts.legendItemText : null;
      let signalLineColor = opts && 'signalLineColor' in opts ? opts.signalLineColor : null;
      let signalLineWidth = opts && 'signalLineWidth' in opts ? opts.signalLineWidth : null;
      let period = opts && 'period' in opts ? opts.period : null;
      this[_name$] = null;
      this[_visible] = null;
      this[_isIndicator] = true;
      this[_seriesType$] = "indicator";
      this[_indicatorType] = null;
      this[_index] = null;
      this[_targetSeries] = JSArrayOfCartesianSeries().of([]);
      this[_dataPoints$] = JSArrayOfCartesianChartPoint().of([]);
      this[_renderPoints] = JSArrayOfCartesianChartPoint().of([]);
      this[xAxisName$1] = xAxisName;
      this[yAxisName$1] = yAxisName;
      this[seriesName$] = seriesName;
      this[dataSource$4] = dataSource;
      this[name$5] = name;
      this[legendItemText$1] = legendItemText;
      this[isVisible$7] = (t3 = isVisible, t3 == null ? true : t3);
      this[dashArray$6] = (t3$ = dashArray, t3$ == null ? JSArrayOfdouble().of([0.0, 0.0]) : t3$);
      this[animationDuration$4] = (t3$0 = animationDuration, t3$0 == null ? 1500.0 : t3$0);
      this[isVisibleInLegend$0] = (t3$1 = isVisibleInLegend, t3$1 == null ? true : t3$1);
      this[legendIconType$4] = (t3$2 = legendIconType, t3$2 == null ? charts.LegendIconType.seriesType : t3$2);
      this[signalLineColor$] = (t3$3 = signalLineColor, t3$3 == null ? colors$.Colors.blue : t3$3);
      this[signalLineWidth$] = (t3$4 = signalLineWidth, t3$4 == null ? 2.0 : t3$4);
      this[period$] = (t3$5 = period, t3$5 == null ? 14 : t3$5);
      this[xValueMapper$4] = xValueMapper != null ? dart.fn(index => xValueMapper(dataSource[$_get](index), index), intToD()) : null;
      this[lowValueMapper$0] = lowValueMapper != null ? dart.fn(index => lowValueMapper(dataSource[$_get](index), index), intTonum()) : null;
      this[highValueMapper$0] = highValueMapper != null ? dart.fn(index => highValueMapper(dataSource[$_get](index), index), intTonum()) : null;
      this[openValueMapper$0] = openValueMapper != null ? dart.fn(index => openValueMapper(dataSource[$_get](index), index), intTonum()) : null;
      this[closeValueMapper$0] = closeValueMapper != null ? dart.fn(index => closeValueMapper(dataSource[$_get](index), index), intTonum()) : null;
      ;
    }).prototype = TechnicalIndicators.prototype;
    dart.addTypeTests(TechnicalIndicators);
    TechnicalIndicators.prototype[_is_TechnicalIndicators_default] = true;
    dart.setMethodSignature(TechnicalIndicators, () => ({
      __proto__: dart.getMethods(TechnicalIndicators.__proto__),
      [_getDataPoint]: dart.fnType(charts.CartesianChartPoint, [dart.dynamic, dart.dynamic, charts.CartesianChartPoint, charts.CartesianSeries, core.num], [charts.TechnicalIndicators]),
      [_getRangePoint]: dart.fnType(charts.CartesianChartPoint, [dart.dynamic, core.num, core.num, charts.CartesianChartPoint, charts.CartesianSeries, core.int], [charts.TechnicalIndicators]),
      [_setSeriesProperties]: dart.fnType(dart.void, [charts.TechnicalIndicators, core.String, ui.Color, core.double, charts.SfCartesianChart]),
      [_setSeriesRange]: dart.fnType(dart.void, [core.List$(charts.CartesianChartPoint), charts.TechnicalIndicators, core.List], [charts.CartesianSeries]),
      [_getFieldValue]: dart.fnType(core.num, [core.List$(charts.CartesianChartPoint), core.int, core.String])
    }));
    dart.setLibraryUri(TechnicalIndicators, "package:syncfusion_flutter_charts/charts.dart");
    dart.setFieldSignature(TechnicalIndicators, () => ({
      __proto__: dart.getFields(TechnicalIndicators.__proto__),
      isVisible: dart.finalFieldType(core.bool),
      xAxisName: dart.finalFieldType(core.String),
      yAxisName: dart.finalFieldType(core.String),
      seriesName: dart.finalFieldType(core.String),
      dashArray: dart.finalFieldType(core.List$(core.double)),
      animationDuration: dart.finalFieldType(core.double),
      dataSource: dart.finalFieldType(core.List$(T)),
      xValueMapper: dart.finalFieldType(dart.fnType(D, [core.int])),
      lowValueMapper: dart.finalFieldType(dart.fnType(core.num, [core.int])),
      highValueMapper: dart.finalFieldType(dart.fnType(core.num, [core.int])),
      openValueMapper: dart.finalFieldType(dart.fnType(core.num, [core.int])),
      closeValueMapper: dart.finalFieldType(dart.fnType(core.num, [core.int])),
      name: dart.finalFieldType(core.String),
      isVisibleInLegend: dart.finalFieldType(core.bool),
      legendIconType: dart.finalFieldType(charts.LegendIconType),
      legendItemText: dart.finalFieldType(core.String),
      signalLineColor: dart.finalFieldType(ui.Color),
      signalLineWidth: dart.finalFieldType(core.double),
      period: dart.finalFieldType(core.int),
      [_name$]: dart.fieldType(core.String),
      [_visible]: dart.fieldType(core.bool),
      [_isIndicator]: dart.fieldType(core.bool),
      [_seriesType$]: dart.finalFieldType(core.String),
      [_indicatorType]: dart.fieldType(core.String),
      [_index]: dart.fieldType(core.int),
      [_targetSeries]: dart.fieldType(core.List$(charts.CartesianSeries)),
      [_dataPoints$]: dart.fieldType(core.List$(charts.CartesianChartPoint)),
      [_renderPoints]: dart.fieldType(core.List$(charts.CartesianChartPoint))
    }));
    return TechnicalIndicators;
  });
  charts.TechnicalIndicators = charts.TechnicalIndicators$();
  dart.addTypeTests(charts.TechnicalIndicators, _is_TechnicalIndicators_default);
  const _is_AccumulationDistributionIndicator_default = Symbol('_is_AccumulationDistributionIndicator_default');
  const volumeValueMapper$0 = dart.privateName(charts, "AccumulationDistributionIndicator.volumeValueMapper");
  charts.AccumulationDistributionIndicator$ = dart.generic((T, D) => {
    class AccumulationDistributionIndicator extends charts.TechnicalIndicators$(T, D) {
      get volumeValueMapper() {
        return this[volumeValueMapper$0];
      }
      set volumeValueMapper(value) {
        super.volumeValueMapper = value;
      }
      [_initSeriesCollection](indicator, chart) {
        indicator[_targetSeries] = JSArrayOfCartesianSeries().of([]);
        indicator[_setSeriesProperties](indicator, "AD", indicator.signalLineColor, indicator.signalLineWidth, chart);
      }
      [_initDataSource](indicator) {
        let validData = indicator[_dataPoints$];
        if (dart.test(validData[$isNotEmpty])) {
          this[_calculateADPoints](charts.AccumulationDistributionIndicator._check(indicator), validData);
        }
      }
      [_calculateADPoints](indicator, validData) {
        let points = JSArrayOfCartesianChartPoint().of([]);
        let xValues = [];
        let _point = null;
        let signalSeries = indicator[_targetSeries][$_get](0);
        let sum = 0;
        let i = 0;
        let value = 0;
        let high = 0;
        let low = 0;
        let close = 0;
        for (let t2 = i = 0; i < dart.notNull(validData[$length]); i = i + 1) {
          high = core.num._check(validData[$_get](dart.asInt(i)).high == null ? 0 : validData[$_get](dart.asInt(i)).high);
          low = core.num._check(validData[$_get](dart.asInt(i)).low == null ? 0 : validData[$_get](dart.asInt(i)).low);
          close = core.num._check(validData[$_get](dart.asInt(i)).close == null ? 0 : validData[$_get](dart.asInt(i)).close);
          value = (dart.notNull(close) - dart.notNull(low) - (dart.notNull(high) - dart.notNull(close))) / (dart.notNull(high) - dart.notNull(low));
          sum = sum + value * dart.notNull(validData[$_get](dart.asInt(i)).volume);
          _point = this[_getDataPoint](validData[$_get](dart.asInt(i)).x, sum, validData[$_get](dart.asInt(i)), signalSeries, points[$length]);
          points[$add](_point);
          xValues[$add](_point.x);
        }
        indicator[_renderPoints] = points;
        this[_setSeriesRange](points, indicator, xValues);
      }
    }
    (AccumulationDistributionIndicator.new = function(opts) {
      let isVisible = opts && 'isVisible' in opts ? opts.isVisible : null;
      let xAxisName = opts && 'xAxisName' in opts ? opts.xAxisName : null;
      let yAxisName = opts && 'yAxisName' in opts ? opts.yAxisName : null;
      let seriesName = opts && 'seriesName' in opts ? opts.seriesName : null;
      let dashArray = opts && 'dashArray' in opts ? opts.dashArray : null;
      let animationDuration = opts && 'animationDuration' in opts ? opts.animationDuration : null;
      let dataSource = opts && 'dataSource' in opts ? opts.dataSource : null;
      let xValueMapper = opts && 'xValueMapper' in opts ? opts.xValueMapper : null;
      let highValueMapper = opts && 'highValueMapper' in opts ? opts.highValueMapper : null;
      let lowValueMapper = opts && 'lowValueMapper' in opts ? opts.lowValueMapper : null;
      let closeValueMapper = opts && 'closeValueMapper' in opts ? opts.closeValueMapper : null;
      let volumeValueMapper = opts && 'volumeValueMapper' in opts ? opts.volumeValueMapper : null;
      let name = opts && 'name' in opts ? opts.name : null;
      let isVisibleInLegend = opts && 'isVisibleInLegend' in opts ? opts.isVisibleInLegend : null;
      let legendIconType = opts && 'legendIconType' in opts ? opts.legendIconType : null;
      let legendItemText = opts && 'legendItemText' in opts ? opts.legendItemText : null;
      let signalLineColor = opts && 'signalLineColor' in opts ? opts.signalLineColor : null;
      let signalLineWidth = opts && 'signalLineWidth' in opts ? opts.signalLineWidth : null;
      this[volumeValueMapper$0] = volumeValueMapper != null ? dart.fn(index => volumeValueMapper(dataSource[$_get](index), index), intTonum()) : null;
      AccumulationDistributionIndicator.__proto__.new.call(this, {isVisible: isVisible, xAxisName: xAxisName, yAxisName: yAxisName, seriesName: seriesName, dashArray: dashArray, animationDuration: animationDuration, dataSource: dataSource, xValueMapper: xValueMapper, highValueMapper: highValueMapper, lowValueMapper: lowValueMapper, closeValueMapper: closeValueMapper, name: name, isVisibleInLegend: isVisibleInLegend, legendIconType: legendIconType, legendItemText: legendItemText, signalLineColor: signalLineColor, signalLineWidth: signalLineWidth});
      ;
    }).prototype = AccumulationDistributionIndicator.prototype;
    dart.addTypeTests(AccumulationDistributionIndicator);
    AccumulationDistributionIndicator.prototype[_is_AccumulationDistributionIndicator_default] = true;
    dart.setMethodSignature(AccumulationDistributionIndicator, () => ({
      __proto__: dart.getMethods(AccumulationDistributionIndicator.__proto__),
      [_initSeriesCollection]: dart.fnType(dart.void, [charts.TechnicalIndicators, charts.SfCartesianChart]),
      [_initDataSource]: dart.fnType(dart.void, [charts.TechnicalIndicators]),
      [_calculateADPoints]: dart.fnType(dart.void, [charts.AccumulationDistributionIndicator, core.List$(charts.CartesianChartPoint)])
    }));
    dart.setLibraryUri(AccumulationDistributionIndicator, "package:syncfusion_flutter_charts/charts.dart");
    dart.setFieldSignature(AccumulationDistributionIndicator, () => ({
      __proto__: dart.getFields(AccumulationDistributionIndicator.__proto__),
      volumeValueMapper: dart.finalFieldType(dart.fnType(core.num, [core.int]))
    }));
    return AccumulationDistributionIndicator;
  });
  charts.AccumulationDistributionIndicator = charts.AccumulationDistributionIndicator$();
  dart.addTypeTests(charts.AccumulationDistributionIndicator, _is_AccumulationDistributionIndicator_default);
  const _calculateATRPoints = dart.privateName(charts, "_calculateATRPoints");
  const _is_AtrIndicator_default = Symbol('_is_AtrIndicator_default');
  charts.AtrIndicator$ = dart.generic((T, D) => {
    class AtrIndicator extends charts.TechnicalIndicators$(T, D) {
      [_initSeriesCollection](indicator, chart) {
        indicator[_targetSeries] = JSArrayOfCartesianSeries().of([]);
        indicator[_setSeriesProperties](indicator, "ATR", indicator.signalLineColor, indicator.signalLineWidth, chart);
      }
      [_initDataSource](indicator) {
        let validData = indicator[_dataPoints$];
        if (dart.test(validData[$isNotEmpty]) && dart.notNull(validData[$length]) > dart.notNull(indicator.period)) {
          this[_calculateATRPoints](charts.AtrIndicator._check(indicator), validData);
        }
      }
      [_calculateATRPoints](indicator, validData) {
        let t3, t3$;
        let average = 0;
        let highLow = 0;
        let highClose = 0;
        let lowClose = 0;
        let trueRange = 0;
        let tempRange = 0;
        let points = JSArrayOfCartesianChartPoint().of([]);
        let xValues = [];
        let _point = null;
        let temp = JSArrayOf_TempData().of([]);
        let period = indicator.period;
        let sum = 0;
        let signalSeries = indicator[_targetSeries][$_get](0);
        for (let i = 0; i < dart.notNull(validData[$length]); i = i + 1) {
          if (!dart.test(validData[$_get](i).isDrop) && !dart.test(validData[$_get](i).isGap)) {
            highLow = core.num._check(dart.dsend(validData[$_get](i).high, '-', [validData[$_get](i).low]));
            if (i > 0) {
              highClose = core.num._check(dart.dsend(dart.dsend(validData[$_get](i).high, '-', [(t3 = validData[$_get](i - 1).close, t3 == null ? 0 : t3)]), 'abs', []));
              lowClose = core.num._check(dart.dsend(dart.dsend(validData[$_get](i).low, '-', [(t3$ = validData[$_get](i - 1).close, t3$ == null ? 0 : t3$)]), 'abs', []));
            }
            tempRange = math.max(core.num, highLow, highClose);
            trueRange = math.max(core.num, tempRange, lowClose);
            sum = sum + trueRange;
            if (i >= dart.notNull(period) && dart.notNull(period) > 0) {
              average = core.num._check(dart.dsend(dart.dsend(dart.dsend(temp[$_get](dart.notNull(temp[$length]) - 1).y, '*', [dart.notNull(period) - 1]), '+', [trueRange]), '/', [period]));
              _point = this[_getDataPoint](validData[$_get](i).x, average, validData[$_get](i), signalSeries, points[$length]);
              points[$add](_point);
              xValues[$add](_point.x);
            } else {
              average = sum / dart.notNull(period);
              if (i === dart.notNull(period) - 1) {
                _point = this[_getDataPoint](validData[$_get](i).x, average, validData[$_get](i), signalSeries, points[$length]);
                points[$add](_point);
                xValues[$add](_point.x);
              }
            }
            temp[$add](new charts._TempData.new(validData[$_get](i).x, average));
          }
        }
        indicator[_renderPoints] = points;
        this[_setSeriesRange](points, indicator, xValues);
      }
    }
    (AtrIndicator.new = function(opts) {
      let isVisible = opts && 'isVisible' in opts ? opts.isVisible : null;
      let xAxisName = opts && 'xAxisName' in opts ? opts.xAxisName : null;
      let yAxisName = opts && 'yAxisName' in opts ? opts.yAxisName : null;
      let seriesName = opts && 'seriesName' in opts ? opts.seriesName : null;
      let dashArray = opts && 'dashArray' in opts ? opts.dashArray : null;
      let animationDuration = opts && 'animationDuration' in opts ? opts.animationDuration : null;
      let dataSource = opts && 'dataSource' in opts ? opts.dataSource : null;
      let xValueMapper = opts && 'xValueMapper' in opts ? opts.xValueMapper : null;
      let highValueMapper = opts && 'highValueMapper' in opts ? opts.highValueMapper : null;
      let lowValueMapper = opts && 'lowValueMapper' in opts ? opts.lowValueMapper : null;
      let closeValueMapper = opts && 'closeValueMapper' in opts ? opts.closeValueMapper : null;
      let name = opts && 'name' in opts ? opts.name : null;
      let isVisibleInLegend = opts && 'isVisibleInLegend' in opts ? opts.isVisibleInLegend : null;
      let legendIconType = opts && 'legendIconType' in opts ? opts.legendIconType : null;
      let legendItemText = opts && 'legendItemText' in opts ? opts.legendItemText : null;
      let signalLineColor = opts && 'signalLineColor' in opts ? opts.signalLineColor : null;
      let signalLineWidth = opts && 'signalLineWidth' in opts ? opts.signalLineWidth : null;
      let period = opts && 'period' in opts ? opts.period : null;
      AtrIndicator.__proto__.new.call(this, {isVisible: isVisible, xAxisName: xAxisName, yAxisName: yAxisName, seriesName: seriesName, dashArray: dashArray, animationDuration: animationDuration, dataSource: dataSource, xValueMapper: xValueMapper, highValueMapper: highValueMapper, lowValueMapper: lowValueMapper, closeValueMapper: closeValueMapper, name: name, isVisibleInLegend: isVisibleInLegend, legendIconType: legendIconType, legendItemText: legendItemText, signalLineColor: signalLineColor, signalLineWidth: signalLineWidth, period: period});
      ;
    }).prototype = AtrIndicator.prototype;
    dart.addTypeTests(AtrIndicator);
    AtrIndicator.prototype[_is_AtrIndicator_default] = true;
    dart.setMethodSignature(AtrIndicator, () => ({
      __proto__: dart.getMethods(AtrIndicator.__proto__),
      [_initSeriesCollection]: dart.fnType(dart.void, [charts.TechnicalIndicators, charts.SfCartesianChart]),
      [_initDataSource]: dart.fnType(dart.void, [charts.TechnicalIndicators]),
      [_calculateATRPoints]: dart.fnType(dart.void, [charts.AtrIndicator, core.List$(charts.CartesianChartPoint)])
    }));
    dart.setLibraryUri(AtrIndicator, "package:syncfusion_flutter_charts/charts.dart");
    return AtrIndicator;
  });
  charts.AtrIndicator = charts.AtrIndicator$();
  dart.addTypeTests(charts.AtrIndicator, _is_AtrIndicator_default);
  charts._TempData = class _TempData extends core.Object {};
  (charts._TempData.new = function(x, y) {
    this.x = x;
    this.y = y;
    ;
  }).prototype = charts._TempData.prototype;
  dart.addTypeTests(charts._TempData);
  dart.setLibraryUri(charts._TempData, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._TempData, () => ({
    __proto__: dart.getFields(charts._TempData.__proto__),
    x: dart.finalFieldType(dart.dynamic),
    y: dart.finalFieldType(dart.dynamic)
  }));
  const _is_BollingerBandIndicator_default = Symbol('_is_BollingerBandIndicator_default');
  const standardDeviation$ = dart.privateName(charts, "BollingerBandIndicator.standardDeviation");
  const upperLineColor$ = dart.privateName(charts, "BollingerBandIndicator.upperLineColor");
  const upperLineWidth$ = dart.privateName(charts, "BollingerBandIndicator.upperLineWidth");
  const lowerLineColor$ = dart.privateName(charts, "BollingerBandIndicator.lowerLineColor");
  const lowerLineWidth$ = dart.privateName(charts, "BollingerBandIndicator.lowerLineWidth");
  const bandColor$ = dart.privateName(charts, "BollingerBandIndicator.bandColor");
  charts.BollingerBandIndicator$ = dart.generic((T, D) => {
    class BollingerBandIndicator extends charts.TechnicalIndicators$(T, D) {
      get standardDeviation() {
        return this[standardDeviation$];
      }
      set standardDeviation(value) {
        super.standardDeviation = value;
      }
      get upperLineColor() {
        return this[upperLineColor$];
      }
      set upperLineColor(value) {
        super.upperLineColor = value;
      }
      get upperLineWidth() {
        return this[upperLineWidth$];
      }
      set upperLineWidth(value) {
        super.upperLineWidth = value;
      }
      get lowerLineColor() {
        return this[lowerLineColor$];
      }
      set lowerLineColor(value) {
        super.lowerLineColor = value;
      }
      get lowerLineWidth() {
        return this[lowerLineWidth$];
      }
      set lowerLineWidth(value) {
        super.lowerLineWidth = value;
      }
      get bandColor() {
        return this[bandColor$];
      }
      set bandColor(value) {
        super.bandColor = value;
      }
      [_initSeriesCollection](indicator, chart) {
        indicator[_targetSeries] = JSArrayOfCartesianSeries().of([]);
        if (!dart.equals(indicator.bandColor, colors$.Colors.transparent) && indicator.bandColor != null) {
          this[_setSeriesProperties](indicator, "rangearea", indicator.bandColor, 0.0, chart);
        }
        this[_setSeriesProperties](indicator, "BollingerBand", indicator.signalLineColor, indicator.signalLineWidth, chart);
        this[_setSeriesProperties](indicator, "UpperLine", indicator.upperLineColor, indicator.upperLineWidth, chart);
        this[_setSeriesProperties](indicator, "LowerLine", indicator.lowerLineColor, indicator.lowerLineWidth, chart);
      }
      [_initDataSource](indicator) {
        let enableBand = !dart.equals(indicator.bandColor, colors$.Colors.transparent) && indicator.bandColor != null;
        let start = enableBand ? 1 : 0;
        let signalCollection = JSArrayOfCartesianChartPoint().of([]);
        let upperCollection = JSArrayOfCartesianChartPoint().of([]);
        let lowerCollection = JSArrayOfCartesianChartPoint().of([]);
        let bandCollection = JSArrayOfCartesianChartPoint().of([]);
        let upperSeries = indicator[_targetSeries][$_get](dart.asInt(start + 1));
        let lowerSeries = indicator[_targetSeries][$_get](dart.asInt(start + 2));
        let signalSeries = indicator[_targetSeries][$_get](dart.asInt(start));
        let rangeAreaSeries = enableBand ? indicator[_targetSeries][$_get](0) : null;
        let xValues = [];
        let validData = indicator[_dataPoints$];
        if (dart.test(validData[$isNotEmpty]) && dart.notNull(validData[$length]) >= dart.notNull(indicator.period) && dart.notNull(indicator.period) > 0) {
          let sum = 0;
          let deviationSum = 0;
          let multiplier = indicator.standardDeviation;
          let limit = validData[$length];
          let length = indicator.period[$round]();
          let smaPoints = ListOfnum().new(dart.asInt(limit));
          let deviations = ListOfnum().new(dart.asInt(limit));
          let bollingerPoints = ListOf_BollingerData().new(dart.asInt(limit));
          for (let i = 0; i < length; i = i + 1) {
            sum = sum + dart.notNull(core.num._check(validData[$_get](i).close == null ? 0 : validData[$_get](i).close));
          }
          let sma = sum / dart.notNull(indicator.period);
          for (let i = 0; i < dart.notNull(limit); i = i + 1) {
            let y = core.num._check(validData[$_get](i).close == null ? 0 : validData[$_get](i).close);
            if (i >= length - 1 && i < dart.notNull(limit)) {
              if (i - dart.notNull(indicator.period) >= 0) {
                let diff = dart.notNull(y) - dart.notNull(core.num._check(validData[$_get](dart.asInt(i - length)).close));
                sum = sum + diff;
                sma = sum / dart.notNull(indicator.period);
                smaPoints[$_set](i, sma);
                deviations[$_set](i, math.pow(dart.notNull(y) - sma, 2));
                deviationSum = deviationSum + (dart.notNull(deviations[$_get](i)) - dart.notNull(deviations[$_get](dart.asInt(i - length))));
              } else {
                smaPoints[$_set](i, sma);
                deviations[$_set](i, math.pow(dart.notNull(y) - sma, 2));
                deviationSum = deviationSum + dart.notNull(deviations[$_get](i));
              }
              let range = math.sqrt(deviationSum / dart.notNull(indicator.period));
              let lowerBand = dart.notNull(smaPoints[$_get](i)) - dart.notNull(multiplier) * range;
              let upperBand = dart.notNull(smaPoints[$_get](i)) + dart.notNull(multiplier) * range;
              if (i + 1 === length) {
                for (let j = 0; j < length - 1; j = j + 1) {
                  bollingerPoints[$_set](j, new charts._BollingerData.new({x: core.num._check(validData[$_get](j).xValue), midBand: smaPoints[$_get](i), lowBand: lowerBand, upBand: upperBand, visible: true}));
                }
              }
              bollingerPoints[$_set](i, new charts._BollingerData.new({x: core.num._check(validData[$_get](i).xValue), midBand: smaPoints[$_get](i), lowBand: lowerBand, upBand: upperBand, visible: true}));
            } else {
              if (i < dart.notNull(indicator.period) - 1) {
                smaPoints[$_set](i, sma);
                deviations[$_set](i, math.pow(dart.notNull(y) - sma, 2));
                deviationSum = deviationSum + dart.notNull(deviations[$_get](i));
              }
            }
          }
          let i = -1;
          let j = -1;
          for (let k = 0; k < dart.notNull(limit); k = k + 1) {
            if (k >= length - 1) {
              xValues[$add](validData[$_get](k).x);
              upperCollection[$add](this[_getDataPoint](validData[$_get](k).x, bollingerPoints[$_get](k).upBand, validData[$_get](k), upperSeries, upperCollection[$length]));
              lowerCollection[$add](this[_getDataPoint](validData[$_get](k).x, bollingerPoints[$_get](k).lowBand, validData[$_get](k), lowerSeries, lowerCollection[$length]));
              signalCollection[$add](this[_getDataPoint](validData[$_get](k).x, bollingerPoints[$_get](k).midBand, validData[$_get](k), signalSeries, signalCollection[$length]));
              if (enableBand) {
                bandCollection[$add](this[_getRangePoint](validData[$_get](k).x, core.num._check(upperCollection[$_get](i = i + 1).y), core.num._check(lowerCollection[$_get](j = j + 1).y), validData[$_get](k), rangeAreaSeries, bandCollection[$length]));
              }
            }
          }
        }
        indicator[_renderPoints] = signalCollection;
        if (enableBand) {
          this[_setSeriesRange](bandCollection, indicator, xValues, indicator[_targetSeries][$_get](0));
        }
        this[_setSeriesRange](signalCollection, indicator, xValues, indicator[_targetSeries][$_get](dart.asInt(start)));
        this[_setSeriesRange](upperCollection, indicator, xValues, indicator[_targetSeries][$_get](dart.asInt(start + 1)));
        this[_setSeriesRange](lowerCollection, indicator, xValues, indicator[_targetSeries][$_get](dart.asInt(start + 2)));
      }
    }
    (BollingerBandIndicator.new = function(opts) {
      let t3, t3$, t3$0, t3$1, t3$2, t3$3;
      let isVisible = opts && 'isVisible' in opts ? opts.isVisible : null;
      let xAxisName = opts && 'xAxisName' in opts ? opts.xAxisName : null;
      let yAxisName = opts && 'yAxisName' in opts ? opts.yAxisName : null;
      let seriesName = opts && 'seriesName' in opts ? opts.seriesName : null;
      let dashArray = opts && 'dashArray' in opts ? opts.dashArray : null;
      let animationDuration = opts && 'animationDuration' in opts ? opts.animationDuration : null;
      let dataSource = opts && 'dataSource' in opts ? opts.dataSource : null;
      let xValueMapper = opts && 'xValueMapper' in opts ? opts.xValueMapper : null;
      let closeValueMapper = opts && 'closeValueMapper' in opts ? opts.closeValueMapper : null;
      let name = opts && 'name' in opts ? opts.name : null;
      let isVisibleInLegend = opts && 'isVisibleInLegend' in opts ? opts.isVisibleInLegend : null;
      let legendIconType = opts && 'legendIconType' in opts ? opts.legendIconType : null;
      let legendItemText = opts && 'legendItemText' in opts ? opts.legendItemText : null;
      let signalLineColor = opts && 'signalLineColor' in opts ? opts.signalLineColor : null;
      let signalLineWidth = opts && 'signalLineWidth' in opts ? opts.signalLineWidth : null;
      let period = opts && 'period' in opts ? opts.period : null;
      let standardDeviation = opts && 'standardDeviation' in opts ? opts.standardDeviation : null;
      let upperLineColor = opts && 'upperLineColor' in opts ? opts.upperLineColor : null;
      let upperLineWidth = opts && 'upperLineWidth' in opts ? opts.upperLineWidth : null;
      let lowerLineColor = opts && 'lowerLineColor' in opts ? opts.lowerLineColor : null;
      let lowerLineWidth = opts && 'lowerLineWidth' in opts ? opts.lowerLineWidth : null;
      let bandColor = opts && 'bandColor' in opts ? opts.bandColor : null;
      this[standardDeviation$] = (t3 = standardDeviation, t3 == null ? 2 : t3);
      this[upperLineColor$] = (t3$ = upperLineColor, t3$ == null ? colors$.Colors.red : t3$);
      this[upperLineWidth$] = (t3$0 = upperLineWidth, t3$0 == null ? 2.0 : t3$0);
      this[lowerLineColor$] = (t3$1 = lowerLineColor, t3$1 == null ? colors$.Colors.green : t3$1);
      this[lowerLineWidth$] = (t3$2 = lowerLineWidth, t3$2 == null ? 2.0 : t3$2);
      this[bandColor$] = (t3$3 = bandColor, t3$3 == null ? colors$.Colors.grey.withOpacity(0.25) : t3$3);
      BollingerBandIndicator.__proto__.new.call(this, {isVisible: isVisible, xAxisName: xAxisName, yAxisName: yAxisName, seriesName: seriesName, dashArray: dashArray, animationDuration: animationDuration, dataSource: dataSource, xValueMapper: xValueMapper, closeValueMapper: closeValueMapper, name: name, isVisibleInLegend: isVisibleInLegend, legendIconType: legendIconType, legendItemText: legendItemText, signalLineColor: signalLineColor, signalLineWidth: signalLineWidth, period: period});
      ;
    }).prototype = BollingerBandIndicator.prototype;
    dart.addTypeTests(BollingerBandIndicator);
    BollingerBandIndicator.prototype[_is_BollingerBandIndicator_default] = true;
    dart.setMethodSignature(BollingerBandIndicator, () => ({
      __proto__: dart.getMethods(BollingerBandIndicator.__proto__),
      [_initSeriesCollection]: dart.fnType(dart.void, [charts.BollingerBandIndicator, charts.SfCartesianChart]),
      [_initDataSource]: dart.fnType(dart.void, [charts.BollingerBandIndicator])
    }));
    dart.setLibraryUri(BollingerBandIndicator, "package:syncfusion_flutter_charts/charts.dart");
    dart.setFieldSignature(BollingerBandIndicator, () => ({
      __proto__: dart.getFields(BollingerBandIndicator.__proto__),
      standardDeviation: dart.finalFieldType(core.int),
      upperLineColor: dart.finalFieldType(ui.Color),
      upperLineWidth: dart.finalFieldType(core.double),
      lowerLineColor: dart.finalFieldType(ui.Color),
      lowerLineWidth: dart.finalFieldType(core.double),
      bandColor: dart.finalFieldType(ui.Color)
    }));
    return BollingerBandIndicator;
  });
  charts.BollingerBandIndicator = charts.BollingerBandIndicator$();
  dart.addTypeTests(charts.BollingerBandIndicator, _is_BollingerBandIndicator_default);
  charts._BollingerData = class _BollingerData extends core.Object {};
  (charts._BollingerData.new = function(opts) {
    let x = opts && 'x' in opts ? opts.x : null;
    let midBand = opts && 'midBand' in opts ? opts.midBand : null;
    let lowBand = opts && 'lowBand' in opts ? opts.lowBand : null;
    let upBand = opts && 'upBand' in opts ? opts.upBand : null;
    let visible = opts && 'visible' in opts ? opts.visible : null;
    this.x = x;
    this.midBand = midBand;
    this.lowBand = lowBand;
    this.upBand = upBand;
    this.visible = visible;
    ;
  }).prototype = charts._BollingerData.prototype;
  dart.addTypeTests(charts._BollingerData);
  dart.setLibraryUri(charts._BollingerData, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._BollingerData, () => ({
    __proto__: dart.getFields(charts._BollingerData.__proto__),
    x: dart.fieldType(core.num),
    midBand: dart.fieldType(core.num),
    lowBand: dart.fieldType(core.num),
    upBand: dart.fieldType(core.num),
    visible: dart.fieldType(core.bool)
  }));
  const _calculateEMAPoints = dart.privateName(charts, "_calculateEMAPoints");
  const _is_EmaIndicator_default = Symbol('_is_EmaIndicator_default');
  const valueField$ = dart.privateName(charts, "EmaIndicator.valueField");
  charts.EmaIndicator$ = dart.generic((T, D) => {
    class EmaIndicator extends charts.TechnicalIndicators$(T, D) {
      get valueField() {
        return this[valueField$];
      }
      set valueField(value) {
        super.valueField = value;
      }
      [_initSeriesCollection](indicator, chart) {
        indicator[_targetSeries] = JSArrayOfCartesianSeries().of([]);
        indicator[_setSeriesProperties](indicator, "EMA", indicator.signalLineColor, indicator.signalLineWidth, chart);
      }
      [_initDataSource](indicator) {
        let validData = indicator[_dataPoints$];
        if (dart.test(validData[$isNotEmpty]) && dart.notNull(validData[$length]) > dart.notNull(indicator.period) && dart.notNull(indicator.period) > 0) {
          this[_calculateEMAPoints](charts.EmaIndicator._check(indicator), validData);
        }
      }
      [_calculateEMAPoints](indicator, validData) {
        let signalSeries = indicator[_targetSeries][$_get](0);
        let period = indicator.period;
        let points = JSArrayOfCartesianChartPoint().of([]);
        let xValues = [];
        let _point = null;
        if (dart.notNull(validData[$length]) >= dart.notNull(period) && dart.notNull(period) > 0) {
          let sum = 0;
          let average = 0;
          let k = 2 / (dart.notNull(period) + 1);
          for (let i = 0; i < dart.notNull(period); i = i + 1) {
            sum = sum + dart.notNull(this[_getFieldValue](validData, i, this.valueField));
          }
          average = sum / dart.notNull(period);
          _point = this[_getDataPoint](validData[$_get](dart.asInt(dart.notNull(period) - 1)).x, average, validData[$_get](dart.asInt(dart.notNull(period) - 1)), signalSeries, points[$length]);
          points[$add](_point);
          xValues[$add](_point.x);
          let index = period;
          while (dart.notNull(index) < dart.notNull(validData[$length])) {
            if (dart.test(validData[$_get](dart.asInt(index)).isVisible) || dart.equals(validData[$_get](dart.asInt(index)).isGap, true) || dart.equals(validData[$_get](dart.asInt(index)).isDrop, true)) {
              let prevAverage = core.num._check(points[$_get](dart.asInt(dart.notNull(index) - dart.notNull(period))).y);
              let yValue = (dart.notNull(this[_getFieldValue](validData, dart.asInt(index), this.valueField)) - dart.notNull(prevAverage)) * k + dart.notNull(prevAverage);
              _point = this[_getDataPoint](validData[$_get](dart.asInt(index)).x, yValue, validData[$_get](dart.asInt(index)), signalSeries, points[$length]);
              points[$add](_point);
              xValues[$add](_point.x);
            }
            index = dart.notNull(index) + 1;
          }
        }
        indicator[_renderPoints] = points;
        this[_setSeriesRange](points, indicator, xValues);
      }
    }
    (EmaIndicator.new = function(opts) {
      let t3;
      let isVisible = opts && 'isVisible' in opts ? opts.isVisible : null;
      let xAxisName = opts && 'xAxisName' in opts ? opts.xAxisName : null;
      let yAxisName = opts && 'yAxisName' in opts ? opts.yAxisName : null;
      let seriesName = opts && 'seriesName' in opts ? opts.seriesName : null;
      let dashArray = opts && 'dashArray' in opts ? opts.dashArray : null;
      let animationDuration = opts && 'animationDuration' in opts ? opts.animationDuration : null;
      let dataSource = opts && 'dataSource' in opts ? opts.dataSource : null;
      let xValueMapper = opts && 'xValueMapper' in opts ? opts.xValueMapper : null;
      let highValueMapper = opts && 'highValueMapper' in opts ? opts.highValueMapper : null;
      let lowValueMapper = opts && 'lowValueMapper' in opts ? opts.lowValueMapper : null;
      let openValueMapper = opts && 'openValueMapper' in opts ? opts.openValueMapper : null;
      let closeValueMapper = opts && 'closeValueMapper' in opts ? opts.closeValueMapper : null;
      let name = opts && 'name' in opts ? opts.name : null;
      let isVisibleInLegend = opts && 'isVisibleInLegend' in opts ? opts.isVisibleInLegend : null;
      let legendIconType = opts && 'legendIconType' in opts ? opts.legendIconType : null;
      let legendItemText = opts && 'legendItemText' in opts ? opts.legendItemText : null;
      let signalLineColor = opts && 'signalLineColor' in opts ? opts.signalLineColor : null;
      let signalLineWidth = opts && 'signalLineWidth' in opts ? opts.signalLineWidth : null;
      let period = opts && 'period' in opts ? opts.period : null;
      let valueField = opts && 'valueField' in opts ? opts.valueField : null;
      this[valueField$] = (t3 = valueField, t3 == null ? "close" : t3)[$toLowerCase]();
      EmaIndicator.__proto__.new.call(this, {isVisible: isVisible, xAxisName: xAxisName, yAxisName: yAxisName, seriesName: seriesName, dashArray: dashArray, animationDuration: animationDuration, dataSource: dataSource, xValueMapper: xValueMapper, highValueMapper: highValueMapper, lowValueMapper: lowValueMapper, openValueMapper: openValueMapper, closeValueMapper: closeValueMapper, name: name, isVisibleInLegend: isVisibleInLegend, legendIconType: legendIconType, legendItemText: legendItemText, signalLineColor: signalLineColor, signalLineWidth: signalLineWidth, period: period});
      ;
    }).prototype = EmaIndicator.prototype;
    dart.addTypeTests(EmaIndicator);
    EmaIndicator.prototype[_is_EmaIndicator_default] = true;
    dart.setMethodSignature(EmaIndicator, () => ({
      __proto__: dart.getMethods(EmaIndicator.__proto__),
      [_initSeriesCollection]: dart.fnType(dart.void, [charts.TechnicalIndicators, charts.SfCartesianChart]),
      [_initDataSource]: dart.fnType(dart.void, [charts.TechnicalIndicators]),
      [_calculateEMAPoints]: dart.fnType(dart.void, [charts.EmaIndicator, core.List$(charts.CartesianChartPoint)])
    }));
    dart.setLibraryUri(EmaIndicator, "package:syncfusion_flutter_charts/charts.dart");
    dart.setFieldSignature(EmaIndicator, () => ({
      __proto__: dart.getFields(EmaIndicator.__proto__),
      valueField: dart.finalFieldType(core.String)
    }));
    return EmaIndicator;
  });
  charts.EmaIndicator = charts.EmaIndicator$();
  dart.addTypeTests(charts.EmaIndicator, _is_EmaIndicator_default);
  const _calculateTMAPoints = dart.privateName(charts, "_calculateTMAPoints");
  const _splice = dart.privateName(charts, "_splice");
  const _is_TmaIndicator_default = Symbol('_is_TmaIndicator_default');
  const valueField$0 = dart.privateName(charts, "TmaIndicator.valueField");
  charts.TmaIndicator$ = dart.generic((T, D) => {
    class TmaIndicator extends charts.TechnicalIndicators$(T, D) {
      get valueField() {
        return this[valueField$0];
      }
      set valueField(value) {
        super.valueField = value;
      }
      [_initSeriesCollection](indicator, chart) {
        indicator[_targetSeries] = JSArrayOfCartesianSeries().of([]);
        indicator[_setSeriesProperties](indicator, "TMA", indicator.signalLineColor, indicator.signalLineWidth, chart);
      }
      [_initDataSource](indicator) {
        let validData = indicator[_dataPoints$];
        if (dart.test(validData[$isNotEmpty]) && dart.notNull(validData[$length]) > dart.notNull(indicator.period)) {
          this[_calculateTMAPoints](charts.TmaIndicator._check(indicator), validData);
        }
      }
      [_calculateTMAPoints](indicator, validData) {
        let period = indicator.period;
        let points = JSArrayOfCartesianChartPoint().of([]);
        let xValues = [];
        let _point = null;
        if (dart.test(validData[$isNotEmpty]) && dart.notNull(validData[$length]) >= dart.notNull(indicator.period) && dart.notNull(period) > 0) {
          let signalSeries = indicator[_targetSeries][$_get](0);
          if (dart.test(validData[$isNotEmpty]) && dart.notNull(validData[$length]) >= dart.notNull(period)) {
            let sum = 0;
            let index = 0;
            let smaValues = JSArrayOfnum().of([]);
            let length = validData[$length];
            while (dart.notNull(length) >= dart.notNull(period)) {
              sum = 0;
              index = dart.notNull(validData[$length]) - dart.notNull(length);
              for (let j = index; dart.notNull(j) < dart.notNull(index) + dart.notNull(period); j = dart.notNull(j) + 1) {
                sum = sum + dart.notNull(this[_getFieldValue](validData, dart.asInt(j), this.valueField));
              }
              sum = sum / dart.notNull(period);
              smaValues[$add](sum);
              length = dart.notNull(length) - 1;
            }
            for (let k = 0; k < dart.notNull(period) - 1; k = k + 1) {
              sum = 0;
              for (let j = 0; j < k + 1; j = j + 1) {
                sum = sum + dart.notNull(this[_getFieldValue](validData, dart.asInt(j), this.valueField));
              }
              sum = sum / (k + 1);
              smaValues = this[_splice](core.num, smaValues, dart.asInt(k), 0, sum);
            }
            index = indicator.period;
            while (dart.notNull(index) <= dart.notNull(smaValues[$length])) {
              sum = 0;
              for (let j = dart.notNull(index) - dart.notNull(indicator.period); j < dart.notNull(index); j = j + 1) {
                sum = sum + dart.notNull(smaValues[$_get](dart.asInt(j)));
              }
              sum = sum / dart.notNull(indicator.period);
              _point = this[_getDataPoint](validData[$_get](dart.asInt(dart.notNull(index) - 1)).x, sum, validData[$_get](dart.asInt(dart.notNull(index) - 1)), signalSeries, points[$length]);
              points[$add](_point);
              xValues[$add](_point.x);
              index = dart.notNull(index) + 1;
            }
          }
        }
        indicator[_renderPoints] = points;
        this[_setSeriesRange](points, indicator, xValues);
      }
      [_splice](num, list, index, howMany = null, elements = null) {
        if (elements != null) {
          list[$insertAll](index, _interceptors.JSArray$(num).of([elements]));
        }
        return list;
      }
    }
    (TmaIndicator.new = function(opts) {
      let t3;
      let isVisible = opts && 'isVisible' in opts ? opts.isVisible : null;
      let xAxisName = opts && 'xAxisName' in opts ? opts.xAxisName : null;
      let yAxisName = opts && 'yAxisName' in opts ? opts.yAxisName : null;
      let seriesName = opts && 'seriesName' in opts ? opts.seriesName : null;
      let dashArray = opts && 'dashArray' in opts ? opts.dashArray : null;
      let animationDuration = opts && 'animationDuration' in opts ? opts.animationDuration : null;
      let dataSource = opts && 'dataSource' in opts ? opts.dataSource : null;
      let xValueMapper = opts && 'xValueMapper' in opts ? opts.xValueMapper : null;
      let highValueMapper = opts && 'highValueMapper' in opts ? opts.highValueMapper : null;
      let lowValueMapper = opts && 'lowValueMapper' in opts ? opts.lowValueMapper : null;
      let openValueMapper = opts && 'openValueMapper' in opts ? opts.openValueMapper : null;
      let closeValueMapper = opts && 'closeValueMapper' in opts ? opts.closeValueMapper : null;
      let name = opts && 'name' in opts ? opts.name : null;
      let isVisibleInLegend = opts && 'isVisibleInLegend' in opts ? opts.isVisibleInLegend : null;
      let legendIconType = opts && 'legendIconType' in opts ? opts.legendIconType : null;
      let legendItemText = opts && 'legendItemText' in opts ? opts.legendItemText : null;
      let signalLineColor = opts && 'signalLineColor' in opts ? opts.signalLineColor : null;
      let signalLineWidth = opts && 'signalLineWidth' in opts ? opts.signalLineWidth : null;
      let period = opts && 'period' in opts ? opts.period : null;
      let valueField = opts && 'valueField' in opts ? opts.valueField : null;
      this[valueField$0] = (t3 = valueField, t3 == null ? "close" : t3)[$toLowerCase]();
      TmaIndicator.__proto__.new.call(this, {isVisible: isVisible, xAxisName: xAxisName, yAxisName: yAxisName, seriesName: seriesName, dashArray: dashArray, animationDuration: animationDuration, dataSource: dataSource, xValueMapper: xValueMapper, highValueMapper: highValueMapper, lowValueMapper: lowValueMapper, openValueMapper: openValueMapper, closeValueMapper: closeValueMapper, name: name, isVisibleInLegend: isVisibleInLegend, legendIconType: legendIconType, legendItemText: legendItemText, signalLineColor: signalLineColor, signalLineWidth: signalLineWidth, period: period});
      ;
    }).prototype = TmaIndicator.prototype;
    dart.addTypeTests(TmaIndicator);
    TmaIndicator.prototype[_is_TmaIndicator_default] = true;
    dart.setMethodSignature(TmaIndicator, () => ({
      __proto__: dart.getMethods(TmaIndicator.__proto__),
      [_initSeriesCollection]: dart.fnType(dart.void, [charts.TechnicalIndicators, charts.SfCartesianChart]),
      [_initDataSource]: dart.fnType(dart.void, [charts.TechnicalIndicators]),
      [_calculateTMAPoints]: dart.fnType(dart.void, [charts.TmaIndicator, core.List$(charts.CartesianChartPoint)]),
      [_splice]: dart.gFnType(num => [core.List$(num), [core.List$(num), core.int], [num, num]])
    }));
    dart.setLibraryUri(TmaIndicator, "package:syncfusion_flutter_charts/charts.dart");
    dart.setFieldSignature(TmaIndicator, () => ({
      __proto__: dart.getFields(TmaIndicator.__proto__),
      valueField: dart.finalFieldType(core.String)
    }));
    return TmaIndicator;
  });
  charts.TmaIndicator = charts.TmaIndicator$();
  dart.addTypeTests(charts.TmaIndicator, _is_TmaIndicator_default);
  const _is_RsiIndicator_default = Symbol('_is_RsiIndicator_default');
  const showZones$ = dart.privateName(charts, "RsiIndicator.showZones");
  const overbought$ = dart.privateName(charts, "RsiIndicator.overbought");
  const oversold$ = dart.privateName(charts, "RsiIndicator.oversold");
  const upperLineColor$0 = dart.privateName(charts, "RsiIndicator.upperLineColor");
  const upperLineWidth$0 = dart.privateName(charts, "RsiIndicator.upperLineWidth");
  const lowerLineColor$0 = dart.privateName(charts, "RsiIndicator.lowerLineColor");
  const lowerLineWidth$0 = dart.privateName(charts, "RsiIndicator.lowerLineWidth");
  charts.RsiIndicator$ = dart.generic((T, D) => {
    class RsiIndicator extends charts.TechnicalIndicators$(T, D) {
      get showZones() {
        return this[showZones$];
      }
      set showZones(value) {
        super.showZones = value;
      }
      get overbought() {
        return this[overbought$];
      }
      set overbought(value) {
        super.overbought = value;
      }
      get oversold() {
        return this[oversold$];
      }
      set oversold(value) {
        super.oversold = value;
      }
      get upperLineColor() {
        return this[upperLineColor$0];
      }
      set upperLineColor(value) {
        super.upperLineColor = value;
      }
      get upperLineWidth() {
        return this[upperLineWidth$0];
      }
      set upperLineWidth(value) {
        super.upperLineWidth = value;
      }
      get lowerLineColor() {
        return this[lowerLineColor$0];
      }
      set lowerLineColor(value) {
        super.lowerLineColor = value;
      }
      get lowerLineWidth() {
        return this[lowerLineWidth$0];
      }
      set lowerLineWidth(value) {
        super.lowerLineWidth = value;
      }
      [_initSeriesCollection](indicator, chart) {
        indicator[_targetSeries] = JSArrayOfCartesianSeries().of([]);
        indicator[_setSeriesProperties](indicator, "RSI", indicator.signalLineColor, indicator.signalLineWidth, chart);
        if (dart.equals(indicator.showZones, true)) {
          this[_setSeriesProperties](indicator, "UpperLine", indicator.upperLineColor, indicator.upperLineWidth, chart);
          this[_setSeriesProperties](indicator, "LowerLine", indicator.lowerLineColor, indicator.lowerLineWidth, chart);
        }
      }
      [_initDataSource](indicator) {
        let signalCollection = JSArrayOfCartesianChartPoint().of([]);
        let lowerCollection = JSArrayOfCartesianChartPoint().of([]);
        let upperCollection = JSArrayOfCartesianChartPoint().of([]);
        let signalSeries = indicator[_targetSeries][$_get](0);
        let validData = indicator[_dataPoints$];
        let xValues = [];
        let signalXValues = [];
        if (dart.test(validData[$isNotEmpty]) && dart.notNull(validData[$length]) >= dart.notNull(indicator.period) && dart.notNull(indicator.period) > 0) {
          if (dart.test(indicator.showZones)) {
            for (let i = 0; i < dart.notNull(validData[$length]); i = i + 1) {
              upperCollection[$add](this[_getDataPoint](validData[$_get](i).x, indicator.overbought, validData[$_get](i), indicator[_targetSeries][$_get](1), upperCollection[$length]));
              lowerCollection[$add](this[_getDataPoint](validData[$_get](i).x, indicator.oversold, validData[$_get](i), indicator[_targetSeries][$_get](2), lowerCollection[$length]));
              xValues[$add](validData[$_get](i).x);
            }
          }
          let prevClose = core.num._check(validData[$_get](0).close == null ? 0 : validData[$_get](0).close);
          let gain = 0;
          let loss = 0;
          for (let i = 1; i <= dart.notNull(indicator.period); i = i + 1) {
            let close = core.num._check(validData[$_get](i).close == null ? 0.0 : validData[$_get](i).close);
            if (dart.notNull(close) > dart.notNull(prevClose)) {
              gain = gain + (dart.notNull(close) - dart.notNull(prevClose));
            } else {
              loss = loss + (dart.notNull(prevClose) - dart.notNull(close));
            }
            prevClose = close;
          }
          gain = gain / dart.notNull(indicator.period);
          loss = loss / dart.notNull(indicator.period);
          signalCollection[$add](this[_getDataPoint](validData[$_get](indicator.period).x, 100 - 100 / (1 + gain / loss), validData[$_get](indicator.period), signalSeries, signalCollection[$length]));
          signalXValues[$add](validData[$_get](indicator.period).x);
          for (let j = dart.notNull(indicator.period) + 1; j < dart.notNull(validData[$length]); j = j + 1) {
            if (!dart.test(validData[$_get](j).isGap) && !dart.test(validData[$_get](j).isDrop)) {
              let close = core.num._check(validData[$_get](j).close);
              if (dart.notNull(close) > dart.notNull(prevClose)) {
                gain = (gain * (dart.notNull(indicator.period) - 1) + (dart.notNull(close) - dart.notNull(prevClose))) / dart.notNull(indicator.period);
                loss = loss * (dart.notNull(indicator.period) - 1) / dart.notNull(indicator.period);
              } else if (dart.notNull(close) < dart.notNull(prevClose)) {
                loss = (loss * (dart.notNull(indicator.period) - 1) + (dart.notNull(prevClose) - dart.notNull(close))) / dart.notNull(indicator.period);
                gain = gain * (dart.notNull(indicator.period) - 1) / dart.notNull(indicator.period);
              }
              prevClose = close;
              signalCollection[$add](this[_getDataPoint](validData[$_get](j).x, 100 - 100 / (1 + gain / loss), validData[$_get](j), signalSeries, signalCollection[$length]));
              signalXValues[$add](validData[$_get](j).x);
            }
          }
        }
        indicator[_renderPoints] = signalCollection;
        this[_setSeriesRange](signalCollection, indicator, signalXValues, indicator[_targetSeries][$_get](0));
        if (dart.test(indicator.showZones)) {
          this[_setSeriesRange](upperCollection, indicator, xValues, indicator[_targetSeries][$_get](1));
          this[_setSeriesRange](lowerCollection, indicator, xValues, indicator[_targetSeries][$_get](2));
        }
      }
    }
    (RsiIndicator.new = function(opts) {
      let t3, t3$, t3$0, t3$1, t3$2, t3$3, t3$4;
      let isVisible = opts && 'isVisible' in opts ? opts.isVisible : null;
      let xAxisName = opts && 'xAxisName' in opts ? opts.xAxisName : null;
      let yAxisName = opts && 'yAxisName' in opts ? opts.yAxisName : null;
      let seriesName = opts && 'seriesName' in opts ? opts.seriesName : null;
      let dashArray = opts && 'dashArray' in opts ? opts.dashArray : null;
      let animationDuration = opts && 'animationDuration' in opts ? opts.animationDuration : null;
      let dataSource = opts && 'dataSource' in opts ? opts.dataSource : null;
      let xValueMapper = opts && 'xValueMapper' in opts ? opts.xValueMapper : null;
      let highValueMapper = opts && 'highValueMapper' in opts ? opts.highValueMapper : null;
      let lowValueMapper = opts && 'lowValueMapper' in opts ? opts.lowValueMapper : null;
      let closeValueMapper = opts && 'closeValueMapper' in opts ? opts.closeValueMapper : null;
      let name = opts && 'name' in opts ? opts.name : null;
      let isVisibleInLegend = opts && 'isVisibleInLegend' in opts ? opts.isVisibleInLegend : null;
      let legendIconType = opts && 'legendIconType' in opts ? opts.legendIconType : null;
      let legendItemText = opts && 'legendItemText' in opts ? opts.legendItemText : null;
      let signalLineColor = opts && 'signalLineColor' in opts ? opts.signalLineColor : null;
      let signalLineWidth = opts && 'signalLineWidth' in opts ? opts.signalLineWidth : null;
      let period = opts && 'period' in opts ? opts.period : null;
      let showZones = opts && 'showZones' in opts ? opts.showZones : null;
      let overbought = opts && 'overbought' in opts ? opts.overbought : null;
      let oversold = opts && 'oversold' in opts ? opts.oversold : null;
      let upperLineColor = opts && 'upperLineColor' in opts ? opts.upperLineColor : null;
      let upperLineWidth = opts && 'upperLineWidth' in opts ? opts.upperLineWidth : null;
      let lowerLineColor = opts && 'lowerLineColor' in opts ? opts.lowerLineColor : null;
      let lowerLineWidth = opts && 'lowerLineWidth' in opts ? opts.lowerLineWidth : null;
      this[showZones$] = (t3 = showZones, t3 == null ? true : t3);
      this[overbought$] = (t3$ = overbought, t3$ == null ? 80.0 : t3$);
      this[oversold$] = (t3$0 = oversold, t3$0 == null ? 20.0 : t3$0);
      this[upperLineColor$0] = (t3$1 = upperLineColor, t3$1 == null ? colors$.Colors.red : t3$1);
      this[upperLineWidth$0] = (t3$2 = upperLineWidth, t3$2 == null ? 2.0 : t3$2);
      this[lowerLineColor$0] = (t3$3 = lowerLineColor, t3$3 == null ? colors$.Colors.green : t3$3);
      this[lowerLineWidth$0] = (t3$4 = lowerLineWidth, t3$4 == null ? 2.0 : t3$4);
      RsiIndicator.__proto__.new.call(this, {isVisible: isVisible, xAxisName: xAxisName, yAxisName: yAxisName, seriesName: seriesName, dashArray: dashArray, animationDuration: animationDuration, dataSource: dataSource, xValueMapper: xValueMapper, highValueMapper: highValueMapper, lowValueMapper: lowValueMapper, closeValueMapper: closeValueMapper, name: name, isVisibleInLegend: isVisibleInLegend, legendIconType: legendIconType, legendItemText: legendItemText, signalLineColor: signalLineColor, signalLineWidth: signalLineWidth, period: period});
      ;
    }).prototype = RsiIndicator.prototype;
    dart.addTypeTests(RsiIndicator);
    RsiIndicator.prototype[_is_RsiIndicator_default] = true;
    dart.setMethodSignature(RsiIndicator, () => ({
      __proto__: dart.getMethods(RsiIndicator.__proto__),
      [_initSeriesCollection]: dart.fnType(dart.void, [charts.RsiIndicator, charts.SfCartesianChart]),
      [_initDataSource]: dart.fnType(dart.void, [charts.RsiIndicator])
    }));
    dart.setLibraryUri(RsiIndicator, "package:syncfusion_flutter_charts/charts.dart");
    dart.setFieldSignature(RsiIndicator, () => ({
      __proto__: dart.getFields(RsiIndicator.__proto__),
      showZones: dart.finalFieldType(core.bool),
      overbought: dart.finalFieldType(core.double),
      oversold: dart.finalFieldType(core.double),
      upperLineColor: dart.finalFieldType(ui.Color),
      upperLineWidth: dart.finalFieldType(core.double),
      lowerLineColor: dart.finalFieldType(ui.Color),
      lowerLineWidth: dart.finalFieldType(core.double)
    }));
    return RsiIndicator;
  });
  charts.RsiIndicator = charts.RsiIndicator$();
  dart.addTypeTests(charts.RsiIndicator, _is_RsiIndicator_default);
  const _is_SmaIndicator_default = Symbol('_is_SmaIndicator_default');
  const valueField$1 = dart.privateName(charts, "SmaIndicator.valueField");
  charts.SmaIndicator$ = dart.generic((T, D) => {
    class SmaIndicator extends charts.TechnicalIndicators$(T, D) {
      get valueField() {
        return this[valueField$1];
      }
      set valueField(value) {
        super.valueField = value;
      }
      [_initSeriesCollection](indicator, chart) {
        indicator[_targetSeries] = JSArrayOfCartesianSeries().of([]);
        indicator[_setSeriesProperties](indicator, "SMA", indicator.signalLineColor, indicator.signalLineWidth, chart);
      }
      [_initDataSource](indicator) {
        let smaPoints = JSArrayOfCartesianChartPoint().of([]);
        let _points = indicator[_dataPoints$];
        let xValues = [];
        let _point = null;
        if (dart.test(_points[$isNotEmpty])) {
          let validData = _points;
          let signalSeries = indicator[_targetSeries][$_get](0);
          if (dart.notNull(validData[$length]) >= dart.notNull(indicator.period) && dart.notNull(indicator.period) > 0) {
            let average = 0;
            let sum = 0;
            for (let i = 0; i < dart.notNull(indicator.period); i = i + 1) {
              sum = sum + dart.notNull(this[_getFieldValue](validData, i, this.valueField));
            }
            average = sum / dart.notNull(indicator.period);
            _point = this[_getDataPoint](validData[$_get](dart.notNull(indicator.period) - 1).x, average, validData[$_get](dart.notNull(indicator.period) - 1), signalSeries, smaPoints[$length]);
            smaPoints[$add](_point);
            xValues[$add](_point.x);
            let index = indicator.period;
            while (dart.notNull(index) < dart.notNull(validData[$length])) {
              sum = sum - dart.notNull(this[_getFieldValue](validData, dart.asInt(dart.notNull(index) - dart.notNull(indicator.period)), this.valueField));
              sum = sum + dart.notNull(this[_getFieldValue](validData, dart.asInt(index), this.valueField));
              average = sum / dart.notNull(indicator.period);
              _point = this[_getDataPoint](validData[$_get](dart.asInt(index)).x, average, validData[$_get](dart.asInt(index)), signalSeries, smaPoints[$length]);
              smaPoints[$add](_point);
              xValues[$add](_point.x);
              index = dart.notNull(index) + 1;
            }
          }
          indicator[_renderPoints] = smaPoints;
          this[_setSeriesRange](smaPoints, indicator, xValues);
        }
      }
    }
    (SmaIndicator.new = function(opts) {
      let t3;
      let isVisible = opts && 'isVisible' in opts ? opts.isVisible : null;
      let xAxisName = opts && 'xAxisName' in opts ? opts.xAxisName : null;
      let yAxisName = opts && 'yAxisName' in opts ? opts.yAxisName : null;
      let seriesName = opts && 'seriesName' in opts ? opts.seriesName : null;
      let dashArray = opts && 'dashArray' in opts ? opts.dashArray : null;
      let animationDuration = opts && 'animationDuration' in opts ? opts.animationDuration : null;
      let dataSource = opts && 'dataSource' in opts ? opts.dataSource : null;
      let xValueMapper = opts && 'xValueMapper' in opts ? opts.xValueMapper : null;
      let highValueMapper = opts && 'highValueMapper' in opts ? opts.highValueMapper : null;
      let lowValueMapper = opts && 'lowValueMapper' in opts ? opts.lowValueMapper : null;
      let openValueMapper = opts && 'openValueMapper' in opts ? opts.openValueMapper : null;
      let closeValueMapper = opts && 'closeValueMapper' in opts ? opts.closeValueMapper : null;
      let name = opts && 'name' in opts ? opts.name : null;
      let isVisibleInLegend = opts && 'isVisibleInLegend' in opts ? opts.isVisibleInLegend : null;
      let legendIconType = opts && 'legendIconType' in opts ? opts.legendIconType : null;
      let legendItemText = opts && 'legendItemText' in opts ? opts.legendItemText : null;
      let signalLineColor = opts && 'signalLineColor' in opts ? opts.signalLineColor : null;
      let signalLineWidth = opts && 'signalLineWidth' in opts ? opts.signalLineWidth : null;
      let period = opts && 'period' in opts ? opts.period : null;
      let valueField = opts && 'valueField' in opts ? opts.valueField : null;
      this[valueField$1] = (t3 = valueField, t3 == null ? "close" : t3)[$toLowerCase]();
      SmaIndicator.__proto__.new.call(this, {isVisible: isVisible, xAxisName: xAxisName, yAxisName: yAxisName, seriesName: seriesName, dashArray: dashArray, animationDuration: animationDuration, dataSource: dataSource, xValueMapper: xValueMapper, highValueMapper: highValueMapper, lowValueMapper: lowValueMapper, openValueMapper: openValueMapper, closeValueMapper: closeValueMapper, name: name, isVisibleInLegend: isVisibleInLegend, legendIconType: legendIconType, legendItemText: legendItemText, signalLineColor: signalLineColor, signalLineWidth: signalLineWidth, period: period});
      ;
    }).prototype = SmaIndicator.prototype;
    dart.addTypeTests(SmaIndicator);
    SmaIndicator.prototype[_is_SmaIndicator_default] = true;
    dart.setMethodSignature(SmaIndicator, () => ({
      __proto__: dart.getMethods(SmaIndicator.__proto__),
      [_initSeriesCollection]: dart.fnType(dart.void, [charts.TechnicalIndicators, charts.SfCartesianChart]),
      [_initDataSource]: dart.fnType(dart.void, [charts.SmaIndicator])
    }));
    dart.setLibraryUri(SmaIndicator, "package:syncfusion_flutter_charts/charts.dart");
    dart.setFieldSignature(SmaIndicator, () => ({
      __proto__: dart.getFields(SmaIndicator.__proto__),
      valueField: dart.finalFieldType(core.String)
    }));
    return SmaIndicator;
  });
  charts.SmaIndicator = charts.SmaIndicator$();
  dart.addTypeTests(charts.SmaIndicator, _is_SmaIndicator_default);
  const _calculateEMAValues = dart.privateName(charts, "_calculateEMAValues");
  const _getMACDVales = dart.privateName(charts, "_getMACDVales");
  const _getMACDPoints = dart.privateName(charts, "_getMACDPoints");
  const _getSignalPoints = dart.privateName(charts, "_getSignalPoints");
  const _getHistogramPoints = dart.privateName(charts, "_getHistogramPoints");
  const _is_MacdIndicator_default = Symbol('_is_MacdIndicator_default');
  const shortPeriod$ = dart.privateName(charts, "MacdIndicator.shortPeriod");
  const longPeriod$ = dart.privateName(charts, "MacdIndicator.longPeriod");
  const macdLineColor$ = dart.privateName(charts, "MacdIndicator.macdLineColor");
  const macdLineWidth$ = dart.privateName(charts, "MacdIndicator.macdLineWidth");
  const macdType$ = dart.privateName(charts, "MacdIndicator.macdType");
  const histogramPositiveColor$ = dart.privateName(charts, "MacdIndicator.histogramPositiveColor");
  const histogramNegativeColor$ = dart.privateName(charts, "MacdIndicator.histogramNegativeColor");
  charts.MacdIndicator$ = dart.generic((T, D) => {
    class MacdIndicator extends charts.TechnicalIndicators$(T, D) {
      get shortPeriod() {
        return this[shortPeriod$];
      }
      set shortPeriod(value) {
        super.shortPeriod = value;
      }
      get longPeriod() {
        return this[longPeriod$];
      }
      set longPeriod(value) {
        super.longPeriod = value;
      }
      get macdLineColor() {
        return this[macdLineColor$];
      }
      set macdLineColor(value) {
        super.macdLineColor = value;
      }
      get macdLineWidth() {
        return this[macdLineWidth$];
      }
      set macdLineWidth(value) {
        super.macdLineWidth = value;
      }
      get macdType() {
        return this[macdType$];
      }
      set macdType(value) {
        super.macdType = value;
      }
      get histogramPositiveColor() {
        return this[histogramPositiveColor$];
      }
      set histogramPositiveColor(value) {
        super.histogramPositiveColor = value;
      }
      get histogramNegativeColor() {
        return this[histogramNegativeColor$];
      }
      set histogramNegativeColor(value) {
        super.histogramNegativeColor = value;
      }
      [_initSeriesCollection](indicator, chart) {
        indicator[_targetSeries] = JSArrayOfCartesianSeries().of([]);
        indicator[_setSeriesProperties](indicator, "MACD", indicator.signalLineColor, indicator.signalLineWidth, chart);
        if (dart.equals(indicator.macdType, charts.MacdType.line) || dart.equals(indicator.macdType, charts.MacdType.both)) {
          indicator[_setSeriesProperties](indicator, "MacdLine", indicator.macdLineColor, indicator.macdLineWidth, chart);
        }
        if (dart.equals(indicator.macdType, charts.MacdType.histogram) || dart.equals(indicator.macdType, charts.MacdType.both)) {
          indicator[_setSeriesProperties](indicator, "Histogram", indicator.histogramPositiveColor, dart.notNull(indicator.signalLineWidth) / 2, chart);
        }
      }
      [_initDataSource](indicator) {
        let t3;
        let signalCollection = JSArrayOfCartesianChartPoint().of([]);
        let fastPeriod = indicator.longPeriod;
        let slowPeriod = indicator.shortPeriod;
        let trigger = indicator.period;
        let length = dart.notNull(fastPeriod) + dart.notNull(trigger);
        let macdCollection = JSArrayOfCartesianChartPoint().of([]);
        let histogramCollection = JSArrayOfCartesianChartPoint().of([]);
        let validData = indicator[_dataPoints$];
        let signalSeries = indicator[_targetSeries][$_get](0);
        let signalX = null;
        let histogramX = null;
        let macdX = null;
        let collection = null;
        let histogramSeries = null;
        let macdLineSeries = null;
        if (dart.equals(indicator.macdType, charts.MacdType.histogram)) {
          histogramSeries = indicator[_targetSeries][$_get](1);
        } else {
          macdLineSeries = indicator[_targetSeries][$_get](1);
          if (dart.equals(indicator.macdType, charts.MacdType.both)) {
            histogramSeries = indicator[_targetSeries][$_get](2);
          }
        }
        if (dart.test(validData[$isNotEmpty]) && length < dart.notNull(validData[$length]) && dart.notNull(slowPeriod) <= dart.notNull(fastPeriod) && dart.notNull(slowPeriod) > 0 && dart.notNull(indicator.period) > 0 && length - 2 >= 0) {
          let shortEMA = this[_calculateEMAValues](slowPeriod, validData, "close");
          let longEMA = this[_calculateEMAValues](fastPeriod, validData, "close");
          let macdValues = this[_getMACDVales](indicator, shortEMA, longEMA);
          collection = this[_getMACDPoints](indicator, macdValues, validData, (t3 = macdLineSeries, t3 == null ? signalSeries : t3));
          macdCollection = ListOfCartesianChartPoint()._check(collection[$_get](0));
          macdX = core.List._check(collection[$_get](1));
          let signalEMA = this[_calculateEMAValues](trigger, macdCollection, "y");
          collection = this[_getSignalPoints](indicator, signalEMA, validData, signalSeries);
          signalCollection = ListOfCartesianChartPoint()._check(collection[$_get](0));
          signalX = core.List._check(collection[$_get](1));
          if (histogramSeries != null) {
            collection = this[_getHistogramPoints](indicator, macdValues, signalEMA, validData, histogramSeries);
            histogramCollection = ListOfCartesianChartPoint()._check(collection[$_get](0));
            histogramX = core.List._check(collection[$_get](1));
          }
        }
        indicator[_renderPoints] = signalCollection;
        this[_setSeriesRange](signalCollection, indicator, signalX, indicator[_targetSeries][$_get](0));
        if (histogramSeries != null) {
          this[_setSeriesRange](histogramCollection, indicator, histogramX, histogramSeries);
        }
        if (macdLineSeries != null) {
          this[_setSeriesRange](macdCollection, indicator, macdX, macdLineSeries);
        }
      }
      [_calculateEMAValues](period, validData, valueField) {
        let sum = 0;
        let initialEMA = 0;
        let emaValues = JSArrayOfnum().of([]);
        let emaPercent = 2 / (dart.notNull(period) + 1);
        for (let i = 0; i < dart.notNull(period); i = i + 1) {
          sum = sum + dart.notNull(this[_getFieldValue](validData, i, valueField));
        }
        initialEMA = sum / dart.notNull(period);
        emaValues[$add](initialEMA);
        let emaAvg = initialEMA;
        for (let j = dart.asInt(period); dart.notNull(j) < dart.notNull(validData[$length]); j = dart.notNull(j) + 1) {
          emaAvg = (dart.notNull(this[_getFieldValue](validData, j, valueField)) - emaAvg) * emaPercent + emaAvg;
          emaValues[$add](emaAvg);
        }
        return emaValues;
      }
      [_getMACDPoints](indicator, macdPoints, validData, series) {
        let macdCollection = JSArrayOfCartesianChartPoint().of([]);
        let xValues = [];
        let dataMACDIndex = dart.notNull(indicator.longPeriod) - 1;
        let macdIndex = 0;
        while (dataMACDIndex < dart.notNull(validData[$length])) {
          macdCollection[$add](this[_getDataPoint](validData[$_get](dart.asInt(dataMACDIndex)).x, macdPoints[$_get](dart.asInt(macdIndex)), validData[$_get](dart.asInt(dataMACDIndex)), series, macdCollection[$length]));
          xValues[$add](validData[$_get](dart.asInt(dataMACDIndex)).x);
          dataMACDIndex = dataMACDIndex + 1;
          macdIndex = macdIndex + 1;
        }
        return [macdCollection, xValues];
      }
      [_getSignalPoints](indicator, signalEma, validData, series) {
        let dataSignalIndex = dart.notNull(indicator.longPeriod) + dart.notNull(indicator.period) - 2;
        let signalIndex = 0;
        let xValues = [];
        let signalCollection = JSArrayOfCartesianChartPoint().of([]);
        while (dataSignalIndex < dart.notNull(validData[$length])) {
          signalCollection[$add](this[_getDataPoint](validData[$_get](dart.asInt(dataSignalIndex)).x, signalEma[$_get](dart.asInt(signalIndex)), validData[$_get](dart.asInt(dataSignalIndex)), series, signalCollection[$length]));
          xValues[$add](validData[$_get](dart.asInt(dataSignalIndex)).x);
          dataSignalIndex = dataSignalIndex + 1;
          signalIndex = signalIndex + 1;
        }
        return [signalCollection, xValues];
      }
      [_getMACDVales](indicator, shortEma, longEma) {
        let macdPoints = JSArrayOfnum().of([]);
        let diff = dart.notNull(indicator.longPeriod) - dart.notNull(indicator.shortPeriod);
        for (let i = 0; i < dart.notNull(longEma[$length]); i = i + 1) {
          macdPoints[$add](dart.notNull(shortEma[$_get](dart.asInt(i + diff))) - dart.notNull(longEma[$_get](i)));
        }
        return macdPoints;
      }
      [_getHistogramPoints](indicator, macdPoints, signalEma, validData, series) {
        let dataHistogramIndex = dart.notNull(indicator.longPeriod) + dart.notNull(indicator.period) - 2;
        let histogramIndex = 0;
        let histogramCollection = JSArrayOfCartesianChartPoint().of([]);
        let xValues = [];
        while (dataHistogramIndex < dart.notNull(validData[$length])) {
          histogramCollection[$add](this[_getDataPoint](validData[$_get](dart.asInt(dataHistogramIndex)).x, dart.notNull(macdPoints[$_get](dart.asInt(histogramIndex + (dart.notNull(indicator.period) - 1)))) - dart.notNull(signalEma[$_get](dart.asInt(histogramIndex))), validData[$_get](dart.asInt(dataHistogramIndex)), series, histogramCollection[$length], indicator));
          xValues[$add](validData[$_get](dart.asInt(dataHistogramIndex)).x);
          dataHistogramIndex = dataHistogramIndex + 1;
          histogramIndex = histogramIndex + 1;
        }
        return [histogramCollection, xValues];
      }
    }
    (MacdIndicator.new = function(opts) {
      let t3, t3$, t3$0, t3$1, t3$2, t3$3, t3$4;
      let isVisible = opts && 'isVisible' in opts ? opts.isVisible : null;
      let xAxisName = opts && 'xAxisName' in opts ? opts.xAxisName : null;
      let yAxisName = opts && 'yAxisName' in opts ? opts.yAxisName : null;
      let seriesName = opts && 'seriesName' in opts ? opts.seriesName : null;
      let dashArray = opts && 'dashArray' in opts ? opts.dashArray : null;
      let animationDuration = opts && 'animationDuration' in opts ? opts.animationDuration : null;
      let dataSource = opts && 'dataSource' in opts ? opts.dataSource : null;
      let xValueMapper = opts && 'xValueMapper' in opts ? opts.xValueMapper : null;
      let closeValueMapper = opts && 'closeValueMapper' in opts ? opts.closeValueMapper : null;
      let name = opts && 'name' in opts ? opts.name : null;
      let isVisibleInLegend = opts && 'isVisibleInLegend' in opts ? opts.isVisibleInLegend : null;
      let legendIconType = opts && 'legendIconType' in opts ? opts.legendIconType : null;
      let legendItemText = opts && 'legendItemText' in opts ? opts.legendItemText : null;
      let signalLineColor = opts && 'signalLineColor' in opts ? opts.signalLineColor : null;
      let signalLineWidth = opts && 'signalLineWidth' in opts ? opts.signalLineWidth : null;
      let period = opts && 'period' in opts ? opts.period : null;
      let shortPeriod = opts && 'shortPeriod' in opts ? opts.shortPeriod : null;
      let longPeriod = opts && 'longPeriod' in opts ? opts.longPeriod : null;
      let macdLineColor = opts && 'macdLineColor' in opts ? opts.macdLineColor : null;
      let macdLineWidth = opts && 'macdLineWidth' in opts ? opts.macdLineWidth : null;
      let macdType = opts && 'macdType' in opts ? opts.macdType : null;
      let histogramPositiveColor = opts && 'histogramPositiveColor' in opts ? opts.histogramPositiveColor : null;
      let histogramNegativeColor = opts && 'histogramNegativeColor' in opts ? opts.histogramNegativeColor : null;
      this[shortPeriod$] = (t3 = shortPeriod, t3 == null ? 12 : t3);
      this[longPeriod$] = (t3$ = longPeriod, t3$ == null ? 26 : t3$);
      this[macdLineColor$] = (t3$0 = macdLineColor, t3$0 == null ? colors$.Colors.orange : t3$0);
      this[macdLineWidth$] = (t3$1 = macdLineWidth, t3$1 == null ? 2.0 : t3$1);
      this[macdType$] = (t3$2 = macdType, t3$2 == null ? charts.MacdType.both : t3$2);
      this[histogramPositiveColor$] = (t3$3 = histogramPositiveColor, t3$3 == null ? colors$.Colors.green : t3$3);
      this[histogramNegativeColor$] = (t3$4 = histogramNegativeColor, t3$4 == null ? colors$.Colors.red : t3$4);
      MacdIndicator.__proto__.new.call(this, {isVisible: isVisible, xAxisName: xAxisName, yAxisName: yAxisName, seriesName: seriesName, dashArray: dashArray, animationDuration: animationDuration, dataSource: dataSource, xValueMapper: xValueMapper, closeValueMapper: closeValueMapper, name: name, isVisibleInLegend: isVisibleInLegend, legendIconType: legendIconType, legendItemText: legendItemText, signalLineColor: signalLineColor, signalLineWidth: signalLineWidth, period: period});
      ;
    }).prototype = MacdIndicator.prototype;
    dart.addTypeTests(MacdIndicator);
    MacdIndicator.prototype[_is_MacdIndicator_default] = true;
    dart.setMethodSignature(MacdIndicator, () => ({
      __proto__: dart.getMethods(MacdIndicator.__proto__),
      [_initSeriesCollection]: dart.fnType(dart.void, [charts.MacdIndicator, charts.SfCartesianChart]),
      [_initDataSource]: dart.fnType(dart.void, [charts.MacdIndicator]),
      [_calculateEMAValues]: dart.fnType(core.List$(core.num), [core.num, core.List$(charts.CartesianChartPoint), core.String]),
      [_getMACDPoints]: dart.fnType(core.List, [charts.MacdIndicator, core.List$(core.num), core.List$(charts.CartesianChartPoint), charts.CartesianSeries]),
      [_getSignalPoints]: dart.fnType(core.List, [charts.MacdIndicator, core.List$(core.num), core.List$(charts.CartesianChartPoint), charts.CartesianSeries]),
      [_getMACDVales]: dart.fnType(core.List$(core.num), [charts.MacdIndicator, core.List$(core.num), core.List$(core.num)]),
      [_getHistogramPoints]: dart.fnType(core.List, [charts.MacdIndicator, core.List$(core.num), core.List$(core.num), core.List$(charts.CartesianChartPoint), charts.CartesianSeries])
    }));
    dart.setLibraryUri(MacdIndicator, "package:syncfusion_flutter_charts/charts.dart");
    dart.setFieldSignature(MacdIndicator, () => ({
      __proto__: dart.getFields(MacdIndicator.__proto__),
      shortPeriod: dart.finalFieldType(core.int),
      longPeriod: dart.finalFieldType(core.int),
      macdLineColor: dart.finalFieldType(ui.Color),
      macdLineWidth: dart.finalFieldType(core.double),
      macdType: dart.finalFieldType(charts.MacdType),
      histogramPositiveColor: dart.finalFieldType(ui.Color),
      histogramNegativeColor: dart.finalFieldType(ui.Color)
    }));
    return MacdIndicator;
  });
  charts.MacdIndicator = charts.MacdIndicator$();
  dart.addTypeTests(charts.MacdIndicator, _is_MacdIndicator_default);
  const _is_MomentumIndicator_default = Symbol('_is_MomentumIndicator_default');
  const centerLineColor$ = dart.privateName(charts, "MomentumIndicator.centerLineColor");
  const centerLineWidth$ = dart.privateName(charts, "MomentumIndicator.centerLineWidth");
  charts.MomentumIndicator$ = dart.generic((T, D) => {
    class MomentumIndicator extends charts.TechnicalIndicators$(T, D) {
      get centerLineColor() {
        return this[centerLineColor$];
      }
      set centerLineColor(value) {
        super.centerLineColor = value;
      }
      get centerLineWidth() {
        return this[centerLineWidth$];
      }
      set centerLineWidth(value) {
        super.centerLineWidth = value;
      }
      [_initSeriesCollection](indicator, chart) {
        indicator[_targetSeries] = JSArrayOfCartesianSeries().of([]);
        indicator[_setSeriesProperties](indicator, "Momentum", indicator.signalLineColor, indicator.signalLineWidth, chart);
        this[_setSeriesProperties](indicator, "CenterLine", indicator.centerLineColor, indicator.centerLineWidth, chart);
      }
      [_initDataSource](indicator) {
        let signalCollection = JSArrayOfCartesianChartPoint().of([]);
        let centerLineCollection = JSArrayOfCartesianChartPoint().of([]);
        let validData = indicator[_dataPoints$];
        let centerXValues = [];
        let xValues = [];
        let value = null;
        if (dart.test(validData[$isNotEmpty])) {
          let signalSeries = indicator[_targetSeries][$_get](0);
          let upperSeries = indicator[_targetSeries][$_get](1);
          let length = indicator.period;
          if (dart.notNull(validData[$length]) >= dart.notNull(indicator.period) && dart.notNull(indicator.period) > 0) {
            for (let i = 0; i < dart.notNull(validData[$length]); i = i + 1) {
              centerLineCollection[$add](this[_getDataPoint](validData[$_get](i).x, 100, validData[$_get](i), upperSeries, centerLineCollection[$length]));
              centerXValues[$add](validData[$_get](i).x);
              if (!(i < dart.notNull(length))) {
                value = core.num._check(dart.dsend(dart.dsend(validData[$_get](i).close == null ? 0 : validData[$_get](i).close, '/', [validData[$_get](dart.asInt(i - dart.notNull(length))).close == null ? 1 : validData[$_get](dart.asInt(i - dart.notNull(length))).close]), '*', [100]));
                signalCollection[$add](this[_getDataPoint](validData[$_get](i).x, value, validData[$_get](i), signalSeries, signalCollection[$length]));
                xValues[$add](validData[$_get](i).x);
              }
            }
          }
          indicator[_renderPoints] = signalCollection;
          this[_setSeriesRange](signalCollection, indicator, xValues, indicator[_targetSeries][$_get](0));
          this[_setSeriesRange](centerLineCollection, indicator, centerXValues, indicator[_targetSeries][$_get](1));
        }
      }
    }
    (MomentumIndicator.new = function(opts) {
      let t3, t3$;
      let isVisible = opts && 'isVisible' in opts ? opts.isVisible : null;
      let xAxisName = opts && 'xAxisName' in opts ? opts.xAxisName : null;
      let yAxisName = opts && 'yAxisName' in opts ? opts.yAxisName : null;
      let seriesName = opts && 'seriesName' in opts ? opts.seriesName : null;
      let dashArray = opts && 'dashArray' in opts ? opts.dashArray : null;
      let animationDuration = opts && 'animationDuration' in opts ? opts.animationDuration : null;
      let dataSource = opts && 'dataSource' in opts ? opts.dataSource : null;
      let xValueMapper = opts && 'xValueMapper' in opts ? opts.xValueMapper : null;
      let highValueMapper = opts && 'highValueMapper' in opts ? opts.highValueMapper : null;
      let lowValueMapper = opts && 'lowValueMapper' in opts ? opts.lowValueMapper : null;
      let openValueMapper = opts && 'openValueMapper' in opts ? opts.openValueMapper : null;
      let closeValueMapper = opts && 'closeValueMapper' in opts ? opts.closeValueMapper : null;
      let name = opts && 'name' in opts ? opts.name : null;
      let isVisibleInLegend = opts && 'isVisibleInLegend' in opts ? opts.isVisibleInLegend : null;
      let legendIconType = opts && 'legendIconType' in opts ? opts.legendIconType : null;
      let legendItemText = opts && 'legendItemText' in opts ? opts.legendItemText : null;
      let signalLineColor = opts && 'signalLineColor' in opts ? opts.signalLineColor : null;
      let signalLineWidth = opts && 'signalLineWidth' in opts ? opts.signalLineWidth : null;
      let period = opts && 'period' in opts ? opts.period : null;
      let centerLineColor = opts && 'centerLineColor' in opts ? opts.centerLineColor : null;
      let centerLineWidth = opts && 'centerLineWidth' in opts ? opts.centerLineWidth : null;
      this[centerLineColor$] = (t3 = centerLineColor, t3 == null ? colors$.Colors.red : t3);
      this[centerLineWidth$] = (t3$ = centerLineWidth, t3$ == null ? 2.0 : t3$);
      MomentumIndicator.__proto__.new.call(this, {isVisible: isVisible, xAxisName: xAxisName, yAxisName: yAxisName, seriesName: seriesName, dashArray: dashArray, animationDuration: animationDuration, dataSource: dataSource, xValueMapper: xValueMapper, highValueMapper: highValueMapper, lowValueMapper: lowValueMapper, openValueMapper: openValueMapper, closeValueMapper: closeValueMapper, name: name, isVisibleInLegend: isVisibleInLegend, legendIconType: legendIconType, legendItemText: legendItemText, signalLineColor: signalLineColor, signalLineWidth: signalLineWidth, period: period});
      ;
    }).prototype = MomentumIndicator.prototype;
    dart.addTypeTests(MomentumIndicator);
    MomentumIndicator.prototype[_is_MomentumIndicator_default] = true;
    dart.setMethodSignature(MomentumIndicator, () => ({
      __proto__: dart.getMethods(MomentumIndicator.__proto__),
      [_initSeriesCollection]: dart.fnType(dart.void, [charts.MomentumIndicator, charts.SfCartesianChart]),
      [_initDataSource]: dart.fnType(dart.void, [charts.MomentumIndicator])
    }));
    dart.setLibraryUri(MomentumIndicator, "package:syncfusion_flutter_charts/charts.dart");
    dart.setFieldSignature(MomentumIndicator, () => ({
      __proto__: dart.getFields(MomentumIndicator.__proto__),
      centerLineColor: dart.finalFieldType(ui.Color),
      centerLineWidth: dart.finalFieldType(core.double)
    }));
    return MomentumIndicator;
  });
  charts.MomentumIndicator = charts.MomentumIndicator$();
  dart.addTypeTests(charts.MomentumIndicator, _is_MomentumIndicator_default);
  const _calculatePeriod = dart.privateName(charts, "_calculatePeriod");
  const _stochasticCalculation = dart.privateName(charts, "_stochasticCalculation");
  const _is_StochasticIndicator_default = Symbol('_is_StochasticIndicator_default');
  const showZones$0 = dart.privateName(charts, "StochasticIndicator.showZones");
  const overbought$0 = dart.privateName(charts, "StochasticIndicator.overbought");
  const oversold$0 = dart.privateName(charts, "StochasticIndicator.oversold");
  const upperLineColor$1 = dart.privateName(charts, "StochasticIndicator.upperLineColor");
  const upperLineWidth$1 = dart.privateName(charts, "StochasticIndicator.upperLineWidth");
  const lowerLineColor$1 = dart.privateName(charts, "StochasticIndicator.lowerLineColor");
  const lowerLineWidth$1 = dart.privateName(charts, "StochasticIndicator.lowerLineWidth");
  const periodLineColor$ = dart.privateName(charts, "StochasticIndicator.periodLineColor");
  const periodLineWidth$ = dart.privateName(charts, "StochasticIndicator.periodLineWidth");
  const kPeriod$ = dart.privateName(charts, "StochasticIndicator.kPeriod");
  const dPeriod$ = dart.privateName(charts, "StochasticIndicator.dPeriod");
  charts.StochasticIndicator$ = dart.generic((T, D) => {
    class StochasticIndicator extends charts.TechnicalIndicators$(T, D) {
      get showZones() {
        return this[showZones$0];
      }
      set showZones(value) {
        super.showZones = value;
      }
      get overbought() {
        return this[overbought$0];
      }
      set overbought(value) {
        super.overbought = value;
      }
      get oversold() {
        return this[oversold$0];
      }
      set oversold(value) {
        super.oversold = value;
      }
      get upperLineColor() {
        return this[upperLineColor$1];
      }
      set upperLineColor(value) {
        super.upperLineColor = value;
      }
      get upperLineWidth() {
        return this[upperLineWidth$1];
      }
      set upperLineWidth(value) {
        super.upperLineWidth = value;
      }
      get lowerLineColor() {
        return this[lowerLineColor$1];
      }
      set lowerLineColor(value) {
        super.lowerLineColor = value;
      }
      get lowerLineWidth() {
        return this[lowerLineWidth$1];
      }
      set lowerLineWidth(value) {
        super.lowerLineWidth = value;
      }
      get periodLineColor() {
        return this[periodLineColor$];
      }
      set periodLineColor(value) {
        super.periodLineColor = value;
      }
      get periodLineWidth() {
        return this[periodLineWidth$];
      }
      set periodLineWidth(value) {
        super.periodLineWidth = value;
      }
      get kPeriod() {
        return this[kPeriod$];
      }
      set kPeriod(value) {
        super.kPeriod = value;
      }
      get dPeriod() {
        return this[dPeriod$];
      }
      set dPeriod(value) {
        super.dPeriod = value;
      }
      [_initSeriesCollection](indicator, chart) {
        indicator[_targetSeries] = JSArrayOfCartesianSeries().of([]);
        indicator[_setSeriesProperties](indicator, "Stocastic", indicator.signalLineColor, indicator.signalLineWidth, chart);
        this[_setSeriesProperties](indicator, "PeriodLine", indicator.periodLineColor, indicator.periodLineWidth, chart);
        if (dart.test(this.showZones)) {
          this[_setSeriesProperties](indicator, "UpperLine", indicator.upperLineColor, indicator.upperLineWidth, chart);
          this[_setSeriesProperties](indicator, "LowerLine", indicator.lowerLineColor, indicator.lowerLineWidth, chart);
        }
      }
      [_initDataSource](indicator) {
        let signalCollection = JSArrayOfCartesianChartPoint().of([]);
        let lowerCollection = JSArrayOfCartesianChartPoint().of([]);
        let upperCollection = JSArrayOfCartesianChartPoint().of([]);
        let source = JSArrayOfCartesianChartPoint().of([]);
        let periodCollection = JSArrayOfCartesianChartPoint().of([]);
        let validData = indicator[_dataPoints$];
        let xValues = [];
        let collection = null;
        let signalX = null;
        let periodX = null;
        if (dart.test(validData[$isNotEmpty]) && dart.notNull(validData[$length]) >= dart.notNull(indicator.period) && dart.notNull(indicator.period) > 0) {
          if (dart.test(indicator.showZones)) {
            for (let i = 0; i < dart.notNull(validData[$length]); i = i + 1) {
              upperCollection[$add](this[_getDataPoint](validData[$_get](i).x, indicator.overbought, validData[$_get](i), indicator[_targetSeries][$_get](2), upperCollection[$length]));
              lowerCollection[$add](this[_getDataPoint](validData[$_get](i).x, indicator.oversold, validData[$_get](i), indicator[_targetSeries][$_get](3), lowerCollection[$length]));
              xValues[$add](validData[$_get](i).x);
            }
          }
          source = this[_calculatePeriod](indicator.period, indicator.kPeriod, validData, indicator[_targetSeries][$_get](1));
          collection = this[_stochasticCalculation](indicator.period, indicator.kPeriod, source, indicator[_targetSeries][$_get](1));
          periodCollection = ListOfCartesianChartPoint()._check(collection[$_get](0));
          periodX = core.List._check(collection[$_get](1));
          collection = this[_stochasticCalculation](dart.notNull(indicator.period) + dart.notNull(indicator.kPeriod) - 1, indicator.dPeriod, source, indicator[_targetSeries][$_get](0));
          signalCollection = ListOfCartesianChartPoint()._check(collection[$_get](0));
          signalX = core.List._check(collection[$_get](1));
        }
        indicator[_renderPoints] = signalCollection;
        this[_setSeriesRange](signalCollection, indicator, signalX, indicator[_targetSeries][$_get](0));
        this[_setSeriesRange](periodCollection, indicator, periodX, indicator[_targetSeries][$_get](1));
        if (dart.test(indicator.showZones)) {
          this[_setSeriesRange](upperCollection, indicator, xValues, indicator[_targetSeries][$_get](2));
          this[_setSeriesRange](lowerCollection, indicator, xValues, indicator[_targetSeries][$_get](3));
        }
      }
      [_stochasticCalculation](period, kPeriod, data, sourceSeries) {
        let pointCollection = JSArrayOfCartesianChartPoint().of([]);
        let xValues = [];
        if (dart.notNull(data[$length]) >= dart.notNull(period) + dart.notNull(kPeriod) && dart.notNull(kPeriod) > 0) {
          let count = dart.notNull(period) + (dart.notNull(kPeriod) - 1);
          let temp = JSArrayOfnum().of([]);
          let values = JSArrayOfnum().of([]);
          for (let i = 0; i < dart.notNull(data[$length]); i = i + 1) {
            let value = core.num._check(data[$_get](i).y);
            temp[$add](value);
          }
          let length = temp[$length];
          while (dart.notNull(length) >= count) {
            let sum = 0;
            for (let i = dart.asInt(dart.notNull(period) - 1); i < dart.notNull(period) + dart.notNull(kPeriod) - 1; i = i + 1) {
              sum = sum + dart.notNull(temp[$_get](i));
            }
            sum = sum / dart.notNull(kPeriod);
            let _sum = sum[$toStringAsFixed](2);
            values[$add](core.double.parse(_sum));
            temp[$removeRange](0, 1);
            length = temp[$length];
          }
          let len = count - 1;
          for (let i = 0; i < dart.notNull(data[$length]); i = i + 1) {
            if (!(i < len)) {
              pointCollection[$add](this[_getDataPoint](data[$_get](i).x, values[$_get](dart.asInt(i - len)), data[$_get](i), sourceSeries, pointCollection[$length]));
              xValues[$add](data[$_get](i).x);
              data[$_get](i).y = values[$_get](dart.asInt(i - len));
            }
          }
        }
        return [pointCollection, xValues];
      }
      [_calculatePeriod](period, kPeriod, data, series) {
        let lowValue = ListOfnum().new(data[$length]);
        let highValue = ListOfnum().new(data[$length]);
        let closeValue = ListOfnum().new(data[$length]);
        let modifiedSource = JSArrayOfCartesianChartPoint().of([]);
        for (let j = 0; j < dart.notNull(data[$length]); j = j + 1) {
          lowValue[$_set](j, core.num._check(data[$_get](j).low == null ? 0 : data[$_get](j).low));
          highValue[$_set](j, core.num._check(data[$_get](j).high == null ? 0 : data[$_get](j).high));
          closeValue[$_set](j, core.num._check(data[$_get](j).close == null ? 0 : data[$_get](j).close));
        }
        if (dart.notNull(data[$length]) > dart.notNull(period)) {
          let mins = JSArrayOfnum().of([]);
          let maxs = JSArrayOfnum().of([]);
          for (let i = 0; i < dart.notNull(period) - 1; i = i + 1) {
            maxs[$add](0);
            mins[$add](0);
            modifiedSource[$add](this[_getDataPoint](data[$_get](i).x, data[$_get](i).close, data[$_get](i), series, modifiedSource[$length]));
          }
          let min = null;
          let max = null;
          for (let i = dart.asInt(dart.notNull(period) - 1); i < dart.notNull(data[$length]); i = i + 1) {
            for (let j = 0; j < dart.notNull(period); j = j + 1) {
              min == null ? min = lowValue[$_get](i - j) : null;
              max == null ? max = highValue[$_get](i - j) : null;
              min = math.min(core.num, min, lowValue[$_get](i - j));
              max = math.max(core.num, max, highValue[$_get](i - j));
            }
            maxs[$add](max);
            mins[$add](min);
            min = null;
            max = null;
          }
          for (let i = dart.asInt(dart.notNull(period) - 1); i < dart.notNull(data[$length]); i = i + 1) {
            let top = 0;
            let bottom = 0;
            top = top + (dart.notNull(closeValue[$_get](i)) - dart.notNull(mins[$_get](i)));
            bottom = bottom + (dart.notNull(maxs[$_get](i)) - dart.notNull(mins[$_get](i)));
            modifiedSource[$add](this[_getDataPoint](data[$_get](i).x, top / bottom * 100, data[$_get](i), series, modifiedSource[$length]));
          }
        }
        return modifiedSource;
      }
    }
    (StochasticIndicator.new = function(opts) {
      let t3, t3$, t3$0, t3$1, t3$2, t3$3, t3$4, t3$5, t3$6, t3$7, t3$8;
      let isVisible = opts && 'isVisible' in opts ? opts.isVisible : null;
      let xAxisName = opts && 'xAxisName' in opts ? opts.xAxisName : null;
      let yAxisName = opts && 'yAxisName' in opts ? opts.yAxisName : null;
      let seriesName = opts && 'seriesName' in opts ? opts.seriesName : null;
      let dashArray = opts && 'dashArray' in opts ? opts.dashArray : null;
      let animationDuration = opts && 'animationDuration' in opts ? opts.animationDuration : null;
      let dataSource = opts && 'dataSource' in opts ? opts.dataSource : null;
      let xValueMapper = opts && 'xValueMapper' in opts ? opts.xValueMapper : null;
      let highValueMapper = opts && 'highValueMapper' in opts ? opts.highValueMapper : null;
      let lowValueMapper = opts && 'lowValueMapper' in opts ? opts.lowValueMapper : null;
      let openValueMapper = opts && 'openValueMapper' in opts ? opts.openValueMapper : null;
      let closeValueMapper = opts && 'closeValueMapper' in opts ? opts.closeValueMapper : null;
      let name = opts && 'name' in opts ? opts.name : null;
      let isVisibleInLegend = opts && 'isVisibleInLegend' in opts ? opts.isVisibleInLegend : null;
      let legendIconType = opts && 'legendIconType' in opts ? opts.legendIconType : null;
      let legendItemText = opts && 'legendItemText' in opts ? opts.legendItemText : null;
      let signalLineColor = opts && 'signalLineColor' in opts ? opts.signalLineColor : null;
      let signalLineWidth = opts && 'signalLineWidth' in opts ? opts.signalLineWidth : null;
      let period = opts && 'period' in opts ? opts.period : null;
      let showZones = opts && 'showZones' in opts ? opts.showZones : null;
      let overbought = opts && 'overbought' in opts ? opts.overbought : null;
      let oversold = opts && 'oversold' in opts ? opts.oversold : null;
      let upperLineColor = opts && 'upperLineColor' in opts ? opts.upperLineColor : null;
      let upperLineWidth = opts && 'upperLineWidth' in opts ? opts.upperLineWidth : null;
      let lowerLineColor = opts && 'lowerLineColor' in opts ? opts.lowerLineColor : null;
      let lowerLineWidth = opts && 'lowerLineWidth' in opts ? opts.lowerLineWidth : null;
      let periodLineColor = opts && 'periodLineColor' in opts ? opts.periodLineColor : null;
      let periodLineWidth = opts && 'periodLineWidth' in opts ? opts.periodLineWidth : null;
      let kPeriod = opts && 'kPeriod' in opts ? opts.kPeriod : null;
      let dPeriod = opts && 'dPeriod' in opts ? opts.dPeriod : null;
      this[showZones$0] = (t3 = showZones, t3 == null ? true : t3);
      this[overbought$0] = (t3$ = overbought, t3$ == null ? 80.0 : t3$);
      this[oversold$0] = (t3$0 = oversold, t3$0 == null ? 20.0 : t3$0);
      this[kPeriod$] = (t3$1 = kPeriod, t3$1 == null ? 3 : t3$1);
      this[dPeriod$] = (t3$2 = dPeriod, t3$2 == null ? 5 : t3$2);
      this[upperLineColor$1] = (t3$3 = upperLineColor, t3$3 == null ? colors$.Colors.red : t3$3);
      this[upperLineWidth$1] = (t3$4 = upperLineWidth, t3$4 == null ? 2.0 : t3$4);
      this[lowerLineColor$1] = (t3$5 = lowerLineColor, t3$5 == null ? colors$.Colors.green : t3$5);
      this[lowerLineWidth$1] = (t3$6 = lowerLineWidth, t3$6 == null ? 2.0 : t3$6);
      this[periodLineColor$] = (t3$7 = periodLineColor, t3$7 == null ? colors$.Colors.yellow : t3$7);
      this[periodLineWidth$] = (t3$8 = periodLineWidth, t3$8 == null ? 2.0 : t3$8);
      StochasticIndicator.__proto__.new.call(this, {isVisible: isVisible, xAxisName: xAxisName, yAxisName: yAxisName, seriesName: seriesName, dashArray: dashArray, animationDuration: animationDuration, dataSource: dataSource, xValueMapper: xValueMapper, highValueMapper: highValueMapper, lowValueMapper: lowValueMapper, openValueMapper: openValueMapper, closeValueMapper: closeValueMapper, name: name, isVisibleInLegend: isVisibleInLegend, legendIconType: legendIconType, legendItemText: legendItemText, signalLineColor: signalLineColor, signalLineWidth: signalLineWidth, period: period});
      ;
    }).prototype = StochasticIndicator.prototype;
    dart.addTypeTests(StochasticIndicator);
    StochasticIndicator.prototype[_is_StochasticIndicator_default] = true;
    dart.setMethodSignature(StochasticIndicator, () => ({
      __proto__: dart.getMethods(StochasticIndicator.__proto__),
      [_initSeriesCollection]: dart.fnType(dart.void, [charts.StochasticIndicator, charts.SfCartesianChart]),
      [_initDataSource]: dart.fnType(dart.void, [charts.StochasticIndicator]),
      [_stochasticCalculation]: dart.fnType(core.List, [core.num, core.num, core.List$(charts.CartesianChartPoint), charts.CartesianSeries]),
      [_calculatePeriod]: dart.fnType(core.List$(charts.CartesianChartPoint), [core.num, core.num, core.List$(charts.CartesianChartPoint), charts.CartesianSeries])
    }));
    dart.setLibraryUri(StochasticIndicator, "package:syncfusion_flutter_charts/charts.dart");
    dart.setFieldSignature(StochasticIndicator, () => ({
      __proto__: dart.getFields(StochasticIndicator.__proto__),
      showZones: dart.finalFieldType(core.bool),
      overbought: dart.finalFieldType(core.double),
      oversold: dart.finalFieldType(core.double),
      upperLineColor: dart.finalFieldType(ui.Color),
      upperLineWidth: dart.finalFieldType(core.double),
      lowerLineColor: dart.finalFieldType(ui.Color),
      lowerLineWidth: dart.finalFieldType(core.double),
      periodLineColor: dart.finalFieldType(ui.Color),
      periodLineWidth: dart.finalFieldType(core.double),
      kPeriod: dart.finalFieldType(core.num),
      dPeriod: dart.finalFieldType(core.num)
    }));
    return StochasticIndicator;
  });
  charts.StochasticIndicator = charts.StochasticIndicator$();
  dart.addTypeTests(charts.StochasticIndicator, _is_StochasticIndicator_default);
  const _fillColor = dart.privateName(charts, "_fillColor");
  const _opacity = dart.privateName(charts, "_opacity");
  const _dashArray = dart.privateName(charts, "_dashArray");
  const _increaseDateTimeForecast = dart.privateName(charts, "_increaseDateTimeForecast");
  const _findSlopeIntercept = dart.privateName(charts, "_findSlopeIntercept");
  const _setLinearRange = dart.privateName(charts, "_setLinearRange");
  const _setExponentialRange = dart.privateName(charts, "_setExponentialRange");
  const _setPowerRange = dart.privateName(charts, "_setPowerRange");
  const _setLogarithmicRange = dart.privateName(charts, "_setLogarithmicRange");
  const _getPolynomialPoints = dart.privateName(charts, "_getPolynomialPoints");
  const _setPolynomialRange = dart.privateName(charts, "_setPolynomialRange");
  const _getForecastDate = dart.privateName(charts, "_getForecastDate");
  const _setMovingAverageRange = dart.privateName(charts, "_setMovingAverageRange");
  let C555;
  let C556;
  let C557;
  let C558;
  let C559;
  let C560;
  const _calculateMarkerShapesPoint = dart.privateName(charts, "_calculateMarkerShapesPoint");
  const _getControlPoints = dart.privateName(charts, "_getControlPoints");
  const animationDuration$5 = dart.privateName(charts, "Trendline.animationDuration");
  const backwardForecast$ = dart.privateName(charts, "Trendline.backwardForecast");
  const forwardForecast$ = dart.privateName(charts, "Trendline.forwardForecast");
  const width$10 = dart.privateName(charts, "Trendline.width");
  const opacity$6 = dart.privateName(charts, "Trendline.opacity");
  const dashArray$7 = dart.privateName(charts, "Trendline.dashArray");
  const enableTooltip$2 = dart.privateName(charts, "Trendline.enableTooltip");
  const color$12 = dart.privateName(charts, "Trendline.color");
  const name$6 = dart.privateName(charts, "Trendline.name");
  const intercept$ = dart.privateName(charts, "Trendline.intercept");
  const isVisible$8 = dart.privateName(charts, "Trendline.isVisible");
  const legendIconType$5 = dart.privateName(charts, "Trendline.legendIconType");
  const type$0 = dart.privateName(charts, "Trendline.type");
  const valueField$2 = dart.privateName(charts, "Trendline.valueField");
  const markerSettings$0 = dart.privateName(charts, "Trendline.markerSettings");
  const isVisibleInLegend$1 = dart.privateName(charts, "Trendline.isVisibleInLegend");
  const polynomialOrder$ = dart.privateName(charts, "Trendline.polynomialOrder");
  const period$0 = dart.privateName(charts, "Trendline.period");
  const slopeIntercept = dart.privateName(charts, "Trendline.slopeIntercept");
  const polynomialSlopes = dart.privateName(charts, "Trendline.polynomialSlopes");
  const points$ = dart.privateName(charts, "Trendline.points");
  charts.Trendline = class Trendline extends core.Object {
    get animationDuration() {
      return this[animationDuration$5];
    }
    set animationDuration(value) {
      super.animationDuration = value;
    }
    get backwardForecast() {
      return this[backwardForecast$];
    }
    set backwardForecast(value) {
      super.backwardForecast = value;
    }
    get forwardForecast() {
      return this[forwardForecast$];
    }
    set forwardForecast(value) {
      super.forwardForecast = value;
    }
    get width() {
      return this[width$10];
    }
    set width(value) {
      super.width = value;
    }
    get opacity() {
      return this[opacity$6];
    }
    set opacity(value) {
      super.opacity = value;
    }
    get dashArray() {
      return this[dashArray$7];
    }
    set dashArray(value) {
      super.dashArray = value;
    }
    get enableTooltip() {
      return this[enableTooltip$2];
    }
    set enableTooltip(value) {
      super.enableTooltip = value;
    }
    get color() {
      return this[color$12];
    }
    set color(value) {
      super.color = value;
    }
    get name() {
      return this[name$6];
    }
    set name(value) {
      super.name = value;
    }
    get intercept() {
      return this[intercept$];
    }
    set intercept(value) {
      super.intercept = value;
    }
    get isVisible() {
      return this[isVisible$8];
    }
    set isVisible(value) {
      super.isVisible = value;
    }
    get legendIconType() {
      return this[legendIconType$5];
    }
    set legendIconType(value) {
      super.legendIconType = value;
    }
    get type() {
      return this[type$0];
    }
    set type(value) {
      super.type = value;
    }
    get valueField() {
      return this[valueField$2];
    }
    set valueField(value) {
      super.valueField = value;
    }
    get markerSettings() {
      return this[markerSettings$0];
    }
    set markerSettings(value) {
      super.markerSettings = value;
    }
    get isVisibleInLegend() {
      return this[isVisibleInLegend$1];
    }
    set isVisibleInLegend(value) {
      super.isVisibleInLegend = value;
    }
    get polynomialOrder() {
      return this[polynomialOrder$];
    }
    set polynomialOrder(value) {
      super.polynomialOrder = value;
    }
    get period() {
      return this[period$0];
    }
    set period(value) {
      super.period = value;
    }
    get slopeIntercept() {
      return this[slopeIntercept];
    }
    set slopeIntercept(value) {
      this[slopeIntercept] = value;
    }
    get polynomialSlopes() {
      return this[polynomialSlopes];
    }
    set polynomialSlopes(value) {
      this[polynomialSlopes] = value;
    }
    get points() {
      return this[points$];
    }
    set points(value) {
      this[points$] = value;
    }
    getDataPoint(x, y, sourcePoint, series, index) {
      let trendPoint = new charts.CartesianChartPoint.new(x, y);
      trendPoint.x = charts.DateTimeAxis.is(series[_xAxis$]) ? new core.DateTime.fromMillisecondsSinceEpoch(core.int._check(dart.dsend(x, 'floor', []))) : x;
      trendPoint.y = y;
      trendPoint.xValue = x;
      trendPoint.pointColorMapper = this[_series].color;
      trendPoint.yValue = y;
      trendPoint.isVisible = true;
      series[_minimumX] = math.min(core.num, series[_minimumX], core.num._check(trendPoint.xValue));
      series[_minimumY] = math.min(core.num, series[_minimumY], core.num._check(trendPoint.yValue));
      series[_maximumX] = math.max(core.num, series[_maximumX], core.num._check(trendPoint.xValue));
      series[_maximumY] = math.max(core.num, series[_maximumY], core.num._check(trendPoint.yValue));
      return trendPoint;
    }
    getLinearPoints(points, xValues, yValues, series, slopeInterceptLinear) {
      let x1Linear = null;
      let x2Linear = null;
      let pts = JSArrayOfCartesianChartPoint().of([]);
      if (charts.DateTimeAxis.is(series[_xAxis$])) {
        x1Linear = this[_increaseDateTimeForecast](charts.DateTimeAxis._check(series[_xAxis$]), core.int._check(dart.dsend(xValues, '_get', [0])), -dart.notNull(this.backwardForecast));
        x2Linear = this[_increaseDateTimeForecast](charts.DateTimeAxis._check(series[_xAxis$]), core.int._check(dart.dsend(xValues, '_get', [dart.dsend(dart.dload(xValues, 'length'), '-', [1])])), this.forwardForecast);
      } else {
        x1Linear = core.num._check(dart.dsend(dart.dsend(xValues, '_get', [0]), '-', [this.backwardForecast]));
        x2Linear = core.num._check(dart.dsend(dart.dsend(xValues, '_get', [dart.dsend(dart.dload(xValues, 'length'), '-', [1])]), '+', [this.forwardForecast]));
      }
      let y1Linear = dart.notNull(slopeInterceptLinear.slope) * dart.notNull(x1Linear) + dart.notNull(slopeInterceptLinear.intercept);
      let y2Linear = dart.notNull(slopeInterceptLinear.slope) * dart.notNull(x2Linear) + dart.notNull(slopeInterceptLinear.intercept);
      pts[$add](this.getDataPoint(x1Linear, y1Linear, points[$_get](0), series, pts[$length]));
      pts[$add](this.getDataPoint(x2Linear, y2Linear, points[$_get](dart.notNull(points[$length]) - 1), series, pts[$length]));
      return pts;
    }
    [_setLinearRange](points, series) {
      let t3, t3$;
      let xValues = [];
      let yValues = [];
      let index = 0;
      while (index < dart.notNull(points[$length])) {
        let point = points[$_get](index);
        xValues[$add]((t3 = point.xValue, t3 == null ? point.x : t3));
        if (!(charts.RangeAreaSeries.is(series) || charts.RangeColumnSeries.is(series) || charts.HiloSeries.is(series) || charts.HiloOpenCloseSeries.is(series) || charts.CandleSeries.is(series)))
          yValues[$add]((t3$ = point.yValue, t3$ == null ? point.y : t3$));
        else {
          yValues[$add](this.valueField[$toLowerCase]() === "low" ? point.low : point.high);
        }
        index = index + 1;
      }
      this.slopeIntercept = this[_findSlopeIntercept](xValues, yValues, points);
      this[_pointsData] = this.getLinearPoints(points, xValues, yValues, series, this.slopeIntercept);
    }
    getExponentialPoints(points, xValues, yValues, series, slopeInterceptExpo) {
      let x1 = null;
      let x2 = null;
      let x3 = null;
      let midPoint = (dart.notNull(points[$length]) / 2)[$round]();
      let ptsExpo = JSArrayOfCartesianChartPoint().of([]);
      if (charts.DateTimeAxis.is(series[_xAxis$])) {
        x1 = this[_increaseDateTimeForecast](charts.DateTimeAxis._check(series[_xAxis$]), core.int._check(dart.dsend(xValues, '_get', [0])), -dart.notNull(this.backwardForecast));
        x2 = core.num._check(dart.dsend(xValues, '_get', [midPoint - 1]));
        x3 = this[_increaseDateTimeForecast](charts.DateTimeAxis._check(series[_xAxis$]), core.int._check(dart.dsend(xValues, '_get', [dart.dsend(dart.dload(xValues, 'length'), '-', [1])])), this.forwardForecast);
      } else {
        x1 = core.num._check(dart.dsend(dart.dsend(xValues, '_get', [0]), '-', [this.backwardForecast]));
        x2 = core.num._check(dart.dsend(xValues, '_get', [midPoint - 1]));
        x3 = core.num._check(dart.dsend(dart.dsend(xValues, '_get', [dart.dsend(dart.dload(xValues, 'length'), '-', [1])]), '+', [this.forwardForecast]));
      }
      let y1 = dart.notNull(slopeInterceptExpo.intercept) * math.exp(dart.notNull(slopeInterceptExpo.slope) * dart.notNull(x1));
      let y2 = dart.notNull(slopeInterceptExpo.intercept) * math.exp(dart.notNull(slopeInterceptExpo.slope) * dart.notNull(x2));
      let y3 = dart.notNull(slopeInterceptExpo.intercept) * math.exp(dart.notNull(slopeInterceptExpo.slope) * dart.notNull(x3));
      ptsExpo[$add](this.getDataPoint(x1, y1, points[$_get](0), series, ptsExpo[$length]));
      ptsExpo[$add](this.getDataPoint(x2, y2, points[$_get](dart.asInt(midPoint - 1)), series, ptsExpo[$length]));
      ptsExpo[$add](this.getDataPoint(x3, y3, points[$_get](dart.notNull(points[$length]) - 1), series, ptsExpo[$length]));
      return ptsExpo;
    }
    [_setExponentialRange](points, series) {
      let t3, t3$;
      let xValues = [];
      let yValues = [];
      let index = 0;
      while (index < dart.notNull(points[$length])) {
        let point = points[$_get](index);
        xValues[$add]((t3 = point.xValue, t3 == null ? point.x : t3));
        if (!(charts.RangeAreaSeries.is(series) || charts.RangeColumnSeries.is(series) || charts.HiloSeries.is(series) || charts.HiloOpenCloseSeries.is(series) || charts.CandleSeries.is(series)))
          yValues[$add](math.log(core.num._check((t3$ = point.yValue, t3$ == null ? point.y : t3$))));
        else
          yValues[$add](this.valueField[$toLowerCase]() === "low" ? math.log(core.num._check(point.low)) : math.log(core.num._check(point.high)));
        index = index + 1;
      }
      this.slopeIntercept = this[_findSlopeIntercept](xValues, yValues, points);
      this[_pointsData] = this.getExponentialPoints(points, xValues, yValues, series, this.slopeIntercept);
    }
    getPowerPoints(points, xValues, yValues, series, slopeInterceptPow) {
      let x1 = null;
      let x2 = null;
      let x3 = null;
      let midPoint = (dart.notNull(points[$length]) / 2)[$round]();
      let ptsPow = JSArrayOfCartesianChartPoint().of([]);
      if (charts.DateTimeAxis.is(series[_xAxis$])) {
        x1 = this[_increaseDateTimeForecast](charts.DateTimeAxis._check(series[_xAxis$]), core.int._check(dart.dsend(xValues, '_get', [0])), -dart.notNull(this.backwardForecast));
        x2 = core.num._check(dart.dsend(xValues, '_get', [midPoint - 1]));
        x3 = this[_increaseDateTimeForecast](charts.DateTimeAxis._check(series[_xAxis$]), core.int._check(dart.dsend(xValues, '_get', [dart.dsend(dart.dload(xValues, 'length'), '-', [1])])), this.forwardForecast);
      } else {
        x1 = core.num._check(dart.dsend(dart.dsend(xValues, '_get', [0]), '-', [this.backwardForecast]));
        x1 = dart.notNull(x1) > -1 ? x1 : 0;
        x2 = core.num._check(dart.dsend(xValues, '_get', [midPoint - 1]));
        x3 = core.num._check(dart.dsend(dart.dsend(xValues, '_get', [dart.dsend(dart.dload(xValues, 'length'), '-', [1])]), '+', [this.forwardForecast]));
      }
      let y1 = x1 === 0 ? 0 : dart.notNull(slopeInterceptPow.intercept) * math.pow(x1, slopeInterceptPow.slope);
      let y2 = dart.notNull(slopeInterceptPow.intercept) * math.pow(x2, slopeInterceptPow.slope);
      let y3 = dart.notNull(slopeInterceptPow.intercept) * math.pow(x3, slopeInterceptPow.slope);
      ptsPow[$add](this.getDataPoint(x1, y1, points[$_get](0), series, ptsPow[$length]));
      ptsPow[$add](this.getDataPoint(x2, y2, points[$_get](dart.asInt(midPoint - 1)), series, ptsPow[$length]));
      ptsPow[$add](this.getDataPoint(x3, y3, points[$_get](dart.notNull(points[$length]) - 1), series, ptsPow[$length]));
      return ptsPow;
    }
    [_setPowerRange](points, series) {
      let t3, t3$;
      let xValues = [];
      let yValues = [];
      let powerPoints = [];
      let index = 0;
      while (index < dart.notNull(points[$length])) {
        let point = points[$_get](index);
        powerPoints[$add]((t3 = point.xValue, t3 == null ? point.x : t3));
        let xVal = point.xValue != null && math.log(core.num._check(point.xValue))[$isFinite] ? math.log(core.num._check(point.xValue)) : typeof point.x == 'string' ? point.xValue : point.x;
        xValues[$add](xVal);
        if (!(charts.RangeAreaSeries.is(series) || charts.RangeColumnSeries.is(series) || charts.HiloSeries.is(series) || charts.HiloOpenCloseSeries.is(series) || charts.CandleSeries.is(series)))
          yValues[$add](math.log(core.num._check((t3$ = point.yValue, t3$ == null ? point.y : t3$))));
        else
          yValues[$add](this.valueField[$toLowerCase]() === "low" ? math.log(core.num._check(point.low)) : math.log(core.num._check(point.high)));
        index = index + 1;
      }
      this.slopeIntercept = this[_findSlopeIntercept](xValues, yValues, points);
      this[_pointsData] = this.getPowerPoints(points, powerPoints, yValues, series, this.slopeIntercept);
    }
    getLogarithmicPoints(points, xValues, yValues, series, slopeInterceptLog) {
      let x1 = null;
      let x2 = null;
      let x3 = null;
      let midPoint = (dart.notNull(points[$length]) / 2)[$round]();
      let ptsLog = JSArrayOfCartesianChartPoint().of([]);
      if (charts.DateTimeAxis.is(series[_xAxis$])) {
        x1 = this[_increaseDateTimeForecast](charts.DateTimeAxis._check(series[_xAxis$]), core.int._check(dart.dsend(xValues, '_get', [0])), -dart.notNull(this.backwardForecast));
        x2 = core.num._check(dart.dsend(xValues, '_get', [midPoint - 1]));
        x3 = this[_increaseDateTimeForecast](charts.DateTimeAxis._check(series[_xAxis$]), core.int._check(dart.dsend(xValues, '_get', [dart.dsend(dart.dload(xValues, 'length'), '-', [1])])), this.forwardForecast);
      } else {
        x1 = core.num._check(dart.dsend(dart.dsend(xValues, '_get', [0]), '-', [this.backwardForecast]));
        x2 = core.num._check(dart.dsend(xValues, '_get', [midPoint - 1]));
        x3 = core.num._check(dart.dsend(dart.dsend(xValues, '_get', [dart.dsend(dart.dload(xValues, 'length'), '-', [1])]), '+', [this.forwardForecast]));
      }
      let y1 = dart.notNull(slopeInterceptLog.intercept) + dart.notNull(slopeInterceptLog.slope) * dart.notNull(math.log(x1)[$isFinite] ? math.log(x1) : x1);
      let y2 = dart.notNull(slopeInterceptLog.intercept) + dart.notNull(slopeInterceptLog.slope) * dart.notNull(math.log(x2)[$isFinite] ? math.log(x2) : x2);
      let y3 = dart.notNull(slopeInterceptLog.intercept) + dart.notNull(slopeInterceptLog.slope) * dart.notNull(math.log(x3)[$isFinite] ? math.log(x3) : x3);
      ptsLog[$add](this.getDataPoint(x1, y1, points[$_get](0), series, ptsLog[$length]));
      ptsLog[$add](this.getDataPoint(x2, y2, points[$_get](dart.asInt(midPoint - 1)), series, ptsLog[$length]));
      ptsLog[$add](this.getDataPoint(x3, y3, points[$_get](dart.notNull(points[$length]) - 1), series, ptsLog[$length]));
      return ptsLog;
    }
    [_setLogarithmicRange](points, series) {
      let t3, t3$;
      let xLogValue = [];
      let yLogValue = [];
      let xPointsLgr = [];
      let index = 0;
      while (index < dart.notNull(points[$length])) {
        let point = points[$_get](index);
        xPointsLgr[$add]((t3 = point.xValue, t3 == null ? point.x : t3));
        let xVal = point.xValue != null && math.log(core.num._check(point.xValue))[$isFinite] ? math.log(core.num._check(point.xValue)) : typeof point.x == 'string' ? point.xValue : point.x;
        xLogValue[$add](xVal);
        if (!(charts.RangeAreaSeries.is(series) || charts.RangeColumnSeries.is(series) || charts.HiloSeries.is(series) || charts.HiloOpenCloseSeries.is(series) || charts.CandleSeries.is(series)))
          yLogValue[$add]((t3$ = point.yValue, t3$ == null ? point.y : t3$));
        else {
          yLogValue[$add](this.valueField[$toLowerCase]() === "low" ? point.low : point.high);
        }
        index = index + 1;
      }
      this.slopeIntercept = this[_findSlopeIntercept](xLogValue, yLogValue, points);
      this[_pointsData] = this.getLogarithmicPoints(points, xPointsLgr, yLogValue, series, this.slopeIntercept);
    }
    [_getPolynomialPoints](points, xValues, yValues, series) {
      let t4, t3, t4$, t3$, t4$0, t3$0, t4$1, t3$1;
      let midPoint = (dart.notNull(points[$length]) / 2)[$round]();
      let pts = [];
      this.polynomialSlopes = core.List.new(dart.notNull(this.polynomialOrder) + 1);
      for (let i = 0; i < dart.notNull(core.num._check(dart.dload(xValues, 'length'))); i = i + 1) {
        let xVal = dart.dsend(xValues, '_get', [i]);
        let yVal = dart.dsend(yValues, '_get', [i]);
        for (let j = 0; j <= dart.notNull(this.polynomialOrder); j = j + 1) {
          t3 = this.polynomialSlopes;
          t4 = j;
          t3[$_get](t4) == null ? t3[$_set](t4, 0) : null;
          t3$ = this.polynomialSlopes;
          t4$ = j;
          t3$[$_set](t4$, dart.dsend(t3$[$_get](t4$), '+', [math.pow(core.num._check(dart.dsend(xVal, 'toDouble', [])), j) * dart.notNull(core.num._check(yVal))]));
        }
      }
      let numArray = core.List.new(2 * dart.notNull(this.polynomialOrder) + 1);
      let matrix = core.List.new(dart.notNull(this.polynomialOrder) + 1);
      for (let i = 0; i <= dart.notNull(this.polynomialOrder); i = i + 1)
        matrix[$_set](i, core.List.new(dart.notNull(this.polynomialOrder) + 1));
      let num1 = 0;
      for (let nIndex = 0; nIndex < dart.notNull(core.num._check(dart.dload(xValues, 'length'))); nIndex = nIndex + 1) {
        let d = core.num._check(dart.dsend(xValues, '_get', [nIndex]));
        let num2 = 1.0;
        for (let j = 0; j < dart.notNull(numArray[$length]); j = j + 1, num1 = num1 + 1) {
          t3$0 = numArray;
          t4$0 = j;
          t3$0[$_get](t4$0) == null ? t3$0[$_set](t4$0, 0) : null;
          t3$1 = numArray;
          t4$1 = j;
          t3$1[$_set](t4$1, dart.dsend(t3$1[$_get](t4$1), '+', [num2]));
          num2 = num2 * dart.notNull(d);
        }
      }
      for (let i = 0; i <= dart.notNull(this.polynomialOrder); i = i + 1)
        for (let j = 0; j <= dart.notNull(this.polynomialOrder); j = j + 1) {
          dart.dsend(matrix[$_get](i), '_set', [j, numArray[$_get](i + j)]);
        }
      if (!dart.test(this.gaussJordanElimination(matrix, this.polynomialSlopes))) this.polynomialSlopes = null;
      pts = this.getPoints(points, xValues, yValues, series);
      return ListOfCartesianChartPoint()._check(pts);
    }
    [_setPolynomialRange](points, series) {
      let t3, t3$;
      let xPolyValues = [];
      let yPolyValues = [];
      let index = 0;
      while (index < dart.notNull(points[$length])) {
        let point = points[$_get](index);
        xPolyValues[$add]((t3 = point.xValue, t3 == null ? point.x : t3));
        if (!(charts.RangeAreaSeries.is(series) || charts.RangeColumnSeries.is(series) || charts.HiloSeries.is(series) || charts.HiloOpenCloseSeries.is(series) || charts.CandleSeries.is(series)))
          yPolyValues[$add]((t3$ = point.yValue, t3$ == null ? point.y : t3$));
        else
          yPolyValues[$add](this.valueField[$toLowerCase]() === "low" ? point.low : point.high);
        index = index + 1;
      }
      this[_pointsData] = this[_getPolynomialPoints](points, xPolyValues, yPolyValues, series);
    }
    getPoints(points, xValues, yValues, series) {
      let midPoint = (dart.notNull(points[$length]) / 2)[$round]();
      let _polynomialSlopes = this.polynomialSlopes;
      let pts = JSArrayOfCartesianChartPoint().of([]);
      let x1 = 1;
      let xVal = null;
      let yVal = null;
      let _backwardForecast = charts.DateTimeAxis.is(series[_xAxis$]) ? this[_getForecastDate](series[_xAxis$], false) : this.backwardForecast;
      let _forwardForecast = charts.DateTimeAxis.is(series[_xAxis$]) ? this[_getForecastDate](series[_xAxis$], true) : this.forwardForecast;
      for (let index = 1; index <= dart.notNull(_polynomialSlopes[$length]); index = index + 1) {
        if (index === 1) {
          xVal = dart.dsend(dart.dsend(xValues, '_get', [0]), '-', [dart.dsend(_backwardForecast, 'toDouble', [])]);
          yVal = this.getPolynomialYValue(_polynomialSlopes, xVal);
          pts[$add](this.getDataPoint(xVal, yVal, points[$_get](0), series, pts[$length]));
        } else if (index === _polynomialSlopes[$length]) {
          xVal = dart.dsend(dart.dsend(xValues, '_get', [dart.notNull(points[$length]) - 1]), '+', [dart.dsend(_forwardForecast, 'toDouble', [])]);
          yVal = this.getPolynomialYValue(_polynomialSlopes, xVal);
          pts[$add](this.getDataPoint(xVal, yVal, points[$_get](dart.notNull(points[$length]) - 1), series, pts[$length]));
        } else {
          x1 = x1 + (dart.notNull(points[$length]) + dart.notNull(this.forwardForecast)) / dart.notNull(_polynomialSlopes[$length]);
          xVal = dart.dsend(dart.dsend(xValues, '_get', [x1[$floor]() - 1]), '*', [1.0]);
          yVal = this.getPolynomialYValue(_polynomialSlopes, xVal);
          pts[$add](this.getDataPoint(xVal, yVal, points[$_get](x1[$floor]() - 1), series, pts[$length]));
        }
      }
      return pts;
    }
    getPolynomialYValue(slopes, x) {
      let sum = 0.0;
      for (let i = 0; i < dart.notNull(slopes[$length]); i = i + 1) {
        sum = sum + dart.notNull(core.num._check(dart.dsend(slopes[$_get](i), '*', [math.pow(core.num._check(x), i)])));
      }
      return sum;
    }
    getMovingAveragePoints(points, xValues, yValues, series) {
      let pts = JSArrayOfCartesianChartPoint().of([]);
      let _period = dart.notNull(this.period) >= dart.notNull(points[$length]) ? dart.notNull(points[$length]) - 1 : this.period;
      _period = math.max(core.int, 2, _period);
      let y = null;
      let x = null;
      let count = null;
      let nullCount = null;
      for (let index = 0; index < dart.notNull(points[$length]) - 1; index = index + 1) {
        y = count = nullCount = 0;
        for (let j = index; dart.notNull(count) < dart.notNull(_period); j = j + 1) {
          count = dart.notNull(count) + 1;
          if (j >= dart.notNull(yValues[$length]) || yValues[$_get](j) == null) {
            nullCount = dart.notNull(nullCount) + 1;
          }
          y = dart.notNull(y) + dart.notNull(core.num._check(j >= dart.notNull(yValues[$length]) ? 0 : yValues[$_get](j)));
        }
        y = dart.notNull(_period) - dart.notNull(nullCount) <= 0 ? null : dart.notNull(y) / (dart.notNull(_period) - dart.notNull(nullCount));
        if (y != null && !y[$isNaN] && index + dart.notNull(this.period) < dart.notNull(xValues[$length]) + 1) {
          x = xValues[$_get](dart.notNull(_period) - 1 + index);
          pts[$add](this.getDataPoint(x, y, points[$_get](dart.notNull(_period) - 1 + index), series, pts[$length]));
        }
      }
      return pts;
    }
    [_setMovingAverageRange](points, series) {
      let t3, t3$;
      let xValues = [];
      let yValues = [];
      let xAvgValues = [];
      for (let index = 0; index < dart.notNull(points[$length]); index = index + 1) {
        let point = points[$_get](index);
        xAvgValues[$add]((t3 = dart.dload(point, 'xValue'), t3 == null ? dart.dload(point, 'x') : t3));
        xValues[$add](index + 1);
        if (!(charts.RangeAreaSeries.is(series) || charts.RangeColumnSeries.is(series) || charts.HiloSeries.is(series) || charts.HiloOpenCloseSeries.is(series) || charts.CandleSeries.is(series)))
          yValues[$add]((t3$ = dart.dload(point, 'yValue'), t3$ == null ? dart.dload(point, 'y') : t3$));
        else {
          yValues[$add](this.valueField[$toLowerCase]() === "low" ? dart.dload(point, 'low') : dart.dload(point, 'high'));
        }
      }
      this[_pointsData] = this.getMovingAveragePoints(points, xAvgValues, yValues, series);
    }
    [_findSlopeIntercept](xValues, yValues, points) {
      let xAvg = 0.0;
      let yAvg = 0.0;
      let xyAvg = 0.0;
      let xxAvg = 0.0;
      let index = 0;
      let slope = 0.0;
      let intercept = 0.0;
      while (index < dart.notNull(points[$length])) {
        if (dart.dtest(dart.dload(dart.dsend(yValues, '_get', [index]), 'isNaN'))) {
          dart.dsend(yValues, '_set', [index, dart.dsend(dart.dsend(dart.dsend(yValues, '_get', [index - 1]), '+', [dart.dsend(yValues, '_get', [index + 1])]), '/', [2])]);
        }
        xAvg = xAvg + dart.notNull(core.num._check(dart.dsend(xValues, '_get', [index])));
        yAvg = yAvg + dart.notNull(core.num._check(dart.dsend(yValues, '_get', [index])));
        xyAvg = xyAvg + dart.notNull(core.num._check(dart.dsend(dart.dsend(dart.dsend(xValues, '_get', [index]), 'toDouble', []), '*', [dart.dsend(dart.dsend(yValues, '_get', [index]), 'toDouble', [])])));
        xxAvg = xxAvg + dart.notNull(core.num._check(dart.dsend(dart.dsend(dart.dsend(xValues, '_get', [index]), 'toDouble', []), '*', [dart.dsend(dart.dsend(xValues, '_get', [index]), 'toDouble', [])])));
        index = index + 1;
      }
      if (this.intercept != null && this.intercept !== 0 && (dart.equals(this.type, charts.TrendlineType.linear) || dart.equals(this.type, charts.TrendlineType.exponential))) {
        intercept = this.intercept[$toDouble]();
        switch (this.type) {
          case C555 || CT.C555:
          {
            slope = (xyAvg - intercept * xAvg) / xxAvg;
            break;
          }
          case C556 || CT.C556:
          {
            slope = (xyAvg - math.log(intercept[$abs]()) * xAvg) / xxAvg;
            break;
          }
          default:
          {
            break;
          }
        }
      } else {
        slope = (dart.notNull(points[$length]) * xyAvg - xAvg * yAvg) / (dart.notNull(points[$length]) * xxAvg - xAvg * xAvg);
        if (dart.equals(this.type, charts.TrendlineType.exponential) || dart.equals(this.type, charts.TrendlineType.power)) {
          intercept = math.exp((yAvg - slope * xAvg) / dart.notNull(points[$length]));
        } else {
          intercept = (yAvg - slope * xAvg) / dart.notNull(points[$length]);
        }
      }
      let slopeIntercept = null;
      slopeIntercept = new charts._SlopeIntercept.new();
      slopeIntercept.slope = slope;
      slopeIntercept.intercept = intercept;
      return slopeIntercept;
    }
    [_initDataSource](chart, series) {
      if (dart.test(this[_pointsData][$isNotEmpty])) {
        switch (this.type) {
          case C555 || CT.C555:
          {
            this[_setLinearRange](this[_pointsData], series);
            break;
          }
          case C556 || CT.C556:
          {
            this[_setExponentialRange](this[_pointsData], series);
            break;
          }
          case C557 || CT.C557:
          {
            this[_setPowerRange](this[_pointsData], series);
            break;
          }
          case C558 || CT.C558:
          {
            this[_setLogarithmicRange](this[_pointsData], series);
            break;
          }
          case C559 || CT.C559:
          {
            this[_setPolynomialRange](this[_pointsData], series);
            break;
          }
          case C560 || CT.C560:
          {
            this[_setMovingAverageRange](this[_pointsData], series);
            break;
          }
          default:
          {
            break;
          }
        }
      }
    }
    calculateTrendlinePoints(series, chart) {
      let rect = charts._calculatePlotOffset(chart[_chartAxis][_axisClipRect], new ui.Offset.new(series[_xAxis$].plotOffset, series[_yAxis$].plotOffset));
      this.points = JSArrayOfOffset().of([]);
      if (series.trendlines != null && this[_pointsData] != null) {
        for (let i = 0; i < dart.notNull(this[_pointsData][$length]); i = i + 1) {
          if (this[_pointsData][$_get](i).x != null && this[_pointsData][$_get](i).y != null) {
            let currentChartPoint = this[_pointsData][$_get](i).markerPoint = charts._calculatePoint(core.num._check(charts.DateTimeAxis.is(series[_xAxis$]) ? this[_pointsData][$_get](i).xValue : this[_pointsData][$_get](i).x), core.num._check(this[_pointsData][$_get](i).y), series[_xAxis$], series[_yAxis$], chart[_requireInvertedAxis], series, rect);
            this.points[$add](new ui.Offset.new(currentChartPoint.x, currentChartPoint.y));
            this[_pointsData][$_get](i).region = new ui.Rect.fromLTRB(this.points[$_get](i).dx, this.points[$_get](i).dy, this.points[$_get](i).dx, this.points[$_get](i).dy);
          }
        }
        this[_calculateMarkerShapesPoint](series);
      }
    }
    [_calculateMarkerShapesPoint](series) {
      this[_markerShapes] = JSArrayOfPath().of([]);
      for (let i = 0; i < dart.notNull(this[_pointsData][$length]); i = i + 1) {
        let point = this[_pointsData][$_get](i);
        let markerType = this.markerSettings.shape;
        let size = new ui.Size.new(this.markerSettings.width, this.markerSettings.height);
        this[_markerShapes][$add](charts._getMarkerShapes(markerType, new ui.Offset.new(point.markerPoint.x, point.markerPoint.y), size, series));
      }
    }
    [_setDataSource](series, chart) {
      if (series != null) {
        this[_series] = series;
        this[_pointsData] = series[_dataPoints$];
        if (charts._StackedSeriesBase.is(series)) for (let i = 0; i < dart.notNull(this[_pointsData][$length]); i = i + 1) {
          this[_pointsData][$_get](i).y = series[_stackingValues$][$_get](0).endValues[$_get](i);
          this[_pointsData][$_get](i).yValue = series[_stackingValues$][$_get](0).endValues[$_get](i);
        }
        this[_initDataSource](chart, this[_series]);
      }
    }
    [_getControlPoints](_dataPoints, index) {
      let yCoef = JSArrayOfnum().of([]);
      let xValues = JSArrayOfnum().of([]);
      let yValues = JSArrayOfnum().of([]);
      for (let i = 0; i < dart.notNull(_dataPoints[$length]); i = i + 1) {
        xValues[$add](_dataPoints[$_get](i).dx);
        yValues[$add](_dataPoints[$_get](i).dy);
      }
      yCoef = charts._naturalSpline(xValues, yValues, yCoef, xValues[$length], charts.SplineType.natural);
      return charts._calculateControlPoints(xValues, yValues, yCoef[$_get](index)[$toDouble](), yCoef[$_get](dart.notNull(index) + 1)[$toDouble](), index);
    }
    [_increaseDateTimeForecast](axis, value, interval) {
      let dateTime = new core.DateTime.fromMillisecondsSinceEpoch(value);
      switch (axis.intervalType) {
        case C364 || CT.C364:
        {
          dateTime = new core.DateTime.new(dart.notNull(dateTime.year) + interval[$floor](), dateTime.month, dateTime.day, 0, 0, 0);
          break;
        }
        case C365 || CT.C365:
        {
          dateTime = new core.DateTime.new(dateTime.year, dart.notNull(dateTime.month) + interval[$floor](), dateTime.day, 0, 0, 0);
          break;
        }
        case C366 || CT.C366:
        {
          dateTime = new core.DateTime.new(dateTime.year, dateTime.month, dart.notNull(dateTime.day) + interval[$floor](), 0, 0, 0);
          break;
        }
        case C367 || CT.C367:
        {
          dateTime = new core.DateTime.new(dateTime.year, dateTime.month, dateTime.day, dart.notNull(dateTime.hour) + interval[$floor](), 0, 0);
          break;
        }
        case C368 || CT.C368:
        {
          dateTime = new core.DateTime.new(dateTime.year, dateTime.month, dateTime.day, dateTime.hour, dart.notNull(dateTime.minute) + interval[$floor](), 0);
          break;
        }
        case C369 || CT.C369:
        {
          dateTime = new core.DateTime.new(dateTime.year, dateTime.month, dateTime.day, dateTime.hour, dateTime.minute, dart.notNull(dateTime.second) + interval[$floor]());
          break;
        }
        default:
        {
          break;
        }
      }
      return dateTime.millisecondsSinceEpoch;
    }
    gaussJordanElimination(matrix, _polynomialSlopes) {
      let t5, t4, t3, t4$, t3$, t4$0, t3$0, t4$1, t3$1, t4$2, t3$2;
      let length = matrix[$length];
      let numArray1 = core.List.new(length);
      let numArray2 = core.List.new(length);
      let numArray3 = core.List.new(length);
      for (let index = 0; index < dart.notNull(length); index = index + 1) {
        numArray3[$_set](index, 0);
      }
      let index1 = 0;
      while (index1 < dart.notNull(length)) {
        let num1 = 0;
        let index2 = 0;
        let index3 = 0;
        let index4 = 0;
        while (index4 < dart.notNull(length)) {
          if (!dart.equals(numArray3[$_get](index4), 1)) {
            let index5 = 0;
            while (index5 < dart.notNull(length)) {
              if (dart.equals(numArray3[$_get](index5), 0) && dart.dtest(dart.dsend(dart.dsend(dart.dsend(matrix[$_get](index4), '_get', [index5]), 'abs', []), '>=', [num1]))) {
                num1 = dart.dsend(dart.dsend(matrix[$_get](index4), '_get', [index5]), 'abs', []);
                index2 = index4;
                index3 = index5;
              }
              index5 = index5 + 1;
            }
          }
          index4 = index4 + 1;
        }
        t3 = numArray3;
        t4 = index3;
        t5 = dart.dsend(t3[$_get](t4), '+', [1]);
        t3[$_set](t4, t5);
        t5;
        if (index2 !== index3) {
          let index4_1 = 0;
          while (index4_1 < dart.notNull(length)) {
            let num2 = dart.dsend(matrix[$_get](index2), '_get', [index4_1]);
            dart.dsend(matrix[$_get](index2), '_set', [index4_1, dart.dsend(matrix[$_get](index3), '_get', [index4_1])]);
            dart.dsend(matrix[$_get](index3), '_set', [index4_1, num2]);
            index4_1 = index4_1 + 1;
          }
          let num3 = this.polynomialSlopes[$_get](index2);
          this.polynomialSlopes[$_set](index2, this.polynomialSlopes[$_get](index3));
          this.polynomialSlopes[$_set](index3, num3);
        }
        numArray2[$_set](index1, index2);
        numArray1[$_set](index1, index3);
        if (dart.equals(dart.dsend(matrix[$_get](index3), '_get', [index3]), 0.0)) {
          return false;
        }
        let num4 = 1.0 / dart.notNull(core.num._check(dart.dsend(matrix[$_get](index3), '_get', [index3])));
        dart.dsend(matrix[$_get](index3), '_set', [index3, 1.0]);
        let iindex4 = 0;
        while (iindex4 < dart.notNull(length)) {
          t3$ = matrix[$_get](index3);
          t4$ = iindex4;
          dart.dsend(t3$, '_set', [t4$, dart.dsend(dart.dsend(t3$, '_get', [t4$]), '*', [num4])]);
          iindex4 = iindex4 + 1;
        }
        t3$0 = this.polynomialSlopes;
        t4$0 = index3;
        t3$0[$_set](t4$0, dart.dsend(t3$0[$_get](t4$0), '*', [num4]));
        let iandex4 = 0;
        while (iandex4 < dart.notNull(length)) {
          if (iandex4 !== index3) {
            let num2 = dart.dsend(matrix[$_get](iandex4), '_get', [index3]);
            dart.dsend(matrix[$_get](iandex4), '_set', [index3, 0.0]);
            let index5 = 0;
            while (index5 < dart.notNull(length)) {
              t3$1 = matrix[$_get](iandex4);
              t4$1 = index5;
              dart.dsend(t3$1, '_set', [t4$1, dart.dsend(dart.dsend(t3$1, '_get', [t4$1]), '-', [dart.dsend(dart.dsend(matrix[$_get](index3), '_get', [index5]), '*', [num2])])]);
              index5 = index5 + 1;
            }
            t3$2 = this.polynomialSlopes;
            t4$2 = iandex4;
            t3$2[$_set](t4$2, dart.dsend(t3$2[$_get](t4$2), '-', [dart.dsend(this.polynomialSlopes[$_get](index3), '*', [num2])]));
          }
          iandex4 = iandex4 + 1;
        }
        index1 = index1 + 1;
      }
      for (let iindex1 = dart.notNull(length) - 1; iindex1 >= 0; iindex1 = iindex1 - 1)
        if (!dart.equals(numArray2[$_get](iindex1), numArray1[$_get](iindex1))) for (let iindex2 = 0; iindex2 < dart.notNull(length); iindex2 = iindex2 + 1) {
          let number = dart.dsend(matrix[$_get](iindex2), '_get', [numArray2[$_get](iindex1)]);
          dart.dsend(matrix[$_get](iindex2), '_set', [numArray2[$_get](iindex1), dart.dsend(matrix[$_get](iindex2), '_get', [numArray1[$_get](iindex1)])]);
          dart.dsend(matrix[$_get](iindex2), '_set', [numArray1[$_get](iindex1), number]);
        }
      return true;
    }
    getPolynomialCurve(points, series, chart) {
      let polyPoints = JSArrayOfOffset().of([]);
      let start = charts.DateTimeAxis.is(series[_xAxis$]) ? points[$_get](0).xValue : points[$_get](0).x;
      let end = charts.DateTimeAxis.is(series[_xAxis$]) ? points[$_get](dart.notNull(points[$length]) - 1).xValue : points[$_get](dart.notNull(points[$length]) - 1).xValue;
      for (let x = start; dart.notNull(polyPoints[$length]) <= 100; x = dart.dsend(x, '+', [dart.dsend(dart.dsend(end, '-', [start]), '/', [100])])) {
        let y = this.getPolynomialYValue(this.polynomialSlopes, x);
        let position = charts._calculatePoint(core.num._check(x), core.num._check(y), series[_xAxis$], series[_yAxis$], chart[_requireInvertedAxis], series, chart[_chartAxis][_axisClipRect]);
        polyPoints[$add](new ui.Offset.new(position.x, position.y));
      }
      return polyPoints;
    }
    [_getForecastDate](axis, _isForward) {
      let duration = C356 || CT.C356;
      switch (dart.dload(axis, 'intervalType')) {
        case C370 || CT.C370:
        {
          duration = C356 || CT.C356;
          break;
        }
        case C364 || CT.C364:
        {
          duration = new core.Duration.new({days: (365.25 * dart.notNull(dart.test(_isForward) ? this.forwardForecast : this.backwardForecast))[$round]()});
          break;
        }
        case C365 || CT.C365:
        {
          duration = new core.Duration.new({days: 31 * (dart.test(_isForward) ? this.forwardForecast : this.backwardForecast)[$round]()});
          break;
        }
        case C366 || CT.C366:
        {
          duration = new core.Duration.new({days: (dart.test(_isForward) ? this.forwardForecast : this.backwardForecast)[$round]()});
          break;
        }
        case C367 || CT.C367:
        {
          duration = new core.Duration.new({hours: (dart.test(_isForward) ? this.forwardForecast : this.backwardForecast)[$round]()});
          break;
        }
        case C368 || CT.C368:
        {
          duration = new core.Duration.new({minutes: (dart.test(_isForward) ? this.forwardForecast : this.backwardForecast)[$round]()});
          break;
        }
        case C369 || CT.C369:
        {
          duration = new core.Duration.new({seconds: (dart.test(_isForward) ? this.forwardForecast : this.backwardForecast)[$round]()});
        }
      }
      return duration.inMilliseconds;
    }
  };
  (charts.Trendline.new = function(opts) {
    let t3, t3$, t3$0, t3$1, t3$2, t3$3, t3$4, t3$5, t3$6, t3$7, t3$8, t3$9, t3$10, t3$11, t3$12, t3$13, t3$14;
    let enableTooltip = opts && 'enableTooltip' in opts ? opts.enableTooltip : null;
    let intercept = opts && 'intercept' in opts ? opts.intercept : null;
    let name = opts && 'name' in opts ? opts.name : null;
    let dashArray = opts && 'dashArray' in opts ? opts.dashArray : null;
    let color = opts && 'color' in opts ? opts.color : null;
    let type = opts && 'type' in opts ? opts.type : null;
    let backwardForecast = opts && 'backwardForecast' in opts ? opts.backwardForecast : null;
    let forwardForecast = opts && 'forwardForecast' in opts ? opts.forwardForecast : null;
    let opacity = opts && 'opacity' in opts ? opts.opacity : null;
    let isVisible = opts && 'isVisible' in opts ? opts.isVisible : null;
    let width = opts && 'width' in opts ? opts.width : null;
    let animationDuration = opts && 'animationDuration' in opts ? opts.animationDuration : null;
    let valueField = opts && 'valueField' in opts ? opts.valueField : null;
    let isVisibleInLegend = opts && 'isVisibleInLegend' in opts ? opts.isVisibleInLegend : null;
    let legendIconType = opts && 'legendIconType' in opts ? opts.legendIconType : null;
    let markerSettings = opts && 'markerSettings' in opts ? opts.markerSettings : null;
    let polynomialOrder = opts && 'polynomialOrder' in opts ? opts.polynomialOrder : null;
    let period = opts && 'period' in opts ? opts.period : null;
    this[_pointsData] = null;
    this[_series] = null;
    this[slopeIntercept] = null;
    this[polynomialSlopes] = null;
    this[_markerShapes] = null;
    this[points$] = null;
    this[_isNeedRender] = null;
    this[intercept$] = intercept;
    this[name$6] = name;
    this[dashArray$7] = dashArray;
    this[enableTooltip$2] = (t3 = enableTooltip, t3 == null ? true : t3);
    this[type$0] = (t3$ = type, t3$ == null ? charts.TrendlineType.linear : t3$);
    this[backwardForecast$] = (t3$0 = backwardForecast, t3$0 == null ? 0.0 : t3$0);
    this[forwardForecast$] = (t3$1 = forwardForecast, t3$1 == null ? 0.0 : t3$1);
    this[opacity$6] = (t3$2 = opacity, t3$2 == null ? 1.0 : t3$2);
    this[valueField$2] = (t3$3 = valueField, t3$3 == null ? "high" : t3$3);
    this[width$10] = (t3$4 = width, t3$4 == null ? 2.0 : t3$4);
    this[isVisible$8] = (t3$5 = isVisible, t3$5 == null ? true : t3$5);
    this[isVisibleInLegend$1] = (t3$6 = isVisibleInLegend, t3$6 == null ? true : t3$6);
    this[animationDuration$5] = (t3$7 = animationDuration, t3$7 == null ? 1500.0 : t3$7);
    this[markerSettings$0] = (t3$8 = markerSettings, t3$8 == null ? new charts.MarkerSettings.new() : t3$8);
    this[legendIconType$5] = (t3$9 = legendIconType, t3$9 == null ? charts.LegendIconType.horizontalLine : t3$9);
    this[polynomialOrder$] = (t3$10 = polynomialOrder, t3$10 == null ? 2 : t3$10);
    this[period$0] = (t3$11 = period, t3$11 == null ? 2 : t3$11);
    this[color$12] = (t3$12 = color, t3$12 == null ? colors$.Colors.blue : t3$12);
    this[_fillColor] = (t3$13 = color, t3$13 == null ? colors$.Colors.blue : t3$13);
    this[_opacity] = (t3$14 = opacity, t3$14 == null ? 1.0 : t3$14);
    this[_name$] = name;
    this[_visible] = isVisible;
    this[_dashArray] = dashArray;
    ;
  }).prototype = charts.Trendline.prototype;
  dart.addTypeTests(charts.Trendline);
  dart.setMethodSignature(charts.Trendline, () => ({
    __proto__: dart.getMethods(charts.Trendline.__proto__),
    getDataPoint: dart.fnType(charts.CartesianChartPoint, [dart.dynamic, dart.dynamic, charts.CartesianChartPoint, charts.CartesianSeries, core.int]),
    getLinearPoints: dart.fnType(core.List$(charts.CartesianChartPoint), [core.List$(charts.CartesianChartPoint), dart.dynamic, dart.dynamic, charts.CartesianSeries, charts._SlopeIntercept]),
    [_setLinearRange]: dart.fnType(dart.void, [core.List$(charts.CartesianChartPoint), charts.CartesianSeries]),
    getExponentialPoints: dart.fnType(core.List$(charts.CartesianChartPoint), [core.List$(charts.CartesianChartPoint), dart.dynamic, dart.dynamic, charts.CartesianSeries, charts._SlopeIntercept]),
    [_setExponentialRange]: dart.fnType(dart.void, [core.List$(charts.CartesianChartPoint), charts.CartesianSeries]),
    getPowerPoints: dart.fnType(core.List$(charts.CartesianChartPoint), [core.List$(charts.CartesianChartPoint), dart.dynamic, dart.dynamic, charts.CartesianSeries, charts._SlopeIntercept]),
    [_setPowerRange]: dart.fnType(dart.void, [core.List$(charts.CartesianChartPoint), charts.CartesianSeries]),
    getLogarithmicPoints: dart.fnType(core.List$(charts.CartesianChartPoint), [core.List$(charts.CartesianChartPoint), dart.dynamic, dart.dynamic, charts.CartesianSeries, charts._SlopeIntercept]),
    [_setLogarithmicRange]: dart.fnType(dart.void, [core.List$(charts.CartesianChartPoint), charts.CartesianSeries]),
    [_getPolynomialPoints]: dart.fnType(core.List$(charts.CartesianChartPoint), [core.List$(charts.CartesianChartPoint), dart.dynamic, dart.dynamic, charts.CartesianSeries]),
    [_setPolynomialRange]: dart.fnType(dart.void, [core.List$(charts.CartesianChartPoint), charts.CartesianSeries]),
    getPoints: dart.fnType(core.List$(charts.CartesianChartPoint), [core.List$(charts.CartesianChartPoint), dart.dynamic, dart.dynamic, charts.CartesianSeries]),
    getPolynomialYValue: dart.fnType(core.double, [core.List, dart.dynamic]),
    getMovingAveragePoints: dart.fnType(core.List$(charts.CartesianChartPoint), [core.List$(charts.CartesianChartPoint), core.List, core.List, charts.CartesianSeries]),
    [_setMovingAverageRange]: dart.fnType(dart.void, [core.List$(charts.CartesianChartPoint), charts.CartesianSeries]),
    [_findSlopeIntercept]: dart.fnType(charts._SlopeIntercept, [dart.dynamic, dart.dynamic, core.List$(charts.CartesianChartPoint)]),
    [_initDataSource]: dart.fnType(dart.void, [charts.SfCartesianChart, charts.CartesianSeries]),
    calculateTrendlinePoints: dart.fnType(dart.void, [charts.CartesianSeries, charts.SfCartesianChart]),
    [_calculateMarkerShapesPoint]: dart.fnType(dart.void, [charts.CartesianSeries]),
    [_setDataSource]: dart.fnType(dart.void, [charts.CartesianSeries, charts.SfCartesianChart]),
    [_getControlPoints]: dart.fnType(core.List$(core.double), [core.List$(ui.Offset), core.int]),
    [_increaseDateTimeForecast]: dart.fnType(core.int, [charts.DateTimeAxis, core.int, core.num]),
    gaussJordanElimination: dart.fnType(core.bool, [core.List, core.List]),
    getPolynomialCurve: dart.fnType(core.List$(ui.Offset), [core.List$(charts.CartesianChartPoint), charts.CartesianSeries, charts.SfCartesianChart]),
    [_getForecastDate]: dart.fnType(dart.dynamic, [dart.dynamic, core.bool])
  }));
  dart.setLibraryUri(charts.Trendline, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.Trendline, () => ({
    __proto__: dart.getFields(charts.Trendline.__proto__),
    animationDuration: dart.finalFieldType(core.double),
    backwardForecast: dart.finalFieldType(core.double),
    forwardForecast: dart.finalFieldType(core.double),
    width: dart.finalFieldType(core.double),
    opacity: dart.finalFieldType(core.double),
    dashArray: dart.finalFieldType(core.List$(core.double)),
    enableTooltip: dart.finalFieldType(core.bool),
    color: dart.finalFieldType(ui.Color),
    name: dart.finalFieldType(core.String),
    intercept: dart.finalFieldType(core.double),
    isVisible: dart.finalFieldType(core.bool),
    legendIconType: dart.finalFieldType(charts.LegendIconType),
    type: dart.finalFieldType(charts.TrendlineType),
    valueField: dart.finalFieldType(core.String),
    markerSettings: dart.finalFieldType(charts.MarkerSettings),
    isVisibleInLegend: dart.finalFieldType(core.bool),
    polynomialOrder: dart.finalFieldType(core.int),
    period: dart.finalFieldType(core.int),
    [_pointsData]: dart.fieldType(core.List$(charts.CartesianChartPoint)),
    [_series]: dart.fieldType(charts.CartesianSeries),
    slopeIntercept: dart.fieldType(charts._SlopeIntercept),
    polynomialSlopes: dart.fieldType(core.List),
    [_markerShapes]: dart.fieldType(core.List$(ui.Path)),
    points: dart.fieldType(core.List$(ui.Offset)),
    [_opacity]: dart.fieldType(core.double),
    [_dashArray]: dart.fieldType(core.List$(core.double)),
    [_fillColor]: dart.fieldType(ui.Color),
    [_visible]: dart.fieldType(core.bool),
    [_name$]: dart.fieldType(core.String),
    [_isNeedRender]: dart.fieldType(core.bool)
  }));
  charts._SlopeIntercept = class _SlopeIntercept extends core.Object {};
  (charts._SlopeIntercept.new = function() {
    this.slope = null;
    this.intercept = null;
    ;
  }).prototype = charts._SlopeIntercept.prototype;
  dart.addTypeTests(charts._SlopeIntercept);
  dart.setLibraryUri(charts._SlopeIntercept, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._SlopeIntercept, () => ({
    __proto__: dart.getFields(charts._SlopeIntercept.__proto__),
    slope: dart.fieldType(core.num),
    intercept: dart.fieldType(core.num)
  }));
  charts._TrendlinePainter = class _TrendlinePainter extends custom_paint.CustomPainter {
    paint(canvas, size) {
      let t5, t4, t5$, t4$;
      let clipRect = null;
      let animationFactor = null;
      for (let t3 of this.chart[_chartSeries].visibleSeries) {
        let series = charts.CartesianSeries._check(t3);
        if (series.trendlines != null) {
          for (let trendline of series.trendlines) {
            if (dart.test(trendline[_isNeedRender]) && dart.test(trendline.isVisible)) {
              canvas.save();
              animationFactor = this.trendlineAnimation != null && !dart.test(series[_chart][_chartState][_isLegendToggled]) ? this.trendlineAnimation.value : 1.0;
              let axisClipRect = charts._calculatePlotOffset(this.chart[_chartAxis][_axisClipRect], new ui.Offset.new(series[_xAxis$].plotOffset, series[_yAxis$].plotOffset));
              canvas.clipRect(axisClipRect);
              let path = ui.Path.new();
              let paint = ui.Paint.new();
              paint.strokeWidth = trendline.width;
              paint.color = trendline[_fillColor].withOpacity(trendline[_opacity]);
              paint.style = ui.PaintingStyle.stroke;
              if (dart.notNull(series.animationDuration) > 0 && !(dart.test(series[_chart][_chartState].widgetNeedUpdate) || dart.test(series[_chart][_chartState][_isLegendToggled]))) {
                charts._performLinearAnimation(series[_chart], series[_xAxis$], canvas, animationFactor);
              }
              this.renderTrendlineEvent(trendline, series.trendlines[$indexOf](trendline), this.chart[_chartSeries].visibleSeries[$indexOf](series), series[_seriesName]);
              if (dart.equals(trendline.type, charts.TrendlineType.linear)) {
                path.moveTo(trendline.points[$_get](0).dx, trendline.points[$_get](0).dy);
                path.lineTo(trendline.points[$_get](1).dx, trendline.points[$_get](1).dy);
              } else if (dart.equals(trendline.type, charts.TrendlineType.exponential) || dart.equals(trendline.type, charts.TrendlineType.power) || dart.equals(trendline.type, charts.TrendlineType.logarithmic)) {
                path.moveTo(trendline.points[$_get](0).dx, trendline.points[$_get](0).dy);
                for (let i = 0; i < dart.notNull(trendline.points[$length]) - 1; i = i + 1) {
                  let controlPoints = trendline[_getControlPoints](trendline.points, i);
                  path.cubicTo(controlPoints[$_get](0), controlPoints[$_get](1), controlPoints[$_get](2), controlPoints[$_get](3), trendline.points[$_get](i + 1).dx, trendline.points[$_get](i + 1).dy);
                }
              } else if (dart.equals(trendline.type, charts.TrendlineType.polynomial)) {
                let polynomialPoints = trendline.getPolynomialCurve(trendline[_pointsData], series, this.chart);
                path.moveTo(polynomialPoints[$_get](0).dx, polynomialPoints[$_get](0).dy);
                for (let i = 1; i < dart.notNull(polynomialPoints[$length]); i = i + 1)
                  path.lineTo(polynomialPoints[$_get](i).dx, polynomialPoints[$_get](i).dy);
              } else if (dart.equals(trendline.type, charts.TrendlineType.movingAverage)) {
                path.moveTo(trendline.points[$_get](0).dx, trendline.points[$_get](0).dy);
                for (let i = 1; i < dart.notNull(trendline.points[$length]); i = i + 1)
                  path.lineTo(trendline.points[$_get](i).dx, trendline.points[$_get](i).dy);
              }
              if (trendline[_dashArray] != null)
                charts._drawDashedLine(canvas, trendline[_dashArray], paint, path);
              else
                canvas.drawPath(path, paint);
              clipRect = charts._calculatePlotOffset(new ui.Rect.fromLTRB(dart.notNull(this.chart[_chartAxis][_axisClipRect].left) - dart.notNull(trendline.markerSettings.width), dart.notNull(this.chart[_chartAxis][_axisClipRect].top) - dart.notNull(trendline.markerSettings.height), dart.notNull(this.chart[_chartAxis][_axisClipRect].right) + dart.notNull(trendline.markerSettings.width), dart.notNull(this.chart[_chartAxis][_axisClipRect].bottom) + dart.notNull(trendline.markerSettings.height)), new ui.Offset.new(series[_xAxis$].plotOffset, series[_yAxis$].plotOffset));
              canvas.restore();
              if (dart.test(trendline[_visible]) && dart.notNull(animationFactor) > dart.notNull(this.chart[_trendlineDurationFactor])) {
                canvas.clipRect(clipRect);
                if (dart.test(trendline.markerSettings.isVisible)) {
                  for (let point of trendline[_pointsData]) {
                    if (dart.test(point.isVisible) && !dart.equals(point.isGap, true)) {
                      if (dart.equals(trendline.markerSettings.shape, charts.DataMarkerType.image)) {
                        charts._drawImageMarker(series, canvas, point.markerPoint.x, point.markerPoint.y);
                      }
                      let strokePaint = (t4 = ui.Paint.new(), t4.color = trendline.markerSettings.borderWidth === 0 ? colors$.Colors.transparent : point.pointColorMapper != null ? point.pointColorMapper : (t5 = trendline.markerSettings.borderColor, t5 == null ? trendline[_fillColor] : t5), t4.strokeWidth = trendline.markerSettings.borderWidth, t4.style = ui.PaintingStyle.stroke, t4);
                      let fillPaint = (t4$ = ui.Paint.new(), t4$.color = (t5$ = trendline.markerSettings.color, t5$ == null ? dart.equals(this.chart[_chartState][_chartTheme].brightness, ui.Brightness.light) ? colors$.Colors.white : colors$.Colors.black : t5$), t4$.style = ui.PaintingStyle.fill, t4$);
                      let index = trendline[_pointsData][$indexOf](point);
                      canvas.drawPath(trendline[_markerShapes][$_get](index), strokePaint);
                      canvas.drawPath(trendline[_markerShapes][$_get](index), fillPaint);
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
    renderTrendlineEvent(trendline, trendlineIndex, seriesIndex, seriesName) {
      let args = null;
      if (this.chart.onTrendlineRender != null) {
        args = new charts.TrendlineRenderArgs.new();
        args.intercept = trendline.intercept;
        args.trendlineIndex = trendlineIndex;
        args.trendlineName = trendline[_name$];
        args.seriesName = seriesName;
        args.color = trendline[_fillColor];
        args.opacity = trendline[_opacity];
        args.dashArray = trendline[_dashArray];
        args.seriesIndex = seriesIndex;
        args.data = trendline[_pointsData];
        this.chart.onTrendlineRender(args);
        trendline[_fillColor] = args.color;
        trendline[_opacity] = args.opacity;
        trendline[_dashArray] = args.dashArray;
      }
    }
    shouldRepaint(oldDelegate) {
      charts._TrendlinePainter._check(oldDelegate);
      return true;
    }
  };
  (charts._TrendlinePainter.new = function(opts) {
    let chart = opts && 'chart' in opts ? opts.chart : null;
    let trendlineAnimation = opts && 'trendlineAnimation' in opts ? opts.trendlineAnimation : null;
    let notifier = opts && 'notifier' in opts ? opts.notifier : null;
    this.chart = chart;
    this.trendlineAnimation = trendlineAnimation;
    charts._TrendlinePainter.__proto__.new.call(this, {repaint: notifier});
    ;
  }).prototype = charts._TrendlinePainter.prototype;
  dart.addTypeTests(charts._TrendlinePainter);
  dart.setMethodSignature(charts._TrendlinePainter, () => ({
    __proto__: dart.getMethods(charts._TrendlinePainter.__proto__),
    paint: dart.fnType(dart.void, [ui.Canvas, ui.Size]),
    renderTrendlineEvent: dart.fnType(dart.void, [charts.Trendline, core.int, core.int, core.String]),
    shouldRepaint: dart.fnType(core.bool, [core.Object])
  }));
  dart.setLibraryUri(charts._TrendlinePainter, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._TrendlinePainter, () => ({
    __proto__: dart.getFields(charts._TrendlinePainter.__proto__),
    chart: dart.finalFieldType(charts.SfCartesianChart),
    trendlineAnimation: dart.finalFieldType(animation.Animation$(core.double))
  }));
  const _position = dart.privateName(charts, "_position");
  const _generateAllPoints = dart.privateName(charts, "_generateAllPoints");
  const _drawCrosshair = dart.privateName(charts, "_drawCrosshair");
  const _drawCrosshairLine = dart.privateName(charts, "_drawCrosshairLine");
  const _drawLine = dart.privateName(charts, "_drawLine");
  const _getLinePainter = dart.privateName(charts, "_getLinePainter");
  const _linePainter = dart.privateName(charts, "_linePainter");
  const enable$0 = dart.privateName(charts, "CrosshairBehavior.enable");
  const lineWidth$ = dart.privateName(charts, "CrosshairBehavior.lineWidth");
  const lineColor$ = dart.privateName(charts, "CrosshairBehavior.lineColor");
  const lineDashArray$ = dart.privateName(charts, "CrosshairBehavior.lineDashArray");
  const activationMode$ = dart.privateName(charts, "CrosshairBehavior.activationMode");
  const lineType$ = dart.privateName(charts, "CrosshairBehavior.lineType");
  const shouldAlwaysShow$ = dart.privateName(charts, "CrosshairBehavior.shouldAlwaysShow");
  const hideDelay$ = dart.privateName(charts, "CrosshairBehavior.hideDelay");
  charts.CrosshairBehavior = class CrosshairBehavior extends charts.ChartBehavior {
    get enable() {
      return this[enable$0];
    }
    set enable(value) {
      super.enable = value;
    }
    get lineWidth() {
      return this[lineWidth$];
    }
    set lineWidth(value) {
      super.lineWidth = value;
    }
    get lineColor() {
      return this[lineColor$];
    }
    set lineColor(value) {
      super.lineColor = value;
    }
    get lineDashArray() {
      return this[lineDashArray$];
    }
    set lineDashArray(value) {
      super.lineDashArray = value;
    }
    get activationMode() {
      return this[activationMode$];
    }
    set activationMode(value) {
      super.activationMode = value;
    }
    get lineType() {
      return this[lineType$];
    }
    set lineType(value) {
      super.lineType = value;
    }
    get shouldAlwaysShow() {
      return this[shouldAlwaysShow$];
    }
    set shouldAlwaysShow(value) {
      super.shouldAlwaysShow = value;
    }
    get hideDelay() {
      return this[hideDelay$];
    }
    set hideDelay(value) {
      super.hideDelay = value;
    }
    show(x, y, coordinateUnit = null) {
      let t4;
      if (coordinateUnit !== "pixel") {
        this[_crosshairPainter].chart[_chartState].crosshairWithoutTouch = false;
        let series = charts.CartesianSeries._check(this[_crosshairPainter].chart.series[$_get](0));
        let location = charts._calculatePoint(core.num._check(core.DateTime.is(x) ? x.millisecondsSinceEpoch : x), y, series[_xAxis$], series[_yAxis$], series[_chart][_requireInvertedAxis], series, series[_chart][_chartAxis][_axisClipRect]);
        x = location.x;
        y = location.y;
      }
      if (this[_crosshairPainter] != null && !dart.equals(this.activationMode, charts.ActivationMode.none) && x != null && y != null) {
        this[_crosshairPainter][_generateAllPoints](new ui.Offset.new(core.double._check(dart.dsend(x, 'toDouble', [])), y));
        this[_crosshairPainter].canResetPath = false;
        if (dart.test(this[_crosshairPainter].chart[_chartState].crosshairWithoutTouch)) {
          t4 = this[_crosshairPainter].chart[_chartState].crosshairRepaintNotifier;
          t4.value = dart.notNull(t4.value) + 1;
        }
      }
    }
    showByIndex(pointIndex) {
      if (dart.test(charts._validIndex(pointIndex, 0, this[_crosshairPainter].chart))) {
        if (this[_crosshairPainter] != null && !dart.equals(this.activationMode, charts.ActivationMode.none)) {
          let cSeries = charts.CartesianSeries._check(this[_crosshairPainter].chart.series[$_get](0));
          this[_crosshairPainter][_generateAllPoints](new ui.Offset.new(cSeries[_dataPoints$][$_get](pointIndex).markerPoint.x, cSeries[_dataPoints$][$_get](pointIndex).markerPoint.y));
          this[_crosshairPainter].canResetPath = false;
        }
      }
    }
    hide() {
      let t5, t4;
      if (this[_crosshairPainter] != null) {
        this[_crosshairPainter].canResetPath = false;
        new (ValueNotifierOfint()).new((t4 = this[_crosshairPainter].chart[_chartState].crosshairRepaintNotifier, t5 = t4.value, t4.value = dart.notNull(t5) + 1, t5));
        if (this[_crosshairPainter].timer != null) {
          this[_crosshairPainter].timer.cancel();
        }
        if (!dart.test(this.shouldAlwaysShow)) {
          let duration = this.hideDelay === 0 && dart.test(this[_crosshairPainter].chart[_chartState][_enableDoubleTap]) ? 200.0 : this.hideDelay;
          this[_crosshairPainter].timer = async.Timer.new(new core.Duration.new({milliseconds: duration[$toInt]()}), dart.fn(() => {
            let t4;
            t4 = this[_crosshairPainter].chart[_chartState].crosshairRepaintNotifier;
            t4.value = dart.notNull(t4.value) + 1;
            this[_crosshairPainter].canResetPath = true;
          }, VoidToNull()));
        }
      }
    }
    onDoubleTap(xPos, yPos) {
      return this.show(xPos, yPos, "pixel");
    }
    onLongPress(xPos, yPos) {
      return this.show(xPos, yPos, "pixel");
    }
    onTouchDown(xPos, yPos) {
      return this.show(xPos, yPos, "pixel");
    }
    onTouchMove(xPos, yPos) {
      return this.show(xPos, yPos, "pixel");
    }
    onTouchUp(xPos, yPos) {
      return this.hide();
    }
    onEnter(xPos, yPos) {
      return this.show(xPos, yPos, "pixel");
    }
    onExit(xPos, yPos) {
      return this.hide();
    }
    onPaint(canvas) {
      if (this[_crosshairPainter] != null) {
        this[_crosshairPainter][_drawCrosshair](canvas);
      }
    }
    [_drawLine](canvas, paint, seriesIndex) {
      if (this[_crosshairPainter] != null) {
        this[_crosshairPainter][_drawCrosshairLine](canvas, paint, seriesIndex);
      }
    }
    [_linePainter](paint) {
      let t4;
      t4 = this[_crosshairPainter];
      return t4 == null ? null : t4[_getLinePainter](paint);
    }
  };
  (charts.CrosshairBehavior.new = function(opts) {
    let t4, t4$, t4$0;
    let activationMode = opts && 'activationMode' in opts ? opts.activationMode : null;
    let lineType = opts && 'lineType' in opts ? opts.lineType : null;
    let lineDashArray = opts && 'lineDashArray' in opts ? opts.lineDashArray : null;
    let enable = opts && 'enable' in opts ? opts.enable : false;
    let lineColor = opts && 'lineColor' in opts ? opts.lineColor : null;
    let lineWidth = opts && 'lineWidth' in opts ? opts.lineWidth : 1;
    let shouldAlwaysShow = opts && 'shouldAlwaysShow' in opts ? opts.shouldAlwaysShow : false;
    let hideDelay = opts && 'hideDelay' in opts ? opts.hideDelay : null;
    this[_position] = null;
    this[_crosshairPainter] = null;
    this[_isLongPressActivated] = null;
    this[lineDashArray$] = lineDashArray;
    this[enable$0] = enable;
    this[lineColor$] = lineColor;
    this[lineWidth$] = lineWidth;
    this[shouldAlwaysShow$] = shouldAlwaysShow;
    this[activationMode$] = (t4 = activationMode, t4 == null ? charts.ActivationMode.longPress : t4);
    this[hideDelay$] = (t4$ = hideDelay, t4$ == null ? 0.0 : t4$);
    this[lineType$] = (t4$0 = lineType, t4$0 == null ? charts.CrosshairLineType.both : t4$0);
    this[_isLongPressActivated] = false;
  }).prototype = charts.CrosshairBehavior.prototype;
  dart.addTypeTests(charts.CrosshairBehavior);
  dart.setMethodSignature(charts.CrosshairBehavior, () => ({
    __proto__: dart.getMethods(charts.CrosshairBehavior.__proto__),
    show: dart.fnType(dart.void, [dart.dynamic, core.double], [core.String]),
    showByIndex: dart.fnType(dart.void, [core.int]),
    hide: dart.fnType(dart.void, []),
    onDoubleTap: dart.fnType(dart.void, [core.double, core.double]),
    onLongPress: dart.fnType(dart.void, [core.double, core.double]),
    onTouchDown: dart.fnType(dart.void, [core.double, core.double]),
    onTouchMove: dart.fnType(dart.void, [core.double, core.double]),
    onTouchUp: dart.fnType(dart.void, [core.double, core.double]),
    onEnter: dart.fnType(dart.void, [core.double, core.double]),
    onExit: dart.fnType(dart.void, [core.double, core.double]),
    onPaint: dart.fnType(dart.void, [ui.Canvas]),
    [_drawLine]: dart.fnType(dart.void, [ui.Canvas, ui.Paint, core.int]),
    [_linePainter]: dart.fnType(ui.Paint, [ui.Paint])
  }));
  dart.setLibraryUri(charts.CrosshairBehavior, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.CrosshairBehavior, () => ({
    __proto__: dart.getFields(charts.CrosshairBehavior.__proto__),
    enable: dart.finalFieldType(core.bool),
    lineWidth: dart.finalFieldType(core.double),
    lineColor: dart.finalFieldType(ui.Color),
    lineDashArray: dart.finalFieldType(core.List$(core.double)),
    activationMode: dart.finalFieldType(charts.ActivationMode),
    lineType: dart.finalFieldType(charts.CrosshairLineType),
    shouldAlwaysShow: dart.finalFieldType(core.bool),
    hideDelay: dart.finalFieldType(core.double),
    [_position]: dart.fieldType(ui.Offset),
    [_crosshairPainter]: dart.fieldType(charts._CrosshairPainter),
    [_isLongPressActivated]: dart.fieldType(core.bool)
  }));
  charts._ChartPointInfo = class _ChartPointInfo extends core.Object {};
  (charts._ChartPointInfo.new = function() {
    this.markerXPos = null;
    this.markerYPos = null;
    this.label = null;
    this.dataPointIndex = null;
    this.series = null;
    this.chartDataPoint = null;
    this.xPosition = null;
    this.yPosition = null;
    this.color = null;
    this.header = null;
    ;
  }).prototype = charts._ChartPointInfo.prototype;
  dart.addTypeTests(charts._ChartPointInfo);
  dart.setLibraryUri(charts._ChartPointInfo, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._ChartPointInfo, () => ({
    __proto__: dart.getFields(charts._ChartPointInfo.__proto__),
    markerXPos: dart.fieldType(core.double),
    markerYPos: dart.fieldType(core.double),
    label: dart.fieldType(core.String),
    dataPointIndex: dart.fieldType(core.int),
    series: dart.fieldType(charts.XyDataSeries),
    chartDataPoint: dart.fieldType(charts.CartesianChartPoint),
    xPosition: dart.fieldType(core.double),
    yPosition: dart.fieldType(core.double),
    color: dart.fieldType(ui.Color),
    header: dart.fieldType(core.String)
  }));
  const _drawBottomAxesTooltip = dart.privateName(charts, "_drawBottomAxesTooltip");
  const _drawTopAxesTooltip = dart.privateName(charts, "_drawTopAxesTooltip");
  const _drawLeftAxesTooltip = dart.privateName(charts, "_drawLeftAxesTooltip");
  const _drawRightAxesTooltip = dart.privateName(charts, "_drawRightAxesTooltip");
  const _needToAddTooltip = dart.privateName(charts, "_needToAddTooltip");
  const _getXValue = dart.privateName(charts, "_getXValue");
  const _getYValue = dart.privateName(charts, "_getYValue");
  charts._CrosshairPainter = class _CrosshairPainter extends custom_paint.CustomPainter {
    paint(canvas, size) {
      if (this.canResetPath != null && !dart.test(this.canResetPath)) {
        this.chart.crosshairBehavior.onPaint(canvas);
      }
    }
    shouldRepaint(oldDelegate) {
      custom_paint.CustomPainter._check(oldDelegate);
      return true;
    }
    [_generateAllPoints](position) {
      let seriesBounds = this.chart[_chartAxis][_axisClipRect];
      if (dart.notNull(position.dx) >= dart.notNull(seriesBounds.left) && dart.notNull(position.dx) <= dart.notNull(seriesBounds.right) && dart.notNull(position.dy) >= dart.notNull(seriesBounds.top) && dart.notNull(position.dy) <= dart.notNull(seriesBounds.bottom)) {
        this.chart.crosshairBehavior[_position] = position;
      }
    }
    [_getLinePainter](crosshairLinePaint) {
      return crosshairLinePaint;
    }
    [_drawCrosshairLine](canvas, paint, index) {
      if (this.chart.crosshairBehavior[_position] != null) {
        let dashArrayPath = ui.Path.new();
        if (dart.equals(this.chart.crosshairBehavior.lineType, charts.CrosshairLineType.both)) {
          let dashArrayVerticalPath = ui.Path.new();
          dashArrayVerticalPath.moveTo(this.chart[_chartAxis][_axisClipRect].left, this.chart.crosshairBehavior[_position].dy);
          dashArrayVerticalPath.lineTo(this.chart[_chartAxis][_axisClipRect].right, this.chart.crosshairBehavior[_position].dy);
          this.chart.crosshairBehavior.lineDashArray != null ? charts._drawDashedLine(canvas, this.chart.crosshairBehavior.lineDashArray, paint, dashArrayVerticalPath) : canvas.drawPath(dashArrayVerticalPath, paint);
          let dashArrayHorizontalPath = ui.Path.new();
          dashArrayHorizontalPath.moveTo(this.chart.crosshairBehavior[_position].dx, this.chart[_chartAxis][_axisClipRect].top);
          dashArrayHorizontalPath.lineTo(this.chart.crosshairBehavior[_position].dx, this.chart[_chartAxis][_axisClipRect].bottom);
          this.chart.crosshairBehavior.lineDashArray != null ? charts._drawDashedLine(canvas, this.chart.crosshairBehavior.lineDashArray, paint, dashArrayHorizontalPath) : canvas.drawPath(dashArrayHorizontalPath, paint);
        } else if (dart.equals(this.chart.crosshairBehavior.lineType, charts.CrosshairLineType.horizontal)) {
          dashArrayPath.moveTo(this.chart[_chartAxis][_axisClipRect].left, this.chart.crosshairBehavior[_position].dy);
          dashArrayPath.lineTo(this.chart[_chartAxis][_axisClipRect].right, this.chart.crosshairBehavior[_position].dy);
          this.chart.crosshairBehavior.lineDashArray != null ? charts._drawDashedLine(canvas, this.chart.crosshairBehavior.lineDashArray, paint, dashArrayPath) : canvas.drawPath(dashArrayPath, paint);
        } else if (dart.equals(this.chart.crosshairBehavior.lineType, charts.CrosshairLineType.vertical)) {
          dashArrayPath.moveTo(this.chart.crosshairBehavior[_position].dx, this.chart[_chartAxis][_axisClipRect].top);
          dashArrayPath.lineTo(this.chart.crosshairBehavior[_position].dx, this.chart[_chartAxis][_axisClipRect].bottom);
          this.chart.crosshairBehavior.lineDashArray != null ? charts._drawDashedLine(canvas, this.chart.crosshairBehavior.lineDashArray, paint, dashArrayPath) : canvas.drawPath(dashArrayPath, paint);
        }
      }
    }
    [_drawCrosshair](canvas) {
      let t4, t4$, t4$0;
      let fillPaint = (t4 = ui.Paint.new(), t4.color = this.chart[_chartState][_chartTheme].crosshairBackgroundColor, t4.strokeCap = ui.StrokeCap.butt, t4.isAntiAlias = false, t4.style = ui.PaintingStyle.fill, t4);
      let strokePaint = (t4$ = ui.Paint.new(), t4$.color = this.chart[_chartState][_chartTheme].crosshairBackgroundColor, t4$.strokeCap = ui.StrokeCap.butt, t4$.isAntiAlias = false, t4$.style = ui.PaintingStyle.stroke, t4$);
      this.chart.crosshairBehavior.lineWidth === 0 ? strokePaint.color = colors$.Colors.transparent : strokePaint.color = strokePaint.color;
      let crosshairLinePaint = ui.Paint.new();
      if (this.chart.crosshairBehavior[_position] != null) {
        let position = this.chart.crosshairBehavior[_position];
        crosshairLinePaint.color = (t4$0 = this.chart.crosshairBehavior.lineColor, t4$0 == null ? this.chart[_chartState][_chartTheme].crosshairLineColor : t4$0);
        crosshairLinePaint.strokeWidth = this.chart.crosshairBehavior.lineWidth;
        crosshairLinePaint.style = ui.PaintingStyle.stroke;
        this.chart.crosshairBehavior[_drawLine](canvas, this.chart.crosshairBehavior[_linePainter](crosshairLinePaint), null);
        this[_drawBottomAxesTooltip](canvas, position, strokePaint, fillPaint);
        this[_drawTopAxesTooltip](canvas, position, strokePaint, fillPaint);
        this[_drawLeftAxesTooltip](canvas, position, strokePaint, fillPaint);
        this[_drawRightAxesTooltip](canvas, position, strokePaint, fillPaint);
      }
    }
    [_drawBottomAxesTooltip](canvas, position, strokePaint, fillPaint) {
      let t4, t4$, t4$0, t4$1;
      let axis = null;
      let value = null;
      let labelSize = null;
      let labelRect = null;
      let validatedRect = null;
      let tooltipRect = null;
      let color = null;
      let crosshairEventArgs = null;
      for (let index = 0; index < dart.notNull(this.chart[_chartAxis][_bottomAxesCount][$length]); index = index + 1) {
        axis = this.chart[_chartAxis][_bottomAxesCount][$_get](index).axis;
        if (dart.test(this[_needToAddTooltip](axis))) {
          fillPaint.color = axis.interactiveTooltip.color != null ? (t4 = axis.interactiveTooltip, t4 == null ? null : t4.color) : this.chart[_chartState][_chartTheme].crosshairBackgroundColor;
          strokePaint.color = axis.interactiveTooltip.borderColor != null ? (t4$ = axis.interactiveTooltip, t4$ == null ? null : t4$.borderColor) : this.chart[_chartState][_chartTheme].crosshairBackgroundColor;
          strokePaint.strokeWidth = axis.interactiveTooltip.borderWidth;
          value = this[_getXValue](axis, position);
          if (this.chart.onCrosshairPositionChanging != null) {
            crosshairEventArgs = new charts.CrosshairRenderArgs.new();
            crosshairEventArgs.axis = axis;
            crosshairEventArgs.orientation = axis[_orientation];
            crosshairEventArgs.axisName = axis[_name$];
            crosshairEventArgs.text = dart.toString(value);
            crosshairEventArgs.lineColor = (t4$0 = this.chart.crosshairBehavior.lineColor, t4$0 == null ? this.chart[_chartState][_chartTheme].crosshairLineColor : t4$0);
            crosshairEventArgs.value = value;
            crosshairEventArgs.lineColor = color;
            this.chart.onCrosshairPositionChanging(crosshairEventArgs);
            value = crosshairEventArgs.text;
            color = crosshairEventArgs.lineColor;
          }
          labelSize = charts._measureText(dart.toString(value), axis.interactiveTooltip.textStyle);
          labelRect = new ui.Rect.fromLTWH(dart.notNull(position.dx) - (dart.notNull(labelSize.width) / 2 + 10 / 2), dart.notNull(axis[_bounds].top) + dart.notNull(axis.interactiveTooltip.arrowLength), dart.notNull(labelSize.width) + 10, dart.notNull(labelSize.height) + 10);
          labelRect = charts._validateRectBounds(labelRect, this.chart[_chartState].containerRect);
          validatedRect = charts._validateRectXPosition(labelRect, this.chart);
          this.backgroundPath.reset();
          tooltipRect = charts._getRoundedCornerRect(validatedRect, axis.interactiveTooltip.borderRadius);
          this.backgroundPath.addRRect(tooltipRect);
          charts._drawTooltipArrowhead(canvas, this.backgroundPath, fillPaint, strokePaint, position.dx, dart.notNull(tooltipRect.top) - dart.notNull(axis.interactiveTooltip.arrowLength), dart.notNull(tooltipRect.right) - dart.notNull(tooltipRect.width) / 2 + dart.notNull(axis.interactiveTooltip.arrowWidth), tooltipRect.top, dart.notNull(tooltipRect.left) + dart.notNull(tooltipRect.width) / 2 - dart.notNull(axis.interactiveTooltip.arrowWidth), tooltipRect.top, position.dx, dart.notNull(tooltipRect.top) - dart.notNull(axis.interactiveTooltip.arrowLength));
          charts._drawText(canvas, dart.toString(value), new ui.Offset.new(dart.notNull(tooltipRect.left) + dart.notNull(tooltipRect.width) / 2 - dart.notNull(labelSize.width) / 2, dart.notNull(tooltipRect.top) + dart.notNull(tooltipRect.height) / 2 - dart.notNull(labelSize.height) / 2), new charts.ChartTextStyle.new({color: (t4$1 = axis.interactiveTooltip.textStyle.color, t4$1 == null ? this.chart[_chartState][_chartTheme].tooltipLabelColor : t4$1), fontSize: axis.interactiveTooltip.textStyle.fontSize, fontWeight: axis.interactiveTooltip.textStyle.fontWeight, fontFamily: axis.interactiveTooltip.textStyle.fontFamily, fontStyle: axis.interactiveTooltip.textStyle.fontStyle}), 0);
        }
      }
    }
    [_drawTopAxesTooltip](canvas, position, strokePaint, fillPaint) {
      let t4, t4$, t4$0, t4$1;
      let axis = null;
      let value = null;
      let labelSize = null;
      let labelRect = null;
      let validatedRect = null;
      let tooltipRect = null;
      let color = null;
      let crosshairEventArgs = null;
      for (let index = 0; index < dart.notNull(this.chart[_chartAxis][_topAxesCount][$length]); index = index + 1) {
        axis = this.chart[_chartAxis][_topAxesCount][$_get](index).axis;
        if (dart.test(this[_needToAddTooltip](axis))) {
          fillPaint.color = axis.interactiveTooltip.color != null ? (t4 = axis.interactiveTooltip, t4 == null ? null : t4.color) : this.chart[_chartState][_chartTheme].crosshairBackgroundColor;
          strokePaint.color = axis.interactiveTooltip.borderColor != null ? (t4$ = axis.interactiveTooltip, t4$ == null ? null : t4$.borderColor) : this.chart[_chartState][_chartTheme].crosshairBackgroundColor;
          strokePaint.strokeWidth = axis.interactiveTooltip.borderWidth;
          value = this[_getXValue](axis, position);
          if (this.chart.onCrosshairPositionChanging != null) {
            crosshairEventArgs = new charts.CrosshairRenderArgs.new();
            crosshairEventArgs.axis = axis;
            crosshairEventArgs.orientation = axis[_orientation];
            crosshairEventArgs.axisName = axis[_name$];
            crosshairEventArgs.text = dart.toString(value);
            crosshairEventArgs.lineColor = (t4$0 = this.chart.crosshairBehavior.lineColor, t4$0 == null ? this.chart[_chartState][_chartTheme].crosshairLineColor : t4$0);
            crosshairEventArgs.value = value;
            crosshairEventArgs.lineColor = color;
            this.chart.onCrosshairPositionChanging(crosshairEventArgs);
            value = crosshairEventArgs.text;
            color = crosshairEventArgs.lineColor;
          }
          labelSize = charts._measureText(dart.toString(value), axis.interactiveTooltip.textStyle);
          labelRect = new ui.Rect.fromLTWH(dart.notNull(position.dx) - (dart.notNull(labelSize.width) / 2 + 10 / 2), dart.notNull(axis[_bounds].top) - (dart.notNull(labelSize.height) + 10) - dart.notNull(axis.interactiveTooltip.arrowLength), dart.notNull(labelSize.width) + 10, dart.notNull(labelSize.height) + 10);
          labelRect = charts._validateRectBounds(labelRect, this.chart[_chartState].containerRect);
          validatedRect = charts._validateRectXPosition(labelRect, this.chart);
          this.backgroundPath.reset();
          tooltipRect = charts._getRoundedCornerRect(validatedRect, axis.interactiveTooltip.borderRadius);
          this.backgroundPath.addRRect(tooltipRect);
          charts._drawTooltipArrowhead(canvas, this.backgroundPath, fillPaint, strokePaint, position.dx, dart.notNull(tooltipRect.bottom) + dart.notNull(axis.interactiveTooltip.arrowLength), dart.notNull(tooltipRect.right) - dart.notNull(tooltipRect.width) / 2 + dart.notNull(axis.interactiveTooltip.arrowWidth), tooltipRect.bottom, dart.notNull(tooltipRect.left) + dart.notNull(tooltipRect.width) / 2 - dart.notNull(axis.interactiveTooltip.arrowWidth), tooltipRect.bottom, position.dx, dart.notNull(tooltipRect.bottom) + dart.notNull(axis.interactiveTooltip.arrowLength));
          charts._drawText(canvas, dart.toString(value), new ui.Offset.new(dart.notNull(tooltipRect.left) + dart.notNull(tooltipRect.width) / 2 - dart.notNull(labelSize.width) / 2, dart.notNull(tooltipRect.top) + dart.notNull(tooltipRect.height) / 2 - dart.notNull(labelSize.height) / 2), new charts.ChartTextStyle.new({color: (t4$1 = axis.interactiveTooltip.textStyle.color, t4$1 == null ? this.chart[_chartState][_chartTheme].tooltipLabelColor : t4$1), fontSize: axis.interactiveTooltip.textStyle.fontSize, fontWeight: axis.interactiveTooltip.textStyle.fontWeight, fontFamily: axis.interactiveTooltip.textStyle.fontFamily, fontStyle: axis.interactiveTooltip.textStyle.fontStyle}), 0);
        }
      }
    }
    [_drawLeftAxesTooltip](canvas, position, strokePaint, fillPaint) {
      let t4, t4$, t4$0;
      let axis = null;
      let value = null;
      let labelSize = null;
      let labelRect = null;
      let validatedRect = null;
      let tooltipRect = null;
      let color = null;
      let crosshairEventArgs = null;
      for (let index = 0; index < dart.notNull(this.chart[_chartAxis][_leftAxesCount][$length]); index = index + 1) {
        axis = this.chart[_chartAxis][_leftAxesCount][$_get](index).axis;
        if (dart.test(this[_needToAddTooltip](axis))) {
          fillPaint.color = axis.interactiveTooltip.color != null ? axis.interactiveTooltip.color : this.chart[_chartState][_chartTheme].crosshairBackgroundColor;
          strokePaint.color = axis.interactiveTooltip.borderColor != null ? (t4 = axis.interactiveTooltip, t4 == null ? null : t4.borderColor) : this.chart[_chartState][_chartTheme].crosshairBackgroundColor;
          strokePaint.strokeWidth = axis.interactiveTooltip.borderWidth;
          value = this[_getYValue](axis, position);
          if (this.chart.onCrosshairPositionChanging != null) {
            crosshairEventArgs = new charts.CrosshairRenderArgs.new();
            crosshairEventArgs.axis = axis;
            crosshairEventArgs.orientation = axis[_orientation];
            crosshairEventArgs.axisName = axis[_name$];
            crosshairEventArgs.text = dart.toString(value);
            crosshairEventArgs.lineColor = (t4$ = this.chart.crosshairBehavior.lineColor, t4$ == null ? this.chart[_chartState][_chartTheme].crosshairLineColor : t4$);
            crosshairEventArgs.value = value;
            crosshairEventArgs.lineColor = color;
            this.chart.onCrosshairPositionChanging(crosshairEventArgs);
            value = crosshairEventArgs.text;
            color = crosshairEventArgs.lineColor;
          }
          labelSize = charts._measureText(dart.toString(value), axis.interactiveTooltip.textStyle);
          labelRect = new ui.Rect.fromLTWH(dart.notNull(axis[_bounds].left) - (dart.notNull(labelSize.width) + 10) - dart.notNull(axis.interactiveTooltip.arrowLength), dart.notNull(position.dy) - (dart.notNull(labelSize.height) + 10) / 2, dart.notNull(labelSize.width) + 10, dart.notNull(labelSize.height) + 10);
          labelRect = charts._validateRectBounds(labelRect, this.chart[_chartState].containerRect);
          validatedRect = charts._validateRectYPosition(labelRect, this.chart);
          this.backgroundPath.reset();
          tooltipRect = charts._getRoundedCornerRect(validatedRect, axis.interactiveTooltip.borderRadius);
          this.backgroundPath.addRRect(tooltipRect);
          charts._drawTooltipArrowhead(canvas, this.backgroundPath, fillPaint, strokePaint, tooltipRect.right, dart.notNull(tooltipRect.top) + dart.notNull(tooltipRect.height) / 2 - dart.notNull(axis.interactiveTooltip.arrowWidth), tooltipRect.right, dart.notNull(tooltipRect.bottom) - dart.notNull(tooltipRect.height) / 2 + dart.notNull(axis.interactiveTooltip.arrowWidth), dart.notNull(tooltipRect.right) + dart.notNull(axis.interactiveTooltip.arrowLength), position.dy, dart.notNull(tooltipRect.right) + dart.notNull(axis.interactiveTooltip.arrowLength), position.dy);
          charts._drawText(canvas, dart.toString(value), new ui.Offset.new(dart.notNull(tooltipRect.left) + dart.notNull(tooltipRect.width) / 2 - dart.notNull(labelSize.width) / 2, dart.notNull(tooltipRect.top) + dart.notNull(tooltipRect.height) / 2 - dart.notNull(labelSize.height) / 2), new charts.ChartTextStyle.new({color: (t4$0 = axis.interactiveTooltip.textStyle.color, t4$0 == null ? this.chart[_chartState][_chartTheme].tooltipLabelColor : t4$0), fontSize: axis.interactiveTooltip.textStyle.fontSize, fontWeight: axis.interactiveTooltip.textStyle.fontWeight, fontFamily: axis.interactiveTooltip.textStyle.fontFamily, fontStyle: axis.interactiveTooltip.textStyle.fontStyle}), 0);
        }
      }
    }
    [_drawRightAxesTooltip](canvas, position, strokePaint, fillPaint) {
      let t4, t4$, t4$0;
      let axis = null;
      let value = null;
      let labelSize = null;
      let labelRect = null;
      let validatedRect = null;
      let crosshairEventArgs = null;
      let tooltipRect = null;
      let color = null;
      for (let index = 0; index < dart.notNull(this.chart[_chartAxis][_rightAxesCount][$length]); index = index + 1) {
        axis = this.chart[_chartAxis][_rightAxesCount][$_get](index).axis;
        if (dart.test(this[_needToAddTooltip](axis))) {
          fillPaint.color = axis.interactiveTooltip.color != null ? axis.interactiveTooltip.color : this.chart[_chartState][_chartTheme].crosshairBackgroundColor;
          strokePaint.color = axis.interactiveTooltip.borderColor != null ? (t4 = axis.interactiveTooltip, t4 == null ? null : t4.borderColor) : this.chart[_chartState][_chartTheme].crosshairBackgroundColor;
          strokePaint.strokeWidth = axis.interactiveTooltip.borderWidth;
          value = this[_getYValue](axis, position);
          if (this.chart.onCrosshairPositionChanging != null) {
            crosshairEventArgs = new charts.CrosshairRenderArgs.new();
            crosshairEventArgs.axis = axis;
            crosshairEventArgs.orientation = axis[_orientation];
            crosshairEventArgs.axisName = axis[_name$];
            crosshairEventArgs.text = dart.toString(value);
            crosshairEventArgs.lineColor = (t4$ = this.chart.crosshairBehavior.lineColor, t4$ == null ? this.chart[_chartState][_chartTheme].crosshairLineColor : t4$);
            crosshairEventArgs.value = value;
            crosshairEventArgs.lineColor = color;
            this.chart.onCrosshairPositionChanging(crosshairEventArgs);
            value = crosshairEventArgs.text;
            color = crosshairEventArgs.lineColor;
          }
          labelSize = charts._measureText(dart.toString(value), axis.interactiveTooltip.textStyle);
          labelRect = new ui.Rect.fromLTWH(dart.notNull(axis[_bounds].left) + dart.notNull(axis.interactiveTooltip.arrowLength), dart.notNull(position.dy) - (dart.notNull(labelSize.height) / 2 + 10 / 2), dart.notNull(labelSize.width) + 10, dart.notNull(labelSize.height) + 10);
          labelRect = charts._validateRectBounds(labelRect, this.chart[_chartState].containerRect);
          validatedRect = charts._validateRectYPosition(labelRect, this.chart);
          this.backgroundPath.reset();
          tooltipRect = charts._getRoundedCornerRect(validatedRect, axis.interactiveTooltip.borderRadius);
          this.backgroundPath.addRRect(tooltipRect);
          charts._drawTooltipArrowhead(canvas, this.backgroundPath, fillPaint, strokePaint, tooltipRect.left, dart.notNull(tooltipRect.top) + dart.notNull(tooltipRect.height) / 2 - dart.notNull(axis.interactiveTooltip.arrowWidth), tooltipRect.left, dart.notNull(tooltipRect.bottom) - dart.notNull(tooltipRect.height) / 2 + dart.notNull(axis.interactiveTooltip.arrowWidth), dart.notNull(tooltipRect.left) - dart.notNull(axis.interactiveTooltip.arrowLength), position.dy, dart.notNull(tooltipRect.left) - dart.notNull(axis.interactiveTooltip.arrowLength), position.dy);
          charts._drawText(canvas, dart.toString(value), new ui.Offset.new(dart.notNull(tooltipRect.left) + dart.notNull(tooltipRect.width) / 2 - dart.notNull(labelSize.width) / 2, dart.notNull(tooltipRect.top) + dart.notNull(tooltipRect.height) / 2 - dart.notNull(labelSize.height) / 2), new charts.ChartTextStyle.new({color: (t4$0 = axis.interactiveTooltip.textStyle.color, t4$0 == null ? this.chart[_chartState][_chartTheme].tooltipLabelColor : t4$0), fontSize: axis.interactiveTooltip.textStyle.fontSize, fontWeight: axis.interactiveTooltip.textStyle.fontWeight, fontFamily: axis.interactiveTooltip.textStyle.fontFamily, fontStyle: axis.interactiveTooltip.textStyle.fontStyle}), 0);
        }
      }
    }
    [_getXValue](axis, position) {
      let value = charts._pointToXValue(this.chart, axis, axis[_bounds], dart.notNull(position.dx) - (dart.notNull(this.chart[_chartAxis][_axisClipRect].left) + dart.notNull(axis.plotOffset)), dart.notNull(position.dy) - (dart.notNull(this.chart[_chartAxis][_axisClipRect].top) + dart.notNull(axis.plotOffset)));
      return charts._getInteractiveTooltipLabel(value, axis);
    }
    [_getYValue](axis, position) {
      let value = charts._pointToYVal(this.chart, axis, axis[_bounds], dart.notNull(position.dx) - (dart.notNull(this.chart[_chartAxis][_axisClipRect].left) + dart.notNull(axis.plotOffset)), dart.notNull(position.dy) - (dart.notNull(this.chart[_chartAxis][_axisClipRect].top) + dart.notNull(axis.plotOffset)));
      return charts._getInteractiveTooltipLabel(value, axis);
    }
    [_needToAddTooltip](axis) {
      return dart.test(axis.interactiveTooltip.enable) && (!charts.CategoryAxis.is(axis) && dart.test(axis[_visibleLabels][$isNotEmpty]) || charts.CategoryAxis.is(axis) && dart.dtest(dart.dload(axis[_labels], 'isNotEmpty')));
    }
  };
  (charts._CrosshairPainter.new = function(opts) {
    let chart = opts && 'chart' in opts ? opts.chart : null;
    let valueNotifier = opts && 'valueNotifier' in opts ? opts.valueNotifier : null;
    this.timer = null;
    this.pointerLength = null;
    this.pointerWidth = null;
    this.nosePointY = 0.0;
    this.nosePointX = 0.0;
    this.totalWidth = 0.0;
    this.x = null;
    this.y = null;
    this.xPos = null;
    this.yPos = null;
    this.isTop = false;
    this.cornerRadius = null;
    this.backgroundPath = ui.Path.new();
    this.canResetPath = false;
    this.isLeft = false;
    this.isRight = false;
    this.enable = null;
    this.padding = 0.0;
    this.stringValue = JSArrayOfString().of([]);
    this.boundaryRect = C348 || CT.C348;
    this.leftPadding = 0.0;
    this.topPadding = 0.0;
    this.isHorizontalOrientation = false;
    this.labelStyle = null;
    this.chart = chart;
    this.valueNotifier = valueNotifier;
    charts._CrosshairPainter.__proto__.new.call(this, {repaint: valueNotifier});
    ;
  }).prototype = charts._CrosshairPainter.prototype;
  dart.addTypeTests(charts._CrosshairPainter);
  dart.setMethodSignature(charts._CrosshairPainter, () => ({
    __proto__: dart.getMethods(charts._CrosshairPainter.__proto__),
    paint: dart.fnType(dart.void, [ui.Canvas, ui.Size]),
    shouldRepaint: dart.fnType(core.bool, [core.Object]),
    [_generateAllPoints]: dart.fnType(dart.void, [ui.Offset]),
    [_getLinePainter]: dart.fnType(ui.Paint, [ui.Paint]),
    [_drawCrosshairLine]: dart.fnType(dart.void, [ui.Canvas, ui.Paint, core.int]),
    [_drawCrosshair]: dart.fnType(dart.void, [ui.Canvas]),
    [_drawBottomAxesTooltip]: dart.fnType(dart.void, [ui.Canvas, ui.Offset, ui.Paint, ui.Paint]),
    [_drawTopAxesTooltip]: dart.fnType(dart.void, [ui.Canvas, ui.Offset, ui.Paint, ui.Paint]),
    [_drawLeftAxesTooltip]: dart.fnType(dart.void, [ui.Canvas, ui.Offset, ui.Paint, ui.Paint]),
    [_drawRightAxesTooltip]: dart.fnType(dart.void, [ui.Canvas, ui.Offset, ui.Paint, ui.Paint]),
    [_getXValue]: dart.fnType(dart.dynamic, [charts.ChartAxis, ui.Offset]),
    [_getYValue]: dart.fnType(dart.dynamic, [charts.ChartAxis, ui.Offset]),
    [_needToAddTooltip]: dart.fnType(core.bool, [charts.ChartAxis])
  }));
  dart.setLibraryUri(charts._CrosshairPainter, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._CrosshairPainter, () => ({
    __proto__: dart.getFields(charts._CrosshairPainter.__proto__),
    chart: dart.finalFieldType(charts.SfCartesianChart),
    timer: dart.fieldType(async.Timer),
    valueNotifier: dart.fieldType(change_notifier.ValueNotifier$(core.int)),
    pointerLength: dart.fieldType(core.double),
    pointerWidth: dart.fieldType(core.double),
    nosePointY: dart.fieldType(core.double),
    nosePointX: dart.fieldType(core.double),
    totalWidth: dart.fieldType(core.double),
    x: dart.fieldType(core.double),
    y: dart.fieldType(core.double),
    xPos: dart.fieldType(core.double),
    yPos: dart.fieldType(core.double),
    isTop: dart.fieldType(core.bool),
    cornerRadius: dart.fieldType(core.double),
    backgroundPath: dart.fieldType(ui.Path),
    canResetPath: dart.fieldType(core.bool),
    isLeft: dart.fieldType(core.bool),
    isRight: dart.fieldType(core.bool),
    enable: dart.fieldType(core.bool),
    padding: dart.fieldType(core.double),
    stringValue: dart.fieldType(core.List$(core.String)),
    boundaryRect: dart.fieldType(ui.Rect),
    leftPadding: dart.fieldType(core.double),
    topPadding: dart.fieldType(core.double),
    isHorizontalOrientation: dart.fieldType(core.bool),
    labelStyle: dart.fieldType(text_style.TextStyle)
  }));
  const _selectedSegmentsColors = dart.privateName(charts, "_selectedSegmentsColors");
  const _unselectedSegmentsColors = dart.privateName(charts, "_unselectedSegmentsColors");
  const _isSegmentIntersect = dart.privateName(charts, "_isSegmentIntersect");
  charts._SelectionRenderer = class _SelectionRenderer extends core.Object {
    selectionIndex(_pointIndex, _seriesIndex, _selectionType = null, multiSelect = null) {
      let t5, t4;
      if (dart.test(charts._validIndex(_pointIndex, _seriesIndex, charts.SfCartesianChart._check(this.chart)))) {
        this.series = dart.dsend(dart.dload(this.chart, 'series'), '_get', [_seriesIndex]);
        dart.dput(dart.dload(dart.dload(this.series, 'selectionSettings'), _selectionRenderer), 'selectionType', _selectionType);
        let select = false;
        if (dart.equals(dart.dload(this.series, _seriesType$), "line") || dart.equals(dart.dload(this.series, _seriesType$), "spline") || dart.equals(dart.dload(this.series, _seriesType$), "stepline") || dart.equals(dart.dload(this.series, _seriesType$), "stackedline") || dart.equals(dart.dload(this.series, _seriesType$), "stackedline100")) {
          if (dart.dtest(dart.dload(dart.dload(this.series, 'selectionSettings'), 'enable'))) {
            dart.dput(dart.dload(dart.dload(this.series, 'selectionSettings'), _selectionRenderer), 'cartesianPointIndex', _pointIndex);
            dart.dput(dart.dload(dart.dload(this.series, 'selectionSettings'), _selectionRenderer), 'cartesianSeriesIndex', _seriesIndex);
            select = core.bool._check(dart.dsend(dart.dload(dart.dload(this.series, 'selectionSettings'), _selectionRenderer), 'isCartesianSelection', [this.chart, this.series, _pointIndex, _seriesIndex]));
          }
        } else {
          dart.dput(dart.dload(this.chart, _chartState), 'renderDatalabelRegions', JSArrayOfRect().of([]));
          if (dart.dtest(dart.dsend(dart.dload(this.series, _seriesType$), 'contains', ["area"])) || dart.equals(dart.dload(this.series, _seriesType$), "fastline")) {
            dart.dput(dart.dload(dart.dload(this.series, 'selectionSettings'), _selectionRenderer), 'seriesIndex', _seriesIndex);
          } else {
            dart.dput(dart.dload(dart.dload(this.series, 'selectionSettings'), _selectionRenderer), 'seriesIndex', _seriesIndex);
            dart.dput(dart.dload(dart.dload(this.series, 'selectionSettings'), _selectionRenderer), 'pointIndex', _pointIndex);
          }
          select = core.bool._check(dart.dsend(dart.dload(dart.dload(this.series, 'selectionSettings'), _selectionRenderer), 'isCartesianSelection', [this.chart, this.series, this.pointIndex, this.seriesIndex]));
        }
        if (dart.test(select)) new (ValueNotifierOfint()).new(core.int._check((t4 = dart.dload(dart.dload(this.chart, _chartState), 'seriesRepaintNotifier'), t5 = dart.dload(t4, 'value'), dart.dput(t4, 'value', dart.dsend(t5, '+', [1])), t5)));
        this.selectionType = null;
      }
    }
    selectedDataPointIndex(series, selectedData) {
      for (let data = 0; data < dart.notNull(selectedData[$length]); data = data + 1) {
        let selectedItem = selectedData[$_get](data);
        if (dart.dload(this.chart, 'onSelectionChanged') != null) {
        }
        for (let j = 0; j < dart.notNull(series.segments[$length]); j = j + 1) {
          this.currentSegment = series.segments[$_get](j);
          this.currentSegment.currentSegmentIndex == selectedItem ? this.selectedSegments[$add](series.segments[$_get](j)) : this.unselectedSegments[$add](series.segments[$_get](j));
        }
      }
      this[_selectedSegmentsColors](this.selectedSegments);
      this[_unselectedSegmentsColors](this.unselectedSegments);
    }
    getDefaultFillColor(points = null, point = null, segment = null) {
      let selectedFillPaint = ui.Paint.new();
      if (charts.CartesianSeries.is(this.series)) {
        dart.equals(dart.dload(this.series, _seriesType$), "line") || dart.equals(dart.dload(this.series, _seriesType$), "spline") || dart.equals(dart.dload(this.series, _seriesType$), "stepline") || dart.equals(dart.dload(this.series, _seriesType$), "fastline") || dart.equals(dart.dload(this.series, _seriesType$), "stackedline") || dart.equals(dart.dload(this.series, _seriesType$), "stackedline100") || dart.dtest(dart.dsend(dart.dload(this.series, _seriesType$), 'contains', ["hilo"])) ? selectedFillPaint.color = segment[_defaultStrokeColor].color : selectedFillPaint.color = segment[_defaultFillColor].color;
        if (segment[_defaultFillColor].shader != null) {
          selectedFillPaint.shader = segment[_defaultFillColor].shader;
        }
      }
      if (charts.CandleSeries.is(this.series)) {
        if (charts.CandleSegment.is(segment) && dart.test(segment.isSolid)) {
          selectedFillPaint.style = ui.PaintingStyle.fill;
          selectedFillPaint.strokeWidth = core.double._check(dart.dload(this.series, 'borderWidth'));
        } else {
          selectedFillPaint.style = ui.PaintingStyle.stroke;
          selectedFillPaint.strokeWidth = core.double._check(dart.dload(this.series, 'borderWidth'));
        }
      } else {
        selectedFillPaint.style = ui.PaintingStyle.fill;
      }
      return selectedFillPaint;
    }
    getDefaultStrokeColor(points = null, point = null, segment = null) {
      let selectedStrokePaint = ui.Paint.new();
      if (charts.CartesianSeries.is(this.series)) {
        selectedStrokePaint.color = segment[_defaultStrokeColor].color;
        selectedStrokePaint.strokeWidth = segment[_defaultStrokeColor].strokeWidth;
      }
      selectedStrokePaint.style = ui.PaintingStyle.stroke;
      return selectedStrokePaint;
    }
    getFillColor(isSelection, segment = null, point = null) {
      let chartEventSelection = dart.dload(this.chart, 'onSelectionChanged');
      if (dart.test(isSelection)) {
        if (charts.CartesianSeries.is(this.series)) {
          this.fillColor = chartEventSelection != null && this.selectionArgs != null && this.selectionArgs.selectedColor != null ? this.selectionArgs.selectedColor : dart.dload(dart.dload(this.series, 'selectionSettings'), 'selectedColor') == null ? segment[_defaultFillColor].color : dart.dload(dart.dload(this.series, 'selectionSettings'), 'selectedColor');
        }
        this.fillOpacity = chartEventSelection != null && this.selectionArgs != null && this.selectionArgs.selectedColor != null ? this.selectionArgs.selectedColor.opacity : dart.dload(dart.dload(this.series, 'selectionSettings'), 'selectedOpacity') == null ? dart.dload(this.series, 'opacity') : dart.dload(dart.dload(this.series, 'selectionSettings'), 'selectedOpacity');
      } else {
        if (charts.CartesianSeries.is(this.series)) {
          this.fillColor = chartEventSelection != null && this.selectionArgs != null && this.selectionArgs.unselectedColor != null ? this.selectionArgs.unselectedColor : dart.dload(dart.dload(this.series, 'selectionSettings'), 'unselectedColor') == null ? segment[_defaultFillColor].color : dart.dload(dart.dload(this.series, 'selectionSettings'), 'unselectedColor');
        }
        this.fillOpacity = chartEventSelection != null && this.selectionArgs != null && this.selectionArgs.unselectedColor != null ? this.selectionArgs.unselectedColor.opacity : dart.dload(dart.dload(this.series, 'selectionSettings'), 'unselectedOpacity') == null ? dart.dload(this.series, 'opacity') : dart.dload(dart.dload(this.series, 'selectionSettings'), 'unselectedOpacity');
      }
      let selectedFillPaint = ui.Paint.new();
      selectedFillPaint.color = ui.Color._check(dart.dsend(this.fillColor, 'withOpacity', [this.fillOpacity]));
      if (charts.CandleSeries.is(this.series)) {
        if (charts.CandleSegment.is(segment) && dart.test(segment.isSolid)) {
          selectedFillPaint.style = ui.PaintingStyle.fill;
          selectedFillPaint.strokeWidth = core.double._check(dart.dload(this.series, 'borderWidth'));
        } else {
          selectedFillPaint.style = ui.PaintingStyle.stroke;
          selectedFillPaint.strokeWidth = core.double._check(dart.dload(this.series, 'borderWidth'));
        }
      } else {
        selectedFillPaint.style = ui.PaintingStyle.fill;
      }
      return selectedFillPaint;
    }
    getStrokeColor(isSelection, segment = null, point = null) {
      let chartEventSelection = dart.dload(this.chart, 'onSelectionChanged');
      if (dart.test(isSelection)) {
        if (charts.CartesianSeries.is(this.series)) {
          dart.equals(dart.dload(this.series, _seriesType$), "line") || dart.equals(dart.dload(this.series, _seriesType$), "spline") || dart.equals(dart.dload(this.series, _seriesType$), "stepline") || dart.equals(dart.dload(this.series, _seriesType$), "fastline") || dart.equals(dart.dload(this.series, _seriesType$), "stackedline") || dart.equals(dart.dload(this.series, _seriesType$), "stackedline100") || dart.dtest(dart.dsend(dart.dload(this.series, _seriesType$), 'contains', ["hilo"])) || dart.equals(dart.dload(this.series, _seriesType$), "candle") ? this.strokeColor = chartEventSelection != null ? this.selectionArgs.selectedColor : dart.dload(dart.dload(this.series, 'selectionSettings'), 'selectedColor') == null ? segment[_defaultFillColor].color : dart.dload(dart.dload(this.series, 'selectionSettings'), 'selectedColor') : this.strokeColor = chartEventSelection != null && this.selectionArgs != null && this.selectionArgs.selectedBorderColor != null ? this.selectionArgs.selectedBorderColor : dart.dload(dart.dload(this.series, 'selectionSettings'), 'selectedBorderColor') == null ? dart.dload(this.series, 'borderColor') : dart.dload(dart.dload(this.series, 'selectionSettings'), 'selectedBorderColor');
        }
        this.strokeOpacity = chartEventSelection != null && this.selectionArgs != null && this.selectionArgs.selectedBorderColor != null ? this.selectionArgs.selectedBorderColor.opacity : dart.dload(dart.dload(this.series, 'selectionSettings'), 'selectedOpacity') == null ? dart.dload(this.series, 'opacity') : dart.dload(dart.dload(this.series, 'selectionSettings'), 'selectedOpacity');
        this.strokeWidth = chartEventSelection != null && this.selectionArgs != null && this.selectionArgs.selectedBorderWidth != null ? this.selectionArgs.selectedBorderWidth : dart.dload(dart.dload(this.series, 'selectionSettings'), 'selectedBorderWidth') == null ? dart.dload(this.series, 'borderWidth') : dart.dload(dart.dload(this.series, 'selectionSettings'), 'selectedBorderWidth');
      } else {
        if (charts.CartesianSeries.is(this.series)) {
          charts.LineSegment.is(segment) || charts.SplineSegment.is(segment) || charts.StepLineSegment.is(segment) || charts.FastLineSegment.is(segment) || charts.StackedLineSegment.is(segment) || charts.HiloSegment.is(segment) || charts.HiloOpenCloseSegment.is(segment) || charts.CandleSegment.is(segment) ? this.strokeColor = chartEventSelection != null && this.selectionArgs != null ? this.selectionArgs.unselectedColor : dart.dload(dart.dload(this.series, 'selectionSettings'), 'unselectedColor') == null ? segment[_defaultFillColor].color : dart.dload(dart.dload(this.series, 'selectionSettings'), 'unselectedColor') : this.strokeColor = chartEventSelection != null && this.selectionArgs != null && this.selectionArgs.unselectedBorderColor != null ? this.selectionArgs.unselectedBorderColor : dart.dload(dart.dload(this.series, 'selectionSettings'), 'unselectedBorderColor') == null ? dart.dload(this.series, 'borderColor') : dart.dload(dart.dload(this.series, 'selectionSettings'), 'unselectedBorderColor');
        }
        this.strokeOpacity = chartEventSelection != null && this.selectionArgs != null && this.selectionArgs.unselectedColor != null ? this.selectionArgs.unselectedColor.opacity : dart.dload(dart.dload(this.series, 'selectionSettings'), 'unselectedOpacity') == null ? dart.dload(this.series, 'opacity') : dart.dload(dart.dload(this.series, 'selectionSettings'), 'unselectedOpacity');
        this.strokeWidth = chartEventSelection != null && this.selectionArgs != null && this.selectionArgs.unselectedBorderWidth != null ? this.selectionArgs.unselectedBorderWidth : dart.dload(dart.dload(this.series, 'selectionSettings'), 'unselectedBorderWidth') == null ? dart.dload(this.series, 'borderWidth') : dart.dload(dart.dload(this.series, 'selectionSettings'), 'unselectedBorderWidth');
      }
      let selectedStrokePaint = ui.Paint.new();
      selectedStrokePaint.color = ui.Color._check(this.strokeColor);
      selectedStrokePaint.strokeWidth = core.double._check(this.strokeWidth);
      selectedStrokePaint.color.withOpacity(core.double._check(dart.dload(this.series, 'opacity')));
      selectedStrokePaint.style = ui.PaintingStyle.stroke;
      return selectedStrokePaint;
    }
    [_selectedSegmentsColors](selectedSegments) {
      for (let i = 0; i < dart.notNull(selectedSegments[$length]); i = i + 1) {
        this.series = dart.dsend(dart.dload(dart.dload(this.chart, _chartSeries), 'visibleSeries'), '_get', [selectedSegments[$_get](i)[_seriesIndex]]);
        if (!dart.dtest(dart.dsend(dart.dload(this.series, _seriesType$), 'contains', ["area"])) && !dart.equals(dart.dload(this.series, _seriesType$), "fastline")) {
          let currentSegment = charts.ChartSegment._check(dart.dsend(dart.dload(this.series, 'segments'), '_get', [selectedSegments[$_get](i).currentSegmentIndex]));
          let fillPaint = this.getFillColor(true, currentSegment);
          currentSegment.fillPaint = ui.Paint._check(dart.dsend(dart.dload(this.series, 'selectionSettings'), 'getSelectedItemFill', [fillPaint, selectedSegments[$_get](i)[_seriesIndex], selectedSegments[$_get](i).currentSegmentIndex, selectedSegments]));
          let strokePaint = this.getStrokeColor(true, currentSegment);
          currentSegment.strokePaint = ui.Paint._check(dart.dsend(dart.dload(this.series, 'selectionSettings'), 'getSelectedItemBorder', [strokePaint, selectedSegments[$_get](i)[_seriesIndex], selectedSegments[$_get](i).currentSegmentIndex, selectedSegments]));
        } else {
          let currentSegment = charts.ChartSegment._check(dart.dsend(dart.dload(this.series, 'segments'), '_get', [0]));
          let fillPaint = this.getFillColor(true, currentSegment);
          currentSegment.fillPaint = ui.Paint._check(dart.dsend(dart.dload(this.series, 'selectionSettings'), 'getSelectedItemFill', [fillPaint, selectedSegments[$_get](i)[_seriesIndex], selectedSegments[$_get](i).currentSegmentIndex, selectedSegments]));
          let strokePaint = this.getStrokeColor(true, currentSegment);
          currentSegment.strokePaint = ui.Paint._check(dart.dsend(dart.dload(this.series, 'selectionSettings'), 'getSelectedItemBorder', [strokePaint, selectedSegments[$_get](i)[_seriesIndex], selectedSegments[$_get](i).currentSegmentIndex, selectedSegments]));
        }
      }
    }
    [_unselectedSegmentsColors](unselectedSegments) {
      for (let i = 0; i < dart.notNull(unselectedSegments[$length]); i = i + 1) {
        this.series = dart.dsend(dart.dload(dart.dload(this.chart, _chartSeries), 'visibleSeries'), '_get', [unselectedSegments[$_get](i)[_seriesIndex]]);
        if (!dart.dtest(dart.dsend(dart.dload(this.series, _seriesType$), 'contains', ["area"])) && !dart.equals(dart.dload(this.series, _seriesType$), "fastline")) {
          let currentSegment = charts.ChartSegment._check(dart.dsend(dart.dload(this.series, 'segments'), '_get', [unselectedSegments[$_get](i).currentSegmentIndex]));
          let fillPaint = this.getFillColor(false, currentSegment);
          currentSegment.fillPaint = ui.Paint._check(dart.dsend(dart.dload(this.series, 'selectionSettings'), 'getUnselectedItemFill', [fillPaint, unselectedSegments[$_get](i)[_seriesIndex], unselectedSegments[$_get](i).currentSegmentIndex, unselectedSegments]));
          let strokePaint = this.getStrokeColor(false, currentSegment);
          currentSegment.strokePaint = ui.Paint._check(dart.dsend(dart.dload(this.series, 'selectionSettings'), 'getUnselectedItemBorder', [strokePaint, unselectedSegments[$_get](i)[_seriesIndex], unselectedSegments[$_get](i).currentSegmentIndex, unselectedSegments]));
        } else {
          let currentSegment = charts.ChartSegment._check(dart.dsend(dart.dload(this.series, 'segments'), '_get', [0]));
          let fillPaint = this.getFillColor(false, currentSegment);
          currentSegment.fillPaint = ui.Paint._check(dart.dsend(dart.dload(this.series, 'selectionSettings'), 'getUnselectedItemFill', [fillPaint, unselectedSegments[$_get](i)[_seriesIndex], unselectedSegments[$_get](i).currentSegmentIndex, unselectedSegments]));
          let strokePaint = this.getStrokeColor(false, currentSegment);
          currentSegment.strokePaint = ui.Paint._check(dart.dsend(dart.dload(this.series, 'selectionSettings'), 'getUnselectedItemBorder', [strokePaint, unselectedSegments[$_get](i)[_seriesIndex], unselectedSegments[$_get](i).currentSegmentIndex, unselectedSegments]));
        }
      }
    }
    changeColorAndPopUnselectedSegments(unselectedSegments) {
      let k = dart.notNull(unselectedSegments[$length]) - 1;
      while (dart.test(unselectedSegments[$isNotEmpty])) {
        this.series = dart.dsend(dart.dload(dart.dload(this.chart, _chartSeries), 'visibleSeries'), '_get', [unselectedSegments[$_get](k)[_seriesIndex]]);
        if (!dart.dtest(dart.dsend(dart.dload(this.series, _seriesType$), 'contains', ["area"])) && !dart.equals(dart.dload(this.series, _seriesType$), "fastline")) {
          let currentSegment = charts.ChartSegment._check(dart.dsend(dart.dload(this.series, 'segments'), '_get', [unselectedSegments[$_get](k).currentSegmentIndex]));
          let fillPaint = this.getDefaultFillColor(null, null, currentSegment);
          currentSegment.fillPaint = fillPaint;
          let strokePaint = this.getDefaultStrokeColor(null, null, currentSegment);
          currentSegment.strokePaint = strokePaint;
          unselectedSegments[$remove](unselectedSegments[$_get](k));
          k = k - 1;
        } else {
          let currentSegment = charts.ChartSegment._check(dart.dsend(dart.dload(this.series, 'segments'), '_get', [0]));
          let fillPaint = this.getDefaultFillColor(null, null, currentSegment);
          currentSegment.fillPaint = fillPaint;
          let strokePaint = this.getDefaultStrokeColor(null, null, currentSegment);
          currentSegment.strokePaint = strokePaint;
          unselectedSegments[$remove](unselectedSegments[$_get](0));
          k = k - 1;
        }
      }
    }
    changeColorAndPopSelectedSegments(selectedSegments, isSamePointSelect) {
      let j = dart.notNull(selectedSegments[$length]) - 1;
      while (dart.test(selectedSegments[$isNotEmpty])) {
        this.series = dart.dsend(dart.dload(dart.dload(this.chart, _chartSeries), 'visibleSeries'), '_get', [selectedSegments[$_get](j)[_seriesIndex]]);
        if (!dart.dtest(dart.dsend(dart.dload(this.series, _seriesType$), 'contains', ["area"])) && !dart.equals(dart.dload(this.series, _seriesType$), "fastline")) {
          let currentSegment = charts.ChartSegment._check(dart.dsend(dart.dload(this.series, 'segments'), '_get', [selectedSegments[$_get](j).currentSegmentIndex]));
          let fillPaint = this.getDefaultFillColor(null, null, currentSegment);
          currentSegment.fillPaint = fillPaint;
          let strokePaint = this.getDefaultStrokeColor(null, null, currentSegment);
          currentSegment.strokePaint = strokePaint;
          if (dart.equals(dart.dload(this.series, _seriesType$), "line") || dart.equals(dart.dload(this.series, _seriesType$), "spline") || dart.equals(dart.dload(this.series, _seriesType$), "stepline") || dart.equals(dart.dload(this.series, _seriesType$), "stackedline") || dart.equals(dart.dload(this.series, _seriesType$), "stackedline100") || dart.dtest(dart.dsend(dart.dload(this.series, _seriesType$), 'contains', ["hilo"])) || dart.equals(dart.dload(this.series, _seriesType$), "candle")) {
            if (selectedSegments[$_get](j).currentSegmentIndex == this.cartesianPointIndex && selectedSegments[$_get](j)[_seriesIndex] == this.cartesianSeriesIndex) isSamePointSelect = true;
          } else {
            if (selectedSegments[$_get](j).currentSegmentIndex == this.pointIndex && selectedSegments[$_get](j)[_seriesIndex] == this.seriesIndex) isSamePointSelect = true;
          }
          selectedSegments[$remove](selectedSegments[$_get](j));
          j = j - 1;
        } else {
          let currentSegment = charts.ChartSegment._check(dart.dsend(dart.dload(this.series, 'segments'), '_get', [0]));
          let fillPaint = this.getDefaultFillColor(null, null, currentSegment);
          currentSegment.fillPaint = fillPaint;
          let strokePaint = this.getDefaultStrokeColor(null, null, currentSegment);
          currentSegment.strokePaint = strokePaint;
          if (selectedSegments[$_get](0)[_seriesIndex] == this.seriesIndex) isSamePointSelect = true;
          selectedSegments[$remove](selectedSegments[$_get](0));
          j = j - 1;
        }
      }
      return isSamePointSelect;
    }
    getTappedSegment() {
      for (let i = 0; i < dart.notNull(core.num._check(dart.dload(dart.dload(dart.dload(this.chart, _chartSeries), 'visibleSeries'), 'length'))); i = i + 1) {
        let series = charts.CartesianSeries._check(dart.dsend(dart.dload(dart.dload(this.chart, _chartSeries), 'visibleSeries'), '_get', [i]));
        for (let k = 0; k < dart.notNull(series.segments[$length]); k = k + 1) {
          if (!series[_seriesType$][$contains]("area") && series[_seriesType$] !== "fastline") {
            this.currentSegment = series.segments[$_get](k);
            if (series[_seriesType$] === "line" || series[_seriesType$] === "spline" || series[_seriesType$] === "stepline" || series[_seriesType$] === "stackedline" || series[_seriesType$] === "stackedline100" || series[_seriesType$][$contains]("hilo") || series[_seriesType$] === "candle") {
              if (this.currentSegment.currentSegmentIndex == this.cartesianPointIndex && this.currentSegment[_seriesIndex] == this.cartesianSeriesIndex) {
                this.selectedSegment = series.segments[$_get](k);
              }
            } else {
              if (this.currentSegment.currentSegmentIndex == this.pointIndex && this.currentSegment[_seriesIndex] == this.seriesIndex) {
                this.selectedSegment = series.segments[$_get](k);
              }
            }
          } else {
            this.currentSegment = series.segments[$_get](0);
            if (this.currentSegment[_seriesIndex] == this.seriesIndex) {
              this.selectedSegment = series.segments[$_get](0);
              break;
            }
          }
        }
      }
      return this.selectedSegment;
    }
    checkPosition() {
      L1:
        for (let i = 0; i < dart.notNull(core.num._check(dart.dload(dart.dload(dart.dload(this.chart, _chartSeries), 'visibleSeries'), 'length'))); i = i + 1) {
          let series = charts.CartesianSeries._check(dart.dsend(dart.dload(dart.dload(this.chart, _chartSeries), 'visibleSeries'), '_get', [i]));
          for (let k = 0; k < dart.notNull(series.segments[$length]); k = k + 1) {
            this.currentSegment = series.segments[$_get](k);
            if (this.currentSegment.currentSegmentIndex == this.pointIndex && this.currentSegment[_seriesIndex] == this.seriesIndex) {
              this.isSelected = true;
              break L1;
            } else
              this.isSelected = false;
          }
        }
      return this.isSelected;
    }
    isCartesianSelection(chartAssign, seriesAssign, pointIndex, seriesIndex) {
      let t4, t4$, t4$0;
      this.chart = chartAssign;
      this.series = seriesAssign;
      if (dart.dload(this.chart, 'onSelectionChanged') != null) {
        dart.dsend(this.chart, 'onSelectionChanged', [this.getSelectionEventArgs(this.series, seriesIndex, pointIndex)]);
      }
      if (dart.equals((t4 = this.selectionType, t4 == null ? dart.dload(this.chart, 'selectionType') : t4), charts.SelectionType.point)) {
        let isSamePointSelect = false;
        if (this.selectedSegments[$length] === 1) this.changeColorAndPopUnselectedSegments(this.unselectedSegments);
        let multiSelect = false;
        if (dart.dtest(dart.dload(this.chart, 'enableMultiSelection'))) {
          if (dart.test(this.selectedSegments[$isNotEmpty])) {
            for (let i = core.int._check(dart.dsend(dart.dload(dart.dload(dart.dload(this.chart, _chartSeries), 'visibleSeries'), 'length'), '-', [1])); dart.notNull(i) >= 0; i = dart.notNull(i) - 1) {
              let series = charts.CartesianSeries._check(dart.dsend(dart.dload(dart.dload(this.chart, _chartSeries), 'visibleSeries'), '_get', [i]));
              for (let k = 0; k < dart.notNull(series.segments[$length]); k = k + 1) {
                this.currentSegment = series.segments[$_get](k);
                if (this.currentSegment.currentSegmentIndex == pointIndex && this.currentSegment[_seriesIndex] == seriesIndex) {
                  this.selectedSegment = series.segments[$_get](k);
                  break;
                }
              }
            }
            if (this.selectedSegment != null) {
              for (let k = 0; k < dart.notNull(this.selectedSegments[$length]); k = k + 1) {
                if (dart.equals(this.selectedSegment[_currentPoint], this.selectedSegments[$_get](k)[_currentPoint])) {
                  multiSelect = true;
                  break;
                }
              }
            }
            if (multiSelect) {
              for (let j = dart.notNull(this.selectedSegments[$length]) - 1; j >= 0; j = j - 1) {
                this.series = dart.dsend(dart.dload(dart.dload(this.chart, _chartSeries), 'visibleSeries'), '_get', [this.selectedSegments[$_get](j)[_seriesIndex]]);
                let currentSegment = charts.ChartSegment._check(dart.dsend(dart.dload(this.series, 'segments'), '_get', [this.selectedSegments[$_get](j).currentSegmentIndex]));
                if (dart.equals(this.selectedSegment[_currentPoint], this.selectedSegments[$_get](j)[_currentPoint]) && this.selectedSegments[$length] === 1) {
                  let fillPaint = this.getDefaultFillColor(null, null, currentSegment);
                  let strokePaint = this.getDefaultStrokeColor(null, null, currentSegment);
                  currentSegment.fillPaint = fillPaint;
                  currentSegment.strokePaint = strokePaint;
                  if (this.selectedSegments[$_get](j).currentSegmentIndex == pointIndex && this.selectedSegments[$_get](j)[_seriesIndex] == seriesIndex) isSamePointSelect = true;
                  this.selectedSegments[$remove](this.selectedSegments[$_get](j));
                } else if (dart.equals(this.selectedSegment[_currentPoint], this.selectedSegments[$_get](j)[_currentPoint])) {
                  let fillPaint = this.getFillColor(false, currentSegment);
                  currentSegment.fillPaint = fillPaint;
                  let strokePaint = this.getStrokeColor(false, currentSegment);
                  currentSegment.strokePaint = strokePaint;
                  if (this.selectedSegments[$_get](j).currentSegmentIndex == pointIndex && this.selectedSegments[$_get](j)[_seriesIndex] == seriesIndex) isSamePointSelect = true;
                  this.unselectedSegments[$add](this.selectedSegments[$_get](j));
                  this.selectedSegments[$remove](this.selectedSegments[$_get](j));
                }
              }
            }
          }
        } else
          isSamePointSelect = this.changeColorAndPopSelectedSegments(this.selectedSegments, isSamePointSelect);
        if (dart.dtest(dart.dload(dart.dload(this.series, 'selectionSettings'), 'enable'))) {
          if (!dart.test(isSamePointSelect)) {
            dart.equals(dart.dload(this.series, _seriesType$), "column") || dart.equals(dart.dload(this.series, _seriesType$), "bar") || dart.equals(dart.dload(this.series, _seriesType$), "scatter") || dart.equals(dart.dload(this.series, _seriesType$), "bubble") || dart.dtest(dart.dsend(dart.dload(this.series, _seriesType$), 'contains', ["stackedcolumn"])) || dart.dtest(dart.dsend(dart.dload(this.series, _seriesType$), 'contains', ["stackedbar"])) || dart.equals(dart.dload(this.series, _seriesType$), "rangecolumn") ? this.isSelected = this.checkPosition() : this.isSelected = true;
            for (let i = core.int._check(dart.dsend(dart.dload(dart.dload(dart.dload(this.chart, _chartSeries), 'visibleSeries'), 'length'), '-', [1])); dart.notNull(i) >= 0; i = dart.notNull(i) - 1) {
              let series1 = charts.CartesianSeries._check(dart.dsend(dart.dload(dart.dload(this.chart, _chartSeries), 'visibleSeries'), '_get', [i]));
              if (dart.test(this.isSelected)) {
                for (let j = 0; j < dart.notNull(series1.segments[$length]); j = j + 1) {
                  this.currentSegment = series1.segments[$_get](j);
                  if (this.currentSegment.currentSegmentIndex == null || pointIndex == null) {
                    break;
                  }
                  this.currentSegment.currentSegmentIndex == pointIndex && this.currentSegment[_seriesIndex] == seriesIndex ? this.selectedSegments[$add](series1.segments[$_get](j)) : this.unselectedSegments[$add](series1.segments[$_get](j));
                }
                this[_unselectedSegmentsColors](this.unselectedSegments);
                this[_selectedSegmentsColors](this.selectedSegments);
              }
            }
          }
        }
      } else if (dart.equals((t4$ = this.selectionType, t4$ == null ? dart.dload(this.chart, 'selectionType') : t4$), charts.SelectionType.series)) {
        let isSamePointSelect = false;
        for (let i = 0; i < dart.notNull(core.num._check(dart.dload(dart.dload(dart.dload(this.chart, _chartSeries), 'visibleSeries'), 'length'))); i = i + 1) {
          let series = charts.CartesianSeries._check(dart.dsend(dart.dload(dart.dload(this.chart, _chartSeries), 'visibleSeries'), '_get', [i]));
          for (let k = 0; k < dart.notNull(series.segments[$length]); k = k + 1) {
            this.currentSegment = series.segments[$_get](k);
            let compareSegment = series.segments[$_get](k);
            if (!dart.equals(this.currentSegment.segmentRect, compareSegment.segmentRect)) this.isSelected = false;
          }
        }
        if (core.identical(this.selectedSegments[$length], dart.dload(dart.dload(this.series, 'segments'), 'length'))) this.changeColorAndPopUnselectedSegments(this.unselectedSegments);
        let multiSelect = false;
        if (dart.dtest(dart.dload(this.chart, 'enableMultiSelection'))) {
          if (dart.test(this.selectedSegments[$isNotEmpty])) {
            this.selectedSegment = this.getTappedSegment();
            if (this.selectedSegment != null) {
              for (let k = 0; k < dart.notNull(this.selectedSegments[$length]); k = k + 1) {
                if (seriesIndex == this.selectedSegments[$_get](k)[_seriesIndex]) {
                  multiSelect = true;
                  break;
                }
              }
            }
            if (multiSelect) {
              let currentSegment = null;
              for (let j = dart.notNull(this.selectedSegments[$length]) - 1; j >= 0; j = j - 1) {
                this.series = dart.dsend(dart.dload(dart.dload(this.chart, _chartSeries), 'visibleSeries'), '_get', [this.selectedSegments[$_get](j)[_seriesIndex]]);
                if (!dart.dtest(dart.dsend(dart.dload(this.series, _seriesType$), 'contains', ["area"])) && !dart.equals(dart.dload(this.series, _seriesType$), "fastline"))
                  currentSegment = charts.ChartSegment._check(dart.dsend(dart.dload(this.series, 'segments'), '_get', [this.selectedSegments[$_get](j).currentSegmentIndex]));
                else
                  currentSegment = charts.ChartSegment._check(dart.dsend(dart.dload(this.series, 'segments'), '_get', [0]));
                if (!dart.dtest(dart.dsend(dart.dload(this.series, _seriesType$), 'contains', ["area"])) && !dart.equals(dart.dload(this.series, _seriesType$), "fastline")) {
                  if (this.selectedSegment[_seriesIndex] == this.selectedSegments[$_get](j)[_seriesIndex] && dart.notNull(this.selectedSegments[$length]) <= dart.notNull(core.num._check(dart.dload(dart.dload(this.series, 'segments'), 'length')))) {
                    let fillPaint = this.getDefaultFillColor(null, null, currentSegment);
                    let strokePaint = this.getDefaultStrokeColor(null, null, currentSegment);
                    currentSegment.fillPaint = fillPaint;
                    currentSegment.strokePaint = strokePaint;
                    if (this.selectedSegments[$_get](j).currentSegmentIndex == pointIndex && this.selectedSegments[$_get](j)[_seriesIndex] == seriesIndex) isSamePointSelect = true;
                    this.selectedSegments[$remove](this.selectedSegments[$_get](j));
                  } else if (this.selectedSegment[_seriesIndex] == this.selectedSegments[$_get](j)[_seriesIndex]) {
                    let fillPaint = this.getFillColor(false, currentSegment);
                    let strokePaint = this.getStrokeColor(false, currentSegment);
                    currentSegment.fillPaint = fillPaint;
                    currentSegment.strokePaint = strokePaint;
                    if (this.selectedSegments[$_get](j).currentSegmentIndex == pointIndex && this.selectedSegments[$_get](j)[_seriesIndex] == seriesIndex) isSamePointSelect = true;
                    this.unselectedSegments[$add](this.selectedSegments[$_get](j));
                    this.selectedSegments[$remove](this.selectedSegments[$_get](j));
                  }
                } else {
                  if (this.selectedSegment[_seriesIndex] == this.selectedSegments[$_get](j)[_seriesIndex] && dart.notNull(this.selectedSegments[$length]) <= dart.notNull(core.num._check(dart.dload(dart.dload(this.series, 'segments'), 'length')))) {
                    let fillPaint = this.getDefaultFillColor(null, null, currentSegment);
                    let strokePaint = this.getDefaultStrokeColor(null, null, currentSegment);
                    currentSegment.fillPaint = fillPaint;
                    currentSegment.strokePaint = strokePaint;
                    if (this.selectedSegments[$_get](j)[_seriesIndex] == seriesIndex) isSamePointSelect = true;
                    this.selectedSegments[$remove](this.selectedSegments[$_get](j));
                  } else if (this.selectedSegment[_seriesIndex] == this.selectedSegments[$_get](j)[_seriesIndex]) {
                    let fillPaint = this.getFillColor(false, currentSegment);
                    let strokePaint = this.getStrokeColor(false, currentSegment);
                    currentSegment.fillPaint = fillPaint;
                    currentSegment.strokePaint = strokePaint;
                    if (this.selectedSegments[$_get](j)[_seriesIndex] == seriesIndex) isSamePointSelect = true;
                    this.unselectedSegments[$add](this.selectedSegments[$_get](j));
                    this.selectedSegments[$remove](this.selectedSegments[$_get](j));
                  }
                }
              }
            }
          }
        } else
          isSamePointSelect = this.changeColorAndPopSelectedSegments(this.selectedSegments, isSamePointSelect);
        if (dart.dtest(dart.dload(dart.dload(this.series, 'selectionSettings'), 'enable'))) {
          if (!dart.test(isSamePointSelect)) {
            dart.equals(dart.dload(this.series, _seriesType$), "column") || dart.equals(dart.dload(this.series, _seriesType$), "bar") || dart.equals(dart.dload(this.series, _seriesType$), "scatter") || dart.equals(dart.dload(this.series, _seriesType$), "bubble") || dart.dtest(dart.dsend(dart.dload(this.series, _seriesType$), 'contains', ["stackedcolumn"])) || dart.dtest(dart.dsend(dart.dload(this.series, _seriesType$), 'contains', ["stackedbar"])) || dart.equals(dart.dload(this.series, _seriesType$), "rangecolumn") ? this.isSelected = this.checkPosition() : this.isSelected = true;
            this.selectedSegment = this.getTappedSegment();
            if (dart.test(this.isSelected)) {
              for (let i = 0; i < dart.notNull(core.num._check(dart.dload(dart.dload(dart.dload(this.chart, _chartSeries), 'visibleSeries'), 'length'))); i = i + 1) {
                let series = charts.CartesianSeries._check(dart.dsend(dart.dload(dart.dload(this.chart, _chartSeries), 'visibleSeries'), '_get', [i]));
                if (!series[_seriesType$][$contains]("area") && series[_seriesType$] !== "fastline") {
                  if (seriesIndex != null) {
                    for (let k = 0; k < dart.notNull(series.segments[$length]); k = k + 1) {
                      this.currentSegment = series.segments[$_get](k);
                      this.currentSegment[_seriesIndex] == seriesIndex ? this.selectedSegments[$add](series.segments[$_get](k)) : this.unselectedSegments[$add](series.segments[$_get](k));
                    }
                  }
                } else {
                  this.currentSegment = series.segments[$_get](0);
                  this.currentSegment[_seriesIndex] == seriesIndex ? this.selectedSegments[$add](series.segments[$_get](0)) : this.unselectedSegments[$add](series.segments[$_get](0));
                }
                this[_unselectedSegmentsColors](this.unselectedSegments);
                this[_selectedSegmentsColors](this.selectedSegments);
              }
            }
          }
        }
      } else if (dart.equals((t4$0 = this.selectionType, t4$0 == null ? dart.dload(this.chart, 'selectionType') : t4$0), charts.SelectionType.cluster)) {
        let isSamePointSelect = false;
        if (core.identical(this.selectedSegments[$length], dart.dload(dart.dload(dart.dload(this.chart, _chartSeries), 'visibleSeries'), 'length'))) this.changeColorAndPopUnselectedSegments(this.unselectedSegments);
        let multiSelect = false;
        if (dart.dtest(dart.dload(this.chart, 'enableMultiSelection'))) {
          if (dart.test(this.selectedSegments[$isNotEmpty])) {
            this.selectedSegment = this.getTappedSegment();
            if (this.selectedSegment != null) {
              for (let k = 0; k < dart.notNull(this.selectedSegments[$length]); k = k + 1) {
                if (this.selectedSegment.currentSegmentIndex == this.selectedSegments[$_get](k).currentSegmentIndex) {
                  multiSelect = true;
                  break;
                }
              }
            }
            if (multiSelect) {
              for (let j = dart.notNull(this.selectedSegments[$length]) - 1; j >= 0; j = j - 1) {
                this.series = dart.dsend(dart.dload(dart.dload(this.chart, _chartSeries), 'visibleSeries'), '_get', [this.selectedSegments[$_get](j)[_seriesIndex]]);
                let currentSegment = charts.ChartSegment._check(dart.dsend(dart.dload(this.series, 'segments'), '_get', [this.selectedSegments[$_get](j).currentSegmentIndex]));
                if (this.selectedSegment.currentSegmentIndex == this.selectedSegments[$_get](j).currentSegmentIndex && dart.notNull(this.selectedSegments[$length]) <= dart.notNull(core.num._check(dart.dload(dart.dload(dart.dload(this.chart, _chartSeries), 'visibleSeries'), 'length')))) {
                  let fillPaint = this.getDefaultFillColor(null, null, currentSegment);
                  let strokePaint = this.getDefaultStrokeColor(null, null, currentSegment);
                  currentSegment.fillPaint = fillPaint;
                  currentSegment.strokePaint = strokePaint;
                  if (this.selectedSegments[$_get](j).currentSegmentIndex == pointIndex && this.selectedSegments[$_get](j)[_seriesIndex] == seriesIndex) isSamePointSelect = true;
                  this.selectedSegments[$remove](this.selectedSegments[$_get](j));
                } else if (this.selectedSegment.currentSegmentIndex == this.selectedSegments[$_get](j).currentSegmentIndex) {
                  let fillPaint = this.getFillColor(false, currentSegment);
                  let strokePaint = this.getStrokeColor(false, currentSegment);
                  currentSegment.fillPaint = fillPaint;
                  currentSegment.strokePaint = strokePaint;
                  if (this.selectedSegments[$_get](j).currentSegmentIndex == pointIndex && this.selectedSegments[$_get](j)[_seriesIndex] == seriesIndex) isSamePointSelect = true;
                  this.unselectedSegments[$add](this.selectedSegments[$_get](j));
                  this.selectedSegments[$remove](this.selectedSegments[$_get](j));
                }
              }
            }
          }
        } else
          isSamePointSelect = this.changeColorAndPopSelectedSegments(this.selectedSegments, isSamePointSelect);
        if (dart.dtest(dart.dload(dart.dload(this.series, 'selectionSettings'), 'enable'))) {
          if (!dart.test(isSamePointSelect)) {
            let isSegmentSeries = dart.equals(dart.dload(this.series, _seriesType$), "column") || dart.equals(dart.dload(this.series, _seriesType$), "bar") || dart.equals(dart.dload(this.series, _seriesType$), "scatter") || dart.equals(dart.dload(this.series, _seriesType$), "bubble") || dart.dtest(dart.dsend(dart.dload(this.series, _seriesType$), 'contains', ["stackedcolumn"])) || dart.dtest(dart.dsend(dart.dload(this.series, _seriesType$), 'contains', ["stackedbar"])) || dart.equals(dart.dload(this.series, _seriesType$), "rangecolumn");
            this.selectedSegment = this.getTappedSegment();
            isSegmentSeries ? this.isSelected = this.checkPosition() : this.isSelected = true;
            if (dart.test(this.isSelected)) {
              for (let i = 0; i < dart.notNull(core.num._check(dart.dload(dart.dload(dart.dload(this.chart, _chartSeries), 'visibleSeries'), 'length'))); i = i + 1) {
                let series = charts.CartesianSeries._check(dart.dsend(dart.dload(dart.dload(this.chart, _chartSeries), 'visibleSeries'), '_get', [i]));
                if (dart.test(series.selectionSettings.enable)) {
                  if (this.currentSegment.currentSegmentIndex == null || pointIndex == null) {
                    break;
                  }
                  for (let k = 0; k < dart.notNull(series.segments[$length]); k = k + 1) {
                    this.currentSegment = series.segments[$_get](k);
                    if (isSegmentSeries) {
                      dart.equals(this.currentSegment[_currentPoint].xValue, this.selectedSegment[_currentPoint].xValue) ? this.selectedSegments[$add](series.segments[$_get](k)) : this.unselectedSegments[$add](series.segments[$_get](k));
                    } else {
                      this.currentSegment.currentSegmentIndex == this.selectedSegment.currentSegmentIndex ? this.selectedSegments[$add](series.segments[$_get](k)) : this.unselectedSegments[$add](series.segments[$_get](k));
                    }
                  }
                }
              }
              this[_unselectedSegmentsColors](this.unselectedSegments);
              this[_selectedSegmentsColors](this.selectedSegments);
            }
          }
        }
      }
      return this.isSelected;
    }
    getPointAndSeriesIndex(chart, position, series) {
      let currentSegment = null;
      let selectedSegment = null;
      for (let k = 0; k < dart.notNull(series.segments[$length]); k = k + 1) {
        currentSegment = series.segments[$_get](k);
        if (dart.test(currentSegment.segmentRect.contains(position))) {
          selectedSegment = series.segments[$_get](k);
        }
      }
      if (selectedSegment == null) {
        series.selectionSettings[_selectionRenderer].pointIndex = null;
        series.selectionSettings[_selectionRenderer].seriesIndex = null;
      } else {
        series.selectionSettings[_selectionRenderer].pointIndex = selectedSegment.currentSegmentIndex;
        series.selectionSettings[_selectionRenderer].seriesIndex = selectedSegment[_seriesIndex];
      }
    }
    isLineIntersect(segmentStartPoint, segmentEndPoint, touchStartPoint, touchEndPoint) {
      let topPos = charts._SelectionRenderer.getPointDirection(segmentStartPoint, segmentEndPoint, touchStartPoint);
      let botPos = charts._SelectionRenderer.getPointDirection(segmentStartPoint, segmentEndPoint, touchEndPoint);
      let leftPos = charts._SelectionRenderer.getPointDirection(touchStartPoint, touchEndPoint, segmentStartPoint);
      let rightPos = charts._SelectionRenderer.getPointDirection(touchStartPoint, touchEndPoint, segmentEndPoint);
      return topPos != botPos && leftPos != rightPos;
    }
    static getPointDirection(point1, point2, point3) {
      let value = core.int._check(dart.dsend(dart.dsend(dart.dsend(dart.dsend(point2.y, '-', [point1.y]), '*', [dart.dsend(point3.x, '-', [point2.x])]), '-', [dart.dsend(dart.dsend(point2.x, '-', [point1.x]), '*', [dart.dsend(point3.y, '-', [point2.y])])]), 'toInt', []));
      if (value === 0) {
        return 0;
      }
      return dart.notNull(value) > 0 ? 1 : 2;
    }
    [_isSeriesContainsPoint](series, position) {
      let dataPointIndex = null;
      let startSegment = null;
      let endSegment = null;
      let nearestDataPoints = charts._getNearestChartPoints(position.dx, position.dy, charts.ChartAxis._check(dart.dload(series, _xAxis$)), charts.ChartAxis._check(dart.dload(series, _yAxis$)), charts.XyDataSeries._check(series));
      if (nearestDataPoints == null) {
        return false;
      }
      for (let dataPoint of nearestDataPoints) {
        dataPointIndex = dart.dsend(dart.dload(series, _dataPoints$), 'indexOf', [dataPoint]);
      }
      if (dataPointIndex != null) {
        if (dart.dtest(dart.dsend(dart.dload(series, _seriesType$), 'contains', ["hilo"])) || dart.equals(dart.dload(series, _seriesType$), "candle")) {
          startSegment = charts.ChartSegment._check(dart.dsend(dart.dload(series, 'segments'), '_get', [dataPointIndex]));
        } else {
          if (dart.equals(dataPointIndex, 0))
            startSegment = charts.ChartSegment._check(dart.dsend(dart.dload(series, 'segments'), '_get', [dataPointIndex]));
          else if (dart.equals(dataPointIndex, dart.dsend(dart.dload(dart.dload(series, _dataPoints$), 'length'), '-', [1])))
            startSegment = charts.ChartSegment._check(dart.dsend(dart.dload(series, 'segments'), '_get', [dart.dsend(dataPointIndex, '-', [1])]));
          else {
            startSegment = charts.ChartSegment._check(dart.dsend(dart.dload(series, 'segments'), '_get', [dart.dsend(dataPointIndex, '-', [1])]));
            endSegment = charts.ChartSegment._check(dart.dsend(dart.dload(series, 'segments'), '_get', [dataPointIndex]));
          }
        }
        startSegment != null ? this.cartesianSeriesIndex = startSegment[_seriesIndex] : this.cartesianSeriesIndex = endSegment[_seriesIndex];
        startSegment != null ? this.cartesianPointIndex = startSegment.currentSegmentIndex : this.cartesianPointIndex = endSegment.currentSegmentIndex;
        if (startSegment != null) {
          if (dart.test(this[_isSegmentIntersect](startSegment, position.dx, position.dy))) {
            return true;
          }
        }
        if (endSegment != null) return this[_isSegmentIntersect](endSegment, position.dx, position.dy);
      }
      return false;
    }
    getCartesianPointIndex(position) {
      let firstNearestDataPoints = [];
      let previousIndex = null;
      let nextIndex = null;
      let dataPointIndex = null;
      let previousDataPointIndex = null;
      let nextDataPointIndex = null;
      let nearestDataPointIndex = null;
      let nearestDataPoints = charts._getNearestChartPoints(position.dx, position.dy, charts.ChartAxis._check(dart.dload(this.series, _xAxis$)), charts.ChartAxis._check(dart.dload(this.series, _yAxis$)), charts.XyDataSeries._check(this.series));
      for (let dataPoint of nearestDataPoints) {
        dataPointIndex = dart.dsend(dart.dload(this.series, _dataPoints$), 'indexOf', [dataPoint]);
        previousIndex = dart.dsend(dart.dsend(dart.dload(this.series, _dataPoints$), 'indexOf', [dataPoint]), '-', [1]);
        dart.dtest(dart.dsend(previousIndex, '<', [0])) ? previousDataPointIndex = dataPointIndex : previousDataPointIndex = previousIndex;
        nextIndex = dart.dsend(dart.dsend(dart.dload(this.series, _dataPoints$), 'indexOf', [dataPoint]), '+', [1]);
        dart.dtest(dart.dsend(nextIndex, '>', [dart.dsend(dart.dload(dart.dload(this.series, _dataPoints$), 'length'), '-', [1])])) ? nextDataPointIndex = dataPointIndex : nextDataPointIndex = nextIndex;
      }
      firstNearestDataPoints[$add](dart.dsend(dart.dload(this.series, _dataPoints$), '_get', [previousDataPointIndex]));
      firstNearestDataPoints[$add](dart.dsend(dart.dload(this.series, _dataPoints$), '_get', [nextDataPointIndex]));
      let firstNearestPoints = charts._getNearestChartPoints(position.dx, position.dy, charts.ChartAxis._check(dart.dload(this.series, _xAxis$)), charts.ChartAxis._check(dart.dload(this.series, _yAxis$)), charts.XyDataSeries._check(this.series), firstNearestDataPoints);
      for (let dataPoint of firstNearestPoints) {
        if (dart.dtest(dart.dsend(dart.dload(this.series, _seriesType$), 'contains', ["hilo"])) || dart.equals(dart.dload(this.series, _seriesType$), "candle")) {
          nearestDataPointIndex = dataPointIndex;
        } else {
          if (dart.dtest(dart.dsend(dataPointIndex, '<', [dart.dsend(dart.dload(this.series, _dataPoints$), 'indexOf', [dataPoint])])))
            nearestDataPointIndex = dataPointIndex;
          else if (dart.equals(dataPointIndex, dart.dsend(dart.dload(this.series, _dataPoints$), 'indexOf', [dataPoint]))) {
            dart.dtest(dart.dsend(dart.dsend(dart.dsend(dart.dload(this.series, _dataPoints$), 'indexOf', [dataPoint]), '-', [1]), '<', [0])) ? nearestDataPointIndex = dart.dsend(dart.dload(this.series, _dataPoints$), 'indexOf', [dataPoint]) : nearestDataPointIndex = dart.dsend(dart.dsend(dart.dload(this.series, _dataPoints$), 'indexOf', [dataPoint]), '-', [1]);
          } else
            nearestDataPointIndex = dart.dsend(dart.dload(this.series, _dataPoints$), 'indexOf', [dataPoint]);
        }
      }
      dart.dput(dart.dload(dart.dload(this.series, 'selectionSettings'), _selectionRenderer), 'cartesianPointIndex', nearestDataPointIndex);
      return core.int._check(nearestDataPointIndex);
    }
    [_isSegmentIntersect](segment, touchX1, touchY1) {
      let currentSegment = null;
      let x1 = null;
      let x2 = null;
      let y1 = null;
      let y2 = null;
      if (charts.LineSegment.is(segment) || charts.SplineSegment.is(segment) || charts.StepLineSegment.is(segment) || charts.StackedLineSegment.is(segment) || charts.HiloSegment.is(segment) || charts.HiloOpenCloseSegment.is(segment) || charts.CandleSegment.is(segment) || charts.StackedLine100Segment.is(segment)) {
        currentSegment = segment;
      }
      x1 = charts.HiloSegment.is(currentSegment) || charts.HiloOpenCloseSegment.is(currentSegment) || charts.CandleSegment.is(currentSegment) ? dart.dload(currentSegment, 'x') : dart.dload(currentSegment, 'x1');
      if (charts.HiloSegment.is(currentSegment) || charts.HiloOpenCloseSegment.is(currentSegment) || charts.CandleSegment.is(currentSegment)) {
        y1 = dart.dload(currentSegment, 'low');
        x2 = dart.dload(currentSegment, 'x');
        y2 = dart.dload(currentSegment, 'high');
      } else {
        y1 = charts.StackedLineSegment.is(currentSegment) || charts.StackedLine100Segment.is(currentSegment) ? dart.dload(currentSegment, 'currentCummulativeValue') : dart.dload(currentSegment, 'y1');
        x2 = dart.dload(currentSegment, 'x2');
        y2 = charts.StackedLineSegment.is(currentSegment) || charts.StackedLine100Segment.is(currentSegment) ? dart.dload(currentSegment, 'nextCummulativeValue') : dart.dload(currentSegment, 'y2');
      }
      let leftPoint = new charts.CartesianChartPoint.new(dart.notNull(touchX1) - 20, dart.notNull(touchY1) - 20);
      let rightPoint = new charts.CartesianChartPoint.new(dart.notNull(touchX1) + 20, dart.notNull(touchY1) + 20);
      let topPoint = new charts.CartesianChartPoint.new(dart.notNull(touchX1) + 20, dart.notNull(touchY1) - 20);
      let bottomPoint = new charts.CartesianChartPoint.new(dart.notNull(touchX1) - 20, dart.notNull(touchY1) + 20);
      let startSegment = new charts.CartesianChartPoint.new(x1, y1);
      let endSegment = new charts.CartesianChartPoint.new(x2, y2);
      if (dart.test(this.isLineIntersect(startSegment, endSegment, charts.CartesianChartPoint._check(leftPoint), charts.CartesianChartPoint._check(rightPoint))) || dart.test(this.isLineIntersect(startSegment, endSegment, charts.CartesianChartPoint._check(topPoint), charts.CartesianChartPoint._check(bottomPoint)))) {
        return true;
      }
      if (charts.StepLineSeries.is(this.series)) {
        let x3 = dart.dload(currentSegment, 'x3');
        let y3 = dart.dload(currentSegment, 'y3');
        let x2 = dart.dload(currentSegment, 'x2');
        let y2 = dart.dload(currentSegment, 'y2');
        let endSegment = new charts.CartesianChartPoint.new(x2, y2);
        let midSegment = new charts.CartesianChartPoint.new(x3, y3);
        if (dart.test(this.isLineIntersect(endSegment, midSegment, charts.CartesianChartPoint._check(leftPoint), charts.CartesianChartPoint._check(rightPoint))) || dart.test(this.isLineIntersect(endSegment, midSegment, charts.CartesianChartPoint._check(topPoint), charts.CartesianChartPoint._check(bottomPoint)))) {
          return true;
        }
      }
      return false;
    }
    getSeriesIndex(chart, position, series) {
      let currentSegment = null;
      let seriesIndex = null;
      let point = null;
      L2:
        for (let i = 0; i < dart.notNull(chart[_chartSeries].visibleSeries[$length]); i = i + 1) {
          let series = charts.CartesianSeries._check(chart[_chartSeries].visibleSeries[$_get](i));
          for (let j = 0; j < dart.notNull(series[_dataPoints$][$length]); j = j + 1) {
            point = series[_dataPoints$][$_get](j);
            currentSegment = point.region;
            if (currentSegment != null && dart.test(currentSegment.contains(position))) {
              seriesIndex = i;
              break L2;
            }
          }
        }
      series.selectionSettings[_selectionRenderer].seriesIndex = seriesIndex;
    }
    performSelection(position) {
      let t5, t4;
      let select = false;
      let isSelect = false;
      let cartesianPointIndex = null;
      if (dart.equals(dart.dload(this.series, _seriesType$), "line") || dart.equals(dart.dload(this.series, _seriesType$), "spline") || dart.equals(dart.dload(this.series, _seriesType$), "stepline") || dart.equals(dart.dload(this.series, _seriesType$), "stackedline") || dart.dtest(dart.dsend(dart.dload(this.series, _seriesType$), 'contains', ["hilo"])) || dart.equals(dart.dload(this.series, _seriesType$), "candle") || dart.equals(dart.dload(this.series, _seriesType$), "stackedline100")) {
        isSelect = dart.dtest(dart.dload(dart.dload(this.series, 'selectionSettings'), 'enable')) ? this[_isSeriesContainsPoint](this.series, position) : false;
        if (dart.test(isSelect)) {
          cartesianPointIndex = this.getCartesianPointIndex(position);
          select = core.bool._check(dart.dsend(dart.dload(dart.dload(this.series, 'selectionSettings'), _selectionRenderer), 'isCartesianSelection', [this.chart, this.series, cartesianPointIndex, this.cartesianSeriesIndex]));
        }
      } else {
        dart.dput(dart.dload(this.chart, _chartState), 'renderDatalabelRegions', JSArrayOfRect().of([]));
        if (dart.dtest(dart.dsend(dart.dload(this.series, _seriesType$), 'contains', ["area"])) || dart.equals(dart.dload(this.series, _seriesType$), "fastline"))
          this.getSeriesIndex(charts.SfCartesianChart._check(this.chart), position, charts.CartesianSeries._check(this.series));
        else
          this.getPointAndSeriesIndex(charts.SfCartesianChart._check(this.chart), position, charts.CartesianSeries._check(this.series));
        select = core.bool._check(dart.dsend(dart.dload(dart.dload(this.series, 'selectionSettings'), _selectionRenderer), 'isCartesianSelection', [this.chart, this.series, this.pointIndex, this.seriesIndex]));
      }
      if (dart.test(select)) new (ValueNotifierOfint()).new(core.int._check((t4 = dart.dload(dart.dload(this.chart, _chartState), 'seriesRepaintNotifier'), t5 = dart.dload(t4, 'value'), dart.dput(t4, 'value', dart.dsend(t5, '+', [1])), t5)));
    }
    [_checkWithSelectionState](currentSegment, chart) {
      let isSelected = false;
      if (dart.test(this.selectedSegments[$isNotEmpty])) {
        for (let i = 0; i < dart.notNull(this.selectedSegments[$length]); i = i + 1) {
          if (this.selectedSegments[$_get](i)[_seriesIndex] == currentSegment[_seriesIndex] && this.selectedSegments[$_get](i).currentSegmentIndex == currentSegment.currentSegmentIndex) {
            this[_selectedSegmentsColors](JSArrayOfChartSegment().of([currentSegment]));
            isSelected = true;
            break;
          }
        }
      }
      if (!isSelected && dart.test(this.unselectedSegments[$isNotEmpty])) {
        for (let i = 0; i < dart.notNull(this.unselectedSegments[$length]); i = i + 1) {
          if (this.unselectedSegments[$_get](i)[_seriesIndex] == currentSegment[_seriesIndex] && this.unselectedSegments[$_get](i).currentSegmentIndex == currentSegment.currentSegmentIndex) {
            this[_unselectedSegmentsColors](JSArrayOfChartSegment().of([currentSegment]));
            isSelected = true;
            break;
          }
        }
      }
    }
    getSelectionEventArgs(series, seriesIndex, pointIndex) {
      if (series != null) {
        this.selectionArgs = new charts.SelectionArgs.new();
        this.selectionArgs.series = series;
        this.selectionArgs.selectedBorderColor = ui.Color._check(dart.dload(dart.dload(series, 'selectionSettings'), 'selectedBorderColor'));
        this.selectionArgs.selectedBorderWidth = core.double._check(dart.dload(dart.dload(series, 'selectionSettings'), 'selectedBorderWidth'));
        this.selectionArgs.selectedColor = ui.Color._check(dart.dload(dart.dload(series, 'selectionSettings'), 'selectedColor'));
        this.selectionArgs.unselectedBorderColor = ui.Color._check(dart.dload(dart.dload(series, 'selectionSettings'), 'unselectedBorderColor'));
        this.selectionArgs.unselectedBorderWidth = core.double._check(dart.dload(dart.dload(series, 'selectionSettings'), 'unselectedBorderWidth'));
        this.selectionArgs.unselectedColor = ui.Color._check(dart.dload(dart.dload(series, 'selectionSettings'), 'unselectedColor'));
        this.selectionArgs.seriesIndex = dart.asInt(seriesIndex);
        this.selectionArgs.pointIndex = dart.asInt(pointIndex);
      }
      return this.selectionArgs;
    }
  };
  (charts._SelectionRenderer.new = function() {
    this.pointIndex = null;
    this.seriesIndex = null;
    this.cartesianSeriesIndex = null;
    this.cartesianPointIndex = null;
    this.isSelection = null;
    this.selectedSegment = null;
    this.currentSegment = null;
    this.defaultselectedSegments = JSArrayOfChartSegment().of([]);
    this.defaultunselectedSegments = JSArrayOfChartSegment().of([]);
    this.selectedDataPoints = JSArrayOfChartPoint().of([]);
    this.unselectedDataPoints = JSArrayOfChartPoint().of([]);
    this.selectedRegions = JSArrayOf_Region().of([]);
    this.unselectedRegions = JSArrayOf_Region().of([]);
    this.currentDataPoint = null;
    this.isSelected = false;
    this.chart = null;
    this.series = null;
    this.fillColor = null;
    this.fillOpacity = null;
    this.strokeColor = null;
    this.strokeOpacity = null;
    this.strokeWidth = null;
    this.currentRegion = null;
    this.selectedRegion = null;
    this.selectedDataPoint = null;
    this.selectionArgs = null;
    this.selectedSegments = null;
    this.unselectedSegments = null;
    this.selectionType = null;
    ;
  }).prototype = charts._SelectionRenderer.prototype;
  dart.addTypeTests(charts._SelectionRenderer);
  dart.setMethodSignature(charts._SelectionRenderer, () => ({
    __proto__: dart.getMethods(charts._SelectionRenderer.__proto__),
    selectionIndex: dart.fnType(dart.void, [core.int, core.int], [charts.SelectionType, core.bool]),
    selectedDataPointIndex: dart.fnType(dart.void, [charts.CartesianSeries, core.List$(core.int)]),
    getDefaultFillColor: dart.fnType(ui.Paint, [], [core.List$(charts.ChartPoint), core.int, charts.ChartSegment]),
    getDefaultStrokeColor: dart.fnType(ui.Paint, [], [core.List$(charts.ChartPoint), core.int, charts.ChartSegment]),
    getFillColor: dart.fnType(ui.Paint, [core.bool], [charts.ChartSegment, charts.ChartPoint]),
    getStrokeColor: dart.fnType(ui.Paint, [core.bool], [charts.ChartSegment, charts.ChartPoint]),
    [_selectedSegmentsColors]: dart.fnType(dart.void, [core.List$(charts.ChartSegment)]),
    [_unselectedSegmentsColors]: dart.fnType(dart.void, [core.List$(charts.ChartSegment)]),
    changeColorAndPopUnselectedSegments: dart.fnType(dart.void, [core.List$(charts.ChartSegment)]),
    changeColorAndPopSelectedSegments: dart.fnType(core.bool, [core.List$(charts.ChartSegment), core.bool]),
    getTappedSegment: dart.fnType(charts.ChartSegment, []),
    checkPosition: dart.fnType(core.bool, []),
    isCartesianSelection: dart.fnType(core.bool, [charts.SfCartesianChart, charts.CartesianSeries, core.int, core.int]),
    getPointAndSeriesIndex: dart.fnType(dart.void, [charts.SfCartesianChart, ui.Offset, charts.CartesianSeries]),
    isLineIntersect: dart.fnType(core.bool, [charts.CartesianChartPoint, charts.CartesianChartPoint, charts.CartesianChartPoint, charts.CartesianChartPoint]),
    [_isSeriesContainsPoint]: dart.fnType(core.bool, [dart.dynamic, ui.Offset]),
    getCartesianPointIndex: dart.fnType(core.int, [ui.Offset]),
    [_isSegmentIntersect]: dart.fnType(core.bool, [charts.ChartSegment, core.double, core.double]),
    getSeriesIndex: dart.fnType(dart.void, [charts.SfCartesianChart, ui.Offset, charts.CartesianSeries]),
    performSelection: dart.fnType(dart.void, [ui.Offset]),
    [_checkWithSelectionState]: dart.fnType(dart.void, [charts.ChartSegment, charts.SfCartesianChart]),
    getSelectionEventArgs: dart.fnType(charts.SelectionArgs, [dart.dynamic, core.num, core.num])
  }));
  dart.setLibraryUri(charts._SelectionRenderer, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._SelectionRenderer, () => ({
    __proto__: dart.getFields(charts._SelectionRenderer.__proto__),
    pointIndex: dart.fieldType(core.int),
    seriesIndex: dart.fieldType(core.int),
    cartesianSeriesIndex: dart.fieldType(core.int),
    cartesianPointIndex: dart.fieldType(core.int),
    isSelection: dart.fieldType(core.bool),
    selectedSegment: dart.fieldType(charts.ChartSegment),
    currentSegment: dart.fieldType(charts.ChartSegment),
    defaultselectedSegments: dart.finalFieldType(core.List$(charts.ChartSegment)),
    defaultunselectedSegments: dart.finalFieldType(core.List$(charts.ChartSegment)),
    selectedDataPoints: dart.fieldType(core.List$(charts.ChartPoint)),
    unselectedDataPoints: dart.fieldType(core.List$(charts.ChartPoint)),
    selectedRegions: dart.fieldType(core.List$(charts._Region)),
    unselectedRegions: dart.fieldType(core.List$(charts._Region)),
    currentDataPoint: dart.fieldType(charts.ChartPoint),
    isSelected: dart.fieldType(core.bool),
    chart: dart.fieldType(dart.dynamic),
    series: dart.fieldType(dart.dynamic),
    fillColor: dart.fieldType(dart.dynamic),
    fillOpacity: dart.fieldType(dart.dynamic),
    strokeColor: dart.fieldType(dart.dynamic),
    strokeOpacity: dart.fieldType(dart.dynamic),
    strokeWidth: dart.fieldType(dart.dynamic),
    currentRegion: dart.fieldType(charts._Region),
    selectedRegion: dart.fieldType(charts._Region),
    selectedDataPoint: dart.fieldType(charts.ChartPoint),
    selectionArgs: dart.fieldType(charts.SelectionArgs),
    selectedSegments: dart.fieldType(core.List$(charts.ChartSegment)),
    unselectedSegments: dart.fieldType(core.List$(charts.ChartSegment)),
    selectionType: dart.fieldType(charts.SelectionType)
  }));
  charts._ChartTooltipRenderer = class _ChartTooltipRenderer extends framework.StatefulWidget {
    createState() {
      return new charts._ChartTooltipRendererState.new();
    }
  };
  (charts._ChartTooltipRenderer.new = function(opts) {
    let chartWidget = opts && 'chartWidget' in opts ? opts.chartWidget : null;
    let $36creationLocationd_0dea112b090073317d4 = opts && '$creationLocationd_0dea112b090073317d4' in opts ? opts.$creationLocationd_0dea112b090073317d4 : null;
    this.state = null;
    this.chartWidget = chartWidget;
    charts._ChartTooltipRenderer.__proto__.new.call(this, {$creationLocationd_0dea112b090073317d4: $36creationLocationd_0dea112b090073317d4});
    ;
  }).prototype = charts._ChartTooltipRenderer.prototype;
  dart.addTypeTests(charts._ChartTooltipRenderer);
  dart.setMethodSignature(charts._ChartTooltipRenderer, () => ({
    __proto__: dart.getMethods(charts._ChartTooltipRenderer.__proto__),
    createState: dart.fnType(framework.State$(framework.StatefulWidget), [])
  }));
  dart.setLibraryUri(charts._ChartTooltipRenderer, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._ChartTooltipRenderer, () => ({
    __proto__: dart.getFields(charts._ChartTooltipRenderer.__proto__),
    chartWidget: dart.finalFieldType(dart.dynamic),
    state: dart.fieldType(charts._ChartTooltipRendererState)
  }));
  const _needMarker = dart.privateName(charts, "_needMarker");
  const _repaintTooltipElements = dart.privateName(charts, "_repaintTooltipElements");
  const _showTooltip = dart.privateName(charts, "_showTooltip");
  let C563;
  let C562;
  let C561;
  let C566;
  let C565;
  let C564;
  const State_SingleTickerProviderStateMixin$36$4 = class State_SingleTickerProviderStateMixin extends framework.State$(charts._ChartTooltipRenderer) {};
  (State_SingleTickerProviderStateMixin$36$4.new = function() {
    ticker_provider.SingleTickerProviderStateMixin$(charts._ChartTooltipRenderer)[dart.mixinNew].call(this);
    State_SingleTickerProviderStateMixin$36$4.__proto__.new.call(this);
  }).prototype = State_SingleTickerProviderStateMixin$36$4.prototype;
  dart.applyMixin(State_SingleTickerProviderStateMixin$36$4, ticker_provider.SingleTickerProviderStateMixin$(charts._ChartTooltipRenderer));
  charts._ChartTooltipRendererState = class _ChartTooltipRendererState extends State_SingleTickerProviderStateMixin$36$4 {
    initState() {
      let t4;
      this.show = false;
      this.tooltipRepaintNotifier = new (ValueNotifierOfint()).new(0);
      this.animationController = (t4 = new animation_controller.AnimationController.new({vsync: this}), t4.addListener(dart.bind(this, _repaintTooltipElements)), t4);
      super.initState();
    }
    dispose() {
      if (this.animationController != null) {
        this.animationController.removeListener(dart.bind(this, _repaintTooltipElements));
        this.animationController.dispose();
        this.animationController = null;
      }
      super.dispose();
    }
    [_repaintTooltipElements]() {
      let t4;
      t4 = this.tooltipRepaintNotifier;
      t4.value = dart.notNull(t4.value) + 1;
    }
    [_showTooltip](x, y) {
      if (x != null && y != null && dart.dload(dart.dload(this.widget.chartWidget, 'tooltipBehavior'), _painter) != null) {
        this.show = true;
        dart.dtest(dart.dload(dart.dload(dart.dload(dart.dload(dart.dload(this.widget.chartWidget, 'tooltipBehavior'), _painter), _chart), 'tooltipBehavior'), _isHovering)) ? dart.dsend(dart.dload(dart.dload(this.widget.chartWidget, 'tooltipBehavior'), _painter), 'showMouseTooltip', [x, y]) : dart.dsend(dart.dload(dart.dload(this.widget.chartWidget, 'tooltipBehavior'), _painter), 'show', [x, y]);
      }
    }
    build(context) {
      this.widget.state = this;
      this.animationController.duration = C244 || CT.C244;
      let tooltipAnimation = new (TweenOfdouble()).new({begin: 0.0, end: 1.0}).animate(new animations.CurvedAnimation.new({parent: this.animationController, curve: C124 || CT.C124}));
      this.animationController.forward({from: 0.0});
      let tooltipPainter = new charts._TooltipPainter.new({tooltipAnimation: tooltipAnimation, chartTooltipState: this, notifier: this.tooltipRepaintNotifier, animationController: this.animationController});
      tooltipPainter[_chart] = this.widget.chartWidget;
      tooltipPainter.tooltip = dart.dload(this.widget.chartWidget, 'tooltipBehavior');
      tooltipPainter[_chartState] = dart.dload(this.widget.chartWidget, _chartState);
      dart.dput(dart.dload(this.widget.chartWidget, 'tooltipBehavior'), _painter, tooltipPainter);
      return new container.Container.new({child: new basic.CustomPaint.new({painter: tooltipPainter, $creationLocationd_0dea112b090073317d4: C561 || CT.C561}), $creationLocationd_0dea112b090073317d4: C564 || CT.C564});
    }
  };
  (charts._ChartTooltipRendererState.new = function() {
    this.animationController = null;
    this.tooltipRepaintNotifier = null;
    this.show = null;
    this[_needMarker] = true;
    charts._ChartTooltipRendererState.__proto__.new.call(this);
    ;
  }).prototype = charts._ChartTooltipRendererState.prototype;
  dart.addTypeTests(charts._ChartTooltipRendererState);
  dart.setMethodSignature(charts._ChartTooltipRendererState, () => ({
    __proto__: dart.getMethods(charts._ChartTooltipRendererState.__proto__),
    [_repaintTooltipElements]: dart.fnType(dart.void, []),
    [_showTooltip]: dart.fnType(dart.void, [core.double, core.double]),
    build: dart.fnType(framework.Widget, [framework.BuildContext])
  }));
  dart.setLibraryUri(charts._ChartTooltipRendererState, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._ChartTooltipRendererState, () => ({
    __proto__: dart.getFields(charts._ChartTooltipRendererState.__proto__),
    animationController: dart.fieldType(animation_controller.AnimationController),
    tooltipRepaintNotifier: dart.fieldType(change_notifier.ValueNotifier$(core.int)),
    show: dart.fieldType(core.bool),
    [_needMarker]: dart.fieldType(core.bool)
  }));
  const seriesIndex$ = dart.privateName(charts, "TooltipValue.seriesIndex");
  const pointIndex$ = dart.privateName(charts, "TooltipValue.pointIndex");
  charts.TooltipValue = class TooltipValue extends core.Object {
    get seriesIndex() {
      return this[seriesIndex$];
    }
    set seriesIndex(value) {
      this[seriesIndex$] = value;
    }
    get pointIndex() {
      return this[pointIndex$];
    }
    set pointIndex(value) {
      this[pointIndex$] = value;
    }
  };
  (charts.TooltipValue.new = function(seriesIndex, pointIndex) {
    this[seriesIndex$] = seriesIndex;
    this[pointIndex$] = pointIndex;
    ;
  }).prototype = charts.TooltipValue.prototype;
  dart.addTypeTests(charts.TooltipValue);
  dart.setLibraryUri(charts.TooltipValue, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.TooltipValue, () => ({
    __proto__: dart.getFields(charts.TooltipValue.__proto__),
    seriesIndex: dart.fieldType(core.int),
    pointIndex: dart.fieldType(core.int)
  }));
  const _renderCartesianChartTooltip = dart.privateName(charts, "_renderCartesianChartTooltip");
  const _renderCircularChartTooltip = dart.privateName(charts, "_renderCircularChartTooltip");
  const _renderTriangularChartTooltip = dart.privateName(charts, "_renderTriangularChartTooltip");
  const _renderTooltipView = dart.privateName(charts, "_renderTooltipView");
  let C567;
  const _calculateCartesianTooltipText = dart.privateName(charts, "_calculateCartesianTooltipText");
  const _calculateLocation = dart.privateName(charts, "_calculateLocation");
  const _calculateBackgroundRect = dart.privateName(charts, "_calculateBackgroundRect");
  const _renderTooltip = dart.privateName(charts, "_renderTooltip");
  const _drawBackground = dart.privateName(charts, "_drawBackground");
  const _drawTooltip = dart.privateName(charts, "_drawTooltip");
  const _drawTooltipPath = dart.privateName(charts, "_drawTooltipPath");
  const _drawTooltipText = dart.privateName(charts, "_drawTooltipText");
  const _drawTooltipMarker = dart.privateName(charts, "_drawTooltipMarker");
  const _renderMarker = dart.privateName(charts, "_renderMarker");
  const _drawText = dart.privateName(charts, "_drawText");
  let C568;
  const _showChartAreaTooltip = dart.privateName(charts, "_showChartAreaTooltip");
  charts._TooltipPainter = class _TooltipPainter extends custom_paint.CustomPainter {
    [_renderTooltipView](position) {
      if (charts.SfCartesianChart.is(dart.dload(dart.dload(this.tooltip, _painter), _chart))) {
        this[_renderCartesianChartTooltip](position);
      } else if (charts.SfCircularChart.is(dart.dload(dart.dload(this.tooltip, _painter), _chart))) {
        this[_renderCircularChartTooltip](position);
      } else {
        this[_renderTriangularChartTooltip](position);
      }
    }
    [_renderCartesianChartTooltip](position) {
      let chart = charts.SfCartesianChart._check(dart.dload(dart.dload(this.tooltip, _painter), _chart));
      dart.dput(dart.dload(this.tooltip, _painter), 'boundaryRect', chart[_chartAxis][_axisClipRect]);
      let isContains = false;
      if (dart.test(chart[_chartAxis][_axisClipRect].contains(position))) {
        for (let i = 0; i < dart.notNull(chart[_chartSeries].visibleSeries[$length]); i = i + 1) {
          this.series = charts.XyDataSeries._check(chart[_chartSeries].visibleSeries[$_get](i));
          if (dart.test(this.series[_visible]) && dart.test(this.series.enableTooltip) && this.series[_regionalData] != null) {
            let count = 0;
            this.series[_regionalData][$forEach](dart.fn((regionRect, values) => {
              let t4, t4$, t4$0;
              let isTrendLine = core.bool._check(dart.dsend(dart.dsend(values, '_get', [dart.dsend(dart.dload(values, 'length'), '-', [1])]), 'contains', ["true"]));
              let padding = (this.series[_seriesType$] === "bubble" || this.series[_seriesType$] === "scatter" || this.series[_seriesType$][$contains]("column") || this.series[_seriesType$][$contains]("bar")) && !dart.test(isTrendLine) ? 0.0 : dart.test(chart.tooltipBehavior[_isHovering]) ? 0.0 : 15.0;
              let region = ui.Rect._check(dart.dsend(regionRect, '_get', [0]));
              let left = dart.notNull(region.left) - padding;
              let right = dart.notNull(region.right) + padding;
              let top = dart.notNull(region.top) - padding;
              let bottom = dart.notNull(region.bottom) + padding;
              let paddedRegion = new ui.Rect.fromLTRB(left, top, right, bottom);
              if (dart.test(paddedRegion.contains(position)) && dart.dtest(dart.test(isTrendLine) ? dart.dload(dart.dsend(regionRect, '_get', [4]), 'isVisible') : true)) {
                if (!dart.test(region.contains(position))) {
                  dart.dput(dart.dload(this.tooltip, _painter), 'boundaryRect', chart[_chartState].containerRect);
                }
                dart.dput(dart.dload(this.tooltip, _painter), 'prevTooltipValue', new charts.TooltipValue.new(i, count));
                if (dart.dload(dart.dload(this.tooltip, _painter), 'prevTooltipValue') != null && dart.dload(dart.dload(this.tooltip, _painter), 'currentTooltipValue') != null && (!dart.equals(dart.dload(dart.dload(dart.dload(this.tooltip, _painter), 'prevTooltipValue'), 'pointIndex'), dart.dload(dart.dload(dart.dload(this.tooltip, _painter), 'currentTooltipValue'), 'pointIndex')) || !dart.equals(dart.dload(dart.dload(dart.dload(this.tooltip, _painter), 'prevTooltipValue'), 'seriesIndex'), dart.dload(dart.dload(dart.dload(this.tooltip, _painter), 'currentTooltipValue'), 'seriesIndex')))) {
                  dart.dput(dart.dload(this.tooltip, _painter), 'currentTooltipValue', null);
                }
                this.currentSeries = this.series;
                this.pointIndex = count;
                this.markerType = this.series.markerSettings.shape;
                this.markerColor = ui.Color._check(dart.dsend(regionRect, '_get', [2]) != null ? dart.dsend(regionRect, '_get', [2]) : (t4 = this.series.markerSettings.borderColor, t4 == null ? this.series[_seriesColor] : t4));
                let tooltipPosition = ui.Offset._check(dart.dsend(regionRect, '_get', [1]));
                let padding = null;
                if (this.series[_seriesType$] === "bubble" && !dart.test(isTrendLine)) {
                  padding = new ui.Offset.new(dart.notNull(region.center.dx) - dart.notNull(region.centerLeft.dx), 2 * (dart.notNull(region.center.dy) - dart.notNull(region.topCenter.dy)));
                  tooltipPosition = new ui.Offset.new(tooltipPosition.dx, paddedRegion.top);
                } else if (this.series[_seriesType$] === "scatter") {
                  padding = new ui.Offset.new(this.series.markerSettings.width, dart.notNull(this.series.markerSettings.height) / 2);
                  tooltipPosition = new ui.Offset.new(tooltipPosition.dx, tooltipPosition.dy);
                } else if (this.series[_seriesType$] === "rangearea") {
                  padding = new ui.Offset.new(this.series.markerSettings.width, dart.notNull(this.series.markerSettings.height) * 2);
                  tooltipPosition = new ui.Offset.new(tooltipPosition.dx, dart.notNull(tooltipPosition.dy) / 2);
                } else {
                  padding = dart.test(this.series.markerSettings.isVisible) ? new ui.Offset.new(dart.notNull(this.series.markerSettings.width) / 2, dart.notNull(this.series.markerSettings.height) / 2 + dart.notNull(this.series.markerSettings.borderWidth) / 2) : C567 || CT.C567;
                }
                if (dart.test(this.series[_isRectSeries]) && dart.equals(dart.dload(this.tooltip, 'tooltipPosition'), charts.TooltipPosition.pointer)) {
                  tooltipPosition = position;
                }
                dart.dput(dart.dload(this.tooltip, _painter), 'padding', padding.dy);
                let header = core.String._check(dart.dload(this.tooltip, 'header'));
                header = core.String._check(header == null ? dart.dtest(dart.dload(this.tooltip, 'shared')) ? dart.dsend(values, '_get', [0]) : dart.test(isTrendLine) ? dart.dsend(values, '_get', [dart.dsend(dart.dload(values, 'length'), '-', [2])]) : (t4$ = this.series.name, t4$ == null ? this.series[_seriesName] : t4$) : header);
                dart.dput(dart.dload(this.tooltip, _painter), 'header', header);
                dart.dput(dart.dload(this.tooltip, _painter), 'stringValue', "");
                if (dart.dtest(dart.dload(this.tooltip, 'shared'))) {
                  this.textValues = JSArrayOfString().of([]);
                  this.seriesCollection = JSArrayOfXyDataSeries().of([]);
                  for (let j = 0; j < dart.notNull(chart[_chartSeries].visibleSeries[$length]); j = j + 1) {
                    let _series = charts.XyDataSeries._check(chart[_chartSeries].visibleSeries[$_get](j));
                    if (dart.test(_series[_visible]) && dart.test(_series.enableTooltip)) {
                      let index = _series[_xValues][$indexOf](dart.dload(dart.dsend(regionRect, '_get', [4]), 'x'));
                      if (dart.notNull(index) > -1) {
                        let text = (!dart.equals(dart.dload(dart.dload(this.tooltip, _painter), 'stringValue'), "") ? "\n" : "") + dart.notNull(this[_calculateCartesianTooltipText](_series, _series[_dataPoints$][$_get](index), values, tooltipPosition));
                        t4$0 = dart.dload(this.tooltip, _painter);
                        dart.dput(t4$0, 'stringValue', dart.dsend(dart.dload(t4$0, 'stringValue'), '+', [text]));
                        this.textValues[$add](text);
                        this.seriesCollection[$add](_series);
                      }
                    }
                  }
                } else {
                  dart.dput(dart.dload(this.tooltip, _painter), 'stringValue', this[_calculateCartesianTooltipText](this.series, charts.CartesianChartPoint._check(dart.dsend(regionRect, '_get', [4])), values, tooltipPosition));
                }
                dart.dsend(dart.dload(this.tooltip, _painter), _calculateLocation, [tooltipPosition]);
                isContains = true;
              }
              count = count + 1;
            }, dynamicAnddynamicToNull()));
          }
        }
      }
      if (!isContains) {
        dart.dput(dart.dload(this.tooltip, _painter), 'prevTooltipValue', dart.dput(dart.dload(this.tooltip, _painter), 'currentTooltipValue', null));
        if (!dart.test(chart.tooltipBehavior[_isHovering])) {
          dart.dsend(this.tooltip, 'hide', []);
        }
      }
    }
    [_calculateCartesianTooltipText](series, point, values, tooltipPosition) {
      let t4, t4$, t4$0, t4$1;
      let isTrendLine = core.bool._check(dart.dsend(dart.dsend(values, '_get', [dart.dsend(dart.dload(values, 'length'), '-', [1])]), 'contains', ["true"]));
      let resultantString = null;
      let axis = series[_yAxis$];
      let digits = series[_chart].tooltipBehavior.decimalPlaces;
      if (dart.dload(this.tooltip, 'format') != null) {
        resultantString = core.String._check((series[_seriesType$][$contains]("range") || series[_seriesType$] === "hilo") && !dart.test(isTrendLine) ? dart.dsend(dart.dsend(dart.dsend(dart.dsend(dart.dload(this.tooltip, 'format'), 'replaceAll', ["point.x", dart.dsend(values, '_get', [0])]), 'replaceAll', ["point.high", charts._getLabelValue(point.high, axis, digits)]), 'replaceAll', ["point.low", charts._getLabelValue(point.low, axis, digits)]), 'replaceAll', ["series.name", (t4 = series.name, t4 == null ? series[_seriesName] : t4)]) : (series[_seriesType$][$contains]("hiloopenclose") || series[_seriesType$][$contains]("candle")) && !dart.test(isTrendLine) ? dart.dsend(dart.dsend(dart.dsend(dart.dsend(dart.dsend(dart.dsend(dart.dload(this.tooltip, 'format'), 'replaceAll', ["point.x", dart.dsend(values, '_get', [0])]), 'replaceAll', ["point.high", charts._getLabelValue(point.high, axis, digits)]), 'replaceAll', ["point.low", charts._getLabelValue(point.low, axis, digits)]), 'replaceAll', ["point.open", charts._getLabelValue(point.open, axis, digits)]), 'replaceAll', ["point.close", charts._getLabelValue(point.close, axis, digits)]), 'replaceAll', ["series.name", (t4$ = series.name, t4$ == null ? series[_seriesName] : t4$)]) : dart.dsend(dart.dsend(dart.dsend(dart.dsend(dart.dload(this.tooltip, 'format'), 'replaceAll', ["point.x", dart.dsend(values, '_get', [0])]), 'replaceAll', ["point.y", charts._getLabelValue(point.y, axis, digits)]), 'replaceAll', ["series.name", (t4$0 = series.name, t4$0 == null ? series[_seriesName] : t4$0)]), 'replaceAll', ["point.size", charts._getLabelValue(point.bubbleSize, axis, digits)]));
        if (series[_seriesType$][$contains]("stacked")) {
          resultantString = resultantString[$replaceAll]("point.cumulativeValue", core.String._check(charts._getLabelValue(point.cumulativeValue, axis, digits)));
        }
      } else {
        resultantString = core.String._check(dart.dsend(dart.dtest(dart.dload(this.tooltip, 'shared')) ? (t4$1 = series.name, t4$1 == null ? series[_seriesName] : t4$1) : dart.dsend(values, '_get', [0]), '+', [(series[_seriesType$][$contains]("range") || series[_seriesType$] === "hilo") && !dart.test(isTrendLine) ? "\nHigh: " + dart.notNull(core.String._check(charts._getLabelValue(point.high, axis, digits))) + "\nLow: " + dart.notNull(core.String._check(charts._getLabelValue(point.low, axis, digits))) : series[_seriesType$] === "hiloopenclose" || series[_seriesType$] === "candle" ? "\nHigh: " + dart.notNull(core.String._check(charts._getLabelValue(point.high, axis, digits))) + "\nLow: " + dart.notNull(core.String._check(charts._getLabelValue(point.low, axis, digits))) + "\nOpen: " + dart.notNull(core.String._check(charts._getLabelValue(point.open, axis, digits))) + "\nClose: " + dart.notNull(core.String._check(charts._getLabelValue(point.close, axis, digits))) : " : " + dart.notNull(core.String._check(charts._getLabelValue(point.y, axis, digits)))]));
      }
      return resultantString;
    }
    [_renderCircularChartTooltip](position) {
      let t4;
      let chart = charts.SfCircularChart._check(dart.dload(dart.dload(this.tooltip, _painter), _chart));
      chart.tooltipBehavior[_painter].boundaryRect = chart[_chartState].chartContainerRect;
      let isContains = false;
      let pointRegion = charts._getPointRegion(chart, position);
      if (pointRegion != null && dart.test(chart[_chartSeries].visibleSeries[$_get](pointRegion.seriesIndex).enableTooltip)) {
        dart.dput(dart.dload(this.tooltip, _painter), 'prevTooltipValue', new charts.TooltipValue.new(pointRegion.seriesIndex, pointRegion.pointIndex));
        if (dart.dload(dart.dload(this.tooltip, _painter), 'prevTooltipValue') != null && dart.dload(dart.dload(this.tooltip, _painter), 'currentTooltipValue') != null && !dart.equals(dart.dload(dart.dload(dart.dload(this.tooltip, _painter), 'prevTooltipValue'), 'pointIndex'), dart.dload(dart.dload(dart.dload(this.tooltip, _painter), 'currentTooltipValue'), 'pointIndex'))) {
          dart.dput(dart.dload(this.tooltip, _painter), 'currentTooltipValue', null);
        }
        let chartPoint = chart[_chartSeries].visibleSeries[$_get](pointRegion.seriesIndex)[_renderPoints][$_get](pointRegion.pointIndex);
        let location = dart.equals(chart.tooltipBehavior.tooltipPosition, charts.TooltipPosition.pointer) ? position : charts._degreeToPoint(chartPoint.midAngle, (dart.notNull(chartPoint.innerRadius) + dart.notNull(chartPoint.outerRadius)) / 2, chartPoint.center);
        this.currentSeries = pointRegion.seriesIndex;
        this.pointIndex = pointRegion.pointIndex;
        let header = chart.tooltipBehavior.header;
        header = header == null ? chart[_chartSeries].visibleSeries[$_get](pointRegion.seriesIndex).name != null ? chart[_chartSeries].visibleSeries[$_get](pointRegion.seriesIndex).name : null : header;
        chart.tooltipBehavior[_painter].header = header;
        if (chart.tooltipBehavior.format != null) {
          let resultantString = chart.tooltipBehavior.format[$replaceAll]("point.x", dart.toString(chartPoint.x))[$replaceAll]("point.y", dart.toString(chartPoint.y))[$replaceAll]("series.name", (t4 = chart[_chartSeries].visibleSeries[$_get](pointRegion.seriesIndex).name, t4 == null ? "series.name" : t4));
          chart.tooltipBehavior[_painter].stringValue = resultantString;
          chart.tooltipBehavior[_painter][_calculateLocation](location);
        } else {
          chart.tooltipBehavior[_painter].stringValue = dart.notNull(dart.toString(chartPoint.x)) + " : " + dart.toString(chartPoint.y);
          chart.tooltipBehavior[_painter][_calculateLocation](location);
        }
        isContains = true;
      } else {
        chart.tooltipBehavior.hide();
        isContains = false;
      }
      if (!isContains) {
        dart.dput(dart.dload(this.tooltip, _painter), 'prevTooltipValue', dart.dput(dart.dload(this.tooltip, _painter), 'currentTooltipValue', null));
      }
    }
    [_renderTriangularChartTooltip](position) {
      let t4, t4$;
      let chart = dart.dload(dart.dload(this.tooltip, _painter), _chart);
      dart.dput(dart.dload(dart.dload(chart, 'tooltipBehavior'), _painter), 'boundaryRect', dart.dload(dart.dload(chart, _chartState), 'chartContainerRect'));
      let isContains = false;
      this.pointIndex = core.num._check((t4 = dart.dload(dart.dload(chart, _chartState), _tooltipPointIndex), t4 == null ? dart.dload(dart.dload(dart.dload(chart, _chartState), 'currentActive'), 'pointIndex') : t4));
      dart.dput(dart.dload(chart, _chartState), _tooltipPointIndex, null);
      if (dart.dtest(dart.dload(dart.dload(chart, 'tooltipBehavior'), 'enable'))) {
        dart.dput(dart.dload(this.tooltip, _painter), 'prevTooltipValue', new charts.TooltipValue.new(dart.asInt(0), core.int._check(dart.dload(dart.dload(dart.dload(chart, _chartState), 'currentActive'), 'pointIndex'))));
        if (dart.dload(dart.dload(this.tooltip, _painter), 'prevTooltipValue') != null && dart.dload(dart.dload(this.tooltip, _painter), 'currentTooltipValue') != null && !dart.equals(dart.dload(dart.dload(dart.dload(this.tooltip, _painter), 'prevTooltipValue'), 'pointIndex'), dart.dload(dart.dload(dart.dload(this.tooltip, _painter), 'currentTooltipValue'), 'pointIndex'))) {
          dart.dput(dart.dload(this.tooltip, _painter), 'currentTooltipValue', null);
        }
        let chartPoint = charts.PointInfo._check(dart.dsend(dart.dload(dart.dsend(dart.dload(dart.dload(chart, _chartSeries), 'visibleSeries'), '_get', [0]), _renderPoints), '_get', [this.pointIndex]));
        let location = dart.equals(dart.dload(dart.dload(chart, 'tooltipBehavior'), 'tooltipPosition'), charts.TooltipPosition.pointer) ? position : chartPoint.symbolLocation;
        this.currentSeries = 0;
        this.pointIndex = this.pointIndex;
        let header = core.String._check(dart.dload(dart.dload(chart, 'tooltipBehavior'), 'header'));
        header = core.String._check(header == null ? dart.dload(dart.dsend(dart.dload(dart.dload(chart, _chartSeries), 'visibleSeries'), '_get', [0]), 'name') != null ? dart.dload(dart.dsend(dart.dload(dart.dload(chart, _chartSeries), 'visibleSeries'), '_get', [0]), 'name') : null : header);
        dart.dput(dart.dload(dart.dload(chart, 'tooltipBehavior'), _painter), 'header', header);
        if (dart.dload(dart.dload(chart, 'tooltipBehavior'), 'format') != null) {
          let resultantString = core.String._check(dart.dsend(dart.dsend(dart.dsend(dart.dload(dart.dload(chart, 'tooltipBehavior'), 'format'), 'replaceAll', ["point.x", dart.toString(chartPoint.x)]), 'replaceAll', ["point.y", dart.toString(chartPoint.y)]), 'replaceAll', ["series.name", (t4$ = dart.dload(dart.dsend(dart.dload(dart.dload(chart, _chartSeries), 'visibleSeries'), '_get', [0]), 'name'), t4$ == null ? "series.name" : t4$)]));
          dart.dput(dart.dload(dart.dload(chart, 'tooltipBehavior'), _painter), 'stringValue', resultantString);
          dart.dsend(dart.dload(dart.dload(chart, 'tooltipBehavior'), _painter), _calculateLocation, [location]);
        } else {
          dart.dput(dart.dload(dart.dload(chart, 'tooltipBehavior'), _painter), 'stringValue', dart.notNull(dart.toString(chartPoint.x)) + " : " + dart.toString(chartPoint.y));
          dart.dsend(dart.dload(dart.dload(chart, 'tooltipBehavior'), _painter), _calculateLocation, [location]);
        }
        isContains = true;
      } else {
        dart.dsend(dart.dload(chart, 'tooltipBehavior'), 'hide', []);
        isContains = false;
      }
      if (!isContains) {
        dart.dput(dart.dload(this.tooltip, _painter), 'prevTooltipValue', dart.dput(dart.dload(this.tooltip, _painter), 'currentTooltipValue', null));
      }
    }
    [_calculateLocation](position) {
      let t4, t4$;
      this.x = (t4 = position, t4 == null ? null : t4.dx);
      this.y = (t4$ = position, t4$ == null ? null : t4$.dy);
    }
    paint(canvas, size) {
      if (dart.test(this.chartTooltipState.show)) {
        if (charts.SfCartesianChart.is(this[_chart])) {
          let sfChart = charts.SfCartesianChart._check(this[_chart]);
          sfChart.tooltipBehavior.onPaint(canvas);
        } else if (charts.SfCircularChart.is(this[_chart])) {
          let sfCircularChart = charts.SfCircularChart._check(this[_chart]);
          sfCircularChart.tooltipBehavior.onPaint(canvas);
        } else if (charts.SfPyramidChart.is(this[_chart])) {
          let sfPyramidChart = charts.SfPyramidChart._check(this[_chart]);
          sfPyramidChart.tooltipBehavior.onPaint(canvas);
        } else if (charts.SfFunnelChart.is(this[_chart])) {
          let sfFunnelChart = charts.SfFunnelChart._check(this[_chart]);
          sfFunnelChart.tooltipBehavior.onPaint(canvas);
        }
      }
    }
    [_renderTooltip](canvas) {
      let t4, t4$;
      this.isLeft = false;
      this.isRight = false;
      let height = 0.0;
      let width = 0.0;
      let headerTextWidth = 0.0;
      let headerTextHeight = 0.0;
      let tooltipArgs = null;
      this.markerSize = 0.0;
      if (this.x != null && this.y != null && this.stringValue != null && dart.dload(this[_chart], 'onTooltipRender') != null) {
        tooltipArgs = new charts.TooltipArgs.new();
        tooltipArgs.text = this.stringValue;
        tooltipArgs.header = this.header;
        tooltipArgs.locationX = this.x;
        tooltipArgs.locationY = this.y;
        tooltipArgs.pointIndex = this.pointIndex;
        tooltipArgs.seriesIndex = charts.SfCartesianChart.is(this[_chart]) ? dart.dload(dart.dsend(dart.dload(this.currentSeries, 'segments'), '_get', [0]), _seriesIndex) : this.currentSeries;
        tooltipArgs.dataPoints = core.List._check(dart.dload(dart.dsend(dart.dload(dart.dload(this[_chart], _chartSeries), 'visibleSeries'), '_get', [tooltipArgs.seriesIndex]), _dataPoints$));
        dart.dsend(this[_chart], 'onTooltipRender', [tooltipArgs]);
        this.stringValue = tooltipArgs.text;
        this.header = tooltipArgs.header;
        this.x = tooltipArgs.locationX;
        this.y = tooltipArgs.locationY;
      }
      this.totalWidth = this.boundaryRect.left[$toDouble]() + this.boundaryRect.width[$toDouble]();
      let textStyle = new charts.ChartTextStyle.new({color: ui.Color._check((t4 = dart.dload(dart.dload(this.tooltip, 'textStyle'), 'color'), t4 == null ? dart.dload(dart.dload(dart.dload(this[_chart], _chartState), _chartTheme), 'tooltipLabelColor') : t4)), fontSize: core.double._check(dart.dload(dart.dload(this.tooltip, 'textStyle'), 'fontSize')), fontFamily: core.String._check(dart.dload(dart.dload(this.tooltip, 'textStyle'), 'fontFamily')), fontWeight: ui.FontWeight._check(dart.dload(dart.dload(this.tooltip, 'textStyle'), 'fontWeight')), fontStyle: ui.FontStyle._check(dart.dload(dart.dload(this.tooltip, 'textStyle'), 'fontStyle'))});
      width = charts._measureText(this.stringValue, textStyle).width;
      height = charts._measureText(this.stringValue, textStyle).height;
      if (this.header != null && this.header[$isNotEmpty]) {
        let headerTextStyle = new charts.ChartTextStyle.new({color: ui.Color._check((t4$ = dart.dload(dart.dload(this.tooltip, 'textStyle'), 'color'), t4$ == null ? dart.dload(dart.dload(dart.dload(this[_chart], _chartState), _chartTheme), 'tooltipLabelColor') : t4$)), fontSize: core.double._check(dart.dload(dart.dload(this.tooltip, 'textStyle'), 'fontSize')), fontFamily: core.String._check(dart.dload(dart.dload(this.tooltip, 'textStyle'), 'fontFamily')), fontStyle: ui.FontStyle._check(dart.dload(dart.dload(this.tooltip, 'textStyle'), 'fontStyle')), fontWeight: ui.FontWeight.bold});
        headerTextWidth = charts._measureText(this.header, headerTextStyle).width;
        headerTextHeight = dart.notNull(charts._measureText(this.header, headerTextStyle).height) + 10;
        width = dart.notNull(width) > dart.notNull(headerTextWidth) ? width : headerTextWidth;
      }
      if (dart.notNull(width) < 10) {
        width = 10.0;
        this.borderRadius = dart.notNull(this.borderRadius) > 5 ? 5.0 : this.borderRadius;
      }
      if (dart.notNull(this.borderRadius) > 15) {
        this.borderRadius = 15.0;
      }
      if (this.x != null && this.y != null && this.padding != null && (this.stringValue !== "" && this.stringValue != null || this.header !== "" && this.header != null)) {
        this[_calculateBackgroundRect](canvas, height, width, headerTextHeight);
      }
    }
    [_calculateBackgroundRect](canvas, height, width, headerTextHeight) {
      let widthPadding = 15.0;
      if (charts.SfCartesianChart.is(this[_chart]) && dart.dload(this.tooltip, 'canShowMarker') != null && dart.dtest(dart.dload(this.tooltip, 'canShowMarker')) && dart.test(this.chartTooltipState[_needMarker])) {
        this.markerSize = 5.0;
        widthPadding = 17.0;
      }
      let rect = new ui.Rect.fromLTWH(this.x, this.y, dart.notNull(width) + 2 * dart.notNull(this.markerSize) + widthPadding, dart.notNull(height) + dart.notNull(headerTextHeight) + 10);
      let newRect = new ui.Rect.fromLTWH(dart.notNull(this.boundaryRect.left) + 20, this.boundaryRect.top, dart.notNull(this.boundaryRect.width) - 40, this.boundaryRect.height);
      let leftRect = new ui.Rect.fromLTWH(dart.notNull(this.boundaryRect.left) - 5, dart.notNull(this.boundaryRect.top) - 20, dart.notNull(newRect.left) - (dart.notNull(this.boundaryRect.left) - 5), dart.notNull(this.boundaryRect.height) + 40);
      let rightRect = new ui.Rect.fromLTWH(newRect.right, dart.notNull(this.boundaryRect.top) - 20, dart.notNull(this.boundaryRect.right) + 5 + dart.notNull(newRect.right), dart.notNull(this.boundaryRect.height) + 40);
      if (dart.test(leftRect.contains(new ui.Offset.new(this.x, this.y)))) {
        this.isLeft = true;
        this.isRight = false;
      } else if (dart.test(rightRect.contains(new ui.Offset.new(this.x, this.y)))) {
        this.isLeft = false;
        this.isRight = true;
      }
      if (dart.notNull(this.y) > dart.notNull(this.pointerLength) + dart.notNull(rect.height) && dart.notNull(this.y) > dart.notNull(this.boundaryRect.top)) {
        if (charts.SfCartesianChart.is(this[_chart])) {
          if (dart.equals(dart.dload(this.currentSeries, _seriesType$), "bubble")) {
            this.padding = 2.0;
          }
        }
        this.isTop = true;
        this.xPos = dart.notNull(this.x) - dart.notNull(rect.width) / 2;
        this.yPos = dart.notNull(this.y) - dart.notNull(rect.height) - dart.notNull(this.padding);
        this.nosePointY = dart.notNull(rect.top) - dart.notNull(this.padding);
        this.nosePointX = rect.left;
        let tooltipRightEnd = dart.notNull(this.x) + dart.notNull(rect.width) / 2;
        this.xPos = dart.notNull(this.xPos) < dart.notNull(this.boundaryRect.left) ? this.boundaryRect.left : tooltipRightEnd > dart.notNull(this.totalWidth) ? dart.notNull(this.totalWidth) - dart.notNull(rect.width) : this.xPos;
        this.yPos = dart.notNull(this.yPos) - dart.notNull(this.pointerLength) / 2;
      } else {
        this.isTop = false;
        this.xPos = dart.notNull(this.x) - dart.notNull(rect.width) / 2;
        this.yPos = dart.notNull(dart.notNull(this.y) >= dart.notNull(this.boundaryRect.top) ? this.y : this.boundaryRect.top) + dart.notNull(this.pointerLength) / 2 + dart.notNull(this.padding);
        this.nosePointX = rect.left;
        this.nosePointY = dart.notNull(dart.notNull(this.y) >= dart.notNull(this.boundaryRect.top) ? this.y : this.boundaryRect.top) + dart.notNull(this.padding);
        let tooltipRightEnd = dart.notNull(this.x) + dart.notNull(rect.width) / 2;
        this.xPos = dart.notNull(this.xPos) < dart.notNull(this.boundaryRect.left) ? this.boundaryRect.left : tooltipRightEnd > dart.notNull(this.totalWidth) ? dart.notNull(this.totalWidth) - dart.notNull(rect.width) : this.xPos;
      }
      if (dart.notNull(this.xPos) <= dart.notNull(this.boundaryRect.left) + 5) {
        this.xPos = dart.notNull(this.xPos) + 5;
      } else if (dart.notNull(this.xPos) + dart.notNull(rect.width) >= dart.notNull(this.totalWidth) - 5) {
        this.xPos = dart.notNull(this.xPos) - 5;
      }
      rect = new ui.Rect.fromLTWH(this.xPos, this.yPos, rect.width, rect.height);
      this[_drawBackground](canvas, rect, this.nosePointX, this.nosePointY, this.borderRadius, this.isTop, this.arrowPath, this.isLeft, this.isRight, this.tooltipAnimation);
    }
    [_drawBackground](canvas, rectF, xPos, yPos, borderRadius, isTop, backgroundPath, isLeft, isRight, tooltipAnimation) {
      let startArrow = dart.notNull(this.pointerLength) / 2;
      let endArrow = dart.notNull(this.pointerLength) / 2;
      if (dart.test(isTop)) {
        this[_drawTooltip](canvas, isTop, rectF, xPos, yPos, dart.notNull(xPos) - startArrow, dart.notNull(yPos) - startArrow, dart.notNull(xPos) + endArrow, dart.notNull(yPos) - endArrow, borderRadius, backgroundPath, isLeft, isRight, tooltipAnimation);
      } else {
        this[_drawTooltip](canvas, isTop, rectF, xPos, yPos, dart.notNull(xPos) - startArrow, dart.notNull(yPos) + startArrow, dart.notNull(xPos) + endArrow, dart.notNull(yPos) + endArrow, borderRadius, backgroundPath, isLeft, isRight, tooltipAnimation);
      }
    }
    [_drawTooltip](canvas, isTop, rectF, xPos, yPos, startX, startY, endX, endY, borderRadius, backgroundPath, isLeft, isRight, tooltipAnimation) {
      let t4, t4$;
      let animationFactor = 0.0;
      if (tooltipAnimation == null) {
        animationFactor = 1.0;
      } else {
        animationFactor = tooltipAnimation.value;
      }
      backgroundPath.reset();
      if (!dart.test(this.canResetPath)) {
        if (dart.test(isLeft)) {
          startX = dart.notNull(rectF.left) + 2 * dart.notNull(borderRadius);
          endX = dart.notNull(startX) + dart.notNull(this.pointerLength);
        } else if (dart.test(isRight)) {
          startX = dart.notNull(endX) - dart.notNull(this.pointerLength);
          endX = dart.notNull(rectF.right) - 2 * dart.notNull(borderRadius);
        }
        let rect = new ui.Rect.fromLTWH(dart.notNull(rectF.width) / 2 + (dart.notNull(rectF.left) - dart.notNull(rectF.width) / 2 * dart.notNull(animationFactor)), dart.notNull(rectF.height) / 2 + (dart.notNull(rectF.top) - dart.notNull(rectF.height) / 2 * dart.notNull(animationFactor)), dart.notNull(rectF.width) * dart.notNull(animationFactor), dart.notNull(rectF.height) * dart.notNull(animationFactor));
        let tooltipRect = new ui.RRect.fromRectAndCorners(rect, {bottomLeft: new ui.Radius.circular(borderRadius), bottomRight: new ui.Radius.circular(borderRadius), topLeft: new ui.Radius.circular(borderRadius), topRight: new ui.Radius.circular(borderRadius)});
        this[_drawTooltipPath](canvas, tooltipRect, rect, backgroundPath, isTop, isLeft, isRight, startX, endX, animationFactor, xPos, yPos);
        let textStyle = new charts.ChartTextStyle.new({color: ui.Color._check((t4$ = (t4 = dart.dload(dart.dload(this.tooltip, 'textStyle'), 'color'), t4 == null ? null : dart.dsend(t4, 'withOpacity', [dart.dload(this.tooltip, 'opacity')])), t4$ == null ? dart.dload(dart.dload(dart.dload(this[_chart], _chartState), _chartTheme), 'tooltipLabelColor') : t4$)), fontSize: core.double._check(dart.dsend(dart.dload(dart.dload(this.tooltip, 'textStyle'), 'fontSize'), '*', [animationFactor])), fontFamily: core.String._check(dart.dload(dart.dload(this.tooltip, 'textStyle'), 'fontFamily')), fontWeight: ui.FontWeight._check(dart.dload(dart.dload(this.tooltip, 'textStyle'), 'fontWeight')), fontStyle: ui.FontStyle._check(dart.dload(dart.dload(this.tooltip, 'textStyle'), 'fontStyle'))});
        let result = charts._measureText(this.stringValue, textStyle);
        this[_drawTooltipText](canvas, tooltipRect, textStyle, result, animationFactor);
        if (charts.SfCartesianChart.is(this[_chart]) && dart.dtest(dart.dload(this.tooltip, 'canShowMarker')) && dart.test(this.chartTooltipState[_needMarker])) {
          this[_drawTooltipMarker](canvas, tooltipRect, textStyle, animationFactor);
        }
        xPos = null;
        yPos = null;
      }
    }
    [_drawTooltipPath](canvas, tooltipRect, rect, backgroundPath, isTop, isLeft, isRight, startX, endX, animationFactor, xPos, yPos) {
      let t5, t4, t4$, t4$0, t4$1;
      let factor = 0.0;
      if (dart.test(isTop) && dart.test(isRight)) {
        factor = rect.bottom;
        backgroundPath.moveTo(dart.notNull(rect.right) - 20, factor);
        backgroundPath.lineTo(xPos, yPos);
        backgroundPath.lineTo(dart.notNull(rect.right) - 20, dart.notNull(rect.top) + dart.notNull(rect.height) / 2);
        backgroundPath.lineTo(dart.notNull(rect.right) - 20, factor);
      } else if (!dart.test(isTop) && dart.test(isRight)) {
        factor = rect.top;
        backgroundPath.moveTo(dart.notNull(rect.right) - 20, factor);
        backgroundPath.lineTo(xPos, yPos);
        backgroundPath.lineTo(dart.notNull(rect.right) - 20, dart.notNull(rect.top) + dart.notNull(rect.height) / 2);
        backgroundPath.lineTo(dart.notNull(rect.right) - 20, factor);
      } else if (dart.test(isTop) && dart.test(isLeft)) {
        factor = rect.bottom;
        backgroundPath.moveTo(dart.notNull(rect.left) + 20, factor);
        backgroundPath.lineTo(xPos, yPos);
        backgroundPath.lineTo(dart.notNull(rect.left) + 20, dart.notNull(rect.top) + dart.notNull(rect.height) / 2);
        backgroundPath.lineTo(dart.notNull(rect.left) + 20, factor);
      } else if (!dart.test(isTop) && dart.test(isLeft)) {
        factor = rect.top;
        backgroundPath.moveTo(dart.notNull(rect.left) + 20, factor);
        backgroundPath.lineTo(xPos, yPos);
        backgroundPath.lineTo(dart.notNull(rect.left) + 20, dart.notNull(rect.top) + dart.notNull(rect.height) / 2);
        backgroundPath.lineTo(dart.notNull(rect.left) + 20, factor);
      } else {
        if (dart.test(isTop)) {
          factor = tooltipRect.bottom;
        } else {
          factor = tooltipRect.top;
        }
        backgroundPath.moveTo(dart.notNull(startX) - (dart.notNull(endX) - dart.notNull(startX)) / 4, factor);
        backgroundPath.lineTo(xPos, yPos);
        backgroundPath.lineTo(dart.notNull(endX) + (dart.notNull(endX) - dart.notNull(startX)) / 4, factor);
        backgroundPath.lineTo(dart.notNull(startX) + (dart.notNull(endX) - dart.notNull(startX)) / 4, factor);
      }
      let fillPaint = (t4 = ui.Paint.new(), t4.color = ui.Color._check(dart.dsend((t5 = dart.dload(this.tooltip, 'color'), t5 == null ? dart.dload(dart.dload(dart.dload(this[_chart], _chartState), _chartTheme), 'tooltipColor') : t5), 'withOpacity', [dart.dload(this.tooltip, 'opacity')])), t4.strokeCap = ui.StrokeCap.round, t4.style = ui.PaintingStyle.fill, t4);
      let strokePaint = (t4$ = ui.Paint.new(), t4$.color = ui.Color._check(dart.equals(dart.dload(this.tooltip, 'borderColor'), colors$.Colors.transparent) ? colors$.Colors.transparent : dart.dsend(dart.dload(this.tooltip, 'borderColor'), 'withOpacity', [dart.dload(this.tooltip, 'opacity')])), t4$.strokeCap = ui.StrokeCap.butt, t4$.style = ui.PaintingStyle.stroke, t4$.strokeWidth = core.double._check(dart.dload(this.tooltip, 'borderWidth')), t4$);
      dart.equals(dart.dload(this.tooltip, 'borderWidth'), 0) ? strokePaint.color = colors$.Colors.transparent : strokePaint.color = strokePaint.color;
      let tooltipPath = ui.Path.new();
      tooltipPath.addRRect(tooltipRect);
      if (dart.dtest(dart.dsend(dart.dload(this.tooltip, 'elevation'), '>', [0]))) {
        if (dart.notNull(tooltipRect.width) * dart.notNull(animationFactor) > dart.notNull(tooltipRect.width) * 0.85) {
          canvas.drawShadow(this.arrowPath, ui.Color._check((t4$0 = dart.dload(this.tooltip, 'shadowColor'), t4$0 == null ? fillPaint.color : t4$0)), core.double._check(dart.dload(this.tooltip, 'elevation')), true);
        }
        canvas.drawShadow(tooltipPath, ui.Color._check((t4$1 = dart.dload(this.tooltip, 'shadowColor'), t4$1 == null ? fillPaint.color : t4$1)), core.double._check(dart.dload(this.tooltip, 'elevation')), true);
      }
      if (dart.notNull(tooltipRect.width) * dart.notNull(animationFactor) > dart.notNull(tooltipRect.width) * 0.85) {
        canvas.drawPath(this.arrowPath, fillPaint);
        canvas.drawPath(this.arrowPath, strokePaint);
      }
      canvas.drawPath(tooltipPath, fillPaint);
      canvas.drawPath(tooltipPath, strokePaint);
    }
    [_drawTooltipMarker](canvas, tooltipRect, textStyle, animationFactor) {
      let tooltipStringResult = charts._measureText(this.stringValue, textStyle);
      if (dart.dtest(dart.dload(this.tooltip, 'shared'))) {
        let result1 = C122 || CT.C122;
        let str = "";
        for (let i = 0; i < dart.notNull(this.textValues[$length]); i = i + 1) {
          str = str + dart.notNull(this.textValues[$_get](i));
          let result = charts._measureText(str, textStyle);
          let markerPoint = new ui.Offset.new(dart.notNull(tooltipRect.left) + dart.notNull(tooltipRect.width) / 2 - dart.notNull(tooltipStringResult.width) / 2, dart.notNull(this.markerPointY) + dart.notNull(result1.height) - dart.notNull(this.markerSize));
          result1 = result;
          let _series = this.seriesCollection[$_get](i);
          this[_renderMarker](markerPoint, _series, animationFactor, canvas);
        }
      } else {
        let markerPoint = new ui.Offset.new(dart.notNull(tooltipRect.left) + dart.notNull(tooltipRect.width) / 2 - dart.notNull(tooltipStringResult.width) / 2, dart.notNull(tooltipRect.top) + dart.notNull(tooltipRect.height) - dart.notNull(tooltipStringResult.height) / 2 - dart.notNull(this.markerSize));
        this[_renderMarker](markerPoint, this.series, animationFactor, canvas);
      }
    }
    [_renderMarker](markerPoint, _series, animationFactor, canvas) {
      let t4, t4$;
      let markerPath = charts._getMarkerShapes(this.markerType, markerPoint, new ui.Size.new(2 * dart.notNull(this.markerSize) * dart.notNull(animationFactor), 2 * dart.notNull(this.markerSize) * dart.notNull(animationFactor)), _series);
      if (dart.equals(_series.markerSettings.shape, charts.DataMarkerType.image)) {
        charts._drawImageMarker(_series, canvas, markerPoint.dx, markerPoint.dy);
      }
      let markerPaint = ui.Paint.new();
      markerPaint.color = (!dart.dtest(dart.dload(this.tooltip, 'shared')) ? this.markerColor : (t4$ = (t4 = _series.markerSettings.borderColor, t4 == null ? _series[_seriesColor] : t4), t4$ == null ? _series.color : t4$)).withOpacity(core.double._check(dart.dload(this.tooltip, 'opacity')));
      if (_series.gradient != null) {
        markerPaint = charts._getLinearGradientPaint(_series.gradient, charts._getMarkerShapes(this.markerType, new ui.Offset.new(markerPoint.dx, markerPoint.dy), new ui.Size.new(2 * dart.notNull(this.markerSize) * dart.notNull(animationFactor), 2 * dart.notNull(this.markerSize) * dart.notNull(animationFactor)), _series).getBounds(), _series[_chart][_requireInvertedAxis]);
      }
      canvas.drawPath(markerPath, markerPaint);
      let markerBorderPaint = ui.Paint.new();
      markerBorderPaint.color = colors$.Colors.white.withOpacity(core.double._check(dart.dload(this.tooltip, 'opacity')));
      markerBorderPaint.strokeWidth = 1.0;
      markerBorderPaint.style = ui.PaintingStyle.stroke;
      canvas.drawPath(markerPath, markerBorderPaint);
    }
    [_drawTooltipText](canvas, tooltipRect, textStyle, result, animationFactor) {
      let t4, t4$;
      let _maxLinesOfTooltipContent = charts.getMaxLinesContent(this.stringValue);
      if (this.header != null && this.header[$isNotEmpty]) {
        let headerTextStyle = new charts.ChartTextStyle.new({color: ui.Color._check((t4$ = (t4 = dart.dload(dart.dload(this.tooltip, 'textStyle'), 'color'), t4 == null ? null : dart.dsend(t4, 'withOpacity', [dart.dload(this.tooltip, 'opacity')])), t4$ == null ? dart.dload(dart.dload(dart.dload(this[_chart], _chartState), _chartTheme), 'tooltipLabelColor') : t4$)), fontSize: core.double._check(dart.dsend(dart.dload(dart.dload(this.tooltip, 'textStyle'), 'fontSize'), '*', [animationFactor])), fontFamily: core.String._check(dart.dload(dart.dload(this.tooltip, 'textStyle'), 'fontFamily')), fontStyle: ui.FontStyle._check(dart.dload(dart.dload(this.tooltip, 'textStyle'), 'fontStyle')), fontWeight: ui.FontWeight.bold});
        let headerResult = charts._measureText(this.header, headerTextStyle);
        this[_drawText](this.tooltip, canvas, this.header, new ui.Offset.new(dart.notNull(tooltipRect.left) + dart.notNull(tooltipRect.width) / 2 - dart.notNull(headerResult.width) / 2, dart.notNull(tooltipRect.top) + 10 / 2), headerTextStyle);
        let dividerPaint = ui.Paint.new();
        dividerPaint.color = ui.Color._check(dart.dsend(dart.dload(dart.dload(dart.dload(this[_chart], _chartState), _chartTheme), 'tooltipLabelColor'), 'withOpacity', [dart.dload(this.tooltip, 'opacity')]));
        dividerPaint.strokeWidth = 0.5 * dart.notNull(animationFactor);
        dividerPaint.style = ui.PaintingStyle.stroke;
        canvas.drawLine(new ui.Offset.new(dart.notNull(tooltipRect.left) + 10, dart.notNull(tooltipRect.top) + dart.notNull(headerResult.height) + 10), new ui.Offset.new(dart.notNull(tooltipRect.right) - 10, dart.notNull(tooltipRect.top) + dart.notNull(headerResult.height) + 10), dividerPaint);
        this.markerPointY = dart.notNull(tooltipRect.top) + dart.notNull(headerResult.height) + 10 * 2 + 6;
        this[_drawText](this.tooltip, canvas, this.stringValue, new ui.Offset.new(dart.notNull(tooltipRect.left) + 2 * dart.notNull(this.markerSize) + dart.notNull(tooltipRect.width) / 2 - dart.notNull(result.width) / 2, dart.notNull(tooltipRect.top) + dart.notNull(tooltipRect.height) - dart.notNull(result.height) - 5), textStyle, dart.asInt(_maxLinesOfTooltipContent));
      } else {
        this[_drawText](this.tooltip, canvas, this.stringValue, new ui.Offset.new(dart.notNull(tooltipRect.left) + 2 * dart.notNull(this.markerSize) + dart.notNull(tooltipRect.width) / 2 - dart.notNull(result.width) / 2, dart.notNull(tooltipRect.top) + dart.notNull(tooltipRect.height) / 2 - dart.notNull(result.height) / 2), textStyle, dart.asInt(_maxLinesOfTooltipContent));
      }
    }
    [_drawText](tooltip, canvas, text, point, style, maxLines = null, rotation = null) {
      let t4;
      let tooltipTextAlign = ui.TextAlign.start;
      if (tooltip != null && dart.dload(tooltip, 'format') != null && dart.dtest(dart.dload(dart.dload(tooltip, 'format'), 'isNotEmpty'))) {
        if (dart.equals(dart.dload(tooltip, 'textAlignment'), charts.ChartAlignment.near)) {
          tooltipTextAlign = ui.TextAlign.start;
        } else if (dart.equals(dart.dload(tooltip, 'textAlignment'), charts.ChartAlignment.center)) {
          tooltipTextAlign = ui.TextAlign.center;
        } else if (dart.equals(dart.dload(tooltip, 'textAlignment'), charts.ChartAlignment.far)) {
          tooltipTextAlign = ui.TextAlign.end;
        }
      }
      let color = style.color;
      let fontSize = style.fontSize;
      let fontFamily = style.fontFamily;
      let fontStyle = style.fontStyle;
      let fontWeight = style.fontWeight;
      let span = new text_span.TextSpan.new({text: text, style: new text_style.TextStyle.new({color: color, fontSize: fontSize, fontFamily: fontFamily, fontStyle: fontStyle, fontWeight: fontWeight})});
      let tp = new text_painter.TextPainter.new({text: span, textDirection: ui.TextDirection.ltr, textAlign: tooltipTextAlign, maxLines: (t4 = maxLines, t4 == null ? 1 : t4)});
      tp.layout();
      canvas.save();
      canvas.translate(point.dx, point.dy);
      if (rotation != null && dart.notNull(rotation) > 0) {
        canvas.rotate(charts._degreeToRadian(rotation));
      }
      tp.paint(canvas, C568 || CT.C568);
      canvas.restore();
    }
    shouldRepaint(oldDelegate) {
      custom_paint.CustomPainter._check(oldDelegate);
      return true;
    }
    show(x, y) {
      if (dart.dtest(dart.dload(this.tooltip, 'enable')) && dart.dload(this.tooltip, _painter) != null && dart.dtest(dart.dload(dart.dload(dart.dload(dart.dload(this.tooltip, _painter), _chart), _chartState), 'animateCompleted'))) {
        dart.dput(dart.dload(this.tooltip, _painter), 'canResetPath', false);
        dart.dsend(dart.dload(this.tooltip, _painter), _renderTooltipView, [new ui.Offset.new(x, y)]);
        if (dart.dload(dart.dload(this.tooltip, _painter), 'prevTooltipValue') != null && dart.dload(dart.dload(this.tooltip, _painter), 'currentTooltipValue') == null && !dart.equals(dart.dload(this.tooltip, 'tooltipPosition'), charts.TooltipPosition.pointer)) {
          this.chartTooltipState.animationController.forward({from: 0.0});
          dart.dput(dart.dload(this.tooltip, _painter), 'currentTooltipValue', dart.dload(dart.dload(this.tooltip, _painter), 'prevTooltipValue'));
        } else {
          if (dart.equals(dart.dload(this.tooltip, 'tooltipPosition'), charts.TooltipPosition.pointer)) {
            this.chartTooltipState.animationController.forward({from: 0.0});
            dart.dput(dart.dload(this.tooltip, _painter), 'currentTooltipValue', dart.dload(dart.dload(this.tooltip, _painter), 'prevTooltipValue'));
          }
        }
        if (dart.dload(dart.dload(this.tooltip, _painter), 'timer') != null) {
          dart.dsend(dart.dload(dart.dload(this.tooltip, _painter), 'timer'), 'cancel', []);
        }
        if (!dart.dtest(dart.dload(this.tooltip, 'shouldAlwaysShow'))) {
          dart.dput(dart.dload(this.tooltip, _painter), 'timer', async.Timer.new(new core.Duration.new({milliseconds: core.int._check(dart.dsend(dart.dload(this.tooltip, 'duration'), 'toInt', []))}), dart.fn(() => {
            let t4;
            this.chartTooltipState.show = false;
            dart.dput(dart.dload(this.tooltip, _painter), 'currentTooltipValue', dart.dput(dart.dload(this.tooltip, _painter), 'prevTooltipValue', null));
            t4 = this.chartTooltipState.tooltipRepaintNotifier;
            t4.value = dart.notNull(t4.value) + 1;
            dart.dput(dart.dload(this.tooltip, _painter), 'canResetPath', true);
          }, VoidToNull())));
        }
      }
    }
    [_showChartAreaTooltip](position, xAxis, yAxis) {
      let t4, t4$;
      if (dart.dtest(dart.dload(this.tooltip, 'enable')) && dart.dload(this.tooltip, _painter) != null && dart.dtest(dart.dload(dart.dload(dart.dload(dart.dload(this.tooltip, _painter), _chart), _chartState), 'animateCompleted'))) {
        this.chartTooltipState.animationController.forward({from: 0.0});
        dart.dput(dart.dload(this.tooltip, _painter), 'canResetPath', false);
        let chart = charts.SfCartesianChart._check(dart.dload(dart.dload(this.tooltip, _painter), _chart));
        chart.tooltipBehavior[_painter].boundaryRect = chart[_chartAxis][_axisClipRect];
        if (dart.test(chart[_chartAxis][_axisClipRect].contains(position))) {
          chart.tooltipBehavior[_painter].currentSeries = chart.series[$_get](0);
          chart.tooltipBehavior[_painter].series = charts.XyDataSeries._check(chart.series[$_get](0));
          chart.tooltipBehavior[_painter].padding = 5.0;
          chart.tooltipBehavior[_painter].header = null;
          let xValue = charts._pointToXValue(chart, xAxis, xAxis[_bounds], dart.notNull(position.dx) - (dart.notNull(chart[_chartAxis][_axisClipRect].left) + dart.notNull(xAxis.plotOffset)), dart.notNull(position.dy) - (dart.notNull(chart[_chartAxis][_axisClipRect].top) + dart.notNull(xAxis.plotOffset)));
          let yValue = charts._pointToYValue(chart, yAxis, yAxis[_bounds], dart.notNull(position.dx) - (dart.notNull(chart[_chartAxis][_axisClipRect].left) + dart.notNull(yAxis.plotOffset)), dart.notNull(position.dy) - (dart.notNull(chart[_chartAxis][_axisClipRect].top) + dart.notNull(yAxis.plotOffset)));
          if (charts.DateTimeAxis.is(xAxis))
            xValue = (t4 = xAxis.dateFormat, t4 == null ? xAxis[_getLabelFormat](xAxis) : t4).format(new core.DateTime.fromMillisecondsSinceEpoch(core.int._check(dart.dsend(xValue, 'floor', []))));
          else if (charts.CategoryAxis.is(xAxis))
            xValue = xAxis[_visibleLabels][$_get](core.int._check(dart.dsend(xValue, 'toInt', []))).text;
          else if (charts.NumericAxis.is(xAxis)) xValue = dart.dtest(dart.dsend(dart.dsend(xValue, 'toStringAsFixed', [2]), 'contains', [".00"])) ? dart.dsend(xValue, 'floor', []) : dart.dsend(xValue, 'toStringAsFixed', [2]);
          if (charts.DateTimeAxis.is(yAxis))
            yValue = (t4$ = yAxis.dateFormat, t4$ == null ? yAxis[_getLabelFormat](yAxis) : t4$).format(new core.DateTime.fromMillisecondsSinceEpoch(core.int._check(dart.dsend(yValue, 'floor', []))));
          else if (charts.NumericAxis.is(yAxis)) yValue = dart.dtest(dart.dsend(dart.dsend(yValue, 'toStringAsFixed', [2]), 'contains', [".00"])) ? dart.dsend(yValue, 'floor', []) : dart.dsend(yValue, 'toStringAsFixed', [2]);
          chart.tooltipBehavior[_painter].stringValue = " " + dart.str(xValue) + " :  " + dart.str(yValue) + " ";
          chart.tooltipBehavior[_painter][_calculateLocation](position);
        }
        if (dart.dload(dart.dload(this.tooltip, _painter), 'timer') != null) {
          dart.dsend(dart.dload(dart.dload(this.tooltip, _painter), 'timer'), 'cancel', []);
        }
        if (!dart.dtest(dart.dload(this.tooltip, 'shouldAlwaysShow'))) {
          dart.dput(dart.dload(this.tooltip, _painter), 'timer', async.Timer.new(new core.Duration.new({milliseconds: core.int._check(dart.dsend(dart.dload(this.tooltip, 'duration'), 'toInt', []))}), dart.fn(() => {
            let t4;
            this.chartTooltipState.show = false;
            t4 = this.chartTooltipState.tooltipRepaintNotifier;
            t4.value = dart.notNull(t4.value) + 1;
            dart.dput(dart.dload(this.tooltip, _painter), 'canResetPath', true);
          }, VoidToNull())));
        }
      }
    }
    hide() {
      if (dart.dload(dart.dload(this.tooltip, _painter), 'timer') != null) {
        dart.dsend(dart.dload(dart.dload(this.tooltip, _painter), 'timer'), 'cancel', []);
      }
      if (dart.dload(dart.dload(this.tooltip, _painter), 'prevTooltipValue') == null && dart.dload(dart.dload(this.tooltip, _painter), 'currentTooltipValue') == null) {
        dart.dput(dart.dload(this.tooltip, _painter), 'timer', async.Timer.new(new core.Duration.new({milliseconds: core.int._check(dart.dsend(dart.dload(this.tooltip, 'duration'), 'toInt', []))}), dart.fn(() => {
          let t4;
          this.chartTooltipState.show = false;
          dart.dput(dart.dload(this.tooltip, _painter), 'currentTooltipValue', dart.dput(dart.dload(this.tooltip, _painter), 'prevTooltipValue', null));
          t4 = this.chartTooltipState.tooltipRepaintNotifier;
          t4.value = dart.notNull(t4.value) + 1;
          dart.dput(dart.dload(this.tooltip, _painter), 'canResetPath', true);
        }, VoidToNull())));
      }
    }
    showMouseTooltip(x, y) {
      if (dart.dtest(dart.dload(this.tooltip, 'enable')) && dart.dload(this.tooltip, _painter) != null && dart.dtest(dart.dload(dart.dload(dart.dload(dart.dload(this.tooltip, _painter), _chart), _chartState), 'animateCompleted'))) {
        dart.dput(dart.dload(this.tooltip, _painter), 'canResetPath', false);
        dart.dsend(dart.dload(this.tooltip, _painter), _renderTooltipView, [new ui.Offset.new(x, y)]);
        if (dart.dload(dart.dload(this.tooltip, _painter), 'timer') != null) {
          dart.dsend(dart.dload(dart.dload(this.tooltip, _painter), 'timer'), 'cancel', []);
        }
        if (dart.dload(dart.dload(this.tooltip, _painter), 'prevTooltipValue') != null && dart.dload(dart.dload(this.tooltip, _painter), 'currentTooltipValue') == null) {
          this.chartTooltipState.animationController.forward({from: 0.0});
          dart.dput(dart.dload(this.tooltip, _painter), 'currentTooltipValue', dart.dload(dart.dload(this.tooltip, _painter), 'prevTooltipValue'));
        }
        if (charts.SfCartesianChart.is(dart.dload(dart.dload(this.tooltip, _painter), _chart))) {
          this.hide();
        }
      }
    }
  };
  (charts._TooltipPainter.new = function(opts) {
    let chartTooltipState = opts && 'chartTooltipState' in opts ? opts.chartTooltipState : null;
    let animationController = opts && 'animationController' in opts ? opts.animationController : null;
    let tooltipAnimation = opts && 'tooltipAnimation' in opts ? opts.tooltipAnimation : null;
    let notifier = opts && 'notifier' in opts ? opts.notifier : null;
    this.pointerLength = 10.0;
    this.nosePointY = 0.0;
    this.nosePointX = 0.0;
    this.totalWidth = 0.0;
    this.x = null;
    this.y = null;
    this.xPos = null;
    this.yPos = null;
    this.valueNotifier = null;
    this.isTop = false;
    this.borderRadius = 5.0;
    this.arrowPath = ui.Path.new();
    this.canResetPath = false;
    this.timer = null;
    this.isLeft = false;
    this.isRight = false;
    this[_chart] = null;
    this.enable = null;
    this.padding = 0.0;
    this.stringValue = null;
    this.markerPointY = null;
    this.textValues = JSArrayOfString().of([]);
    this.seriesCollection = JSArrayOfXyDataSeries().of([]);
    this.header = null;
    this.boundaryRect = C348 || CT.C348;
    this.tooltip = null;
    this[_chartState] = null;
    this.currentSeries = null;
    this.pointIndex = null;
    this.markerType = null;
    this.markerSize = null;
    this.markerColor = null;
    this.series = null;
    this.prevTooltipValue = null;
    this.currentTooltipValue = null;
    this.chartTooltipState = chartTooltipState;
    this.animationController = animationController;
    this.tooltipAnimation = tooltipAnimation;
    charts._TooltipPainter.__proto__.new.call(this, {repaint: notifier});
    ;
  }).prototype = charts._TooltipPainter.prototype;
  dart.addTypeTests(charts._TooltipPainter);
  dart.setMethodSignature(charts._TooltipPainter, () => ({
    __proto__: dart.getMethods(charts._TooltipPainter.__proto__),
    [_renderTooltipView]: dart.fnType(dart.void, [ui.Offset]),
    [_renderCartesianChartTooltip]: dart.fnType(dart.void, [ui.Offset]),
    [_calculateCartesianTooltipText]: dart.fnType(core.String, [charts.XyDataSeries, charts.CartesianChartPoint, dart.dynamic, ui.Offset]),
    [_renderCircularChartTooltip]: dart.fnType(dart.void, [ui.Offset]),
    [_renderTriangularChartTooltip]: dart.fnType(dart.void, [ui.Offset]),
    [_calculateLocation]: dart.fnType(dart.void, [ui.Offset]),
    paint: dart.fnType(dart.void, [ui.Canvas, ui.Size]),
    [_renderTooltip]: dart.fnType(dart.void, [ui.Canvas]),
    [_calculateBackgroundRect]: dart.fnType(dart.void, [ui.Canvas, core.double, core.double, core.double]),
    [_drawBackground]: dart.fnType(dart.void, [ui.Canvas, ui.Rect, core.double, core.double, core.double, core.bool, ui.Path, core.bool, core.bool, animation.Animation$(core.double)]),
    [_drawTooltip]: dart.fnType(dart.void, [ui.Canvas, core.bool, ui.Rect, core.double, core.double, core.double, core.double, core.double, core.double, core.double, ui.Path, core.bool, core.bool, animation.Animation$(core.double)]),
    [_drawTooltipPath]: dart.fnType(dart.void, [ui.Canvas, ui.RRect, ui.Rect, ui.Path, core.bool, core.bool, core.bool, core.double, core.double, core.double, core.double, core.double]),
    [_drawTooltipMarker]: dart.fnType(dart.void, [ui.Canvas, ui.RRect, charts.ChartTextStyle, core.double]),
    [_renderMarker]: dart.fnType(dart.void, [ui.Offset, charts.XyDataSeries, core.double, ui.Canvas]),
    [_drawTooltipText]: dart.fnType(dart.void, [ui.Canvas, ui.RRect, charts.ChartTextStyle, ui.Size, core.double]),
    [_drawText]: dart.fnType(dart.void, [dart.dynamic, ui.Canvas, core.String, ui.Offset, charts.ChartTextStyle], [core.int, core.int]),
    shouldRepaint: dart.fnType(core.bool, [core.Object]),
    show: dart.fnType(dart.void, [core.double, core.double]),
    [_showChartAreaTooltip]: dart.fnType(dart.void, [ui.Offset, charts.ChartAxis, charts.ChartAxis]),
    hide: dart.fnType(dart.void, []),
    showMouseTooltip: dart.fnType(dart.void, [core.double, core.double])
  }));
  dart.setLibraryUri(charts._TooltipPainter, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._TooltipPainter, () => ({
    __proto__: dart.getFields(charts._TooltipPainter.__proto__),
    pointerLength: dart.fieldType(core.double),
    nosePointY: dart.fieldType(core.double),
    nosePointX: dart.fieldType(core.double),
    totalWidth: dart.fieldType(core.double),
    x: dart.fieldType(core.double),
    y: dart.fieldType(core.double),
    xPos: dart.fieldType(core.double),
    yPos: dart.fieldType(core.double),
    valueNotifier: dart.fieldType(change_notifier.ValueNotifier$(core.int)),
    isTop: dart.fieldType(core.bool),
    borderRadius: dart.fieldType(core.double),
    arrowPath: dart.fieldType(ui.Path),
    canResetPath: dart.fieldType(core.bool),
    timer: dart.fieldType(async.Timer),
    isLeft: dart.fieldType(core.bool),
    isRight: dart.fieldType(core.bool),
    tooltipAnimation: dart.fieldType(animation.Animation$(core.double)),
    [_chart]: dart.fieldType(dart.dynamic),
    enable: dart.fieldType(core.bool),
    padding: dart.fieldType(core.double),
    stringValue: dart.fieldType(core.String),
    markerPointY: dart.fieldType(core.num),
    textValues: dart.fieldType(core.List$(core.String)),
    seriesCollection: dart.fieldType(core.List$(charts.XyDataSeries)),
    header: dart.fieldType(core.String),
    boundaryRect: dart.fieldType(ui.Rect),
    tooltip: dart.fieldType(dart.dynamic),
    [_chartState]: dart.fieldType(dart.dynamic),
    currentSeries: dart.fieldType(dart.dynamic),
    pointIndex: dart.fieldType(core.num),
    markerType: dart.fieldType(charts.DataMarkerType),
    markerSize: dart.fieldType(core.double),
    markerColor: dart.fieldType(ui.Color),
    series: dart.fieldType(charts.XyDataSeries),
    prevTooltipValue: dart.fieldType(charts.TooltipValue),
    currentTooltipValue: dart.fieldType(charts.TooltipValue),
    chartTooltipState: dart.finalFieldType(charts._ChartTooltipRendererState),
    animationController: dart.finalFieldType(animation_controller.AnimationController)
  }));
  charts._TooltipTemplate = class _TooltipTemplate extends framework.StatefulWidget {
    createState() {
      return new charts._TooltipTemplateState.new();
    }
  };
  (charts._TooltipTemplate.new = function(opts) {
    let rect = opts && 'rect' in opts ? opts.rect : null;
    let template = opts && 'template' in opts ? opts.template : null;
    let show = opts && 'show' in opts ? opts.show : null;
    let clipRect = opts && 'clipRect' in opts ? opts.clipRect : null;
    let $36creationLocationd_0dea112b090073317d4 = opts && '$creationLocationd_0dea112b090073317d4' in opts ? opts.$creationLocationd_0dea112b090073317d4 : null;
    this.state = null;
    this.rect = rect;
    this.template = template;
    this.show = show;
    this.clipRect = clipRect;
    charts._TooltipTemplate.__proto__.new.call(this, {$creationLocationd_0dea112b090073317d4: $36creationLocationd_0dea112b090073317d4});
    ;
  }).prototype = charts._TooltipTemplate.prototype;
  dart.addTypeTests(charts._TooltipTemplate);
  dart.setMethodSignature(charts._TooltipTemplate, () => ({
    __proto__: dart.getMethods(charts._TooltipTemplate.__proto__),
    createState: dart.fnType(framework.State$(framework.StatefulWidget), [])
  }));
  dart.setLibraryUri(charts._TooltipTemplate, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._TooltipTemplate, () => ({
    __proto__: dart.getFields(charts._TooltipTemplate.__proto__),
    rect: dart.fieldType(ui.Rect),
    template: dart.fieldType(framework.Widget),
    show: dart.fieldType(core.bool),
    clipRect: dart.fieldType(ui.Rect),
    state: dart.fieldType(charts._TooltipTemplateState)
  }));
  const _controller = dart.privateName(charts, "_controller");
  const _animation = dart.privateName(charts, "_animation");
  const _tooltipClose = dart.privateName(charts, "_tooltipClose");
  const _loaded = dart.privateName(charts, "_loaded");
  let C571;
  let C570;
  let C569;
  let C574;
  let C575;
  let C573;
  let C572;
  const _getTooltipLocation = dart.privateName(charts, "_getTooltipLocation");
  let C578;
  let C579;
  let C577;
  let C576;
  let C582;
  let C583;
  let C581;
  let C580;
  let C586;
  let C587;
  let C588;
  let C585;
  let C584;
  let C589;
  let C590;
  const State_SingleTickerProviderStateMixin$36$5 = class State_SingleTickerProviderStateMixin extends framework.State$(charts._TooltipTemplate) {};
  (State_SingleTickerProviderStateMixin$36$5.new = function() {
    ticker_provider.SingleTickerProviderStateMixin$(charts._TooltipTemplate)[dart.mixinNew].call(this);
    State_SingleTickerProviderStateMixin$36$5.__proto__.new.call(this);
  }).prototype = State_SingleTickerProviderStateMixin$36$5.prototype;
  dart.applyMixin(State_SingleTickerProviderStateMixin$36$5, ticker_provider.SingleTickerProviderStateMixin$(charts._TooltipTemplate));
  charts._TooltipTemplateState = class _TooltipTemplateState extends State_SingleTickerProviderStateMixin$36$5 {
    initState() {
      this.widget.state = this;
      this[_controller] = new animation_controller.AnimationController.new({vsync: this, duration: C123 || CT.C123});
      this[_animation] = new (TweenOfdouble()).new({begin: 0.0, end: 1.0}).animate(new animations.CurvedAnimation.new({parent: this[_controller], curve: curves.Curves.bounceOut}));
      super.initState();
    }
    [_tooltipClose]() {
      if (dart.test(this.mounted)) {
        this.setState(dart.fn(() => {
          this.widget.show = false;
        }, VoidToNull()));
      }
    }
    dispose() {
      let t4;
      this[_controller].dispose();
      t4 = this.tooltipTimer;
      t4 == null ? null : t4.cancel();
      super.dispose();
    }
    didUpdateWidget(oldWidget) {
      charts._TooltipTemplate._check(oldWidget);
      this.widget.state = this;
      super.didUpdateWidget(oldWidget);
    }
    [_performTooltip]() {
      this.needMeasure = true;
      this.tooltipSize = C122 || CT.C122;
      if (dart.test(this.mounted)) {
        this.setState(dart.fn(() => {
        }, VoidToNull()));
      }
    }
    [_loaded]() {
      let renderBox = box.RenderBox._check(this.tooltipContext.findRenderObject());
      this.tooltipSize = renderBox.size;
      this.needMeasure = false;
      if (dart.test(this.mounted)) {
        this.setState(dart.fn(() => {
        }, VoidToNull()));
      }
    }
    build(context) {
      let tooltipWidget = null;
      if (dart.test(this.widget.show)) {
        if (dart.test(this.needMeasure)) {
          tooltipWidget = new basic.Opacity.new({opacity: 0.0, child: new container.Container.new({child: this.widget.template, $creationLocationd_0dea112b090073317d4: C569 || CT.C569}), $creationLocationd_0dea112b090073317d4: C572 || CT.C572});
          this.tooltipContext = context;
          binding.SchedulerBinding.instance.addPostFrameCallback(dart.fn(_ => this[_loaded](), DurationTovoid()));
        } else {
          this[_controller].forward({from: 0.0});
          let tooltipRect = new ui.Rect.fromLTWH(dart.notNull(this.widget.rect.left) - dart.notNull(this.tooltipSize.width) / 2, dart.notNull(this.widget.rect.top) - dart.notNull(this.tooltipSize.height) / 2, this.tooltipSize.width, this.tooltipSize.height);
          let location = this[_getTooltipLocation](tooltipRect, this.widget.clipRect);
          tooltipWidget = new transitions.AnimatedBuilder.new({animation: this[_animation], child: new container.Container.new({margin: new edge_insets.EdgeInsets.fromLTRB(location.dx, location.dy, 0.0, 0.0), child: this.widget.template, $creationLocationd_0dea112b090073317d4: C576 || CT.C576}), builder: dart.fn((context, _widget) => new basic.Opacity.new({opacity: dart.notNull(this[_controller].value) * 1.0, child: _widget, $creationLocationd_0dea112b090073317d4: C580 || CT.C580}), BuildContextAndWidgetToOpacity()), $creationLocationd_0dea112b090073317d4: C584 || CT.C584});
        }
      } else {
        tooltipWidget = new container.Container.new({$creationLocationd_0dea112b090073317d4: C589 || CT.C589});
      }
      if (this.tooltipTimer != null) {
        this.tooltipTimer.cancel();
      }
      if (dart.test(this.widget.show)) {
        this.tooltipTimer = async.Timer.new(C590 || CT.C590, dart.bind(this, _tooltipClose));
      }
      return tooltipWidget;
    }
    [_getTooltipLocation](tooltipRect, bounds) {
      let left = tooltipRect.left;
      let top = tooltipRect.top;
      if (dart.notNull(tooltipRect.left) < dart.notNull(bounds.left)) {
        left = bounds.left;
      }
      if (dart.notNull(tooltipRect.top) < dart.notNull(bounds.top)) {
        top = bounds.top;
      }
      if (dart.notNull(tooltipRect.left) + dart.notNull(tooltipRect.width) > dart.notNull(bounds.left) + dart.notNull(bounds.width)) {
        left = dart.notNull(bounds.left) + dart.notNull(bounds.width) - dart.notNull(tooltipRect.width);
      }
      if (dart.notNull(tooltipRect.top) + dart.notNull(tooltipRect.height) > dart.notNull(bounds.top) + dart.notNull(bounds.height)) {
        top = dart.notNull(bounds.top) + dart.notNull(bounds.height) - dart.notNull(tooltipRect.height);
      }
      return new ui.Offset.new(left, top);
    }
  };
  (charts._TooltipTemplateState.new = function() {
    this.tooltipContext = null;
    this.needMeasure = null;
    this.tooltipSize = C122 || CT.C122;
    this[_controller] = null;
    this[_animation] = null;
    this.tooltipTimer = null;
    charts._TooltipTemplateState.__proto__.new.call(this);
    ;
  }).prototype = charts._TooltipTemplateState.prototype;
  dart.addTypeTests(charts._TooltipTemplateState);
  dart.setMethodSignature(charts._TooltipTemplateState, () => ({
    __proto__: dart.getMethods(charts._TooltipTemplateState.__proto__),
    [_tooltipClose]: dart.fnType(dart.void, []),
    [_performTooltip]: dart.fnType(dart.void, []),
    [_loaded]: dart.fnType(dart.void, []),
    build: dart.fnType(framework.Widget, [framework.BuildContext]),
    [_getTooltipLocation]: dart.fnType(ui.Offset, [ui.Rect, ui.Rect])
  }));
  dart.setLibraryUri(charts._TooltipTemplateState, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._TooltipTemplateState, () => ({
    __proto__: dart.getFields(charts._TooltipTemplateState.__proto__),
    tooltipContext: dart.fieldType(framework.BuildContext),
    needMeasure: dart.fieldType(core.bool),
    tooltipSize: dart.fieldType(ui.Size),
    [_controller]: dart.fieldType(animation_controller.AnimationController),
    [_animation]: dart.fieldType(animation.Animation$(core.double)),
    tooltipTimer: dart.fieldType(async.Timer)
  }));
  const _drawTrackball = dart.privateName(charts, "_drawTrackball");
  const _drawTrackBallLine = dart.privateName(charts, "_drawTrackBallLine");
  const enable$1 = dart.privateName(charts, "TrackballBehavior.enable");
  const lineWidth$0 = dart.privateName(charts, "TrackballBehavior.lineWidth");
  const lineColor$0 = dart.privateName(charts, "TrackballBehavior.lineColor");
  const lineDashArray$0 = dart.privateName(charts, "TrackballBehavior.lineDashArray");
  const activationMode$0 = dart.privateName(charts, "TrackballBehavior.activationMode");
  const tooltipAlignment$ = dart.privateName(charts, "TrackballBehavior.tooltipAlignment");
  const lineType$0 = dart.privateName(charts, "TrackballBehavior.lineType");
  const tooltipDisplayMode$ = dart.privateName(charts, "TrackballBehavior.tooltipDisplayMode");
  const shouldAlwaysShow$0 = dart.privateName(charts, "TrackballBehavior.shouldAlwaysShow");
  const tooltipSettings$ = dart.privateName(charts, "TrackballBehavior.tooltipSettings");
  const hideDelay$0 = dart.privateName(charts, "TrackballBehavior.hideDelay");
  charts.TrackballBehavior = class TrackballBehavior extends charts.ChartBehavior {
    get enable() {
      return this[enable$1];
    }
    set enable(value) {
      super.enable = value;
    }
    get lineWidth() {
      return this[lineWidth$0];
    }
    set lineWidth(value) {
      super.lineWidth = value;
    }
    get lineColor() {
      return this[lineColor$0];
    }
    set lineColor(value) {
      super.lineColor = value;
    }
    get lineDashArray() {
      return this[lineDashArray$0];
    }
    set lineDashArray(value) {
      super.lineDashArray = value;
    }
    get activationMode() {
      return this[activationMode$0];
    }
    set activationMode(value) {
      super.activationMode = value;
    }
    get tooltipAlignment() {
      return this[tooltipAlignment$];
    }
    set tooltipAlignment(value) {
      super.tooltipAlignment = value;
    }
    get lineType() {
      return this[lineType$0];
    }
    set lineType(value) {
      super.lineType = value;
    }
    get tooltipDisplayMode() {
      return this[tooltipDisplayMode$];
    }
    set tooltipDisplayMode(value) {
      super.tooltipDisplayMode = value;
    }
    get shouldAlwaysShow() {
      return this[shouldAlwaysShow$0];
    }
    set shouldAlwaysShow(value) {
      super.shouldAlwaysShow = value;
    }
    get tooltipSettings() {
      return this[tooltipSettings$];
    }
    set tooltipSettings(value) {
      this[tooltipSettings$] = value;
    }
    get hideDelay() {
      return this[hideDelay$0];
    }
    set hideDelay(value) {
      super.hideDelay = value;
    }
    show(x, y, coordinateUnit = null) {
      let t4;
      let series = charts.CartesianSeries._check(this[_trackballPainter].chart.series[$_get](0));
      if (this[_trackballPainter] != null && !dart.equals(this.activationMode, charts.ActivationMode.none)) {
        if (coordinateUnit !== "pixel") {
          this[_trackballPainter].chart[_chartState].trackballWithoutTouch = false;
          let location = charts._calculatePoint(core.num._check(core.DateTime.is(x) ? x.millisecondsSinceEpoch : x), y, series[_xAxis$], series[_yAxis$], series[_chart][_requireInvertedAxis], series, series[_chart][_chartAxis][_axisClipRect]);
          x = location.x;
          y = location.y;
        }
        this[_trackballPainter][_generateAllPoints](new ui.Offset.new(core.double._check(dart.dsend(x, 'toDouble', [])), y));
      }
      this[_trackballPainter].canResetPath = false;
      if (dart.test(this[_trackballPainter].chart[_chartState].trackballWithoutTouch)) {
        t4 = this[_trackballPainter].chart[_chartState].trackballRepaintNotifier;
        t4.value = dart.notNull(t4.value) + 1;
      }
    }
    showByIndex(pointIndex) {
      if (this[_trackballPainter] != null && !dart.equals(this.activationMode, charts.ActivationMode.none)) {
        if (dart.test(charts._validIndex(pointIndex, 0, this[_trackballPainter].chart))) {
          this[_trackballPainter].showTrackball(ListOfCartesianSeries()._check(this[_trackballPainter].chart[_chartSeries].visibleSeries), pointIndex);
        }
        this[_trackballPainter].canResetPath = false;
      }
    }
    hide() {
      let t5, t4;
      if (this[_trackballPainter] != null && !dart.equals(this.activationMode, charts.ActivationMode.none)) {
        this[_trackballPainter].canResetPath = false;
        new (ValueNotifierOfint()).new((t4 = this[_trackballPainter].chart[_chartState].trackballRepaintNotifier, t5 = t4.value, t4.value = dart.notNull(t5) + 1, t5));
        if (this[_trackballPainter].timer != null) {
          this[_trackballPainter].timer.cancel();
        }
        if (!dart.test(this.shouldAlwaysShow)) {
          let duration = this.hideDelay === 0 && dart.test(this[_trackballPainter].chart[_chartState][_enableDoubleTap]) ? 200.0 : this.hideDelay;
          this[_trackballPainter].timer = async.Timer.new(new core.Duration.new({milliseconds: duration[$toInt]()}), dart.fn(() => {
            let t4;
            t4 = this[_trackballPainter].chart[_chartState].trackballRepaintNotifier;
            t4.value = dart.notNull(t4.value) + 1;
            this[_trackballPainter].canResetPath = true;
          }, VoidToNull()));
        }
      }
    }
    onDoubleTap(xPos, yPos) {
      return this.show(xPos, yPos, "pixel");
    }
    onLongPress(xPos, yPos) {
      return this.show(xPos, yPos, "pixel");
    }
    onTouchDown(xPos, yPos) {
      return this.show(xPos, yPos, "pixel");
    }
    onTouchMove(xPos, yPos) {
      return this.show(xPos, yPos, "pixel");
    }
    onTouchUp(xPos, yPos) {
      return this.hide();
    }
    onEnter(xPos, yPos) {
      return this.show(xPos, yPos, "pixel");
    }
    onExit(xPos, yPos) {
      return this.hide();
    }
    onPaint(canvas) {
      if (this[_trackballPainter] != null && !dart.test(this[_trackballPainter].canResetPath)) {
        this[_trackballPainter][_drawTrackball](canvas);
      }
    }
    [_drawLine](canvas, paint, seriesIndex) {
      if (this[_trackballPainter] != null) {
        this[_trackballPainter][_drawTrackBallLine](canvas, paint, seriesIndex);
      }
    }
    [_linePainter](paint) {
      let t4;
      t4 = this[_trackballPainter];
      return t4 == null ? null : t4[_getLinePainter](paint);
    }
  };
  (charts.TrackballBehavior.new = function(opts) {
    let t4, t4$, t4$0, t4$1, t4$2, t4$3;
    let activationMode = opts && 'activationMode' in opts ? opts.activationMode : null;
    let lineType = opts && 'lineType' in opts ? opts.lineType : null;
    let tooltipDisplayMode = opts && 'tooltipDisplayMode' in opts ? opts.tooltipDisplayMode : null;
    let tooltipAlignment = opts && 'tooltipAlignment' in opts ? opts.tooltipAlignment : null;
    let tooltipSettings = opts && 'tooltipSettings' in opts ? opts.tooltipSettings : null;
    let lineDashArray = opts && 'lineDashArray' in opts ? opts.lineDashArray : null;
    let enable = opts && 'enable' in opts ? opts.enable : false;
    let lineColor = opts && 'lineColor' in opts ? opts.lineColor : null;
    let lineWidth = opts && 'lineWidth' in opts ? opts.lineWidth : 1;
    let shouldAlwaysShow = opts && 'shouldAlwaysShow' in opts ? opts.shouldAlwaysShow : false;
    let hideDelay = opts && 'hideDelay' in opts ? opts.hideDelay : null;
    this[_position] = null;
    this[_trackballPainter] = null;
    this[_isLongPressActivated] = null;
    this[lineDashArray$0] = lineDashArray;
    this[enable$1] = enable;
    this[lineColor$0] = lineColor;
    this[lineWidth$0] = lineWidth;
    this[shouldAlwaysShow$0] = shouldAlwaysShow;
    this[activationMode$0] = (t4 = activationMode, t4 == null ? charts.ActivationMode.longPress : t4);
    this[tooltipAlignment$] = (t4$ = tooltipAlignment, t4$ == null ? charts.ChartAlignment.center : t4$);
    this[hideDelay$0] = (t4$0 = hideDelay, t4$0 == null ? 0.0 : t4$0);
    this[tooltipDisplayMode$] = (t4$1 = tooltipDisplayMode, t4$1 == null ? charts.TrackballDisplayMode.floatAllPoints : t4$1);
    this[tooltipSettings$] = (t4$2 = tooltipSettings, t4$2 == null ? new charts.InteractiveTooltip.new() : t4$2);
    this[lineType$0] = (t4$3 = lineType, t4$3 == null ? charts.TrackballLineType.vertical : t4$3);
    this[_isLongPressActivated] = false;
  }).prototype = charts.TrackballBehavior.prototype;
  dart.addTypeTests(charts.TrackballBehavior);
  dart.setMethodSignature(charts.TrackballBehavior, () => ({
    __proto__: dart.getMethods(charts.TrackballBehavior.__proto__),
    show: dart.fnType(dart.void, [dart.dynamic, core.double], [core.String]),
    showByIndex: dart.fnType(dart.void, [core.int]),
    hide: dart.fnType(dart.void, []),
    onDoubleTap: dart.fnType(dart.void, [core.double, core.double]),
    onLongPress: dart.fnType(dart.void, [core.double, core.double]),
    onTouchDown: dart.fnType(dart.void, [core.double, core.double]),
    onTouchMove: dart.fnType(dart.void, [core.double, core.double]),
    onTouchUp: dart.fnType(dart.void, [core.double, core.double]),
    onEnter: dart.fnType(dart.void, [core.double, core.double]),
    onExit: dart.fnType(dart.void, [core.double, core.double]),
    onPaint: dart.fnType(dart.void, [ui.Canvas]),
    [_drawLine]: dart.fnType(dart.void, [ui.Canvas, ui.Paint, core.int]),
    [_linePainter]: dart.fnType(ui.Paint, [ui.Paint])
  }));
  dart.setLibraryUri(charts.TrackballBehavior, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.TrackballBehavior, () => ({
    __proto__: dart.getFields(charts.TrackballBehavior.__proto__),
    enable: dart.finalFieldType(core.bool),
    lineWidth: dart.finalFieldType(core.double),
    lineColor: dart.finalFieldType(ui.Color),
    lineDashArray: dart.finalFieldType(core.List$(core.double)),
    activationMode: dart.finalFieldType(charts.ActivationMode),
    tooltipAlignment: dart.finalFieldType(charts.ChartAlignment),
    lineType: dart.finalFieldType(charts.TrackballLineType),
    tooltipDisplayMode: dart.finalFieldType(charts.TrackballDisplayMode),
    shouldAlwaysShow: dart.finalFieldType(core.bool),
    tooltipSettings: dart.fieldType(charts.InteractiveTooltip),
    hideDelay: dart.finalFieldType(core.double),
    [_position]: dart.fieldType(ui.Offset),
    [_trackballPainter]: dart.fieldType(charts._TrackballPainter),
    [_isLongPressActivated]: dart.fieldType(core.bool)
  }));
  const _getTooltipSize = dart.privateName(charts, "_getTooltipSize");
  const _calculateTrackballRect = dart.privateName(charts, "_calculateTrackballRect");
  const _calculateTooltipSize = dart.privateName(charts, "_calculateTooltipSize");
  const _drawRectandText = dart.privateName(charts, "_drawRectandText");
  const _getTrackballLabelText = dart.privateName(charts, "_getTrackballLabelText");
  const _addChartPointInfo = dart.privateName(charts, "_addChartPointInfo");
  const _triggerTrackballEvent = dart.privateName(charts, "_triggerTrackballEvent");
  const _validateNearestXValue = dart.privateName(charts, "_validateNearestXValue");
  const _validateNearestPointForAllSeries = dart.privateName(charts, "_validateNearestPointForAllSeries");
  const _getValidPoints = dart.privateName(charts, "_getValidPoints");
  const _getRectSeriesPointInfo = dart.privateName(charts, "_getRectSeriesPointInfo");
  const _getLeastX = dart.privateName(charts, "_getLeastX");
  charts._TrackballPainter = class _TrackballPainter extends custom_paint.CustomPainter {
    paint(canvas, size) {
      return this.chart.trackballBehavior.onPaint(canvas);
    }
    [_getLinePainter](trackballLinePaint) {
      return trackballLinePaint;
    }
    [_drawTrackball](canvas) {
      let t4, t4$;
      this.borderRadius = this.chart.trackballBehavior.tooltipSettings.borderRadius;
      this.pointerLength = this.chart.trackballBehavior.tooltipSettings.arrowLength;
      this.pointerWidth = this.chart.trackballBehavior.tooltipSettings.arrowWidth;
      this.isLeft = false;
      this.isRight = false;
      let height = 0.0;
      let width = 0.0;
      this.boundaryRect = this.chart[_chartAxis][_axisClipRect];
      this.totalWidth = dart.notNull(this.boundaryRect.left) + dart.notNull(this.boundaryRect.width);
      this.labelStyle = new charts.ChartTextStyle.new({color: (t4 = this.chart.trackballBehavior.tooltipSettings.textStyle.color, t4 == null ? this.chart[_chartState][_chartTheme].crosshairLabelColor : t4), fontSize: this.chart.trackballBehavior.tooltipSettings.textStyle.fontSize, fontFamily: this.chart.trackballBehavior.tooltipSettings.textStyle.fontFamily, fontStyle: this.chart.trackballBehavior.tooltipSettings.textStyle.fontStyle, fontWeight: this.chart.trackballBehavior.tooltipSettings.textStyle.fontWeight});
      for (let index = 0; index < dart.notNull(this.chartPointInfo[$length]); index = index + 1) {
        if ((this.chartPointInfo[$_get](index).series[_seriesType$] === "column" || this.chartPointInfo[$_get](index).series[_seriesType$][$contains]("stackedcolumn") || this.chartPointInfo[$_get](index).series[_seriesType$] === "rangecolumn" || this.chartPointInfo[$_get](index).series[_seriesType$] === "candle" || this.chartPointInfo[$_get](index).series[_seriesType$][$contains]("hilo")) && !dart.test(this.chart.isTransposed) || this.chartPointInfo[$_get](index).series[_seriesType$] === "bar" || this.chartPointInfo[$_get](index).series[_seriesType$][$contains]("stackedbar") && dart.test(this.chart.isTransposed)) {
          this.isHorizontalOrientation = true;
        }
        this.isRectSeries = false;
        if ((this.chartPointInfo[$_get](index).series[_seriesType$] === "column" || this.chartPointInfo[$_get](index).series[_seriesType$][$contains]("stackedcolumn") || this.chartPointInfo[$_get](index).series[_seriesType$] === "rangecolumn" || this.chartPointInfo[$_get](index).series[_seriesType$] === "candle" || this.chartPointInfo[$_get](index).series[_seriesType$][$contains]("hilo")) && dart.test(this.chart.isTransposed) || (this.chartPointInfo[$_get](index).series[_seriesType$] === "bar" || this.chartPointInfo[$_get](index).series[_seriesType$][$contains]("stackedbar")) && !dart.test(this.chart.isTransposed)) {
          this.isRectSeries = true;
        }
        if (!dart.test(this.canResetPath) && !dart.equals(this.chart.trackballBehavior.lineType, charts.TrackballLineType.none)) {
          let trackballLinePaint = ui.Paint.new();
          trackballLinePaint.color = (t4$ = this.chart.trackballBehavior.lineColor, t4$ == null ? this.chart[_chartState][_chartTheme].crosshairLineColor : t4$);
          trackballLinePaint.strokeWidth = this.chart.trackballBehavior.lineWidth;
          trackballLinePaint.style = ui.PaintingStyle.stroke;
          this.chart.trackballBehavior.lineWidth === 0 ? trackballLinePaint.color = colors$.Colors.transparent : trackballLinePaint.color = trackballLinePaint.color;
          this.chart.trackballBehavior[_drawLine](canvas, this.chart.trackballBehavior[_linePainter](trackballLinePaint), index);
        }
        let size = this[_getTooltipSize](height, width, index);
        height = size.height;
        width = size.width;
        if (dart.notNull(width) < 10) {
          width = 10.0;
          this.borderRadius = dart.notNull(this.borderRadius) > 5 ? 5.0 : this.borderRadius;
        }
        if (dart.notNull(this.borderRadius) > 15) {
          this.borderRadius = 15.0;
        }
        this.padding = 5.0;
        if (this.x != null && this.y != null && dart.test(this.chart.trackballBehavior.tooltipSettings.enable)) {
          if (dart.equals(this.chart.trackballBehavior.tooltipDisplayMode, charts.TrackballDisplayMode.groupAllPoints) && (this.chartPointInfo[$_get](index).header != null && this.chartPointInfo[$_get](index).header !== "" || this.chartPointInfo[$_get](index).label != null && this.chartPointInfo[$_get](index).label !== "")) {
            this[_calculateTrackballRect](canvas, width, height, index);
          } else {
            if (this.chartPointInfo[$_get](index).label != null && this.chartPointInfo[$_get](index).label !== "") {
              this[_calculateTrackballRect](canvas, width, height, index);
            }
          }
        }
        if (dart.equals(this.chart.trackballBehavior.tooltipDisplayMode, charts.TrackballDisplayMode.groupAllPoints)) {
          break;
        }
      }
    }
    [_getTooltipSize](height, width, index) {
      let position = new ui.Offset.new(this.chartPointInfo[$_get](index).xPosition, this.chartPointInfo[$_get](index).yPosition);
      this.stringValue = JSArrayOfString().of([]);
      let format = this.chartPointInfo[$_get](index).series[_chart].trackballBehavior.tooltipSettings.format;
      if (format != null && format[$contains]("point.x") && !format[$contains]("point.y")) {
        this.xFormat = true;
      }
      if (format != null && format[$contains]("point.x") && format[$contains]("point.y") && !format[$contains](":")) {
        this.isColon = false;
      }
      if (this.chartPointInfo[$_get](index).header != null && this.chartPointInfo[$_get](index).header !== "") {
        this.stringValue[$add](this.chartPointInfo[$_get](index).header);
      }
      if (dart.equals(this.chart.trackballBehavior.tooltipDisplayMode, charts.TrackballDisplayMode.groupAllPoints)) {
        let str1 = "";
        for (let i = 0; i < dart.notNull(this.chartPointInfo[$length]); i = i + 1) {
          if (this.chartPointInfo[$_get](i).header[$contains](":")) {
            this.headerText = true;
          }
          let isHeader = this.chartPointInfo[$_get](i).header != null && this.chartPointInfo[$_get](i).header !== "";
          let isLabel = this.chartPointInfo[$_get](i).label != null && this.chartPointInfo[$_get](i).label !== "";
          if (dart.test(this.chartPointInfo[$_get](i).series[_isIndicator])) {
            isHeader = this.chartPointInfo[$_get](0).header != null && this.chartPointInfo[$_get](0).header !== "";
            isLabel = this.chartPointInfo[$_get](0).label != null && this.chartPointInfo[$_get](0).label !== "";
          }
          let str = i === 0 && isHeader ? "\n" : "";
          let seriesType = this.chartPointInfo[$_get](i).series[_seriesType$];
          if (dart.test(this.chartPointInfo[$_get](i).series[_isIndicator]) && this.chartPointInfo[$_get](i).series.name === "rangearea") {
            str1 = i === 0 ? "\n" : "";
            continue;
          } else if ((seriesType[$contains]("hilo") || seriesType[$contains]("candle") || seriesType[$contains]("range")) && this.chartPointInfo[$_get](i).series[_chart].trackballBehavior.tooltipSettings.format == null && isLabel) {
            this.stringValue[$add]((this.chartPointInfo[$_get](index).header == null || this.chartPointInfo[$_get](index).header === "" ? "" : "\n") + (dart.str(this.chartPointInfo[$_get](i).series.name) + "\n" + dart.str(this.chartPointInfo[$_get](i).label)));
            this.divider = isHeader && isLabel;
          } else if (this.chartPointInfo[$_get](i).series.name != null) {
            if (this.chartPointInfo[$_get](i).series[_chart].trackballBehavior.tooltipSettings.format != null) {
              if (isHeader && isLabel && i === 0) {
                this.stringValue[$add]("");
              }
              if (isLabel) {
                this.stringValue[$add](this.chartPointInfo[$_get](i).label);
              }
              this.divider = isHeader && isLabel;
            } else if (this.chartPointInfo[$_get](i).label[$contains](":") && (this.chartPointInfo[$_get](i).header == null || this.chartPointInfo[$_get](i).header === "") && isLabel) {
              this.stringValue[$add](this.chartPointInfo[$_get](i).label);
              this.divider = false;
            } else {
              if (isLabel) {
                this.stringValue[$add](str1 + str + dart.notNull(this.chartPointInfo[$_get](i).series.name) + ": " + dart.notNull(this.chartPointInfo[$_get](i).label));
              }
              this.divider = this.chartPointInfo[$_get](0).header != null && this.chartPointInfo[$_get](0).header !== "" && isLabel;
            }
            if (str1 !== "") {
              str1 = "";
            }
          } else {
            if (isLabel) {
              this.stringValue[$add](this.chartPointInfo[$_get](i).label);
            }
          }
        }
        for (let i = 0; i < dart.notNull(this.stringValue[$length]); i = i + 1) {
          let measureString = this.stringValue[$_get](i);
          if (measureString[$contains]("<b>") && measureString[$contains]("</b>")) {
            measureString = measureString[$replaceAll]("<b>", "")[$replaceAll]("</b>", "");
          }
          if (dart.notNull(charts._measureText(measureString, this.labelStyle).width) > dart.notNull(width)) {
            width = charts._measureText(measureString, this.labelStyle).width;
          }
          height = dart.notNull(height) + dart.notNull(charts._measureText(measureString, this.labelStyle).height);
        }
        this.x = position.dx;
        if (dart.equals(this.chart.trackballBehavior.tooltipAlignment, charts.ChartAlignment.center)) {
          this.y = this.chart[_chartAxis][_axisClipRect].center.dy;
        } else if (dart.equals(this.chart.trackballBehavior.tooltipAlignment, charts.ChartAlignment.near)) {
          this.y = this.chart[_chartAxis][_axisClipRect].top;
        } else {
          this.y = this.chart[_chartAxis][_axisClipRect].bottom;
        }
      } else {
        this.stringValue = JSArrayOfString().of([]);
        if (this.chartPointInfo[$_get](index).label != null && this.chartPointInfo[$_get](index).label !== "") {
          this.stringValue[$add](this.chartPointInfo[$_get](index).label);
        }
        let measureString = dart.test(this.stringValue[$isNotEmpty]) ? this.stringValue[$_get](0) : null;
        if (measureString != null && measureString[$contains]("<b>") && measureString[$contains]("</b>")) {
          measureString = measureString[$replaceAll]("<b>", "")[$replaceAll]("</b>", "");
        }
        let size = charts._measureText(measureString, this.labelStyle);
        width = size.width;
        height = size.height;
        if (this.chartPointInfo[$_get](index).series[_seriesType$] === "column" || this.chartPointInfo[$_get](index).series[_seriesType$] === "bar" || this.chartPointInfo[$_get](index).series[_seriesType$] === "rangecolumn" || this.chartPointInfo[$_get](index).series[_seriesType$] === "candle" || this.chartPointInfo[$_get](index).series[_seriesType$][$contains]("hilo") || this.chartPointInfo[$_get](index).series[_seriesType$][$contains]("stacked")) {
          this.x = this.chartPointInfo[$_get](index).chartDataPoint.markerPoint.x;
          this.y = this.chartPointInfo[$_get](index).chartDataPoint.markerPoint.y;
        } else if (this.chartPointInfo[$_get](index).series[_seriesType$] === "rangearea") {
          this.x = this.chartPointInfo[$_get](index).chartDataPoint.markerPoint.x;
          this.y = (dart.notNull(this.chartPointInfo[$_get](index).chartDataPoint.markerPoint.y) + dart.notNull(this.chartPointInfo[$_get](index).chartDataPoint.markerPoint2.y)) / 2;
        } else {
          this.x = position.dx;
          this.y = position.dy;
        }
      }
      return new ui.Size.new(width, height);
    }
    [_calculateTrackballRect](canvas, width, height, index) {
      let labelRect = new ui.Rect.fromLTWH(this.x, this.y, dart.notNull(width) + 15, dart.notNull(height) + 10);
      let backgroundRect = new ui.Rect.fromLTWH(dart.notNull(this.boundaryRect.left) + 25, this.boundaryRect.top, dart.notNull(this.boundaryRect.width) - 50, this.boundaryRect.height);
      let leftRect = new ui.Rect.fromLTWH(dart.notNull(this.boundaryRect.left) - 5, this.boundaryRect.top, dart.notNull(backgroundRect.left) - (dart.notNull(this.boundaryRect.left) - 5), this.boundaryRect.height);
      let rightRect = new ui.Rect.fromLTWH(backgroundRect.right, this.boundaryRect.top, dart.notNull(this.boundaryRect.right) + 5 - dart.notNull(backgroundRect.right), this.boundaryRect.height);
      if (dart.test(leftRect.contains(new ui.Offset.new(this.x, this.y)))) {
        this.isLeft = true;
        this.isRight = false;
      } else if (dart.test(rightRect.contains(new ui.Offset.new(this.x, this.y)))) {
        this.isLeft = false;
        this.isRight = true;
      }
      if (dart.notNull(this.y) > dart.notNull(this.pointerLength) + dart.notNull(labelRect.height)) {
        this[_calculateTooltipSize](labelRect);
      } else {
        this.isTop = false;
        if (dart.test(this.isHorizontalOrientation)) {
          this.xPos = dart.notNull(this.x) - dart.notNull(labelRect.width) / 2;
          this.yPos = dart.notNull(this.y) + dart.notNull(this.pointerLength) + dart.notNull(this.padding);
          this.nosePointX = labelRect.left;
          this.nosePointY = dart.notNull(labelRect.top) + dart.notNull(this.padding);
          let tooltipRightEnd = dart.notNull(this.x) + dart.notNull(labelRect.width) / 2;
          this.xPos = dart.notNull(this.xPos) < dart.notNull(this.boundaryRect.left) ? this.boundaryRect.left : tooltipRightEnd > dart.notNull(this.totalWidth) ? dart.notNull(this.totalWidth) - dart.notNull(labelRect.width) : this.xPos;
        } else {
          if (dart.equals(this.chart.trackballBehavior.tooltipDisplayMode, charts.TrackballDisplayMode.groupAllPoints)) {
            this.xPos = dart.notNull(this.x) - dart.notNull(labelRect.width) / 2;
            this.yPos = this.y;
          } else {
            this.xPos = dart.notNull(this.x) + dart.notNull(this.padding) + dart.notNull(this.pointerLength);
            this.yPos = dart.notNull(this.y) + dart.notNull(this.pointerLength) / 2 + dart.notNull(this.padding);
          }
          this.nosePointX = labelRect.left;
          this.nosePointY = labelRect.top;
          let tooltipRightEnd = dart.notNull(this.x) + dart.notNull(labelRect.width);
          if (dart.notNull(this.xPos) < dart.notNull(this.boundaryRect.left)) {
            this.xPos = dart.equals(this.chart.trackballBehavior.tooltipDisplayMode, charts.TrackballDisplayMode.groupAllPoints) ? dart.notNull(this.boundaryRect.left) + dart.notNull(this.groupAllPadding) : this.boundaryRect.left;
          } else if (tooltipRightEnd > dart.notNull(this.totalWidth)) {
            this.xPos = dart.equals(this.chart.trackballBehavior.tooltipDisplayMode, charts.TrackballDisplayMode.groupAllPoints) ? dart.notNull(this.xPos) - dart.notNull(labelRect.width) / 2 - dart.notNull(this.groupAllPadding) : dart.notNull(this.xPos) - dart.notNull(labelRect.width) - 2 * dart.notNull(this.padding) - 2 * dart.notNull(this.pointerLength);
            this.isRight = true;
          } else {
            this.xPos = dart.equals(this.chart.trackballBehavior.tooltipDisplayMode, charts.TrackballDisplayMode.groupAllPoints) && dart.equals(this.chart.trackballBehavior.tooltipAlignment, charts.ChartAlignment.near) ? dart.notNull(this.x) + dart.notNull(this.padding) + dart.notNull(this.pointerLength) : this.xPos;
          }
        }
      }
      if (!dart.equals(this.chart.trackballBehavior.tooltipDisplayMode, charts.TrackballDisplayMode.groupAllPoints)) {
        if (dart.notNull(this.xPos) <= dart.notNull(this.boundaryRect.left) + 5) {
          this.xPos = dart.notNull(this.xPos) + 10;
        } else if (dart.notNull(this.xPos) + dart.notNull(labelRect.width) >= dart.notNull(this.totalWidth) - 5) {
          this.xPos = dart.notNull(this.xPos) - 10;
        }
      }
      labelRect = new ui.Rect.fromLTWH(this.xPos, this.yPos, labelRect.width, labelRect.height);
      this[_drawBackground](canvas, labelRect, this.nosePointX, this.nosePointY, this.borderRadius, this.isTop, this.backgroundPath, this.isLeft, this.isRight, index);
    }
    [_calculateTooltipSize](labelRect) {
      this.isTop = true;
      if (dart.test(this.isHorizontalOrientation)) {
        this.xPos = dart.notNull(this.x) - dart.notNull(labelRect.width) / 2;
        this.yPos = dart.notNull(this.y) - dart.notNull(labelRect.height) - dart.notNull(this.padding);
        this.nosePointY = dart.notNull(labelRect.top) - dart.notNull(this.padding);
        this.nosePointX = labelRect.left;
        let tooltipRightEnd = dart.notNull(this.x) + dart.notNull(labelRect.width) / 2;
        this.xPos = dart.notNull(this.xPos) < dart.notNull(this.boundaryRect.left) ? this.boundaryRect.left : tooltipRightEnd > dart.notNull(this.totalWidth) ? dart.notNull(this.totalWidth) - dart.notNull(labelRect.width) : this.xPos;
        this.yPos = dart.notNull(this.yPos) - dart.notNull(this.pointerLength);
        if (dart.notNull(this.yPos) + dart.notNull(labelRect.height) >= dart.notNull(this.boundaryRect.bottom)) {
          this.yPos = dart.notNull(this.boundaryRect.bottom) - dart.notNull(labelRect.height);
        }
      } else {
        this.xPos = dart.notNull(this.x) + dart.notNull(this.padding) + dart.notNull(this.pointerLength);
        this.yPos = dart.notNull(this.y) - dart.notNull(labelRect.height) / 2;
        this.nosePointY = labelRect.top;
        this.nosePointX = labelRect.left;
        let tooltipRightEnd = dart.notNull(this.xPos) + dart.notNull(labelRect.width);
        if (dart.notNull(this.xPos) < dart.notNull(this.boundaryRect.left)) {
          this.xPos = dart.equals(this.chart.trackballBehavior.tooltipDisplayMode, charts.TrackballDisplayMode.groupAllPoints) && dart.equals(this.chart.trackballBehavior.tooltipAlignment, charts.ChartAlignment.far) ? dart.notNull(this.boundaryRect.left) + dart.notNull(this.groupAllPadding) : this.boundaryRect.left;
        } else if (tooltipRightEnd > dart.notNull(this.totalWidth)) {
          this.xPos = dart.equals(this.chart.trackballBehavior.tooltipDisplayMode, charts.TrackballDisplayMode.groupAllPoints) && dart.equals(this.chart.trackballBehavior.tooltipAlignment, charts.ChartAlignment.far) ? dart.notNull(this.xPos) - dart.notNull(labelRect.width) / 2 - dart.notNull(this.groupAllPadding) : dart.notNull(this.xPos) - dart.notNull(labelRect.width) - 2 * dart.notNull(this.padding) - 2 * dart.notNull(this.pointerLength);
          this.isRight = true;
        } else {
          this.xPos = this.xPos;
        }
        if (dart.notNull(this.yPos) + dart.notNull(labelRect.height) >= dart.notNull(this.boundaryRect.bottom)) {
          this.yPos = dart.notNull(this.boundaryRect.bottom) - dart.notNull(labelRect.height);
        }
      }
    }
    [_drawTrackBallLine](canvas, paint, index) {
      let dashArrayPath = ui.Path.new();
      if (dart.equals(this.chart.trackballBehavior.lineType, charts.TrackballLineType.vertical)) {
        if (dart.test(this.isRectSeries)) {
          dashArrayPath.moveTo(this.chart.trackballBehavior[_position].dx, this.chart[_chartAxis][_axisClipRect].top);
          dashArrayPath.lineTo(this.chart.trackballBehavior[_position].dx, this.chart[_chartAxis][_axisClipRect].bottom);
          this.chart.trackballBehavior.lineDashArray != null ? charts._drawDashedLine(canvas, this.chart.trackballBehavior.lineDashArray, paint, dashArrayPath) : canvas.drawPath(dashArrayPath, paint);
        } else if (dart.test(this.chart.isTransposed)) {
          dashArrayPath.moveTo(this.chart.trackballBehavior[_position].dx, this.chart[_chartAxis][_axisClipRect].top);
          dashArrayPath.lineTo(this.chart.trackballBehavior[_position].dx, this.chart[_chartAxis][_axisClipRect].bottom);
          this.chart.trackballBehavior.lineDashArray != null ? charts._drawDashedLine(canvas, this.chart.trackballBehavior.lineDashArray, paint, dashArrayPath) : canvas.drawPath(dashArrayPath, paint);
        } else {
          dashArrayPath.moveTo(this.chartPointInfo[$_get](index).xPosition, this.chart[_chartAxis][_axisClipRect].top);
          dashArrayPath.lineTo(this.chartPointInfo[$_get](index).xPosition, this.chart[_chartAxis][_axisClipRect].bottom);
          this.chart.trackballBehavior.lineDashArray != null ? charts._drawDashedLine(canvas, this.chart.trackballBehavior.lineDashArray, paint, dashArrayPath) : canvas.drawPath(dashArrayPath, paint);
        }
      } else {
        if (dart.test(this.isRectSeries)) {
          dashArrayPath.moveTo(this.chart[_chartAxis][_axisClipRect].left, this.chartPointInfo[$_get](index).yPosition);
          dashArrayPath.lineTo(this.chart[_chartAxis][_axisClipRect].right, this.chartPointInfo[$_get](index).yPosition);
          this.chart.trackballBehavior.lineDashArray != null ? charts._drawDashedLine(canvas, this.chart.trackballBehavior.lineDashArray, paint, dashArrayPath) : canvas.drawPath(dashArrayPath, paint);
        } else if (dart.test(this.chart.isTransposed)) {
          dashArrayPath.moveTo(this.chart[_chartAxis][_axisClipRect].left, this.chartPointInfo[$_get](index).yPosition);
          dashArrayPath.lineTo(this.chart[_chartAxis][_axisClipRect].right, this.chartPointInfo[$_get](index).yPosition);
          this.chart.trackballBehavior.lineDashArray != null ? charts._drawDashedLine(canvas, this.chart.trackballBehavior.lineDashArray, paint, dashArrayPath) : canvas.drawPath(dashArrayPath, paint);
        } else {
          dashArrayPath.moveTo(this.chart[_chartAxis][_axisClipRect].left, this.chart.trackballBehavior[_position].dy);
          dashArrayPath.lineTo(this.chart[_chartAxis][_axisClipRect].right, this.chart.trackballBehavior[_position].dy);
          this.chart.trackballBehavior.lineDashArray != null ? charts._drawDashedLine(canvas, this.chart.trackballBehavior.lineDashArray, paint, dashArrayPath) : canvas.drawPath(dashArrayPath, paint);
        }
      }
    }
    [_drawBackground](canvas, labelRect, xPos, yPos, borderRadius, isTop, backgroundPath, isLeft, isRight, index) {
      let startArrow = this.pointerLength;
      let endArrow = this.pointerLength;
      if (dart.test(isTop)) {
        this[_drawTooltip](canvas, labelRect, xPos, yPos, dart.notNull(xPos) - dart.notNull(startArrow), dart.notNull(yPos) - dart.notNull(startArrow), dart.notNull(xPos) + dart.notNull(endArrow), dart.notNull(yPos) - dart.notNull(endArrow), borderRadius, backgroundPath, isLeft, isRight, index);
      } else {
        this[_drawTooltip](canvas, labelRect, xPos, yPos, dart.notNull(xPos) - dart.notNull(startArrow), dart.notNull(yPos) + dart.notNull(startArrow), dart.notNull(xPos) + dart.notNull(endArrow), dart.notNull(yPos) + dart.notNull(endArrow), borderRadius, backgroundPath, isLeft, isRight, index);
      }
    }
    [_drawTooltip](canvas, rectF, xPos, yPos, startX, startY, endX, endY, borderRadius, backgroundPath, isLeft, isRight, index) {
      backgroundPath.reset();
      if (!dart.test(this.canResetPath) && !dart.equals(this.chart.trackballBehavior.tooltipDisplayMode, charts.TrackballDisplayMode.none)) {
        if (!dart.equals(this.chart.trackballBehavior.tooltipDisplayMode, charts.TrackballDisplayMode.groupAllPoints)) {
          if (dart.test(this.isHorizontalOrientation)) {
            if (dart.test(isLeft)) {
              startX = dart.notNull(rectF.left) + dart.notNull(borderRadius);
              endX = dart.notNull(startX) + dart.notNull(this.pointerWidth);
            } else if (dart.test(isRight)) {
              endX = dart.notNull(rectF.right) - dart.notNull(borderRadius);
              startX = dart.notNull(endX) - dart.notNull(this.pointerWidth);
            }
            backgroundPath.moveTo(dart.notNull(rectF.left) + dart.notNull(rectF.width) / 2 - dart.notNull(this.pointerWidth), startY);
            backgroundPath.lineTo(xPos, yPos);
            backgroundPath.lineTo(dart.notNull(rectF.right) - dart.notNull(rectF.width) / 2 + dart.notNull(this.pointerWidth), endY);
          } else {
            if (dart.test(isRight)) {
              backgroundPath.moveTo(rectF.right, dart.notNull(rectF.top) + dart.notNull(rectF.height) / 2 - dart.notNull(this.pointerWidth));
              backgroundPath.lineTo(rectF.right, dart.notNull(rectF.bottom) - dart.notNull(rectF.height) / 2 + dart.notNull(this.pointerWidth));
              backgroundPath.lineTo(dart.notNull(rectF.right) + dart.notNull(this.pointerLength), yPos);
              backgroundPath.lineTo(dart.notNull(rectF.right) + dart.notNull(this.pointerLength), yPos);
              backgroundPath.lineTo(rectF.right, dart.notNull(rectF.top) + dart.notNull(rectF.height) / 2 - dart.notNull(this.pointerWidth));
            } else {
              backgroundPath.moveTo(rectF.left, dart.notNull(rectF.top) + dart.notNull(rectF.height) / 2 - dart.notNull(this.pointerWidth));
              backgroundPath.lineTo(rectF.left, dart.notNull(rectF.bottom) - dart.notNull(rectF.height) / 2 + dart.notNull(this.pointerWidth));
              backgroundPath.lineTo(dart.notNull(rectF.left) - dart.notNull(this.pointerLength), yPos);
              backgroundPath.lineTo(dart.notNull(rectF.left) - dart.notNull(this.pointerLength), yPos);
              backgroundPath.lineTo(rectF.left, dart.notNull(rectF.top) + dart.notNull(rectF.height) / 2 - dart.notNull(this.pointerWidth));
            }
          }
        }
        this[_drawRectandText](canvas, backgroundPath, rectF, index);
        xPos = null;
        yPos = null;
      }
    }
    [_drawRectandText](canvas, backgroundPath, rect, index) {
      let t4, t4$;
      let tooltipRect = new ui.RRect.fromRectAndCorners(rect, {bottomLeft: new ui.Radius.circular(this.borderRadius), bottomRight: new ui.Radius.circular(this.borderRadius), topLeft: new ui.Radius.circular(this.borderRadius), topRight: new ui.Radius.circular(this.borderRadius)});
      backgroundPath.addRRect(tooltipRect);
      let fillPaint = (t4 = ui.Paint.new(), t4.color = this.chart.trackballBehavior.tooltipSettings.color != null ? this.chart.trackballBehavior.tooltipSettings.color : this.chartPointInfo[$_get](index).series.color != null ? this.chartPointInfo[$_get](index).series.color : this.chart[_chartState][_chartTheme].crosshairBackgroundColor, t4.isAntiAlias = false, t4.style = ui.PaintingStyle.fill, t4);
      let stokePaint = (t4$ = ui.Paint.new(), t4$.color = this.chart.trackballBehavior.tooltipSettings.borderColor != null ? this.chart.trackballBehavior.tooltipSettings.borderColor : this.chartPointInfo[$_get](index).series.color != null ? this.chartPointInfo[$_get](index).series.color : this.chart[_chartState][_chartTheme].crosshairBackgroundColor, t4$.strokeWidth = this.chart.trackballBehavior.tooltipSettings.borderWidth, t4$.strokeCap = ui.StrokeCap.butt, t4$.isAntiAlias = false, t4$.style = ui.PaintingStyle.stroke, t4$);
      canvas.drawPath(backgroundPath, stokePaint);
      canvas.drawPath(backgroundPath, fillPaint);
      let dividerPaint = ui.Paint.new();
      dividerPaint.color = colors$.Colors.white;
      dividerPaint.strokeWidth = 1.0;
      dividerPaint.style = ui.PaintingStyle.stroke;
      if (dart.equals(this.chart.trackballBehavior.tooltipDisplayMode, charts.TrackballDisplayMode.groupAllPoints) && this.chart.series[$_get](index).name != null && dart.test(this.divider)) {
        let headerResult = charts._measureText(this.stringValue[$_get](0), this.labelStyle);
        canvas.drawLine(new ui.Offset.new(dart.notNull(tooltipRect.left) + 10, dart.notNull(tooltipRect.top) + dart.notNull(headerResult.height) + 10), new ui.Offset.new(dart.notNull(tooltipRect.right) - 10, dart.notNull(tooltipRect.top) + dart.notNull(headerResult.height) + 10), dividerPaint);
      }
      let eachTextHeight = 0.0;
      let labelSize = null;
      let totalHeight = 0.0;
      for (let i = 0; i < dart.notNull(this.stringValue[$length]); i = i + 1) {
        labelSize = charts._measureText(this.stringValue[$_get](i), this.labelStyle);
        totalHeight = totalHeight + dart.notNull(labelSize.height);
      }
      eachTextHeight = dart.notNull(tooltipRect.top) + dart.notNull(tooltipRect.height) / 2 - totalHeight / 2;
      for (let i = 0; i < dart.notNull(this.stringValue[$length]); i = i + 1) {
        this.labelStyle.fontWeight = ui.FontWeight.normal;
        labelSize = charts._measureText(this.stringValue[$_get](i), this.labelStyle);
        eachTextHeight = eachTextHeight + dart.notNull(labelSize.height);
        if (!this.stringValue[$_get](i)[$contains](":") && !this.stringValue[$_get](i)[$contains]("<b>") && !this.stringValue[$_get](i)[$contains]("</b>")) {
          this.labelStyle.fontWeight = ui.FontWeight.bold;
          charts._drawText(canvas, this.stringValue[$_get](i), new ui.Offset.new(dart.notNull(tooltipRect.left) + dart.notNull(tooltipRect.width) / 2 - dart.notNull(labelSize.width) / 2, eachTextHeight - dart.notNull(labelSize.height)), this.labelStyle, 0);
        } else {
          if (this.stringValue[$_get](i) != null) {
            let str = this.stringValue[$_get](i)[$split]("\n");
            let padding = 0.0;
            if (dart.notNull(str[$length]) > 1) {
              for (let j = 0; j < dart.notNull(str[$length]); j = j + 1) {
                let str1 = str[$_get](j)[$split](":");
                if (dart.notNull(str1[$length]) > 1) {
                  for (let k = 0; k < dart.notNull(str1[$length]); k = k + 1) {
                    let width = k > 0 ? charts._measureText(str1[$_get](k - 1), this.labelStyle).width : 0.0;
                    str1[$_set](k, k === 1 ? ":" + dart.notNull(str1[$_get](k)) : str1[$_get](k));
                    this.labelStyle.fontWeight = k > 0 ? ui.FontWeight.bold : ui.FontWeight.normal;
                    charts._drawText(canvas, str1[$_get](k), new ui.Offset.new(dart.notNull(tooltipRect.left) + 4 + dart.notNull(width), eachTextHeight - dart.notNull(labelSize.height) + padding), this.labelStyle, 0);
                    padding = k > 0 ? padding + (dart.notNull(this.labelStyle.fontSize) + dart.notNull(this.labelStyle.fontSize) * 0.15) : padding;
                  }
                } else {
                  this.labelStyle.fontWeight = ui.FontWeight.bold;
                  charts._drawText(canvas, str1[$_get](dart.notNull(str1[$length]) - 1), new ui.Offset.new(dart.notNull(tooltipRect.left) + 4, eachTextHeight - dart.notNull(labelSize.height) + padding), this.labelStyle, 0);
                  padding = padding + (dart.notNull(this.labelStyle.fontSize) + dart.notNull(this.labelStyle.fontSize) * 0.15);
                }
              }
            } else {
              let str1 = str[$_get](dart.notNull(str[$length]) - 1)[$split](":");
              let boldString = JSArrayOfString().of([]);
              if (str[$_get](dart.notNull(str[$length]) - 1)[$contains]("<b>")) {
                str1 = JSArrayOfString().of([]);
                let boldSplit = str[$_get](dart.notNull(str[$length]) - 1)[$split]("</b>");
                for (let i = 0; i < dart.notNull(boldSplit[$length]); i = i + 1) {
                  if (boldSplit[$_get](i) !== "") {
                    boldString[$add](boldSplit[$_get](i)[$substring](boldSplit[$_get](i)[$indexOf]("<b>") + 3, boldSplit[$_get](i).length));
                    let str2 = boldSplit[$_get](i)[$split]("<b>");
                    for (let s = 0; s < dart.notNull(str2[$length]); s = s + 1) {
                      str1[$add](str2[$_get](s));
                    }
                  }
                }
              } else if (dart.notNull(str1[$length]) > 2 || dart.test(this.xFormat) || !dart.test(this.isColon)) {
                str1 = JSArrayOfString().of([]);
                str1[$add](str[$_get](dart.notNull(str[$length]) - 1));
              }
              let previousWidth = 0.0;
              for (let j = 0; j < dart.notNull(str1[$length]); j = j + 1) {
                let isBold = false;
                for (let i = 0; i < dart.notNull(boldString[$length]); i = i + 1) {
                  if (str1[$_get](j) == boldString[$_get](i)) {
                    isBold = true;
                    break;
                  }
                }
                let width = j > 0 ? charts._measureText(str1[$_get](j - 1), this.labelStyle).width : 0.0;
                previousWidth = previousWidth + dart.notNull(width);
                let colon = dart.test(boldString[$isNotEmpty]) ? "" : j > 0 ? ": " : "";
                this.labelStyle.fontWeight = dart.test(this.headerText) || dart.test(this.xFormat) || isBold ? ui.FontWeight.bold : j > 0 ? dart.test(boldString[$isNotEmpty]) ? ui.FontWeight.normal : ui.FontWeight.bold : ui.FontWeight.normal;
                charts._drawText(canvas, colon + dart.notNull(str1[$_get](j)), new ui.Offset.new(dart.notNull(tooltipRect.left) + 4 + dart.notNull(previousWidth > dart.notNull(width) ? previousWidth : width), eachTextHeight - dart.notNull(labelSize.height)), this.labelStyle, 0);
                this.headerText = false;
              }
            }
          }
        }
      }
    }
    shouldRepaint(oldDelegate) {
      custom_paint.CustomPainter._check(oldDelegate);
      return true;
    }
    [_generateAllPoints](position) {
      let t6;
      this.chartPointInfo = JSArrayOf_ChartPointInfo().of([]);
      let seriesBounds = this.chart[_chartAxis][_axisClipRect];
      if (dart.notNull(position.dx) >= dart.notNull(seriesBounds.left) && dart.notNull(position.dx) <= dart.notNull(seriesBounds.right) && dart.notNull(position.dy) >= dart.notNull(seriesBounds.top) && dart.notNull(position.dy) <= dart.notNull(seriesBounds.bottom)) {
        this.chart.trackballBehavior[_position] = position;
        let xPos = 0.0;
        let yPos = 0.0;
        let leastX = 0.0;
        let seriesIndex = 0;
        let seriesAxes = JSArrayOfChartAxis().of([]);
        for (let t4 of this.chart[_chartSeries].visibleSeries) {
          let series = charts.XyDataSeries._check(t4);
          L3: {
            if (dart.test(series[_visible])) {
              let visibleSeries = series;
              let chartAxis = visibleSeries[_xAxis$];
              if (chartAxis == null) {
                break L3;
              }
              if (!dart.test(seriesAxes[$contains](chartAxis))) {
                seriesAxes[$add](chartAxis);
                for (let t5 of chartAxis[_series]) {
                  let axisSeries = charts.XyDataSeries._check(t5);
                  L4: {
                    let cartesianSeries = axisSeries;
                    if (dart.equals(axisSeries[_visible], false) || dart.test(axisSeries[_dataPoints$][$isEmpty]) && !dart.test(axisSeries[_isRectSeries])) {
                      break L4;
                    }
                    if (dart.test(cartesianSeries[_dataPoints$][$isNotEmpty])) {
                      let nearestDataPoints = charts._getNearestChartPoints(position.dx, position.dy, chartAxis, visibleSeries[_yAxis$], cartesianSeries);
                      if (nearestDataPoints == null) {
                        break L4;
                      }
                      for (let dataPoint of nearestDataPoints) {
                        let index = axisSeries[_dataPoints$][$indexOf](charts.CartesianChartPoint._check(dataPoint));
                        let xValue = core.num._check(cartesianSeries[_dataPoints$][$_get](index).xValue);
                        let yValue = core.num._check(cartesianSeries[_dataPoints$][$_get](index).yValue);
                        let highValue = core.num._check(cartesianSeries[_dataPoints$][$_get](index).high);
                        let lowValue = core.num._check(cartesianSeries[_dataPoints$][$_get](index).low);
                        let openValue = core.num._check(cartesianSeries[_dataPoints$][$_get](index).open);
                        let closeValue = core.num._check(cartesianSeries[_dataPoints$][$_get](index).close);
                        let seriesName = (t6 = cartesianSeries.name, t6 == null ? "Series " + dart.str(seriesIndex) : t6);
                        let bubbleSize = cartesianSeries[_dataPoints$][$_get](index).bubbleSize;
                        let cumulativeValue = cartesianSeries[_dataPoints$][$_get](index).cumulativeValue;
                        let axisClipRect = charts._calculatePlotOffset(cartesianSeries[_chart][_chartAxis][_axisClipRect], new ui.Offset.new(cartesianSeries[_xAxis$].plotOffset, cartesianSeries[_yAxis$].plotOffset));
                        xPos = charts._calculatePoint(xValue, yValue, cartesianSeries[_xAxis$], cartesianSeries[_yAxis$], this.chart[_requireInvertedAxis], cartesianSeries, axisClipRect).x;
                        if (!xPos[$toDouble]()[$isNaN]) {
                          if (seriesIndex === 0 || dart.notNull(leastX) - dart.notNull(position.dx) > dart.notNull(leastX) - dart.notNull(xPos)) {
                            leastX = xPos;
                          }
                          let labelValue = this[_getTrackballLabelText](cartesianSeries, xValue, yValue, lowValue, highValue, openValue, closeValue, seriesName, bubbleSize, cumulativeValue, dataPoint);
                          yPos = charts._calculatePoint(xValue, yValue, cartesianSeries[_xAxis$], cartesianSeries[_yAxis$], this.chart[_requireInvertedAxis], cartesianSeries, axisClipRect).y;
                          let rect = seriesBounds.intersect(new ui.Rect.fromLTWH(dart.notNull(xPos) - 1, dart.notNull(yPos) - 1, 2.0, 2.0));
                          if (dart.test(seriesBounds.contains(new ui.Offset.new(xPos, yPos))) || dart.test(seriesBounds.overlaps(rect))) {
                            this[_addChartPointInfo](cartesianSeries, xPos, yPos, index, labelValue);
                            this[_triggerTrackballEvent]();
                            if (dart.equals(this.chart.trackballBehavior.tooltipDisplayMode, charts.TrackballDisplayMode.groupAllPoints) && dart.notNull(leastX) >= dart.notNull(seriesBounds.left)) {
                              dart.test(this.chart[_requireInvertedAxis]) ? yPos = leastX : xPos = leastX;
                            }
                          }
                        }
                      }
                      seriesIndex = seriesIndex + 1;
                    }
                    this[_validateNearestXValue](leastX, series, position.dx, position.dy);
                  }
                }
                if (dart.test(this.chartPointInfo[$isNotEmpty])) {
                  if (!dart.equals(this.chart.trackballBehavior.tooltipDisplayMode, charts.TrackballDisplayMode.groupAllPoints)) {
                    dart.test(this.chart[_requireInvertedAxis]) ? this.chartPointInfo[$sort](dart.fn((a, b) => a.xPosition[$compareTo](b.xPosition), _ChartPointInfoAnd_ChartPointInfoToint())) : this.chartPointInfo[$sort](dart.fn((a, b) => a.yPosition[$compareTo](b.yPosition), _ChartPointInfoAnd_ChartPointInfoToint()));
                  }
                  if (dart.equals(this.chart.trackballBehavior.tooltipDisplayMode, charts.TrackballDisplayMode.nearestPoint) || dart.test(series[_isRectSeries]) && !dart.equals(this.chart.trackballBehavior.tooltipDisplayMode, charts.TrackballDisplayMode.groupAllPoints)) {
                    this[_validateNearestPointForAllSeries](leastX, this.chartPointInfo, position.dx, position.dy);
                  }
                }
              }
            }
          }
        }
      }
      this.chartPointInfo = ListOf_ChartPointInfo()._check(this[_getValidPoints](this.chartPointInfo, position));
    }
    [_getValidPoints](points, position) {
      let validPoints = JSArrayOf_ChartPointInfo().of([]);
      for (let t6 of points) {
        let point = charts._ChartPointInfo._check(t6);
        if (dart.test(validPoints[$isEmpty])) {
          validPoints[$add](point);
        } else if (dart.equals(validPoints[$_get](0).series[_xAxis$], point.series[_xAxis$])) {
          if (!dart.test(point.series[_chart][_requireInvertedAxis])) {
            if ((dart.notNull(validPoints[$_get](0).xPosition) - dart.notNull(position.dx))[$abs]() === (dart.notNull(point.xPosition) - dart.notNull(position.dx))[$abs]()) {
              validPoints[$add](point);
            }
          } else if ((dart.notNull(validPoints[$_get](0).yPosition) - dart.notNull(position.dy))[$abs]() === (dart.notNull(point.yPosition) - dart.notNull(position.dy))[$abs]()) {
            validPoints[$add](point);
          }
        } else if ((dart.notNull(validPoints[$_get](0).xPosition) - dart.notNull(position.dx))[$abs]() > (dart.notNull(point.xPosition) - dart.notNull(position.dx))[$abs]()) {
          validPoints[$clear]();
          validPoints[$add](point);
        } else if ((dart.notNull(validPoints[$_get](0).xPosition) - dart.notNull(position.dx))[$abs]() === (dart.notNull(point.xPosition) - dart.notNull(position.dx))[$abs]()) {
          if ((dart.notNull(validPoints[$_get](0).yPosition) - dart.notNull(position.dy))[$abs]() > (dart.notNull(point.yPosition) - dart.notNull(position.dy))[$abs]()) {
            validPoints[$clear]();
            validPoints[$add](point);
          }
        }
      }
      return validPoints;
    }
    [_getTrackballLabelText](cartesianSeries, xValue, yValue, lowValue, highValue, openValue, closeValue, seriesName, bubbleSize, cumulativeValue, dataPoint) {
      let t7, t7$;
      let labelValue = null;
      let digits = this.chart.trackballBehavior.tooltipSettings.decimalPlaces;
      if (this.chart.trackballBehavior.tooltipSettings.format != null) {
        let x = null;
        let axis = cartesianSeries[_xAxis$];
        if (charts.DateTimeAxis.is(axis)) {
          let dateFormat = (t7 = axis.dateFormat, t7 == null ? axis[_getLabelFormat](axis) : t7);
          x = dateFormat.format(new core.DateTime.fromMillisecondsSinceEpoch(dart.asInt(xValue)));
        } else if (charts.CategoryAxis.is(axis)) {
          x = dart.dload(dataPoint, 'x');
        }
        labelValue = this.chart.trackballBehavior.tooltipSettings.format[$replaceAll]("point.x", dart.toString((t7$ = x, t7$ == null ? xValue : t7$)))[$replaceAll]("point.y", core.String._check(charts._getLabelValue(yValue, cartesianSeries[_yAxis$], digits)))[$replaceAll]("point.high", dart.toString(highValue))[$replaceAll]("point.low", dart.toString(lowValue))[$replaceAll]("point.open", dart.toString(openValue))[$replaceAll]("point.close", dart.toString(closeValue))[$replaceAll]("{", "")[$replaceAll]("}", "")[$replaceAll]("series.name", seriesName)[$replaceAll]("point.size", dart.toString(bubbleSize))[$replaceAll]("point.cumulativeValue", dart.toString(cumulativeValue));
      } else {
        labelValue = core.String._check(!cartesianSeries[_seriesType$][$contains]("range") && !cartesianSeries[_seriesType$][$contains]("candle") && !cartesianSeries[_seriesType$][$contains]("hilo") ? charts._getLabelValue(yValue, cartesianSeries[_yAxis$], digits) : cartesianSeries[_seriesType$] === "hiloopenclose" || cartesianSeries[_seriesType$][$contains]("candle") ? "High: " + dart.toString(highValue) + "\n" + "Low: " + dart.toString(lowValue) + "\n" + "Open: " + dart.toString(openValue) + "\n" + "Close: " + dart.toString(closeValue) : "High: " + dart.toString(highValue) + "\n" + "Low: " + dart.toString(lowValue));
      }
      return labelValue;
    }
    [_triggerTrackballEvent]() {
      if (this.chart.onTrackballPositionChanging != null) {
        this.chart[_chartPointInfo] = this.chart.trackballBehavior[_trackballPainter].chartPointInfo;
        for (let index = 0; index < dart.notNull(this.chart[_chartPointInfo][$length]); index = index + 1) {
          let chartPoint = null;
          chartPoint = new charts.TrackballArgs.new();
          chartPoint.chartPointInfo = this.chart[_chartPointInfo][$_get](index);
          this.chart.onTrackballPositionChanging(chartPoint);
          this.chart[_chartPointInfo][$_get](index).label = chartPoint.chartPointInfo.label;
          this.chart[_chartPointInfo][$_get](index).header = chartPoint.chartPointInfo.header;
        }
      }
    }
    [_validateNearestPointForAllSeries](leastX, trackballInfo, touchXPos, touchYPos) {
      let xPos = 0.0;
      let tempTrackballInfo = ListOf_ChartPointInfo().from(trackballInfo);
      for (let i = 0; i < dart.notNull(tempTrackballInfo[$length]); i = i + 1) {
        let pointInfo = tempTrackballInfo[$_get](i);
        let xValues = JSArrayOfnum().of([]);
        let yValues = JSArrayOfnum().of([]);
        for (let i = 0; i < dart.notNull(pointInfo.series[_dataPoints$][$length]); i = i + 1) {
          xValues[$add](core.num._check(pointInfo.series[_dataPoints$][$_get](i).xValue));
          yValues[$add](core.num._check(pointInfo.series[_dataPoints$][$_get](i).yValue));
        }
        let xValue = xValues[$_get](pointInfo.dataPointIndex);
        let yValue = yValues[$_get](pointInfo.dataPointIndex);
        let axisClipRect = charts._calculatePlotOffset(pointInfo.series[_chart][_chartAxis][_axisClipRect], new ui.Offset.new(pointInfo.series[_xAxis$].plotOffset, pointInfo.series[_yAxis$].plotOffset));
        xPos = charts._calculatePoint(xValue, yValue, pointInfo.series[_xAxis$], pointInfo.series[_yAxis$], this.chart[_requireInvertedAxis], pointInfo.series, axisClipRect).x;
        trackballInfo = this[_getRectSeriesPointInfo](trackballInfo, pointInfo, xValue, yValue, touchXPos, leastX, axisClipRect);
        if (!dart.equals(this.chart.trackballBehavior.tooltipDisplayMode, charts.TrackballDisplayMode.floatAllPoints) && !dart.test(pointInfo.series[_chart][_requireInvertedAxis])) {
          if (leastX != xPos) {
            trackballInfo[$remove](pointInfo);
          }
          let pointInfoIndex = tempTrackballInfo[$indexOf](pointInfo);
          let yPos = touchYPos;
          if (dart.notNull(pointInfoIndex) < dart.notNull(tempTrackballInfo[$length]) - 1) {
            let nextPointInfo = tempTrackballInfo[$_get](dart.notNull(pointInfoIndex) + 1);
            if (nextPointInfo.yPosition == pointInfo.yPosition || dart.notNull(pointInfo.yPosition) > dart.notNull(yPos) && pointInfoIndex === 0) {
              continue;
            }
            if (!(dart.notNull(yPos) < dart.notNull(nextPointInfo.yPosition) - (dart.notNull(nextPointInfo.yPosition) - dart.notNull(pointInfo.yPosition)) / 2)) {
              trackballInfo[$remove](pointInfo);
            } else if (pointInfoIndex !== 0) {
              let previousPointInfo = tempTrackballInfo[$_get](dart.notNull(pointInfoIndex) - 1);
              if (dart.notNull(yPos) < dart.notNull(pointInfo.yPosition) - (dart.notNull(pointInfo.yPosition) - dart.notNull(previousPointInfo.yPosition)) / 2) {
                trackballInfo[$remove](pointInfo);
              }
            }
          } else {
            if (pointInfoIndex !== 0 && pointInfoIndex === dart.notNull(tempTrackballInfo[$length]) - 1) {
              let previousPointInfo = tempTrackballInfo[$_get](dart.notNull(pointInfoIndex) - 1);
              if (dart.notNull(yPos) < dart.notNull(previousPointInfo.yPosition)) {
                trackballInfo[$remove](pointInfo);
              }
              if (dart.notNull(yPos) < dart.notNull(pointInfo.yPosition) - (dart.notNull(pointInfo.yPosition) - dart.notNull(previousPointInfo.yPosition)) / 2) {
                trackballInfo[$remove](pointInfo);
              }
            }
          }
        }
      }
    }
    [_getRectSeriesPointInfo](trackballInfo, pointInfo, xValue, yValue, touchXPos, leastX, axisClipRect) {
      if (dart.test(pointInfo.series[_isRectSeries]) && dart.test(this.chart.enableSideBySideSeriesPlacement) && !dart.equals(this.chart.trackballBehavior.tooltipDisplayMode, charts.TrackballDisplayMode.groupAllPoints)) {
        let isXAxisInverse = this.chart[_requireInvertedAxis];
        let sideBySideInfo = charts._calculateSideBySideInfo(pointInfo.series, this.chart);
        let xStartValue = dart.notNull(xValue) + dart.notNull(core.num._check(sideBySideInfo.minimum));
        let xEndValue = dart.notNull(xValue) + dart.notNull(core.num._check(sideBySideInfo.maximum));
        let xStart = charts._calculatePoint(xStartValue, yValue, pointInfo.series[_xAxis$], pointInfo.series[_yAxis$], this.chart[_requireInvertedAxis], pointInfo.series, axisClipRect).x;
        let xEnd = charts._calculatePoint(xEndValue, yValue, pointInfo.series[_xAxis$], pointInfo.series[_yAxis$], this.chart[_requireInvertedAxis], pointInfo.series, axisClipRect).x;
        let isStartIndex = pointInfo.series[_sideBySideIndex] === 0;
        let isEndIndex = pointInfo.series[_sideBySideIndex] === dart.notNull(pointInfo.series[_chart][_chartSeries].visibleSeries[$length]) - 1;
        let xPos = touchXPos;
        if (dart.test(isXAxisInverse)) {
          let temp = xStart;
          xStart = xEnd;
          xEnd = temp;
          let isTemp = isEndIndex;
          isEndIndex = isStartIndex;
          isStartIndex = isTemp;
        } else if (dart.equals(pointInfo.series[_chart][_chartState].zoomedState, true) || !dart.equals(this.chart.trackballBehavior.tooltipDisplayMode, charts.TrackballDisplayMode.floatAllPoints)) {
          if (dart.notNull(xPos) < dart.notNull(leastX) && isStartIndex) {
            if (!(dart.notNull(xPos) < dart.notNull(xStart)) && !(dart.notNull(xPos) < dart.notNull(xEnd) && dart.notNull(xPos) >= dart.notNull(xStart))) {
              trackballInfo[$remove](pointInfo);
            }
          } else if (dart.notNull(xPos) > dart.notNull(leastX) && isEndIndex) {
            if (!(dart.notNull(xPos) > dart.notNull(xEnd) && dart.notNull(xPos) > dart.notNull(xStart)) && !(dart.notNull(xPos) < dart.notNull(xEnd) && dart.notNull(xPos) >= dart.notNull(xStart))) {
              trackballInfo[$remove](pointInfo);
            }
          } else if (!(dart.notNull(xPos) < dart.notNull(xEnd) && dart.notNull(xPos) >= dart.notNull(xStart))) {
            trackballInfo[$remove](pointInfo);
          }
        }
      }
      return trackballInfo;
    }
    [_validateNearestXValue](leastX, series, touchXPos, touchYPos) {
      let leastPointInfo = JSArrayOf_ChartPointInfo().of([]);
      let axisClipRect = charts._calculatePlotOffset(series[_chart][_chartAxis][_axisClipRect], new ui.Offset.new(series[_xAxis$].plotOffset, series[_yAxis$].plotOffset));
      let nearPointX = dart.test(series[_chart][_requireInvertedAxis]) ? axisClipRect.top : axisClipRect.left;
      let touchXValue = dart.test(series[_chart][_requireInvertedAxis]) ? touchYPos : touchXPos;
      let delta = 0.0;
      for (let pointInfo of this.chartPointInfo) {
        let xValues = JSArrayOfnum().of([]);
        let yValues = JSArrayOfnum().of([]);
        for (let i = 0; i < dart.notNull(series[_dataPoints$][$length]); i = i + 1) {
          xValues[$add](core.num._check(series[_dataPoints$][$_get](i).xValue));
          yValues[$add](core.num._check(series[_dataPoints$][$_get](i).yValue));
        }
        if (dart.notNull(pointInfo.dataPointIndex) < dart.notNull(series[_dataPoints$][$length])) {
          let xValue = xValues[$_get](pointInfo.dataPointIndex);
          let yValue = yValues[$_get](pointInfo.dataPointIndex);
          let currX = dart.test(series[_chart][_requireInvertedAxis]) ? charts._calculatePoint(xValue, yValue, pointInfo.series[_xAxis$], pointInfo.series[_yAxis$], this.chart[_requireInvertedAxis], pointInfo.series, axisClipRect).y : charts._calculatePoint(xValue, yValue, pointInfo.series[_xAxis$], pointInfo.series[_yAxis$], this.chart[_requireInvertedAxis], pointInfo.series, axisClipRect).x;
          if (delta === dart.notNull(touchXValue) - dart.notNull(currX)) {
            leastPointInfo[$add](pointInfo);
          } else if ((dart.notNull(touchXValue) - dart.notNull(currX))[$toDouble]()[$abs]() <= (dart.notNull(touchXValue) - dart.notNull(nearPointX))[$toDouble]()[$abs]()) {
            nearPointX = currX;
            delta = dart.notNull(touchXValue) - dart.notNull(currX);
            leastPointInfo[$clear]();
            leastPointInfo[$add](pointInfo);
          }
        }
        if (dart.test(this.chartPointInfo[$isNotEmpty])) {
          let pointInfo = this.chartPointInfo[$_get](0);
          leastX = this[_getLeastX](pointInfo, series, axisClipRect);
        }
        if (dart.test(this.chart.isTransposed)) {
          this.yPos = leastX;
        } else {
          this.xPos = leastX;
        }
      }
    }
    [_getLeastX](pointInfo, series, axisClipRect) {
      let xValues = JSArrayOfnum().of([]);
      let yValues = JSArrayOfnum().of([]);
      for (let i = 0; i < dart.notNull(series[_dataPoints$][$length]); i = i + 1) {
        xValues[$add](core.num._check(series[_dataPoints$][$_get](i).xValue));
        yValues[$add](core.num._check(series[_dataPoints$][$_get](i).yValue));
      }
      let xValue = xValues[$_get](pointInfo.dataPointIndex);
      let yValue = yValues[$_get](pointInfo.dataPointIndex);
      return charts._calculatePoint(xValue, yValue, series[_xAxis$], series[_yAxis$], this.chart[_requireInvertedAxis], series, axisClipRect).x;
    }
    [_addChartPointInfo](series, xPos, yPos, dataPointIndex, label) {
      let pointInfo = new charts._ChartPointInfo.new();
      pointInfo.series = charts.XyDataSeries._check(series);
      pointInfo.markerXPos = xPos;
      pointInfo.markerYPos = yPos;
      pointInfo.xPosition = xPos;
      pointInfo.yPosition = yPos;
      if (dart.notNull(series.segments[$length]) > dart.notNull(dataPointIndex)) {
        pointInfo.color = series.segments[$_get](dataPointIndex).color;
      } else {
        if (dart.notNull(series.segments[$length]) > 1) {
          pointInfo.color = series.segments[$_get](dart.notNull(series.segments[$length]) - 1).color;
        }
      }
      pointInfo.chartDataPoint = series[_dataPoints$][$_get](dataPointIndex);
      pointInfo.dataPointIndex = dataPointIndex;
      pointInfo.label = label;
      pointInfo.header = series[_dataPoints$][$_get](dataPointIndex).regionData != null ? series[_dataPoints$][$_get](dataPointIndex).regionData[$_get](0) : null;
      this.chartPointInfo[$add](pointInfo);
    }
    showTrackball(visibleSeries, pointIndex) {
      let position = null;
      let series = visibleSeries[$_get](0);
      let rect = series[_chart][_chartAxis][_axisClipRect];
      let _dataPoints = JSArrayOfCartesianChartPoint().of([]);
      for (let i = 0; i < dart.notNull(series[_dataPoints$][$length]); i = i + 1) {
        if (!dart.equals(series[_dataPoints$][$_get](i).isGap, true)) {
          _dataPoints[$add](series[_dataPoints$][$_get](i));
        }
      }
      if (pointIndex != null && pointIndex[$abs]() < dart.notNull(series[_dataPoints$][$length])) {
        let index = pointIndex;
        let xValue = core.num._check(_dataPoints[$_get](index).xValue);
        let yValue = core.num._check(charts._FinancialSeriesBase.is(series) || series[_seriesType$][$contains]("range") ? _dataPoints[$_get](index).high : _dataPoints[$_get](index).yValue);
        position = charts._calculatePoint(xValue, yValue, series[_xAxis$], series[_yAxis$], series[_chart][_requireInvertedAxis], series, rect);
        this[_generateAllPoints](new ui.Offset.new(position.x, position.y));
      }
    }
    getFormattedValue(value) {
      return dart.toString(value);
    }
  };
  (charts._TrackballPainter.new = function(opts) {
    let chart = opts && 'chart' in opts ? opts.chart : null;
    let valueNotifier = opts && 'valueNotifier' in opts ? opts.valueNotifier : null;
    this.timer = null;
    this.pointerLength = null;
    this.pointerWidth = null;
    this.nosePointY = 0.0;
    this.nosePointX = 0.0;
    this.totalWidth = 0.0;
    this.x = null;
    this.y = null;
    this.xPos = null;
    this.yPos = null;
    this.isTop = false;
    this.borderRadius = null;
    this.backgroundPath = ui.Path.new();
    this.canResetPath = false;
    this.isLeft = false;
    this.isRight = false;
    this.enable = null;
    this.padding = 0.0;
    this.groupAllPadding = 10.0;
    this.stringValue = JSArrayOfString().of([]);
    this.boundaryRect = C348 || CT.C348;
    this.leftPadding = 0.0;
    this.topPadding = 0.0;
    this.isHorizontalOrientation = false;
    this.isRectSeries = false;
    this.labelStyle = null;
    this.chartPointInfo = JSArrayOf_ChartPointInfo().of([]);
    this.divider = true;
    this.headerText = false;
    this.xFormat = false;
    this.isColon = true;
    this.chart = chart;
    this.valueNotifier = valueNotifier;
    charts._TrackballPainter.__proto__.new.call(this, {repaint: valueNotifier});
    ;
  }).prototype = charts._TrackballPainter.prototype;
  dart.addTypeTests(charts._TrackballPainter);
  dart.setMethodSignature(charts._TrackballPainter, () => ({
    __proto__: dart.getMethods(charts._TrackballPainter.__proto__),
    paint: dart.fnType(dart.void, [ui.Canvas, ui.Size]),
    [_getLinePainter]: dart.fnType(ui.Paint, [ui.Paint]),
    [_drawTrackball]: dart.fnType(dart.void, [ui.Canvas]),
    [_getTooltipSize]: dart.fnType(ui.Size, [core.double, core.double, core.int]),
    [_calculateTrackballRect]: dart.fnType(dart.void, [ui.Canvas, core.double, core.double, core.int]),
    [_calculateTooltipSize]: dart.fnType(dart.void, [ui.Rect]),
    [_drawTrackBallLine]: dart.fnType(dart.void, [ui.Canvas, ui.Paint, core.int]),
    [_drawBackground]: dart.fnType(dart.void, [ui.Canvas, ui.Rect, core.double, core.double, core.double, core.bool, ui.Path, core.bool, core.bool, core.int]),
    [_drawTooltip]: dart.fnType(dart.void, [ui.Canvas, ui.Rect, core.double, core.double, core.double, core.double, core.double, core.double, core.double, ui.Path, core.bool, core.bool, core.int]),
    [_drawRectandText]: dart.fnType(dart.void, [ui.Canvas, ui.Path, ui.Rect, core.int]),
    shouldRepaint: dart.fnType(core.bool, [core.Object]),
    [_generateAllPoints]: dart.fnType(dart.void, [ui.Offset]),
    [_getValidPoints]: dart.fnType(dart.dynamic, [core.List, ui.Offset]),
    [_getTrackballLabelText]: dart.fnType(core.String, [charts.XyDataSeries, core.num, core.num, core.num, core.num, core.num, core.num, core.String, core.num, dart.dynamic, dart.dynamic]),
    [_triggerTrackballEvent]: dart.fnType(dart.void, []),
    [_validateNearestPointForAllSeries]: dart.fnType(dart.void, [core.double, core.List$(charts._ChartPointInfo), core.double, core.double]),
    [_getRectSeriesPointInfo]: dart.fnType(core.List$(charts._ChartPointInfo), [core.List$(charts._ChartPointInfo), charts._ChartPointInfo, core.num, core.num, core.double, core.double, ui.Rect]),
    [_validateNearestXValue]: dart.fnType(dart.void, [core.double, charts.XyDataSeries, core.double, core.double]),
    [_getLeastX]: dart.fnType(core.double, [charts._ChartPointInfo, charts.XyDataSeries, ui.Rect]),
    [_addChartPointInfo]: dart.fnType(dart.void, [charts.CartesianSeries, core.double, core.double, core.int, core.String]),
    showTrackball: dart.fnType(dart.void, [core.List$(charts.CartesianSeries), core.int]),
    getFormattedValue: dart.fnType(core.String, [core.num])
  }));
  dart.setLibraryUri(charts._TrackballPainter, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._TrackballPainter, () => ({
    __proto__: dart.getFields(charts._TrackballPainter.__proto__),
    chart: dart.finalFieldType(charts.SfCartesianChart),
    timer: dart.fieldType(async.Timer),
    valueNotifier: dart.fieldType(change_notifier.ValueNotifier$(core.int)),
    pointerLength: dart.fieldType(core.double),
    pointerWidth: dart.fieldType(core.double),
    nosePointY: dart.fieldType(core.double),
    nosePointX: dart.fieldType(core.double),
    totalWidth: dart.fieldType(core.double),
    x: dart.fieldType(core.double),
    y: dart.fieldType(core.double),
    xPos: dart.fieldType(core.double),
    yPos: dart.fieldType(core.double),
    isTop: dart.fieldType(core.bool),
    borderRadius: dart.fieldType(core.double),
    backgroundPath: dart.fieldType(ui.Path),
    canResetPath: dart.fieldType(core.bool),
    isLeft: dart.fieldType(core.bool),
    isRight: dart.fieldType(core.bool),
    enable: dart.fieldType(core.bool),
    padding: dart.fieldType(core.double),
    groupAllPadding: dart.fieldType(core.double),
    stringValue: dart.fieldType(core.List$(core.String)),
    boundaryRect: dart.fieldType(ui.Rect),
    leftPadding: dart.fieldType(core.double),
    topPadding: dart.fieldType(core.double),
    isHorizontalOrientation: dart.fieldType(core.bool),
    isRectSeries: dart.fieldType(core.bool),
    labelStyle: dart.fieldType(charts.ChartTextStyle),
    chartPointInfo: dart.fieldType(core.List$(charts._ChartPointInfo)),
    divider: dart.fieldType(core.bool),
    headerText: dart.fieldType(core.bool),
    xFormat: dart.fieldType(core.bool),
    isColon: dart.fieldType(core.bool)
  }));
  const _rectPath = dart.privateName(charts, "_rectPath");
  const _drawConnectorLine = dart.privateName(charts, "_drawConnectorLine");
  const _drawAxisTooltip = dart.privateName(charts, "_drawAxisTooltip");
  const _drawTooltipConnector = dart.privateName(charts, "_drawTooltipConnector");
  const _validateRect = dart.privateName(charts, "_validateRect");
  const _calculateRect = dart.privateName(charts, "_calculateRect");
  const _drawConnector = dart.privateName(charts, "_drawConnector");
  const _calculateNeckPositions = dart.privateName(charts, "_calculateNeckPositions");
  charts._ZoomRectPainter = class _ZoomRectPainter extends custom_paint.CustomPainter {
    paint(canvas, size) {
      return this.chart.zoomPanBehavior.onPaint(canvas);
    }
    drawRect(canvas) {
      let t8, t7, t7$;
      let fillColor = this.chart.zoomPanBehavior.selectionRectColor;
      this.strokePaint = (t7 = ui.Paint.new(), t7.color = (t8 = this.chart.zoomPanBehavior.selectionRectBorderColor, t8 == null ? this.chart[_chartState][_chartTheme].selectionRectBorderColor : t8), t7.strokeWidth = this.chart.zoomPanBehavior.selectionRectBorderWidth, t7.style = ui.PaintingStyle.stroke, t7);
      this.chart.zoomPanBehavior.selectionRectBorderWidth === 0 ? this.strokePaint.color = colors$.Colors.transparent : this.strokePaint.color = this.strokePaint.color;
      this.fillPaint = (t7$ = ui.Paint.new(), t7$.color = fillColor != null ? new ui.Color.fromRGBO(fillColor.red, fillColor.green, fillColor.blue, 0.3) : this.chart[_chartState][_chartTheme].selectionRectColor, t7$.style = ui.PaintingStyle.fill, t7$);
      this.strokePaint.isAntiAlias = false;
      if (this.chart.zoomPanBehavior[_rectPath] != null) {
        canvas.drawPath(!true ? charts._dashPath(this.chart.zoomPanBehavior[_rectPath], {dashArray: new (_CircularIntervalListOfdouble()).new(JSArrayOfdouble().of([5.0, 5.0]))}) : this.chart.zoomPanBehavior[_rectPath], this.strokePaint);
        canvas.drawRect(this.chart.zoomPanBehavior[_zoomingRect], this.fillPaint);
        let zoomRect = this.chart.zoomPanBehavior[_zoomingRect];
        if (zoomRect.width !== 0) {
          this[_drawConnectorLine](canvas, new ui.Offset.new(zoomRect.bottomRight.dx, zoomRect.bottomRight.dy), new ui.Offset.new(zoomRect.topLeft.dx, zoomRect.topLeft.dy));
        }
      }
    }
    [_drawConnectorLine](canvas, start, end) {
      let startPosition = start;
      let endPosition = end;
      this[_drawAxisTooltip](this.chart[_chartAxis][_bottomAxes], canvas, startPosition, endPosition, "bottom");
      this[_drawAxisTooltip](this.chart[_chartAxis][_topAxes], canvas, startPosition, endPosition, "top");
      this[_drawAxisTooltip](this.chart[_chartAxis][_leftAxes], canvas, startPosition, endPosition, "left");
      this[_drawAxisTooltip](this.chart[_chartAxis][_rightAxes], canvas, startPosition, endPosition, "right");
    }
    [_drawAxisTooltip](axes, canvas, startPosition, endPosition, axisPosition) {
      for (let index = 0; index < dart.notNull(axes[$length]); index = index + 1) {
        let axis = axes[$_get](index);
        if (dart.test(axis.interactiveTooltip.enable) && dart.test(axis[_visibleLabels][$isNotEmpty])) {
          this[_drawTooltipConnector](axis, startPosition, endPosition, canvas, axisPosition);
        }
      }
    }
    [_getValue](position, axis, axisPosition) {
      let value = null;
      let isHorizontal = axisPosition === "bottom" || axisPosition === "top";
      value = isHorizontal ? charts._pointToXVal(this.chart, axis, axis[_bounds], dart.notNull(position.dx) - (dart.notNull(this.chart[_chartAxis][_axisClipRect].left) + dart.notNull(axis.plotOffset)), dart.notNull(position.dy) - (dart.notNull(this.chart[_chartAxis][_axisClipRect].top) + dart.notNull(axis.plotOffset))) : charts._pointToYVal(this.chart, axis, axis[_bounds], dart.notNull(position.dx) - (dart.notNull(this.chart[_chartAxis][_axisClipRect].left) + dart.notNull(axis.plotOffset)), dart.notNull(position.dy) - (dart.notNull(this.chart[_chartAxis][_axisClipRect].top) + dart.notNull(axis.plotOffset)));
      let resultantString = charts._getInteractiveTooltipLabel(value, axis);
      if (axis.interactiveTooltip.format != null) {
        let stringValue = axis.interactiveTooltip.format[$replaceAll]("{value}", core.String._check(resultantString));
        resultantString = stringValue;
      }
      return resultantString;
    }
    [_validateRect](largeRect, smallRect, axisPosition) {
      return new ui.Rect.fromLTRB(axisPosition === "left" ? dart.notNull(smallRect.left) - (dart.notNull(largeRect.width) - dart.notNull(smallRect.width)) : smallRect.left, smallRect.top, axisPosition === "right" ? dart.notNull(smallRect.right) + (dart.notNull(largeRect.width) - dart.notNull(smallRect.width)) : smallRect.right, smallRect.bottom);
    }
    [_calculateRect](axis, position, labelSize, axisPosition) {
      let rect = null;
      if (axisPosition === "bottom") {
        rect = new ui.Rect.fromLTWH(dart.notNull(position.dx) - (dart.notNull(labelSize.width) / 2 + 10 / 2), dart.notNull(axis[_bounds].top) + dart.notNull(axis.interactiveTooltip.arrowLength), dart.notNull(labelSize.width) + 10, dart.notNull(labelSize.height) + 10);
      } else if (axisPosition === "top") {
        rect = new ui.Rect.fromLTWH(dart.notNull(position.dx) - (dart.notNull(labelSize.width) / 2 + 10 / 2), dart.notNull(axis[_bounds].top) - (dart.notNull(labelSize.height) + 10) - dart.notNull(axis.interactiveTooltip.arrowLength), dart.notNull(labelSize.width) + 10, dart.notNull(labelSize.height) + 10);
      } else if (axisPosition === "left") {
        rect = new ui.Rect.fromLTWH(dart.notNull(axis[_bounds].left) - (dart.notNull(labelSize.width) + 10) - dart.notNull(axis.interactiveTooltip.arrowLength), dart.notNull(position.dy) - (dart.notNull(labelSize.height) + 10) / 2, dart.notNull(labelSize.width) + 10, dart.notNull(labelSize.height) + 10);
      } else {
        rect = new ui.Rect.fromLTWH(dart.notNull(axis[_bounds].left) + dart.notNull(axis.interactiveTooltip.arrowLength), dart.notNull(position.dy) - (dart.notNull(labelSize.height) / 2 + 10 / 2), dart.notNull(labelSize.width) + 10, dart.notNull(labelSize.height) + 10);
      }
      return rect;
    }
    [_drawTooltipConnector](axis, startPosition, endPosition, canvas, axisPosition) {
      let t7, t7$, t8, t7$0;
      let startTooltipRect = null;
      let endTooltipRect = null;
      let startValue = null;
      let endValue = null;
      let startLabelSize = null;
      let endLabelSize = null;
      let startLabelRect = null;
      let endLabelRect = null;
      let labelFillPaint = (t7 = ui.Paint.new(), t7.color = this.chart[_chartState][_chartTheme].crosshairBackgroundColor, t7.strokeCap = ui.StrokeCap.butt, t7.isAntiAlias = false, t7.style = ui.PaintingStyle.fill, t7);
      let labelStrokePaint = (t7$ = ui.Paint.new(), t7$.color = this.chart[_chartState][_chartTheme].crosshairBackgroundColor, t7$.strokeCap = ui.StrokeCap.butt, t7$.isAntiAlias = false, t7$.style = ui.PaintingStyle.stroke, t7$);
      let connectorLinePaint = (t7$0 = ui.Paint.new(), t7$0.color = (t8 = axis.interactiveTooltip.connectorLineColor, t8 == null ? this.chart[_chartState][_chartTheme].selectionTooltipConnectorLineColor : t8), t7$0.strokeWidth = axis.interactiveTooltip.connectorLineWidth, t7$0.style = ui.PaintingStyle.stroke, t7$0);
      this.chart.crosshairBehavior.lineWidth === 0 ? this.strokePaint.color = colors$.Colors.transparent : this.strokePaint.color = this.strokePaint.color;
      let startLabelPath = ui.Path.new();
      let endLabelPath = ui.Path.new();
      let isHorizontal = axisPosition === "bottom" || axisPosition === "top";
      startValue = this[_getValue](startPosition, axis, axisPosition);
      endValue = this[_getValue](endPosition, axis, axisPosition);
      startLabelSize = charts._measureText(dart.toString(startValue), axis.interactiveTooltip.textStyle);
      endLabelSize = charts._measureText(dart.toString(endValue), axis.interactiveTooltip.textStyle);
      startLabelRect = this[_calculateRect](axis, startPosition, startLabelSize, axisPosition);
      endLabelRect = this[_calculateRect](axis, endPosition, endLabelSize, axisPosition);
      if (!isHorizontal && startLabelRect.width != endLabelRect.width) {
        dart.notNull(startLabelRect.width) > dart.notNull(endLabelRect.width) ? endLabelRect = this[_validateRect](startLabelRect, endLabelRect, axisPosition) : startLabelRect = this[_validateRect](endLabelRect, startLabelRect, axisPosition);
      }
      startTooltipRect = this[_drawTooltip](canvas, labelFillPaint, labelStrokePaint, startLabelPath, startPosition, startLabelRect, startTooltipRect, startValue, startLabelSize, axis.interactiveTooltip, axisPosition);
      endTooltipRect = this[_drawTooltip](canvas, labelFillPaint, labelStrokePaint, endLabelPath, endPosition, endLabelRect, endTooltipRect, endValue, endLabelSize, axis.interactiveTooltip, axisPosition);
      this[_drawConnector](canvas, connectorLinePaint, startTooltipRect, endTooltipRect, startPosition, endPosition, axis.interactiveTooltip, axisPosition);
    }
    [_drawConnector](canvas, connectorLinePaint, startTooltipRect, endTooltipRect, startPosition, endPosition, tooltip, axisPosition) {
      let connectorPath = ui.Path.new();
      if (axisPosition === "bottom") {
        connectorPath.moveTo(startPosition.dx, dart.notNull(startTooltipRect.top) - dart.notNull(tooltip.arrowLength));
        connectorPath.lineTo(endPosition.dx, dart.notNull(endTooltipRect.top) - dart.notNull(tooltip.arrowLength));
      } else if (axisPosition === "top") {
        connectorPath.moveTo(startPosition.dx, dart.notNull(startTooltipRect.bottom) + dart.notNull(tooltip.arrowLength));
        connectorPath.lineTo(endPosition.dx, dart.notNull(endTooltipRect.bottom) + dart.notNull(tooltip.arrowLength));
      } else if (axisPosition === "left") {
        connectorPath.moveTo(dart.notNull(startTooltipRect.right) + dart.notNull(tooltip.arrowLength), startPosition.dy);
        connectorPath.lineTo(dart.notNull(endTooltipRect.right) + dart.notNull(tooltip.arrowLength), endPosition.dy);
      } else {
        connectorPath.moveTo(dart.notNull(startTooltipRect.left) - dart.notNull(tooltip.arrowLength), startPosition.dy);
        connectorPath.lineTo(dart.notNull(endTooltipRect.left) - dart.notNull(tooltip.arrowLength), endPosition.dy);
      }
      tooltip.connectorLineDashArray != null ? canvas.drawPath(!true ? charts._dashPath(connectorPath, {dashArray: new (_CircularIntervalListOfdouble()).new(tooltip.connectorLineDashArray)}) : connectorPath, connectorLinePaint) : canvas.drawPath(connectorPath, connectorLinePaint);
    }
    [_drawTooltip](canvas, fillPaint, strokePaint, path, position, labelRect, rect, value, labelSize, tooltip, axisPosition) {
      let t7, t7$, t7$0;
      fillPaint.color = tooltip.color != null ? (t7 = tooltip, t7 == null ? null : t7.color) : this.chart[_chartState][_chartTheme].crosshairBackgroundColor;
      strokePaint.color = tooltip.borderColor != null ? (t7$ = tooltip, t7$ == null ? null : t7$.borderColor) : this.chart[_chartState][_chartTheme].crosshairBackgroundColor;
      strokePaint.strokeWidth = tooltip.borderWidth;
      let isHorizontal = axisPosition === "bottom" || axisPosition === "top";
      labelRect = charts._validateRectBounds(labelRect, this.chart[_chartState].containerRect);
      labelRect = isHorizontal ? charts._validateRectXPosition(labelRect, this.chart) : charts._validateRectYPosition(labelRect, this.chart);
      path.reset();
      rect = charts._getRoundedCornerRect(labelRect, tooltip.borderRadius);
      path.addRRect(rect);
      this[_calculateNeckPositions](canvas, fillPaint, strokePaint, path, axisPosition, position, rect, tooltip);
      charts._drawText(canvas, dart.toString(value), new ui.Offset.new(dart.notNull(rect.left) + dart.notNull(rect.width) / 2 - dart.notNull(labelSize.width) / 2, dart.notNull(rect.top) + dart.notNull(rect.height) / 2 - dart.notNull(labelSize.height) / 2), new charts.ChartTextStyle.new({color: (t7$0 = tooltip.textStyle.color, t7$0 == null ? this.chart[_chartState][_chartTheme].tooltipLabelColor : t7$0), fontSize: tooltip.textStyle.fontSize, fontWeight: tooltip.textStyle.fontWeight, fontFamily: tooltip.textStyle.fontFamily, fontStyle: tooltip.textStyle.fontStyle}), 0);
      return rect;
    }
    [_calculateNeckPositions](canvas, fillPaint, strokePaint, path, axisPosition, position, rect, tooltip) {
      let x1 = null;
      let x2 = null;
      let x3 = null;
      let x4 = null;
      let y1 = null;
      let y2 = null;
      let y3 = null;
      let y4 = null;
      if (axisPosition === "bottom") {
        x1 = position.dx;
        y1 = dart.notNull(rect.top) - dart.notNull(tooltip.arrowLength);
        x2 = dart.notNull(rect.right) - dart.notNull(rect.width) / 2 + dart.notNull(tooltip.arrowWidth);
        y2 = rect.top;
        x3 = dart.notNull(rect.left) + dart.notNull(rect.width) / 2 - dart.notNull(tooltip.arrowWidth);
        y3 = rect.top;
        x4 = position.dx;
        y4 = dart.notNull(rect.top) - dart.notNull(tooltip.arrowLength);
      } else if (axisPosition === "top") {
        x1 = position.dx;
        y1 = dart.notNull(rect.bottom) + dart.notNull(tooltip.arrowLength);
        x2 = dart.notNull(rect.right) - dart.notNull(rect.width) / 2 + dart.notNull(tooltip.arrowWidth);
        y2 = rect.bottom;
        x3 = dart.notNull(rect.left) + dart.notNull(rect.width) / 2 - dart.notNull(tooltip.arrowWidth);
        y3 = rect.bottom;
        x4 = position.dx;
        y4 = dart.notNull(rect.bottom) + dart.notNull(tooltip.arrowLength);
      } else if (axisPosition === "left") {
        x1 = rect.right;
        y1 = dart.notNull(rect.top) + dart.notNull(rect.height) / 2 - dart.notNull(tooltip.arrowWidth);
        x2 = rect.right;
        y2 = dart.notNull(rect.bottom) - dart.notNull(rect.height) / 2 + dart.notNull(tooltip.arrowWidth);
        x3 = dart.notNull(rect.right) + dart.notNull(tooltip.arrowLength);
        y3 = position.dy;
        x4 = dart.notNull(rect.right) + dart.notNull(tooltip.arrowLength);
        y4 = position.dy;
      } else {
        x1 = rect.left;
        y1 = dart.notNull(rect.top) + dart.notNull(rect.height) / 2 - dart.notNull(tooltip.arrowWidth);
        x2 = rect.left;
        y2 = dart.notNull(rect.bottom) - dart.notNull(rect.height) / 2 + dart.notNull(tooltip.arrowWidth);
        x3 = dart.notNull(rect.left) - dart.notNull(tooltip.arrowLength);
        y3 = position.dy;
        x4 = dart.notNull(rect.left) - dart.notNull(tooltip.arrowLength);
        y4 = position.dy;
      }
      charts._drawTooltipArrowhead(canvas, path, fillPaint, strokePaint, x1, y1, x2, y2, x3, y3, x4, y4);
    }
    shouldRepaint(oldDelegate) {
      custom_paint.CustomPainter._check(oldDelegate);
      return this.isRepaint;
    }
  };
  (charts._ZoomRectPainter.new = function(opts) {
    let isRepaint = opts && 'isRepaint' in opts ? opts.isRepaint : null;
    let chart = opts && 'chart' in opts ? opts.chart : null;
    let notifier = opts && 'notifier' in opts ? opts.notifier : null;
    this.strokePaint = null;
    this.fillPaint = null;
    this.isRepaint = isRepaint;
    this.chart = chart;
    charts._ZoomRectPainter.__proto__.new.call(this, {repaint: notifier});
    ;
  }).prototype = charts._ZoomRectPainter.prototype;
  dart.addTypeTests(charts._ZoomRectPainter);
  dart.setMethodSignature(charts._ZoomRectPainter, () => ({
    __proto__: dart.getMethods(charts._ZoomRectPainter.__proto__),
    paint: dart.fnType(dart.void, [ui.Canvas, ui.Size]),
    drawRect: dart.fnType(dart.void, [ui.Canvas]),
    [_drawConnectorLine]: dart.fnType(dart.void, [ui.Canvas, ui.Offset, ui.Offset]),
    [_drawAxisTooltip]: dart.fnType(dart.void, [core.List$(charts.ChartAxis), ui.Canvas, ui.Offset, ui.Offset, core.String]),
    [_getValue]: dart.fnType(dart.dynamic, [ui.Offset, charts.ChartAxis, core.String]),
    [_validateRect]: dart.fnType(ui.Rect, [ui.Rect, ui.Rect, core.String]),
    [_calculateRect]: dart.fnType(ui.Rect, [charts.ChartAxis, ui.Offset, ui.Size, core.String]),
    [_drawTooltipConnector]: dart.fnType(dart.void, [charts.ChartAxis, ui.Offset, ui.Offset, ui.Canvas, core.String]),
    [_drawConnector]: dart.fnType(dart.void, [ui.Canvas, ui.Paint, ui.RRect, ui.RRect, ui.Offset, ui.Offset, charts.InteractiveTooltip, core.String]),
    [_drawTooltip]: dart.fnType(ui.RRect, [ui.Canvas, ui.Paint, ui.Paint, ui.Path, ui.Offset, ui.Rect, ui.RRect, dart.dynamic, ui.Size, charts.InteractiveTooltip, core.String]),
    [_calculateNeckPositions]: dart.fnType(dart.void, [ui.Canvas, ui.Paint, ui.Paint, ui.Path, core.String, ui.Offset, ui.RRect, charts.InteractiveTooltip]),
    shouldRepaint: dart.fnType(core.bool, [core.Object])
  }));
  dart.setLibraryUri(charts._ZoomRectPainter, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._ZoomRectPainter, () => ({
    __proto__: dart.getFields(charts._ZoomRectPainter.__proto__),
    isRepaint: dart.finalFieldType(core.bool),
    chart: dart.fieldType(charts.SfCartesianChart),
    strokePaint: dart.fieldType(ui.Paint),
    fillPaint: dart.fieldType(ui.Paint)
  }));
  let C591;
  const _minMax = dart.privateName(charts, "_minMax");
  const _createZoomState = dart.privateName(charts, "_createZoomState");
  const _doubleTapZooming = dart.privateName(charts, "_doubleTapZooming");
  const _doPan = dart.privateName(charts, "_doPan");
  const _drawSelectionZoomRect = dart.privateName(charts, "_drawSelectionZoomRect");
  const _calculateZoomAxesRange = dart.privateName(charts, "_calculateZoomAxesRange");
  const _calculatePinchZoomFactor = dart.privateName(charts, "_calculatePinchZoomFactor");
  const enablePinching$ = dart.privateName(charts, "ZoomPanBehavior.enablePinching");
  const enableDoubleTapZooming$ = dart.privateName(charts, "ZoomPanBehavior.enableDoubleTapZooming");
  const enablePanning$ = dart.privateName(charts, "ZoomPanBehavior.enablePanning");
  const enableSelectionZooming$ = dart.privateName(charts, "ZoomPanBehavior.enableSelectionZooming");
  const enableMouseWheelZooming$ = dart.privateName(charts, "ZoomPanBehavior.enableMouseWheelZooming");
  const zoomMode$ = dart.privateName(charts, "ZoomPanBehavior.zoomMode");
  const maximumZoomLevel$ = dart.privateName(charts, "ZoomPanBehavior.maximumZoomLevel");
  const selectionRectBorderWidth$ = dart.privateName(charts, "ZoomPanBehavior.selectionRectBorderWidth");
  const selectionRectBorderColor$ = dart.privateName(charts, "ZoomPanBehavior.selectionRectBorderColor");
  const selectionRectColor$ = dart.privateName(charts, "ZoomPanBehavior.selectionRectColor");
  charts.ZoomPanBehavior = class ZoomPanBehavior extends charts.ZoomBehavior {
    get enablePinching() {
      return this[enablePinching$];
    }
    set enablePinching(value) {
      super.enablePinching = value;
    }
    get enableDoubleTapZooming() {
      return this[enableDoubleTapZooming$];
    }
    set enableDoubleTapZooming(value) {
      super.enableDoubleTapZooming = value;
    }
    get enablePanning() {
      return this[enablePanning$];
    }
    set enablePanning(value) {
      super.enablePanning = value;
    }
    get enableSelectionZooming() {
      return this[enableSelectionZooming$];
    }
    set enableSelectionZooming(value) {
      super.enableSelectionZooming = value;
    }
    get enableMouseWheelZooming() {
      return this[enableMouseWheelZooming$];
    }
    set enableMouseWheelZooming(value) {
      super.enableMouseWheelZooming = value;
    }
    get zoomMode() {
      return this[zoomMode$];
    }
    set zoomMode(value) {
      super.zoomMode = value;
    }
    get maximumZoomLevel() {
      return this[maximumZoomLevel$];
    }
    set maximumZoomLevel(value) {
      super.maximumZoomLevel = value;
    }
    get selectionRectBorderWidth() {
      return this[selectionRectBorderWidth$];
    }
    set selectionRectBorderWidth(value) {
      super.selectionRectBorderWidth = value;
    }
    get selectionRectBorderColor() {
      return this[selectionRectBorderColor$];
    }
    set selectionRectBorderColor(value) {
      super.selectionRectBorderColor = value;
    }
    get selectionRectColor() {
      return this[selectionRectColor$];
    }
    set selectionRectColor(value) {
      super.selectionRectColor = value;
    }
    [_setChart](sfChart) {
      return this[_chart] = sfChart;
    }
    [_doubleTapZooming](xPos, yPos, zoomFactor) {
      let t7, t7$, t7$0;
      this[_chart][_chartState].zoomProgress = true;
      let zoomStartArgs = null;
      for (let axisIndex = 0; axisIndex < dart.notNull(this[_chart][_chartAxis][_axisCollections][$length]); axisIndex = axisIndex + 1) {
        let axis = this[_chart][_chartAxis][_axisCollections][$_get](axisIndex);
        if (this[_chart].onZoomStart != null) charts._zoomEvent(this[_chart], axis, zoomStartArgs, this[_chart].onZoomStart);
        if (dart.equals(dart.dload(axis, _orientation), charts.AxisOrientation.vertical) && !dart.equals(this.zoomMode, charts.ZoomMode.x) || dart.equals(dart.dload(axis, _orientation), charts.AxisOrientation.horizontal) && !dart.equals(this.zoomMode, charts.ZoomMode.y)) {
          let cumulative = math.max(core.num, math.max(core.num, 1 / dart.notNull(this[_minMax](core.num._check(dart.dload(axis, _zoomFactor)), 0, 1)), 1) + 0.25, 1);
          if (cumulative >= 1) {
            let origin = dart.equals(dart.dload(axis, _orientation), charts.AxisOrientation.horizontal) ? dart.notNull(xPos) / dart.notNull(this[_chart][_chartAxis][_axisClipRect].width) : 1 - dart.notNull(yPos) / dart.notNull(this[_chart][_chartAxis][_axisClipRect].height);
            origin = origin > 1 ? 1 : origin < 0 ? 0 : origin;
            zoomFactor = cumulative === 1 ? 1.0 : this[_minMax](1 / cumulative, 0, 1);
            this[_zoomPosition] = core.double._check(cumulative === 1 ? 0.0 : dart.dsend(dart.dload(axis, _zoomPosition), '+', [dart.dsend(dart.dsend(dart.dload(axis, _zoomFactor), '-', [zoomFactor]), '*', [origin])]));
            if (!dart.equals(dart.dload(axis, _zoomPosition), this[_zoomPosition]) || !dart.equals(dart.dload(axis, _zoomFactor), zoomFactor)) {
              zoomFactor = dart.notNull(this[_zoomPosition]) + dart.notNull(zoomFactor) > 1 ? 1 - dart.notNull(this[_zoomPosition]) : zoomFactor;
            }
            dart.dput(axis, _zoomPosition, this[_zoomPosition]);
            dart.dput(axis, _zoomFactor, zoomFactor);
            dart.dput(axis, _bounds, C348 || CT.C348);
            dart.dput(axis, _visibleLabels, JSArrayOfAxisLabel().of([]));
          }
          if (dart.notNull(zoomFactor) < dart.notNull((t7 = this.maximumZoomLevel, t7 == null ? 0.1 : t7))) {
            dart.dput(axis, _zoomFactor, (t7$ = this.maximumZoomLevel, t7$ == null ? 0.1 : t7$));
            dart.dput(axis, _zoomPosition, 0.0);
            zoomFactor = (t7$0 = this.maximumZoomLevel, t7$0 == null ? 0.1 : t7$0);
          }
        }
        if (this[_chart].onZoomEnd != null) {
          let zoomEndArgs = null;
          charts._zoomEvent(this[_chart], axis, zoomEndArgs, this[_chart].onZoomEnd);
        }
      }
      this[_createZoomState]();
    }
    [_doPan](xPos, yPos) {
      let currentScale = null;
      let value = null;
      for (let axisIndex = 0; axisIndex < dart.notNull(this[_chart][_chartAxis][_axisCollections][$length]); axisIndex = axisIndex + 1) {
        let axis = this[_chart][_chartAxis][_axisCollections][$_get](axisIndex);
        if (dart.equals(dart.dload(axis, _orientation), charts.AxisOrientation.vertical) && !dart.equals(this.zoomMode, charts.ZoomMode.x) || dart.equals(dart.dload(axis, _orientation), charts.AxisOrientation.horizontal) && !dart.equals(this.zoomMode, charts.ZoomMode.y)) {
          let currentZoomPosition = core.double._check(dart.dload(axis, _zoomPosition));
          currentScale = math.max(core.num, 1 / dart.notNull(this[_minMax](core.num._check(dart.dload(axis, _zoomFactor)), 0, 1)), 1);
          if (dart.equals(dart.dload(axis, _orientation), charts.AxisOrientation.horizontal)) {
            value = (dart.notNull(this[_previousMovedPosition].dx) - dart.notNull(xPos)) / dart.notNull(this[_chart][_chartAxis][_axisClipRect].width) / dart.notNull(currentScale);
            currentZoomPosition = this[_minMax](core.num._check(dart.dtest(dart.dload(axis, 'isInversed')) ? dart.dsend(dart.dload(axis, _zoomPosition), '-', [value]) : dart.dsend(dart.dload(axis, _zoomPosition), '+', [value])), 0, 1 - dart.notNull(core.num._check(dart.dload(axis, _zoomFactor))))[$toDouble]();
            dart.dput(axis, _zoomPosition, currentZoomPosition);
          } else {
            value = (dart.notNull(this[_previousMovedPosition].dy) - dart.notNull(yPos)) / dart.notNull(this[_chart][_chartAxis][_axisClipRect].height) / dart.notNull(currentScale);
            currentZoomPosition = this[_minMax](core.num._check(dart.dtest(dart.dload(axis, 'isInversed')) ? dart.dsend(dart.dload(axis, _zoomPosition), '+', [value]) : dart.dsend(dart.dload(axis, _zoomPosition), '-', [value])), 0, 1 - dart.notNull(core.num._check(dart.dload(axis, _zoomFactor))))[$toDouble]();
            dart.dput(axis, _zoomPosition, currentZoomPosition);
          }
        }
      }
      this[_createZoomState]();
    }
    [_drawSelectionZoomRect](currentX, currentY, startX, startY) {
      let t7;
      let clipRect = this[_chart][_chartAxis][_axisClipRect];
      let startPosition = new ui.Offset.new(dart.notNull(startX) < dart.notNull(clipRect.left) ? clipRect.left : startX, dart.notNull(startY) < dart.notNull(clipRect.top) ? clipRect.top : startY);
      let currentMousePosition = new ui.Offset.new(dart.notNull(currentX) > dart.notNull(clipRect.right) ? clipRect.right : dart.notNull(currentX) < dart.notNull(clipRect.left) ? clipRect.left : currentX, dart.notNull(currentY) > dart.notNull(clipRect.bottom) ? clipRect.bottom : dart.notNull(currentY) < dart.notNull(clipRect.top) ? clipRect.top : currentY);
      this[_rectPath] = ui.Path.new();
      if (dart.equals(this.zoomMode, charts.ZoomMode.x)) {
        this[_rectPath].moveTo(startPosition.dx, clipRect.top);
        this[_rectPath].lineTo(startPosition.dx, clipRect.bottom);
        this[_rectPath].lineTo(currentMousePosition.dx, clipRect.bottom);
        this[_rectPath].lineTo(currentMousePosition.dx, clipRect.top);
        this[_rectPath].close();
      } else if (dart.equals(this.zoomMode, charts.ZoomMode.y)) {
        this[_rectPath].moveTo(clipRect.left, startPosition.dy);
        this[_rectPath].lineTo(clipRect.left, currentMousePosition.dy);
        this[_rectPath].lineTo(clipRect.right, currentMousePosition.dy);
        this[_rectPath].lineTo(clipRect.right, startPosition.dy);
        this[_rectPath].close();
      } else {
        this[_rectPath].moveTo(startPosition.dx, startPosition.dy);
        this[_rectPath].lineTo(startPosition.dx, currentMousePosition.dy);
        this[_rectPath].lineTo(currentMousePosition.dx, currentMousePosition.dy);
        this[_rectPath].lineTo(currentMousePosition.dx, startPosition.dy);
        this[_rectPath].close();
      }
      this[_zoomingRect] = this[_rectPath].getBounds();
      t7 = this[_chart][_chartState].zoomRepaintNotifier;
      t7.value = dart.notNull(t7.value) + 1;
    }
    [_doSelectionZooming](zoomRect) {
      let t7, t7$, t7$0, t7$1;
      let zoomEndArgs = null;
      let rect = this[_chart][_chartAxis][_axisClipRect];
      for (let axisIndex = 0; axisIndex < dart.notNull(this[_chart][_chartAxis][_axisCollections][$length]); axisIndex = axisIndex + 1) {
        let axis = this[_chart][_chartAxis][_axisCollections][$_get](axisIndex);
        let zoomStartArgs = null;
        if (this[_chart].onZoomStart != null) charts._zoomEvent(this[_chart], axis, zoomStartArgs, this[_chart].onZoomStart);
        axis[_previousZoomFactor] = axis[_zoomFactor];
        axis[_previousZoomPosition] = axis[_zoomPosition];
        if (dart.equals(axis[_orientation], charts.AxisOrientation.horizontal)) {
          if (!dart.equals(this.zoomMode, charts.ZoomMode.y)) {
            t7 = axis;
            t7[_zoomPosition] = dart.notNull(t7[_zoomPosition]) + ((dart.notNull(zoomRect.left) - dart.notNull(rect.left)) / dart.notNull(rect.width))[$abs]() * dart.notNull(axis[_zoomFactor]);
            t7$ = axis;
            t7$[_zoomFactor] = dart.notNull(t7$[_zoomFactor]) * (dart.notNull(zoomRect.width) / dart.notNull(rect.width));
            if (this.maximumZoomLevel != null) {
              axis[_zoomFactor] = dart.notNull(axis[_zoomFactor]) >= dart.notNull(this.maximumZoomLevel) ? axis[_zoomFactor] : this.maximumZoomLevel;
            }
          }
        } else {
          if (!dart.equals(this.zoomMode, charts.ZoomMode.x)) {
            t7$0 = axis;
            t7$0[_zoomPosition] = dart.notNull(t7$0[_zoomPosition]) + (1 - ((dart.notNull(zoomRect.height) + (dart.notNull(zoomRect.top) - dart.notNull(rect.top))) / dart.notNull(rect.height))[$abs]()) * dart.notNull(axis[_zoomFactor]);
            t7$1 = axis;
            t7$1[_zoomFactor] = dart.notNull(t7$1[_zoomFactor]) * (dart.notNull(zoomRect.height) / dart.notNull(rect.height));
            if (this.maximumZoomLevel != null) {
              axis[_zoomFactor] = dart.notNull(axis[_zoomFactor]) >= dart.notNull(this.maximumZoomLevel) ? axis[_zoomFactor] : this.maximumZoomLevel;
            }
          }
        }
        if (this[_chart].onZoomEnd != null) charts._zoomEvent(this[_chart], axis, zoomEndArgs, this[_chart].onZoomEnd);
      }
      zoomRect = C348 || CT.C348;
      this[_rectPath] = ui.Path.new();
      this[_createZoomState]();
    }
    [_performPinchZooming](touchStartList, touchMoveList) {
      let touch0StartX = null;
      let touch0StartY = null;
      let touch1StartX = null;
      let touch1StartY = null;
      let touch0EndX = null;
      let touch0EndY = null;
      let touch1EndX = null;
      let touch1EndY = null;
      if (!(dart.notNull(this[_zoomingRect].width) > 0 && dart.notNull(this[_zoomingRect].height) > 0)) {
        this[_calculateZoomAxesRange](this[_chart]);
        this[_delayRedraw] = true;
        let offsetRect = this[_chart][_chartAxis][_axisClipRect];
        let elementOffsetRect = this[_chart][_chartState].containerRect;
        touch0StartX = dart.notNull(touchStartList[$_get](0).position.dx) - dart.notNull(elementOffsetRect.left);
        touch0StartY = dart.notNull(touchStartList[$_get](0).position.dy) - dart.notNull(elementOffsetRect.top);
        touch0EndX = dart.notNull(touchMoveList[$_get](0).position.dx) - dart.notNull(elementOffsetRect.left);
        touch0EndY = dart.notNull(touchMoveList[$_get](0).position.dy) - dart.notNull(elementOffsetRect.top);
        touch1StartX = dart.notNull(touchStartList[$_get](1).position.dx) - dart.notNull(elementOffsetRect.left);
        touch1StartY = dart.notNull(touchStartList[$_get](1).position.dy) - dart.notNull(elementOffsetRect.top);
        touch1EndX = dart.notNull(touchMoveList[$_get](1).position.dx) - dart.notNull(elementOffsetRect.left);
        touch1EndY = dart.notNull(touchMoveList[$_get](1).position.dy) - dart.notNull(elementOffsetRect.top);
        let scaleX = null;
        let scaleY = null;
        let clipX = null;
        let clipY = null;
        let pinchRect = null;
        scaleX = (dart.notNull(touch0EndX) - dart.notNull(touch1EndX))[$abs]() / (dart.notNull(touch0StartX) - dart.notNull(touch1StartX))[$abs]();
        scaleY = (dart.notNull(touch0EndY) - dart.notNull(touch1EndY))[$abs]() / (dart.notNull(touch0StartY) - dart.notNull(touch1StartY))[$abs]();
        clipX = (dart.notNull(offsetRect.left) - dart.notNull(touch0EndX)) / dart.notNull(scaleX) + math.min(core.num, touch0StartX, touch1StartX);
        clipY = (dart.notNull(offsetRect.top) - dart.notNull(touch0EndY)) / dart.notNull(scaleY) + math.min(core.num, touch0StartY, touch1StartY);
        pinchRect = new ui.Rect.fromLTWH(clipX, clipY, dart.notNull(offsetRect.width) / dart.notNull(scaleX), dart.notNull(offsetRect.height) / dart.notNull(scaleY));
        this[_calculatePinchZoomFactor](this[_chart], pinchRect);
        if (dart.notNull(this[_chart][_chartAxis][_axisCollections][$_get](0)[_zoomFactor]) > 0.05 && dart.notNull(this[_chart][_chartAxis][_axisCollections][$_get](1)[_zoomFactor]) > 0.05) {
          this[_chart][_chartState].zoomProgress = true;
          this[_createZoomState]();
        }
      }
    }
    [_createZoomState]() {
      this[_chart][_chartState].zoomedAxisStates = JSArrayOfChartAxis().of([]);
      this[_chart][_chartState].zoomedAxisStates[$addAll](this[_chart][_chartAxis][_axisCollections]);
      this[_chart][_chartState][_redraw]();
    }
    [_calculatePinchZoomFactor](chart, pinchRect) {
      let mode = this.zoomMode;
      let selectionMin = null;
      let selectionMax = null;
      let rangeMin = null;
      let rangeMax = null;
      let value = null;
      let axisTrans = null;
      let currentZoomPosition = null;
      let currentZoomFactor = null;
      let currentFactor = null;
      let currentPosition = null;
      let offsetRect = chart[_chartAxis][_axisClipRect];
      let _zoomAxes = chart[_chartState].zoomAxes;
      for (let axisIndex = 0; axisIndex < dart.notNull(chart[_chartAxis][_axisCollections][$length]); axisIndex = axisIndex + 1) {
        let axis = chart[_chartAxis][_axisCollections][$_get](axisIndex);
        if (dart.equals(axis[_orientation], charts.AxisOrientation.horizontal) && !dart.equals(mode, charts.ZoomMode.y) || dart.equals(axis[_orientation], charts.AxisOrientation.vertical) && !dart.equals(mode, charts.ZoomMode.x)) {
          if (dart.equals(axis[_orientation], charts.AxisOrientation.horizontal)) {
            value = dart.notNull(pinchRect.left) - dart.notNull(offsetRect.left);
            axisTrans = dart.notNull(offsetRect.width) / dart.notNull(_zoomAxes[$_get](axisIndex).delta);
            rangeMin = dart.notNull(value) / dart.notNull(axisTrans) + dart.notNull(_zoomAxes[$_get](axisIndex).min);
            value = dart.notNull(pinchRect.left) + dart.notNull(pinchRect.width) - dart.notNull(offsetRect.left);
            rangeMax = dart.notNull(value) / dart.notNull(axisTrans) + dart.notNull(_zoomAxes[$_get](axisIndex).min);
          } else {
            value = dart.notNull(pinchRect.top) - dart.notNull(offsetRect.top);
            axisTrans = dart.notNull(offsetRect.height) / dart.notNull(_zoomAxes[$_get](axisIndex).delta);
            rangeMin = (dart.notNull(value) * -1 + dart.notNull(offsetRect.height)) / dart.notNull(axisTrans) + dart.notNull(_zoomAxes[$_get](axisIndex).min);
            value = dart.notNull(pinchRect.top) + dart.notNull(pinchRect.height) - dart.notNull(offsetRect.top);
            rangeMax = (dart.notNull(value) * -1 + dart.notNull(offsetRect.height)) / dart.notNull(axisTrans) + dart.notNull(_zoomAxes[$_get](axisIndex).min);
          }
          selectionMin = math.min(core.num, rangeMin, rangeMax);
          selectionMax = math.max(core.num, rangeMin, rangeMax);
          currentPosition = (dart.notNull(selectionMin) - dart.notNull(_zoomAxes[$_get](axisIndex).actualMin)) / dart.notNull(_zoomAxes[$_get](axisIndex).actualDelta);
          currentFactor = (dart.notNull(selectionMax) - dart.notNull(selectionMin)) / dart.notNull(_zoomAxes[$_get](axisIndex).actualDelta);
          currentZoomPosition = dart.notNull(currentPosition) < 0 ? 0.0 : currentPosition;
          currentZoomFactor = dart.notNull(currentFactor) > 1 ? 1.0 : currentFactor;
          this.onPinch(axis, currentZoomPosition, currentZoomFactor);
        }
      }
    }
    [_minMax](value, min, max) {
      return dart.notNull(value) > dart.notNull(max) ? max : dart.notNull(value) < dart.notNull(min) ? min : value;
    }
    [_calculateZoomAxesRange](chart) {
      let t7;
      for (let index = 0; index < dart.notNull(chart[_chartAxis][_axisCollections][$length]); index = index + 1) {
        let axis = chart[_chartAxis][_axisCollections][$_get](index);
        let range = new charts._ZoomAxisRange.new();
        let axisRange = axis[_visibleRange];
        if (this[_chart][_chartState].zoomAxes != null && dart.test(this[_chart][_chartState].zoomAxes[$isNotEmpty]) && index <= dart.notNull(this[_chart][_chartState].zoomAxes[$length]) - 1) {
          if (!dart.test(this[_delayRedraw])) {
            this[_chart][_chartState].zoomAxes[$_get](index).min = core.num._check(axisRange.minimum);
            this[_chart][_chartState].zoomAxes[$_get](index).delta = axisRange.delta;
          }
        } else {
          t7 = chart[_chartState];
          t7.zoomAxes == null ? t7.zoomAxes = JSArrayOf_ZoomAxisRange().of([]) : null;
          range.actualMin = core.num._check(axis[_actualRange].minimum);
          range.actualDelta = axis[_actualRange].delta;
          range.min = core.num._check(axisRange.minimum);
          range.delta = axisRange.delta;
          this[_chart][_chartState].zoomAxes[$add](range);
        }
      }
    }
    zoomIn() {
      let t7;
      this[_chart][_chartState].zoomProgress = true;
      let needZoom = null;
      for (let index = 0; index < dart.notNull(this[_chart][_chartAxis][_axisCollections][$length]); index = index + 1) {
        let axis = this[_chart][_chartAxis][_axisCollections][$_get](index);
        if (dart.dtest(dart.dsend(dart.dload(axis, _zoomFactor), '<=', [1.0])) && dart.dtest(dart.dsend(dart.dload(axis, _zoomFactor), '>', [0.0]))) {
          if (dart.dtest(dart.dsend(dart.dsend(dart.dload(axis, _zoomFactor), '-', [0.1]), '<', [0]))) {
            needZoom = false;
            break;
          } else {
            t7 = axis;
            dart.dput(t7, _zoomFactor, dart.dsend(dart.dload(t7, _zoomFactor), '-', [0.1]));
            dart.dput(axis, _zoomPosition, 0.2);
            needZoom = true;
          }
        }
      }
      if (dart.equals(needZoom, true)) {
        this[_chart][_chartState][_redraw]();
      }
    }
    zoomOut() {
      let t7;
      for (let index = 0; index < dart.notNull(this[_chart][_chartAxis][_axisCollections][$length]); index = index + 1) {
        let axis = this[_chart][_chartAxis][_axisCollections][$_get](index);
        if (dart.dtest(dart.dsend(dart.dload(axis, _zoomFactor), '<', [1.0])) && dart.dtest(dart.dsend(dart.dload(axis, _zoomFactor), '>', [0.0]))) {
          t7 = axis;
          dart.dput(t7, _zoomFactor, dart.dsend(dart.dload(t7, _zoomFactor), '+', [0.1]));
          dart.dput(axis, _zoomPosition, 0.2);
          dart.dput(axis, _zoomFactor, dart.dtest(dart.dsend(dart.dload(axis, _zoomFactor), '>', [1.0])) ? 1.0 : dart.dtest(dart.dsend(dart.dload(axis, _zoomFactor), '<', [0.0])) ? 0.0 : dart.dload(axis, _zoomFactor));
        }
      }
      this[_chart][_chartState][_redraw]();
    }
    zoomByFactor(zoomFactor) {
      for (let index = 0; index < dart.notNull(this[_chart][_chartAxis][_axisCollections][$length]); index = index + 1) {
        let axis = this[_chart][_chartAxis][_axisCollections][$_get](index);
        dart.dput(axis, _zoomFactor, zoomFactor);
        this[_chart][_chartState][_redraw]();
      }
    }
    zoomByRect(rect) {
      return this[_chart].zoomPanBehavior[_doSelectionZooming](rect);
    }
    zoomToSingleAxis(axiss, zoomPosition, zoomFactor) {
      let axis = axiss;
      dart.dput(axis, _zoomFactor, zoomFactor);
      dart.dput(axis, _zoomPosition, zoomPosition);
      this[_chart][_chartState][_redraw]();
    }
    panToDirection(direction) {
      direction = direction[$toLowerCase]();
      for (let axisIndex = 0; axisIndex < dart.notNull(this[_chart][_chartAxis][_axisCollections][$length]); axisIndex = axisIndex + 1) {
        let axis = this[_chart][_chartAxis][_axisCollections][$_get](axisIndex);
        if (dart.equals(dart.dload(axis, _orientation), charts.AxisOrientation.horizontal)) {
          if (direction === "left") {
            dart.dput(axis, _zoomPosition, dart.dtest(dart.dsend(dart.dload(axis, _zoomPosition), '>', [0])) && dart.dtest(dart.dsend(dart.dload(axis, _zoomPosition), '<=', [0.9])) ? dart.dsend(dart.dload(axis, _zoomPosition), '-', [0.1]) : dart.dload(axis, _zoomPosition));
            dart.dput(axis, _zoomPosition, dart.dtest(dart.dsend(dart.dload(axis, _zoomPosition), '<', [0.0])) ? 0.0 : dart.dload(axis, _zoomPosition));
          }
          if (direction === "right") {
            dart.dput(axis, _zoomPosition, dart.dtest(dart.dsend(dart.dload(axis, _zoomPosition), '>=', [0])) && dart.dtest(dart.dsend(dart.dload(axis, _zoomPosition), '<', [1])) ? dart.dsend(dart.dload(axis, _zoomPosition), '+', [0.1]) : dart.dload(axis, _zoomPosition));
            dart.dput(axis, _zoomPosition, dart.dtest(dart.dsend(dart.dload(axis, _zoomPosition), '>', [1.0])) ? 1.0 : dart.dload(axis, _zoomPosition));
          }
        } else {
          if (direction === "bottom") {
            dart.dput(axis, _zoomPosition, dart.dtest(dart.dsend(dart.dload(axis, _zoomPosition), '>', [0])) && dart.dtest(dart.dsend(dart.dload(axis, _zoomPosition), '<=', [0.9])) ? dart.dsend(dart.dload(axis, _zoomPosition), '-', [0.1]) : dart.dload(axis, _zoomPosition));
            dart.dput(axis, _zoomPosition, dart.dtest(dart.dsend(dart.dload(axis, _zoomPosition), '<', [0.0])) ? 0.0 : dart.dload(axis, _zoomPosition));
          }
          if (direction === "top") {
            dart.dput(axis, _zoomPosition, dart.dtest(dart.dsend(dart.dload(axis, _zoomPosition), '>=', [0])) && dart.dtest(dart.dsend(dart.dload(axis, _zoomPosition), '<', [1])) ? dart.dsend(dart.dload(axis, _zoomPosition), '+', [0.1]) : dart.dload(axis, _zoomPosition));
            dart.dput(axis, _zoomPosition, dart.dtest(dart.dsend(dart.dload(axis, _zoomPosition), '>', [1.0])) ? 1.0 : dart.dload(axis, _zoomPosition));
          }
        }
      }
      this[_chart][_chartState][_redraw]();
    }
    [_performMouseWheelZooming](event, mouseX, mouseY) {
      let direction = dart.notNull(event.scrollDelta.dy) / 120 > 0 ? -1 : 1;
      let origin = 0.5;
      let cumulative = null;
      let zoomFactor = null;
      let zoomPosition = null;
      this[_chart][_chartState].zoomProgress = true;
      this[_calculateZoomAxesRange](this[_chart]);
      this[_isPanning] = this[_chart].zoomPanBehavior.enablePanning;
      let zoomStartArgs = null;
      for (let axisIndex = 0; axisIndex < dart.notNull(this[_chart][_chartAxis][_axisCollections][$length]); axisIndex = axisIndex + 1) {
        let axis = this[_chart][_chartAxis][_axisCollections][$_get](axisIndex);
        if (this[_chart].onZoomStart != null) charts._zoomEvent(this[_chart], axis, zoomStartArgs, this[_chart].onZoomStart);
        if (dart.equals(dart.dload(axis, _orientation), charts.AxisOrientation.vertical) && !dart.equals(this.zoomMode, charts.ZoomMode.x) || dart.equals(dart.dload(axis, _orientation), charts.AxisOrientation.horizontal) && !dart.equals(this.zoomMode, charts.ZoomMode.y)) {
          cumulative = math.max(core.num, math.max(core.num, 1 / dart.notNull(this[_minMax](core.num._check(dart.dload(axis, _zoomFactor)), 0, 1)), 1) + 0.25 * direction, 1);
          if (dart.notNull(cumulative) >= 1) {
            origin = dart.equals(dart.dload(axis, _orientation), charts.AxisOrientation.horizontal) ? dart.notNull(mouseX) / dart.notNull(this[_chart][_chartAxis][_axisClipRect].width) : 1 - dart.notNull(mouseY) / dart.notNull(this[_chart][_chartAxis][_axisClipRect].height);
            origin = origin > 1 ? 1 : origin < 0 ? 0 : origin;
            zoomFactor = cumulative === 1 ? 1 : this[_minMax](1 / dart.notNull(cumulative), 0, 1);
            zoomPosition = core.num._check(cumulative === 1 ? 0 : dart.dsend(dart.dload(axis, _zoomPosition), '+', [dart.dsend(dart.dsend(dart.dload(axis, _zoomFactor), '-', [zoomFactor]), '*', [origin])]));
            if (!dart.equals(dart.dload(axis, _zoomPosition), zoomPosition) || !dart.equals(dart.dload(axis, _zoomFactor), zoomFactor)) {
              zoomFactor = dart.notNull(zoomPosition) + dart.notNull(zoomFactor) > 1 ? 1 - dart.notNull(zoomPosition) : zoomFactor;
            }
            dart.dput(axis, _zoomPosition, zoomPosition);
            dart.dput(axis, _zoomFactor, zoomFactor);
            dart.dput(axis, _bounds, C348 || CT.C348);
            dart.dput(axis, _visibleLabels, JSArrayOfAxisLabel().of([]));
            if (this[_chart].onZoomEnd != null) {
              let zoomEndArgs = null;
              charts._zoomEvent(this[_chart], axis, zoomEndArgs, this[_chart].onZoomEnd);
            }
          }
        }
      }
      this[_createZoomState]();
    }
    reset() {
      for (let index = 0; index < dart.notNull(this[_chart][_chartAxis][_axisCollections][$length]); index = index + 1) {
        let axis = this[_chart][_chartAxis][_axisCollections][$_get](index);
        dart.dput(axis, _zoomFactor, 1.0);
        dart.dput(axis, _zoomPosition, 0.0);
      }
      this[_chart][_chartState][_redraw]();
    }
    onPan(xPos, yPos) {
      return this[_doPan](xPos, yPos);
    }
    onDoubleTap(xPos, yPos, zoomFactor) {
      return this[_doubleTapZooming](xPos, yPos, zoomFactor);
    }
    onPaint(canvas) {
      return this[_painter].drawRect(canvas);
    }
    onDrawSelectionZoomRect(currentX, currentY, startX, startY) {
      return this[_drawSelectionZoomRect](currentX, currentY, startX, startY);
    }
    onPinchStart(axis, firstX, firstY, secondX, secondY, scaleFactor) {
    }
    onPinchEnd(axis, firstX, firstY, secondX, secondY, scaleFactor) {
    }
    onPinch(axis, position, scaleFactor) {
      axis[_zoomFactor] = scaleFactor;
      axis[_zoomPosition] = position;
    }
  };
  (charts.ZoomPanBehavior.new = function(opts) {
    let enablePinching = opts && 'enablePinching' in opts ? opts.enablePinching : false;
    let enableDoubleTapZooming = opts && 'enableDoubleTapZooming' in opts ? opts.enableDoubleTapZooming : false;
    let enablePanning = opts && 'enablePanning' in opts ? opts.enablePanning : false;
    let enableSelectionZooming = opts && 'enableSelectionZooming' in opts ? opts.enableSelectionZooming : false;
    let enableMouseWheelZooming = opts && 'enableMouseWheelZooming' in opts ? opts.enableMouseWheelZooming : false;
    let zoomMode = opts && 'zoomMode' in opts ? opts.zoomMode : C591 || CT.C591;
    let maximumZoomLevel = opts && 'maximumZoomLevel' in opts ? opts.maximumZoomLevel : null;
    let selectionRectBorderWidth = opts && 'selectionRectBorderWidth' in opts ? opts.selectionRectBorderWidth : 1;
    let selectionRectBorderColor = opts && 'selectionRectBorderColor' in opts ? opts.selectionRectBorderColor : null;
    let selectionRectColor = opts && 'selectionRectColor' in opts ? opts.selectionRectColor : null;
    this[_chart] = null;
    this[_painter] = null;
    this[_previousMovedPosition] = null;
    this[_isPanning] = null;
    this[_canPerformSelection] = null;
    this[_isPinching] = null;
    this[_zoomingRect] = C348 || CT.C348;
    this[_delayRedraw] = false;
    this[_zoomFactor] = null;
    this[_zoomPosition] = null;
    this[_rectPath] = null;
    this[enablePinching$] = enablePinching;
    this[enableDoubleTapZooming$] = enableDoubleTapZooming;
    this[enablePanning$] = enablePanning;
    this[enableSelectionZooming$] = enableSelectionZooming;
    this[enableMouseWheelZooming$] = enableMouseWheelZooming;
    this[zoomMode$] = zoomMode;
    this[maximumZoomLevel$] = maximumZoomLevel;
    this[selectionRectBorderWidth$] = selectionRectBorderWidth;
    this[selectionRectBorderColor$] = selectionRectBorderColor;
    this[selectionRectColor$] = selectionRectColor;
    ;
  }).prototype = charts.ZoomPanBehavior.prototype;
  dart.addTypeTests(charts.ZoomPanBehavior);
  dart.setMethodSignature(charts.ZoomPanBehavior, () => ({
    __proto__: dart.getMethods(charts.ZoomPanBehavior.__proto__),
    [_setChart]: dart.fnType(dart.void, [charts.SfCartesianChart]),
    [_doubleTapZooming]: dart.fnType(dart.void, [core.double, core.double, core.double]),
    [_doPan]: dart.fnType(dart.void, [core.double, core.double]),
    [_drawSelectionZoomRect]: dart.fnType(dart.void, [core.double, core.double, core.double, core.double]),
    [_doSelectionZooming]: dart.fnType(dart.void, [ui.Rect]),
    [_performPinchZooming]: dart.fnType(dart.void, [core.List$(events.PointerEvent), core.List$(events.PointerEvent)]),
    [_createZoomState]: dart.fnType(dart.void, []),
    [_calculatePinchZoomFactor]: dart.fnType(dart.void, [charts.SfCartesianChart, ui.Rect]),
    [_minMax]: dart.fnType(core.num, [core.num, core.num, core.num]),
    [_calculateZoomAxesRange]: dart.fnType(dart.void, [charts.SfCartesianChart]),
    zoomIn: dart.fnType(dart.void, []),
    zoomOut: dart.fnType(dart.void, []),
    zoomByFactor: dart.fnType(dart.void, [core.double]),
    zoomByRect: dart.fnType(dart.void, [ui.Rect]),
    zoomToSingleAxis: dart.fnType(dart.void, [charts.ChartAxis, core.double, core.double]),
    panToDirection: dart.fnType(dart.void, [core.String]),
    [_performMouseWheelZooming]: dart.fnType(dart.void, [events.PointerScrollEvent, core.double, core.double]),
    reset: dart.fnType(dart.void, []),
    onPan: dart.fnType(dart.void, [core.double, core.double]),
    onDoubleTap: dart.fnType(dart.void, [core.double, core.double, core.double]),
    onPaint: dart.fnType(dart.void, [ui.Canvas]),
    onDrawSelectionZoomRect: dart.fnType(dart.void, [core.double, core.double, core.double, core.double]),
    onPinchStart: dart.fnType(dart.void, [charts.ChartAxis, core.double, core.double, core.double, core.double, core.double]),
    onPinchEnd: dart.fnType(dart.void, [charts.ChartAxis, core.double, core.double, core.double, core.double, core.double]),
    onPinch: dart.fnType(dart.void, [charts.ChartAxis, core.double, core.double])
  }));
  dart.setLibraryUri(charts.ZoomPanBehavior, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.ZoomPanBehavior, () => ({
    __proto__: dart.getFields(charts.ZoomPanBehavior.__proto__),
    enablePinching: dart.finalFieldType(core.bool),
    enableDoubleTapZooming: dart.finalFieldType(core.bool),
    enablePanning: dart.finalFieldType(core.bool),
    enableSelectionZooming: dart.finalFieldType(core.bool),
    enableMouseWheelZooming: dart.finalFieldType(core.bool),
    zoomMode: dart.finalFieldType(charts.ZoomMode),
    maximumZoomLevel: dart.finalFieldType(core.double),
    selectionRectBorderWidth: dart.finalFieldType(core.double),
    selectionRectBorderColor: dart.finalFieldType(ui.Color),
    selectionRectColor: dart.finalFieldType(ui.Color),
    [_chart]: dart.fieldType(charts.SfCartesianChart),
    [_painter]: dart.fieldType(charts._ZoomRectPainter),
    [_previousMovedPosition]: dart.fieldType(ui.Offset),
    [_isPanning]: dart.fieldType(core.bool),
    [_canPerformSelection]: dart.fieldType(core.bool),
    [_isPinching]: dart.fieldType(core.bool),
    [_zoomingRect]: dart.fieldType(ui.Rect),
    [_delayRedraw]: dart.fieldType(core.bool),
    [_zoomFactor]: dart.fieldType(core.double),
    [_zoomPosition]: dart.fieldType(core.double),
    [_rectPath]: dart.fieldType(ui.Path)
  }));
  charts._ZoomAxisRange = class _ZoomAxisRange extends core.Object {};
  (charts._ZoomAxisRange.new = function(opts) {
    let actualMin = opts && 'actualMin' in opts ? opts.actualMin : null;
    let actualDelta = opts && 'actualDelta' in opts ? opts.actualDelta : null;
    let min = opts && 'min' in opts ? opts.min : null;
    let delta = opts && 'delta' in opts ? opts.delta : null;
    this.actualMin = actualMin;
    this.actualDelta = actualDelta;
    this.min = min;
    this.delta = delta;
    ;
  }).prototype = charts._ZoomAxisRange.prototype;
  dart.addTypeTests(charts._ZoomAxisRange);
  dart.setLibraryUri(charts._ZoomAxisRange, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._ZoomAxisRange, () => ({
    __proto__: dart.getFields(charts._ZoomAxisRange.__proto__),
    actualMin: dart.fieldType(core.num),
    actualDelta: dart.fieldType(core.num),
    min: dart.fieldType(core.num),
    delta: dart.fieldType(core.num)
  }));
  let C592;
  charts.AxisOrientation = class AxisOrientation extends core.Object {
    toString() {
      return this[_name$];
    }
  };
  (charts.AxisOrientation.new = function(index, _name) {
    this.index = index;
    this[_name$] = _name;
    ;
  }).prototype = charts.AxisOrientation.prototype;
  dart.addTypeTests(charts.AxisOrientation);
  dart.setLibraryUri(charts.AxisOrientation, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.AxisOrientation, () => ({
    __proto__: dart.getFields(charts.AxisOrientation.__proto__),
    index: dart.finalFieldType(core.int),
    [_name$]: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(charts.AxisOrientation, ['toString']);
  charts.AxisOrientation.vertical = C350 || CT.C350;
  charts.AxisOrientation.horizontal = C349 || CT.C349;
  charts.AxisOrientation.values = C592 || CT.C592;
  let C593;
  let C594;
  let C595;
  let C596;
  let C597;
  let C598;
  charts.ChartRangePadding = class ChartRangePadding extends core.Object {
    toString() {
      return this[_name$];
    }
  };
  (charts.ChartRangePadding.new = function(index, _name) {
    this.index = index;
    this[_name$] = _name;
    ;
  }).prototype = charts.ChartRangePadding.prototype;
  dart.addTypeTests(charts.ChartRangePadding);
  dart.setLibraryUri(charts.ChartRangePadding, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.ChartRangePadding, () => ({
    __proto__: dart.getFields(charts.ChartRangePadding.__proto__),
    index: dart.finalFieldType(core.int),
    [_name$]: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(charts.ChartRangePadding, ['toString']);
  charts.ChartRangePadding.auto = C593 || CT.C593;
  charts.ChartRangePadding.none = C594 || CT.C594;
  charts.ChartRangePadding.normal = C595 || CT.C595;
  charts.ChartRangePadding.additional = C596 || CT.C596;
  charts.ChartRangePadding.round = C597 || CT.C597;
  charts.ChartRangePadding.values = C598 || CT.C598;
  let C599;
  let C600;
  let C601;
  charts.LabelPlacement = class LabelPlacement extends core.Object {
    toString() {
      return this[_name$];
    }
  };
  (charts.LabelPlacement.new = function(index, _name) {
    this.index = index;
    this[_name$] = _name;
    ;
  }).prototype = charts.LabelPlacement.prototype;
  dart.addTypeTests(charts.LabelPlacement);
  dart.setLibraryUri(charts.LabelPlacement, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.LabelPlacement, () => ({
    __proto__: dart.getFields(charts.LabelPlacement.__proto__),
    index: dart.finalFieldType(core.int),
    [_name$]: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(charts.LabelPlacement, ['toString']);
  charts.LabelPlacement.betweenTicks = C599 || CT.C599;
  charts.LabelPlacement.onTicks = C600 || CT.C600;
  charts.LabelPlacement.values = C601 || CT.C601;
  let C602;
  let C603;
  let C604;
  charts.AxisLabelIntersectAction = class AxisLabelIntersectAction extends core.Object {
    toString() {
      return this[_name$];
    }
  };
  (charts.AxisLabelIntersectAction.new = function(index, _name) {
    this.index = index;
    this[_name$] = _name;
    ;
  }).prototype = charts.AxisLabelIntersectAction.prototype;
  dart.addTypeTests(charts.AxisLabelIntersectAction);
  dart.setLibraryUri(charts.AxisLabelIntersectAction, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.AxisLabelIntersectAction, () => ({
    __proto__: dart.getFields(charts.AxisLabelIntersectAction.__proto__),
    index: dart.finalFieldType(core.int),
    [_name$]: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(charts.AxisLabelIntersectAction, ['toString']);
  charts.AxisLabelIntersectAction.none = C602 || CT.C602;
  charts.AxisLabelIntersectAction.hide = C603 || CT.C603;
  charts.AxisLabelIntersectAction.wrap = C354 || CT.C354;
  charts.AxisLabelIntersectAction.multipleRows = C351 || CT.C351;
  charts.AxisLabelIntersectAction.rotate45 = C352 || CT.C352;
  charts.AxisLabelIntersectAction.rotate90 = C353 || CT.C353;
  charts.AxisLabelIntersectAction.values = C604 || CT.C604;
  let C605;
  charts.DateTimeIntervalType = class DateTimeIntervalType extends core.Object {
    toString() {
      return this[_name$];
    }
  };
  (charts.DateTimeIntervalType.new = function(index, _name) {
    this.index = index;
    this[_name$] = _name;
    ;
  }).prototype = charts.DateTimeIntervalType.prototype;
  dart.addTypeTests(charts.DateTimeIntervalType);
  dart.setLibraryUri(charts.DateTimeIntervalType, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.DateTimeIntervalType, () => ({
    __proto__: dart.getFields(charts.DateTimeIntervalType.__proto__),
    index: dart.finalFieldType(core.int),
    [_name$]: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(charts.DateTimeIntervalType, ['toString']);
  charts.DateTimeIntervalType.auto = C370 || CT.C370;
  charts.DateTimeIntervalType.years = C364 || CT.C364;
  charts.DateTimeIntervalType.months = C365 || CT.C365;
  charts.DateTimeIntervalType.days = C366 || CT.C366;
  charts.DateTimeIntervalType.hours = C367 || CT.C367;
  charts.DateTimeIntervalType.minutes = C368 || CT.C368;
  charts.DateTimeIntervalType.seconds = C369 || CT.C369;
  charts.DateTimeIntervalType.values = C605 || CT.C605;
  let C606;
  let C607;
  let C608;
  charts.ChartDataLabelPosition = class ChartDataLabelPosition extends core.Object {
    toString() {
      return this[_name$];
    }
  };
  (charts.ChartDataLabelPosition.new = function(index, _name) {
    this.index = index;
    this[_name$] = _name;
    ;
  }).prototype = charts.ChartDataLabelPosition.prototype;
  dart.addTypeTests(charts.ChartDataLabelPosition);
  dart.setLibraryUri(charts.ChartDataLabelPosition, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.ChartDataLabelPosition, () => ({
    __proto__: dart.getFields(charts.ChartDataLabelPosition.__proto__),
    index: dart.finalFieldType(core.int),
    [_name$]: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(charts.ChartDataLabelPosition, ['toString']);
  charts.ChartDataLabelPosition.inside = C606 || CT.C606;
  charts.ChartDataLabelPosition.outside = C607 || CT.C607;
  charts.ChartDataLabelPosition.values = C608 || CT.C608;
  let C609;
  let C610;
  let C611;
  let C612;
  let C613;
  let C614;
  let C615;
  let C616;
  let C617;
  let C618;
  charts.DataMarkerType = class DataMarkerType extends core.Object {
    toString() {
      return this[_name$];
    }
  };
  (charts.DataMarkerType.new = function(index, _name) {
    this.index = index;
    this[_name$] = _name;
    ;
  }).prototype = charts.DataMarkerType.prototype;
  dart.addTypeTests(charts.DataMarkerType);
  dart.setLibraryUri(charts.DataMarkerType, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.DataMarkerType, () => ({
    __proto__: dart.getFields(charts.DataMarkerType.__proto__),
    index: dart.finalFieldType(core.int),
    [_name$]: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(charts.DataMarkerType, ['toString']);
  charts.DataMarkerType.circle = C551 || CT.C551;
  charts.DataMarkerType.rectangle = C609 || CT.C609;
  charts.DataMarkerType.image = C610 || CT.C610;
  charts.DataMarkerType.pentagon = C611 || CT.C611;
  charts.DataMarkerType.verticalLine = C612 || CT.C612;
  charts.DataMarkerType.horizontalLine = C613 || CT.C613;
  charts.DataMarkerType.diamond = C614 || CT.C614;
  charts.DataMarkerType.triangle = C615 || CT.C615;
  charts.DataMarkerType.invertedTriangle = C616 || CT.C616;
  charts.DataMarkerType.none = C617 || CT.C617;
  charts.DataMarkerType.values = C618 || CT.C618;
  let C619;
  let C620;
  let C621;
  let C622;
  let C623;
  charts.SplineType = class SplineType extends core.Object {
    toString() {
      return this[_name$];
    }
  };
  (charts.SplineType.new = function(index, _name) {
    this.index = index;
    this[_name$] = _name;
    ;
  }).prototype = charts.SplineType.prototype;
  dart.addTypeTests(charts.SplineType);
  dart.setLibraryUri(charts.SplineType, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.SplineType, () => ({
    __proto__: dart.getFields(charts.SplineType.__proto__),
    index: dart.finalFieldType(core.int),
    [_name$]: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(charts.SplineType, ['toString']);
  charts.SplineType.natural = C619 || CT.C619;
  charts.SplineType.monotonic = C620 || CT.C620;
  charts.SplineType.cardinal = C621 || CT.C621;
  charts.SplineType.clamped = C622 || CT.C622;
  charts.SplineType.values = C623 || CT.C623;
  let C624;
  let C625;
  let C626;
  let C627;
  charts.EdgeLabelPlacement = class EdgeLabelPlacement extends core.Object {
    toString() {
      return this[_name$];
    }
  };
  (charts.EdgeLabelPlacement.new = function(index, _name) {
    this.index = index;
    this[_name$] = _name;
    ;
  }).prototype = charts.EdgeLabelPlacement.prototype;
  dart.addTypeTests(charts.EdgeLabelPlacement);
  dart.setLibraryUri(charts.EdgeLabelPlacement, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.EdgeLabelPlacement, () => ({
    __proto__: dart.getFields(charts.EdgeLabelPlacement.__proto__),
    index: dart.finalFieldType(core.int),
    [_name$]: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(charts.EdgeLabelPlacement, ['toString']);
  charts.EdgeLabelPlacement.none = C624 || CT.C624;
  charts.EdgeLabelPlacement.hide = C625 || CT.C625;
  charts.EdgeLabelPlacement.shift = C626 || CT.C626;
  charts.EdgeLabelPlacement.values = C627 || CT.C627;
  let C628;
  charts.EmptyPointMode = class EmptyPointMode extends core.Object {
    toString() {
      return this[_name$];
    }
  };
  (charts.EmptyPointMode.new = function(index, _name) {
    this.index = index;
    this[_name$] = _name;
    ;
  }).prototype = charts.EmptyPointMode.prototype;
  dart.addTypeTests(charts.EmptyPointMode);
  dart.setLibraryUri(charts.EmptyPointMode, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.EmptyPointMode, () => ({
    __proto__: dart.getFields(charts.EmptyPointMode.__proto__),
    index: dart.finalFieldType(core.int),
    [_name$]: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(charts.EmptyPointMode, ['toString']);
  charts.EmptyPointMode.gap = C545 || CT.C545;
  charts.EmptyPointMode.zero = C121 || CT.C121;
  charts.EmptyPointMode.drop = C546 || CT.C546;
  charts.EmptyPointMode.average = C120 || CT.C120;
  charts.EmptyPointMode.values = C628 || CT.C628;
  let C629;
  let C630;
  let C631;
  let C632;
  charts.SortingOrder = class SortingOrder extends core.Object {
    toString() {
      return this[_name$];
    }
  };
  (charts.SortingOrder.new = function(index, _name) {
    this.index = index;
    this[_name$] = _name;
    ;
  }).prototype = charts.SortingOrder.prototype;
  dart.addTypeTests(charts.SortingOrder);
  dart.setLibraryUri(charts.SortingOrder, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.SortingOrder, () => ({
    __proto__: dart.getFields(charts.SortingOrder.__proto__),
    index: dart.finalFieldType(core.int),
    [_name$]: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(charts.SortingOrder, ['toString']);
  charts.SortingOrder.ascending = C629 || CT.C629;
  charts.SortingOrder.descending = C630 || CT.C630;
  charts.SortingOrder.none = C631 || CT.C631;
  charts.SortingOrder.values = C632 || CT.C632;
  let C633;
  let C634;
  let C635;
  charts.TickPosition = class TickPosition extends core.Object {
    toString() {
      return this[_name$];
    }
  };
  (charts.TickPosition.new = function(index, _name) {
    this.index = index;
    this[_name$] = _name;
    ;
  }).prototype = charts.TickPosition.prototype;
  dart.addTypeTests(charts.TickPosition);
  dart.setLibraryUri(charts.TickPosition, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.TickPosition, () => ({
    __proto__: dart.getFields(charts.TickPosition.__proto__),
    index: dart.finalFieldType(core.int),
    [_name$]: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(charts.TickPosition, ['toString']);
  charts.TickPosition.inside = C633 || CT.C633;
  charts.TickPosition.outside = C634 || CT.C634;
  charts.TickPosition.values = C635 || CT.C635;
  let C636;
  charts.TrendlineType = class TrendlineType extends core.Object {
    toString() {
      return this[_name$];
    }
  };
  (charts.TrendlineType.new = function(index, _name) {
    this.index = index;
    this[_name$] = _name;
    ;
  }).prototype = charts.TrendlineType.prototype;
  dart.addTypeTests(charts.TrendlineType);
  dart.setLibraryUri(charts.TrendlineType, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.TrendlineType, () => ({
    __proto__: dart.getFields(charts.TrendlineType.__proto__),
    index: dart.finalFieldType(core.int),
    [_name$]: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(charts.TrendlineType, ['toString']);
  charts.TrendlineType.linear = C555 || CT.C555;
  charts.TrendlineType.exponential = C556 || CT.C556;
  charts.TrendlineType.power = C557 || CT.C557;
  charts.TrendlineType.logarithmic = C558 || CT.C558;
  charts.TrendlineType.polynomial = C559 || CT.C559;
  charts.TrendlineType.movingAverage = C560 || CT.C560;
  charts.TrendlineType.values = C636 || CT.C636;
  let C637;
  let C638;
  let C639;
  let C640;
  let C641;
  charts.ActivationMode = class ActivationMode extends core.Object {
    toString() {
      return this[_name$];
    }
  };
  (charts.ActivationMode.new = function(index, _name) {
    this.index = index;
    this[_name$] = _name;
    ;
  }).prototype = charts.ActivationMode.prototype;
  dart.addTypeTests(charts.ActivationMode);
  dart.setLibraryUri(charts.ActivationMode, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.ActivationMode, () => ({
    __proto__: dart.getFields(charts.ActivationMode.__proto__),
    index: dart.finalFieldType(core.int),
    [_name$]: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(charts.ActivationMode, ['toString']);
  charts.ActivationMode.singleTap = C637 || CT.C637;
  charts.ActivationMode.doubleTap = C638 || CT.C638;
  charts.ActivationMode.longPress = C639 || CT.C639;
  charts.ActivationMode.none = C640 || CT.C640;
  charts.ActivationMode.values = C641 || CT.C641;
  let C642;
  let C643;
  let C644;
  let C645;
  let C646;
  charts.TrackballDisplayMode = class TrackballDisplayMode extends core.Object {
    toString() {
      return this[_name$];
    }
  };
  (charts.TrackballDisplayMode.new = function(index, _name) {
    this.index = index;
    this[_name$] = _name;
    ;
  }).prototype = charts.TrackballDisplayMode.prototype;
  dart.addTypeTests(charts.TrackballDisplayMode);
  dart.setLibraryUri(charts.TrackballDisplayMode, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.TrackballDisplayMode, () => ({
    __proto__: dart.getFields(charts.TrackballDisplayMode.__proto__),
    index: dart.finalFieldType(core.int),
    [_name$]: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(charts.TrackballDisplayMode, ['toString']);
  charts.TrackballDisplayMode.none = C642 || CT.C642;
  charts.TrackballDisplayMode.floatAllPoints = C643 || CT.C643;
  charts.TrackballDisplayMode.groupAllPoints = C644 || CT.C644;
  charts.TrackballDisplayMode.nearestPoint = C645 || CT.C645;
  charts.TrackballDisplayMode.values = C646 || CT.C646;
  let C647;
  let C648;
  let C649;
  let C650;
  let C651;
  charts.CrosshairLineType = class CrosshairLineType extends core.Object {
    toString() {
      return this[_name$];
    }
  };
  (charts.CrosshairLineType.new = function(index, _name) {
    this.index = index;
    this[_name$] = _name;
    ;
  }).prototype = charts.CrosshairLineType.prototype;
  dart.addTypeTests(charts.CrosshairLineType);
  dart.setLibraryUri(charts.CrosshairLineType, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.CrosshairLineType, () => ({
    __proto__: dart.getFields(charts.CrosshairLineType.__proto__),
    index: dart.finalFieldType(core.int),
    [_name$]: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(charts.CrosshairLineType, ['toString']);
  charts.CrosshairLineType.both = C647 || CT.C647;
  charts.CrosshairLineType.horizontal = C648 || CT.C648;
  charts.CrosshairLineType.vertical = C649 || CT.C649;
  charts.CrosshairLineType.none = C650 || CT.C650;
  charts.CrosshairLineType.values = C651 || CT.C651;
  let C652;
  let C653;
  let C654;
  let C655;
  charts.TrackballLineType = class TrackballLineType extends core.Object {
    toString() {
      return this[_name$];
    }
  };
  (charts.TrackballLineType.new = function(index, _name) {
    this.index = index;
    this[_name$] = _name;
    ;
  }).prototype = charts.TrackballLineType.prototype;
  dart.addTypeTests(charts.TrackballLineType);
  dart.setLibraryUri(charts.TrackballLineType, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.TrackballLineType, () => ({
    __proto__: dart.getFields(charts.TrackballLineType.__proto__),
    index: dart.finalFieldType(core.int),
    [_name$]: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(charts.TrackballLineType, ['toString']);
  charts.TrackballLineType.vertical = C652 || CT.C652;
  charts.TrackballLineType.horizontal = C653 || CT.C653;
  charts.TrackballLineType.none = C654 || CT.C654;
  charts.TrackballLineType.values = C655 || CT.C655;
  let C656;
  let C657;
  let C658;
  charts.ZoomMode = class ZoomMode extends core.Object {
    toString() {
      return this[_name$];
    }
  };
  (charts.ZoomMode.new = function(index, _name) {
    this.index = index;
    this[_name$] = _name;
    ;
  }).prototype = charts.ZoomMode.prototype;
  dart.addTypeTests(charts.ZoomMode);
  dart.setLibraryUri(charts.ZoomMode, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.ZoomMode, () => ({
    __proto__: dart.getFields(charts.ZoomMode.__proto__),
    index: dart.finalFieldType(core.int),
    [_name$]: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(charts.ZoomMode, ['toString']);
  charts.ZoomMode.x = C656 || CT.C656;
  charts.ZoomMode.y = C657 || CT.C657;
  charts.ZoomMode.xy = C591 || CT.C591;
  charts.ZoomMode.values = C658 || CT.C658;
  let C659;
  let C660;
  let C661;
  let C662;
  charts.SelectionType = class SelectionType extends core.Object {
    toString() {
      return this[_name$];
    }
  };
  (charts.SelectionType.new = function(index, _name) {
    this.index = index;
    this[_name$] = _name;
    ;
  }).prototype = charts.SelectionType.prototype;
  dart.addTypeTests(charts.SelectionType);
  dart.setLibraryUri(charts.SelectionType, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.SelectionType, () => ({
    __proto__: dart.getFields(charts.SelectionType.__proto__),
    index: dart.finalFieldType(core.int),
    [_name$]: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(charts.SelectionType, ['toString']);
  charts.SelectionType.point = C659 || CT.C659;
  charts.SelectionType.series = C660 || CT.C660;
  charts.SelectionType.cluster = C661 || CT.C661;
  charts.SelectionType.values = C662 || CT.C662;
  let C663;
  let C664;
  let C665;
  charts.CoordinateUnit = class CoordinateUnit extends core.Object {
    toString() {
      return this[_name$];
    }
  };
  (charts.CoordinateUnit.new = function(index, _name) {
    this.index = index;
    this[_name$] = _name;
    ;
  }).prototype = charts.CoordinateUnit.prototype;
  dart.addTypeTests(charts.CoordinateUnit);
  dart.setLibraryUri(charts.CoordinateUnit, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.CoordinateUnit, () => ({
    __proto__: dart.getFields(charts.CoordinateUnit.__proto__),
    index: dart.finalFieldType(core.int),
    [_name$]: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(charts.CoordinateUnit, ['toString']);
  charts.CoordinateUnit.point = C663 || CT.C663;
  charts.CoordinateUnit.logicalPixel = C664 || CT.C664;
  charts.CoordinateUnit.values = C665 || CT.C665;
  let C666;
  let C667;
  let C668;
  charts.AnnotationRegion = class AnnotationRegion extends core.Object {
    toString() {
      return this[_name$];
    }
  };
  (charts.AnnotationRegion.new = function(index, _name) {
    this.index = index;
    this[_name$] = _name;
    ;
  }).prototype = charts.AnnotationRegion.prototype;
  dart.addTypeTests(charts.AnnotationRegion);
  dart.setLibraryUri(charts.AnnotationRegion, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.AnnotationRegion, () => ({
    __proto__: dart.getFields(charts.AnnotationRegion.__proto__),
    index: dart.finalFieldType(core.int),
    [_name$]: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(charts.AnnotationRegion, ['toString']);
  charts.AnnotationRegion.chart = C666 || CT.C666;
  charts.AnnotationRegion.plotArea = C667 || CT.C667;
  charts.AnnotationRegion.values = C668 || CT.C668;
  let C669;
  let C670;
  let C671;
  let C672;
  charts.BorderDrawMode = class BorderDrawMode extends core.Object {
    toString() {
      return this[_name$];
    }
  };
  (charts.BorderDrawMode.new = function(index, _name) {
    this.index = index;
    this[_name$] = _name;
    ;
  }).prototype = charts.BorderDrawMode.prototype;
  dart.addTypeTests(charts.BorderDrawMode);
  dart.setLibraryUri(charts.BorderDrawMode, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.BorderDrawMode, () => ({
    __proto__: dart.getFields(charts.BorderDrawMode.__proto__),
    index: dart.finalFieldType(core.int),
    [_name$]: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(charts.BorderDrawMode, ['toString']);
  charts.BorderDrawMode.all = C669 || CT.C669;
  charts.BorderDrawMode.top = C670 || CT.C670;
  charts.BorderDrawMode.excludeBottom = C671 || CT.C671;
  charts.BorderDrawMode.values = C672 || CT.C672;
  let C673;
  let C674;
  let C675;
  charts.RangeAreaBorderMode = class RangeAreaBorderMode extends core.Object {
    toString() {
      return this[_name$];
    }
  };
  (charts.RangeAreaBorderMode.new = function(index, _name) {
    this.index = index;
    this[_name$] = _name;
    ;
  }).prototype = charts.RangeAreaBorderMode.prototype;
  dart.addTypeTests(charts.RangeAreaBorderMode);
  dart.setLibraryUri(charts.RangeAreaBorderMode, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.RangeAreaBorderMode, () => ({
    __proto__: dart.getFields(charts.RangeAreaBorderMode.__proto__),
    index: dart.finalFieldType(core.int),
    [_name$]: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(charts.RangeAreaBorderMode, ['toString']);
  charts.RangeAreaBorderMode.all = C673 || CT.C673;
  charts.RangeAreaBorderMode.excludeSides = C674 || CT.C674;
  charts.RangeAreaBorderMode.values = C675 || CT.C675;
  let C676;
  let C677;
  let C678;
  let C679;
  charts.TextAnchor = class TextAnchor extends core.Object {
    toString() {
      return this[_name$];
    }
  };
  (charts.TextAnchor.new = function(index, _name) {
    this.index = index;
    this[_name$] = _name;
    ;
  }).prototype = charts.TextAnchor.prototype;
  dart.addTypeTests(charts.TextAnchor);
  dart.setLibraryUri(charts.TextAnchor, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.TextAnchor, () => ({
    __proto__: dart.getFields(charts.TextAnchor.__proto__),
    index: dart.finalFieldType(core.int),
    [_name$]: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(charts.TextAnchor, ['toString']);
  charts.TextAnchor.start = C676 || CT.C676;
  charts.TextAnchor.middle = C677 || CT.C677;
  charts.TextAnchor.end = C678 || CT.C678;
  charts.TextAnchor.values = C679 || CT.C679;
  let C680;
  let C681;
  let C682;
  charts.TooltipPosition = class TooltipPosition extends core.Object {
    toString() {
      return this[_name$];
    }
  };
  (charts.TooltipPosition.new = function(index, _name) {
    this.index = index;
    this[_name$] = _name;
    ;
  }).prototype = charts.TooltipPosition.prototype;
  dart.addTypeTests(charts.TooltipPosition);
  dart.setLibraryUri(charts.TooltipPosition, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.TooltipPosition, () => ({
    __proto__: dart.getFields(charts.TooltipPosition.__proto__),
    index: dart.finalFieldType(core.int),
    [_name$]: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(charts.TooltipPosition, ['toString']);
  charts.TooltipPosition.auto = C680 || CT.C680;
  charts.TooltipPosition.pointer = C681 || CT.C681;
  charts.TooltipPosition.values = C682 || CT.C682;
  let C683;
  let C684;
  let C685;
  let C686;
  charts.MacdType = class MacdType extends core.Object {
    toString() {
      return this[_name$];
    }
  };
  (charts.MacdType.new = function(index, _name) {
    this.index = index;
    this[_name$] = _name;
    ;
  }).prototype = charts.MacdType.prototype;
  dart.addTypeTests(charts.MacdType);
  dart.setLibraryUri(charts.MacdType, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.MacdType, () => ({
    __proto__: dart.getFields(charts.MacdType.__proto__),
    index: dart.finalFieldType(core.int),
    [_name$]: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(charts.MacdType, ['toString']);
  charts.MacdType.both = C683 || CT.C683;
  charts.MacdType.line = C684 || CT.C684;
  charts.MacdType.histogram = C685 || CT.C685;
  charts.MacdType.values = C686 || CT.C686;
  let C687;
  let C688;
  let C689;
  let C690;
  charts.LabelAlignment = class LabelAlignment extends core.Object {
    toString() {
      return this[_name$];
    }
  };
  (charts.LabelAlignment.new = function(index, _name) {
    this.index = index;
    this[_name$] = _name;
    ;
  }).prototype = charts.LabelAlignment.prototype;
  dart.addTypeTests(charts.LabelAlignment);
  dart.setLibraryUri(charts.LabelAlignment, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.LabelAlignment, () => ({
    __proto__: dart.getFields(charts.LabelAlignment.__proto__),
    index: dart.finalFieldType(core.int),
    [_name$]: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(charts.LabelAlignment, ['toString']);
  charts.LabelAlignment.far = C687 || CT.C687;
  charts.LabelAlignment.near = C688 || CT.C688;
  charts.LabelAlignment.center = C689 || CT.C689;
  charts.LabelAlignment.values = C690 || CT.C690;
  charts._ChartShapeUtils = class _ChartShapeUtils extends core.Object {
    static _drawCircle(path, x, y, width, height) {
      path.addArc(new ui.Rect.fromLTRB(dart.notNull(x) - dart.notNull(width) / 2, dart.notNull(y) - dart.notNull(height) / 2, dart.notNull(x) + dart.notNull(width) / 2, dart.notNull(y) + dart.notNull(height) / 2), 0.0, 2 * 3.141592653589793);
    }
    static _drawRectangle(path, x, y, width, height) {
      path.addRect(new ui.Rect.fromLTRB(dart.notNull(x) - dart.notNull(width) / 2, dart.notNull(y) - dart.notNull(height) / 2, dart.notNull(x) + dart.notNull(width) / 2, dart.notNull(y) + dart.notNull(height) / 2));
    }
    static _drawPentagon(path, x, y, width, height) {
      let xValue = null;
      let yValue = null;
      for (let i = 0; dart.dtest(dart.dsend(i, '<=', [5])); i = dart.dsend(i, '+', [1])) {
        xValue = dart.notNull(width) / 2 * math.cos(3.141592653589793 / 180 * dart.notNull(core.num._check(dart.dsend(i, '*', [72]))));
        yValue = dart.notNull(height) / 2 * math.sin(3.141592653589793 / 180 * dart.notNull(core.num._check(dart.dsend(i, '*', [72]))));
        dart.equals(i, 0) ? path.moveTo(dart.notNull(x) + dart.notNull(xValue), dart.notNull(y) + dart.notNull(yValue)) : path.lineTo(dart.notNull(x) + dart.notNull(xValue), dart.notNull(y) + dart.notNull(yValue));
      }
      path.close();
    }
    static _drawVerticalLine(path, x, y, width, height) {
      path.moveTo(x, dart.notNull(y) + dart.notNull(height) / 2);
      path.lineTo(x, dart.notNull(y) - dart.notNull(height) / 2);
    }
    static _drawInvertedTriangle(path, x, y, width, height) {
      path.moveTo(dart.notNull(x) + dart.notNull(width) / 2, dart.notNull(y) - dart.notNull(height) / 2);
      path.lineTo(x, dart.notNull(y) + dart.notNull(height) / 2);
      path.lineTo(dart.notNull(x) - dart.notNull(width) / 2, dart.notNull(y) - dart.notNull(height) / 2);
      path.lineTo(dart.notNull(x) + dart.notNull(width) / 2, dart.notNull(y) - dart.notNull(height) / 2);
      path.close();
    }
    static _drawHorizontalLine(path, x, y, width, height) {
      path.moveTo(dart.notNull(x) - dart.notNull(width) / 2, y);
      path.lineTo(dart.notNull(x) + dart.notNull(width) / 2, y);
    }
    static _drawDiamond(path, x, y, width, height) {
      path.moveTo(dart.notNull(x) - dart.notNull(width) / 2, y);
      path.lineTo(x, dart.notNull(y) + dart.notNull(height) / 2);
      path.lineTo(dart.notNull(x) + dart.notNull(width) / 2, y);
      path.lineTo(x, dart.notNull(y) - dart.notNull(height) / 2);
      path.lineTo(dart.notNull(x) - dart.notNull(width) / 2, y);
      path.close();
    }
    static _drawTriangle(path, x, y, width, height) {
      path.moveTo(dart.notNull(x) - dart.notNull(width) / 2, dart.notNull(y) + dart.notNull(height) / 2);
      path.lineTo(dart.notNull(x) + dart.notNull(width) / 2, dart.notNull(y) + dart.notNull(height) / 2);
      path.lineTo(x, dart.notNull(y) - dart.notNull(height) / 2);
      path.lineTo(dart.notNull(x) - dart.notNull(width) / 2, dart.notNull(y) + dart.notNull(height) / 2);
      path.close();
    }
  };
  (charts._ChartShapeUtils.new = function() {
    ;
  }).prototype = charts._ChartShapeUtils.prototype;
  dart.addTypeTests(charts._ChartShapeUtils);
  dart.setLibraryUri(charts._ChartShapeUtils, "package:syncfusion_flutter_charts/charts.dart");
  charts._StackingInfo = class _StackingInfo extends core.Object {};
  (charts._StackingInfo.new = function(groupName, _stackingValues) {
    this.groupName = groupName;
    this[_stackingValues$] = _stackingValues;
    ;
  }).prototype = charts._StackingInfo.prototype;
  dart.addTypeTests(charts._StackingInfo);
  dart.setLibraryUri(charts._StackingInfo, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._StackingInfo, () => ({
    __proto__: dart.getFields(charts._StackingInfo.__proto__),
    groupName: dart.fieldType(core.String),
    [_stackingValues$]: dart.fieldType(core.List$(core.double))
  }));
  charts._StackingGroup = class _StackingGroup extends core.Object {};
  (charts._StackingGroup.new = function(groupName, stackCount) {
    this.groupName = groupName;
    this.stackCount = stackCount;
    ;
  }).prototype = charts._StackingGroup.prototype;
  dart.addTypeTests(charts._StackingGroup);
  dart.setLibraryUri(charts._StackingGroup, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._StackingGroup, () => ({
    __proto__: dart.getFields(charts._StackingGroup.__proto__),
    groupName: dart.fieldType(core.String),
    stackCount: dart.fieldType(core.int)
  }));
  charts._ControlPoints = class _ControlPoints extends core.Object {};
  (charts._ControlPoints.new = function(controlPoint1, controlPoint2) {
    this.controlPoint1 = controlPoint1;
    this.controlPoint2 = controlPoint2;
    ;
  }).prototype = charts._ControlPoints.prototype;
  dart.addTypeTests(charts._ControlPoints);
  dart.setLibraryUri(charts._ControlPoints, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._ControlPoints, () => ({
    __proto__: dart.getFields(charts._ControlPoints.__proto__),
    controlPoint1: dart.finalFieldType(core.double),
    controlPoint2: dart.finalFieldType(core.double)
  }));
  charts._ListControlPoints = class _ListControlPoints extends core.Object {};
  (charts._ListControlPoints.new = function(_listControlPoints) {
    this[_listControlPoints$] = _listControlPoints;
    ;
  }).prototype = charts._ListControlPoints.prototype;
  dart.addTypeTests(charts._ListControlPoints);
  dart.setLibraryUri(charts._ListControlPoints, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._ListControlPoints, () => ({
    __proto__: dart.getFields(charts._ListControlPoints.__proto__),
    [_listControlPoints$]: dart.finalFieldType(core.List$(charts._ControlPoints))
  }));
  charts._ChartContainer = class _ChartContainer extends framework.SingleChildRenderObjectWidget {
    createRenderObject(context) {
      return new charts._ChartContainerBox.new();
    }
  };
  (charts._ChartContainer.new = function(opts) {
    let child = opts && 'child' in opts ? opts.child : null;
    let $36creationLocationd_0dea112b090073317d4 = opts && '$creationLocationd_0dea112b090073317d4' in opts ? opts.$creationLocationd_0dea112b090073317d4 : null;
    charts._ChartContainer.__proto__.new.call(this, {child: child, $creationLocationd_0dea112b090073317d4: $36creationLocationd_0dea112b090073317d4});
    ;
  }).prototype = charts._ChartContainer.prototype;
  dart.addTypeTests(charts._ChartContainer);
  dart.setMethodSignature(charts._ChartContainer, () => ({
    __proto__: dart.getMethods(charts._ChartContainer.__proto__),
    createRenderObject: dart.fnType(object.RenderObject, [framework.BuildContext])
  }));
  dart.setLibraryUri(charts._ChartContainer, "package:syncfusion_flutter_charts/charts.dart");
  charts._ChartContainerBox = class _ChartContainerBox extends shifted_box.RenderShiftedBox {
    performLayout() {
      let height = this.constraints.maxHeight;
      let width = this.constraints.maxWidth;
      if (height === 1 / 0) {
        height = this.minHeight;
      }
      if (width === 1 / 0) {
        width = this.minWidth;
      }
      this.child.layout(new box.BoxConstraints.new({minHeight: 0.0, maxHeight: height, minWidth: 0.0, maxWidth: width}), {parentUsesSize: true});
      this.size = new ui.Size.new(width, height);
    }
    paint(context, offset) {
      super.paint(context, offset);
    }
  };
  (charts._ChartContainerBox.new = function() {
    this.minHeight = 300.0;
    this.minWidth = 300.0;
    charts._ChartContainerBox.__proto__.new.call(this, null);
    ;
  }).prototype = charts._ChartContainerBox.prototype;
  dart.addTypeTests(charts._ChartContainerBox);
  dart.setLibraryUri(charts._ChartContainerBox, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._ChartContainerBox, () => ({
    __proto__: dart.getFields(charts._ChartContainerBox.__proto__),
    minHeight: dart.fieldType(core.double),
    minWidth: dart.fieldType(core.double)
  }));
  const text$4 = dart.privateName(charts, "ChartTitle.text");
  const textStyle$3 = dart.privateName(charts, "ChartTitle.textStyle");
  const alignment$1 = dart.privateName(charts, "ChartTitle.alignment");
  const backgroundColor$3 = dart.privateName(charts, "ChartTitle.backgroundColor");
  const borderColor$12 = dart.privateName(charts, "ChartTitle.borderColor");
  const borderWidth$13 = dart.privateName(charts, "ChartTitle.borderWidth");
  charts.ChartTitle = class ChartTitle extends core.Object {
    get text() {
      return this[text$4];
    }
    set text(value) {
      super.text = value;
    }
    get textStyle() {
      return this[textStyle$3];
    }
    set textStyle(value) {
      super.textStyle = value;
    }
    get alignment() {
      return this[alignment$1];
    }
    set alignment(value) {
      super.alignment = value;
    }
    get backgroundColor() {
      return this[backgroundColor$3];
    }
    set backgroundColor(value) {
      super.backgroundColor = value;
    }
    get borderColor() {
      return this[borderColor$12];
    }
    set borderColor(value) {
      super.borderColor = value;
    }
    get borderWidth() {
      return this[borderWidth$13];
    }
    set borderWidth(value) {
      super.borderWidth = value;
    }
  };
  (charts.ChartTitle.new = function(opts) {
    let text = opts && 'text' in opts ? opts.text : "";
    let textStyle = opts && 'textStyle' in opts ? opts.textStyle : null;
    let alignment = opts && 'alignment' in opts ? opts.alignment : C355 || CT.C355;
    let borderColor = opts && 'borderColor' in opts ? opts.borderColor : C0 || CT.C0;
    let borderWidth = opts && 'borderWidth' in opts ? opts.borderWidth : 0;
    let backgroundColor = opts && 'backgroundColor' in opts ? opts.backgroundColor : null;
    this[text$4] = text;
    this[alignment$1] = alignment;
    this[borderColor$12] = borderColor;
    this[borderWidth$13] = borderWidth;
    this[backgroundColor$3] = backgroundColor;
    this[textStyle$3] = charts._getTextStyle({textStyle: textStyle, fontSize: 15.0, fontFamily: "Segoe UI", fontStyle: ui.FontStyle.normal, fontWeight: ui.FontWeight.normal});
    ;
  }).prototype = charts.ChartTitle.prototype;
  dart.addTypeTests(charts.ChartTitle);
  dart.setLibraryUri(charts.ChartTitle, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.ChartTitle, () => ({
    __proto__: dart.getFields(charts.ChartTitle.__proto__),
    text: dart.finalFieldType(core.String),
    textStyle: dart.finalFieldType(charts.ChartTextStyle),
    alignment: dart.finalFieldType(charts.ChartAlignment),
    backgroundColor: dart.finalFieldType(ui.Color),
    borderColor: dart.finalFieldType(ui.Color),
    borderWidth: dart.finalFieldType(core.double)
  }));
  const _name$0 = dart.privateName(ui, "_name");
  let C691;
  const FontWeight_index = dart.privateName(ui, "FontWeight.index");
  let C692;
  const color$13 = dart.privateName(charts, "ChartTextStyle.color");
  const fontFamily$ = dart.privateName(charts, "ChartTextStyle.fontFamily");
  const fontStyle$ = dart.privateName(charts, "ChartTextStyle.fontStyle");
  const fontWeight$ = dart.privateName(charts, "ChartTextStyle.fontWeight");
  const fontSize$ = dart.privateName(charts, "ChartTextStyle.fontSize");
  charts.ChartTextStyle = class ChartTextStyle extends core.Object {
    get color() {
      return this[color$13];
    }
    set color(value) {
      this[color$13] = value;
    }
    get fontFamily() {
      return this[fontFamily$];
    }
    set fontFamily(value) {
      this[fontFamily$] = value;
    }
    get fontStyle() {
      return this[fontStyle$];
    }
    set fontStyle(value) {
      this[fontStyle$] = value;
    }
    get fontWeight() {
      return this[fontWeight$];
    }
    set fontWeight(value) {
      this[fontWeight$] = value;
    }
    get fontSize() {
      return this[fontSize$];
    }
    set fontSize(value) {
      this[fontSize$] = value;
    }
  };
  (charts.ChartTextStyle.new = function(opts) {
    let color = opts && 'color' in opts ? opts.color : null;
    let fontFamily = opts && 'fontFamily' in opts ? opts.fontFamily : "Roboto";
    let fontStyle = opts && 'fontStyle' in opts ? opts.fontStyle : C691 || CT.C691;
    let fontWeight = opts && 'fontWeight' in opts ? opts.fontWeight : C692 || CT.C692;
    let fontSize = opts && 'fontSize' in opts ? opts.fontSize : 12;
    this[color$13] = color;
    this[fontFamily$] = fontFamily;
    this[fontStyle$] = fontStyle;
    this[fontWeight$] = fontWeight;
    this[fontSize$] = fontSize;
    ;
  }).prototype = charts.ChartTextStyle.prototype;
  dart.addTypeTests(charts.ChartTextStyle);
  dart.setLibraryUri(charts.ChartTextStyle, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.ChartTextStyle, () => ({
    __proto__: dart.getFields(charts.ChartTextStyle.__proto__),
    color: dart.fieldType(ui.Color),
    fontFamily: dart.fieldType(core.String),
    fontStyle: dart.fieldType(ui.FontStyle),
    fontWeight: dart.fieldType(ui.FontWeight),
    fontSize: dart.fieldType(core.double)
  }));
  const isVisible$9 = dart.privateName(charts, "Legend.isVisible");
  const position$ = dart.privateName(charts, "Legend.position");
  const alignment$2 = dart.privateName(charts, "Legend.alignment");
  const backgroundColor$4 = dart.privateName(charts, "Legend.backgroundColor");
  const borderColor$13 = dart.privateName(charts, "Legend.borderColor");
  const borderWidth$14 = dart.privateName(charts, "Legend.borderWidth");
  const iconBorderColor$ = dart.privateName(charts, "Legend.iconBorderColor");
  const iconBorderWidth$ = dart.privateName(charts, "Legend.iconBorderWidth");
  const opacity$7 = dart.privateName(charts, "Legend.opacity");
  const height$3 = dart.privateName(charts, "Legend.height");
  const width$11 = dart.privateName(charts, "Legend.width");
  const padding$ = dart.privateName(charts, "Legend.padding");
  const iconHeight$ = dart.privateName(charts, "Legend.iconHeight");
  const iconWidth$ = dart.privateName(charts, "Legend.iconWidth");
  const toggleSeriesVisibility$ = dart.privateName(charts, "Legend.toggleSeriesVisibility");
  const textStyle$4 = dart.privateName(charts, "Legend.textStyle");
  const isResponsive$ = dart.privateName(charts, "Legend.isResponsive");
  const orientation$ = dart.privateName(charts, "Legend.orientation");
  const title$4 = dart.privateName(charts, "Legend.title");
  const legendItemBuilder$ = dart.privateName(charts, "Legend.legendItemBuilder");
  const overflowMode$ = dart.privateName(charts, "Legend.overflowMode");
  const itemPadding$ = dart.privateName(charts, "Legend.itemPadding");
  const image$0 = dart.privateName(charts, "Legend.image");
  const legendPosition = dart.privateName(charts, "Legend.legendPosition");
  charts.Legend = class Legend extends core.Object {
    get isVisible() {
      return this[isVisible$9];
    }
    set isVisible(value) {
      super.isVisible = value;
    }
    get position() {
      return this[position$];
    }
    set position(value) {
      super.position = value;
    }
    get alignment() {
      return this[alignment$2];
    }
    set alignment(value) {
      super.alignment = value;
    }
    get backgroundColor() {
      return this[backgroundColor$4];
    }
    set backgroundColor(value) {
      super.backgroundColor = value;
    }
    get borderColor() {
      return this[borderColor$13];
    }
    set borderColor(value) {
      super.borderColor = value;
    }
    get borderWidth() {
      return this[borderWidth$14];
    }
    set borderWidth(value) {
      super.borderWidth = value;
    }
    get iconBorderColor() {
      return this[iconBorderColor$];
    }
    set iconBorderColor(value) {
      super.iconBorderColor = value;
    }
    get iconBorderWidth() {
      return this[iconBorderWidth$];
    }
    set iconBorderWidth(value) {
      super.iconBorderWidth = value;
    }
    get opacity() {
      return this[opacity$7];
    }
    set opacity(value) {
      super.opacity = value;
    }
    get height() {
      return this[height$3];
    }
    set height(value) {
      super.height = value;
    }
    get width() {
      return this[width$11];
    }
    set width(value) {
      super.width = value;
    }
    get padding() {
      return this[padding$];
    }
    set padding(value) {
      super.padding = value;
    }
    get iconHeight() {
      return this[iconHeight$];
    }
    set iconHeight(value) {
      super.iconHeight = value;
    }
    get iconWidth() {
      return this[iconWidth$];
    }
    set iconWidth(value) {
      super.iconWidth = value;
    }
    get toggleSeriesVisibility() {
      return this[toggleSeriesVisibility$];
    }
    set toggleSeriesVisibility(value) {
      super.toggleSeriesVisibility = value;
    }
    get textStyle() {
      return this[textStyle$4];
    }
    set textStyle(value) {
      super.textStyle = value;
    }
    get isResponsive() {
      return this[isResponsive$];
    }
    set isResponsive(value) {
      super.isResponsive = value;
    }
    get orientation() {
      return this[orientation$];
    }
    set orientation(value) {
      super.orientation = value;
    }
    get title() {
      return this[title$4];
    }
    set title(value) {
      super.title = value;
    }
    get legendItemBuilder() {
      return this[legendItemBuilder$];
    }
    set legendItemBuilder(value) {
      super.legendItemBuilder = value;
    }
    get overflowMode() {
      return this[overflowMode$];
    }
    set overflowMode(value) {
      super.overflowMode = value;
    }
    get itemPadding() {
      return this[itemPadding$];
    }
    set itemPadding(value) {
      super.itemPadding = value;
    }
    get image() {
      return this[image$0];
    }
    set image(value) {
      super.image = value;
    }
    get legendPosition() {
      return this[legendPosition];
    }
    set legendPosition(value) {
      this[legendPosition] = value;
    }
  };
  (charts.Legend.new = function(opts) {
    let t7, t7$, t7$0, t7$1, t7$2, t7$3, t7$4, t7$5, t7$6, t7$7, t7$8, t7$9, t7$10, t7$11, t7$12, t7$13, t7$14;
    let isVisible = opts && 'isVisible' in opts ? opts.isVisible : null;
    let position = opts && 'position' in opts ? opts.position : null;
    let alignment = opts && 'alignment' in opts ? opts.alignment : null;
    let backgroundColor = opts && 'backgroundColor' in opts ? opts.backgroundColor : null;
    let borderColor = opts && 'borderColor' in opts ? opts.borderColor : null;
    let borderWidth = opts && 'borderWidth' in opts ? opts.borderWidth : null;
    let opacity = opts && 'opacity' in opts ? opts.opacity : null;
    let height = opts && 'height' in opts ? opts.height : null;
    let width = opts && 'width' in opts ? opts.width : null;
    let padding = opts && 'padding' in opts ? opts.padding : null;
    let iconHeight = opts && 'iconHeight' in opts ? opts.iconHeight : null;
    let iconWidth = opts && 'iconWidth' in opts ? opts.iconWidth : null;
    let toggleSeriesVisibility = opts && 'toggleSeriesVisibility' in opts ? opts.toggleSeriesVisibility : null;
    let textStyle = opts && 'textStyle' in opts ? opts.textStyle : null;
    let isResponsive = opts && 'isResponsive' in opts ? opts.isResponsive : null;
    let orientation = opts && 'orientation' in opts ? opts.orientation : null;
    let title = opts && 'title' in opts ? opts.title : null;
    let overflowMode = opts && 'overflowMode' in opts ? opts.overflowMode : null;
    let legendItemBuilder = opts && 'legendItemBuilder' in opts ? opts.legendItemBuilder : null;
    let iconBorderColor = opts && 'iconBorderColor' in opts ? opts.iconBorderColor : null;
    let iconBorderWidth = opts && 'iconBorderWidth' in opts ? opts.iconBorderWidth : null;
    let itemPadding = opts && 'itemPadding' in opts ? opts.itemPadding : null;
    let image = opts && 'image' in opts ? opts.image : null;
    this[_renderer] = null;
    this[legendPosition] = null;
    this[_orientation] = null;
    this[backgroundColor$4] = backgroundColor;
    this[height$3] = height;
    this[width$11] = width;
    this[legendItemBuilder$] = legendItemBuilder;
    this[image$0] = image;
    this[isVisible$9] = (t7 = isVisible, t7 == null ? false : t7);
    this[position$] = (t7$ = position, t7$ == null ? charts.LegendPosition.auto : t7$);
    this[alignment$2] = (t7$0 = alignment, t7$0 == null ? charts.ChartAlignment.center : t7$0);
    this[borderColor$13] = (t7$1 = borderColor, t7$1 == null ? colors$.Colors.transparent : t7$1);
    this[borderWidth$14] = (t7$2 = borderWidth, t7$2 == null ? 0.0 : t7$2);
    this[iconBorderColor$] = (t7$3 = iconBorderColor, t7$3 == null ? colors$.Colors.transparent : t7$3);
    this[iconBorderWidth$] = (t7$4 = iconBorderWidth, t7$4 == null ? 0.0 : t7$4);
    this[opacity$7] = (t7$5 = opacity, t7$5 == null ? 1.0 : t7$5);
    this[padding$] = (t7$6 = padding, t7$6 == null ? 10.0 : t7$6);
    this[textStyle$4] = charts._getTextStyle({textStyle: textStyle, fontSize: 13.0, fontStyle: ui.FontStyle.normal, fontFamily: "Segoe UI"});
    this[iconHeight$] = (t7$7 = iconHeight, t7$7 == null ? 12.0 : t7$7);
    this[iconWidth$] = (t7$8 = iconWidth, t7$8 == null ? 12.0 : t7$8);
    this[toggleSeriesVisibility$] = (t7$9 = toggleSeriesVisibility, t7$9 == null ? true : t7$9);
    this[isResponsive$] = (t7$10 = isResponsive, t7$10 == null ? false : t7$10);
    this[orientation$] = (t7$11 = orientation, t7$11 == null ? charts.LegendItemOrientation.auto : t7$11);
    this[overflowMode$] = (t7$12 = overflowMode, t7$12 == null ? charts.LegendItemOverflowMode.scroll : t7$12);
    this[itemPadding$] = (t7$13 = itemPadding, t7$13 == null ? 15.0 : t7$13);
    this[title$4] = (t7$14 = title, t7$14 == null ? new charts.LegendTitle.new() : t7$14);
    this[_renderer] = new charts._LegendRenderer.new();
  }).prototype = charts.Legend.prototype;
  dart.addTypeTests(charts.Legend);
  dart.setLibraryUri(charts.Legend, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.Legend, () => ({
    __proto__: dart.getFields(charts.Legend.__proto__),
    isVisible: dart.finalFieldType(core.bool),
    position: dart.finalFieldType(charts.LegendPosition),
    alignment: dart.finalFieldType(charts.ChartAlignment),
    backgroundColor: dart.finalFieldType(ui.Color),
    borderColor: dart.finalFieldType(ui.Color),
    borderWidth: dart.finalFieldType(core.double),
    iconBorderColor: dart.finalFieldType(ui.Color),
    iconBorderWidth: dart.finalFieldType(core.double),
    opacity: dart.finalFieldType(core.double),
    height: dart.finalFieldType(core.String),
    width: dart.finalFieldType(core.String),
    padding: dart.finalFieldType(core.double),
    iconHeight: dart.finalFieldType(core.double),
    iconWidth: dart.finalFieldType(core.double),
    toggleSeriesVisibility: dart.finalFieldType(core.bool),
    textStyle: dart.finalFieldType(charts.ChartTextStyle),
    isResponsive: dart.finalFieldType(core.bool),
    orientation: dart.finalFieldType(charts.LegendItemOrientation),
    title: dart.finalFieldType(charts.LegendTitle),
    legendItemBuilder: dart.finalFieldType(dart.fnType(framework.Widget, [core.String, dart.dynamic, dart.dynamic, core.int])),
    overflowMode: dart.finalFieldType(charts.LegendItemOverflowMode),
    itemPadding: dart.finalFieldType(core.double),
    image: dart.finalFieldType(image_provider.ImageProvider),
    [_renderer]: dart.fieldType(charts._LegendRenderer),
    legendPosition: dart.fieldType(charts.LegendPosition),
    [_orientation]: dart.fieldType(charts.LegendItemOrientation)
  }));
  charts._MeasureWidgetContext = class _MeasureWidgetContext extends core.Object {};
  (charts._MeasureWidgetContext.new = function(opts) {
    let context = opts && 'context' in opts ? opts.context : null;
    let key = opts && 'key' in opts ? opts.key : null;
    let widget = opts && 'widget' in opts ? opts.widget : null;
    let seriesIndex = opts && 'seriesIndex' in opts ? opts.seriesIndex : null;
    let pointIndex = opts && 'pointIndex' in opts ? opts.pointIndex : null;
    this.size = null;
    this.isRender = false;
    this.context = context;
    this.key = key;
    this.widget = widget;
    this.seriesIndex = seriesIndex;
    this.pointIndex = pointIndex;
    ;
  }).prototype = charts._MeasureWidgetContext.prototype;
  dart.addTypeTests(charts._MeasureWidgetContext);
  dart.setLibraryUri(charts._MeasureWidgetContext, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._MeasureWidgetContext, () => ({
    __proto__: dart.getFields(charts._MeasureWidgetContext.__proto__),
    context: dart.fieldType(framework.BuildContext),
    seriesIndex: dart.fieldType(core.int),
    pointIndex: dart.fieldType(core.int),
    key: dart.fieldType(key.Key),
    size: dart.fieldType(ui.Size),
    widget: dart.fieldType(framework.Widget),
    isRender: dart.fieldType(core.bool)
  }));
  const text$5 = dart.privateName(charts, "LegendTitle.text");
  const textStyle$5 = dart.privateName(charts, "LegendTitle.textStyle");
  const alignment$3 = dart.privateName(charts, "LegendTitle.alignment");
  charts.LegendTitle = class LegendTitle extends core.Object {
    get text() {
      return this[text$5];
    }
    set text(value) {
      super.text = value;
    }
    get textStyle() {
      return this[textStyle$5];
    }
    set textStyle(value) {
      super.textStyle = value;
    }
    get alignment() {
      return this[alignment$3];
    }
    set alignment(value) {
      super.alignment = value;
    }
  };
  (charts.LegendTitle.new = function(opts) {
    let t7;
    let text = opts && 'text' in opts ? opts.text : null;
    let textStyle = opts && 'textStyle' in opts ? opts.textStyle : null;
    let alignment = opts && 'alignment' in opts ? opts.alignment : null;
    this[text$5] = text;
    this[textStyle$5] = charts._getTextStyle({textStyle: textStyle, fontSize: 12.0, fontStyle: ui.FontStyle.normal, fontFamily: "Segoe UI"});
    this[alignment$3] = (t7 = alignment, t7 == null ? charts.ChartAlignment.center : t7);
    ;
  }).prototype = charts.LegendTitle.prototype;
  dart.addTypeTests(charts.LegendTitle);
  dart.setLibraryUri(charts.LegendTitle, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.LegendTitle, () => ({
    __proto__: dart.getFields(charts.LegendTitle.__proto__),
    text: dart.finalFieldType(core.String),
    textStyle: dart.finalFieldType(charts.ChartTextStyle),
    alignment: dart.finalFieldType(charts.ChartAlignment)
  }));
  let C695;
  let C696;
  let C697;
  let C698;
  let C699;
  let C700;
  let C701;
  let C702;
  let C703;
  let C704;
  let C705;
  let C694;
  const ColorSwatch__swatch = dart.privateName(colors, "ColorSwatch._swatch");
  let C693;
  const color$14 = dart.privateName(charts, "EmptyPointSettings.color");
  const borderColor$14 = dart.privateName(charts, "EmptyPointSettings.borderColor");
  const borderWidth$15 = dart.privateName(charts, "EmptyPointSettings.borderWidth");
  const mode$ = dart.privateName(charts, "EmptyPointSettings.mode");
  charts.EmptyPointSettings = class EmptyPointSettings extends core.Object {
    get color() {
      return this[color$14];
    }
    set color(value) {
      super.color = value;
    }
    get borderColor() {
      return this[borderColor$14];
    }
    set borderColor(value) {
      super.borderColor = value;
    }
    get borderWidth() {
      return this[borderWidth$15];
    }
    set borderWidth(value) {
      super.borderWidth = value;
    }
    get mode() {
      return this[mode$];
    }
    set mode(value) {
      super.mode = value;
    }
  };
  (charts.EmptyPointSettings.new = function(opts) {
    let color = opts && 'color' in opts ? opts.color : C693 || CT.C693;
    let mode = opts && 'mode' in opts ? opts.mode : C545 || CT.C545;
    let borderColor = opts && 'borderColor' in opts ? opts.borderColor : C0 || CT.C0;
    let borderWidth = opts && 'borderWidth' in opts ? opts.borderWidth : 0;
    this[color$14] = color;
    this[mode$] = mode;
    this[borderColor$14] = borderColor;
    this[borderWidth$15] = borderWidth;
    ;
  }).prototype = charts.EmptyPointSettings.prototype;
  dart.addTypeTests(charts.EmptyPointSettings);
  dart.setLibraryUri(charts.EmptyPointSettings, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.EmptyPointSettings, () => ({
    __proto__: dart.getFields(charts.EmptyPointSettings.__proto__),
    color: dart.finalFieldType(ui.Color),
    borderColor: dart.finalFieldType(ui.Color),
    borderWidth: dart.finalFieldType(core.double),
    mode: dart.finalFieldType(charts.EmptyPointMode)
  }));
  const text$6 = dart.privateName(charts, "TooltipArgs.text");
  const header = dart.privateName(charts, "TooltipArgs.header");
  const locationX = dart.privateName(charts, "TooltipArgs.locationX");
  const locationY = dart.privateName(charts, "TooltipArgs.locationY");
  const seriesIndex = dart.privateName(charts, "TooltipArgs.seriesIndex");
  const dataPoints = dart.privateName(charts, "TooltipArgs.dataPoints");
  const pointIndex = dart.privateName(charts, "TooltipArgs.pointIndex");
  charts.TooltipArgs = class TooltipArgs extends core.Object {
    get text() {
      return this[text$6];
    }
    set text(value) {
      this[text$6] = value;
    }
    get header() {
      return this[header];
    }
    set header(value) {
      this[header] = value;
    }
    get locationX() {
      return this[locationX];
    }
    set locationX(value) {
      this[locationX] = value;
    }
    get locationY() {
      return this[locationY];
    }
    set locationY(value) {
      this[locationY] = value;
    }
    get seriesIndex() {
      return this[seriesIndex];
    }
    set seriesIndex(value) {
      this[seriesIndex] = value;
    }
    get dataPoints() {
      return this[dataPoints];
    }
    set dataPoints(value) {
      this[dataPoints] = value;
    }
    get pointIndex() {
      return this[pointIndex];
    }
    set pointIndex(value) {
      this[pointIndex] = value;
    }
  };
  (charts.TooltipArgs.new = function() {
    this[text$6] = null;
    this[header] = null;
    this[locationX] = null;
    this[locationY] = null;
    this[seriesIndex] = null;
    this[dataPoints] = null;
    this[pointIndex] = null;
    ;
  }).prototype = charts.TooltipArgs.prototype;
  dart.addTypeTests(charts.TooltipArgs);
  dart.setLibraryUri(charts.TooltipArgs, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.TooltipArgs, () => ({
    __proto__: dart.getFields(charts.TooltipArgs.__proto__),
    text: dart.fieldType(core.String),
    header: dart.fieldType(core.String),
    locationX: dart.fieldType(core.double),
    locationY: dart.fieldType(core.double),
    seriesIndex: dart.fieldType(dart.dynamic),
    dataPoints: dart.fieldType(core.List),
    pointIndex: dart.fieldType(core.num)
  }));
  const axisName = dart.privateName(charts, "ActualRangeChangedArgs.axisName");
  const axis = dart.privateName(charts, "ActualRangeChangedArgs.axis");
  const actualMin = dart.privateName(charts, "ActualRangeChangedArgs.actualMin");
  const actualMax = dart.privateName(charts, "ActualRangeChangedArgs.actualMax");
  const actualInterval = dart.privateName(charts, "ActualRangeChangedArgs.actualInterval");
  const visibleMin = dart.privateName(charts, "ActualRangeChangedArgs.visibleMin");
  const visibleMax = dart.privateName(charts, "ActualRangeChangedArgs.visibleMax");
  const visibleInterval = dart.privateName(charts, "ActualRangeChangedArgs.visibleInterval");
  const orientation = dart.privateName(charts, "ActualRangeChangedArgs.orientation");
  charts.ActualRangeChangedArgs = class ActualRangeChangedArgs extends core.Object {
    get axisName() {
      return this[axisName];
    }
    set axisName(value) {
      this[axisName] = value;
    }
    get axis() {
      return this[axis];
    }
    set axis(value) {
      this[axis] = value;
    }
    get actualMin() {
      return this[actualMin];
    }
    set actualMin(value) {
      this[actualMin] = value;
    }
    get actualMax() {
      return this[actualMax];
    }
    set actualMax(value) {
      this[actualMax] = value;
    }
    get actualInterval() {
      return this[actualInterval];
    }
    set actualInterval(value) {
      this[actualInterval] = value;
    }
    get visibleMin() {
      return this[visibleMin];
    }
    set visibleMin(value) {
      this[visibleMin] = value;
    }
    get visibleMax() {
      return this[visibleMax];
    }
    set visibleMax(value) {
      this[visibleMax] = value;
    }
    get visibleInterval() {
      return this[visibleInterval];
    }
    set visibleInterval(value) {
      this[visibleInterval] = value;
    }
    get orientation() {
      return this[orientation];
    }
    set orientation(value) {
      this[orientation] = value;
    }
  };
  (charts.ActualRangeChangedArgs.new = function() {
    this[axisName] = null;
    this[axis] = null;
    this[actualMin] = null;
    this[actualMax] = null;
    this[actualInterval] = null;
    this[visibleMin] = null;
    this[visibleMax] = null;
    this[visibleInterval] = null;
    this[orientation] = null;
    ;
  }).prototype = charts.ActualRangeChangedArgs.prototype;
  dart.addTypeTests(charts.ActualRangeChangedArgs);
  dart.setLibraryUri(charts.ActualRangeChangedArgs, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.ActualRangeChangedArgs, () => ({
    __proto__: dart.getFields(charts.ActualRangeChangedArgs.__proto__),
    axisName: dart.fieldType(core.String),
    axis: dart.fieldType(charts.ChartAxis),
    actualMin: dart.fieldType(dart.dynamic),
    actualMax: dart.fieldType(dart.dynamic),
    actualInterval: dart.fieldType(dart.dynamic),
    visibleMin: dart.fieldType(dart.dynamic),
    visibleMax: dart.fieldType(dart.dynamic),
    visibleInterval: dart.fieldType(dart.dynamic),
    orientation: dart.fieldType(charts.AxisOrientation)
  }));
  const text$7 = dart.privateName(charts, "AxisLabelRenderArgs.text");
  const value$0 = dart.privateName(charts, "AxisLabelRenderArgs.value");
  const axisName$ = dart.privateName(charts, "AxisLabelRenderArgs.axisName");
  const orientation$0 = dart.privateName(charts, "AxisLabelRenderArgs.orientation");
  const axis$ = dart.privateName(charts, "AxisLabelRenderArgs.axis");
  const textStyle = dart.privateName(charts, "AxisLabelRenderArgs.textStyle");
  charts.AxisLabelRenderArgs = class AxisLabelRenderArgs extends core.Object {
    get text() {
      return this[text$7];
    }
    set text(value) {
      this[text$7] = value;
    }
    get value() {
      return this[value$0];
    }
    set value(value) {
      this[value$0] = value;
    }
    get axisName() {
      return this[axisName$];
    }
    set axisName(value) {
      this[axisName$] = value;
    }
    get orientation() {
      return this[orientation$0];
    }
    set orientation(value) {
      this[orientation$0] = value;
    }
    get axis() {
      return this[axis$];
    }
    set axis(value) {
      this[axis$] = value;
    }
    get textStyle() {
      return this[textStyle];
    }
    set textStyle(value) {
      this[textStyle] = value;
    }
  };
  (charts.AxisLabelRenderArgs.new = function() {
    this[text$7] = null;
    this[value$0] = null;
    this[axisName$] = null;
    this[orientation$0] = null;
    this[axis$] = null;
    this[textStyle] = new charts.ChartTextStyle.new();
    ;
  }).prototype = charts.AxisLabelRenderArgs.prototype;
  dart.addTypeTests(charts.AxisLabelRenderArgs);
  dart.setLibraryUri(charts.AxisLabelRenderArgs, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.AxisLabelRenderArgs, () => ({
    __proto__: dart.getFields(charts.AxisLabelRenderArgs.__proto__),
    text: dart.fieldType(core.String),
    value: dart.fieldType(core.num),
    axisName: dart.fieldType(core.String),
    orientation: dart.fieldType(charts.AxisOrientation),
    axis: dart.fieldType(charts.ChartAxis),
    textStyle: dart.fieldType(charts.ChartTextStyle)
  }));
  const text$8 = dart.privateName(charts, "DataLabelRenderArgs.text");
  const textStyle$6 = dart.privateName(charts, "DataLabelRenderArgs.textStyle");
  const series$10 = dart.privateName(charts, "DataLabelRenderArgs.series");
  const dataPoints$ = dart.privateName(charts, "DataLabelRenderArgs.dataPoints");
  const pointIndex$0 = dart.privateName(charts, "DataLabelRenderArgs.pointIndex");
  charts.DataLabelRenderArgs = class DataLabelRenderArgs extends core.Object {
    get text() {
      return this[text$8];
    }
    set text(value) {
      this[text$8] = value;
    }
    get textStyle() {
      return this[textStyle$6];
    }
    set textStyle(value) {
      this[textStyle$6] = value;
    }
    get series() {
      return this[series$10];
    }
    set series(value) {
      this[series$10] = value;
    }
    get dataPoints() {
      return this[dataPoints$];
    }
    set dataPoints(value) {
      this[dataPoints$] = value;
    }
    get pointIndex() {
      return this[pointIndex$0];
    }
    set pointIndex(value) {
      this[pointIndex$0] = value;
    }
  };
  (charts.DataLabelRenderArgs.new = function() {
    this[text$8] = null;
    this[textStyle$6] = new charts.ChartTextStyle.new();
    this[series$10] = null;
    this[dataPoints$] = null;
    this[pointIndex$0] = null;
    ;
  }).prototype = charts.DataLabelRenderArgs.prototype;
  dart.addTypeTests(charts.DataLabelRenderArgs);
  dart.setLibraryUri(charts.DataLabelRenderArgs, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.DataLabelRenderArgs, () => ({
    __proto__: dart.getFields(charts.DataLabelRenderArgs.__proto__),
    text: dart.fieldType(core.String),
    textStyle: dart.fieldType(charts.ChartTextStyle),
    series: dart.fieldType(dart.dynamic),
    dataPoints: dart.fieldType(dart.dynamic),
    pointIndex: dart.fieldType(core.num)
  }));
  const text$9 = dart.privateName(charts, "LegendRenderArgs.text");
  const legendIconType = dart.privateName(charts, "LegendRenderArgs.legendIconType");
  const seriesIndex$0 = dart.privateName(charts, "LegendRenderArgs.seriesIndex");
  const pointIndex$1 = dart.privateName(charts, "LegendRenderArgs.pointIndex");
  const color$15 = dart.privateName(charts, "LegendRenderArgs.color");
  charts.LegendRenderArgs = class LegendRenderArgs extends core.Object {
    get text() {
      return this[text$9];
    }
    set text(value) {
      this[text$9] = value;
    }
    get legendIconType() {
      return this[legendIconType];
    }
    set legendIconType(value) {
      this[legendIconType] = value;
    }
    get seriesIndex() {
      return this[seriesIndex$0];
    }
    set seriesIndex(value) {
      this[seriesIndex$0] = value;
    }
    get pointIndex() {
      return this[pointIndex$1];
    }
    set pointIndex(value) {
      this[pointIndex$1] = value;
    }
    get color() {
      return this[color$15];
    }
    set color(value) {
      this[color$15] = value;
    }
  };
  (charts.LegendRenderArgs.new = function() {
    this[text$9] = null;
    this[legendIconType] = null;
    this[seriesIndex$0] = null;
    this[pointIndex$1] = null;
    this[color$15] = null;
    ;
  }).prototype = charts.LegendRenderArgs.prototype;
  dart.addTypeTests(charts.LegendRenderArgs);
  dart.setLibraryUri(charts.LegendRenderArgs, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.LegendRenderArgs, () => ({
    __proto__: dart.getFields(charts.LegendRenderArgs.__proto__),
    text: dart.fieldType(core.String),
    legendIconType: dart.fieldType(charts.LegendIconType),
    seriesIndex: dart.fieldType(core.int),
    pointIndex: dart.fieldType(core.int),
    color: dart.fieldType(ui.Color)
  }));
  const intercept = dart.privateName(charts, "TrendlineRenderArgs.intercept");
  const trendlineIndex = dart.privateName(charts, "TrendlineRenderArgs.trendlineIndex");
  const seriesIndex$1 = dart.privateName(charts, "TrendlineRenderArgs.seriesIndex");
  const trendlineName = dart.privateName(charts, "TrendlineRenderArgs.trendlineName");
  const seriesName = dart.privateName(charts, "TrendlineRenderArgs.seriesName");
  const color$16 = dart.privateName(charts, "TrendlineRenderArgs.color");
  const opacity = dart.privateName(charts, "TrendlineRenderArgs.opacity");
  const dashArray = dart.privateName(charts, "TrendlineRenderArgs.dashArray");
  const data = dart.privateName(charts, "TrendlineRenderArgs.data");
  charts.TrendlineRenderArgs = class TrendlineRenderArgs extends core.Object {
    get intercept() {
      return this[intercept];
    }
    set intercept(value) {
      this[intercept] = value;
    }
    get trendlineIndex() {
      return this[trendlineIndex];
    }
    set trendlineIndex(value) {
      this[trendlineIndex] = value;
    }
    get seriesIndex() {
      return this[seriesIndex$1];
    }
    set seriesIndex(value) {
      this[seriesIndex$1] = value;
    }
    get trendlineName() {
      return this[trendlineName];
    }
    set trendlineName(value) {
      this[trendlineName] = value;
    }
    get seriesName() {
      return this[seriesName];
    }
    set seriesName(value) {
      this[seriesName] = value;
    }
    get color() {
      return this[color$16];
    }
    set color(value) {
      this[color$16] = value;
    }
    get opacity() {
      return this[opacity];
    }
    set opacity(value) {
      this[opacity] = value;
    }
    get dashArray() {
      return this[dashArray];
    }
    set dashArray(value) {
      this[dashArray] = value;
    }
    get data() {
      return this[data];
    }
    set data(value) {
      this[data] = value;
    }
  };
  (charts.TrendlineRenderArgs.new = function() {
    this[intercept] = null;
    this[trendlineIndex] = null;
    this[seriesIndex$1] = null;
    this[trendlineName] = null;
    this[seriesName] = null;
    this[color$16] = null;
    this[opacity] = null;
    this[dashArray] = null;
    this[data] = null;
    ;
  }).prototype = charts.TrendlineRenderArgs.prototype;
  dart.addTypeTests(charts.TrendlineRenderArgs);
  dart.setLibraryUri(charts.TrendlineRenderArgs, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.TrendlineRenderArgs, () => ({
    __proto__: dart.getFields(charts.TrendlineRenderArgs.__proto__),
    intercept: dart.fieldType(core.double),
    trendlineIndex: dart.fieldType(core.int),
    seriesIndex: dart.fieldType(core.int),
    trendlineName: dart.fieldType(core.String),
    seriesName: dart.fieldType(core.String),
    color: dart.fieldType(ui.Color),
    opacity: dart.fieldType(core.double),
    dashArray: dart.fieldType(core.List$(core.double)),
    data: dart.fieldType(core.List$(charts.CartesianChartPoint))
  }));
  const chartPointInfo = dart.privateName(charts, "TrackballArgs.chartPointInfo");
  charts.TrackballArgs = class TrackballArgs extends core.Object {
    get chartPointInfo() {
      return this[chartPointInfo];
    }
    set chartPointInfo(value) {
      this[chartPointInfo] = value;
    }
  };
  (charts.TrackballArgs.new = function() {
    this[chartPointInfo] = new charts._ChartPointInfo.new();
    ;
  }).prototype = charts.TrackballArgs.prototype;
  dart.addTypeTests(charts.TrackballArgs);
  dart.setLibraryUri(charts.TrackballArgs, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.TrackballArgs, () => ({
    __proto__: dart.getFields(charts.TrackballArgs.__proto__),
    chartPointInfo: dart.fieldType(charts._ChartPointInfo)
  }));
  const axis$0 = dart.privateName(charts, "CrosshairRenderArgs.axis");
  const text$10 = dart.privateName(charts, "CrosshairRenderArgs.text");
  const lineColor = dart.privateName(charts, "CrosshairRenderArgs.lineColor");
  const value$1 = dart.privateName(charts, "CrosshairRenderArgs.value");
  const axisName$0 = dart.privateName(charts, "CrosshairRenderArgs.axisName");
  const orientation$1 = dart.privateName(charts, "CrosshairRenderArgs.orientation");
  charts.CrosshairRenderArgs = class CrosshairRenderArgs extends core.Object {
    get axis() {
      return this[axis$0];
    }
    set axis(value) {
      this[axis$0] = value;
    }
    get text() {
      return this[text$10];
    }
    set text(value) {
      this[text$10] = value;
    }
    get lineColor() {
      return this[lineColor];
    }
    set lineColor(value) {
      this[lineColor] = value;
    }
    get value() {
      return this[value$1];
    }
    set value(value) {
      this[value$1] = value;
    }
    get axisName() {
      return this[axisName$0];
    }
    set axisName(value) {
      this[axisName$0] = value;
    }
    get orientation() {
      return this[orientation$1];
    }
    set orientation(value) {
      this[orientation$1] = value;
    }
  };
  (charts.CrosshairRenderArgs.new = function() {
    this[axis$0] = null;
    this[text$10] = null;
    this[lineColor] = null;
    this[value$1] = null;
    this[axisName$0] = null;
    this[orientation$1] = null;
    ;
  }).prototype = charts.CrosshairRenderArgs.prototype;
  dart.addTypeTests(charts.CrosshairRenderArgs);
  dart.setLibraryUri(charts.CrosshairRenderArgs, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.CrosshairRenderArgs, () => ({
    __proto__: dart.getFields(charts.CrosshairRenderArgs.__proto__),
    axis: dart.fieldType(charts.ChartAxis),
    text: dart.fieldType(core.String),
    lineColor: dart.fieldType(ui.Color),
    value: dart.fieldType(dart.dynamic),
    axisName: dart.fieldType(core.String),
    orientation: dart.fieldType(charts.AxisOrientation)
  }));
  const position = dart.privateName(charts, "ChartTouchInteractionArgs.position");
  charts.ChartTouchInteractionArgs = class ChartTouchInteractionArgs extends core.Object {
    get position() {
      return this[position];
    }
    set position(value) {
      this[position] = value;
    }
  };
  (charts.ChartTouchInteractionArgs.new = function() {
    this[position] = null;
    ;
  }).prototype = charts.ChartTouchInteractionArgs.prototype;
  dart.addTypeTests(charts.ChartTouchInteractionArgs);
  dart.setLibraryUri(charts.ChartTouchInteractionArgs, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.ChartTouchInteractionArgs, () => ({
    __proto__: dart.getFields(charts.ChartTouchInteractionArgs.__proto__),
    position: dart.fieldType(ui.Offset)
  }));
  const axis$1 = dart.privateName(charts, "ZoomPanArgs.axis");
  const currentZoomPosition = dart.privateName(charts, "ZoomPanArgs.currentZoomPosition");
  const currentZoomFactor = dart.privateName(charts, "ZoomPanArgs.currentZoomFactor");
  const previousZoomPosition = dart.privateName(charts, "ZoomPanArgs.previousZoomPosition");
  const previousZoomFactor = dart.privateName(charts, "ZoomPanArgs.previousZoomFactor");
  charts.ZoomPanArgs = class ZoomPanArgs extends core.Object {
    get axis() {
      return this[axis$1];
    }
    set axis(value) {
      this[axis$1] = value;
    }
    get currentZoomPosition() {
      return this[currentZoomPosition];
    }
    set currentZoomPosition(value) {
      this[currentZoomPosition] = value;
    }
    get currentZoomFactor() {
      return this[currentZoomFactor];
    }
    set currentZoomFactor(value) {
      this[currentZoomFactor] = value;
    }
    get previousZoomPosition() {
      return this[previousZoomPosition];
    }
    set previousZoomPosition(value) {
      this[previousZoomPosition] = value;
    }
    get previousZoomFactor() {
      return this[previousZoomFactor];
    }
    set previousZoomFactor(value) {
      this[previousZoomFactor] = value;
    }
  };
  (charts.ZoomPanArgs.new = function() {
    this[axis$1] = null;
    this[currentZoomPosition] = null;
    this[currentZoomFactor] = null;
    this[previousZoomPosition] = null;
    this[previousZoomFactor] = null;
    ;
  }).prototype = charts.ZoomPanArgs.prototype;
  dart.addTypeTests(charts.ZoomPanArgs);
  dart.setLibraryUri(charts.ZoomPanArgs, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.ZoomPanArgs, () => ({
    __proto__: dart.getFields(charts.ZoomPanArgs.__proto__),
    axis: dart.fieldType(charts.ChartAxis),
    currentZoomPosition: dart.fieldType(core.double),
    currentZoomFactor: dart.fieldType(core.double),
    previousZoomPosition: dart.fieldType(core.double),
    previousZoomFactor: dart.fieldType(core.double)
  }));
  const seriesIndex$2 = dart.privateName(charts, "PointTapArgs.seriesIndex");
  const pointIndex$2 = dart.privateName(charts, "PointTapArgs.pointIndex");
  const dataPoints$0 = dart.privateName(charts, "PointTapArgs.dataPoints");
  charts.PointTapArgs = class PointTapArgs extends core.Object {
    get seriesIndex() {
      return this[seriesIndex$2];
    }
    set seriesIndex(value) {
      this[seriesIndex$2] = value;
    }
    get pointIndex() {
      return this[pointIndex$2];
    }
    set pointIndex(value) {
      this[pointIndex$2] = value;
    }
    get dataPoints() {
      return this[dataPoints$0];
    }
    set dataPoints(value) {
      this[dataPoints$0] = value;
    }
  };
  (charts.PointTapArgs.new = function() {
    this[seriesIndex$2] = null;
    this[pointIndex$2] = null;
    this[dataPoints$0] = null;
    ;
  }).prototype = charts.PointTapArgs.prototype;
  dart.addTypeTests(charts.PointTapArgs);
  dart.setLibraryUri(charts.PointTapArgs, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.PointTapArgs, () => ({
    __proto__: dart.getFields(charts.PointTapArgs.__proto__),
    seriesIndex: dart.fieldType(core.int),
    pointIndex: dart.fieldType(core.int),
    dataPoints: dart.fieldType(core.List)
  }));
  const axis$2 = dart.privateName(charts, "AxisLabelTapArgs.axis");
  const text$11 = dart.privateName(charts, "AxisLabelTapArgs.text");
  const value$2 = dart.privateName(charts, "AxisLabelTapArgs.value");
  const axisName$1 = dart.privateName(charts, "AxisLabelTapArgs.axisName");
  charts.AxisLabelTapArgs = class AxisLabelTapArgs extends core.Object {
    get axis() {
      return this[axis$2];
    }
    set axis(value) {
      this[axis$2] = value;
    }
    get text() {
      return this[text$11];
    }
    set text(value) {
      this[text$11] = value;
    }
    get value() {
      return this[value$2];
    }
    set value(value) {
      this[value$2] = value;
    }
    get axisName() {
      return this[axisName$1];
    }
    set axisName(value) {
      this[axisName$1] = value;
    }
  };
  (charts.AxisLabelTapArgs.new = function() {
    this[axis$2] = null;
    this[text$11] = null;
    this[value$2] = null;
    this[axisName$1] = null;
    ;
  }).prototype = charts.AxisLabelTapArgs.prototype;
  dart.addTypeTests(charts.AxisLabelTapArgs);
  dart.setLibraryUri(charts.AxisLabelTapArgs, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.AxisLabelTapArgs, () => ({
    __proto__: dart.getFields(charts.AxisLabelTapArgs.__proto__),
    axis: dart.fieldType(charts.ChartAxis),
    text: dart.fieldType(core.String),
    value: dart.fieldType(core.num),
    axisName: dart.fieldType(core.String)
  }));
  const series$11 = dart.privateName(charts, "LegendTapArgs.series");
  const seriesIndex$3 = dart.privateName(charts, "LegendTapArgs.seriesIndex");
  const pointIndex$3 = dart.privateName(charts, "LegendTapArgs.pointIndex");
  charts.LegendTapArgs = class LegendTapArgs extends core.Object {
    get series() {
      return this[series$11];
    }
    set series(value) {
      this[series$11] = value;
    }
    get seriesIndex() {
      return this[seriesIndex$3];
    }
    set seriesIndex(value) {
      this[seriesIndex$3] = value;
    }
    get pointIndex() {
      return this[pointIndex$3];
    }
    set pointIndex(value) {
      this[pointIndex$3] = value;
    }
  };
  (charts.LegendTapArgs.new = function() {
    this[series$11] = null;
    this[seriesIndex$3] = null;
    this[pointIndex$3] = null;
    ;
  }).prototype = charts.LegendTapArgs.prototype;
  dart.addTypeTests(charts.LegendTapArgs);
  dart.setLibraryUri(charts.LegendTapArgs, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.LegendTapArgs, () => ({
    __proto__: dart.getFields(charts.LegendTapArgs.__proto__),
    series: dart.fieldType(dart.dynamic),
    seriesIndex: dart.fieldType(core.int),
    pointIndex: dart.fieldType(core.int)
  }));
  const series$12 = dart.privateName(charts, "SelectionArgs.series");
  const selectedColor = dart.privateName(charts, "SelectionArgs.selectedColor");
  const unselectedColor = dart.privateName(charts, "SelectionArgs.unselectedColor");
  const selectedBorderColor = dart.privateName(charts, "SelectionArgs.selectedBorderColor");
  const selectedBorderWidth = dart.privateName(charts, "SelectionArgs.selectedBorderWidth");
  const unselectedBorderColor = dart.privateName(charts, "SelectionArgs.unselectedBorderColor");
  const unselectedBorderWidth = dart.privateName(charts, "SelectionArgs.unselectedBorderWidth");
  const seriesIndex$4 = dart.privateName(charts, "SelectionArgs.seriesIndex");
  const pointIndex$4 = dart.privateName(charts, "SelectionArgs.pointIndex");
  charts.SelectionArgs = class SelectionArgs extends core.Object {
    get series() {
      return this[series$12];
    }
    set series(value) {
      this[series$12] = value;
    }
    get selectedColor() {
      return this[selectedColor];
    }
    set selectedColor(value) {
      this[selectedColor] = value;
    }
    get unselectedColor() {
      return this[unselectedColor];
    }
    set unselectedColor(value) {
      this[unselectedColor] = value;
    }
    get selectedBorderColor() {
      return this[selectedBorderColor];
    }
    set selectedBorderColor(value) {
      this[selectedBorderColor] = value;
    }
    get selectedBorderWidth() {
      return this[selectedBorderWidth];
    }
    set selectedBorderWidth(value) {
      this[selectedBorderWidth] = value;
    }
    get unselectedBorderColor() {
      return this[unselectedBorderColor];
    }
    set unselectedBorderColor(value) {
      this[unselectedBorderColor] = value;
    }
    get unselectedBorderWidth() {
      return this[unselectedBorderWidth];
    }
    set unselectedBorderWidth(value) {
      this[unselectedBorderWidth] = value;
    }
    get seriesIndex() {
      return this[seriesIndex$4];
    }
    set seriesIndex(value) {
      this[seriesIndex$4] = value;
    }
    get pointIndex() {
      return this[pointIndex$4];
    }
    set pointIndex(value) {
      this[pointIndex$4] = value;
    }
  };
  (charts.SelectionArgs.new = function() {
    this[series$12] = null;
    this[selectedColor] = null;
    this[unselectedColor] = null;
    this[selectedBorderColor] = null;
    this[selectedBorderWidth] = null;
    this[unselectedBorderColor] = null;
    this[unselectedBorderWidth] = null;
    this[seriesIndex$4] = null;
    this[pointIndex$4] = null;
    ;
  }).prototype = charts.SelectionArgs.prototype;
  dart.addTypeTests(charts.SelectionArgs);
  dart.setLibraryUri(charts.SelectionArgs, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.SelectionArgs, () => ({
    __proto__: dart.getFields(charts.SelectionArgs.__proto__),
    series: dart.fieldType(dart.dynamic),
    selectedColor: dart.fieldType(ui.Color),
    unselectedColor: dart.fieldType(ui.Color),
    selectedBorderColor: dart.fieldType(ui.Color),
    selectedBorderWidth: dart.fieldType(core.double),
    unselectedBorderColor: dart.fieldType(ui.Color),
    unselectedBorderWidth: dart.fieldType(core.double),
    seriesIndex: dart.fieldType(core.int),
    pointIndex: dart.fieldType(core.int)
  }));
  const indicator = dart.privateName(charts, "IndicatorRenderArgs.indicator");
  const indicatorname = dart.privateName(charts, "IndicatorRenderArgs.indicatorname");
  const index$ = dart.privateName(charts, "IndicatorRenderArgs.index");
  const signalLineColor = dart.privateName(charts, "IndicatorRenderArgs.signalLineColor");
  const signalLineWidth = dart.privateName(charts, "IndicatorRenderArgs.signalLineWidth");
  const lineDashArray = dart.privateName(charts, "IndicatorRenderArgs.lineDashArray");
  const seriesName$0 = dart.privateName(charts, "IndicatorRenderArgs.seriesName");
  const dataPoints$1 = dart.privateName(charts, "IndicatorRenderArgs.dataPoints");
  charts.IndicatorRenderArgs = class IndicatorRenderArgs extends core.Object {
    get indicator() {
      return this[indicator];
    }
    set indicator(value) {
      this[indicator] = value;
    }
    get indicatorname() {
      return this[indicatorname];
    }
    set indicatorname(value) {
      this[indicatorname] = value;
    }
    get index() {
      return this[index$];
    }
    set index(value) {
      this[index$] = value;
    }
    get signalLineColor() {
      return this[signalLineColor];
    }
    set signalLineColor(value) {
      this[signalLineColor] = value;
    }
    get signalLineWidth() {
      return this[signalLineWidth];
    }
    set signalLineWidth(value) {
      this[signalLineWidth] = value;
    }
    get lineDashArray() {
      return this[lineDashArray];
    }
    set lineDashArray(value) {
      this[lineDashArray] = value;
    }
    get seriesName() {
      return this[seriesName$0];
    }
    set seriesName(value) {
      this[seriesName$0] = value;
    }
    get dataPoints() {
      return this[dataPoints$1];
    }
    set dataPoints(value) {
      this[dataPoints$1] = value;
    }
  };
  (charts.IndicatorRenderArgs.new = function() {
    this[indicator] = null;
    this[indicatorname] = null;
    this[index$] = null;
    this[signalLineColor] = null;
    this[signalLineWidth] = null;
    this[lineDashArray] = null;
    this[seriesName$0] = null;
    this[dataPoints$1] = null;
    ;
  }).prototype = charts.IndicatorRenderArgs.prototype;
  dart.addTypeTests(charts.IndicatorRenderArgs);
  dart.setLibraryUri(charts.IndicatorRenderArgs, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.IndicatorRenderArgs, () => ({
    __proto__: dart.getFields(charts.IndicatorRenderArgs.__proto__),
    indicator: dart.fieldType(charts.TechnicalIndicators),
    indicatorname: dart.fieldType(core.String),
    index: dart.fieldType(core.int),
    signalLineColor: dart.fieldType(ui.Color),
    signalLineWidth: dart.fieldType(core.double),
    lineDashArray: dart.fieldType(core.List$(core.double)),
    seriesName: dart.fieldType(core.String),
    dataPoints: dart.fieldType(core.List)
  }));
  const pointIndex$5 = dart.privateName(charts, "MarkerRenderArgs.pointIndex");
  const seriesIndex$5 = dart.privateName(charts, "MarkerRenderArgs.seriesIndex");
  const shape = dart.privateName(charts, "MarkerRenderArgs.shape");
  const markerWidth = dart.privateName(charts, "MarkerRenderArgs.markerWidth");
  const markerHeight = dart.privateName(charts, "MarkerRenderArgs.markerHeight");
  charts.MarkerRenderArgs = class MarkerRenderArgs extends core.Object {
    get pointIndex() {
      return this[pointIndex$5];
    }
    set pointIndex(value) {
      this[pointIndex$5] = value;
    }
    get seriesIndex() {
      return this[seriesIndex$5];
    }
    set seriesIndex(value) {
      this[seriesIndex$5] = value;
    }
    get shape() {
      return this[shape];
    }
    set shape(value) {
      this[shape] = value;
    }
    get markerWidth() {
      return this[markerWidth];
    }
    set markerWidth(value) {
      this[markerWidth] = value;
    }
    get markerHeight() {
      return this[markerHeight];
    }
    set markerHeight(value) {
      this[markerHeight] = value;
    }
  };
  (charts.MarkerRenderArgs.new = function() {
    this[pointIndex$5] = null;
    this[seriesIndex$5] = null;
    this[shape] = null;
    this[markerWidth] = null;
    this[markerHeight] = null;
    ;
  }).prototype = charts.MarkerRenderArgs.prototype;
  dart.addTypeTests(charts.MarkerRenderArgs);
  dart.setLibraryUri(charts.MarkerRenderArgs, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.MarkerRenderArgs, () => ({
    __proto__: dart.getFields(charts.MarkerRenderArgs.__proto__),
    pointIndex: dart.fieldType(core.int),
    seriesIndex: dart.fieldType(core.int),
    shape: dart.fieldType(charts.DataMarkerType),
    markerWidth: dart.fieldType(core.double),
    markerHeight: dart.fieldType(core.double)
  }));
  const _calculateSeriesLegends = dart.privateName(charts, "_calculateSeriesLegends");
  const _calculateLegends = dart.privateName(charts, "_calculateLegends");
  const _calculateIndicatorLegends = dart.privateName(charts, "_calculateIndicatorLegends");
  charts._ChartLegend = class _ChartLegend extends core.Object {
    [_calculateLegendBounds](size) {
      let t7, t7$, t7$0;
      this.legend = charts.Legend._check(dart.dload(this.chart, 'legend'));
      if (dart.test(this.legend.isVisible)) {
        if (charts.SfCartesianChart.is(this.chart)) {
          t7 = dart.dload(this.chart, _chartState);
          dart.dload(t7, 'isFullyLoaded') == null ? dart.dput(t7, 'isFullyLoaded', true) : null;
        }
        this.legendCollections = JSArrayOf_LegendRenderContext().of([]);
        this[_calculateSeriesLegends]();
        if (charts.SfCartesianChart.is(this.chart)) {
          dart.dput(dart.dload(this.chart, _chartState), 'isFullyLoaded', false);
        }
        if (dart.test(this.legendCollections[$isNotEmpty]) || dart.dtest(dart.dload(dart.dload(dart.dload(this.chart, _chartState), 'legendWidgetContext'), 'isNotEmpty'))) {
          let legendHeight = 0;
          let legendWidth = 0;
          let titleHeight = 0;
          let textHeight = 0;
          let textWidth = 0;
          let maxTextHeight = 0;
          let maxTextWidth = 0;
          let maxLegendWidth = 0;
          let maxLegendHeight = 0;
          let currentWidth = 0;
          let currentHeight = 0;
          let maxRenderWidth = null;
          let maxRenderHeight = null;
          let titleSize = null;
          let padding = this.legend.itemPadding;
          dart.dput(dart.dload(this.chart, _chartLegend), 'isNeedScrollable', false);
          let isBottomOrTop = dart.equals(this.legend.legendPosition, charts.LegendPosition.bottom) || dart.equals(this.legend.legendPosition, charts.LegendPosition.top);
          this.legend[_orientation] = dart.equals(this.legend.orientation, charts.LegendItemOrientation.auto) ? isBottomOrTop ? charts.LegendItemOrientation.horizontal : charts.LegendItemOrientation.vertical : this.legend.orientation;
          maxRenderHeight = this.legend.height != null ? charts._percentageToValue(this.legend.height, size.height) : isBottomOrTop ? charts._percentageToValue("30%", size.height) : size.height;
          maxRenderWidth = this.legend.width != null ? charts._percentageToValue(this.legend.width, size.width) : isBottomOrTop ? size.width : charts._percentageToValue("30%", size.width);
          if (this.legend.title.text != null && this.legend.title.text[$isNotEmpty]) {
            titleSize = charts._measureText(this.legend.title.text, (t7$ = this.legend.title.textStyle, t7$ == null ? new charts.ChartTextStyle.new({color: ui.Color._check(dart.dload(dart.dload(dart.dload(this.chart, _chartState), _chartTheme), 'legendTitleColor'))}) : t7$));
            titleHeight = dart.notNull(titleSize.height) + 10;
          }
          let isTemplate = this.legend.legendItemBuilder != null;
          let length = core.int._check(isTemplate ? dart.dload(dart.dload(dart.dload(this.chart, _chartState), 'legendWidgetContext'), 'length') : this.legendCollections[$length]);
          let legendContext = null;
          let legendRenderContext = null;
          let legendText = null;
          let textSize = null;
          for (let i = 0; i < dart.notNull(length); i = i + 1) {
            if (isTemplate) {
              legendContext = charts._MeasureWidgetContext._check(dart.dsend(dart.dload(dart.dload(this.chart, _chartState), 'legendWidgetContext'), '_get', [i]));
              currentWidth = dart.notNull(legendContext.size.width) + dart.notNull(padding);
              currentHeight = dart.notNull(legendContext.size.height) + dart.notNull(padding);
            } else {
              legendRenderContext = this.legendCollections[$_get](i);
              legendText = legendRenderContext.text;
              textSize = charts._measureText(legendText, (t7$0 = this.legend.textStyle, t7$0 == null ? new charts.ChartTextStyle.new({color: colors$.Colors.black}) : t7$0));
              legendRenderContext.textSize = textSize;
              textHeight = textSize.height;
              textWidth = textSize.width;
              maxTextHeight = math.max(core.num, textHeight, maxTextHeight);
              maxTextWidth = math.max(core.num, textWidth, maxTextWidth);
              currentWidth = dart.notNull(padding) + dart.notNull(this.legend.iconWidth) + dart.notNull(this.legend.padding) + dart.notNull(textWidth);
              currentHeight = dart.notNull(padding) + math.max(core.num, maxTextHeight, this.legend.iconHeight);
              legendRenderContext.size = new ui.Size.new(currentWidth, currentHeight);
            }
            if (i === 0) {
              maxRenderWidth = this.legend.width == null && !isBottomOrTop ? math.max(core.num, maxRenderWidth, currentWidth) : maxRenderWidth;
              maxRenderHeight = (titleHeight - dart.notNull(this.legend.height == null && isBottomOrTop ? math.max(core.num, maxRenderHeight, currentHeight) : maxRenderHeight))[$abs]();
            }
            this.needRenderLegend = true;
            let needRender = false;
            if (dart.equals(this.legend[_orientation], charts.LegendItemOrientation.horizontal)) {
              if (dart.equals(this.legend.overflowMode, charts.LegendItemOverflowMode.wrap)) {
                if (legendWidth + currentWidth > dart.notNull(maxRenderWidth)) {
                  legendWidth = currentWidth;
                  if (legendHeight + currentHeight > dart.notNull(maxRenderHeight)) {
                    dart.dput(dart.dload(this.chart, _chartLegend), 'isNeedScrollable', true);
                  } else {
                    legendHeight = legendHeight + currentHeight;
                  }
                  maxTextHeight = textHeight;
                } else {
                  legendWidth = legendWidth + currentWidth;
                  legendHeight = math.max(core.num, legendHeight, currentHeight);
                }
              } else if (dart.equals(this.legend.overflowMode, charts.LegendItemOverflowMode.scroll) || dart.equals(this.legend.overflowMode, charts.LegendItemOverflowMode.none)) {
                if (maxLegendWidth + currentWidth <= dart.notNull(maxRenderWidth)) {
                  legendWidth = legendWidth + currentWidth;
                  legendHeight = math.max(core.num, legendHeight, currentHeight);
                  needRender = true;
                } else {
                  needRender = false;
                }
              }
            } else {
              if (dart.equals(this.legend.overflowMode, charts.LegendItemOverflowMode.wrap)) {
                if (legendHeight + currentHeight > dart.notNull(maxRenderHeight)) {
                  legendHeight = currentHeight;
                  if (legendWidth + currentWidth > dart.notNull(maxRenderWidth)) {
                    dart.dput(dart.dload(this.chart, _chartLegend), 'isNeedScrollable', true);
                  } else {
                    legendWidth = legendWidth + currentWidth;
                  }
                } else {
                  legendHeight = legendHeight + currentHeight;
                  legendWidth = math.max(core.num, legendWidth, currentWidth);
                }
              } else if (dart.equals(this.legend.overflowMode, charts.LegendItemOverflowMode.scroll) || dart.equals(this.legend.overflowMode, charts.LegendItemOverflowMode.none)) {
                if (maxLegendHeight + currentHeight <= dart.notNull(maxRenderHeight)) {
                  legendHeight = legendHeight + currentHeight;
                  legendWidth = math.max(core.num, legendWidth, currentWidth);
                  needRender = true;
                } else {
                  needRender = false;
                }
              }
            }
            if (isTemplate) {
              legendContext.isRender = needRender;
            } else {
              legendRenderContext.isRender = needRender;
            }
            maxLegendWidth = math.max(core.num, maxLegendWidth, legendWidth);
            maxLegendHeight = math.max(core.num, maxLegendHeight, legendHeight);
          }
          this.legendSize = new ui.Size.new(maxLegendWidth + dart.notNull(padding), maxLegendHeight + titleHeight[$toDouble]());
        }
      }
    }
    [_calculateLegends](chart, index, series, trendline = null, trendlineIndex = null) {
      let t7, t7$, t7$0, t7$1, t7$2, t7$3, t7$4, t7$5, t7$6;
      let legendEventArgs = null;
      let isTrendlineadded = false;
      if (trendline != null) {
        isTrendlineadded = true;
      }
      series[_seriesName] = (t7 = series[_seriesName], t7 == null ? "series " + dart.str(index) : t7);
      if (dart.test(series.isVisibleInLegend) && (series[_seriesName] != null || series.legendItemText != null)) {
        if (chart.onLegendItemRender != null) {
          legendEventArgs = new charts.LegendRenderArgs.new();
          legendEventArgs.text = (t7$ = series.legendItemText, t7$ == null ? isTrendlineadded ? trendline[_name$] : series[_seriesName] : t7$);
          legendEventArgs.legendIconType = isTrendlineadded ? trendline.legendIconType : series.legendIconType;
          legendEventArgs.seriesIndex = index;
          legendEventArgs.color = isTrendlineadded ? trendline.color : series.color;
          chart.onLegendItemRender(legendEventArgs);
        }
        let _legendRenderContext = new charts._LegendRenderContext.new({series: series, trendline: trendline, seriesIndex: index, trendlineIndex: isTrendlineadded ? trendlineIndex : null, isSelect: dart.test(chart[_chartState].isTrendlineToggled) ? isTrendlineadded ? !dart.test(trendline[_visible]) : true : !dart.test(series.isVisible), text: (t7$2 = (t7$1 = (t7$0 = legendEventArgs, t7$0 == null ? null : t7$0.text), t7$1 == null ? series.legendItemText : t7$1), t7$2 == null ? isTrendlineadded ? trendline[_name$] : series[_seriesName] : t7$2), iconColor: (t7$4 = (t7$3 = legendEventArgs, t7$3 == null ? null : t7$3.color), t7$4 == null ? isTrendlineadded ? trendline.color : series.color : t7$4), iconType: (t7$6 = (t7$5 = legendEventArgs, t7$5 == null ? null : t7$5.legendIconType), t7$6 == null ? isTrendlineadded ? trendline.legendIconType : series.legendIconType : t7$6)});
        this.legendCollections[$add](_legendRenderContext);
        if (!dart.test(series[_visible]) && dart.test(series.isVisibleInLegend) && dart.test(chart[_chartState].isFullyLoaded)) {
          _legendRenderContext.isSelect = true;
          chart[_chartState].legendToggleStates[$add](_legendRenderContext);
        }
      }
    }
    [_calculateSeriesLegends]() {
      let t7, t7$, t7$0, t7$1, t7$2, t7$3;
      let legendEventArgs = null;
      if (dart.dload(dart.dload(this.chart, 'legend'), 'legendItemBuilder') == null) {
        if (charts.SfCartesianChart.is(this.chart)) {
          for (let i = 0; i < dart.notNull(core.num._check(dart.dload(dart.dload(dart.dload(this.chart, _chartSeries), 'visibleSeries'), 'length'))); i = i + 1) {
            let series = dart.dsend(dart.dload(dart.dload(this.chart, _chartSeries), 'visibleSeries'), '_get', [i]);
            this[_calculateLegends](charts.SfCartesianChart._check(this.chart), i, charts.CartesianSeries._check(series));
            if (charts.CartesianSeries.is(series)) {
              let cseries = series;
              if (cseries != null && cseries.trendlines != null) {
                for (let j = 0; j < dart.notNull(cseries.trendlines[$length]); j = j + 1) {
                  let trendline = cseries.trendlines[$_get](j);
                  if (dart.test(trendline.isVisibleInLegend)) dart.dsend(dart.dload(this.chart, _chartLegend), _calculateLegends, [this.chart, i, cseries, trendline, j]);
                }
              }
            }
          }
          if (dart.dtest(dart.dload(dart.dload(this.chart, 'indicators'), 'isNotEmpty'))) {
            this[_calculateIndicatorLegends]();
          }
        } else {
          let series = dart.dsend(dart.dload(dart.dload(this.chart, _chartSeries), 'visibleSeries'), '_get', [0]);
          for (let j = 0; j < dart.notNull(core.num._check(dart.dload(dart.dload(series, _renderPoints), 'length'))); j = j + 1) {
            let chartPoint = dart.dsend(dart.dload(series, _renderPoints), '_get', [j]);
            if (dart.dload(this.chart, 'onLegendItemRender') != null) {
              legendEventArgs = new charts.LegendRenderArgs.new();
              legendEventArgs.text = core.String._check(dart.dload(chartPoint, 'x'));
              legendEventArgs.legendIconType = charts.LegendIconType._check(dart.dload(series, 'legendIconType'));
              legendEventArgs.seriesIndex = 0;
              legendEventArgs.pointIndex = j;
              legendEventArgs.color = ui.Color._check(dart.dload(chartPoint, 'fill'));
              dart.dsend(this.chart, 'onLegendItemRender', [legendEventArgs]);
            }
            this.legendCollections[$add](new charts._LegendRenderContext.new({series: series, seriesIndex: j, isSelect: false, point: chartPoint, text: core.String._check((t7$ = (t7 = legendEventArgs, t7 == null ? null : t7.text), t7$ == null ? dart.dload(chartPoint, 'x') : t7$)), iconColor: ui.Color._check((t7$1 = (t7$0 = legendEventArgs, t7$0 == null ? null : t7$0.color), t7$1 == null ? dart.dload(chartPoint, 'fill') : t7$1)), iconType: charts.LegendIconType._check((t7$3 = (t7$2 = legendEventArgs, t7$2 == null ? null : t7$2.legendIconType), t7$3 == null ? dart.dload(series, 'legendIconType') : t7$3))}));
          }
        }
      }
    }
    [_calculateIndicatorLegends]() {
      let t7, t7$, t7$0, t7$1, t7$2, t7$3, t7$4, t7$5, t7$6, t7$7, t7$8;
      let legendEventArgs = null;
      let textCollection = JSArrayOfString().of([]);
      for (let i = 0; i < dart.notNull(core.num._check(dart.dload(dart.dload(this.chart, 'indicators'), 'length'))); i = i + 1) {
        let indicator = dart.dsend(dart.dload(this.chart, 'indicators'), '_get', [i]);
        t7 = dart.dload(this.chart, _chartSeries);
        t7 == null ? null : dart.dsend(t7, _setIndicatorType, [indicator]);
        textCollection[$add](core.String._check(dart.dload(indicator, _indicatorType)));
      }
      let _map = new (LinkedMapOfString$int()).new();
      textCollection[$forEach](dart.fn(str => {
        let t9, t8, t7;
        t7 = _map;
        t8 = core.String._check(str);
        t9 = !dart.test(_map[$containsKey](str)) ? 1 : dart.notNull(_map[$_get](str)) + 1;
        t7[$_set](t8, t9);
        return t9;
      }, dynamicToint()));
      let indicatorTextCollection = JSArrayOfString().of([]);
      for (let i = 0; i < dart.notNull(core.num._check(dart.dload(dart.dload(this.chart, 'indicators'), 'length'))); i = i + 1) {
        let indicator = dart.dsend(dart.dload(this.chart, 'indicators'), '_get', [i]);
        let count = core.int._check(dart.test(indicatorTextCollection[$contains](dart.dload(indicator, _indicatorType))) ? (t7$ = dart.dload(this.chart, _chartSeries), t7$ == null ? null : dart.dsend(t7$, _getIndicatorId, [indicatorTextCollection, dart.dload(indicator, _indicatorType)])) : 0);
        indicatorTextCollection[$add](core.String._check(dart.dload(indicator, _indicatorType)));
        dart.dput(indicator, _name$, (t7$0 = dart.dload(indicator, 'name'), t7$0 == null ? dart.dsend(dart.dload(indicator, _indicatorType), '+', [_map[$_get](dart.dload(indicator, _indicatorType)) === 1 ? "" : " " + dart.toString(count)]) : t7$0));
        if (dart.dtest(dart.dload(indicator, 'isVisible')) && dart.dtest(dart.dload(indicator, 'isVisibleInLegend'))) {
          if (dart.dload(this.chart, 'onLegendItemRender') != null) {
            legendEventArgs = new charts.LegendRenderArgs.new();
            legendEventArgs.text = core.String._check((t7$1 = dart.dload(indicator, 'legendItemText'), t7$1 == null ? dart.dload(indicator, _name$) : t7$1));
            legendEventArgs.legendIconType = charts.LegendIconType._check(dart.dload(indicator, 'legendIconType'));
            legendEventArgs.seriesIndex = i;
            legendEventArgs.color = ui.Color._check(dart.dload(indicator, 'signalLineColor'));
            dart.dsend(this.chart, 'onLegendItemRender', [legendEventArgs]);
          }
          let _legendRenderContext = new charts._LegendRenderContext.new({series: indicator, seriesIndex: core.int._check(dart.dsend(dart.dload(dart.dload(dart.dload(this.chart, _chartSeries), 'visibleSeries'), 'length'), '+', [i])), isSelect: !dart.dtest(dart.dload(indicator, 'isVisible')), text: core.String._check((t7$4 = (t7$3 = (t7$2 = legendEventArgs, t7$2 == null ? null : t7$2.text), t7$3 == null ? dart.dload(indicator, 'legendItemText') : t7$3), t7$4 == null ? dart.dload(indicator, _name$) : t7$4)), iconColor: ui.Color._check((t7$6 = (t7$5 = legendEventArgs, t7$5 == null ? null : t7$5.color), t7$6 == null ? dart.dload(indicator, 'signalLineColor') : t7$6)), iconType: charts.LegendIconType._check((t7$8 = (t7$7 = legendEventArgs, t7$7 == null ? null : t7$7.legendIconType), t7$8 == null ? dart.dload(indicator, 'legendIconType') : t7$8))});
          this.legendCollections[$add](_legendRenderContext);
          if (!dart.dtest(dart.dload(indicator, 'isVisible')) && dart.dtest(dart.dload(indicator, 'isVisibleInLegend')) && dart.dtest(dart.dload(dart.dload(this.chart, _chartState), 'initialRender'))) {
            _legendRenderContext.isSelect = true;
            dart.dsend(dart.dload(dart.dload(this.chart, _chartState), 'legendToggleStates'), 'add', [_legendRenderContext]);
          }
        }
      }
    }
  };
  (charts._ChartLegend.new = function() {
    this.chart = null;
    this.legend = null;
    this.legendCollections = null;
    this.rowCount = null;
    this.columnCount = null;
    this.legendSize = C122 || CT.C122;
    this.chartSize = C122 || CT.C122;
    this.needRenderLegend = false;
    this.legendRepaintNotifier = null;
    this.isNeedScrollable = null;
    ;
  }).prototype = charts._ChartLegend.prototype;
  dart.addTypeTests(charts._ChartLegend);
  dart.setMethodSignature(charts._ChartLegend, () => ({
    __proto__: dart.getMethods(charts._ChartLegend.__proto__),
    [_calculateLegendBounds]: dart.fnType(dart.void, [ui.Size]),
    [_calculateLegends]: dart.fnType(dart.void, [charts.SfCartesianChart, core.int, charts.CartesianSeries], [charts.Trendline, core.int]),
    [_calculateSeriesLegends]: dart.fnType(dart.void, []),
    [_calculateIndicatorLegends]: dart.fnType(dart.void, [])
  }));
  dart.setLibraryUri(charts._ChartLegend, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._ChartLegend, () => ({
    __proto__: dart.getFields(charts._ChartLegend.__proto__),
    chart: dart.fieldType(dart.dynamic),
    legend: dart.fieldType(charts.Legend),
    legendCollections: dart.fieldType(core.List$(charts._LegendRenderContext)),
    rowCount: dart.fieldType(core.int),
    columnCount: dart.fieldType(core.int),
    legendSize: dart.fieldType(ui.Size),
    chartSize: dart.fieldType(ui.Size),
    needRenderLegend: dart.fieldType(core.bool),
    legendRepaintNotifier: dart.fieldType(change_notifier.ValueNotifier$(core.int)),
    isNeedScrollable: dart.fieldType(core.bool)
  }));
  let C708;
  let C709;
  let C710;
  let C711;
  let C707;
  let C706;
  let C714;
  let C715;
  let C716;
  let C713;
  let C712;
  const _getWidget = dart.privateName(charts, "_getWidget");
  let C719;
  let C720;
  let C718;
  let C717;
  let C723;
  let C724;
  let C722;
  let C721;
  let C727;
  let C728;
  let C726;
  let C725;
  let C731;
  let C732;
  let C730;
  let C729;
  let C735;
  let C734;
  let C733;
  let C738;
  let C737;
  let C736;
  let C741;
  let C742;
  let C740;
  let C739;
  let C745;
  let C746;
  let C744;
  let C743;
  let C749;
  let C748;
  let C747;
  let C752;
  let C751;
  let C750;
  let C755;
  let C756;
  let C754;
  let C753;
  let C759;
  let C760;
  let C758;
  let C757;
  let C763;
  let C764;
  let C765;
  let C762;
  let C761;
  let C768;
  let C769;
  let C770;
  let C767;
  let C766;
  let C773;
  let C772;
  let C771;
  let C776;
  let C777;
  let C778;
  let C775;
  let C774;
  let C781;
  let C782;
  let C780;
  let C779;
  let C785;
  let C784;
  let C783;
  const chart$ = dart.privateName(charts, "_LegendContainer.chart");
  charts._LegendContainer = class _LegendContainer extends framework.StatelessWidget {
    get chart() {
      return this[chart$];
    }
    set chart(value) {
      super.chart = value;
    }
    build(context) {
      let t7;
      let legendCollections = ListOf_LegendRenderContext()._check(dart.dload(dart.dload(this.chart, _chartLegend), 'legendCollections'));
      let legendWidgets = JSArrayOfWidget().of([]);
      let legend = charts.Legend._check(dart.dload(this.chart, 'legend'));
      let titleHeight = 0;
      dart.dput(dart.dload(this.chart, _chartLegend), 'legendRepaintNotifier', new (ValueNotifierOfint()).new(0));
      if (legend.legendItemBuilder != null) {
        for (let i = 0; i < dart.notNull(core.num._check(dart.dload(dart.dload(dart.dload(this.chart, _chartState), 'legendWidgetContext'), 'length'))); i = i + 1) {
          let legendRenderContext = charts._MeasureWidgetContext._check(dart.dsend(dart.dload(dart.dload(this.chart, _chartState), 'legendWidgetContext'), '_get', [i]));
          if (dart.test(dart.equals(legend.overflowMode, charts.LegendItemOverflowMode.none) ? legendRenderContext.isRender : true)) {
            legendWidgets[$add](new charts._RenderLegend.new({index: i, template: legendRenderContext.widget, size: legendRenderContext.size, chart: this.chart, $creationLocationd_0dea112b090073317d4: C706 || CT.C706}));
          }
        }
      } else {
        for (let i = 0; i < dart.notNull(legendCollections[$length]); i = i + 1) {
          let legendRenderContext = legendCollections[$_get](i);
          if (dart.test(dart.equals(legend.overflowMode, charts.LegendItemOverflowMode.none) ? legendRenderContext.isRender : true)) {
            legendWidgets[$add](new charts._RenderLegend.new({index: i, size: legendRenderContext.size, chart: this.chart, $creationLocationd_0dea112b090073317d4: C712 || CT.C712}));
          }
        }
      }
      let needLegendTitle = legend.title.text != null && legend.title.text[$isNotEmpty];
      if (needLegendTitle) {
        titleHeight = dart.notNull(charts._measureText(legend.title.text, (t7 = legend.title.textStyle, t7 == null ? new charts.ChartTextStyle.new({color: ui.Color._check(dart.dload(dart.dload(dart.dload(this.chart, _chartState), _chartTheme), 'legendTitleColor'))}) : t7)).height) + 10;
      }
      return this[_getWidget](legendWidgets, needLegendTitle, titleHeight);
    }
    [_getWidget](legendWidgets, needLegendTitle, titleHeight) {
      let t7;
      let widget = null;
      let legend = charts.Legend._check(dart.dload(this.chart, 'legend'));
      let legendHeight = core.double._check(dart.dload(dart.dload(dart.dload(this.chart, _chartLegend), 'legendSize'), 'height'));
      if (dart.dtest(dart.dload(dart.dload(this.chart, _chartLegend), 'isNeedScrollable'))) {
        widget = new container.Container.new({height: dart.test(needLegendTitle) ? (dart.notNull(legendHeight) - dart.notNull(titleHeight))[$abs]() : legendHeight, child: new single_child_scroll_view.SingleChildScrollView.new({scrollDirection: dart.equals(legend[_orientation], charts.LegendItemOrientation.horizontal) ? basic_types.Axis.vertical : basic_types.Axis.horizontal, child: dart.equals(legend[_orientation], charts.LegendItemOrientation.horizontal) ? new basic.Wrap.new({direction: basic_types.Axis.horizontal, children: legendWidgets, $creationLocationd_0dea112b090073317d4: C717 || CT.C717}) : new basic.Wrap.new({direction: basic_types.Axis.vertical, children: legendWidgets, $creationLocationd_0dea112b090073317d4: C721 || CT.C721}), $creationLocationd_0dea112b090073317d4: C725 || CT.C725}), $creationLocationd_0dea112b090073317d4: C729 || CT.C729});
      } else if (dart.equals(legend.overflowMode, charts.LegendItemOverflowMode.scroll)) {
        widget = new container.Container.new({height: dart.test(needLegendTitle) ? (dart.notNull(legendHeight) - dart.notNull(titleHeight))[$abs]() : legendHeight, child: new single_child_scroll_view.SingleChildScrollView.new({scrollDirection: dart.equals(legend[_orientation], charts.LegendItemOrientation.horizontal) ? basic_types.Axis.horizontal : basic_types.Axis.vertical, child: dart.equals(legend[_orientation], charts.LegendItemOrientation.horizontal) ? new basic.Row.new({children: legendWidgets, $creationLocationd_0dea112b090073317d4: C733 || CT.C733}) : new basic.Column.new({children: legendWidgets, $creationLocationd_0dea112b090073317d4: C736 || CT.C736}), $creationLocationd_0dea112b090073317d4: C739 || CT.C739}), $creationLocationd_0dea112b090073317d4: C743 || CT.C743});
      } else if (dart.equals(legend.overflowMode, charts.LegendItemOverflowMode.none)) {
        widget = new container.Container.new({height: dart.test(needLegendTitle) ? (dart.notNull(legendHeight) - dart.notNull(titleHeight))[$abs]() : legendHeight, child: dart.equals(legend[_orientation], charts.LegendItemOrientation.horizontal) ? new basic.Row.new({children: legendWidgets, $creationLocationd_0dea112b090073317d4: C747 || CT.C747}) : new basic.Column.new({children: legendWidgets, $creationLocationd_0dea112b090073317d4: C750 || CT.C750}), $creationLocationd_0dea112b090073317d4: C753 || CT.C753});
      } else {
        widget = new container.Container.new({height: dart.test(needLegendTitle) ? (dart.notNull(legendHeight) - dart.notNull(titleHeight))[$abs]() : legendHeight, width: core.double._check(dart.dload(dart.dload(dart.dload(this.chart, _chartLegend), 'legendSize'), 'width')), child: new basic.Wrap.new({direction: dart.equals(legend[_orientation], charts.LegendItemOrientation.horizontal) ? basic_types.Axis.horizontal : basic_types.Axis.vertical, children: legendWidgets, $creationLocationd_0dea112b090073317d4: C757 || CT.C757}), $creationLocationd_0dea112b090073317d4: C761 || CT.C761});
      }
      if (dart.test(needLegendTitle)) {
        let titleAlign = legend.title.alignment;
        let color = ui.Color._check((t7 = dart.dload(dart.dload(dart.dload(dart.dload(this.chart, 'legend'), 'title'), 'textStyle'), 'color'), t7 == null ? dart.dload(dart.dload(dart.dload(this.chart, _chartState), _chartTheme), 'legendTitleColor') : t7));
        let fontSize = core.double._check(dart.dload(dart.dload(dart.dload(dart.dload(this.chart, 'legend'), 'title'), 'textStyle'), 'fontSize'));
        let fontFamily = core.String._check(dart.dload(dart.dload(dart.dload(dart.dload(this.chart, 'legend'), 'title'), 'textStyle'), 'fontFamily'));
        let fontStyle = ui.FontStyle._check(dart.dload(dart.dload(dart.dload(dart.dload(this.chart, 'legend'), 'title'), 'textStyle'), 'fontStyle'));
        let fontWeight = ui.FontWeight._check(dart.dload(dart.dload(dart.dload(dart.dload(this.chart, 'legend'), 'title'), 'textStyle'), 'fontWeight'));
        widget = new container.Container.new({child: new basic.Column.new({mainAxisAlignment: flex.MainAxisAlignment.spaceEvenly, children: JSArrayOfWidget().of([new container.Container.new({height: titleHeight, alignment: dart.equals(titleAlign, charts.ChartAlignment.center) ? alignment.Alignment.center : dart.equals(titleAlign, charts.ChartAlignment.near) ? alignment.Alignment.centerLeft : alignment.Alignment.centerRight, child: new container.Container.new({child: new text.Text.new(legend.title.text, {overflow: paragraph.TextOverflow.ellipsis, style: new text_style.TextStyle.new({color: color, fontSize: fontSize, fontFamily: fontFamily, fontStyle: fontStyle, fontWeight: fontWeight}), $creationLocationd_0dea112b090073317d4: C766 || CT.C766}), $creationLocationd_0dea112b090073317d4: C771 || CT.C771}), $creationLocationd_0dea112b090073317d4: C774 || CT.C774}), widget]), $creationLocationd_0dea112b090073317d4: C779 || CT.C779}), $creationLocationd_0dea112b090073317d4: C783 || CT.C783});
      }
      return widget;
    }
  };
  (charts._LegendContainer.new = function(opts) {
    let chart = opts && 'chart' in opts ? opts.chart : null;
    let $36creationLocationd_0dea112b090073317d4 = opts && '$creationLocationd_0dea112b090073317d4' in opts ? opts.$creationLocationd_0dea112b090073317d4 : null;
    this[chart$] = chart;
    charts._LegendContainer.__proto__.new.call(this, {$creationLocationd_0dea112b090073317d4: $36creationLocationd_0dea112b090073317d4});
    ;
  }).prototype = charts._LegendContainer.prototype;
  dart.addTypeTests(charts._LegendContainer);
  dart.setMethodSignature(charts._LegendContainer, () => ({
    __proto__: dart.getMethods(charts._LegendContainer.__proto__),
    build: dart.fnType(framework.Widget, [framework.BuildContext]),
    [_getWidget]: dart.fnType(framework.Widget, [core.List$(framework.Widget), core.bool, core.num])
  }));
  dart.setLibraryUri(charts._LegendContainer, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._LegendContainer, () => ({
    __proto__: dart.getFields(charts._LegendContainer.__proto__),
    chart: dart.finalFieldType(dart.dynamic)
  }));
  charts._CustomizeLegend = class _CustomizeLegend extends core.Object {};
  (charts._CustomizeLegend.new = function() {
    ;
  }).prototype = charts._CustomizeLegend.prototype;
  dart.addTypeTests(charts._CustomizeLegend);
  dart.setLibraryUri(charts._CustomizeLegend, "package:syncfusion_flutter_charts/charts.dart");
  let C786;
  const _drawLegendShape = dart.privateName(charts, "_drawLegendShape");
  const _getIconType = dart.privateName(charts, "_getIconType");
  const _getLegendIconType = dart.privateName(charts, "_getLegendIconType");
  const _getPathAndStyle = dart.privateName(charts, "_getPathAndStyle");
  const _drawIcon = dart.privateName(charts, "_drawIcon");
  let C787;
  let C788;
  let C789;
  let C790;
  let C791;
  let C792;
  let C793;
  let C794;
  let C795;
  let C796;
  const Object__CustomizeLegend$36 = class Object__CustomizeLegend extends core.Object {};
  (Object__CustomizeLegend$36.new = function() {
  }).prototype = Object__CustomizeLegend$36.prototype;
  dart.applyMixin(Object__CustomizeLegend$36, charts._CustomizeLegend);
  charts._LegendRenderer = class _LegendRenderer extends Object__CustomizeLegend$36 {
    getLegendIconBorderColor(index, legendItem, iconBorderColor) {
      return iconBorderColor;
    }
    getLegendIconColor(index, legendItem, iconColor) {
      return iconColor;
    }
    getLegendTextColor(index, legendItem, textColor) {
      return textColor;
    }
    getLegendIconBorderWidth(index, legendItem, iconBorderWidth) {
      return iconBorderWidth;
    }
    drawLegendItem(index, legendItem, legend, chart, canvas, size) {
      let t7;
      let legendText = legendItem.text;
      let palette = ListOfColor()._check(dart.dload(chart, 'palette'));
      let color = (t7 = legendItem.iconColor, t7 == null ? palette[$_get](index[$modulo](palette[$length])) : t7);
      color = legend[_renderer].getLegendIconColor(index, legendItem, color);
      let textSize = legendItem.textSize;
      let iconOffset = new ui.Offset.new(dart.notNull(legend.itemPadding) + dart.notNull(legend.iconWidth) / 2, dart.notNull(size.height) / 2);
      legendItem.isSelect = charts.SfCartesianChart.is(chart) ? legendItem.trendline != null ? !dart.test(legendItem.trendline[_visible]) : !dart.dtest(dart.dload(legendItem.series, _visible)) : !dart.dtest(dart.dload(legendItem.point, 'isVisible'));
      let textStyle = dart.test(legendItem.isSelect) ? charts._getTextStyle({textStyle: legend.textStyle, takeFontColorValue: true, fontColor: C786 || CT.C786}) : charts._getTextStyle({textStyle: legend.textStyle, fontColor: legend[_renderer].getLegendTextColor(index, legendItem, ui.Color._check(dart.dload(dart.dload(dart.dload(chart, _chartState), _chartTheme), 'legendTextColor')))});
      this[_drawLegendShape](index, iconOffset, canvas, new ui.Size.new(legend.iconWidth[$toDouble](), legend.iconHeight[$toDouble]()), legend, legendItem.iconType, color, legendItem, chart);
      charts._drawText(canvas, legendText, new ui.Offset.new(dart.notNull(iconOffset.dx) + dart.notNull(legend.padding) + dart.notNull(legend.iconWidth) / 2, dart.notNull(size.height) / 2 - dart.notNull(textSize.height) / 2), textStyle);
    }
    [_getIconType](shape) {
      let iconType = null;
      switch (shape) {
        case C551 || CT.C551:
        {
          iconType = charts.LegendIconType.circle;
          break;
        }
        case C609 || CT.C609:
        {
          iconType = charts.LegendIconType.rectangle;
          break;
        }
        case C610 || CT.C610:
        {
          iconType = charts.LegendIconType.image;
          break;
        }
        case C611 || CT.C611:
        {
          iconType = charts.LegendIconType.pentagon;
          break;
        }
        case C612 || CT.C612:
        {
          iconType = charts.LegendIconType.verticalLine;
          break;
        }
        case C616 || CT.C616:
        {
          iconType = charts.LegendIconType.invertedTriangle;
          break;
        }
        case C613 || CT.C613:
        {
          iconType = charts.LegendIconType.horizontalLine;
          break;
        }
        case C614 || CT.C614:
        {
          iconType = charts.LegendIconType.diamond;
          break;
        }
        case C615 || CT.C615:
        {
          iconType = charts.LegendIconType.triangle;
          break;
        }
        case C617 || CT.C617:
        {
          break;
        }
      }
      return iconType;
    }
    [_drawLegendShape](index, location, canvas, size, legend, iconType, color, legendRenderContext, chart) {
      let t7, t7$;
      let path = ui.Path.new();
      let actualIconType = iconType;
      let style = ui.PaintingStyle.fill;
      iconType = this[_getLegendIconType](iconType, legendRenderContext);
      let width = dart.equals(dart.dload(legendRenderContext.series, 'legendIconType'), charts.LegendIconType.seriesType) && (dart.equals(dart.dload(legendRenderContext.series, _seriesType$), "line") || dart.equals(dart.dload(legendRenderContext.series, _seriesType$), "fastline") || dart.dtest(dart.dsend(dart.dload(legendRenderContext.series, _seriesType$), 'contains', ["stackedline"]))) ? dart.notNull(size.width) / 1.5 : size.width;
      let height = dart.equals(dart.dload(legendRenderContext.series, 'legendIconType'), charts.LegendIconType.seriesType) && (dart.equals(dart.dload(legendRenderContext.series, _seriesType$), "line") || dart.equals(dart.dload(legendRenderContext.series, _seriesType$), "fastline") || dart.dtest(dart.dsend(dart.dload(legendRenderContext.series, _seriesType$), 'contains', ["stackedline"]))) ? dart.notNull(size.height) / 1.5 : size.height;
      style = this[_getPathAndStyle](iconType, style, path, location, width, height, legendRenderContext.series, chart, canvas);
      if (color != null) {
        let fillPaint = (t7 = ui.Paint.new(), t7.color = !dart.test(legendRenderContext.isSelect) ? dart.equals(color, colors$.Colors.transparent) ? color : color.withOpacity(legend.opacity) : C786 || CT.C786, t7.strokeWidth = dart.notNull(legend.iconBorderWidth) > 0 ? legend.iconBorderWidth : dart.dtest(dart.dsend(dart.dload(legendRenderContext.series, _seriesType$), 'contains', ["hilo"])) || dart.equals(dart.dload(legendRenderContext.series, _seriesType$), "candle") || charts.TechnicalIndicators.is(legendRenderContext.series) && dart.dtest(dart.dload(legendRenderContext.series, _isIndicator)) ? 2.0 : 1.0, t7.style = dart.equals(iconType, charts.LegendIconType.seriesType) ? style : dart.equals(iconType, charts.LegendIconType.horizontalLine) || dart.equals(iconType, charts.LegendIconType.verticalLine) ? ui.PaintingStyle.stroke : ui.PaintingStyle.fill, t7);
        let _seriesType = core.String._check(dart.dload(legendRenderContext.series, _seriesType$));
        if (dart.equals(actualIconType, charts.LegendIconType.seriesType) && (_seriesType === "line" || _seriesType === "fastline" || _seriesType[$contains]("stackedline")) || dart.equals(iconType, charts.LegendIconType.seriesType) && (_seriesType === "radialbar" || _seriesType === "doughnut")) {
          this[_drawIcon](iconType, index, _seriesType, legendRenderContext, chart, width, height, location, size, canvas, fillPaint, path);
        } else {
          dart.equals(dart.dload(legendRenderContext.series, 'legendIconType'), charts.LegendIconType.seriesType) && (_seriesType === "spline" || _seriesType === "stepline") && !dart.equals(dart.dsend(dart.dload(legendRenderContext.series, 'dashArray'), '_get', [0]), 0) ? canvas.drawPath(!true ? charts._dashPath(path, {dashArray: new (_CircularIntervalListOfdouble()).new(JSArrayOfdouble().of([3.0, 2.0]))}) : path, fillPaint) : canvas.drawPath(path, charts.CartesianSeries.is(legendRenderContext.series) && !dart.test(legendRenderContext.isSelect) && dart.dload(legendRenderContext.series, 'gradient') != null ? charts._getLinearGradientPaint(gradient$.LinearGradient._check(dart.dload(legendRenderContext.series, 'gradient')), path.getBounds(), core.bool._check(dart.dload(chart, _requireInvertedAxis))) : fillPaint);
        }
      }
      let iconBorderWidth = legend[_renderer].getLegendIconBorderWidth(index, legendRenderContext, legend.iconBorderWidth);
      if (iconBorderWidth != null && dart.notNull(iconBorderWidth) > 0) {
        let strokePaint = (t7$ = ui.Paint.new(), t7$.color = !dart.test(legendRenderContext.isSelect) ? legend[_renderer].getLegendIconBorderColor(index, legendRenderContext, legend.iconBorderColor.withOpacity(legend.opacity)) : C786 || CT.C786, t7$.strokeWidth = iconBorderWidth, t7$.style = ui.PaintingStyle.stroke, t7$);
        canvas.drawPath(path, strokePaint);
      }
    }
    [_getLegendIconType](iconType, legendRenderContext) {
      if (charts.TechnicalIndicators.is(legendRenderContext.series) && dart.dtest(dart.dload(legendRenderContext.series, _isIndicator))) {
        return dart.equals(dart.dload(legendRenderContext.series, 'legendIconType'), charts.LegendIconType.seriesType) ? charts.LegendIconType.horizontalLine : iconType;
      } else {
        return dart.equals(dart.dload(legendRenderContext.series, _seriesType$), "scatter") ? !dart.equals(iconType, charts.LegendIconType.seriesType) ? iconType : this[_getIconType](charts.DataMarkerType._check(dart.dload(dart.dload(legendRenderContext.series, 'markerSettings'), 'shape'))) : dart.equals(iconType, charts.LegendIconType.seriesType) && (dart.equals(dart.dload(legendRenderContext.series, _seriesType$), "line") || dart.equals(dart.dload(legendRenderContext.series, _seriesType$), "fastline") || dart.dtest(dart.dsend(dart.dload(legendRenderContext.series, _seriesType$), 'contains', ["stackedline"]))) && dart.dtest(dart.dload(dart.dload(legendRenderContext.series, 'markerSettings'), 'isVisible')) && !dart.equals(dart.dload(dart.dload(legendRenderContext.series, 'markerSettings'), 'shape'), charts.DataMarkerType.image) ? this[_getIconType](charts.DataMarkerType._check(dart.dload(dart.dload(legendRenderContext.series, 'markerSettings'), 'shape'))) : iconType;
      }
    }
    [_getPathAndStyle](iconType, style, path, location, width, height, series, chart, canvas) {
      let x = location.dx;
      let y = location.dy;
      switch (iconType) {
        case C787 || CT.C787:
        {
          style = charts._calculateLegendShapes(path, x, y, width, height, core.String._check(dart.dload(series, _seriesType$)));
          break;
        }
        case C788 || CT.C788:
        {
          charts._ChartShapeUtils._drawCircle(path, x, y, width, height);
          break;
        }
        case C789 || CT.C789:
        {
          charts._ChartShapeUtils._drawRectangle(path, x, y, width, height);
          break;
        }
        case C790 || CT.C790:
        {
          {
            function _drawLegendImage(canvas, image) {
              let rect = new ui.Rect.fromLTWH(dart.notNull(x) - dart.notNull(width) / 2, dart.notNull(y) - dart.notNull(height) / 2, width, height);
              decoration_image.paintImage({canvas: canvas, rect: rect, image: image, fit: box_fit.BoxFit.fill});
            }
            dart.fn(_drawLegendImage, CanvasAndImageTovoid());
            if (dart.dload(dart.dload(chart, 'legend'), 'image') != null && dart.dload(dart.dload(chart, _chartState), _legendIconImage) != null) {
              _drawLegendImage(canvas, ui.Image._check(dart.dload(dart.dload(chart, _chartState), _legendIconImage)));
            } else if (dart.equals(dart.dload(series, _seriesType$), "scatter") && dart.equals(dart.dload(dart.dload(series, 'markerSettings'), 'shape'), charts.DataMarkerType.image) && dart.dload(dart.dload(series, 'markerSettings'), _image) != null) {
              _drawLegendImage(canvas, ui.Image._check(dart.dload(dart.dload(series, 'markerSettings'), _image)));
            }
            break;
          }
        }
        case C791 || CT.C791:
        {
          charts._ChartShapeUtils._drawPentagon(path, x, y, width, height);
          break;
        }
        case C792 || CT.C792:
        {
          charts._ChartShapeUtils._drawVerticalLine(path, x, y, width, height);
          break;
        }
        case C793 || CT.C793:
        {
          charts._ChartShapeUtils._drawInvertedTriangle(path, x, y, width, height);
          break;
        }
        case C794 || CT.C794:
        {
          charts._ChartShapeUtils._drawHorizontalLine(path, x, y, width, height);
          break;
        }
        case C795 || CT.C795:
        {
          charts._ChartShapeUtils._drawDiamond(path, x, y, width, height);
          break;
        }
        case C796 || CT.C796:
        {
          charts._ChartShapeUtils._drawTriangle(path, x, y, width, height);
          break;
        }
      }
      return style;
    }
    [_drawIcon](iconType, index, seriesType, legendRenderContext, chart, width, height, location, size, canvas, fillPaint, path) {
      let t7, t7$;
      if (seriesType[$contains]("line")) {
        if (!dart.equals(iconType, charts.LegendIconType.seriesType)) {
          canvas.drawPath(path, fillPaint);
        }
        let linePath = ui.Path.new();
        linePath.moveTo(dart.notNull(location.dx) - dart.notNull(size.width) / 1.5, location.dy);
        linePath.lineTo(dart.notNull(location.dx) + dart.notNull(size.width) / 1.5, location.dy);
        let _paint = (t7 = ui.Paint.new(), t7.color = fillPaint.color.withOpacity(core.double._check(dart.dload(dart.dload(chart, 'legend'), 'opacity'))), t7.style = ui.PaintingStyle.stroke, t7.strokeWidth = core.double._check(dart.dtest(dart.dsend(dart.dload(dart.dload(chart, 'legend'), 'iconBorderWidth'), '>', [0])) ? dart.dload(dart.dload(chart, 'legend'), 'iconBorderWidth') : 2.0), t7);
        !dart.equals(dart.dsend(dart.dload(legendRenderContext.series, 'dashArray'), '_get', [0]), 0) ? canvas.drawPath(!true ? charts._dashPath(linePath, {dashArray: new (_CircularIntervalListOfdouble()).new(JSArrayOfdouble().of([3.0, 2.0]))}) : linePath, _paint) : canvas.drawPath(linePath, _paint);
      } else if (seriesType === "radialbar") {
        let radius = (dart.notNull(width) + dart.notNull(height)) / 2;
        charts._drawPath(canvas, new charts._StyleOptions.new(colors$.Colors.grey._get(100), fillPaint.strokeWidth, colors$.Colors.grey._get(300).withOpacity(0.5)), charts._getArcPath(radius / 2 - 2, radius / 2, new ui.Offset.new(location.dx, location.dy), 0, 360 - 0.01, 360 - 0.01, charts.SfCircularChart._check(chart), true));
        let degree = core.num._check(dart.dsend(dart.dsend(dart.dload(dart.dsend(dart.dload(legendRenderContext.series, _renderPoints), '_get', [index]), 'y'), 'abs', []), '/', [(t7$ = dart.dload(legendRenderContext.series, 'maximumValue'), t7$ == null ? dart.dload(legendRenderContext.series, _sumOfPoints) : t7$)]));
        degree = dart.notNull(dart.notNull(degree) > 1 ? 1 : degree) * (360 - 0.001);
        let pointEndAngle = -90 + dart.notNull(degree);
        charts._drawPath(canvas, new charts._StyleOptions.new(fillPaint.color, fillPaint.strokeWidth, colors$.Colors.transparent), charts._getArcPath(radius / 2 - 2, radius / 2, new ui.Offset.new(location.dx, location.dy), -90, pointEndAngle, degree, charts.SfCircularChart._check(chart), true));
      } else {
        let radius = (dart.notNull(width) + dart.notNull(height)) / 2;
        charts._drawPath(canvas, new charts._StyleOptions.new(fillPaint.color, fillPaint.strokeWidth, colors$.Colors.grey._get(300).withOpacity(0.5)), charts._getArcPath(radius / 4, radius / 2, new ui.Offset.new(location.dx, location.dy), 0, 270, 270, charts.SfCircularChart._check(chart), true));
        charts._drawPath(canvas, new charts._StyleOptions.new(fillPaint.color, fillPaint.strokeWidth, colors$.Colors.grey._get(300).withOpacity(0.5)), charts._getArcPath(radius / 4, radius / 2, new ui.Offset.new(dart.notNull(location.dx) + 1, dart.notNull(location.dy) - 1), -5, -85, -85, charts.SfCircularChart._check(chart), true));
      }
    }
  };
  (charts._LegendRenderer.new = function() {
    ;
  }).prototype = charts._LegendRenderer.prototype;
  dart.addTypeTests(charts._LegendRenderer);
  dart.setMethodSignature(charts._LegendRenderer, () => ({
    __proto__: dart.getMethods(charts._LegendRenderer.__proto__),
    getLegendIconBorderColor: dart.fnType(ui.Color, [core.int, charts._LegendRenderContext, ui.Color]),
    getLegendIconColor: dart.fnType(ui.Color, [core.int, charts._LegendRenderContext, ui.Color]),
    getLegendTextColor: dart.fnType(ui.Color, [core.int, charts._LegendRenderContext, ui.Color]),
    getLegendIconBorderWidth: dart.fnType(core.double, [core.int, charts._LegendRenderContext, core.double]),
    drawLegendItem: dart.fnType(dart.void, [core.int, charts._LegendRenderContext, charts.Legend, dart.dynamic, ui.Canvas, ui.Size]),
    [_getIconType]: dart.fnType(charts.LegendIconType, [charts.DataMarkerType]),
    [_drawLegendShape]: dart.fnType(dart.void, [core.int, ui.Offset, ui.Canvas, ui.Size, charts.Legend, charts.LegendIconType, ui.Color, charts._LegendRenderContext, dart.dynamic]),
    [_getLegendIconType]: dart.fnType(charts.LegendIconType, [charts.LegendIconType, charts._LegendRenderContext]),
    [_getPathAndStyle]: dart.fnType(ui.PaintingStyle, [charts.LegendIconType, ui.PaintingStyle, ui.Path, ui.Offset, core.double, core.double, dart.dynamic, dart.dynamic, ui.Canvas]),
    [_drawIcon]: dart.fnType(dart.void, [charts.LegendIconType, core.int, core.String, charts._LegendRenderContext, dart.dynamic, core.double, core.double, ui.Offset, ui.Size, ui.Canvas, ui.Paint, ui.Path])
  }));
  dart.setLibraryUri(charts._LegendRenderer, "package:syncfusion_flutter_charts/charts.dart");
  const _processCartesianSeriesToggle = dart.privateName(charts, "_processCartesianSeriesToggle");
  const _processCircularPointsToggle = dart.privateName(charts, "_processCircularPointsToggle");
  let C799;
  let C800;
  let C798;
  let C797;
  let C803;
  let C802;
  let C801;
  let C806;
  let C807;
  let C805;
  let C804;
  let C810;
  let C809;
  let C808;
  let C813;
  let C814;
  let C815;
  let C812;
  let C811;
  const index$0 = dart.privateName(charts, "_RenderLegend.index");
  const size$3 = dart.privateName(charts, "_RenderLegend.size");
  const chart$0 = dart.privateName(charts, "_RenderLegend.chart");
  const template$ = dart.privateName(charts, "_RenderLegend.template");
  charts._RenderLegend = class _RenderLegend extends framework.StatelessWidget {
    get index() {
      return this[index$0];
    }
    set index(value) {
      super.index = value;
    }
    get size() {
      return this[size$3];
    }
    set size(value) {
      super.size = value;
    }
    get chart() {
      return this[chart$0];
    }
    set chart(value) {
      super.chart = value;
    }
    get template() {
      return this[template$];
    }
    set template(value) {
      super.template = value;
    }
    build(context) {
      let isSelect = null;
      if (dart.dload(dart.dload(this.chart, 'legend'), 'legendItemBuilder') != null) {
        let _measureWidgetContext = charts._MeasureWidgetContext._check(dart.dsend(dart.dload(dart.dload(this.chart, _chartState), 'legendWidgetContext'), '_get', [this.index]));
        isSelect = core.bool._check(charts.SfCartesianChart.is(this.chart) ? dart.dload(dart.dsend(dart.dload(this.chart, 'series'), '_get', [_measureWidgetContext.seriesIndex]), _visible) : dart.dload(dart.dsend(dart.dload(dart.dsend(dart.dload(dart.dload(this.chart, _chartSeries), 'visibleSeries'), '_get', [_measureWidgetContext.seriesIndex]), _renderPoints), '_get', [_measureWidgetContext.pointIndex]), 'isVisible'));
      }
      return new container.Container.new({height: this.size.height, width: core.double._check(dart.equals(dart.dload(dart.dload(this.chart, 'legend'), _orientation), charts.LegendItemOrientation.vertical) && (dart.equals(dart.dload(dart.dload(this.chart, 'legend'), 'overflowMode'), charts.LegendItemOverflowMode.scroll) || dart.equals(dart.dload(dart.dload(this.chart, 'legend'), 'overflowMode'), charts.LegendItemOverflowMode.none)) ? dart.dload(dart.dload(dart.dload(this.chart, _chartLegend), 'legendSize'), 'width') : this.size.width), child: new web.HandCursor.new({child: new gesture_detector.GestureDetector.new({onTapUp: dart.fn(details => {
              if (charts.SfCartesianChart.is(this.chart)) {
                this[_processCartesianSeriesToggle]();
              } else {
                this[_processCircularPointsToggle]();
              }
            }, TapUpDetailsToNull()), child: this.template != null ? !dart.test(isSelect) ? new basic.Opacity.new({child: this.template, opacity: 0.5, $creationLocationd_0dea112b090073317d4: C797 || CT.C797}) : this.template : new basic.CustomPaint.new({painter: new charts._ChartLegendPainter.new({chart: this.chart, legendIndex: this.index, isSelect: core.bool._check(dart.dload(dart.dsend(dart.dload(dart.dload(this.chart, _chartLegend), 'legendCollections'), '_get', [this.index]), 'isSelect')), notifier: ValueNotifierOfint()._check(dart.dload(dart.dload(this.chart, _chartLegend), 'legendRepaintNotifier'))}), $creationLocationd_0dea112b090073317d4: C801 || CT.C801}), $creationLocationd_0dea112b090073317d4: C804 || CT.C804}), $creationLocationd_0dea112b090073317d4: C808 || CT.C808}), $creationLocationd_0dea112b090073317d4: C811 || CT.C811});
    }
    [_processCircularPointsToggle]() {
      let legendTapArgs = null;
      if (dart.dload(this.chart, 'onLegendTapped') != null) {
        legendTapArgs = new charts.LegendTapArgs.new();
        if (charts.SfCircularChart.is(this.chart)) {
          legendTapArgs.series = dart.dsend(dart.dload(this.chart, 'series'), '_get', [0]);
        } else {
          legendTapArgs.series = dart.dsend(dart.dload(this.chart, _series), '_get', [0]);
        }
        legendTapArgs.seriesIndex = 0;
        legendTapArgs.pointIndex = this.index;
        dart.dsend(this.chart, 'onLegendTapped', [legendTapArgs]);
      }
      if (dart.dtest(dart.dload(dart.dload(this.chart, 'legend'), 'toggleSeriesVisibility'))) {
        if (dart.dload(dart.dload(this.chart, 'legend'), 'legendItemBuilder') != null) {
          charts._legendToggleTemplateState(charts._MeasureWidgetContext._check(dart.dsend(dart.dload(dart.dload(this.chart, _chartState), 'legendWidgetContext'), '_get', [this.index])), this.chart, "");
        } else {
          charts._legendToggleState(charts._LegendRenderContext._check(dart.dsend(dart.dload(dart.dload(this.chart, _chartLegend), 'legendCollections'), '_get', [this.index])), this.chart);
        }
        dart.dput(dart.dload(this.chart, _chartState), _isLegendToggled, true);
        dart.dsend(dart.dload(this.chart, _chartState), _redraw, []);
      }
    }
    [_processCartesianSeriesToggle]() {
      let legendTapArgs = null;
      let _measureWidgetContext = null;
      let _legendRenderContext = null;
      if (dart.dload(this.chart, 'onLegendTapped') != null) {
        legendTapArgs = new charts.LegendTapArgs.new();
        if (dart.dload(dart.dload(this.chart, 'legend'), 'legendItemBuilder') != null) {
          _measureWidgetContext = charts._MeasureWidgetContext._check(dart.dsend(dart.dload(dart.dload(this.chart, _chartState), 'legendWidgetContext'), '_get', [this.index]));
          legendTapArgs.seriesIndex = _measureWidgetContext.seriesIndex;
          legendTapArgs.series = dart.dsend(dart.dload(dart.dload(this.chart, _chartSeries), 'visibleSeries'), '_get', [_measureWidgetContext.seriesIndex]);
        } else {
          _legendRenderContext = charts._LegendRenderContext._check(dart.dsend(dart.dload(dart.dload(this.chart, _chartLegend), 'legendCollections'), '_get', [this.index]));
          legendTapArgs.seriesIndex = _legendRenderContext.seriesIndex;
          legendTapArgs.series = _legendRenderContext.series;
        }
        dart.dsend(this.chart, 'onLegendTapped', [legendTapArgs]);
      }
      if (dart.dtest(dart.dload(dart.dload(this.chart, 'legend'), 'toggleSeriesVisibility'))) {
        if (dart.dload(dart.dload(this.chart, 'legend'), 'legendItemBuilder') != null) {
          charts._legendToggleTemplateState(charts._MeasureWidgetContext._check(dart.dsend(dart.dload(dart.dload(this.chart, _chartState), 'legendWidgetContext'), '_get', [this.index])), this.chart, "");
        } else {
          charts._cartesianLegendToggleState(charts._LegendRenderContext._check(dart.dsend(dart.dload(dart.dload(this.chart, _chartLegend), 'legendCollections'), '_get', [this.index])), this.chart);
        }
        dart.dput(dart.dload(this.chart, _chartState), _isLegendToggled, true);
        dart.dput(dart.dload(this.chart, _chartState), _legendToggling, true);
        dart.dsend(dart.dload(this.chart, _chartState), _redraw, []);
      }
    }
  };
  (charts._RenderLegend.new = function(opts) {
    let index = opts && 'index' in opts ? opts.index : null;
    let size = opts && 'size' in opts ? opts.size : null;
    let chart = opts && 'chart' in opts ? opts.chart : null;
    let template = opts && 'template' in opts ? opts.template : null;
    let $36creationLocationd_0dea112b090073317d4 = opts && '$creationLocationd_0dea112b090073317d4' in opts ? opts.$creationLocationd_0dea112b090073317d4 : null;
    this[index$0] = index;
    this[size$3] = size;
    this[chart$0] = chart;
    this[template$] = template;
    charts._RenderLegend.__proto__.new.call(this, {$creationLocationd_0dea112b090073317d4: $36creationLocationd_0dea112b090073317d4});
    ;
  }).prototype = charts._RenderLegend.prototype;
  dart.addTypeTests(charts._RenderLegend);
  dart.setMethodSignature(charts._RenderLegend, () => ({
    __proto__: dart.getMethods(charts._RenderLegend.__proto__),
    build: dart.fnType(framework.Widget, [framework.BuildContext]),
    [_processCircularPointsToggle]: dart.fnType(dart.void, []),
    [_processCartesianSeriesToggle]: dart.fnType(dart.void, [])
  }));
  dart.setLibraryUri(charts._RenderLegend, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._RenderLegend, () => ({
    __proto__: dart.getFields(charts._RenderLegend.__proto__),
    index: dart.finalFieldType(core.int),
    size: dart.finalFieldType(ui.Size),
    chart: dart.finalFieldType(dart.dynamic),
    template: dart.finalFieldType(framework.Widget)
  }));
  charts._ChartLegendStylePainter = class _ChartLegendStylePainter extends custom_paint.CustomPainter {
    paint(canvas, size) {
      let t8, t7, t7$;
      let legend = charts.Legend._check(dart.dload(this.chart, 'legend'));
      if (legend.backgroundColor != null) {
        canvas.drawRect(new ui.Rect.fromLTWH(0.0, 0.0, size.width, size.height), (t7 = ui.Paint.new(), t7.color = ui.Color._check((t8 = legend.backgroundColor, t8 == null ? dart.dload(dart.dload(dart.dload(this.chart, _chartState), _chartTheme), 'legendBackgroundColor') : t8)), t7.style = ui.PaintingStyle.fill, t7));
      }
      if (legend.borderColor != null && dart.notNull(legend.borderWidth) > 0) {
        canvas.drawRect(new ui.Rect.fromLTWH(0.0, 0.0, size.width, size.height), (t7$ = ui.Paint.new(), t7$.color = legend.borderColor, t7$.strokeWidth = legend.borderWidth, t7$.style = ui.PaintingStyle.stroke, t7$));
      }
    }
    shouldRepaint(oldDelegate) {
      custom_paint.CustomPainter._check(oldDelegate);
      return true;
    }
  };
  (charts._ChartLegendStylePainter.new = function(opts) {
    let chart = opts && 'chart' in opts ? opts.chart : null;
    this.chart = chart;
    charts._ChartLegendStylePainter.__proto__.new.call(this);
    ;
  }).prototype = charts._ChartLegendStylePainter.prototype;
  dart.addTypeTests(charts._ChartLegendStylePainter);
  dart.setMethodSignature(charts._ChartLegendStylePainter, () => ({
    __proto__: dart.getMethods(charts._ChartLegendStylePainter.__proto__),
    paint: dart.fnType(dart.void, [ui.Canvas, ui.Size]),
    shouldRepaint: dart.fnType(core.bool, [core.Object])
  }));
  dart.setLibraryUri(charts._ChartLegendStylePainter, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._ChartLegendStylePainter, () => ({
    __proto__: dart.getFields(charts._ChartLegendStylePainter.__proto__),
    chart: dart.finalFieldType(dart.dynamic)
  }));
  charts._ChartLegendPainter = class _ChartLegendPainter extends custom_paint.CustomPainter {
    paint(canvas, size) {
      let legend = charts.Legend._check(dart.dload(this.chart, 'legend'));
      let legendRenderContext = charts._LegendRenderContext._check(dart.dsend(dart.dload(dart.dload(this.chart, _chartLegend), 'legendCollections'), '_get', [this.legendIndex]));
      legend[_renderer].drawLegendItem(this.legendIndex, legendRenderContext, legend, this.chart, canvas, size);
    }
    shouldRepaint(oldDelegate) {
      charts._ChartLegendPainter._check(oldDelegate);
      return true;
    }
  };
  (charts._ChartLegendPainter.new = function(opts) {
    let chart = opts && 'chart' in opts ? opts.chart : null;
    let legendIndex = opts && 'legendIndex' in opts ? opts.legendIndex : null;
    let isSelect = opts && 'isSelect' in opts ? opts.isSelect : null;
    let notifier = opts && 'notifier' in opts ? opts.notifier : null;
    this.chart = chart;
    this.legendIndex = legendIndex;
    this.isSelect = isSelect;
    charts._ChartLegendPainter.__proto__.new.call(this, {repaint: notifier});
    ;
  }).prototype = charts._ChartLegendPainter.prototype;
  dart.addTypeTests(charts._ChartLegendPainter);
  dart.setMethodSignature(charts._ChartLegendPainter, () => ({
    __proto__: dart.getMethods(charts._ChartLegendPainter.__proto__),
    paint: dart.fnType(dart.void, [ui.Canvas, ui.Size]),
    shouldRepaint: dart.fnType(core.bool, [core.Object])
  }));
  dart.setLibraryUri(charts._ChartLegendPainter, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._ChartLegendPainter, () => ({
    __proto__: dart.getFields(charts._ChartLegendPainter.__proto__),
    chart: dart.finalFieldType(dart.dynamic),
    legendIndex: dart.finalFieldType(core.int),
    isSelect: dart.finalFieldType(core.bool)
  }));
  charts._LegendRenderContext = class _LegendRenderContext extends core.Object {};
  (charts._LegendRenderContext.new = function(opts) {
    let size = opts && 'size' in opts ? opts.size : null;
    let text = opts && 'text' in opts ? opts.text : null;
    let textSize = opts && 'textSize' in opts ? opts.textSize : null;
    let iconColor = opts && 'iconColor' in opts ? opts.iconColor : null;
    let iconType = opts && 'iconType' in opts ? opts.iconType : null;
    let point = opts && 'point' in opts ? opts.point : null;
    let isSelect = opts && 'isSelect' in opts ? opts.isSelect : null;
    let trendline = opts && 'trendline' in opts ? opts.trendline : null;
    let seriesIndex = opts && 'seriesIndex' in opts ? opts.seriesIndex : null;
    let trendlineIndex = opts && 'trendlineIndex' in opts ? opts.trendlineIndex : null;
    let series = opts && 'series' in opts ? opts.series : null;
    this.templateSize = null;
    this.isRender = false;
    this.size = size;
    this.text = text;
    this.textSize = textSize;
    this.iconColor = iconColor;
    this.iconType = iconType;
    this.point = point;
    this.isSelect = isSelect;
    this.trendline = trendline;
    this.seriesIndex = seriesIndex;
    this.trendlineIndex = trendlineIndex;
    this.series = series;
    ;
  }).prototype = charts._LegendRenderContext.prototype;
  dart.addTypeTests(charts._LegendRenderContext);
  dart.setLibraryUri(charts._LegendRenderContext, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._LegendRenderContext, () => ({
    __proto__: dart.getFields(charts._LegendRenderContext.__proto__),
    text: dart.fieldType(core.String),
    iconColor: dart.fieldType(ui.Color),
    textSize: dart.fieldType(ui.Size),
    iconType: dart.fieldType(charts.LegendIconType),
    size: dart.fieldType(ui.Size),
    templateSize: dart.fieldType(ui.Size),
    series: dart.fieldType(dart.dynamic),
    trendline: dart.fieldType(charts.Trendline),
    point: dart.fieldType(dart.dynamic),
    seriesIndex: dart.fieldType(core.int),
    trendlineIndex: dart.fieldType(core.int),
    isSelect: dart.fieldType(core.bool),
    isRender: dart.fieldType(core.bool)
  }));
  charts.CircularChartEmptyPointBehavior = class CircularChartEmptyPointBehavior extends core.Object {};
  (charts.CircularChartEmptyPointBehavior.new = function() {
    ;
  }).prototype = charts.CircularChartEmptyPointBehavior.prototype;
  dart.addTypeTests(charts.CircularChartEmptyPointBehavior);
  dart.setLibraryUri(charts.CircularChartEmptyPointBehavior, "package:syncfusion_flutter_charts/charts.dart");
  charts.TriangularChartEmptyPointBehavior = class TriangularChartEmptyPointBehavior extends core.Object {};
  (charts.TriangularChartEmptyPointBehavior.new = function() {
    ;
  }).prototype = charts.TriangularChartEmptyPointBehavior.prototype;
  dart.addTypeTests(charts.TriangularChartEmptyPointBehavior);
  dart.setLibraryUri(charts.TriangularChartEmptyPointBehavior, "package:syncfusion_flutter_charts/charts.dart");
  charts._RenderTemplate = class _RenderTemplate extends framework.StatefulWidget {
    createState() {
      return new charts._RenderTemplateState.new();
    }
  };
  (charts._RenderTemplate.new = function(opts) {
    let template = opts && 'template' in opts ? opts.template : null;
    let needMeasure = opts && 'needMeasure' in opts ? opts.needMeasure : null;
    let templateLength = opts && 'templateLength' in opts ? opts.templateLength : null;
    let templateIndex = opts && 'templateIndex' in opts ? opts.templateIndex : null;
    let chart = opts && 'chart' in opts ? opts.chart : null;
    let $36creationLocationd_0dea112b090073317d4 = opts && '$creationLocationd_0dea112b090073317d4' in opts ? opts.$creationLocationd_0dea112b090073317d4 : null;
    this.isAnnotation = null;
    this.template = template;
    this.needMeasure = needMeasure;
    this.templateLength = templateLength;
    this.templateIndex = templateIndex;
    this.chart = chart;
    charts._RenderTemplate.__proto__.new.call(this, {$creationLocationd_0dea112b090073317d4: $36creationLocationd_0dea112b090073317d4});
    ;
  }).prototype = charts._RenderTemplate.prototype;
  dart.addTypeTests(charts._RenderTemplate);
  dart.setMethodSignature(charts._RenderTemplate, () => ({
    __proto__: dart.getMethods(charts._RenderTemplate.__proto__),
    createState: dart.fnType(framework.State$(framework.StatefulWidget), [])
  }));
  dart.setLibraryUri(charts._RenderTemplate, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._RenderTemplate, () => ({
    __proto__: dart.getFields(charts._RenderTemplate.__proto__),
    template: dart.finalFieldType(charts._ChartTemplateInfo),
    needMeasure: dart.fieldType(core.bool),
    templateLength: dart.finalFieldType(core.int),
    templateIndex: dart.finalFieldType(core.int),
    chart: dart.finalFieldType(dart.dynamic),
    isAnnotation: dart.fieldType(core.bool)
  }));
  const _templatesMeasureCompleted = dart.privateName(charts, "_templatesMeasureCompleted");
  let C818;
  let C819;
  let C817;
  let C816;
  const _isTemplateWithinBounds = dart.privateName(charts, "_isTemplateWithinBounds");
  let C822;
  let C823;
  let C824;
  let C821;
  let C820;
  let C827;
  let C826;
  let C825;
  let C830;
  let C831;
  let C829;
  let C828;
  let C834;
  let C835;
  let C836;
  let C833;
  let C832;
  let C839;
  let C838;
  let C837;
  let C842;
  let C841;
  let C840;
  const State_TickerProviderStateMixin$36$1 = class State_TickerProviderStateMixin extends framework.State$(charts._RenderTemplate) {};
  (State_TickerProviderStateMixin$36$1.new = function() {
    ticker_provider.TickerProviderStateMixin$(charts._RenderTemplate)[dart.mixinNew].call(this);
    State_TickerProviderStateMixin$36$1.__proto__.new.call(this);
  }).prototype = State_TickerProviderStateMixin$36$1.prototype;
  dart.applyMixin(State_TickerProviderStateMixin$36$1, ticker_provider.TickerProviderStateMixin$(charts._RenderTemplate));
  charts._RenderTemplateState = class _RenderTemplateState extends State_TickerProviderStateMixin$36$1 {
    initState() {
      this.templateControllerList = JSArrayOfAnimationController().of([]);
      super.initState();
    }
    dispose() {
      if (dart.test(this.templateControllerList[$isNotEmpty])) {
        for (let index = 0; index < dart.notNull(this.templateControllerList[$length]); index = index + 1) {
          this.templateControllerList[$_get](index).dispose();
        }
        this.templateControllerList[$clear]();
      }
      super.dispose();
    }
    [_templatesMeasureCompleted]() {
      let renderBox = box.RenderBox._check(this.widget.template.context.findRenderObject());
      this.widget.template.size = renderBox.size;
      this.setState(dart.fn(() => {
        this.widget.template.needMeasure = false;
      }, VoidToNull()));
    }
    build(context) {
      let currentWidget = null;
      let templateWidgets = JSArrayOfWidget().of([]);
      if (dart.test(this.widget.template.needMeasure)) {
        currentWidget = new basic.Opacity.new({opacity: 0.0, child: this.widget.template.widget, $creationLocationd_0dea112b090073317d4: C816 || CT.C816});
        this.widget.template.context = context;
        binding.SchedulerBinding.instance.addPostFrameCallback(dart.fn(_ => this[_templatesMeasureCompleted](), DurationTovoid()));
      } else {
        let locationX = null;
        let locationY = null;
        let templateInfo = this.widget.template;
        locationX = dart.notNull(templateInfo.location.dx) - dart.notNull(dart.equals(templateInfo.horizontalAlignment, charts.ChartAlignment.near) ? 0 : dart.equals(templateInfo.horizontalAlignment, charts.ChartAlignment.center) ? dart.notNull(templateInfo.size.width) / 2 : templateInfo.size.width);
        locationY = dart.notNull(templateInfo.location.dy) - dart.notNull(dart.equals(templateInfo.verticalAlignment, charts.ChartAlignment.near) ? 0 : dart.equals(templateInfo.verticalAlignment, charts.ChartAlignment.center) ? dart.notNull(templateInfo.size.height) / 2 : templateInfo.size.height);
        let rect = new ui.Rect.fromLTWH(locationX, locationY, templateInfo.size.width, templateInfo.size.height);
        let isCollide = templateInfo.templateType === "DataLabel" ? charts._isCollide(rect, ListOfRect()._check(dart.dload(dart.dload(this.widget.chart, _chartState), 'dataLabelTemplateRegions'))) : false;
        if (!dart.test(isCollide) && dart.test(this[_isTemplateWithinBounds](templateInfo.clipRect, rect))) {
          let renderWidget = new basic.Stack.new({children: JSArrayOfWidget().of([new basic.Positioned.new({left: locationX, top: locationY, child: templateInfo.widget, $creationLocationd_0dea112b090073317d4: C820 || CT.C820})]), $creationLocationd_0dea112b090073317d4: C825 || CT.C825});
          templateInfo.templateType === "DataLabel" ? dart.dsend(dart.dload(dart.dload(this.widget.chart, _chartState), 'dataLabelTemplateRegions'), 'add', [rect]) : dart.dsend(dart.dload(dart.dload(this.widget.chart, _chartState), 'annotationRegions'), 'add', [rect]);
          if (dart.notNull(templateInfo.animationDuration) > 0) {
            this.animationController = new animation_controller.AnimationController.new({duration: new core.Duration.new({milliseconds: this.widget.template.animationDuration}), vsync: this});
            this.animation = new (TweenOfdouble()).new({begin: 0.0, end: 1.0}).animate(new animations.CurvedAnimation.new({parent: this.animationController, curve: curves.Curves.linear}));
            this.animationController.forward({from: 0.0});
            this.templateControllerList[$add](this.animationController);
            templateWidgets[$add](new transitions.AnimatedBuilder.new({animation: this.animationController, child: renderWidget, builder: dart.fn((context, _widget) => {
                let value = this.animationController.value;
                return new basic.Opacity.new({opacity: dart.notNull(value) * 1.0, child: _widget, $creationLocationd_0dea112b090073317d4: C828 || CT.C828});
              }, BuildContextAndWidgetToOpacity()), $creationLocationd_0dea112b090073317d4: C832 || CT.C832}));
          } else {
            templateWidgets[$add](renderWidget);
          }
        }
        currentWidget = new container.Container.new({child: new basic.Stack.new({children: templateWidgets, $creationLocationd_0dea112b090073317d4: C837 || CT.C837}), $creationLocationd_0dea112b090073317d4: C840 || CT.C840});
      }
      return currentWidget;
    }
    [_isTemplateWithinBounds](bounds, templateRect) {
      return dart.notNull(templateRect.left) >= dart.notNull(bounds.left) && dart.notNull(templateRect.left) + dart.notNull(templateRect.width) <= dart.notNull(bounds.left) + dart.notNull(bounds.width) && dart.notNull(templateRect.top) >= dart.notNull(bounds.top) && dart.notNull(templateRect.top) + dart.notNull(templateRect.height) <= dart.notNull(bounds.top) + dart.notNull(bounds.height);
    }
  };
  (charts._RenderTemplateState.new = function() {
    this.templateControllerList = null;
    this.animationController = null;
    this.animation = null;
    charts._RenderTemplateState.__proto__.new.call(this);
    ;
  }).prototype = charts._RenderTemplateState.prototype;
  dart.addTypeTests(charts._RenderTemplateState);
  dart.setMethodSignature(charts._RenderTemplateState, () => ({
    __proto__: dart.getMethods(charts._RenderTemplateState.__proto__),
    [_templatesMeasureCompleted]: dart.fnType(dart.void, []),
    build: dart.fnType(framework.Widget, [framework.BuildContext]),
    [_isTemplateWithinBounds]: dart.fnType(core.bool, [ui.Rect, ui.Rect])
  }));
  dart.setLibraryUri(charts._RenderTemplateState, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._RenderTemplateState, () => ({
    __proto__: dart.getFields(charts._RenderTemplateState.__proto__),
    templateControllerList: dart.fieldType(core.List$(animation_controller.AnimationController)),
    animationController: dart.fieldType(animation_controller.AnimationController),
    animation: dart.fieldType(animation.Animation$(core.double))
  }));
  charts._ChartTemplate = class _ChartTemplate extends framework.StatefulWidget {
    createState() {
      return new charts._ChartTemplateState.new();
    }
  };
  (charts._ChartTemplate.new = function(opts) {
    let templates = opts && 'templates' in opts ? opts.templates : null;
    let render = opts && 'render' in opts ? opts.render : null;
    let chart = opts && 'chart' in opts ? opts.chart : null;
    let $36creationLocationd_0dea112b090073317d4 = opts && '$creationLocationd_0dea112b090073317d4' in opts ? opts.$creationLocationd_0dea112b090073317d4 : null;
    this.render = false;
    this.state = null;
    this.templates = templates;
    this.render = render;
    this.chart = chart;
    charts._ChartTemplate.__proto__.new.call(this, {$creationLocationd_0dea112b090073317d4: $36creationLocationd_0dea112b090073317d4});
    ;
  }).prototype = charts._ChartTemplate.prototype;
  dart.addTypeTests(charts._ChartTemplate);
  dart.setMethodSignature(charts._ChartTemplate, () => ({
    __proto__: dart.getMethods(charts._ChartTemplate.__proto__),
    createState: dart.fnType(framework.State$(framework.StatefulWidget), [])
  }));
  dart.setLibraryUri(charts._ChartTemplate, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._ChartTemplate, () => ({
    __proto__: dart.getFields(charts._ChartTemplate.__proto__),
    templates: dart.fieldType(core.List$(charts._ChartTemplateInfo)),
    render: dart.fieldType(core.bool),
    chart: dart.fieldType(dart.dynamic),
    state: dart.fieldType(charts._ChartTemplateState)
  }));
  let C843;
  let C846;
  let C847;
  let C848;
  let C849;
  let C845;
  let C844;
  let C852;
  let C851;
  let C850;
  charts._ChartTemplateState = class _ChartTemplateState extends framework.State$(charts._ChartTemplate) {
    initState() {
      this.widget.state = this;
      super.initState();
    }
    dispose() {
      super.dispose();
    }
    templateRender() {
      this.setState(dart.fn(() => {
        this.widget.render = true;
      }, VoidToNull()));
    }
    build(context) {
      let renderTemplate = new container.Container.new({$creationLocationd_0dea112b090073317d4: C843 || CT.C843});
      if (dart.dtest(dart.dload(dart.dload(this.widget.chart, _chartState), 'animateCompleted')) && dart.test(this.widget.templates[$isNotEmpty])) {
        let renderWidgets = JSArrayOfWidget().of([]);
        for (let i = 0; i < dart.notNull(this.widget.templates[$length]); i = i + 1) {
          renderWidgets[$add](new charts._RenderTemplate.new({template: this.widget.templates[$_get](i), templateIndex: i, templateLength: this.widget.templates[$length], chart: this.widget.chart, $creationLocationd_0dea112b090073317d4: C844 || CT.C844}));
        }
        renderTemplate = new basic.Stack.new({children: renderWidgets, $creationLocationd_0dea112b090073317d4: C850 || CT.C850});
      }
      return renderTemplate;
    }
  };
  (charts._ChartTemplateState.new = function() {
    charts._ChartTemplateState.__proto__.new.call(this);
    ;
  }).prototype = charts._ChartTemplateState.prototype;
  dart.addTypeTests(charts._ChartTemplateState);
  dart.setMethodSignature(charts._ChartTemplateState, () => ({
    __proto__: dart.getMethods(charts._ChartTemplateState.__proto__),
    templateRender: dart.fnType(dart.void, []),
    build: dart.fnType(framework.Widget, [framework.BuildContext])
  }));
  dart.setLibraryUri(charts._ChartTemplateState, "package:syncfusion_flutter_charts/charts.dart");
  charts._ChartTemplateInfo = class _ChartTemplateInfo extends core.Object {};
  (charts._ChartTemplateInfo.new = function(opts) {
    let t7, t7$;
    let key = opts && 'key' in opts ? opts.key : null;
    let widget = opts && 'widget' in opts ? opts.widget : null;
    let location = opts && 'location' in opts ? opts.location : null;
    let animationDuration = opts && 'animationDuration' in opts ? opts.animationDuration : null;
    let seriesIndex = opts && 'seriesIndex' in opts ? opts.seriesIndex : null;
    let pointIndex = opts && 'pointIndex' in opts ? opts.pointIndex : null;
    let templateType = opts && 'templateType' in opts ? opts.templateType : null;
    let clipRect = opts && 'clipRect' in opts ? opts.clipRect : null;
    let needMeasure = opts && 'needMeasure' in opts ? opts.needMeasure : null;
    let horizontalAlignment = opts && 'horizontalAlignment' in opts ? opts.horizontalAlignment : null;
    let verticalAlignment = opts && 'verticalAlignment' in opts ? opts.verticalAlignment : null;
    this.size = null;
    this.point = null;
    this.context = null;
    this.key = key;
    this.widget = widget;
    this.location = location;
    this.animationDuration = animationDuration;
    this.seriesIndex = seriesIndex;
    this.pointIndex = pointIndex;
    this.templateType = templateType;
    this.clipRect = clipRect;
    this.needMeasure = needMeasure;
    this.horizontalAlignment = (t7 = horizontalAlignment, t7 == null ? charts.ChartAlignment.center : t7);
    this.verticalAlignment = (t7$ = verticalAlignment, t7$ == null ? charts.ChartAlignment.center : t7$);
    ;
  }).prototype = charts._ChartTemplateInfo.prototype;
  dart.addTypeTests(charts._ChartTemplateInfo);
  dart.setLibraryUri(charts._ChartTemplateInfo, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._ChartTemplateInfo, () => ({
    __proto__: dart.getFields(charts._ChartTemplateInfo.__proto__),
    key: dart.fieldType(key.Key),
    widget: dart.fieldType(framework.Widget),
    size: dart.fieldType(ui.Size),
    point: dart.fieldType(dart.dynamic),
    location: dart.fieldType(ui.Offset),
    context: dart.fieldType(framework.BuildContext),
    animationDuration: dart.fieldType(core.int),
    pointIndex: dart.fieldType(core.int),
    seriesIndex: dart.fieldType(core.int),
    clipRect: dart.fieldType(ui.Rect),
    templateType: dart.fieldType(core.String),
    horizontalAlignment: dart.fieldType(charts.ChartAlignment),
    verticalAlignment: dart.fieldType(charts.ChartAlignment),
    needMeasure: dart.fieldType(core.bool)
  }));
  const _selectedDataPointIndex = dart.privateName(charts, "_selectedDataPointIndex");
  const enable$2 = dart.privateName(charts, "SelectionSettings.enable");
  const selectedColor$ = dart.privateName(charts, "SelectionSettings.selectedColor");
  const selectedBorderColor$ = dart.privateName(charts, "SelectionSettings.selectedBorderColor");
  const selectedBorderWidth$ = dart.privateName(charts, "SelectionSettings.selectedBorderWidth");
  const unselectedColor$ = dart.privateName(charts, "SelectionSettings.unselectedColor");
  const unselectedBorderColor$ = dart.privateName(charts, "SelectionSettings.unselectedBorderColor");
  const unselectedBorderWidth$ = dart.privateName(charts, "SelectionSettings.unselectedBorderWidth");
  const selectedOpacity$ = dart.privateName(charts, "SelectionSettings.selectedOpacity");
  const unselectedOpacity$ = dart.privateName(charts, "SelectionSettings.unselectedOpacity");
  const selectionController$ = dart.privateName(charts, "SelectionSettings.selectionController");
  charts.SelectionSettings = class SelectionSettings extends charts.ChartSelectionBehavior {
    get enable() {
      return this[enable$2];
    }
    set enable(value) {
      super.enable = value;
    }
    get selectedColor() {
      return this[selectedColor$];
    }
    set selectedColor(value) {
      super.selectedColor = value;
    }
    get selectedBorderColor() {
      return this[selectedBorderColor$];
    }
    set selectedBorderColor(value) {
      super.selectedBorderColor = value;
    }
    get selectedBorderWidth() {
      return this[selectedBorderWidth$];
    }
    set selectedBorderWidth(value) {
      super.selectedBorderWidth = value;
    }
    get unselectedColor() {
      return this[unselectedColor$];
    }
    set unselectedColor(value) {
      super.unselectedColor = value;
    }
    get unselectedBorderColor() {
      return this[unselectedBorderColor$];
    }
    set unselectedBorderColor(value) {
      super.unselectedBorderColor = value;
    }
    get unselectedBorderWidth() {
      return this[unselectedBorderWidth$];
    }
    set unselectedBorderWidth(value) {
      super.unselectedBorderWidth = value;
    }
    get selectedOpacity() {
      return this[selectedOpacity$];
    }
    set selectedOpacity(value) {
      super.selectedOpacity = value;
    }
    get unselectedOpacity() {
      return this[unselectedOpacity$];
    }
    set unselectedOpacity(value) {
      super.unselectedOpacity = value;
    }
    get selectionController() {
      return this[selectionController$];
    }
    set selectionController(value) {
      super.selectionController = value;
    }
    selectionIndex(pointIndex, seriesIndex, selectionType = null, multiSelect = null) {
      let t7;
      t7 = this[_selectionRenderer];
      return t7 == null ? null : t7.selectionIndex(pointIndex, seriesIndex, selectionType, multiSelect);
    }
    getSelectedDataPoints(_series) {
      let selectedItems = JSArrayOfChartSegment().of([]);
      let selectedPoints = JSArrayOfint().of([]);
      selectedItems = _series.selectionSettings[_selectionRenderer].selectedSegments;
      for (let i = 0; i < dart.notNull(selectedItems[$length]); i = i + 1) {
        selectedPoints[$add](selectedItems[$_get](i).currentSegmentIndex);
      }
      return selectedPoints;
    }
    selectRange() {
      let isSelect = false;
      if (dart.dtest(dart.dload(dart.dload(this[_selectionRenderer].series, 'selectionSettings'), 'enable')) && this.selectionController != null) this.selectionController.addListener(dart.fn(() => {
        let t8, t7;
        dart.dput(dart.dload(this[_selectionRenderer].chart, _chartState), 'isRangeSelectionSlider', true);
        this[_selectionRenderer].selectedSegments[$clear]();
        this[_selectionRenderer].unselectedSegments[$clear]();
        let start = dart.dload(dart.dload(dart.dload(this[_selectionRenderer].series, 'selectionSettings'), 'selectionController'), 'start');
        let end = dart.dload(dart.dload(dart.dload(this[_selectionRenderer].series, 'selectionSettings'), 'selectionController'), 'end');
        for (let i = 0; i < dart.notNull(core.num._check(dart.dload(dart.dload(this[_selectionRenderer].series, _dataPoints$), 'length'))); i = i + 1) {
          isSelect = core.DateTime.is(start) ? dart.dtest(dart.dsend(dart.dload(dart.dsend(dart.dload(this[_selectionRenderer].series, _dataPoints$), '_get', [i]), 'xValue'), '>=', [start.millisecondsSinceEpoch])) && dart.dtest(dart.dsend(dart.dload(dart.dsend(dart.dload(this[_selectionRenderer].series, _dataPoints$), '_get', [i]), 'xValue'), '<=', [dart.dload(end, 'millisecondsSinceEpoch')])) : dart.dtest(dart.dsend(dart.dload(dart.dsend(dart.dload(this[_selectionRenderer].series, _dataPoints$), '_get', [i]), 'xValue'), '>=', [start])) && dart.dtest(dart.dsend(dart.dload(dart.dsend(dart.dload(this[_selectionRenderer].series, _dataPoints$), '_get', [i]), 'xValue'), '<=', [end]));
          isSelect ? this[_selectionRenderer].selectedSegments[$add](charts.ChartSegment._check(dart.dsend(dart.dload(this[_selectionRenderer].series, 'segments'), '_get', [i]))) : this[_selectionRenderer].unselectedSegments[$add](charts.ChartSegment._check(dart.dsend(dart.dload(this[_selectionRenderer].series, 'segments'), '_get', [i])));
        }
        this[_selectionRenderer][_selectedSegmentsColors](this[_selectionRenderer].selectedSegments);
        this[_selectionRenderer][_unselectedSegmentsColors](this[_selectionRenderer].unselectedSegments);
        new (ValueNotifierOfint()).new(core.int._check((t7 = dart.dload(dart.dload(this[_selectionRenderer].chart, _chartState), 'seriesRepaintNotifier'), t8 = dart.dload(t7, 'value'), dart.dput(t7, 'value', dart.dsend(t8, '+', [1])), t8)));
      }, VoidToNull()));
      if (dart.dtest(dart.dload(dart.dload(this[_selectionRenderer].chart, _chartState), 'initialRender'))) dart.dput(dart.dload(this[_selectionRenderer].chart, _chartState), 'isRangeSelectionSlider', false);
    }
    [_selectedDataPointIndex](series, selectedData) {
      let t7;
      t7 = this[_selectionRenderer];
      return t7 == null ? null : t7.selectedDataPointIndex(series, selectedData);
    }
    getSelectedItemFill(paint, seriesIndex, pointIndex, selectedSegments) {
      return paint;
    }
    getUnselectedItemFill(paint, seriesIndex, pointIndex, unselectedSegments) {
      return paint;
    }
    getSelectedItemBorder(paint, seriesIndex, pointIndex, selectedSegments) {
      return paint;
    }
    getUnselectedItemBorder(paint, seriesIndex, pointIndex, unselectedSegments) {
      return paint;
    }
    getCircularSelectedItemFill(color, seriesIndex, pointIndex, selectedRegions) {
      return color;
    }
    getCircularUnSelectedItemFill(color, seriesIndex, pointIndex, unselectedRegions) {
      return color;
    }
    getCircularSelectedItemBorder(color, seriesIndex, pointIndex, selectedRegions) {
      return color;
    }
    getCircularUnSelectedItemBorder(color, seriesIndex, pointIndex, unselectedRegions) {
      return color;
    }
    onDoubleTap(xPos, yPos) {
      return this[_selectionRenderer].performSelection(new ui.Offset.new(xPos, yPos));
    }
    onLongPress(xPos, yPos) {
      return this[_selectionRenderer].performSelection(new ui.Offset.new(xPos, yPos));
    }
    onTouchDown(xPos, yPos) {
      return this[_selectionRenderer].performSelection(new ui.Offset.new(xPos, yPos));
    }
  };
  (charts.SelectionSettings.new = function(opts) {
    let t7, t7$, t7$0;
    let enable = opts && 'enable' in opts ? opts.enable : null;
    let selectedColor = opts && 'selectedColor' in opts ? opts.selectedColor : null;
    let selectedBorderColor = opts && 'selectedBorderColor' in opts ? opts.selectedBorderColor : null;
    let selectedBorderWidth = opts && 'selectedBorderWidth' in opts ? opts.selectedBorderWidth : null;
    let unselectedColor = opts && 'unselectedColor' in opts ? opts.unselectedColor : null;
    let unselectedBorderColor = opts && 'unselectedBorderColor' in opts ? opts.unselectedBorderColor : null;
    let unselectedBorderWidth = opts && 'unselectedBorderWidth' in opts ? opts.unselectedBorderWidth : null;
    let selectedOpacity = opts && 'selectedOpacity' in opts ? opts.selectedOpacity : null;
    let unselectedOpacity = opts && 'unselectedOpacity' in opts ? opts.unselectedOpacity : null;
    let selectionController = opts && 'selectionController' in opts ? opts.selectionController : null;
    this[_selectionRenderer] = null;
    this[selectedColor$] = selectedColor;
    this[selectedBorderColor$] = selectedBorderColor;
    this[selectedBorderWidth$] = selectedBorderWidth;
    this[unselectedColor$] = unselectedColor;
    this[unselectedBorderColor$] = unselectedBorderColor;
    this[unselectedBorderWidth$] = unselectedBorderWidth;
    this[selectionController$] = selectionController;
    this[enable$2] = (t7 = enable, t7 == null ? false : t7);
    this[selectedOpacity$] = (t7$ = selectedOpacity, t7$ == null ? 1.0 : t7$);
    this[unselectedOpacity$] = (t7$0 = unselectedOpacity, t7$0 == null ? 0.5 : t7$0);
    ;
  }).prototype = charts.SelectionSettings.prototype;
  dart.addTypeTests(charts.SelectionSettings);
  dart.setMethodSignature(charts.SelectionSettings, () => ({
    __proto__: dart.getMethods(charts.SelectionSettings.__proto__),
    selectionIndex: dart.fnType(dart.void, [core.int, core.int], [charts.SelectionType, core.bool]),
    getSelectedDataPoints: dart.fnType(core.List$(core.int), [charts.CartesianSeries]),
    selectRange: dart.fnType(dart.void, []),
    [_selectedDataPointIndex]: dart.fnType(dart.void, [charts.CartesianSeries, core.List$(core.int)]),
    getSelectedItemFill: dart.fnType(ui.Paint, [ui.Paint, core.int, core.int, core.List$(charts.ChartSegment)]),
    getUnselectedItemFill: dart.fnType(ui.Paint, [ui.Paint, core.int, core.int, core.List$(charts.ChartSegment)]),
    getSelectedItemBorder: dart.fnType(ui.Paint, [ui.Paint, core.int, core.int, core.List$(charts.ChartSegment)]),
    getUnselectedItemBorder: dart.fnType(ui.Paint, [ui.Paint, core.int, core.int, core.List$(charts.ChartSegment)]),
    getCircularSelectedItemFill: dart.fnType(ui.Color, [ui.Color, core.int, core.int, core.List$(charts._Region)]),
    getCircularUnSelectedItemFill: dart.fnType(ui.Color, [ui.Color, core.int, core.int, core.List$(charts._Region)]),
    getCircularSelectedItemBorder: dart.fnType(ui.Color, [ui.Color, core.int, core.int, core.List$(charts._Region)]),
    getCircularUnSelectedItemBorder: dart.fnType(ui.Color, [ui.Color, core.int, core.int, core.List$(charts._Region)]),
    onDoubleTap: dart.fnType(dart.void, [core.double, core.double]),
    onLongPress: dart.fnType(dart.void, [core.double, core.double]),
    onTouchDown: dart.fnType(dart.void, [core.double, core.double])
  }));
  dart.setLibraryUri(charts.SelectionSettings, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.SelectionSettings, () => ({
    __proto__: dart.getFields(charts.SelectionSettings.__proto__),
    enable: dart.finalFieldType(core.bool),
    selectedColor: dart.finalFieldType(ui.Color),
    selectedBorderColor: dart.finalFieldType(ui.Color),
    selectedBorderWidth: dart.finalFieldType(core.double),
    unselectedColor: dart.finalFieldType(ui.Color),
    unselectedBorderColor: dart.finalFieldType(ui.Color),
    unselectedBorderWidth: dart.finalFieldType(core.double),
    selectedOpacity: dart.finalFieldType(core.double),
    unselectedOpacity: dart.finalFieldType(core.double),
    selectionController: dart.finalFieldType(slider_controller.RangeController),
    [_selectionRenderer]: dart.fieldType(charts._SelectionRenderer)
  }));
  const enable$3 = dart.privateName(charts, "TooltipBehavior.enable");
  const color$17 = dart.privateName(charts, "TooltipBehavior.color");
  const header$ = dart.privateName(charts, "TooltipBehavior.header");
  const opacity$8 = dart.privateName(charts, "TooltipBehavior.opacity");
  const textStyle$7 = dart.privateName(charts, "TooltipBehavior.textStyle");
  const decimalPlaces$1 = dart.privateName(charts, "TooltipBehavior.decimalPlaces");
  const format$0 = dart.privateName(charts, "TooltipBehavior.format");
  const animationDuration$6 = dart.privateName(charts, "TooltipBehavior.animationDuration");
  const canShowMarker$ = dart.privateName(charts, "TooltipBehavior.canShowMarker");
  const activationMode$1 = dart.privateName(charts, "TooltipBehavior.activationMode");
  const borderColor$15 = dart.privateName(charts, "TooltipBehavior.borderColor");
  const borderWidth$16 = dart.privateName(charts, "TooltipBehavior.borderWidth");
  const builder$0 = dart.privateName(charts, "TooltipBehavior.builder");
  const shadowColor$ = dart.privateName(charts, "TooltipBehavior.shadowColor");
  const elevation$ = dart.privateName(charts, "TooltipBehavior.elevation");
  const shouldAlwaysShow$1 = dart.privateName(charts, "TooltipBehavior.shouldAlwaysShow");
  const duration$ = dart.privateName(charts, "TooltipBehavior.duration");
  const textAlignment$ = dart.privateName(charts, "TooltipBehavior.textAlignment");
  const tooltipPosition$ = dart.privateName(charts, "TooltipBehavior.tooltipPosition");
  const shared$ = dart.privateName(charts, "TooltipBehavior.shared");
  const chartTooltip = dart.privateName(charts, "TooltipBehavior.chartTooltip");
  charts.TooltipBehavior = class TooltipBehavior extends charts.ChartBehavior {
    get enable() {
      return this[enable$3];
    }
    set enable(value) {
      super.enable = value;
    }
    get color() {
      return this[color$17];
    }
    set color(value) {
      super.color = value;
    }
    get header() {
      return this[header$];
    }
    set header(value) {
      super.header = value;
    }
    get opacity() {
      return this[opacity$8];
    }
    set opacity(value) {
      super.opacity = value;
    }
    get textStyle() {
      return this[textStyle$7];
    }
    set textStyle(value) {
      super.textStyle = value;
    }
    get decimalPlaces() {
      return this[decimalPlaces$1];
    }
    set decimalPlaces(value) {
      super.decimalPlaces = value;
    }
    get format() {
      return this[format$0];
    }
    set format(value) {
      super.format = value;
    }
    get animationDuration() {
      return this[animationDuration$6];
    }
    set animationDuration(value) {
      super.animationDuration = value;
    }
    get canShowMarker() {
      return this[canShowMarker$];
    }
    set canShowMarker(value) {
      super.canShowMarker = value;
    }
    get activationMode() {
      return this[activationMode$1];
    }
    set activationMode(value) {
      super.activationMode = value;
    }
    get borderColor() {
      return this[borderColor$15];
    }
    set borderColor(value) {
      super.borderColor = value;
    }
    get borderWidth() {
      return this[borderWidth$16];
    }
    set borderWidth(value) {
      super.borderWidth = value;
    }
    get builder() {
      return this[builder$0];
    }
    set builder(value) {
      super.builder = value;
    }
    get shadowColor() {
      return this[shadowColor$];
    }
    set shadowColor(value) {
      super.shadowColor = value;
    }
    get elevation() {
      return this[elevation$];
    }
    set elevation(value) {
      super.elevation = value;
    }
    get shouldAlwaysShow() {
      return this[shouldAlwaysShow$1];
    }
    set shouldAlwaysShow(value) {
      super.shouldAlwaysShow = value;
    }
    get duration() {
      return this[duration$];
    }
    set duration(value) {
      super.duration = value;
    }
    get textAlignment() {
      return this[textAlignment$];
    }
    set textAlignment(value) {
      super.textAlignment = value;
    }
    get tooltipPosition() {
      return this[tooltipPosition$];
    }
    set tooltipPosition(value) {
      super.tooltipPosition = value;
    }
    get shared() {
      return this[shared$];
    }
    set shared(value) {
      super.shared = value;
    }
    get chartTooltip() {
      return this[chartTooltip];
    }
    set chartTooltip(value) {
      this[chartTooltip] = value;
    }
    showByPixel(x, y) {
      let t7, t7$, t7$0, t7$1, t7$2, t7$3, t7$4, t7$5, t7$6, t7$7, t7$8;
      let chart = (t7 = this.chartTooltip, t7 == null ? null : t7.chartWidget);
      let isInsidePointRegion = null;
      if (charts.SfCartesianChart.is(chart)) {
        for (let i = 0; i < dart.notNull(chart[_chartSeries].visibleSeries[$length]); i = i + 1) {
          let series = chart[_chartSeries].visibleSeries[$_get](i);
          if (dart.dtest(dart.dload(series, _visible)) && dart.dtest(dart.dload(series, 'enableTooltip')) && dart.dload(series, _regionalData) != null) {
            let padding = dart.equals(dart.dload(series, _seriesType$), "bubble") || dart.equals(dart.dload(series, _seriesType$), "scatter") || dart.dtest(dart.dsend(dart.dload(series, _seriesType$), 'contains', ["column"])) || dart.dtest(dart.dsend(dart.dload(series, _seriesType$), 'contains', ["bar"])) ? 0.0 : dart.test(chart.tooltipBehavior[_isHovering]) ? 0.0 : 15.0;
            dart.dsend(dart.dload(series, _regionalData), 'forEach', [dart.fn((regionRect, values) => {
                let region = ui.Rect._check(dart.dsend(regionRect, '_get', [0]));
                let paddedRegion = new ui.Rect.fromLTRB(dart.notNull(region.left) - padding, dart.notNull(region.top) - padding, dart.notNull(region.right) + padding, dart.notNull(region.bottom) + padding);
                if (dart.test(paddedRegion.contains(new ui.Offset.new(x, y)))) {
                  isInsidePointRegion = true;
                }
              }, dynamicAnddynamicToNull())]);
          }
        }
      }
      if (this.chartTooltip != null && !dart.equals(this.activationMode, charts.ActivationMode.none) && x != null && y != null) {
        if (!charts.SfCartesianChart.is(chart) || dart.test(this[_isInteraction]) || dart.test((t7$ = isInsidePointRegion, t7$ == null ? false : t7$))) {
          t7$1 = (t7$0 = this.chartTooltip, t7$0 == null ? null : t7$0.state);
          t7$1 == null ? null : t7$1[_needMarker] = true;
          t7$3 = (t7$2 = this.chartTooltip, t7$2 == null ? null : t7$2.state);
          t7$3 == null ? null : t7$3[_showTooltip](x, y);
        } else if (dart.dload(dart.dload(this.chartTooltip.chartWidget, 'tooltipBehavior'), _painter) != null) {
          t7$5 = (t7$4 = this.chartTooltip, t7$4 == null ? null : t7$4.state);
          t7$5 == null ? null : t7$5.show = true;
          t7$7 = (t7$6 = this.chartTooltip, t7$6 == null ? null : t7$6.state);
          t7$7 == null ? null : t7$7[_needMarker] = false;
          dart.dsend(dart.dload(dart.dload(this.chartTooltip.chartWidget, 'tooltipBehavior'), _painter), _showChartAreaTooltip, [new ui.Offset.new(x, y), dart.dload(chart, 'primaryXAxis'), dart.dload(chart, 'primaryYAxis')]);
        }
      }
      if ((t7$8 = chart, t7$8 == null ? null : dart.dload(t7$8, 'tooltipBehavior')) != null) dart.dput(dart.dload(chart, 'tooltipBehavior'), _isInteraction, false);
    }
    show(x, y, xAxisName = null, yAxisName = null) {
      let t7, t7$, t7$0, t7$1, t7$2, t7$3, t7$4, t7$5, t7$6;
      let chart = charts.SfCartesianChart._check(this.chartTooltip.chartWidget);
      let isInsidePointRegion = false;
      let xAxis = null;
      let yAxis = null;
      if (xAxisName != null && yAxisName != null)
        for (let axis of chart[_chartAxis][_axisCollections]) {
          if (axis[_name$] == xAxisName)
            xAxis = axis;
          else if (axis[_name$] == yAxisName) {
            yAxis = axis;
          }
        }
      else {
        xAxis = chart.primaryXAxis;
        yAxis = chart.primaryYAxis;
      }
      let position = charts._calculatePoint(core.num._check(core.DateTime.is(x) ? x.millisecondsSinceEpoch : x), y, xAxis, yAxis, chart[_requireInvertedAxis], null, chart[_chartAxis][_axisClipRect]);
      for (let i = 0; i < dart.notNull(chart[_chartSeries].visibleSeries[$length]); i = i + 1) {
        let series = chart[_chartSeries].visibleSeries[$_get](i);
        if (dart.dtest(dart.dload(series, _visible)) && dart.dtest(dart.dload(series, 'enableTooltip')) && dart.dload(series, _regionalData) != null) {
          let padding = dart.equals(dart.dload(series, _seriesType$), "bubble") || dart.equals(dart.dload(series, _seriesType$), "scatter") || dart.dtest(dart.dsend(dart.dload(series, _seriesType$), 'contains', ["column"])) || dart.dtest(dart.dsend(dart.dload(series, _seriesType$), 'contains', ["bar"])) ? 0.0 : 15.0;
          dart.dsend(dart.dload(series, _regionalData), 'forEach', [dart.fn((regionRect, values) => {
              let region = ui.Rect._check(dart.dsend(regionRect, '_get', [0]));
              let paddedRegion = new ui.Rect.fromLTRB(dart.notNull(region.left) - padding, dart.notNull(region.top) - padding, dart.notNull(region.right) + padding, dart.notNull(region.bottom) + padding);
              if (dart.test(paddedRegion.contains(new ui.Offset.new(position.x, position.y)))) isInsidePointRegion = true;
            }, dynamicAnddynamicToNull())]);
        }
      }
      if (t7 = isInsidePointRegion, t7 === null ? false : t7) {
        t7$0 = (t7$ = this.chartTooltip, t7$ == null ? null : t7$.state);
        t7$0 == null ? null : t7$0[_needMarker] = true;
        t7$2 = (t7$1 = this.chartTooltip, t7$1 == null ? null : t7$1.state);
        t7$2 == null ? null : t7$2[_showTooltip](position.x, position.y);
      } else {
        t7$4 = (t7$3 = this.chartTooltip, t7$3 == null ? null : t7$3.state);
        t7$4 == null ? null : t7$4.show = true;
        t7$6 = (t7$5 = this.chartTooltip, t7$5 == null ? null : t7$5.state);
        t7$6 == null ? null : t7$6[_needMarker] = false;
        dart.dsend(dart.dload(dart.dload(this.chartTooltip.chartWidget, 'tooltipBehavior'), _painter), _showChartAreaTooltip, [new ui.Offset.new(position.x, position.y), xAxis, yAxis]);
      }
    }
    showByIndex(seriesIndex, pointIndex) {
      let t7, t7$;
      let x = null;
      let y = null;
      if (charts.SfCartesianChart.is(this.chartTooltip.chartWidget)) {
        if (dart.test(charts._validIndex(pointIndex, seriesIndex, charts.SfCartesianChart._check(this.chartTooltip.chartWidget)))) {
          let cSeries = charts.CartesianSeries._check(dart.dsend(dart.dload(this.chartTooltip.chartWidget, 'series'), '_get', [seriesIndex]));
          if (dart.test(cSeries[_visible])) {
            x = cSeries[_dataPoints$][$_get](pointIndex).markerPoint.x;
            y = cSeries[_dataPoints$][$_get](pointIndex).markerPoint.y;
          }
        }
      } else if (charts.SfCircularChart.is(this.chartTooltip.chartWidget)) {
        let chartPoint = charts.ChartPoint._check(dart.dsend(dart.dload(dart.dsend(dart.dload(dart.dload(this.chartTooltip.chartWidget, _chartSeries), 'visibleSeries'), '_get', [seriesIndex]), _renderPoints), '_get', [pointIndex]));
        let position = charts._degreeToPoint(chartPoint.midAngle, (dart.notNull(chartPoint.innerRadius) + dart.notNull(chartPoint.outerRadius)) / 2, chartPoint.center);
        x = position.dx;
        y = position.dy;
      } else if (pointIndex != null) {
        dart.dput(dart.dload(this.chartTooltip.chartWidget, _chartState), _tooltipPointIndex, pointIndex);
        let position = ui.Offset._check(dart.dload(dart.dload(dart.dsend(dart.dload(dart.dload(this.chartTooltip.chartWidget, 'series'), _renderPoints), '_get', [pointIndex]), 'region'), 'center'));
        x = position.dx;
        y = position.dy;
      }
      if (this.chartTooltip != null && !dart.equals(this.activationMode, charts.ActivationMode.none) && x != null && y != null) {
        t7$ = (t7 = this.chartTooltip, t7 == null ? null : t7.state);
        t7$ == null ? null : t7$[_showTooltip](core.double._check(x), core.double._check(y));
      }
    }
    hide() {
      let t7, t7$, t8, t7$0, t7$1, t7$2, t7$3, t7$4;
      t7$ = (t7 = this.chartTooltip, t7 == null ? null : t7.state);
      t7$ == null ? null : t7$.show = false;
      t7$0 = this[_painter];
      t7$0 == null ? null : t7$0.currentTooltipValue = (t8 = this[_painter], t8 == null ? null : t8.prevTooltipValue = null);
      t7$3 = (t7$2 = (t7$1 = this.chartTooltip, t7$1 == null ? null : t7$1.state), t7$2 == null ? null : t7$2.tooltipRepaintNotifier);
      t7$3 == null ? null : t7$3.value = dart.notNull(t7$3.value) + 1;
      t7$4 = this[_painter];
      t7$4 == null ? null : t7$4.canResetPath = true;
    }
    hideMouseTooltip() {
      return this[_painter].hide();
    }
    onPaint(canvas) {
      if (this[_painter] != null) {
        this[_painter][_renderTooltip](canvas);
      }
    }
    onDoubleTap(xPos, yPos) {
      return this.showByPixel(xPos, yPos);
    }
    onLongPress(xPos, yPos) {
      return this.showByPixel(xPos, yPos);
    }
    onTouchDown(xPos, yPos) {
      return this.showByPixel(xPos, yPos);
    }
    onTouchMove(xPos, yPos) {
    }
    onTouchUp(xPos, yPos) {
      return this.showByPixel(xPos, yPos);
    }
    onEnter(xPos, yPos) {
      return this.showByPixel(xPos, yPos);
    }
    onExit(xPos, yPos) {
      return this.hideMouseTooltip();
    }
  };
  (charts.TooltipBehavior.new = function(opts) {
    let t7, t7$, t7$0, t7$1, t7$2, t7$3, t7$4, t7$5, t7$6, t7$7, t7$8, t7$9, t7$10, t7$11, t7$12;
    let textStyle = opts && 'textStyle' in opts ? opts.textStyle : null;
    let activationMode = opts && 'activationMode' in opts ? opts.activationMode : null;
    let animationDuration = opts && 'animationDuration' in opts ? opts.animationDuration : null;
    let enable = opts && 'enable' in opts ? opts.enable : null;
    let opacity = opts && 'opacity' in opts ? opts.opacity : null;
    let borderColor = opts && 'borderColor' in opts ? opts.borderColor : null;
    let borderWidth = opts && 'borderWidth' in opts ? opts.borderWidth : null;
    let duration = opts && 'duration' in opts ? opts.duration : null;
    let shouldAlwaysShow = opts && 'shouldAlwaysShow' in opts ? opts.shouldAlwaysShow : null;
    let elevation = opts && 'elevation' in opts ? opts.elevation : null;
    let canShowMarker = opts && 'canShowMarker' in opts ? opts.canShowMarker : null;
    let textAlignment = opts && 'textAlignment' in opts ? opts.textAlignment : null;
    let decimalPlaces = opts && 'decimalPlaces' in opts ? opts.decimalPlaces : null;
    let tooltipPosition = opts && 'tooltipPosition' in opts ? opts.tooltipPosition : null;
    let shared = opts && 'shared' in opts ? opts.shared : null;
    let color = opts && 'color' in opts ? opts.color : null;
    let header = opts && 'header' in opts ? opts.header : null;
    let format = opts && 'format' in opts ? opts.format : null;
    let builder = opts && 'builder' in opts ? opts.builder : null;
    let shadowColor = opts && 'shadowColor' in opts ? opts.shadowColor : null;
    this[_painter] = null;
    this[_tooltipTemplate] = null;
    this[chartTooltip] = null;
    this[_isInteraction] = false;
    this[_isHovering] = null;
    this[color$17] = color;
    this[header$] = header;
    this[format$0] = format;
    this[builder$0] = builder;
    this[shadowColor$] = shadowColor;
    this[animationDuration$6] = (t7 = animationDuration, t7 == null ? 350 : t7);
    this[textAlignment$] = (t7$ = textAlignment, t7$ == null ? charts.ChartAlignment.center : t7$);
    this[textStyle$7] = (t7$0 = textStyle, t7$0 == null ? new charts.ChartTextStyle.new({fontSize: 12.0}) : t7$0);
    this[activationMode$1] = (t7$1 = activationMode, t7$1 == null ? charts.ActivationMode.singleTap : t7$1);
    this[borderColor$15] = (t7$2 = borderColor, t7$2 == null ? colors$.Colors.transparent : t7$2);
    this[borderWidth$16] = (t7$3 = borderWidth, t7$3 == null ? 0.0 : t7$3);
    this[duration$] = (t7$4 = duration, t7$4 == null ? 3000.0 : t7$4);
    this[enable$3] = (t7$5 = enable, t7$5 == null ? false : t7$5);
    this[opacity$8] = (t7$6 = opacity, t7$6 == null ? 1.0 : t7$6);
    this[shouldAlwaysShow$1] = (t7$7 = shouldAlwaysShow, t7$7 == null ? false : t7$7);
    this[canShowMarker$] = (t7$8 = canShowMarker, t7$8 == null ? true : t7$8);
    this[tooltipPosition$] = (t7$9 = tooltipPosition, t7$9 == null ? charts.TooltipPosition.auto : t7$9);
    this[elevation$] = (t7$10 = elevation, t7$10 == null ? 2.5 : t7$10);
    this[decimalPlaces$1] = (t7$11 = decimalPlaces, t7$11 == null ? 3 : t7$11);
    this[shared$] = (t7$12 = shared, t7$12 == null ? false : t7$12);
    ;
  }).prototype = charts.TooltipBehavior.prototype;
  dart.addTypeTests(charts.TooltipBehavior);
  dart.setMethodSignature(charts.TooltipBehavior, () => ({
    __proto__: dart.getMethods(charts.TooltipBehavior.__proto__),
    showByPixel: dart.fnType(dart.void, [core.double, core.double]),
    show: dart.fnType(dart.void, [dart.dynamic, core.double], [core.String, core.String]),
    showByIndex: dart.fnType(dart.void, [core.int, core.int]),
    hide: dart.fnType(dart.void, []),
    hideMouseTooltip: dart.fnType(dart.void, []),
    onPaint: dart.fnType(dart.void, [ui.Canvas]),
    onDoubleTap: dart.fnType(dart.void, [core.double, core.double]),
    onLongPress: dart.fnType(dart.void, [core.double, core.double]),
    onTouchDown: dart.fnType(dart.void, [core.double, core.double]),
    onTouchMove: dart.fnType(dart.void, [core.double, core.double]),
    onTouchUp: dart.fnType(dart.void, [core.double, core.double]),
    onEnter: dart.fnType(dart.void, [core.double, core.double]),
    onExit: dart.fnType(dart.void, [core.double, core.double])
  }));
  dart.setLibraryUri(charts.TooltipBehavior, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.TooltipBehavior, () => ({
    __proto__: dart.getFields(charts.TooltipBehavior.__proto__),
    enable: dart.finalFieldType(core.bool),
    color: dart.finalFieldType(ui.Color),
    header: dart.finalFieldType(core.String),
    opacity: dart.finalFieldType(core.double),
    textStyle: dart.finalFieldType(charts.ChartTextStyle),
    decimalPlaces: dart.finalFieldType(core.int),
    [_painter]: dart.fieldType(charts._TooltipPainter),
    format: dart.finalFieldType(core.String),
    animationDuration: dart.finalFieldType(core.int),
    canShowMarker: dart.finalFieldType(core.bool),
    activationMode: dart.finalFieldType(charts.ActivationMode),
    borderColor: dart.finalFieldType(ui.Color),
    borderWidth: dart.finalFieldType(core.double),
    builder: dart.finalFieldType(dart.fnType(framework.Widget, [dart.dynamic, dart.dynamic, dart.dynamic, core.int, core.int])),
    [_tooltipTemplate]: dart.fieldType(charts._TooltipTemplate),
    shadowColor: dart.finalFieldType(ui.Color),
    elevation: dart.finalFieldType(core.double),
    shouldAlwaysShow: dart.finalFieldType(core.bool),
    duration: dart.finalFieldType(core.double),
    textAlignment: dart.finalFieldType(charts.ChartAlignment),
    tooltipPosition: dart.finalFieldType(charts.TooltipPosition),
    shared: dart.finalFieldType(core.bool),
    chartTooltip: dart.fieldType(charts._ChartTooltipRenderer),
    [_isInteraction]: dart.fieldType(core.bool),
    [_isHovering]: dart.fieldType(core.bool)
  }));
  let C853;
  let C854;
  let C855;
  let C856;
  let C857;
  let C858;
  charts.LegendPosition = class LegendPosition extends core.Object {
    toString() {
      return this[_name$];
    }
  };
  (charts.LegendPosition.new = function(index, _name) {
    this.index = index;
    this[_name$] = _name;
    ;
  }).prototype = charts.LegendPosition.prototype;
  dart.addTypeTests(charts.LegendPosition);
  dart.setLibraryUri(charts.LegendPosition, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.LegendPosition, () => ({
    __proto__: dart.getFields(charts.LegendPosition.__proto__),
    index: dart.finalFieldType(core.int),
    [_name$]: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(charts.LegendPosition, ['toString']);
  charts.LegendPosition.auto = C853 || CT.C853;
  charts.LegendPosition.bottom = C854 || CT.C854;
  charts.LegendPosition.left = C855 || CT.C855;
  charts.LegendPosition.right = C856 || CT.C856;
  charts.LegendPosition.top = C857 || CT.C857;
  charts.LegendPosition.values = C858 || CT.C858;
  let C859;
  let C860;
  let C861;
  charts.ChartAlignment = class ChartAlignment extends core.Object {
    toString() {
      return this[_name$];
    }
  };
  (charts.ChartAlignment.new = function(index, _name) {
    this.index = index;
    this[_name$] = _name;
    ;
  }).prototype = charts.ChartAlignment.prototype;
  dart.addTypeTests(charts.ChartAlignment);
  dart.setLibraryUri(charts.ChartAlignment, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.ChartAlignment, () => ({
    __proto__: dart.getFields(charts.ChartAlignment.__proto__),
    index: dart.finalFieldType(core.int),
    [_name$]: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(charts.ChartAlignment, ['toString']);
  charts.ChartAlignment.near = C859 || CT.C859;
  charts.ChartAlignment.center = C355 || CT.C355;
  charts.ChartAlignment.far = C860 || CT.C860;
  charts.ChartAlignment.values = C861 || CT.C861;
  let C862;
  let C863;
  let C864;
  let C865;
  charts.LegendItemOverflowMode = class LegendItemOverflowMode extends core.Object {
    toString() {
      return this[_name$];
    }
  };
  (charts.LegendItemOverflowMode.new = function(index, _name) {
    this.index = index;
    this[_name$] = _name;
    ;
  }).prototype = charts.LegendItemOverflowMode.prototype;
  dart.addTypeTests(charts.LegendItemOverflowMode);
  dart.setLibraryUri(charts.LegendItemOverflowMode, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.LegendItemOverflowMode, () => ({
    __proto__: dart.getFields(charts.LegendItemOverflowMode.__proto__),
    index: dart.finalFieldType(core.int),
    [_name$]: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(charts.LegendItemOverflowMode, ['toString']);
  charts.LegendItemOverflowMode.wrap = C862 || CT.C862;
  charts.LegendItemOverflowMode.scroll = C863 || CT.C863;
  charts.LegendItemOverflowMode.none = C864 || CT.C864;
  charts.LegendItemOverflowMode.values = C865 || CT.C865;
  let C866;
  let C867;
  let C868;
  let C869;
  charts.LegendItemOrientation = class LegendItemOrientation extends core.Object {
    toString() {
      return this[_name$];
    }
  };
  (charts.LegendItemOrientation.new = function(index, _name) {
    this.index = index;
    this[_name$] = _name;
    ;
  }).prototype = charts.LegendItemOrientation.prototype;
  dart.addTypeTests(charts.LegendItemOrientation);
  dart.setLibraryUri(charts.LegendItemOrientation, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.LegendItemOrientation, () => ({
    __proto__: dart.getFields(charts.LegendItemOrientation.__proto__),
    index: dart.finalFieldType(core.int),
    [_name$]: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(charts.LegendItemOrientation, ['toString']);
  charts.LegendItemOrientation.auto = C866 || CT.C866;
  charts.LegendItemOrientation.horizontal = C867 || CT.C867;
  charts.LegendItemOrientation.vertical = C868 || CT.C868;
  charts.LegendItemOrientation.values = C869 || CT.C869;
  let C870;
  charts.LegendIconType = class LegendIconType extends core.Object {
    toString() {
      return this[_name$];
    }
  };
  (charts.LegendIconType.new = function(index, _name) {
    this.index = index;
    this[_name$] = _name;
    ;
  }).prototype = charts.LegendIconType.prototype;
  dart.addTypeTests(charts.LegendIconType);
  dart.setLibraryUri(charts.LegendIconType, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.LegendIconType, () => ({
    __proto__: dart.getFields(charts.LegendIconType.__proto__),
    index: dart.finalFieldType(core.int),
    [_name$]: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(charts.LegendIconType, ['toString']);
  charts.LegendIconType.seriesType = C787 || CT.C787;
  charts.LegendIconType.circle = C788 || CT.C788;
  charts.LegendIconType.rectangle = C789 || CT.C789;
  charts.LegendIconType.image = C790 || CT.C790;
  charts.LegendIconType.pentagon = C791 || CT.C791;
  charts.LegendIconType.verticalLine = C792 || CT.C792;
  charts.LegendIconType.horizontalLine = C794 || CT.C794;
  charts.LegendIconType.diamond = C795 || CT.C795;
  charts.LegendIconType.triangle = C796 || CT.C796;
  charts.LegendIconType.invertedTriangle = C793 || CT.C793;
  charts.LegendIconType.values = C870 || CT.C870;
  let C871;
  let C872;
  let C873;
  let C874;
  let C875;
  charts.ChartDataLabelAlignment = class ChartDataLabelAlignment extends core.Object {
    toString() {
      return this[_name$];
    }
  };
  (charts.ChartDataLabelAlignment.new = function(index, _name) {
    this.index = index;
    this[_name$] = _name;
    ;
  }).prototype = charts.ChartDataLabelAlignment.prototype;
  dart.addTypeTests(charts.ChartDataLabelAlignment);
  dart.setLibraryUri(charts.ChartDataLabelAlignment, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.ChartDataLabelAlignment, () => ({
    __proto__: dart.getFields(charts.ChartDataLabelAlignment.__proto__),
    index: dart.finalFieldType(core.int),
    [_name$]: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(charts.ChartDataLabelAlignment, ['toString']);
  charts.ChartDataLabelAlignment.auto = C549 || CT.C549;
  charts.ChartDataLabelAlignment.outer = C871 || CT.C871;
  charts.ChartDataLabelAlignment.top = C872 || CT.C872;
  charts.ChartDataLabelAlignment.bottom = C873 || CT.C873;
  charts.ChartDataLabelAlignment.middle = C874 || CT.C874;
  charts.ChartDataLabelAlignment.values = C875 || CT.C875;
  let C876;
  let C877;
  let C878;
  charts.CircularLabelPosition = class CircularLabelPosition extends core.Object {
    toString() {
      return this[_name$];
    }
  };
  (charts.CircularLabelPosition.new = function(index, _name) {
    this.index = index;
    this[_name$] = _name;
    ;
  }).prototype = charts.CircularLabelPosition.prototype;
  dart.addTypeTests(charts.CircularLabelPosition);
  dart.setLibraryUri(charts.CircularLabelPosition, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.CircularLabelPosition, () => ({
    __proto__: dart.getFields(charts.CircularLabelPosition.__proto__),
    index: dart.finalFieldType(core.int),
    [_name$]: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(charts.CircularLabelPosition, ['toString']);
  charts.CircularLabelPosition.inside = C876 || CT.C876;
  charts.CircularLabelPosition.outside = C877 || CT.C877;
  charts.CircularLabelPosition.values = C878 || CT.C878;
  let C879;
  let C880;
  let C881;
  charts.PyramidMode = class PyramidMode extends core.Object {
    toString() {
      return this[_name$];
    }
  };
  (charts.PyramidMode.new = function(index, _name) {
    this.index = index;
    this[_name$] = _name;
    ;
  }).prototype = charts.PyramidMode.prototype;
  dart.addTypeTests(charts.PyramidMode);
  dart.setLibraryUri(charts.PyramidMode, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.PyramidMode, () => ({
    __proto__: dart.getFields(charts.PyramidMode.__proto__),
    index: dart.finalFieldType(core.int),
    [_name$]: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(charts.PyramidMode, ['toString']);
  charts.PyramidMode.linear = C879 || CT.C879;
  charts.PyramidMode.surface = C880 || CT.C880;
  charts.PyramidMode.values = C881 || CT.C881;
  let C882;
  let C883;
  let C884;
  let C885;
  charts.SmartLabelMode = class SmartLabelMode extends core.Object {
    toString() {
      return this[_name$];
    }
  };
  (charts.SmartLabelMode.new = function(index, _name) {
    this.index = index;
    this[_name$] = _name;
    ;
  }).prototype = charts.SmartLabelMode.prototype;
  dart.addTypeTests(charts.SmartLabelMode);
  dart.setLibraryUri(charts.SmartLabelMode, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts.SmartLabelMode, () => ({
    __proto__: dart.getFields(charts.SmartLabelMode.__proto__),
    index: dart.finalFieldType(core.int),
    [_name$]: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(charts.SmartLabelMode, ['toString']);
  charts.SmartLabelMode.shift = C882 || CT.C882;
  charts.SmartLabelMode.hide = C883 || CT.C883;
  charts.SmartLabelMode.none = C884 || CT.C884;
  charts.SmartLabelMode.values = C885 || CT.C885;
  let C888;
  let C889;
  let C887;
  let C886;
  let C892;
  let C893;
  let C891;
  let C890;
  const chart$1 = dart.privateName(charts, "_MeasureWidgetSize.chart");
  const currentWidget$ = dart.privateName(charts, "_MeasureWidgetSize.currentWidget");
  const opacityValue$ = dart.privateName(charts, "_MeasureWidgetSize.opacityValue");
  const currentKey$ = dart.privateName(charts, "_MeasureWidgetSize.currentKey");
  const seriesIndex$6 = dart.privateName(charts, "_MeasureWidgetSize.seriesIndex");
  const pointIndex$6 = dart.privateName(charts, "_MeasureWidgetSize.pointIndex");
  const type$1 = dart.privateName(charts, "_MeasureWidgetSize.type");
  charts._MeasureWidgetSize = class _MeasureWidgetSize extends framework.StatelessWidget {
    get chart() {
      return this[chart$1];
    }
    set chart(value) {
      super.chart = value;
    }
    get currentWidget() {
      return this[currentWidget$];
    }
    set currentWidget(value) {
      super.currentWidget = value;
    }
    get opacityValue() {
      return this[opacityValue$];
    }
    set opacityValue(value) {
      super.opacityValue = value;
    }
    get currentKey() {
      return this[currentKey$];
    }
    set currentKey(value) {
      super.currentKey = value;
    }
    get seriesIndex() {
      return this[seriesIndex$6];
    }
    set seriesIndex(value) {
      super.seriesIndex = value;
    }
    get pointIndex() {
      return this[pointIndex$6];
    }
    set pointIndex(value) {
      super.pointIndex = value;
    }
    get type() {
      return this[type$1];
    }
    set type(value) {
      super.type = value;
    }
    build(context) {
      let templates = ListOf_MeasureWidgetContext()._check(dart.dload(dart.dload(this.chart, _chartState), 'legendWidgetContext'));
      templates[$add](new charts._MeasureWidgetContext.new({widget: this.currentWidget, key: this.currentKey, context: context, seriesIndex: this.seriesIndex, pointIndex: this.pointIndex}));
      return new container.Container.new({key: this.currentKey, child: new basic.Opacity.new({opacity: this.opacityValue, child: this.currentWidget, $creationLocationd_0dea112b090073317d4: C886 || CT.C886}), $creationLocationd_0dea112b090073317d4: C890 || CT.C890});
    }
  };
  (charts._MeasureWidgetSize.new = function(opts) {
    let chart = opts && 'chart' in opts ? opts.chart : null;
    let currentWidget = opts && 'currentWidget' in opts ? opts.currentWidget : null;
    let opacityValue = opts && 'opacityValue' in opts ? opts.opacityValue : null;
    let currentKey = opts && 'currentKey' in opts ? opts.currentKey : null;
    let seriesIndex = opts && 'seriesIndex' in opts ? opts.seriesIndex : null;
    let pointIndex = opts && 'pointIndex' in opts ? opts.pointIndex : null;
    let type = opts && 'type' in opts ? opts.type : null;
    let $36creationLocationd_0dea112b090073317d4 = opts && '$creationLocationd_0dea112b090073317d4' in opts ? opts.$creationLocationd_0dea112b090073317d4 : null;
    this[chart$1] = chart;
    this[currentWidget$] = currentWidget;
    this[opacityValue$] = opacityValue;
    this[currentKey$] = currentKey;
    this[seriesIndex$6] = seriesIndex;
    this[pointIndex$6] = pointIndex;
    this[type$1] = type;
    charts._MeasureWidgetSize.__proto__.new.call(this, {$creationLocationd_0dea112b090073317d4: $36creationLocationd_0dea112b090073317d4});
    ;
  }).prototype = charts._MeasureWidgetSize.prototype;
  dart.addTypeTests(charts._MeasureWidgetSize);
  dart.setMethodSignature(charts._MeasureWidgetSize, () => ({
    __proto__: dart.getMethods(charts._MeasureWidgetSize.__proto__),
    build: dart.fnType(framework.Widget, [framework.BuildContext])
  }));
  dart.setLibraryUri(charts._MeasureWidgetSize, "package:syncfusion_flutter_charts/charts.dart");
  dart.setFieldSignature(charts._MeasureWidgetSize, () => ({
    __proto__: dart.getFields(charts._MeasureWidgetSize.__proto__),
    chart: dart.finalFieldType(dart.dynamic),
    currentWidget: dart.finalFieldType(framework.Widget),
    opacityValue: dart.finalFieldType(core.double),
    currentKey: dart.finalFieldType(key.Key),
    seriesIndex: dart.finalFieldType(core.int),
    pointIndex: dart.finalFieldType(core.int),
    type: dart.finalFieldType(core.String)
  }));
  let C894;
  const ImageConfiguration_platform = dart.privateName(image_provider, "ImageConfiguration.platform");
  const ImageConfiguration_size = dart.privateName(image_provider, "ImageConfiguration.size");
  const ImageConfiguration_textDirection = dart.privateName(image_provider, "ImageConfiguration.textDirection");
  const ImageConfiguration_locale = dart.privateName(image_provider, "ImageConfiguration.locale");
  const ImageConfiguration_devicePixelRatio = dart.privateName(image_provider, "ImageConfiguration.devicePixelRatio");
  const ImageConfiguration_bundle = dart.privateName(image_provider, "ImageConfiguration.bundle");
  let C895;
  let C896;
  let C899;
  let C900;
  let C901;
  let C898;
  let C897;
  let C904;
  let C903;
  let C902;
  let C907;
  let C906;
  let C905;
  let C910;
  let C911;
  let C912;
  let C913;
  let C909;
  let C908;
  let C916;
  let C917;
  let C918;
  let C919;
  let C915;
  let C914;
  let C922;
  let C923;
  let C924;
  let C925;
  let C921;
  let C920;
  let C928;
  let C927;
  let C926;
  let C931;
  let C930;
  let C929;
  let C934;
  let C935;
  let C936;
  let C937;
  let C933;
  let C932;
  let C940;
  let C939;
  let C938;
  let C943;
  let C944;
  let C945;
  let C942;
  let C941;
  let C948;
  let C949;
  let C950;
  let C947;
  let C946;
  let C953;
  let C952;
  let C951;
  let C956;
  let C957;
  let C958;
  let C959;
  let C955;
  let C954;
  let C962;
  let C963;
  let C964;
  let C965;
  let C961;
  let C960;
  let C968;
  let C969;
  let C970;
  let C971;
  let C967;
  let C966;
  let C974;
  let C973;
  let C972;
  let C977;
  let C976;
  let C975;
  let C980;
  let C981;
  let C982;
  let C983;
  let C979;
  let C978;
  let C986;
  let C985;
  let C984;
  let C989;
  let C990;
  let C991;
  let C988;
  let C987;
  let C994;
  let C995;
  let C996;
  let C997;
  let C993;
  let C992;
  let C1000;
  let C999;
  let C998;
  let C1003;
  let C1004;
  let C1005;
  let C1002;
  let C1001;
  let C1006;
  let C1009;
  let C1010;
  let C1011;
  let C1012;
  let C1013;
  let C1008;
  let C1007;
  let C1016;
  let C1017;
  let C1018;
  let C1015;
  let C1014;
  let C1021;
  let C1022;
  let C1023;
  let C1020;
  let C1019;
  let C1024;
  let C1027;
  let C1028;
  let C1029;
  let C1030;
  let C1031;
  let C1032;
  let C1033;
  let C1026;
  let C1025;
  let C1036;
  let C1037;
  let C1038;
  let C1035;
  let C1034;
  charts._dashPath = function _dashPath(source, opts) {
    let dashArray = opts && 'dashArray' in opts ? opts.dashArray : null;
    if (source == null) {
      return null;
    }
    let path = ui.Path.new();
    for (let measurePath of source.computeMetrics()) {
      let distance = 0;
      let draw = true;
      while (distance < dart.notNull(measurePath.length)) {
        let length = dashArray.next;
        if (draw) {
          path.addPath(measurePath.extractPath(distance, distance + dart.notNull(length)), ui.Offset.zero);
        }
        distance = distance + dart.notNull(length);
        draw = !draw;
      }
    }
    return path;
  };
  charts._getDataLabelSaturationColor = function _getDataLabelSaturationColor(currentPoint, series, chart) {
    let t8, t7;
    let color = null;
    let dataLabel = series.dataLabelSettings;
    let labelPosition = series[_seriesType$] === "rangecolumn" && (dart.equals(dataLabel.labelAlignment, charts.ChartDataLabelAlignment.bottom) || dart.equals(dataLabel.labelAlignment, charts.ChartDataLabelAlignment.middle)) ? charts.ChartDataLabelAlignment.auto : dataLabel.labelAlignment;
    let alignment = dataLabel.alignment;
    let _seriesType = series[_seriesType$] === "line" || series[_seriesType$] === "stackedline" || series[_seriesType$] === "stackedline100" || series[_seriesType$] === "spline" || series[_seriesType$] === "stepline" ? "Line" : dart.test(series[_isRectSeries]) ? "Column" : series[_seriesType$] === "bubble" || series[_seriesType$] === "scatter" ? "Circle" : series[_seriesType$][$contains]("area") ? "area" : "Default";
    if (dart.test(dataLabel.useSeriesColor) || dataLabel.color != null) {
      color = (t7 = dataLabel.color, t7 == null ? (t8 = currentPoint.pointColorMapper, t8 == null ? series[_seriesColor] : t8) : t7);
    } else {
      switch (_seriesType) {
        case "Line":
        {
          color = charts._getOuterDataLabelColor(dataLabel, chart.plotAreaBackgroundColor, chart[_chartState][_chartTheme]);
          break;
        }
        case "Column":
        {
          color = !dart.test(currentPoint.dataLabelSaturationRegionInside) && (dart.equals(labelPosition, charts.ChartDataLabelAlignment.outer) && !dart.equals(alignment, charts.ChartAlignment.near) || dart.equals(labelPosition, charts.ChartDataLabelAlignment.top) && dart.equals(alignment, charts.ChartAlignment.far) || dart.equals(labelPosition, charts.ChartDataLabelAlignment.auto) && !series[_seriesType$][$contains]("100") && series[_seriesType$] !== "stackedbar" && series[_seriesType$] !== "stackedcolumn") ? charts._getOuterDataLabelColor(dataLabel, chart.plotAreaBackgroundColor, chart[_chartState][_chartTheme]) : charts._getInnerDataLabelColor(currentPoint, series, chart[_chartState][_chartTheme]);
          break;
        }
        case "Circle":
        {
          color = dart.equals(labelPosition, charts.ChartDataLabelAlignment.middle) && dart.equals(alignment, charts.ChartAlignment.center) || dart.equals(labelPosition, charts.ChartDataLabelAlignment.bottom) && dart.equals(alignment, charts.ChartAlignment.far) || dart.equals(labelPosition, charts.ChartDataLabelAlignment.top) && dart.equals(alignment, charts.ChartAlignment.near) || dart.equals(labelPosition, charts.ChartDataLabelAlignment.outer) && dart.equals(alignment, charts.ChartAlignment.near) ? charts._getInnerDataLabelColor(currentPoint, series, chart[_chartState][_chartTheme]) : charts._getOuterDataLabelColor(dataLabel, chart.plotAreaBackgroundColor, chart[_chartState][_chartTheme]);
          break;
        }
        case "area":
        {
          color = !dart.test(currentPoint.dataLabelSaturationRegionInside) && dart.notNull(currentPoint.labelLocation.y) < dart.notNull(currentPoint.markerPoint.y) ? charts._getOuterDataLabelColor(dataLabel, chart.plotAreaBackgroundColor, chart[_chartState][_chartTheme]) : charts._getInnerDataLabelColor(currentPoint, series, chart[_chartState][_chartTheme]);
          break;
        }
        default:
        {
          color = colors$.Colors.white;
        }
      }
    }
    return charts._getSaturationColor(color);
  };
  charts._getOpenCloseDataLabelColor = function _getOpenCloseDataLabelColor(currentPoint, series, chart) {
    let color = null;
    color = dart.equals(series.segments[$_get](series[_dataPoints$][$indexOf](currentPoint)).fillPaint.style, ui.PaintingStyle.fill) ? series.segments[$_get](series[_dataPoints$][$indexOf](currentPoint)).color : C894 || CT.C894;
    return charts._getSaturationColor(color);
  };
  charts._getOuterDataLabelColor = function _getOuterDataLabelColor(dataLabel, backgroundColor, theme) {
    return dataLabel.color != null ? dataLabel.color : backgroundColor != null ? backgroundColor : dart.equals(theme.brightness, ui.Brightness.light) ? C894 || CT.C894 : colors$.Colors.black;
  };
  charts._getInnerDataLabelColor = function _getInnerDataLabelColor(currentPoint, series, theme) {
    let innerColor = null;
    let dataLabel = series.dataLabelSettings;
    innerColor = ui.Color._check(dart.dload(dataLabel, 'color') != null ? dart.dload(dataLabel, 'color') : currentPoint.pointColorMapper != null ? currentPoint.pointColorMapper : series.color != null ? series.color : series[_seriesColor] != null ? series[_seriesColor] : dart.equals(theme.brightness, ui.Brightness.light) ? C894 || CT.C894 : colors$.Colors.black);
    return innerColor;
  };
  charts._animateRectSeries = function _animateRectSeries(canvas, series, fillPaint, segmentRect, yPoint, animationFactor, oldSegmentRect, oldYValue, oldSeriesVisible) {
    let comparePrev = dart.test(series[_chart][_chartState].widgetNeedUpdate) && oldYValue != null && oldSegmentRect != null;
    let isLargePrev = oldYValue != null ? dart.notNull(oldYValue) > dart.notNull(yPoint) : false;
    let isSingleSeries = dart.test(series[_chart][_chartState][_isLegendToggled]) ? charts._checkSingleSeries(series) : false;
    if (series[_seriesType$] === "column" && dart.test(series[_chart].isTransposed) || series[_seriesType$] === "bar" && !dart.test(series[_chart].isTransposed)) {
      charts._animateTransposedRectSeries(canvas, series, fillPaint, segmentRect, yPoint, animationFactor, oldSegmentRect, oldSeriesVisible, comparePrev, isLargePrev, isSingleSeries);
    } else {
      charts._animateNormalRectSeries(canvas, series, fillPaint, segmentRect, yPoint, animationFactor, oldSegmentRect, oldSeriesVisible, comparePrev, isLargePrev, isSingleSeries);
    }
  };
  charts._animateTransposedRectSeries = function _animateTransposedRectSeries(canvas, series, fillPaint, segmentRect, yPoint, animationFactor, oldSegmentRect, oldSeriesVisible, comparePrev, isLargePrev, isSingleSeries) {
    let t7;
    let width = segmentRect.width;
    let height = segmentRect.height;
    let top = segmentRect.top;
    let left = segmentRect.left;
    let right = segmentRect.right;
    let rect = null;
    if (!dart.test(series[_chart][_chartState][_isLegendToggled])) {
      width = dart.notNull(segmentRect.width) * dart.notNull(animationFactor);
      if (!dart.test(series[_yAxis$].isInversed)) {
        if (dart.test(comparePrev)) {
          if (dart.notNull(yPoint) < 0) {
            left = dart.test(isLargePrev) ? dart.notNull(oldSegmentRect.left) - dart.notNull(animationFactor) * (dart.notNull(oldSegmentRect.left) - dart.notNull(segmentRect.left)) : dart.notNull(oldSegmentRect.left) + dart.notNull(animationFactor) * (dart.notNull(segmentRect.left) - dart.notNull(oldSegmentRect.left));
            right = segmentRect.right;
            width = dart.notNull(right) - dart.notNull(left);
          } else {
            right = dart.test(isLargePrev) ? dart.notNull(oldSegmentRect.right) + dart.notNull(animationFactor) * (dart.notNull(segmentRect.right) - dart.notNull(oldSegmentRect.right)) : dart.notNull(oldSegmentRect.right) - dart.notNull(animationFactor) * (dart.notNull(oldSegmentRect.right) - dart.notNull(segmentRect.right));
            width = dart.notNull(right) - dart.notNull(segmentRect.left);
          }
        } else {
          right = dart.notNull(yPoint) < 0 ? segmentRect.right : dart.notNull(segmentRect.right) - dart.notNull(segmentRect.width) + dart.notNull(width);
        }
      } else {
        if (dart.test(comparePrev)) {
          if (dart.notNull(yPoint) < 0) {
            right = dart.test(isLargePrev) ? dart.notNull(oldSegmentRect.right) + dart.notNull(animationFactor) * (dart.notNull(segmentRect.right) - dart.notNull(oldSegmentRect.right)) : dart.notNull(oldSegmentRect.right) - dart.notNull(animationFactor) * (dart.notNull(oldSegmentRect.right) - dart.notNull(segmentRect.right));
            width = dart.notNull(right) - dart.notNull(segmentRect.left);
          } else {
            left = dart.test(isLargePrev) ? dart.notNull(oldSegmentRect.left) - dart.notNull(animationFactor) * (dart.notNull(oldSegmentRect.left) - dart.notNull(segmentRect.left)) : dart.notNull(oldSegmentRect.left) + dart.notNull(animationFactor) * (dart.notNull(segmentRect.left) - dart.notNull(oldSegmentRect.left));
            right = segmentRect.right;
            width = dart.notNull(right) - dart.notNull(left);
          }
        } else {
          right = dart.notNull(yPoint) < 0 ? dart.notNull(segmentRect.right) - dart.notNull(segmentRect.width) + dart.notNull(width) : segmentRect.right;
        }
      }
      rect = new ui.Rect.fromLTWH(dart.notNull(right) - dart.notNull(width), top, width, height);
    } else if (dart.test(series[_chart][_chartState][_isLegendToggled]) && oldSegmentRect != null) {
      rect = charts._performTransposedLegendToggleAnimation(series, segmentRect, oldSegmentRect, oldSeriesVisible, isSingleSeries, animationFactor);
    }
    canvas.drawRRect(new ui.RRect.fromRectAndRadius(rect == null ? (t7 = segmentRect, t7 == null ? null : t7.middleRect) : rect, segmentRect.blRadius), fillPaint);
  };
  charts._performTransposedLegendToggleAnimation = function _performTransposedLegendToggleAnimation(series, segmentRect, oldSegmentRect, oldSeriesVisible, isSingleSeries, animationFactor) {
    let bottom = null;
    let height = segmentRect.height;
    let top = segmentRect.top;
    let right = segmentRect.right;
    let width = segmentRect.width;
    if (oldSeriesVisible != null && dart.test(oldSeriesVisible)) {
      bottom = dart.notNull(oldSegmentRect.bottom) > dart.notNull(segmentRect.bottom) ? dart.notNull(oldSegmentRect.bottom) + dart.notNull(animationFactor) * (dart.notNull(segmentRect.bottom) - dart.notNull(oldSegmentRect.bottom)) : dart.notNull(oldSegmentRect.bottom) - dart.notNull(animationFactor) * (dart.notNull(oldSegmentRect.bottom) - dart.notNull(segmentRect.bottom));
      top = dart.notNull(oldSegmentRect.top) > dart.notNull(segmentRect.top) ? dart.notNull(oldSegmentRect.top) - dart.notNull(animationFactor) * (dart.notNull(oldSegmentRect.top) - dart.notNull(segmentRect.top)) : dart.notNull(oldSegmentRect.top) + dart.notNull(animationFactor) * (dart.notNull(segmentRect.top) - dart.notNull(oldSegmentRect.top));
      height = dart.notNull(bottom) - dart.notNull(top);
    } else {
      if (dart.equals(series, series[_chart].series[$_get](0)) && !dart.test(isSingleSeries)) {
        bottom = segmentRect.bottom;
        top = dart.notNull(bottom) - dart.notNull(segmentRect.height) * dart.notNull(animationFactor);
        height = dart.notNull(bottom) - dart.notNull(top);
      } else if (dart.equals(series, series[_chart].series[$_get](dart.notNull(series[_chart].series[$length]) - 1)) && !dart.test(isSingleSeries)) {
        top = segmentRect.top;
        height = dart.notNull(segmentRect.height) * dart.notNull(animationFactor);
      } else {
        height = dart.notNull(segmentRect.height) * dart.notNull(animationFactor);
        top = dart.notNull(segmentRect.center.dy) - dart.notNull(height) / 2;
      }
    }
    right = segmentRect.right;
    return new ui.Rect.fromLTWH(dart.notNull(right) - dart.notNull(width), top, width, height);
  };
  charts._animateNormalRectSeries = function _animateNormalRectSeries(canvas, series, fillPaint, segmentRect, yPoint, animationFactor, oldSegmentRect, oldSeriesVisible, comparePrev, isLargePrev, isSingleSeries) {
    let t7;
    let height = segmentRect.height;
    let width = segmentRect.width;
    let left = segmentRect.left;
    let top = segmentRect.top;
    let bottom = null;
    let rect = null;
    if (!dart.test(series[_chart][_chartState][_isLegendToggled])) {
      height = dart.notNull(segmentRect.height) * dart.notNull(animationFactor);
      if (!dart.test(series[_yAxis$].isInversed)) {
        if (dart.test(comparePrev)) {
          if (dart.notNull(yPoint) < 0) {
            bottom = dart.test(isLargePrev) ? dart.notNull(oldSegmentRect.bottom) - dart.notNull(animationFactor) * (dart.notNull(oldSegmentRect.bottom) - dart.notNull(segmentRect.bottom)) : dart.notNull(oldSegmentRect.bottom) + dart.notNull(animationFactor) * (dart.notNull(segmentRect.bottom) - dart.notNull(oldSegmentRect.bottom));
            height = dart.notNull(bottom) - dart.notNull(top);
          } else {
            top = dart.test(isLargePrev) ? dart.notNull(oldSegmentRect.top) + dart.notNull(animationFactor) * (dart.notNull(segmentRect.top) - dart.notNull(oldSegmentRect.top)) : dart.notNull(oldSegmentRect.top) - dart.notNull(animationFactor) * (dart.notNull(oldSegmentRect.top) - dart.notNull(segmentRect.top));
            height = dart.notNull(segmentRect.bottom) - dart.notNull(top);
          }
        } else {
          top = dart.notNull(yPoint) < 0 ? segmentRect.top : dart.notNull(segmentRect.top) + dart.notNull(segmentRect.height) - dart.notNull(height);
        }
      } else {
        if (dart.test(comparePrev)) {
          if (dart.notNull(yPoint) < 0) {
            top = dart.test(isLargePrev) ? dart.notNull(oldSegmentRect.top) + dart.notNull(animationFactor) * (dart.notNull(segmentRect.top) - dart.notNull(oldSegmentRect.top)) : dart.notNull(oldSegmentRect.top) - dart.notNull(animationFactor) * (dart.notNull(oldSegmentRect.top) - dart.notNull(segmentRect.top));
            height = dart.notNull(segmentRect.bottom) - dart.notNull(top);
          } else {
            bottom = dart.test(isLargePrev) ? dart.notNull(oldSegmentRect.bottom) - dart.notNull(animationFactor) * (dart.notNull(oldSegmentRect.bottom) - dart.notNull(segmentRect.bottom)) : dart.notNull(oldSegmentRect.bottom) + dart.notNull(animationFactor) * (dart.notNull(segmentRect.bottom) - dart.notNull(oldSegmentRect.bottom));
            height = dart.notNull(bottom) - dart.notNull(top);
          }
        } else {
          top = dart.notNull(yPoint) < 0 ? dart.notNull(segmentRect.top) + dart.notNull(segmentRect.height) - dart.notNull(height) : segmentRect.top;
        }
      }
      rect = new ui.Rect.fromLTWH(left, top, width, height);
    } else if (dart.test(series[_chart][_chartState][_isLegendToggled]) && oldSegmentRect != null && oldSeriesVisible != null) {
      rect = charts._performLegendToggleAnimation(series, segmentRect, oldSegmentRect, oldSeriesVisible, isSingleSeries, animationFactor);
    }
    canvas.drawRRect(new ui.RRect.fromRectAndRadius(rect == null ? (t7 = segmentRect, t7 == null ? null : t7.middleRect) : rect, segmentRect.blRadius), fillPaint);
  };
  charts._performLegendToggleAnimation = function _performLegendToggleAnimation(series, segmentRect, oldSegmentRect, oldSeriesVisible, isSingleSeries, animationFactor) {
    let right = null;
    let height = segmentRect.height;
    let width = segmentRect.width;
    let left = segmentRect.left;
    let top = segmentRect.top;
    if (dart.test(oldSeriesVisible)) {
      right = dart.notNull(oldSegmentRect.right) > dart.notNull(segmentRect.right) ? dart.notNull(oldSegmentRect.right) + dart.notNull(animationFactor) * (dart.notNull(segmentRect.right) - dart.notNull(oldSegmentRect.right)) : dart.notNull(oldSegmentRect.right) - dart.notNull(animationFactor) * (dart.notNull(oldSegmentRect.right) - dart.notNull(segmentRect.right));
      left = dart.notNull(oldSegmentRect.left) > dart.notNull(segmentRect.left) ? dart.notNull(oldSegmentRect.left) - dart.notNull(animationFactor) * (dart.notNull(oldSegmentRect.left) - dart.notNull(segmentRect.left)) : dart.notNull(oldSegmentRect.left) + dart.notNull(animationFactor) * (dart.notNull(segmentRect.left) - dart.notNull(oldSegmentRect.left));
      width = dart.notNull(right) - dart.notNull(left);
    } else {
      if (dart.equals(series, series[_chart].series[$_get](0)) && !dart.test(isSingleSeries)) {
        left = segmentRect.left;
        width = dart.notNull(segmentRect.width) * dart.notNull(animationFactor);
      } else if (dart.equals(series, series[_chart].series[$_get](dart.notNull(series[_chart].series[$length]) - 1)) && !dart.test(isSingleSeries)) {
        right = segmentRect.right;
        left = dart.notNull(right) - dart.notNull(segmentRect.width) * dart.notNull(animationFactor);
        width = dart.notNull(right) - dart.notNull(left);
      } else {
        width = dart.notNull(segmentRect.width) * dart.notNull(animationFactor);
        left = dart.notNull(segmentRect.center.dx) - dart.notNull(width) / 2;
      }
    }
    return new ui.Rect.fromLTWH(left, top, width, height);
  };
  charts._animateStackedRectSeries = function _animateStackedRectSeries(canvas, segmentRect, fillPaint, series, animationFactor, currentPoint, chart) {
    let index = null;
    let seriesIndex = null;
    let seriesCollection = null;
    let prevRegion = null;
    index = series[_dataPoints$][$indexOf](currentPoint);
    seriesCollection = charts._findSeriesCollection(chart);
    seriesIndex = seriesCollection[$indexOf](series);
    let isStackLine = false;
    if (seriesIndex !== 0) {
      if (charts.StackedLineSeries.is(series[_chart][_chartSeries].visibleSeries[$_get](dart.notNull(seriesIndex) - 1)) || charts.StackedLine100Series.is(series[_chart][_chartSeries].visibleSeries[$_get](dart.notNull(seriesIndex) - 1))) {
        isStackLine = true;
      }
      if (!isStackLine) {
        for (let j = 0; j < dart.notNull(chart[_chartSeries].clusterStackedItemInfo[$length]); j = j + 1) {
          let clusterStackedItemInfo = chart[_chartSeries].clusterStackedItemInfo[$_get](j);
          if (clusterStackedItemInfo.stackName == series.groupName) {
            if (dart.notNull(clusterStackedItemInfo.stackedItemInfo[$length]) >= 2) {
              for (let k = 0; k < dart.notNull(clusterStackedItemInfo.stackedItemInfo[$length]); k = k + 1) {
                let stackedItemInfo = clusterStackedItemInfo.stackedItemInfo[$_get](k);
                if (stackedItemInfo.seriesIndex == seriesIndex && k !== 0 && dart.notNull(index) < dart.notNull(clusterStackedItemInfo.stackedItemInfo[$_get](k - 1).series[_dataPoints$][$length])) {
                  if (dart.dtest(dart.dsend(currentPoint.yValue, '>', [0])) && dart.dtest(dart.dsend(clusterStackedItemInfo.stackedItemInfo[$_get](k - 1).series[_dataPoints$][$_get](index).yValue, '>', [0])) || dart.dtest(dart.dsend(currentPoint.yValue, '<', [0])) && dart.dtest(dart.dsend(clusterStackedItemInfo.stackedItemInfo[$_get](k - 1).series[_dataPoints$][$_get](index).yValue, '<', [0]))) {
                    prevRegion = clusterStackedItemInfo.stackedItemInfo[$_get](k - 1).series[_dataPoints$][$_get](index).region;
                  } else {
                    if (k > 1) prevRegion = clusterStackedItemInfo.stackedItemInfo[$_get](k - 1 - 1).series[_dataPoints$][$_get](index).region;
                  }
                }
              }
            }
          }
        }
      }
    }
    charts._drawAnimatedStackedRect(canvas, segmentRect, fillPaint, series, animationFactor, currentPoint, index, prevRegion);
  };
  charts._drawAnimatedStackedRect = function _drawAnimatedStackedRect(canvas, segmentRect, fillPaint, series, animationFactor, currentPoint, index, prevRegion) {
    let top = segmentRect.top;
    let height = segmentRect.height;
    let right = segmentRect.right;
    let width = segmentRect.width;
    let height1 = segmentRect.height;
    let top1 = segmentRect.top;
    height = dart.notNull(segmentRect.height) * dart.notNull(animationFactor);
    width = dart.notNull(segmentRect.width) * dart.notNull(animationFactor);
    if (series[_seriesType$][$contains]("stackedcolumn") && !dart.equals(series[_chart].isTransposed, true) || series[_seriesType$][$contains]("stackedbar") && dart.equals(series[_chart].isTransposed, true)) {
      !dart.equals(series[_yAxis$].isInversed, true) ? dart.dtest(dart.dsend(series[_dataPoints$][$_get](index).y, '>', [0])) ? prevRegion == null ? top = dart.notNull(segmentRect.top) + dart.notNull(segmentRect.height) - dart.notNull(height) : top = dart.notNull(prevRegion.top) - dart.notNull(height) : prevRegion == null ? top = segmentRect.top : top = prevRegion.bottom : dart.dtest(dart.dsend(series[_dataPoints$][$_get](index).y, '>', [0])) ? prevRegion == null ? top = segmentRect.top : top = prevRegion.bottom : prevRegion == null ? top = dart.notNull(segmentRect.top) + dart.notNull(segmentRect.height) - dart.notNull(height) : top = dart.notNull(prevRegion.top) - dart.notNull(height);
      segmentRect = new ui.RRect.fromRectAndRadius(new ui.Rect.fromLTWH(segmentRect.left, top, segmentRect.width, height), segmentRect.blRadius);
      currentPoint.region = new ui.Rect.fromLTWH(segmentRect.left, top, segmentRect.width, height);
      canvas.drawRRect(segmentRect, fillPaint);
    } else if (series[_seriesType$][$contains]("stackedcolumn") && dart.equals(series[_chart].isTransposed, true) || series[_seriesType$][$contains]("stackedbar") && !dart.equals(series[_chart].isTransposed, true)) {
      !dart.equals(series[_yAxis$].isInversed, true) ? dart.dtest(dart.dsend(series[_dataPoints$][$_get](index).y, '>', [0])) ? prevRegion == null ? right = dart.notNull(segmentRect.right) - dart.notNull(segmentRect.width) + dart.notNull(width) : right = dart.notNull(prevRegion.right) + dart.notNull(width) : prevRegion == null ? right = segmentRect.right : right = prevRegion.left : dart.dtest(dart.dsend(series[_dataPoints$][$_get](index).y, '>', [0])) ? prevRegion == null ? right = segmentRect.right : right = prevRegion.left : prevRegion == null ? right = dart.notNull(segmentRect.right) - dart.notNull(segmentRect.width) + dart.notNull(width) : right = dart.notNull(prevRegion.right) + dart.notNull(width);
      segmentRect = new ui.RRect.fromRectAndRadius(new ui.Rect.fromLTWH(dart.notNull(right) - dart.notNull(width), top1, width, height1), segmentRect.blRadius);
      currentPoint.region = new ui.Rect.fromLTWH(segmentRect.left, right, segmentRect.width, width);
      canvas.drawRRect(segmentRect, fillPaint);
    }
  };
  charts._checkSingleSeries = function _checkSingleSeries(series) {
    let count = 0;
    for (let i = 0; i < dart.notNull(series[_chart].series[$length]); i = i + 1) {
      if (dart.test(series[_chart].series[$_get](i)[_visible])) {
        count = count + 1;
      }
    }
    return count === 1 ? true : false;
  };
  charts._animateLineTypeSeries = function _animateLineTypeSeries(canvas, series, strokePaint, animationFactor, newX1, newY1, newX2, newY2, oldX1, oldY1, oldX2, oldY2, newX3 = null, newY3 = null, oldX3 = null, oldY3 = null, newX4 = null, newY4 = null, oldX4 = null, oldY4 = null) {
    let x1 = newX1;
    let y1 = newY1;
    let x2 = newX2;
    let y2 = newY2;
    let x3 = newX3;
    let y3 = newY3;
    let x4 = newX4;
    let y4 = newY4;
    y1 = charts._getValue(animationFactor, y1, oldY1, newY1);
    y2 = charts._getValue(animationFactor, y2, oldY2, newY2);
    y3 = charts._getValue(animationFactor, y3, oldY3, newY3);
    y4 = charts._getValue(animationFactor, y4, oldY4, newY4);
    x1 = charts._getValue(animationFactor, x1, oldX1, newX1);
    x2 = charts._getValue(animationFactor, x2, oldX2, newX2);
    x3 = charts._getValue(animationFactor, x3, oldX3, newX3);
    x4 = charts._getValue(animationFactor, x4, oldX4, newX4);
    let path = ui.Path.new();
    path.moveTo(x1, y1);
    if (series[_seriesType$] === "stepline") {
      path.lineTo(x3, y3);
    }
    series[_seriesType$] === "spline" ? path.cubicTo(x3, y3, x4, y4, x2, y2) : path.lineTo(x2, y2);
    charts._drawDashedLine(canvas, series.dashArray, strokePaint, path);
  };
  charts._getValue = function _getValue$(animationFactor, value, oldvalue, newValue) {
    return oldvalue != null && newValue != null && !oldvalue[$isNaN] ? dart.notNull(oldvalue) > dart.notNull(newValue) ? dart.notNull(oldvalue) - (dart.notNull(oldvalue) - dart.notNull(newValue)) * dart.notNull(animationFactor) : dart.notNull(oldvalue) + (dart.notNull(newValue) - dart.notNull(oldvalue)) * dart.notNull(animationFactor) : value;
  };
  charts._animateScatterSeries = function _animateScatterSeries(series, point, oldPoint, animationFactor, canvas, fillPaint, strokePaint) {
    let width = series.markerSettings.width;
    let height = series.markerSettings.height;
    let markerType = series.markerSettings.shape;
    let x = point.markerPoint.x;
    let y = point.markerPoint.y;
    if (dart.test(series[_chart][_chartState].widgetNeedUpdate) && oldPoint != null && oldPoint.markerPoint != null) {
      x = charts._getValue(animationFactor, x, oldPoint.markerPoint.x, x);
      y = charts._getValue(animationFactor, y, oldPoint.markerPoint.y, y);
      animationFactor = 1.0;
    }
    let path = ui.Path.new();
    {
      switch (markerType) {
        case C551 || CT.C551:
        {
          charts._ChartShapeUtils._drawCircle(path, x, y, dart.notNull(animationFactor) * dart.notNull(width), dart.notNull(animationFactor) * dart.notNull(height));
          break;
        }
        case C609 || CT.C609:
        {
          charts._ChartShapeUtils._drawRectangle(path, x, y, dart.notNull(animationFactor) * dart.notNull(width), dart.notNull(animationFactor) * dart.notNull(height));
          break;
        }
        case C610 || CT.C610:
        {
          charts._drawImageMarker(series, canvas, x, y);
          break;
        }
        case C611 || CT.C611:
        {
          charts._ChartShapeUtils._drawPentagon(path, x, y, dart.notNull(animationFactor) * dart.notNull(width), dart.notNull(animationFactor) * dart.notNull(height));
          break;
        }
        case C612 || CT.C612:
        {
          charts._ChartShapeUtils._drawVerticalLine(path, x, y, dart.notNull(animationFactor) * dart.notNull(width), dart.notNull(animationFactor) * dart.notNull(height));
          break;
        }
        case C616 || CT.C616:
        {
          charts._ChartShapeUtils._drawInvertedTriangle(path, x, y, dart.notNull(animationFactor) * dart.notNull(width), dart.notNull(animationFactor) * dart.notNull(height));
          break;
        }
        case C613 || CT.C613:
        {
          charts._ChartShapeUtils._drawHorizontalLine(path, x, y, dart.notNull(animationFactor) * dart.notNull(width), dart.notNull(animationFactor) * dart.notNull(height));
          break;
        }
        case C614 || CT.C614:
        {
          charts._ChartShapeUtils._drawDiamond(path, x, y, dart.notNull(animationFactor) * dart.notNull(width), dart.notNull(animationFactor) * dart.notNull(height));
          break;
        }
        case C615 || CT.C615:
        {
          charts._ChartShapeUtils._drawTriangle(path, x, y, dart.notNull(animationFactor) * dart.notNull(width), dart.notNull(animationFactor) * dart.notNull(height));
          break;
        }
        case C617 || CT.C617:
        {
          break;
        }
      }
    }
    canvas.drawPath(path, strokePaint);
    canvas.drawPath(path, fillPaint);
  };
  charts._animateBubbleSeries = function _animateBubbleSeries(canvas, newX, newY, oldX, oldY, oldSize, animationFactor, radius, strokePaint, fillPaint, isTransposed) {
    let x = newX;
    let y = newY;
    let size = radius;
    x = charts._getValue(animationFactor, x, oldX, newX);
    y = charts._getValue(animationFactor, y, oldY, newY);
    size = charts._getValue(animationFactor, size, oldSize, radius);
    canvas.drawCircle(new ui.Offset.new(x, y), size, fillPaint);
    canvas.drawCircle(new ui.Offset.new(x, y), size, strokePaint);
  };
  charts._animateRangeColumn = function _animateRangeColumn(canvas, series, fillPaint, segmentRect, animationFactor) {
    let height = segmentRect.height;
    let width = segmentRect.width;
    let left = segmentRect.left;
    let top = segmentRect.top;
    if (!dart.test(series[_chart].isTransposed)) {
      height = dart.notNull(segmentRect.height) * dart.notNull(animationFactor);
      top = dart.notNull(segmentRect.center.dy) - dart.notNull(height) / 2;
    } else {
      width = dart.notNull(segmentRect.width) * dart.notNull(animationFactor);
      left = dart.notNull(segmentRect.center.dx) - dart.notNull(width) / 2;
    }
    canvas.drawRRect(new ui.RRect.fromRectAndRadius(new ui.Rect.fromLTWH(left, top, width, height), segmentRect.blRadius), fillPaint);
  };
  charts._performLinearAnimation = function _performLinearAnimation(chart, axis, canvas, animationFactor) {
    dart.test(chart.isTransposed) ? canvas.clipRect(new ui.Rect.fromLTRB(0.0, dart.test(axis.isInversed) ? 0.0 : (1 - dart.notNull(animationFactor)) * dart.notNull(chart[_chartAxis][_axisClipRect].bottom), dart.notNull(chart[_chartAxis][_axisClipRect].left) + dart.notNull(chart[_chartAxis][_axisClipRect].width), dart.test(axis.isInversed) ? dart.notNull(animationFactor) * (dart.notNull(chart[_chartAxis][_axisClipRect].top) + dart.notNull(chart[_chartAxis][_axisClipRect].height)) : dart.notNull(chart[_chartAxis][_axisClipRect].top) + dart.notNull(chart[_chartAxis][_axisClipRect].height))) : canvas.clipRect(new ui.Rect.fromLTRB(dart.test(axis.isInversed) ? (1 - dart.notNull(animationFactor)) * dart.notNull(chart[_chartAxis][_axisClipRect].right) : 0.0, 0.0, dart.test(axis.isInversed) ? dart.notNull(chart[_chartAxis][_axisClipRect].left) + dart.notNull(chart[_chartAxis][_axisClipRect].width) : dart.notNull(animationFactor) * (dart.notNull(chart[_chartAxis][_axisClipRect].left) + dart.notNull(chart[_chartAxis][_axisClipRect].width)), dart.notNull(chart[_chartAxis][_axisClipRect].top) + dart.notNull(chart[_chartAxis][_axisClipRect].height)));
  };
  charts._animateHiloSeries = function _animateHiloSeries(transposed, newLow, newHigh, oldLow, oldHigh, animationFactor, paint, canvas) {
    if (dart.test(transposed)) {
      let lowX = newLow.x;
      let highX = newHigh.x;
      let y = newLow.y;
      y = charts._getValue(animationFactor, y, oldLow.y, newLow.y);
      lowX = charts._getValue(animationFactor, lowX, oldLow.x, newLow.x);
      highX = charts._getValue(animationFactor, highX, oldHigh.x, newHigh.x);
      canvas.drawLine(new ui.Offset.new(lowX, y), new ui.Offset.new(highX, y), paint);
    } else {
      let low = newLow.y;
      let high = newHigh.y;
      let x = newLow.x;
      x = charts._getValue(animationFactor, x, oldLow.x, newLow.x);
      low = charts._getValue(animationFactor, low, oldLow.y, newLow.y);
      high = charts._getValue(animationFactor, high, oldHigh.y, newHigh.y);
      canvas.drawLine(new ui.Offset.new(x, low), new ui.Offset.new(x, high), paint);
    }
  };
  charts._animateHiloOpenCloseSeries = function _animateHiloOpenCloseSeries(transposed, newLow, newHigh, oldLow, oldHigh, newOpenX, newOpenY, newCloseX, newCloseY, newCenterLow, newCenterHigh, oldOpenX, oldOpenY, oldCloseX, oldCloseY, oldCenterLow, oldCenterHigh, animationFactor, paint, canvas) {
    let low = newLow;
    let high = newHigh;
    let openX = newOpenX;
    let openY = newOpenY;
    let closeX = newCloseX;
    let closeY = newCloseY;
    let centerHigh = newCenterHigh;
    let centerLow = newCenterLow;
    low = charts._getValue(animationFactor, low, oldLow, newLow);
    high = charts._getValue(animationFactor, high, oldHigh, newHigh);
    openX = charts._getValue(animationFactor, openX, oldOpenX, newOpenX);
    openY = charts._getValue(animationFactor, openY, oldOpenY, newOpenY);
    closeX = charts._getValue(animationFactor, closeX, oldCloseX, newCloseX);
    closeY = charts._getValue(animationFactor, closeY, oldCloseY, newCloseY);
    centerHigh = charts._getValue(animationFactor, centerHigh, oldCenterHigh, newCenterHigh);
    centerLow = charts._getValue(animationFactor, centerLow, oldCenterLow, newCenterLow);
    if (dart.test(transposed)) {
      canvas.drawLine(new ui.Offset.new(low, centerLow), new ui.Offset.new(high, centerHigh), paint);
      canvas.drawLine(new ui.Offset.new(openX, openY), new ui.Offset.new(openX, centerHigh), paint);
      canvas.drawLine(new ui.Offset.new(closeX, centerLow), new ui.Offset.new(closeX, closeY), paint);
    } else {
      canvas.drawLine(new ui.Offset.new(centerHigh, low), new ui.Offset.new(centerLow, high), paint);
      canvas.drawLine(new ui.Offset.new(openX, openY), new ui.Offset.new(centerHigh, openY), paint);
      canvas.drawLine(new ui.Offset.new(centerLow, closeY), new ui.Offset.new(closeX, closeY), paint);
    }
  };
  charts._animateCandleSeries = function _animateCandleSeries(transposed, open1, close1, newLow, newHigh, oldLow, oldHigh, newOpenX, newOpenY, newCloseX, newCloseY, newCenterLow, newCenterHigh, oldOpenX, oldOpenY, oldCloseX, oldCloseY, oldCenterLow, oldCenterHigh, animationFactor, paint, canvas) {
    let open = open1;
    let close = close1;
    let lowY = newLow;
    let highY = newHigh;
    let openX = newOpenX;
    let openY = newOpenY;
    let closeX = newCloseX;
    let closeY = newCloseY;
    let centerHigh = newCenterHigh;
    let centerLow = newCenterLow;
    lowY = charts._getValue(animationFactor, lowY, oldLow, newLow);
    highY = charts._getValue(animationFactor, highY, oldHigh, newHigh);
    openX = charts._getValue(animationFactor, openX, oldOpenX, newOpenX);
    openY = charts._getValue(animationFactor, openY, oldOpenY, newOpenY);
    closeX = charts._getValue(animationFactor, closeX, oldCloseX, newCloseX);
    closeY = charts._getValue(animationFactor, closeY, oldCloseY, newCloseY);
    centerHigh = charts._getValue(animationFactor, centerHigh, oldCenterHigh, newCenterHigh);
    centerLow = charts._getValue(animationFactor, centerLow, oldCenterLow, newCenterLow);
    let path = ui.Path.new();
    if (!dart.test(transposed) && dart.notNull(open) > dart.notNull(close)) {
      let temp = closeY;
      closeY = openY;
      openY = temp;
    }
    if (dart.test(transposed)) {
      path.moveTo(centerHigh, highY);
      if (dart.notNull(centerHigh) < dart.notNull(closeX)) {
        path.lineTo(closeX, highY);
      } else
        path.lineTo(closeX, highY);
      path.moveTo(centerLow, highY);
      if (dart.notNull(centerLow) > dart.notNull(openX)) {
        path.lineTo(openX, highY);
      } else
        path.lineTo(openX, highY);
      path.moveTo(closeX, closeY);
      path.lineTo(closeX, openY);
      path.lineTo(openX, openY);
      path.lineTo(openX, closeY);
      path.lineTo(closeX, closeY);
      path.close();
    } else {
      if (dart.notNull(open) > dart.notNull(close)) {
        let temp = closeY;
        closeY = openY;
        openY = temp;
      }
      path.moveTo(centerHigh, closeY);
      path.lineTo(centerHigh, highY);
      path.moveTo(centerLow, openY);
      path.lineTo(centerLow, lowY);
      path.moveTo(openX, openY);
      path.lineTo(closeX, openY);
      path.lineTo(closeX, closeY);
      path.lineTo(openX, closeY);
      path.lineTo(openX, openY);
      path.close();
    }
    canvas.drawPath(path, paint);
    if (dart.equals(paint.style, ui.PaintingStyle.fill)) {
      if (dart.test(transposed)) {
        if (dart.notNull(open) > dart.notNull(close)) {
          canvas.drawLine(new ui.Offset.new(centerHigh, highY), new ui.Offset.new(closeX, highY), paint);
          canvas.drawLine(new ui.Offset.new(centerLow, highY), new ui.Offset.new(openX, highY), paint);
        } else {
          canvas.drawLine(new ui.Offset.new(centerHigh, highY), new ui.Offset.new(closeX, highY), paint);
          canvas.drawLine(new ui.Offset.new(centerLow, highY), new ui.Offset.new(openX, highY), paint);
        }
      } else {
        canvas.drawLine(new ui.Offset.new(centerHigh, closeY), new ui.Offset.new(centerHigh, highY), paint);
        canvas.drawLine(new ui.Offset.new(centerHigh, openY), new ui.Offset.new(centerHigh, lowY), paint);
      }
    }
  };
  charts._getNearestChartPoints = function _getNearestChartPoints(pointX, pointY, actualXAxis, actualYAxis, cartesianSeries, firstNearestDataPoints = null) {
    let t7;
    let dataPointList = [];
    let dataList = [];
    let xValues = JSArrayOfnum().of([]);
    let yValues = JSArrayOfnum().of([]);
    firstNearestDataPoints != null ? dataList = firstNearestDataPoints : dataList = cartesianSeries[_dataPoints$];
    for (let i = 0; i < dart.notNull(dataList[$length]); i = i + 1) {
      xValues[$add](core.num._check(dart.dload(dataList[$_get](i), 'xValue')));
      yValues[$add](core.num._check((t7 = dart.dload(dataList[$_get](i), 'yValue'), t7 == null ? dart.dsend(dart.dsend(dart.dload(dataList[$_get](i), 'high'), '+', [dart.dload(dataList[$_get](i), 'low')]), '/', [2]) : t7)));
    }
    let nearPointX = core.num._check(actualXAxis[_visibleRange].minimum);
    let nearPointY = core.num._check(actualYAxis[_visibleRange].minimum);
    let rect = charts._calculatePlotOffset(cartesianSeries[_chart][_chartAxis][_axisClipRect], new ui.Offset.new(cartesianSeries[_xAxis$].plotOffset, cartesianSeries[_yAxis$].plotOffset));
    let touchXValue = charts._pointToXValue(cartesianSeries[_chart], actualXAxis, dart.test(actualXAxis.isVisible) ? actualXAxis[_bounds] : cartesianSeries[_chart][_chartAxis][_axisClipRect], dart.notNull(pointX) - dart.notNull(rect.left), dart.notNull(pointY) - dart.notNull(rect.top));
    let touchYValue = charts._pointToYValue(cartesianSeries[_chart], actualYAxis, dart.test(actualYAxis.isVisible) ? actualYAxis[_bounds] : cartesianSeries[_chart][_chartAxis][_axisClipRect], dart.notNull(pointX) - dart.notNull(rect.left), dart.notNull(pointY) - dart.notNull(rect.top));
    let delta = 0.0;
    for (let i = 0; i < dart.notNull(dataList[$length]); i = i + 1) {
      let currX = xValues[$_get](i)[$toDouble]();
      let currY = yValues[$_get](i)[$toDouble]();
      if (delta === dart.notNull(touchXValue) - currX) {
        let dataPoint = charts.CartesianChartPoint._check(dataList[$_get](i));
        if (!dart.equals(dataPoint.isDrop, true) && !dart.equals(dataPoint.isGap, true)) {
          if ((dart.notNull(touchYValue) - currY)[$abs]() > (dart.notNull(touchYValue) - dart.notNull(nearPointY))[$abs]()) dataPointList[$clear]();
          dataPointList[$add](dataPoint);
        }
      } else if ((dart.notNull(touchXValue) - currX)[$abs]() <= (dart.notNull(touchXValue) - dart.notNull(nearPointX))[$abs]()) {
        nearPointX = currX;
        nearPointY = currY;
        delta = dart.notNull(touchXValue) - currX;
        let dataPoint = charts.CartesianChartPoint._check(dataList[$_get](i));
        dataPointList[$clear]();
        if (!dart.equals(dataPoint.isDrop, true) && !dart.equals(dataPoint.isGap, true)) {
          dataPointList[$add](dataPoint);
        }
      }
    }
    return dataPointList;
  };
  charts._zoomEvent = function _zoomEvent(chart, axis, zoomPanArgs, zoomEventType) {
    zoomPanArgs = new charts.ZoomPanArgs.new();
    zoomPanArgs.axis = charts.ChartAxis._check(axis);
    zoomPanArgs.currentZoomFactor = core.double._check(dart.dload(axis, _zoomFactor));
    zoomPanArgs.currentZoomPosition = core.double._check(dart.dload(axis, _zoomPosition));
    zoomPanArgs.previousZoomFactor = core.double._check(dart.dload(axis, _previousZoomFactor));
    zoomPanArgs.previousZoomPosition = core.double._check(dart.dload(axis, _previousZoomPosition));
    dart.equals(zoomEventType, chart.onZoomStart) ? chart.onZoomStart(zoomPanArgs) : dart.equals(zoomEventType, chart.onZoomEnd) ? chart.onZoomEnd(zoomPanArgs) : dart.equals(zoomEventType, chart.onZooming) ? chart.onZooming(zoomPanArgs) : chart.onZoomReset(zoomPanArgs);
    return zoomPanArgs;
  };
  charts._dashedBorder = function _dashedBorder(_currentPoint, borderWidth) {
    let path = null;
    let topLeft = null;
    let topRight = null;
    let bottomRight = null;
    let bottomLeft = null;
    let width = null;
    topLeft = _currentPoint.region.topLeft;
    topRight = _currentPoint.region.topRight;
    bottomLeft = _currentPoint.region.bottomLeft;
    bottomRight = _currentPoint.region.bottomRight;
    width = dart.notNull(borderWidth) / 2;
    path = ui.Path.new();
    path.moveTo(core.double._check(dart.dsend(dart.dload(topLeft, 'dx'), '+', [width])), core.double._check(dart.dsend(dart.dload(topLeft, 'dy'), '+', [width])));
    path.lineTo(core.double._check(dart.dsend(dart.dload(topRight, 'dx'), '-', [width])), core.double._check(dart.dsend(dart.dload(topRight, 'dy'), '+', [width])));
    path.lineTo(core.double._check(dart.dsend(dart.dload(bottomRight, 'dx'), '-', [width])), core.double._check(dart.dsend(dart.dload(bottomRight, 'dy'), '-', [width])));
    path.lineTo(core.double._check(dart.dsend(dart.dload(bottomLeft, 'dx'), '+', [width])), core.double._check(dart.dsend(dart.dload(bottomLeft, 'dy'), '-', [width])));
    path.lineTo(core.double._check(dart.dsend(dart.dload(topLeft, 'dx'), '+', [width])), core.double._check(dart.dsend(dart.dload(topLeft, 'dy'), '+', [width])));
    path.close();
    return path;
  };
  charts._getImageInfo = function _getImageInfo(imageProvider) {
    return async.async(ui.Image, function* _getImageInfo() {
      let completer = CompleterOfImageInfo().new();
      imageProvider.resolve(C895 || CT.C895).addListener(new image_stream.ImageStreamListener.new(dart.fn((info, _) => {
        completer.complete(info);
        return completer.future;
      }, ImageInfoAndboolToFutureOfImageInfo())));
      let imageInfo = (yield completer.future);
      return imageInfo.image;
    });
  };
  charts._calculateImage = function _calculateImage(chart = null, series = null) {
    return async.async(dart.void, function* _calculateImage() {
      let t7, t7$, t7$0, t7$1;
      if (chart != null && series == null) {
        if (dart.dload(chart, 'plotAreaBackgroundImage') != null) {
          dart.dput(dart.dload(chart, _chartState), _backgroundImage, yield charts._getImageInfo(image_provider.ImageProvider._check(dart.dload(chart, 'plotAreaBackgroundImage'))));
          t7 = dart.dload(dart.dload(dart.dload(dart.dload(chart, _chartState), 'renderAxis'), 'state'), 'axisRepaintNotifier');
          dart.dput(t7, 'value', dart.dsend(dart.dload(t7, 'value'), '+', [1]));
        }
        if (dart.dload(dart.dload(chart, 'legend'), 'image') != null) {
          dart.dput(dart.dload(chart, _chartState), _legendIconImage, yield charts._getImageInfo(image_provider.ImageProvider._check(dart.dload(dart.dload(chart, 'legend'), 'image'))));
          t7$ = dart.dload(dart.dload(chart, _chartLegend), 'legendRepaintNotifier');
          dart.dput(t7$, 'value', dart.dsend(dart.dload(t7$, 'value'), '+', [1]));
        }
      } else {
        if (dart.dload(dart.dload(series, 'markerSettings'), 'image') != null) {
          dart.dput(dart.dload(series, 'markerSettings'), _image, yield charts._getImageInfo(image_provider.ImageProvider._check(dart.dload(dart.dload(series, 'markerSettings'), 'image'))));
          t7$0 = dart.dload(dart.dload(dart.dload(series, _chart), _chartState), 'seriesRepaintNotifier');
          dart.dput(t7$0, 'value', dart.dsend(dart.dload(t7$0, 'value'), '+', [1]));
          if (dart.equals(dart.dload(series, _seriesType$), "scatter") && dart.dtest(dart.dload(dart.dload(dart.dload(series, _chart), 'legend'), 'isVisible'))) {
            t7$1 = dart.dload(dart.dload(dart.dload(series, _chart), _chartLegend), 'legendRepaintNotifier');
            dart.dput(t7$1, 'value', dart.dsend(dart.dload(t7$1, 'value'), '+', [1]));
          }
        }
      }
    });
  };
  charts._calculateDataLabelPosition = function _calculateDataLabelPosition(series, point, index, chart) {
    let t7, t7$, t7$0, t7$1;
    let dataLabel = series.dataLabelSettings;
    let textSize = null;
    let textSize2 = null;
    let textSize3 = null;
    let textSize4 = null;
    let value1 = null;
    let value2 = null;
    let rect = charts._calculatePlotOffset(chart[_chartAxis][_axisClipRect], new ui.Offset.new(series[_xAxis$].plotOffset, series[_yAxis$].plotOffset));
    value1 = core.num._check(point.open != null && point.close != null && dart.dtest(dart.dsend(point.close, '<', [point.open])) ? point.close : point.open);
    value2 = core.num._check(point.open != null && point.close != null && dart.dtest(dart.dsend(point.close, '>', [point.open])) ? point.close : point.open);
    let transposed = chart[_requireInvertedAxis];
    let inversed = series[_yAxis$].isInversed;
    let clipRect = charts._calculatePlotOffset(chart[_chartAxis][_axisClipRect], new ui.Offset.new(series[_xAxis$].plotOffset, series[_yAxis$].plotOffset));
    let isRangeSeries = series[_seriesType$][$contains]("range") || series[_seriesType$][$contains]("hilo") || series[_seriesType$][$contains]("candle");
    if (point != null && dart.test(point.isVisible) && !dart.equals(point.isGap, true)) {
      let markerPointX = series[_seriesType$][$contains]("hilo") || series[_seriesType$] === "candle" ? dart.test(series[_chart][_requireInvertedAxis]) ? point.region.centerRight.dx : point.region.topCenter.dx : point.markerPoint.x;
      let markerPointY = series[_seriesType$][$contains]("hilo") || series[_seriesType$] === "candle" ? dart.test(series[_chart][_requireInvertedAxis]) ? point.region.centerRight.dy : point.region.topCenter.dy : point.markerPoint.y;
      let markerPoint2 = charts._calculatePoint(core.num._check(point.xValue), dart.test(series[_yAxis$].isInversed) ? value2 : value1, series[_xAxis$], series[_yAxis$], chart[_requireInvertedAxis], series, rect);
      let markerPoint3 = charts._calculatePoint(core.num._check(point.xValue), dart.test(series[_yAxis$].isInversed) ? value1 : value2, series[_xAxis$], series[_yAxis$], chart[_requireInvertedAxis], series, rect);
      let label = (t7 = point.dataLabelMapper, t7 == null ? charts._getLabelText(isRangeSeries ? !dart.test(inversed) ? point.high : point.low : dart.test(dataLabel.showCumulativeValues) && point.cumulativeValue != null ? point.cumulativeValue : point.yValue, series, chart) : t7);
      if (isRangeSeries) point.label2 = (t7$ = point.dataLabelMapper, t7$ == null ? charts._getLabelText(!dart.test(inversed) ? point.low : point.high, series, chart) : t7$);
      let font = dataLabel.textStyle == null ? new charts.ChartTextStyle.new() : dataLabel.textStyle;
      point.label = label;
      if (label[$isNotEmpty]) {
        let chartLocation = null;
        let chartLocation2 = null;
        let chartLocation3 = null;
        let chartLocation4 = null;
        textSize = charts._measureText(label, font);
        chartLocation = new charts._ChartLocation.new(markerPointX, markerPointY);
        if (isRangeSeries) {
          textSize2 = charts._measureText(point.label2, font);
          chartLocation2 = new charts._ChartLocation.new(series[_seriesType$][$contains]("hilo") || series[_seriesType$] === "candle" ? dart.test(series[_chart][_requireInvertedAxis]) ? point.region.centerLeft.dx : point.region.bottomCenter.dx : point.markerPoint2.x, series[_seriesType$][$contains]("hilo") || series[_seriesType$] === "candle" ? dart.test(series[_chart][_requireInvertedAxis]) ? point.region.centerLeft.dy : point.region.bottomCenter.dy : point.markerPoint2.y);
        }
        let alignedLabelLocations = charts._getAlignedLabelLocations(chart, series, point, dataLabel, chartLocation, chartLocation2, textSize);
        chartLocation = alignedLabelLocations[$_get](0);
        chartLocation2 = alignedLabelLocations[$_get](1);
        if (!dart.test(series[_isRectSeries]) && series[_seriesType$] !== "rangearea" && !series[_seriesType$][$contains]("hilo") && !series[_seriesType$][$contains]("candle")) {
          chartLocation.y = charts._calculatePathPosition(chartLocation.y, dataLabel.labelAlignment, textSize, dataLabel.borderWidth, series, index, transposed, chartLocation, chart, point, new ui.Size.new(dart.test(series.markerSettings.isVisible) ? dart.notNull(series.markerSettings.width) / 2 : 0.0, dart.test(series.markerSettings.isVisible) ? dart.notNull(series.markerSettings.height) / 2 : 0.0));
        } else {
          let _locations = charts._getLabelLocations(index, chart, series, point, dataLabel, chartLocation, chartLocation2, textSize, textSize2);
          chartLocation = _locations[$_get](0);
          chartLocation2 = _locations[$_get](1);
        }
        if (series[_seriesType$] === "hiloopenclose" || series[_seriesType$][$contains]("candle")) {
          point.label3 = (t7$0 = point.dataLabelMapper, t7$0 == null ? charts._getLabelText(dart.dtest(dart.dsend(point.open, '>', [point.close])) ? !dart.test(inversed) ? point.close : point.open : !dart.test(inversed) ? point.open : point.close, series, chart) : t7$0);
          point.label4 = (t7$1 = point.dataLabelMapper, t7$1 == null ? charts._getLabelText(dart.dtest(dart.dsend(point.open, '>', [point.close])) ? !dart.test(inversed) ? point.open : point.close : !dart.test(inversed) ? point.close : point.open, series, chart) : t7$1);
          textSize3 = charts._measureText(point.label3, font);
          if (series[_seriesType$][$contains]("hilo")) {
            if (dart.dtest(dart.dsend(point.open, '>', [point.close])))
              chartLocation3 = new charts._ChartLocation.new(dart.notNull(point.centerClosePoint.x) + dart.notNull(textSize3.width), point.closePoint.y);
            else
              chartLocation3 = new charts._ChartLocation.new(dart.notNull(point.centerOpenPoint.x) - dart.notNull(textSize3.width), point.openPoint.y);
          } else if (series[_seriesType$] === "candle" && dart.test(series[_chart][_requireInvertedAxis])) {
            if (dart.dtest(dart.dsend(point.open, '>', [point.close]))) {
              chartLocation3 = new charts._ChartLocation.new(point.closePoint.x, dart.notNull(markerPoint2.y) + 1);
            } else
              chartLocation3 = new charts._ChartLocation.new(point.openPoint.x, dart.notNull(markerPoint2.y) + 1);
          } else {
            chartLocation3 = new charts._ChartLocation.new(point.region.topCenter.dx, markerPoint2.y);
          }
          textSize4 = charts._measureText(point.label4, font);
          if (series[_seriesType$][$contains]("hilo")) {
            if (dart.dtest(dart.dsend(point.open, '>', [point.close])))
              chartLocation4 = new charts._ChartLocation.new(dart.notNull(point.centerOpenPoint.x) - dart.notNull(textSize4.width), point.openPoint.y);
            else
              chartLocation4 = new charts._ChartLocation.new(dart.notNull(point.centerClosePoint.x) + dart.notNull(textSize4.width), point.closePoint.y);
          } else if (series[_seriesType$] === "candle" && dart.test(series[_chart][_requireInvertedAxis])) {
            if (dart.dtest(dart.dsend(point.open, '>', [point.close]))) {
              chartLocation4 = new charts._ChartLocation.new(point.openPoint.x, dart.notNull(markerPoint3.y) + 1);
            } else
              chartLocation4 = new charts._ChartLocation.new(point.closePoint.x, dart.notNull(markerPoint3.y) + 1);
          } else {
            chartLocation4 = new charts._ChartLocation.new(point.region.bottomCenter.dx, markerPoint3.y);
          }
          let alignedLabelLocations2 = charts._getAlignedLabelLocations(chart, series, point, dataLabel, chartLocation3, chartLocation4, textSize3);
          chartLocation3 = alignedLabelLocations2[$_get](0);
          chartLocation4 = alignedLabelLocations2[$_get](1);
          let _locations = charts._getLabelLocations(index, chart, series, point, dataLabel, chartLocation3, chartLocation4, textSize3, textSize4);
          chartLocation3 = _locations[$_get](0);
          chartLocation4 = _locations[$_get](1);
        }
        charts._calculateDataLabelRegion(point, dataLabel, chart, chartLocation, chartLocation2, isRangeSeries, clipRect, textSize, textSize2, chartLocation3, chartLocation4, textSize3, textSize4, series);
      }
    }
  };
  charts._getAlignedLabelLocations = function _getAlignedLabelLocations(chart, series, point, dataLabel, chartLocation, chartLocation2, textSize) {
    let transposed = chart[_requireInvertedAxis];
    let isRangeSeries = series[_seriesType$][$contains]("range") || series[_seriesType$][$contains]("hilo") || series[_seriesType$][$contains]("candle");
    let alignmentValue = dart.notNull(textSize.height) + (dart.test(series.markerSettings.isVisible) ? dart.notNull(series.markerSettings.borderWidth) * 2 + dart.notNull(series.markerSettings.height) : 0);
    if (series[_seriesType$][$contains]("bar") && !dart.test(chart.isTransposed) || series[_seriesType$][$contains]("column") && dart.test(chart.isTransposed) || series[_seriesType$][$contains]("hilo") || series[_seriesType$][$contains]("candle")) {
      chartLocation.x = dart.equals(dataLabel.labelAlignment, charts.ChartDataLabelAlignment.auto) ? chartLocation.x : charts._calculateAlignment(alignmentValue, chartLocation.x, dataLabel.alignment, core.bool._check(dart.dsend(isRangeSeries ? point.high : point.yValue, '<', [0])), transposed);
      if (isRangeSeries) {
        chartLocation2.x = dart.equals(dataLabel.labelAlignment, charts.ChartDataLabelAlignment.auto) ? chartLocation2.x : charts._calculateAlignment(alignmentValue, chartLocation2.x, dataLabel.alignment, core.bool._check(dart.dsend(isRangeSeries ? point.low : point.yValue, '<', [0])), transposed);
      }
    } else {
      chartLocation.y = dart.equals(dataLabel.labelAlignment, charts.ChartDataLabelAlignment.auto) ? chartLocation.y : charts._calculateAlignment(alignmentValue, chartLocation.y, dataLabel.alignment, core.bool._check(dart.dsend(isRangeSeries ? point.high : point.yValue, '<', [0])), transposed);
      if (isRangeSeries) {
        chartLocation2.y = dart.equals(dataLabel.labelAlignment, charts.ChartDataLabelAlignment.auto) ? chartLocation2.y : charts._calculateAlignment(alignmentValue, chartLocation2.y, dataLabel.alignment, core.bool._check(dart.dsend(isRangeSeries ? point.low : point.yValue, '<', [0])), transposed);
      }
    }
    return JSArrayOf_ChartLocation().of([chartLocation, chartLocation2]);
  };
  charts._getLabelLocations = function _getLabelLocations(index, chart, series, point, dataLabel, chartLocation, chartLocation2, textSize, textSize2) {
    let transposed = chart[_requireInvertedAxis];
    let margin = dataLabel.margin;
    let isRangeSeries = series[_seriesType$][$contains]("range") || series[_seriesType$][$contains]("hilo") || series[_seriesType$][$contains]("candle");
    let inversed = series[_yAxis$].isInversed;
    let value = core.num._check(isRangeSeries ? point.high : point.yValue);
    let minus = dart.notNull(value) < 0 && !dart.test(inversed) || !(dart.notNull(value) < 0) && dart.test(inversed);
    if (!dart.test(chart[_requireInvertedAxis])) {
      chartLocation.y = charts._calculateRectPosition(chartLocation.y, point.region, minus, isRangeSeries ? dart.equals(dataLabel.labelAlignment, charts.ChartDataLabelAlignment.outer) || dart.equals(dataLabel.labelAlignment, charts.ChartDataLabelAlignment.top) ? dataLabel.labelAlignment : charts.ChartDataLabelAlignment.auto : dataLabel.labelAlignment, series, textSize, dataLabel.borderWidth, index, chartLocation, chart, transposed, margin);
    } else {
      chartLocation.x = charts._calculateRectPosition(chartLocation.x, point.region, minus, series[_seriesType$][$contains]("hilo") || series[_seriesType$][$contains]("candle") ? charts.ChartDataLabelAlignment.auto : isRangeSeries ? dart.equals(dataLabel.labelAlignment, charts.ChartDataLabelAlignment.outer) || dart.equals(dataLabel.labelAlignment, charts.ChartDataLabelAlignment.top) ? dataLabel.labelAlignment : charts.ChartDataLabelAlignment.auto : dataLabel.labelAlignment, series, textSize, dataLabel.borderWidth, index, chartLocation, chart, transposed, margin);
    }
    chartLocation2 = isRangeSeries ? charts._getSecondLabelLocation(index, chart, series, point, dataLabel, chartLocation, chartLocation2, textSize) : chartLocation2;
    return JSArrayOf_ChartLocation().of([chartLocation, chartLocation2]);
  };
  charts._getSecondLabelLocation = function _getSecondLabelLocation(index, chart, series, point, dataLabel, chartLocation, chartLocation2, textSize) {
    let inversed = series[_yAxis$].isInversed;
    let transposed = chart[_requireInvertedAxis];
    let margin = dataLabel.margin;
    let minus = dart.dtest(dart.dsend(point.low, '<', [0])) && !dart.test(inversed) || !dart.dtest(dart.dsend(point.low, '<', [0])) && dart.test(inversed);
    if (!dart.test(chart[_requireInvertedAxis])) {
      chartLocation2.y = charts._calculateRectPosition(chartLocation2.y, point.region, minus, dart.equals(dataLabel.labelAlignment, charts.ChartDataLabelAlignment.top) ? charts.ChartDataLabelAlignment.auto : charts.ChartDataLabelAlignment.top, series, textSize, dataLabel.borderWidth, index, chartLocation, chart, transposed, margin);
    } else {
      chartLocation2.x = charts._calculateRectPosition(chartLocation2.x, point.region, minus, dart.equals(dataLabel.labelAlignment, charts.ChartDataLabelAlignment.top) ? charts.ChartDataLabelAlignment.auto : charts.ChartDataLabelAlignment.top, series, textSize, dataLabel.borderWidth, index, chartLocation, chart, transposed, margin);
    }
    return chartLocation2;
  };
  charts._calculateDataLabelRegion = function _calculateDataLabelRegion(point, dataLabel, chart, chartLocation, chartLocation2, isRangeSeries, clipRect, textSize, textSize2, chartLocation3 = null, chartLocation4 = null, textSize3 = null, textSize4 = null, series = null) {
    let rect = null;
    let rect2 = null;
    let rect3 = null;
    let rect4 = null;
    let margin = dataLabel.margin;
    rect = charts._calculateLabelRect(chartLocation, textSize, margin, dataLabel.color != null || dart.test(dataLabel.useSeriesColor));
    rect = charts._validateRect(rect, clipRect);
    if (dart.test(isRangeSeries)) {
      rect2 = charts._calculateLabelRect(chartLocation2, textSize2, margin, dataLabel.color != null || dart.test(dataLabel.useSeriesColor));
      rect2 = charts._validateRect(rect2, clipRect);
    }
    if (series[_seriesType$][$contains]("candle") || series[_seriesType$][$contains]("hilo") && (chartLocation3 != null || chartLocation4 != null)) {
      rect3 = charts._calculateLabelRect(chartLocation3, textSize3, margin, dataLabel.color != null || dart.test(dataLabel.useSeriesColor));
      rect3 = charts._validateRect(rect3, clipRect);
      rect4 = charts._calculateLabelRect(chartLocation4, textSize4, margin, dataLabel.color != null || dart.test(dataLabel.useSeriesColor));
      rect4 = charts._validateRect(rect4, clipRect);
    }
    if (dataLabel.color != null || dart.test(dataLabel.useSeriesColor) || dataLabel.borderColor != null && dart.notNull(dataLabel.borderWidth) > 0) {
      let fillRect = charts._calculatePaddedFillRect(rect, dataLabel.borderRadius, margin);
      point.labelLocation = new charts._ChartLocation.new(dart.notNull(fillRect.center.dx) - dart.notNull(textSize.width) / 2, dart.notNull(fillRect.center.dy) - dart.notNull(textSize.height) / 2);
      point.dataLabelRegion = new ui.Rect.fromLTWH(point.labelLocation.x, point.labelLocation.y, textSize.width, textSize.height);
      if (dart.equals(margin, C896 || CT.C896)) {
        point.labelFillRect = fillRect;
      } else {
        let rect = fillRect.middleRect;
        if (series[_seriesType$] === "candle" && dart.test(chart[_requireInvertedAxis]) && dart.dtest(dart.dsend(point.close, '>', [point.high]))) {
          point.labelLocation = new charts._ChartLocation.new(dart.notNull(rect.left) - dart.notNull(rect.width) - dart.notNull(textSize.width), dart.notNull(rect.top) + dart.notNull(rect.height) / 2 - dart.notNull(textSize.height) / 2);
        } else if (series[_seriesType$] === "candle" && !dart.test(chart[_requireInvertedAxis]) && dart.dtest(dart.dsend(point.close, '>', [point.high]))) {
          point.labelLocation = new charts._ChartLocation.new(dart.notNull(rect.left) + dart.notNull(rect.width) / 2 - dart.notNull(textSize.width) / 2, dart.notNull(rect.top) + dart.notNull(rect.height) + dart.notNull(textSize.height));
        } else {
          point.labelLocation = new charts._ChartLocation.new(dart.notNull(rect.left) + dart.notNull(rect.width) / 2 - dart.notNull(textSize.width) / 2, dart.notNull(rect.top) + dart.notNull(rect.height) / 2 - dart.notNull(textSize.height) / 2);
        }
        point.dataLabelRegion = new ui.Rect.fromLTWH(point.labelLocation.x, point.labelLocation.y, textSize.width, textSize.height);
        point.labelFillRect = charts._rectToRrect(rect, dataLabel.borderRadius);
      }
      if (dart.test(isRangeSeries)) {
        let fillRect2 = charts._calculatePaddedFillRect(rect2, dataLabel.borderRadius, margin);
        point.labelLocation2 = new charts._ChartLocation.new(dart.notNull(fillRect2.center.dx) - dart.notNull(textSize2.width) / 2, dart.notNull(fillRect2.center.dy) - dart.notNull(textSize2.height) / 2);
        point.dataLabelRegion2 = new ui.Rect.fromLTWH(point.labelLocation2.x, point.labelLocation2.y, textSize2.width, textSize2.height);
        if (dart.equals(margin, C896 || CT.C896)) {
          point.labelFillRect2 = fillRect2;
        } else {
          let rect2 = fillRect2.middleRect;
          point.labelLocation2 = new charts._ChartLocation.new(dart.notNull(rect2.left) + dart.notNull(rect2.width) / 2 - dart.notNull(textSize2.width) / 2, dart.notNull(rect2.top) + dart.notNull(rect2.height) / 2 - dart.notNull(textSize2.height) / 2);
          point.dataLabelRegion2 = new ui.Rect.fromLTWH(point.labelLocation2.x, point.labelLocation2.y, textSize2.width, textSize2.height);
          point.labelFillRect2 = charts._rectToRrect(rect2, dataLabel.borderRadius);
        }
      }
      if (series[_seriesType$][$contains]("candle") || series[_seriesType$][$contains]("hilo") && (rect3 != null || rect4 != null)) {
        let fillRect3 = charts._calculatePaddedFillRect(rect3, dataLabel.borderRadius, margin);
        point.labelLocation3 = new charts._ChartLocation.new(dart.notNull(fillRect3.center.dx) - dart.notNull(textSize3.width) / 2, dart.notNull(fillRect3.center.dy) - dart.notNull(textSize3.height) / 2);
        point.dataLabelRegion3 = new ui.Rect.fromLTWH(point.labelLocation3.x, point.labelLocation3.y, textSize3.width, textSize3.height);
        if (dart.equals(margin, C896 || CT.C896)) {
          point.labelFillRect3 = fillRect3;
        } else {
          let rect3 = fillRect3.middleRect;
          point.labelLocation3 = new charts._ChartLocation.new(dart.notNull(rect3.left) + dart.notNull(rect3.width) / 2 - dart.notNull(textSize3.width) / 2, dart.notNull(rect3.top) + dart.notNull(rect3.height) / 2 - dart.notNull(textSize3.height) / 2);
          point.dataLabelRegion3 = new ui.Rect.fromLTWH(point.labelLocation3.x, point.labelLocation3.y, textSize3.width, textSize3.height);
          point.labelFillRect3 = charts._rectToRrect(rect3, dataLabel.borderRadius);
        }
        let fillRect4 = charts._calculatePaddedFillRect(rect4, dataLabel.borderRadius, margin);
        point.labelLocation4 = new charts._ChartLocation.new(dart.notNull(fillRect4.center.dx) - dart.notNull(textSize4.width) / 2, dart.notNull(fillRect4.center.dy) - dart.notNull(textSize4.height) / 2);
        point.dataLabelRegion4 = new ui.Rect.fromLTWH(point.labelLocation4.x, point.labelLocation4.y, textSize4.width, textSize4.height);
        if (dart.equals(margin, C896 || CT.C896)) {
          point.labelFillRect4 = fillRect4;
        } else {
          let rect4 = fillRect4.middleRect;
          point.labelLocation4 = new charts._ChartLocation.new(dart.notNull(rect4.left) + dart.notNull(rect4.width) / 2 - dart.notNull(textSize4.width) / 2, dart.notNull(rect4.top) + dart.notNull(rect4.height) / 2 - dart.notNull(textSize4.height) / 2);
          point.dataLabelRegion4 = new ui.Rect.fromLTWH(point.labelLocation4.x, point.labelLocation4.y, textSize4.width, textSize4.height);
          point.labelFillRect4 = charts._rectToRrect(rect4, dataLabel.borderRadius);
        }
      }
    } else {
      if (series[_seriesType$] === "candle" && dart.test(chart[_requireInvertedAxis]) && dart.dtest(dart.dsend(point.close, '>', [point.high]))) {
        point.labelLocation = new charts._ChartLocation.new(dart.notNull(rect.left) - dart.notNull(rect.width) - dart.notNull(textSize.width) - 2, dart.notNull(rect.top) + dart.notNull(rect.height) / 2 - dart.notNull(textSize.height) / 2);
      } else if (series[_seriesType$] === "candle" && !dart.test(chart[_requireInvertedAxis]) && dart.dtest(dart.dsend(point.close, '>', [point.high]))) {
        point.labelLocation = new charts._ChartLocation.new(dart.notNull(rect.left) + dart.notNull(rect.width) / 2 - dart.notNull(textSize.width) / 2, dart.notNull(rect.top) + dart.notNull(rect.height) + dart.notNull(textSize.height) / 2);
      } else {
        point.labelLocation = new charts._ChartLocation.new(dart.notNull(rect.left) + dart.notNull(rect.width) / 2 - dart.notNull(textSize.width) / 2, dart.notNull(rect.top) + dart.notNull(rect.height) / 2 - dart.notNull(textSize.height) / 2);
      }
      point.dataLabelRegion = new ui.Rect.fromLTWH(point.labelLocation.x, point.labelLocation.y, textSize.width, textSize.height);
      if (dart.test(isRangeSeries)) {
        if (series[_seriesType$] === "candle" && dart.test(chart[_requireInvertedAxis]) && dart.dtest(dart.dsend(point.close, '>', [point.high]))) {
          point.labelLocation2 = new charts._ChartLocation.new(dart.notNull(rect2.left) + dart.notNull(rect2.width) + dart.notNull(textSize2.width) + 2, dart.notNull(rect2.top) + dart.notNull(rect2.height) / 2 - dart.notNull(textSize2.height) / 2);
        } else if (series[_seriesType$] === "candle" && !dart.test(chart[_requireInvertedAxis]) && dart.dtest(dart.dsend(point.close, '>', [point.high]))) {
          point.labelLocation2 = new charts._ChartLocation.new(dart.notNull(rect2.left) + dart.notNull(rect2.width) / 2 - dart.notNull(textSize2.width) / 2, dart.notNull(rect2.top) - dart.notNull(rect2.height) - dart.notNull(textSize2.height));
        } else {
          point.labelLocation2 = new charts._ChartLocation.new(dart.notNull(rect2.left) + dart.notNull(rect2.width) / 2 - dart.notNull(textSize2.width) / 2, dart.notNull(rect2.top) + dart.notNull(rect2.height) / 2 - dart.notNull(textSize2.height) / 2);
        }
        point.dataLabelRegion2 = new ui.Rect.fromLTWH(point.labelLocation2.x, point.labelLocation2.y, textSize2.width, textSize2.height);
      }
      if (series[_seriesType$][$contains]("candle") || series[_seriesType$][$contains]("hilo") && (rect3 != null || rect4 != null)) {
        point.labelLocation3 = new charts._ChartLocation.new(dart.notNull(rect3.left) + dart.notNull(rect3.width) / 2 - dart.notNull(textSize3.width) / 2, dart.notNull(rect3.top) + dart.notNull(rect3.height) / 2 - dart.notNull(textSize3.height) / 2);
        point.dataLabelRegion3 = new ui.Rect.fromLTWH(point.labelLocation3.x, point.labelLocation3.y, textSize3.width, textSize3.height);
        point.labelLocation4 = new charts._ChartLocation.new(dart.notNull(rect4.left) + dart.notNull(rect4.width) / 2 - dart.notNull(textSize4.width) / 2, dart.notNull(rect4.top) + dart.notNull(rect4.height) / 2 - dart.notNull(textSize4.height) / 2);
        point.dataLabelRegion4 = new ui.Rect.fromLTWH(point.labelLocation4.x, point.labelLocation4.y, textSize4.width, textSize4.height);
      }
    }
  };
  charts._calculatePathPosition = function _calculatePathPosition(labelLocation, position, size, borderWidth, series, index, inverted, point, chart, currentPoint, markerSize) {
    let needFill = series.dataLabelSettings.color != null || !dart.equals(series.dataLabelSettings.color, colors$.Colors.transparent) || dart.test(series.dataLabelSettings.useSeriesColor);
    let fillSpace = needFill ? 5 : 0;
    if (series[_seriesType$][$contains]("area") && series[_seriesType$] !== "rangearea" && dart.test(series[_yAxis$].isInversed)) {
      position = dart.equals(position, charts.ChartDataLabelAlignment.top) ? charts.ChartDataLabelAlignment.bottom : dart.equals(position, charts.ChartDataLabelAlignment.bottom) ? charts.ChartDataLabelAlignment.top : position;
    }
    position = chart[_chartSeries].visibleSeries[$length] === 1 && (series[_seriesType$] === "stackedarea100" || series[_seriesType$] === "stackedline100") && dart.equals(position, charts.ChartDataLabelAlignment.auto) ? charts.ChartDataLabelAlignment.bottom : position;
    switch (position) {
      case C872 || CT.C872:
      case C871 || CT.C871:
      {
        labelLocation = dart.notNull(labelLocation) - dart.notNull(markerSize.height) - dart.notNull(borderWidth) - dart.notNull(size.height) / 2 - 5 - fillSpace;
        break;
      }
      case C873 || CT.C873:
      {
        labelLocation = dart.notNull(labelLocation) + dart.notNull(markerSize.height) + dart.notNull(borderWidth) + dart.notNull(size.height) / 2 + 5 + fillSpace;
        break;
      }
      case C549 || CT.C549:
      {
        labelLocation = charts._calculatePathActualPosition(series, size, index, inverted, borderWidth, point, chart, currentPoint, series[_yAxis$].isInversed);
        break;
      }
      case C874 || CT.C874:
      {
        break;
      }
    }
    return labelLocation;
  };
  charts._calculateAlignment = function _calculateAlignment(value, labelLocation, alignment, isMinus, inverted) {
    switch (alignment) {
      case C860 || CT.C860:
      {
        labelLocation = !dart.test(inverted) ? dart.test(isMinus) ? dart.notNull(labelLocation) + dart.notNull(value) : dart.notNull(labelLocation) - dart.notNull(value) : dart.test(isMinus) ? dart.notNull(labelLocation) - dart.notNull(value) : dart.notNull(labelLocation) + dart.notNull(value);
        break;
      }
      case C859 || CT.C859:
      {
        labelLocation = !dart.test(inverted) ? dart.test(isMinus) ? dart.notNull(labelLocation) - dart.notNull(value) : dart.notNull(labelLocation) + dart.notNull(value) : dart.test(isMinus) ? dart.notNull(labelLocation) + dart.notNull(value) : dart.notNull(labelLocation) - dart.notNull(value);
        break;
      }
      case C355 || CT.C355:
      {
        labelLocation = labelLocation;
        break;
      }
    }
    return labelLocation;
  };
  charts._calculatePathActualPosition = function _calculatePathActualPosition(series, size, index, inverted, borderWidth, point, chart, currentPoint, inversed) {
    let yLocation = null;
    let isBottom = null;
    let isOverLap = true;
    let labelRect = null;
    let positionIndex = null;
    let position = charts._getActualPathDataLabelAlignment(series, index, inversed);
    isBottom = dart.equals(position, charts.ChartDataLabelAlignment.bottom);
    let dataLabelPosition = ListOfString().new(5);
    dataLabelPosition[$_set](0, "DataLabelPosition.Outer");
    dataLabelPosition[$_set](1, "DataLabelPosition.Top");
    dataLabelPosition[$_set](2, "DataLabelPosition.Bottom");
    dataLabelPosition[$_set](3, "DataLabelPosition.Middle");
    dataLabelPosition[$_set](4, "DataLabelPosition.Auto");
    positionIndex = dataLabelPosition[$indexOf](dart.toString(position))[$toInt]();
    while (isOverLap && dart.notNull(positionIndex) < 4) {
      yLocation = charts._calculatePathPosition(point.y[$toDouble](), position, size, borderWidth, series, index, inverted, point, chart, currentPoint, new ui.Size.new(dart.notNull(series.markerSettings.width) / 2, dart.notNull(series.markerSettings.height) / 2));
      labelRect = charts._calculateLabelRect(new charts._ChartLocation.new(point.x, yLocation), size, series.dataLabelSettings.margin, series.dataLabelSettings.color != null || dart.test(series.dataLabelSettings.useSeriesColor));
      isOverLap = dart.notNull(labelRect.top) < 0 || dart.notNull(labelRect.top) + dart.notNull(labelRect.height) > dart.notNull(chart[_chartAxis][_axisClipRect].height) || dart.test(charts._isCollide(labelRect, chart[_chartState].renderDatalabelRegions));
      positionIndex = dart.test(isBottom) ? dart.notNull(positionIndex) - 1 : dart.notNull(positionIndex) + 1;
      isBottom = false;
    }
    return yLocation;
  };
  charts._getActualPathDataLabelAlignment = function _getActualPathDataLabelAlignment(series, index, inversed) {
    let points = series[_dataPoints$];
    let yValue = core.num._check(points[$_get](index).yValue);
    let nextPoint = dart.notNull(points[$length]) - 1 > dart.notNull(index) ? points[$_get](dart.notNull(index) + 1) : null;
    let previousPoint = dart.notNull(index) > 0 ? points[$_get](dart.notNull(index) - 1) : null;
    let position = null;
    if (series[_seriesType$] === "bubble" || index === dart.notNull(points[$length]) - 1) {
      position = charts.ChartDataLabelAlignment.top;
    } else {
      if (index === 0) {
        position = !dart.test(nextPoint.isVisible) || dart.notNull(yValue) > dart.notNull(core.num._check(nextPoint.yValue)) || dart.notNull(yValue) < dart.notNull(core.num._check(nextPoint.yValue)) && dart.test(inversed) ? charts.ChartDataLabelAlignment.top : charts.ChartDataLabelAlignment.bottom;
      } else if (index === dart.notNull(points[$length]) - 1) {
        position = !dart.test(previousPoint.isVisible) || dart.notNull(yValue) > dart.notNull(core.num._check(previousPoint.yValue)) || dart.notNull(yValue) < dart.notNull(core.num._check(previousPoint.yValue)) && dart.test(inversed) ? charts.ChartDataLabelAlignment.top : charts.ChartDataLabelAlignment.bottom;
      } else {
        if (!dart.test(nextPoint.isVisible) && !dart.test(previousPoint.isVisible)) {
          position = charts.ChartDataLabelAlignment.top;
        } else if (!dart.test(nextPoint.isVisible)) {
          position = dart.dtest(dart.dsend(nextPoint.yValue, '>', [yValue])) || dart.dtest(dart.dsend(previousPoint.yValue, '>', [yValue])) ? charts.ChartDataLabelAlignment.bottom : charts.ChartDataLabelAlignment.top;
        } else {
          let slope = core.num._check(dart.dsend(dart.dsend(nextPoint.yValue, '-', [previousPoint.yValue]), '/', [2]));
          let intersectY = dart.notNull(slope) * dart.notNull(index) + dart.notNull(core.num._check(dart.dsend(nextPoint.yValue, '-', [dart.notNull(slope) * (dart.notNull(index) + 1)])));
          position = !dart.test(inversed) ? intersectY < dart.notNull(yValue) ? charts.ChartDataLabelAlignment.top : charts.ChartDataLabelAlignment.bottom : intersectY < dart.notNull(yValue) ? charts.ChartDataLabelAlignment.bottom : charts.ChartDataLabelAlignment.top;
        }
      }
    }
    return position;
  };
  charts._getPosition = function _getPosition(position) {
    let dataLabelPosition = null;
    switch (position) {
      case 0:
      {
        dataLabelPosition = charts.ChartDataLabelAlignment.outer;
        break;
      }
      case 1:
      {
        dataLabelPosition = charts.ChartDataLabelAlignment.top;
        break;
      }
      case 2:
      {
        dataLabelPosition = charts.ChartDataLabelAlignment.bottom;
        break;
      }
      case 3:
      {
        dataLabelPosition = charts.ChartDataLabelAlignment.middle;
        break;
      }
      case 4:
      {
        dataLabelPosition = charts.ChartDataLabelAlignment.auto;
        break;
      }
    }
    return dataLabelPosition;
  };
  charts._calculateLabelRect = function _calculateLabelRect(location, textSize, margin, needRect) {
    return dart.test(needRect) ? new ui.Rect.fromLTWH(dart.notNull(location.x) - dart.notNull(textSize.width) / 2 - dart.notNull(margin.left), dart.notNull(location.y) - dart.notNull(textSize.height) / 2 - dart.notNull(margin.top), dart.notNull(textSize.width) + dart.notNull(margin.left) + dart.notNull(margin.right), dart.notNull(textSize.height) + dart.notNull(margin.top) + dart.notNull(margin.bottom)) : new ui.Rect.fromLTWH(dart.notNull(location.x) - dart.notNull(textSize.width) / 2, dart.notNull(location.y) - dart.notNull(textSize.height) / 2, textSize.width, textSize.height);
  };
  charts._drawDataLabel = function _drawDataLabel(canvas, series, chart, dataLabel, point, index, dataLabelAnimation) {
    let t7;
    let opacity = dataLabelAnimation != null ? dataLabelAnimation.value : 1.0;
    let dataLabelArgs = null;
    let dataLabelStyle = null;
    let label = (t7 = point.dataLabelMapper, t7 == null ? point.label : t7);
    dataLabelStyle = dataLabel.textStyle;
    if (chart.onDataLabelRender != null) {
      dataLabelArgs = new charts.DataLabelRenderArgs.new();
      dataLabelArgs.text = label;
      dataLabelArgs.textStyle = dataLabelStyle;
      dataLabelArgs.series = series;
      dataLabelArgs.dataPoints = series[_dataPoints$];
      dataLabelArgs.pointIndex = index;
      chart.onDataLabelRender(dataLabelArgs);
      label = point.label = dataLabelArgs.text;
      dataLabelStyle = dataLabelArgs.textStyle;
      index = dart.asInt(dataLabelArgs.pointIndex);
    }
    if (label != null && point != null && dart.test(point.isVisible) && !dart.equals(point.isGap, true) && dart.test(charts._isLabelWithinRange(charts.XyDataSeries._check(series), point))) {
      let font = dataLabelStyle == null ? new charts.ChartTextStyle.new() : dataLabelStyle;
      let fontColor = font.color != null ? font.color : charts._getDataLabelSaturationColor(point, charts.XyDataSeries._check(series), chart);
      let labelRect = point.labelFillRect != null ? new ui.Rect.fromLTWH(point.labelFillRect.left, point.labelFillRect.top, point.labelFillRect.width, point.labelFillRect.height) : new ui.Rect.fromLTWH(point.labelLocation.x, point.labelLocation.y, point.dataLabelRegion.width, point.dataLabelRegion.height);
      let isDatalabelCollide = charts._isCollide(labelRect, chart[_chartState].renderDatalabelRegions);
      if (label[$isNotEmpty] && dart.test(isDatalabelCollide) ? dart.equals(dataLabel.labelIntersectAction, charts.LabelIntersectAction.none) : true) {
        let textStyle = new charts.ChartTextStyle.new({color: fontColor.withOpacity(opacity), fontSize: font.fontSize, fontFamily: font.fontFamily, fontStyle: font.fontStyle, fontWeight: font.fontWeight});
        charts._drawDataLabelPath(canvas, series, index, dataLabel, point, textStyle, opacity, label, chart);
        chart[_chartState].renderDatalabelRegions[$add](labelRect);
      }
    }
  };
  charts._drawDataLabelPath = function _drawDataLabelPath(canvas, series, index, dataLabel, point, textStyle, opacity, label, chart = null) {
    let t7, t7$, t7$0, t7$1, t9, t8, t7$2;
    let label2 = (t7 = point.dataLabelMapper, t7 == null ? point.label2 : t7);
    let label3 = (t7$ = point.dataLabelMapper, t7$ == null ? point.label3 : t7$);
    let label4 = (t7$0 = point.dataLabelMapper, t7$0 == null ? point.label4 : t7$0);
    let isRangeSeries = series[_seriesType$][$contains]("range") || series[_seriesType$][$contains]("hilo") || series[_seriesType$][$contains]("candle");
    if (dataLabel.color != null || dart.test(dataLabel.useSeriesColor) || dataLabel.borderColor != null && dart.notNull(dataLabel.borderWidth) > 0) {
      let fillRect = point.labelFillRect;
      let path = ui.Path.new();
      path.addRRect(fillRect);
      let fillRect2 = point.labelFillRect2;
      let path2 = ui.Path.new();
      if (isRangeSeries) {
        path2.addRRect(fillRect2);
      }
      let fillRect3 = point.labelFillRect3;
      let path3 = ui.Path.new();
      let fillRect4 = point.labelFillRect4;
      let path4 = ui.Path.new();
      if (series[_seriesType$][$contains]("hilo") || series[_seriesType$][$contains]("candle")) {
        path3.addRRect(fillRect3);
        path4.addRRect(fillRect4);
      }
      if (dataLabel.borderColor != null && dart.notNull(dataLabel.borderWidth) > 0) {
        let strokePaint = (t7$1 = ui.Paint.new(), t7$1.color = dataLabel.borderColor.withOpacity(dart.notNull(opacity) - (1 - dart.notNull(dataLabel.opacity)) < 0 ? 0.0 : dart.notNull(opacity) - (1 - dart.notNull(dataLabel.opacity))), t7$1.strokeWidth = dataLabel.borderWidth, t7$1.style = ui.PaintingStyle.stroke, t7$1);
        dataLabel.borderWidth === 0 ? strokePaint.color = colors$.Colors.transparent : strokePaint.color = strokePaint.color;
        canvas.drawPath(path, strokePaint);
        if (isRangeSeries) {
          canvas.drawPath(path2, strokePaint);
        }
      }
      if (dataLabel.color != null || dart.test(dataLabel.useSeriesColor)) {
        let paint = (t7$2 = ui.Paint.new(), t7$2.color = (t8 = dataLabel.color, t8 == null ? (t9 = point.pointColorMapper, t9 == null ? series[_seriesColor] : t9) : t8).withOpacity(dart.notNull(opacity) - (1 - dart.notNull(dataLabel.opacity)) < 0 ? 0.0 : dart.notNull(opacity) - (1 - dart.notNull(dataLabel.opacity))), t7$2.style = ui.PaintingStyle.fill, t7$2);
        canvas.drawPath(path, paint);
        if (isRangeSeries) {
          canvas.drawPath(path2, paint);
        }
      }
    }
    series.drawDataLabel(index, canvas, label, dataLabel.angle !== 0 ? point.dataLabelRegion.center.dx : point.labelLocation.x, dataLabel.angle !== 0 ? point.dataLabelRegion.center.dy : point.labelLocation.y, dataLabel.angle, textStyle);
    if (isRangeSeries) {
      series.drawDataLabel(index, canvas, label2, point.labelLocation2.x, point.labelLocation2.y, dataLabel.angle, textStyle);
      if (series[_seriesType$] === "hiloopenclose" && (label3 != null && label4 != null && (dart.notNull(point.labelLocation3.y) - dart.notNull(point.labelLocation4.y))[$round]() >= 8 || (dart.notNull(point.labelLocation4.x) - dart.notNull(point.labelLocation3.x))[$round]() >= 15)) {
        series.drawDataLabel(index, canvas, label3, point.labelLocation3.x, point.labelLocation3.y, dataLabel.angle, textStyle);
        series.drawDataLabel(index, canvas, label4, point.labelLocation4.x, point.labelLocation4.y, dataLabel.angle, textStyle);
      } else if (label3 != null && label4 != null && ((dart.notNull(point.labelLocation3.y) - dart.notNull(point.labelLocation4.y))[$round]() >= 8 || (dart.notNull(point.labelLocation4.x) - dart.notNull(point.labelLocation3.x))[$round]() >= 15)) {
        let fontColor = charts._getOpenCloseDataLabelColor(point, charts.XyDataSeries._check(series), chart);
        let textStyleOpenClose = new charts.ChartTextStyle.new({color: fontColor.withOpacity(opacity), fontSize: textStyle.fontSize, fontFamily: textStyle.fontFamily, fontStyle: textStyle.fontStyle, fontWeight: textStyle.fontWeight});
        if ((dart.notNull(point.labelLocation2.y) - dart.notNull(point.labelLocation3.y))[$abs]() >= 8 || (dart.notNull(point.labelLocation2.x) - dart.notNull(point.labelLocation3.x))[$abs]() >= 8) {
          series.drawDataLabel(index, canvas, label3, point.labelLocation3.x, point.labelLocation3.y, dataLabel.angle, textStyleOpenClose);
        }
        if ((dart.notNull(point.labelLocation.y) - dart.notNull(point.labelLocation4.y))[$abs]() >= 8 || (dart.notNull(point.labelLocation.x) - dart.notNull(point.labelLocation4.x))[$abs]() >= 8) {
          series.drawDataLabel(index, canvas, label4, point.labelLocation4.x, point.labelLocation4.y, dataLabel.angle, textStyleOpenClose);
        }
      }
    }
  };
  charts._getLabelText = function _getLabelText(labelValue, series, chart) {
    if (dart.notNull(dart.toString(labelValue)[$split](".")[$length]) > 1) {
      let str = dart.toString(labelValue);
      let list = str[$split](".");
      labelValue = core.double.parse(core.String._check(dart.dsend(labelValue, 'toStringAsFixed', [6])));
      if (dart.equals(list[$_get](1), "0") || dart.equals(list[$_get](1), "00") || dart.equals(list[$_get](1), "000") || dart.equals(list[$_get](1), "0000") || dart.equals(list[$_get](1), "00000") || dart.equals(list[$_get](1), "000000")) {
        labelValue = dart.dsend(labelValue, 'round', []);
      }
    }
    let yAxis = series[_yAxis$];
    let value = dart.dload(yAxis, 'numberFormat') != null ? dart.dsend(dart.dload(yAxis, 'numberFormat'), 'format', [labelValue]) : labelValue;
    return core.String._check(dart.dload(yAxis, 'labelFormat') != null && !dart.equals(dart.dload(yAxis, 'labelFormat'), "") ? dart.dsend(dart.dload(yAxis, 'labelFormat'), 'replaceAll', [core.RegExp.new("{value}"), dart.toString(value)]) : dart.toString(value));
  };
  charts._calculateRectPosition = function _calculateRectPosition(labelLocation, rect, isMinus, position, series, textSize, borderWidth, index, point, chart, inverted, margin) {
    let padding = null;
    padding = series[_seriesType$][$contains]("hilo") || series[_seriesType$][$contains]("candle") || series[_seriesType$][$contains]("rangecolumn") ? 2.0 : 5.0;
    let needFill = series.dataLabelSettings.color != null || !dart.equals(series.dataLabelSettings.color, colors$.Colors.transparent) || dart.test(series.dataLabelSettings.useSeriesColor);
    let textLength = !dart.test(inverted) ? textSize.height : textSize.width;
    let extraSpace = dart.notNull(borderWidth) + dart.notNull(textLength) / 2 + dart.notNull(padding) + dart.notNull(needFill ? padding : 0);
    if (series[_seriesType$][$contains]("stack")) {
      position = dart.equals(position, charts.ChartDataLabelAlignment.outer) ? charts.ChartDataLabelAlignment.top : position;
    }
    switch (position) {
      case C873 || CT.C873:
      {
        labelLocation = !dart.test(inverted) ? dart.test(isMinus) ? dart.notNull(labelLocation) - dart.notNull(rect.height) + extraSpace : dart.notNull(labelLocation) + dart.notNull(rect.height) - extraSpace : dart.test(isMinus) ? dart.notNull(labelLocation) + dart.notNull(rect.width) - extraSpace : dart.notNull(labelLocation) - dart.notNull(rect.width) + extraSpace;
        break;
      }
      case C874 || CT.C874:
      {
        labelLocation = !dart.test(inverted) ? dart.test(isMinus) ? dart.notNull(labelLocation) - dart.notNull(rect.height) / 2 : dart.notNull(labelLocation) + dart.notNull(rect.height) / 2 : dart.test(isMinus) ? dart.notNull(labelLocation) + dart.notNull(rect.width) / 2 : dart.notNull(labelLocation) - dart.notNull(rect.width) / 2;
        break;
      }
      case C549 || CT.C549:
      {
        labelLocation = charts._calculateRectActualPosition(labelLocation, rect, isMinus, series, textSize, index, point, inverted, borderWidth, chart, margin);
        break;
      }
      default:
      {
        labelLocation = charts._calculateTopAndOuterPosition(textSize, labelLocation, rect, position, series, index, extraSpace, isMinus, point, inverted, borderWidth, chart);
        break;
      }
    }
    return labelLocation;
  };
  charts._calculateRectActualPosition = function _calculateRectActualPosition(labelLocation, rect, minus, series, textSize, index, point, inverted, borderWidth, chart, margin) {
    let location = null;
    let labelRect = null;
    let isOverLap = true;
    let position = 0;
    let finalPosition = series[_seriesType$][$contains]("range") ? 2 : 4;
    while (isOverLap && position < finalPosition) {
      location = charts._calculateRectPosition(labelLocation, rect, minus, charts._getPosition(position), series, textSize, borderWidth, index, point, chart, inverted, margin);
      if (!dart.test(inverted)) {
        labelRect = charts._calculateLabelRect(new charts._ChartLocation.new(point.x, location), textSize, margin, series.dataLabelSettings.color != null || dart.test(series.dataLabelSettings.useSeriesColor));
        isOverLap = dart.notNull(labelRect.top) < 0 || dart.notNull(labelRect.top) > dart.notNull(chart[_chartAxis][_axisClipRect].height) || dart.test(charts._isCollide(labelRect, chart[_chartState].renderDatalabelRegions));
      } else {
        labelRect = charts._calculateLabelRect(new charts._ChartLocation.new(location, point.y), textSize, margin, series.dataLabelSettings.color != null || dart.test(series.dataLabelSettings.useSeriesColor));
        isOverLap = dart.notNull(labelRect.left) < 0 || dart.notNull(labelRect.left) + dart.notNull(labelRect.width) > dart.notNull(chart[_chartAxis][_axisClipRect].right) || dart.test(charts._isCollide(labelRect, chart[_chartState].renderDatalabelRegions));
      }
      series[_dataPoints$][$_get](index).dataLabelSaturationRegionInside = isOverLap || dart.test(series[_dataPoints$][$_get](index).dataLabelSaturationRegionInside) ? true : false;
      position = position + 1;
    }
    return location;
  };
  charts._calculateTopAndOuterPosition = function _calculateTopAndOuterPosition(textSize, location, rect, position, series, index, extraSpace, isMinus, point, inverted, borderWidth, chart) {
    let markerHeight = dart.test(series.markerSettings.isVisible) ? dart.notNull(series.markerSettings.height) / 2 : 0;
    if (dart.test(isMinus) && !series[_seriesType$][$contains]("range") && dart.equals(position, charts.ChartDataLabelAlignment.top) || (!dart.test(isMinus) || series[_seriesType$][$contains]("range")) && dart.equals(position, charts.ChartDataLabelAlignment.outer)) {
      location = !dart.test(inverted) ? dart.notNull(location) - dart.notNull(extraSpace) - markerHeight : dart.notNull(location) + dart.notNull(extraSpace) + markerHeight;
    } else {
      location = !dart.test(inverted) ? dart.notNull(location) + dart.notNull(extraSpace) + markerHeight : dart.notNull(location) - dart.notNull(extraSpace) - markerHeight;
    }
    return location;
  };
  charts._calculatePaddedFillRect = function _calculatePaddedFillRect(rect, radius, margin) {
    rect = new ui.Rect.fromLTRB(dart.notNull(rect.left) - dart.notNull(margin.left), dart.notNull(rect.top) - dart.notNull(margin.top), dart.notNull(rect.right) + dart.notNull(margin.right), dart.notNull(rect.bottom) + dart.notNull(margin.bottom));
    return charts._rectToRrect(rect, radius);
  };
  charts._rectToRrect = function _rectToRrect(rect, radius) {
    return new ui.RRect.fromRectAndCorners(rect, {topLeft: new ui.Radius.elliptical(radius, radius), topRight: new ui.Radius.elliptical(radius, radius), bottomLeft: new ui.Radius.elliptical(radius, radius), bottomRight: new ui.Radius.elliptical(radius, radius)});
  };
  charts._validateRect = function _validateRect$(rect, clipRect) {
    let left = null;
    let top = null;
    left = dart.notNull(rect.left) < dart.notNull(clipRect.left) ? dart.notNull(clipRect.left) + 5 : rect.left;
    top = dart.notNull(core.double.parse(rect.top[$toStringAsFixed](2))) < dart.notNull(clipRect.top) ? dart.notNull(clipRect.top) + 5 : rect.top;
    left = dart.notNull(left) - (dart.notNull(core.double.parse(left[$toStringAsFixed](2))) + dart.notNull(rect.width) > dart.notNull(clipRect.right) ? dart.notNull(core.double.parse(left[$toStringAsFixed](2))) + dart.notNull(rect.width) - dart.notNull(clipRect.right) : 0);
    top = dart.notNull(top) - (dart.notNull(core.double.parse(top[$toStringAsFixed](2))) + dart.notNull(rect.height) > dart.notNull(clipRect.bottom) ? dart.notNull(core.double.parse(top[$toStringAsFixed](2))) + dart.notNull(rect.height) - dart.notNull(clipRect.bottom) + 5 : 0);
    left = dart.notNull(left) < dart.notNull(clipRect.left) ? dart.notNull(clipRect.left) + 5 : left;
    rect = new ui.Rect.fromLTWH(left, top, rect.width, rect.height);
    return rect;
  };
  charts._isLabelWithinRange = function _isLabelWithinRange(series, point) {
    let withInRange = true;
    if (!charts.LogarithmicAxis.is(series[_yAxis$])) {
      withInRange = dart.test(charts._withIn(core.num._check(point.xValue), series[_xAxis$][_visibleRange])) && dart.test(series[_seriesType$][$contains]("range") || series[_seriesType$] === "hilo" ? dart.test(charts._withIn(core.num._check(point.low), series[_yAxis$][_visibleRange])) && dart.test(charts._withIn(core.num._check(point.high), series[_yAxis$][_visibleRange])) : series[_seriesType$] === "hiloopenclose" || series[_seriesType$][$contains]("candle") ? dart.test(charts._withIn(core.num._check(point.low), series[_yAxis$][_visibleRange])) && dart.test(charts._withIn(core.num._check(point.high), series[_yAxis$][_visibleRange])) && dart.test(charts._withIn(core.num._check(point.open), series[_yAxis$][_visibleRange])) && dart.test(charts._withIn(core.num._check(point.close), series[_yAxis$][_visibleRange])) : charts._withIn(core.num._check(point.yValue), series[_yAxis$][_visibleRange]));
    }
    return withInRange;
  };
  charts._calculateSeriesRegion = function _calculateSeriesRegion(chart, index) {
    let t7;
    let palette = chart.palette;
    let series = charts.XyDataSeries._check(chart[_chartSeries].visibleSeries[$_get](index));
    series[_chart] = chart;
    let seriesIndex = series[_chart][_chartSeries].visibleSeries[$indexOf](series);
    series[_seriesColor] = (t7 = series.color, t7 == null ? palette[$_get](index[$modulo](palette[$length])) : t7);
    let xAxis = series[_xAxis$];
    let yAxis = series[_yAxis$];
    let rect = charts._calculatePlotOffset(chart[_chartAxis][_axisClipRect], new ui.Offset.new(xAxis.plotOffset, yAxis.plotOffset));
    series[_isRectSeries] = series[_seriesType$] === "column" || series[_seriesType$] === "bar" || series[_seriesType$][$contains]("stackedcolumn") || series[_seriesType$][$contains]("stackedbar") || series[_seriesType$] === "rangecolumn" ? true : false;
    series[_regionalData] = new _js_helper.LinkedMap.new();
    let point = null;
    let markerHeight = series.markerSettings.height;
    let markerWidth = series.markerSettings.width;
    let isPointSeries = series[_seriesType$] === "scatter" || series[_seriesType$] === "bubble" ? true : false;
    let isFastLine = series[_seriesType$] === "fastline" ? true : false;
    if ((!isFastLine || isFastLine && (dart.test(series.markerSettings.isVisible) || dart.test(series.dataLabelSettings.isVisible) || dart.test(series.enableTooltip))) && dart.test(series[_visible])) {
      for (let pointIndex = 0; pointIndex < dart.notNull(series[_dataPoints$][$length]); pointIndex = pointIndex + 1) {
        point = series[_dataPoints$][$_get](pointIndex);
        if (dart.test(series[_isRectSeries])) {
          charts._calculateRectSeriesRegion(point, pointIndex, series, chart);
        } else if (isPointSeries) {
          charts._calculatePointSeriesRegion(point, pointIndex, series, chart, rect);
        } else {
          charts._calculatePathSeriesRegion(point, pointIndex, series, chart, rect, markerHeight, markerWidth);
        }
        charts._calculateTooltipRegion(point, seriesIndex, series, chart);
      }
      let trendlinePoint = null;
      if (series.trendlines != null) {
        for (let j = 0; j < dart.notNull(series.trendlines[$length]); j = j + 1) {
          if (dart.test(series.trendlines[$_get](j)[_isNeedRender])) {
            if (series.trendlines[$_get](j)[_pointsData] != null) {
              for (let k = 0; k < dart.notNull(series.trendlines[$_get](j)[_pointsData][$length]); k = k + 1) {
                trendlinePoint = series.trendlines[$_get](j)[_pointsData][$_get](k);
                charts._calculateTooltipRegion(trendlinePoint, seriesIndex, series, chart, series.trendlines[$_get](j), j);
              }
            }
          }
        }
      }
      charts._storeMarkerRegion(series, index);
    }
  };
  charts._calculateRectSeriesRegion = function _calculateRectSeriesRegion(point, pointIndex, series, chart) {
    let t7, t7$;
    let xAxis = series[_xAxis$];
    let yAxis = series[_yAxis$];
    let sideBySideInfo = charts._calculateSideBySideInfo(series, chart);
    let origin = math.max(core.num, core.num._check(yAxis[_visibleRange].minimum), 0);
    let rect = series[_seriesType$][$contains]("stackedcolumn") || series[_seriesType$][$contains]("stackedbar") ? charts._calculateRectangle(core.num._check(dart.dsend(point.xValue, '+', [sideBySideInfo.minimum])), series[_stackingValues$][$_get](0).endValues[$_get](pointIndex), core.num._check(dart.dsend(point.xValue, '+', [sideBySideInfo.maximum])), series[_stackingValues$][$_get](0).startValues[$_get](pointIndex), series, chart) : charts._calculateRectangle(core.num._check(dart.dsend(point.xValue, '+', [sideBySideInfo.minimum])), core.num._check(series[_seriesType$] === "rangecolumn" ? point.high : point.yValue), core.num._check(dart.dsend(point.xValue, '+', [sideBySideInfo.maximum])), core.num._check(series[_seriesType$] === "rangecolumn" ? point.low : origin), series, chart);
    point.region = rect;
    if (series[_seriesType$] !== "stackedcolumn100" && series[_seriesType$] !== "stackedbar100") {
      let shadowPointRect = charts._calculateShadowRectangle(core.num._check(dart.dsend(point.xValue, '+', [sideBySideInfo.minimum])), core.num._check(series[_seriesType$] === "rangecolumn" ? point.high : point.yValue), core.num._check(dart.dsend(point.xValue, '+', [sideBySideInfo.maximum])), core.num._check(series[_seriesType$] === "rangecolumn" ? point.high : origin), series, chart, new ui.Offset.new((t7 = xAxis, t7 == null ? null : t7.plotOffset), (t7$ = yAxis, t7$ == null ? null : t7$.plotOffset)));
      point.trackerRectRegion = shadowPointRect;
    }
    if (series[_seriesType$] === "rangecolumn" || series[_seriesType$][$contains]("hilo") || series[_seriesType$][$contains]("candle")) {
      point.markerPoint = !dart.equals(chart[_requireInvertedAxis], true) ? new charts._ChartLocation.new(rect.topCenter.dx, rect.topCenter.dy) : new charts._ChartLocation.new(rect.centerRight.dx, rect.centerRight.dy);
      point.markerPoint2 = !dart.equals(chart[_requireInvertedAxis], true) ? new charts._ChartLocation.new(rect.bottomCenter.dx, rect.bottomCenter.dy) : new charts._ChartLocation.new(rect.centerLeft.dx, rect.centerLeft.dy);
    } else {
      point.markerPoint = !dart.equals(chart[_requireInvertedAxis], true) ? dart.test(yAxis.isInversed) ? dart.dtest(dart.dload(point.yValue, 'isNegative')) ? new charts._ChartLocation.new(rect.topCenter.dx, rect.topCenter.dy) : new charts._ChartLocation.new(rect.bottomCenter.dx, rect.bottomCenter.dy) : dart.dtest(dart.dload(point.yValue, 'isNegative')) ? new charts._ChartLocation.new(rect.bottomCenter.dx, rect.bottomCenter.dy) : new charts._ChartLocation.new(rect.topCenter.dx, rect.topCenter.dy) : dart.test(yAxis.isInversed) ? dart.dtest(dart.dload(point.yValue, 'isNegative')) ? new charts._ChartLocation.new(rect.centerRight.dx, rect.centerRight.dy) : new charts._ChartLocation.new(rect.centerLeft.dx, rect.centerLeft.dy) : dart.dtest(dart.dload(point.yValue, 'isNegative')) ? new charts._ChartLocation.new(rect.centerLeft.dx, rect.centerLeft.dy) : new charts._ChartLocation.new(rect.centerRight.dx, rect.centerRight.dy);
    }
  };
  charts._calculatePointSeriesRegion = function _calculatePointSeriesRegion(point, pointIndex, series, chart, rect) {
    let t7;
    let xAxis = series[_xAxis$];
    let yAxis = series[_yAxis$];
    let currentPoint = charts._calculatePoint(core.num._check(point.xValue), core.num._check(point.yValue), xAxis, yAxis, chart[_requireInvertedAxis], series, rect);
    point.markerPoint = currentPoint;
    if (series[_seriesType$] === "scatter") {
      point.region = new ui.Rect.fromLTRB(dart.notNull(currentPoint.x) - dart.notNull(series.markerSettings.width), dart.notNull(currentPoint.y) - dart.notNull(series.markerSettings.width), dart.notNull(currentPoint.x) + dart.notNull(series.markerSettings.width), dart.notNull(currentPoint.y) + dart.notNull(series.markerSettings.width));
    } else {
      let bubbleSeries = charts.BubbleSeries._check(series);
      let bubbleRadius = null;
      let sizeRange = null;
      let radiusRange = null;
      let bubbleSize = null;
      sizeRange = dart.notNull(bubbleSeries[_maxSize]) - dart.notNull(bubbleSeries[_minSize]);
      bubbleSize = (t7 = point.bubbleSize, t7 == null ? 4.0 : t7)[$toDouble]();
      if (bubbleSeries.sizeValueMapper == null)
        bubbleSeries.minimumRadius != null ? bubbleRadius = bubbleSeries.minimumRadius : bubbleRadius = bubbleSeries.maximumRadius;
      else {
        if (bubbleSeries.maximumRadius != null && bubbleSeries.minimumRadius != null) {
          if (sizeRange === 0)
            bubbleRadius = bubbleSeries.maximumRadius;
          else {
            radiusRange = (dart.notNull(bubbleSeries.maximumRadius) - dart.notNull(bubbleSeries.minimumRadius)) * 2;
            bubbleRadius = (bubbleSize[$abs]() - dart.notNull(bubbleSeries[_minSize])) * dart.notNull(radiusRange) / dart.notNull(sizeRange) + dart.notNull(bubbleSeries.minimumRadius);
          }
        }
      }
      point.region = new ui.Rect.fromLTRB(dart.notNull(currentPoint.x) - 2 * dart.notNull(bubbleRadius), dart.notNull(currentPoint.y) - 2 * dart.notNull(bubbleRadius), dart.notNull(currentPoint.x) + 2 * dart.notNull(bubbleRadius), dart.notNull(currentPoint.y) + 2 * dart.notNull(bubbleRadius));
    }
  };
  charts._calculatePathSeriesRegion = function _calculatePathSeriesRegion(point, pointIndex, series, chart, rect, markerHeight, markerWidth) {
    let xAxis = series[_xAxis$];
    let yAxis = series[_yAxis$];
    if (series[_seriesType$] !== "rangearea" && !series[_seriesType$][$contains]("hilo") && !series[_seriesType$][$contains]("candle")) {
      let currentPoint = series[_seriesType$] === "stackedarea" || series[_seriesType$] === "stackedarea100" || series[_seriesType$] === "stackedline" || series[_seriesType$] === "stackedline100" ? charts._calculatePoint(core.num._check(point.xValue), series[_stackingValues$][$_get](0).endValues[$_get](pointIndex), xAxis, yAxis, chart[_requireInvertedAxis], series, rect) : charts._calculatePoint(core.num._check(point.xValue), core.num._check(point.yValue), xAxis, yAxis, chart[_requireInvertedAxis], series, rect);
      point.region = new ui.Rect.fromLTWH(dart.notNull(currentPoint.x) - dart.notNull(markerWidth), dart.notNull(currentPoint.y) - dart.notNull(markerHeight), 2 * dart.notNull(markerWidth), 2 * dart.notNull(markerHeight));
      point.markerPoint = currentPoint;
    } else {
      let value1 = null;
      let value2 = null;
      value1 = core.num._check(point.low != null && point.high != null && dart.dtest(dart.dsend(point.low, '<', [point.high])) ? point.high : point.low);
      value2 = core.num._check(point.low != null && point.high != null && dart.dtest(dart.dsend(point.low, '>', [point.high])) ? point.high : point.low);
      point.markerPoint = charts._calculatePoint(core.num._check(point.xValue), dart.test(yAxis.isInversed) ? value2 : value1, xAxis, yAxis, chart[_requireInvertedAxis], series, rect);
      point.markerPoint2 = charts._calculatePoint(core.num._check(point.xValue), dart.test(yAxis.isInversed) ? value1 : value2, xAxis, yAxis, chart[_requireInvertedAxis], series, rect);
      if (series[_seriesType$] === "hiloopenclose" || series[_seriesType$] === "candle" && point.open != null && point.close != null) {
        point.sideBySideInfo = charts._calculateSideBySideInfo(series, chart);
        point.openPoint = charts._calculatePoint(core.num._check(dart.dsend(point.xValue, '+', [point.sideBySideInfo.minimum])), core.num._check(point.open), series[_xAxis$], series[_yAxis$], series[_chart][_requireInvertedAxis], series, rect);
        point.closePoint = charts._calculatePoint(core.num._check(dart.dsend(point.xValue, '+', [point.sideBySideInfo.maximum])), core.num._check(point.close), series[_xAxis$], series[_yAxis$], series[_chart][_requireInvertedAxis], series, rect);
        point.centerOpenPoint = charts._calculatePoint(core.num._check(point.xValue), core.num._check(point.open), series[_xAxis$], series[_yAxis$], series[_chart][_requireInvertedAxis], series, rect);
        point.centerClosePoint = charts._calculatePoint(core.num._check(point.xValue), core.num._check(point.close), series[_xAxis$], series[_yAxis$], series[_chart][_requireInvertedAxis], series, rect);
      }
      point.region = series[_seriesType$][$contains]("hilo") || series[_seriesType$][$contains]("candle") ? !dart.test(series[_chart][_requireInvertedAxis]) ? new ui.Rect.fromLTWH(point.markerPoint.x, point.markerPoint.y, series.borderWidth, dart.notNull(point.markerPoint2.y) - dart.notNull(point.markerPoint.y)) : new ui.Rect.fromLTWH(point.markerPoint2.x, point.markerPoint2.y, (dart.notNull(point.markerPoint.x) - dart.notNull(point.markerPoint2.x))[$abs](), series.borderWidth) : new ui.Rect.fromLTRB(dart.notNull(point.markerPoint.x) - dart.notNull(markerWidth), dart.notNull(point.markerPoint.y) - dart.notNull(markerHeight), dart.notNull(point.markerPoint.x) + dart.notNull(markerWidth), point.markerPoint2.y);
    }
  };
  charts._calculateTooltipRegion = function _calculateTooltipRegion(point, seriesIndex, series, chart, trendline = null, trendlineIndex = null) {
    let t7, t7$;
    let xAxis = series[_xAxis$];
    if ((series.enableTooltip != null || series[_chart].trackballBehavior != null) && (dart.test(series.enableTooltip) || dart.test(series[_chart].trackballBehavior.enable)) && point != null && !dart.test(point.isGap) && !dart.test(point.isDrop)) {
      let isTrendline = false;
      if (trendline != null) {
        isTrendline = true;
      }
      let regionData = JSArrayOfString().of([]);
      let date = null;
      let regionRect = [];
      if (charts.DateTimeAxis.is(xAxis)) {
        let dateFormat = (t7 = xAxis.dateFormat, t7 == null ? xAxis[_getLabelFormat](xAxis) : t7);
        date = dateFormat.format(new core.DateTime.fromMillisecondsSinceEpoch(core.int._check(dart.dsend(point.xValue, 'floor', []))));
      }
      charts.CategoryAxis.is(xAxis) ? regionData[$add](dart.toString(point.x)) : charts.DateTimeAxis.is(xAxis) ? regionData[$add](dart.toString(date)) : regionData[$add](dart.toString(charts._getLabelValue(point.xValue, xAxis, chart.tooltipBehavior.decimalPlaces)));
      if (series[_seriesType$][$contains]("range") && !isTrendline || series[_seriesType$][$contains]("hilo") || series[_seriesType$][$contains]("candle")) {
        if (series[_seriesType$] !== "hiloopenclose" && series[_seriesType$] !== "candle") {
          regionData[$add](dart.toString(point.high));
          regionData[$add](dart.toString(point.low));
        } else {
          regionData[$add](dart.toString(point.high));
          regionData[$add](dart.toString(point.low));
          regionData[$add](dart.toString(point.open));
          regionData[$add](dart.toString(point.close));
        }
      } else {
        regionData[$add](dart.toString(point.yValue));
      }
      regionData[$add](isTrendline ? trendline[_name$] : (t7$ = series.name, t7$ == null ? "series " + dart.str(seriesIndex) : t7$));
      regionRect[$add](point.region);
      regionRect[$add](dart.test(series[_isRectSeries]) || series[_seriesType$][$contains]("hilo") || series[_seriesType$][$contains]("candle") ? series[_seriesType$] === "column" || series[_seriesType$][$contains]("stackedcolumn") ? dart.dtest(dart.dsend(point.yValue, '>', [0])) ? point.region.topCenter : point.region.bottomCenter : series[_seriesType$][$contains]("hilo") || series[_seriesType$][$contains]("candle") ? point.region.topCenter : point.region.topCenter : series[_seriesType$] === "rangearea" ? isTrendline ? new ui.Offset.new(point.markerPoint.x, point.markerPoint.y) : new ui.Offset.new(point.markerPoint.x, (dart.notNull(point.markerPoint.y) + dart.notNull(point.markerPoint2.y)) / 2) : point.region.center);
      regionRect[$add](isTrendline ? trendline[_fillColor] : point.pointColorMapper);
      regionRect[$add](point.bubbleSize);
      regionRect[$add](point);
      if (series[_seriesType$][$contains]("stacked")) {
        regionData[$add](dart.toString(point.cumulativeValue));
      }
      regionData[$add](dart.str(isTrendline));
      if (isTrendline) {
        regionRect[$add](trendline);
      }
      series[_regionalData][$_set](regionRect, regionData);
      point.regionData = regionData;
    }
  };
  charts._storeMarkerRegion = function _storeMarkerRegion(series, index) {
    if (series[_seriesType$] === "scatter") {
      series[_markerShapes] = JSArrayOfPath().of([]);
      for (let i = 0; i < dart.notNull(series[_dataPoints$][$length]); i = i + 1) {
        let markerargs = null;
        let point = series[_dataPoints$][$_get](i);
        let markerType = series.markerSettings.shape;
        let size = new ui.Size.new(series.markerSettings.width, series.markerSettings.height);
        if (series[_chart].onMarkerRender != null) {
          markerargs = new charts.MarkerRenderArgs.new();
          markerargs.pointIndex = i;
          markerargs.markerHeight = size.height;
          markerargs.markerWidth = size.width;
          markerargs.shape = markerType;
          markerargs.seriesIndex = index;
          series[_chart].onMarkerRender(markerargs);
          size = new ui.Size.new(markerargs.markerWidth, markerargs.markerHeight);
          markerType = markerargs.shape;
        }
        series[_markerShapes][$add](charts._getMarkerShapes(markerType, new ui.Offset.new(point.markerPoint.x, point.markerPoint.y), size, series));
      }
    } else {
      if (dart.test(series.markerSettings.isVisible)) {
        series[_markerShapes] = JSArrayOfPath().of([]);
        series[_markerShapes2] = JSArrayOfPath().of([]);
        for (let i = 0; i < dart.notNull(series[_dataPoints$][$length]); i = i + 1) {
          let markerargs = null;
          let point = series[_dataPoints$][$_get](i);
          let markerType = series.markerSettings.shape;
          let size = new ui.Size.new(series.markerSettings.width, series.markerSettings.height);
          if (series[_chart].onMarkerRender != null) {
            markerargs = new charts.MarkerRenderArgs.new();
            markerargs.pointIndex = i;
            markerargs.markerHeight = size.height;
            markerargs.markerWidth = size.width;
            markerargs.shape = markerType;
            markerargs.seriesIndex = index;
            series[_chart].onMarkerRender(markerargs);
            size = new ui.Size.new(markerargs.markerWidth, markerargs.markerHeight);
            markerType = markerargs.shape;
          }
          series[_markerShapes][$add](charts._getMarkerShapes(markerType, new ui.Offset.new(point.markerPoint.x, point.markerPoint.y), size, series));
          if (series[_seriesType$][$contains]("range")) {
            series[_markerShapes2][$add](charts._getMarkerShapes(markerType, new ui.Offset.new(point.markerPoint2.x, point.markerPoint2.y), size, series));
          }
        }
      }
    }
  };
  charts._renderSeriesElements = function _renderSeriesElements(canvas, series, animationController = null, scatterColor = null, scatterBorderColor = null) {
    let t7, t7$, t8, t7$0;
    let strokePaint = null;
    let fillPaint = null;
    let size = new ui.Size.new(series.markerSettings.width, series.markerSettings.height);
    let markerType = series.markerSettings.shape;
    let point = null;
    let _borderColor = null;
    let hasPointColor = series.pointColorMapper != null ? true : false;
    let opacity = animationController != null ? animationController.value : 1.0;
    for (let pointIndex = 0; pointIndex < dart.notNull(series[_dataPoints$][$length]); pointIndex = pointIndex + 1) {
      point = series[_dataPoints$][$_get](pointIndex);
      _borderColor = (t7 = series.markerSettings.borderColor, t7 == null ? series[_seriesColor] : t7);
      strokePaint = (t7$ = ui.Paint.new(), t7$.color = dart.equals(point.isEmpty, true) ? series.emptyPointSettings.borderWidth === 0 ? colors$.Colors.transparent : series.emptyPointSettings.borderColor.withOpacity(opacity) : series.markerSettings.borderWidth === 0 ? colors$.Colors.transparent : hasPointColor && point.pointColorMapper != null ? point.pointColorMapper.withOpacity(opacity) : _borderColor.withOpacity(opacity), t7$.style = ui.PaintingStyle.stroke, t7$.strokeWidth = dart.equals(point.isEmpty, true) ? series.emptyPointSettings.borderWidth : series.markerSettings.borderWidth, t7$);
      if (series.gradient != null && series.markerSettings.borderColor == null) {
        strokePaint = charts._getLinearGradientPaint(series.gradient, charts._getMarkerShapes(markerType, new ui.Offset.new(point.markerPoint.x, point.markerPoint.y), size, series).getBounds(), series[_chart][_requireInvertedAxis]);
        strokePaint.style = ui.PaintingStyle.stroke;
        strokePaint.strokeWidth = dart.equals(point.isEmpty, true) ? series.emptyPointSettings.borderWidth : series.markerSettings.borderWidth;
      }
      fillPaint = (t7$0 = ui.Paint.new(), t7$0.color = dart.equals(point.isEmpty, true) ? series.emptyPointSettings.color : !dart.equals(series.markerSettings.color, colors$.Colors.transparent) ? (t8 = series.markerSettings.color, t8 == null ? dart.equals(series[_chart][_chartState][_chartTheme].brightness, ui.Brightness.light) ? colors$.Colors.white : colors$.Colors.black : t8).withOpacity(opacity) : series.markerSettings.color, t7$0.style = ui.PaintingStyle.fill, t7$0);
      let isScatter = series[_seriesType$] === "scatter";
      if ((dart.test(series.markerSettings.isVisible) || isScatter) && !dart.equals(series.markerSettings.shape, charts.DataMarkerType.none) && dart.test(point.isVisible) && !dart.equals(point.isGap, true) && series[_markerShapes] != null && dart.test(series[_markerShapes][$isNotEmpty]) && (!isScatter || dart.equals(series.markerSettings.shape, charts.DataMarkerType.image))) {
        series.drawDataMarker(pointIndex, canvas, fillPaint, strokePaint, point.markerPoint.x, point.markerPoint.y);
        if (dart.equals(series.markerSettings.shape, charts.DataMarkerType.image)) {
          charts._drawImageMarker(series, canvas, point.markerPoint.x, point.markerPoint.y);
          if (series[_seriesType$][$contains]("range")) charts._drawImageMarker(series, canvas, point.markerPoint2.x, point.markerPoint2.y);
        }
      }
    }
  };
  charts._drawImageMarker = function _drawImageMarker$(series, canvas, pointX, pointY) {
    if (series.markerSettings[_image] != null) {
      let imageWidth = 2 * dart.notNull(series.markerSettings.width);
      let imageHeight = 2 * dart.notNull(series.markerSettings.height);
      let positionRect = new ui.Rect.fromLTWH(dart.notNull(pointX) - imageWidth / 2, dart.notNull(pointY) - imageHeight / 2, imageWidth, imageHeight);
      decoration_image.paintImage({canvas: canvas, rect: positionRect, image: series.markerSettings[_image], fit: box_fit.BoxFit.fill});
    }
  };
  charts._drawDashedLine = function _drawDashedLine(canvas, dashArray, paint, path) {
    let even = false;
    for (let i = 1; i < dart.notNull(dashArray[$length]); i = i + 2) {
      if (dashArray[$_get](i) === 0) {
        even = true;
      }
    }
    if (even[$_equals](false) && !true) {
      paint.isAntiAlias = false;
      canvas.drawPath(charts._dashPath(path, {dashArray: new (_CircularIntervalListOfdouble()).new(dashArray)}), paint);
    } else
      canvas.drawPath(path, paint);
  };
  charts._measureText = function _measureText(textValue, textStyle, angle = null) {
    let size = null;
    let color = textStyle.color;
    let fontSize = textStyle.fontSize;
    let fontFamily = textStyle.fontFamily;
    let fontStyle = textStyle.fontStyle;
    let fontWeight = textStyle.fontWeight;
    let textPainter = new text_painter.TextPainter.new({textAlign: ui.TextAlign.center, textDirection: ui.TextDirection.ltr, text: new text_span.TextSpan.new({text: textValue, style: new text_style.TextStyle.new({color: color, fontSize: fontSize, fontFamily: fontFamily, fontStyle: fontStyle, fontWeight: fontWeight})})});
    textPainter.layout();
    if (angle != null) {
      let rect = charts._rotatedTextSize(textPainter.size, angle);
      size = new ui.Size.new(rect.width, rect.height);
    } else {
      size = new ui.Size.new(textPainter.width, textPainter.height);
    }
    return size;
  };
  charts._percentageToValue = function _percentageToValue(value, size) {
    if (value != null) {
      return value[$contains]("%") ? dart.notNull(size) / 100 * dart.notNull(core.num.tryParse(value[$replaceAll](core.RegExp.new("%"), ""))) : core.num.tryParse(value);
    }
    return null;
  };
  charts._drawText = function _drawText$(canvas, text, point, style, angle = null) {
    let color = style.color;
    let fontSize = style.fontSize;
    let fontFamily = style.fontFamily;
    let fontStyle = style.fontStyle;
    let fontWeight = style.fontWeight;
    let maxLines = true ? charts.getMaxLinesContent(text) : 1;
    let span = new text_span.TextSpan.new({text: text, style: new text_style.TextStyle.new({color: color, fontSize: fontSize, fontFamily: fontFamily, fontStyle: fontStyle, fontWeight: fontWeight})});
    let tp = new text_painter.TextPainter.new({text: span, textDirection: ui.TextDirection.ltr, textAlign: ui.TextAlign.center, maxLines: dart.asInt(maxLines)});
    tp.layout();
    canvas.save();
    canvas.translate(point.dx, point.dy);
    let labelOffset = C568 || CT.C568;
    if (angle != null && dart.notNull(angle) > 0) {
      canvas.rotate(charts._degreeToRadian(angle));
      labelOffset = new ui.Offset.new(-dart.notNull(tp.width) / 2, -dart.notNull(tp.height) / 2);
    }
    tp.paint(canvas, labelOffset);
    canvas.restore();
  };
  charts.getMaxLinesContent = function getMaxLinesContent(text) {
    return text != null && text[$isNotEmpty] && text[$contains]("\n") ? text[$split]("\n")[$length] : 1;
  };
  charts._offsetToVector2 = function _offsetToVector2(offset) {
    return vector_math.Vector2.new(offset.dx, offset.dy);
  };
  charts._vector2ToOffset = function _vector2ToOffset(vector) {
    return new ui.Offset.new(vector.x, vector.y);
  };
  charts._transform = function _transform(matrix, offset) {
    return charts._vector2ToOffset(vector_math.Vector2._check(matrix['*'](charts._offsetToVector2(offset))));
  };
  charts._rotatedTextSize = function _rotatedTextSize(size, angle) {
    let rect = new ui.Rect.fromLTWH(0.0, 0.0, size.width, size.height);
    let _rotatorMatrix = vector_math.Matrix2.rotation(charts._degreeToRadian(angle));
    let movedToCenterAsOrigin = rect.shift(rect.center._negate());
    let _topLeft = movedToCenterAsOrigin.topLeft;
    let _topRight = movedToCenterAsOrigin.topRight;
    let _bottomLeft = movedToCenterAsOrigin.bottomLeft;
    let _bottomRight = movedToCenterAsOrigin.bottomRight;
    _topLeft = charts._transform(_rotatorMatrix, _topLeft);
    _topRight = charts._transform(_rotatorMatrix, _topRight);
    _bottomLeft = charts._transform(_rotatorMatrix, _bottomLeft);
    _bottomRight = charts._transform(_rotatorMatrix, _bottomRight);
    let rotOffsets = JSArrayOfOffset().of([_topLeft, _topRight, _bottomLeft, _bottomRight]);
    let minX = rotOffsets[$map](core.double, dart.fn(offset => offset.dx, OffsetTodouble()))[$reduce](dart.gbind(C543 || CT.C543, core.double));
    let maxX = rotOffsets[$map](core.double, dart.fn(offset => offset.dx, OffsetTodouble()))[$reduce](dart.gbind(C544 || CT.C544, core.double));
    let minY = rotOffsets[$map](core.double, dart.fn(offset => offset.dy, OffsetTodouble()))[$reduce](dart.gbind(C543 || CT.C543, core.double));
    let maxY = rotOffsets[$map](core.double, dart.fn(offset => offset.dy, OffsetTodouble()))[$reduce](dart.gbind(C544 || CT.C544, core.double));
    let rotateRect = new ui.Rect.fromPoints(new ui.Offset.new(minX, minY), new ui.Offset.new(maxX, maxY));
    return rotateRect;
  };
  charts._drawDashedPath = function _drawDashedPath(canvas, style, moveToPoint, lineToPoint, dashArray = null) {
    let even = false;
    let path = ui.Path.new();
    path.moveTo(moveToPoint.dx, moveToPoint.dy);
    path.lineTo(lineToPoint.dx, lineToPoint.dy);
    let paint = ui.Paint.new();
    paint.strokeWidth = style.strokeWidth;
    paint.color = style.color;
    paint.style = style.paintStyle;
    if (dashArray != null) {
      for (let i = 1; i < dart.notNull(dashArray[$length]); i = i + 2) {
        if (dashArray[$_get](i) === 0) {
          even = true;
        }
      }
      if (even[$_equals](false) && !true) {
        canvas.drawPath(charts._dashPath(path, {dashArray: new (_CircularIntervalListOfdouble()).new(dashArray)}), paint);
      } else
        canvas.drawPath(path, paint);
    } else
      canvas.drawPath(path, paint);
  };
  charts._degreeToRadian = function _degreeToRadian(deg) {
    return dart.notNull(deg) * (3.141592653589793 / 180);
  };
  charts._valueToCoefficient = function _valueToCoefficient(value, axis) {
    let result = 0;
    if (axis[_visibleRange] != null && value != null) {
      let range = axis[_visibleRange];
      if (range != null) {
        result = (dart.notNull(value) - dart.notNull(core.num._check(range.minimum))) / dart.notNull(range.delta);
        result = dart.test(axis.isInversed) ? 1 - result : result;
      }
    }
    return result;
  };
  charts._logBase = function _logBase(value, base) {
    return math.log(value) / math.log(base);
  };
  charts._withIn = function _withIn(value, range) {
    return dart.notNull(value) <= dart.notNull(core.num._check(range.maximum)) && dart.notNull(value) >= dart.notNull(core.num._check(range.minimum));
  };
  charts._calculatePoint = function _calculatePoint(x, y, xAxis, yAxis, isInverted, series, rect) {
    x = charts.LogarithmicAxis.is(xAxis) ? charts._logBase(dart.notNull(x) > 1 ? x : 1, xAxis.logBase) : x;
    y = charts.LogarithmicAxis.is(yAxis) ? charts._logBase(dart.notNull(y) > 1 ? y : 1, yAxis.logBase) : y;
    x = charts._valueToCoefficient(x, xAxis);
    y = charts._valueToCoefficient(y, yAxis);
    let xLength = dart.test(isInverted) ? rect.height : rect.width;
    let yLength = dart.test(isInverted) ? rect.width : rect.height;
    let locationX = dart.notNull(rect.left) + (dart.test(isInverted) ? dart.notNull(y) * dart.notNull(yLength) : dart.notNull(x) * dart.notNull(xLength));
    let locationY = dart.notNull(rect.top) + (dart.test(isInverted) ? (1 - dart.notNull(x)) * dart.notNull(xLength) : (1 - dart.notNull(y)) * dart.notNull(yLength));
    return new charts._ChartLocation.new(locationX, locationY);
  };
  charts._calculateMinPointsDelta = function _calculateMinPointsDelta(axis, seriesCollection, chart) {
    let minDelta = 1.7976931348623157e+308;
    let minVal = null;
    let seriesMin = null;
    let xValues = null;
    for (let series of seriesCollection) {
      xValues = [];
      if (dart.test(series[_visible]) && (axis[_name$] == series.xAxisName || axis[_name$] === "primaryXAxis" && series.xAxisName == null || axis[_name$] == chart.primaryXAxis[_name$] && series.xAxisName != null)) {
        xValues = series[_dataPoints$][$map](dart.dynamic, dart.fn(point => point.xValue, CartesianChartPointTodynamic()))[$toList]();
        dart.dsend(xValues, 'sort', []);
        if (dart.equals(dart.dload(xValues, 'length'), 1)) {
          seriesMin = charts.DateTimeAxis.is(axis) && series[_minimumX] == series[_maximumX] ? dart.notNull(series[_minimumX]) - 2592000000 : series[_minimumX];
          minVal = core.num._check(dart.dsend(dart.dsend(xValues, '_get', [0]), '-', [seriesMin != null ? seriesMin : axis[_visibleRange].minimum]));
          if (minVal !== 0) {
            minDelta = math.min(core.num, minDelta, minVal);
          }
        } else {
          for (let i = 0; i < dart.notNull(core.num._check(dart.dload(xValues, 'length'))); i = i + 1) {
            let value = core.num._check(dart.dsend(xValues, '_get', [i]));
            if (i > 0 && value != null) {
              minVal = dart.notNull(value) - dart.notNull(core.num._check(dart.dsend(xValues, '_get', [i - 1])));
              if (minVal !== 0) {
                minDelta = math.min(core.num, minDelta, minVal);
              }
            }
          }
        }
      }
    }
    if (minDelta === 1.7976931348623157e+308) {
      minDelta = 1;
    }
    return minDelta;
  };
  charts._calculateLegendShapes = function _calculateLegendShapes(path, x, y, width, height, seriesType) {
    let style = ui.PaintingStyle.fill;
    switch (seriesType) {
      case "line":
      case "fastline":
      case "stackedline":
      case "stackedline100":
      {
        style = ui.PaintingStyle.stroke;
        break;
      }
      case "spline":
      {
        path.moveTo(dart.notNull(x) - dart.notNull(width) / 2, dart.notNull(y) + dart.notNull(height) / 5);
        path.quadraticBezierTo(x, dart.notNull(y) - dart.notNull(height), x, dart.notNull(y) + dart.notNull(height) / 5);
        path.moveTo(x, dart.notNull(y) + dart.notNull(height) / 5);
        path.quadraticBezierTo(dart.notNull(x) + dart.notNull(width) / 2, dart.notNull(y) + dart.notNull(height) / 2, dart.notNull(x) + dart.notNull(width) / 2, dart.notNull(y) - dart.notNull(height) / 2);
        style = ui.PaintingStyle.stroke;
        break;
      }
      case "splinearea":
      {
        path.moveTo(dart.notNull(x) - dart.notNull(width) / 2, dart.notNull(y) + dart.notNull(height) / 2);
        path.quadraticBezierTo(x, dart.notNull(y) - dart.notNull(height), x, dart.notNull(y) + dart.notNull(height) / 5);
        path.quadraticBezierTo(dart.notNull(x) + dart.notNull(width) / 2, dart.notNull(y) - dart.notNull(height) / 2, dart.notNull(x) + dart.notNull(width) / 2, dart.notNull(y) + dart.notNull(height) / 2);
        break;
      }
      case "bar":
      case "stackedbar":
      case "stackedbar100":
      {
        charts._calculateBarTypeIconPath(path, x, y, width, height);
        break;
      }
      case "column":
      case "stackedcolumn":
      case "stackedcolumn100":
      case "rangecolumn":
      {
        charts._calculateColumnTypeIconPath(path, x, y, width, height);
        break;
      }
      case "area":
      case "stackedarea":
      case "rangearea":
      case "stackedarea100":
      {
        charts._calculateAreaTypeIconPath(path, x, y, width, height);
        break;
      }
      case "stepline":
      {
        charts._calculateSteplineIconPath(path, x, y, width, height);
        style = ui.PaintingStyle.stroke;
        break;
      }
      case "bubble":
      {
        path.addArc(new ui.Rect.fromLTWH(dart.notNull(x) - dart.notNull(width) / 2, dart.notNull(y) - dart.notNull(height) / 2, width, height), 0.0, 2 * 3.141592653589793);
        break;
      }
      case "hilo":
      {
        path.moveTo(x, dart.notNull(y) + dart.notNull(height) / 2);
        path.lineTo(x, dart.notNull(y) - dart.notNull(height) / 2);
        style = ui.PaintingStyle.stroke;
        break;
      }
      case "hiloopenclose":
      case "candle":
      {
        path.moveTo(dart.notNull(x) - dart.notNull(width) / 2, y);
        path.lineTo(dart.notNull(x) + dart.notNull(width) / 2, y);
        style = ui.PaintingStyle.stroke;
        break;
      }
      case "pie":
      {
        charts._calculatePieIconPath(path, x, y, width, height);
        break;
      }
      case "doughnut":
      case "radialbar":
      {
        break;
      }
      case "steparea":
      {
        charts._calculateStepAreaIconPath(path, x, y, width, height);
        break;
      }
      case "pyramid":
      {
        charts._calculatePyramidIconPath(path, x, y, width, height);
        break;
      }
      case "funnel":
      {
        charts._calculateFunnelIconPath(path, x, y, width, height);
        break;
      }
      default:
      {
        path.addArc(new ui.Rect.fromLTRB(dart.notNull(x) - dart.notNull(width) / 2, dart.notNull(y) - dart.notNull(height) / 2, dart.notNull(x) + dart.notNull(width) / 2, dart.notNull(y) + dart.notNull(height) / 2), 0.0, 2 * 3.141592653589793);
        break;
      }
    }
    return style;
  };
  charts._calculateBarTypeIconPath = function _calculateBarTypeIconPath(path, x, y, width, height) {
    path.moveTo(dart.notNull(x) - dart.notNull(width) / 2 - 10 / 4, dart.notNull(y) - 3 * (dart.notNull(height) / 5));
    path.lineTo(dart.notNull(x) + 3 * (dart.notNull(width) / 10), dart.notNull(y) - 3 * (dart.notNull(height) / 5));
    path.lineTo(dart.notNull(x) + 3 * (dart.notNull(width) / 10), dart.notNull(y) - 3 * (dart.notNull(height) / 10));
    path.lineTo(dart.notNull(x) - dart.notNull(width) / 2 - 10 / 4, dart.notNull(y) - 3 * (dart.notNull(height) / 10));
    path.close();
    path.moveTo(dart.notNull(x) - dart.notNull(width) / 2 - 10 / 4, dart.notNull(y) - dart.notNull(height) / 5 + 10 / 20);
    path.lineTo(dart.notNull(x) + dart.notNull(width) / 2 + 10 / 4, dart.notNull(y) - dart.notNull(height) / 5 + 10 / 20);
    path.lineTo(dart.notNull(x) + dart.notNull(width) / 2 + 10 / 4, dart.notNull(y) + dart.notNull(height) / 10 + 10 / 20);
    path.lineTo(dart.notNull(x) - dart.notNull(width) / 2 - 10 / 4, dart.notNull(y) + dart.notNull(height) / 10 + 10 / 20);
    path.close();
    path.moveTo(dart.notNull(x) - dart.notNull(width) / 2 - 10 / 4, dart.notNull(y) + dart.notNull(height) / 5 + 10 / 10);
    path.lineTo(dart.notNull(x) - dart.notNull(width) / 4, dart.notNull(y) + dart.notNull(height) / 5 + 10 / 10);
    path.lineTo(dart.notNull(x) - dart.notNull(width) / 4, dart.notNull(y) + dart.notNull(height) / 2 + 10 / 10);
    path.lineTo(dart.notNull(x) - dart.notNull(width) / 2 - 10 / 4, dart.notNull(y) + dart.notNull(height) / 2 + 10 / 10);
    path.close();
  };
  charts._calculateColumnTypeIconPath = function _calculateColumnTypeIconPath(path, x, y, width, height) {
    path.moveTo(dart.notNull(x) - 3 * (dart.notNull(width) / 5), dart.notNull(y) - dart.notNull(height) / 5);
    path.lineTo(dart.notNull(x) + 3 * (-dart.notNull(width) / 10), dart.notNull(y) - dart.notNull(height) / 5);
    path.lineTo(dart.notNull(x) + 3 * (-dart.notNull(width) / 10), dart.notNull(y) + dart.notNull(height) / 2);
    path.lineTo(dart.notNull(x) - 3 * (dart.notNull(width) / 5), dart.notNull(y) + dart.notNull(height) / 2);
    path.close();
    path.moveTo(dart.notNull(x) - dart.notNull(width) / 10 - dart.notNull(width) / 20, dart.notNull(y) - dart.notNull(height) / 4 - 10 / 2);
    path.lineTo(dart.notNull(x) + dart.notNull(width) / 10 + dart.notNull(width) / 20, dart.notNull(y) - dart.notNull(height) / 4 - 10 / 2);
    path.lineTo(dart.notNull(x) + dart.notNull(width) / 10 + dart.notNull(width) / 20, dart.notNull(y) + dart.notNull(height) / 2);
    path.lineTo(dart.notNull(x) - dart.notNull(width) / 10 - dart.notNull(width) / 20, dart.notNull(y) + dart.notNull(height) / 2);
    path.close();
    path.moveTo(dart.notNull(x) + 3 * (dart.notNull(width) / 10), y);
    path.lineTo(dart.notNull(x) + 3 * (dart.notNull(width) / 5), y);
    path.lineTo(dart.notNull(x) + 3 * (dart.notNull(width) / 5), dart.notNull(y) + dart.notNull(height) / 2);
    path.lineTo(dart.notNull(x) + 3 * (dart.notNull(width) / 10), dart.notNull(y) + dart.notNull(height) / 2);
    path.close();
  };
  charts._calculateAreaTypeIconPath = function _calculateAreaTypeIconPath(path, x, y, width, height) {
    path.moveTo(dart.notNull(x) - dart.notNull(width) / 2 - 10 / 4, dart.notNull(y) + dart.notNull(height) / 2);
    path.lineTo(dart.notNull(x) - dart.notNull(width) / 4 - 10 / 8, dart.notNull(y) - dart.notNull(height) / 2);
    path.lineTo(x, dart.notNull(y) + dart.notNull(height) / 4);
    path.lineTo(dart.notNull(x) + dart.notNull(width) / 4 + 10 / 8, dart.notNull(y) - dart.notNull(height) / 2 + dart.notNull(height) / 4);
    path.lineTo(dart.notNull(x) + dart.notNull(height) / 2 + 10 / 4, dart.notNull(y) + dart.notNull(height) / 2);
    path.close();
  };
  charts._calculateSteplineIconPath = function _calculateSteplineIconPath(path, x, y, width, height) {
    path.moveTo(dart.notNull(x) - dart.notNull(width) / 2 - 10 / 4, dart.notNull(y) + dart.notNull(height) / 2);
    path.lineTo(dart.notNull(x) - dart.notNull(width) / 2 + dart.notNull(width) / 10, dart.notNull(y) + dart.notNull(height) / 2);
    path.lineTo(dart.notNull(x) - dart.notNull(width) / 2 + dart.notNull(width) / 10, y);
    path.lineTo(dart.notNull(x) - dart.notNull(width) / 10, y);
    path.lineTo(dart.notNull(x) - dart.notNull(width) / 10, dart.notNull(y) + dart.notNull(height) / 2);
    path.lineTo(dart.notNull(x) + dart.notNull(width) / 5, dart.notNull(y) + dart.notNull(height) / 2);
    path.lineTo(dart.notNull(x) + dart.notNull(width) / 5, dart.notNull(y) - dart.notNull(height) / 2);
    path.lineTo(dart.notNull(x) + dart.notNull(width) / 2, dart.notNull(y) - dart.notNull(height) / 2);
    path.lineTo(dart.notNull(x) + dart.notNull(width) / 2, dart.notNull(y) + dart.notNull(height) / 2);
    path.lineTo(dart.notNull(x) + dart.notNull(width) / 2 + 10 / 4, dart.notNull(y) + dart.notNull(height) / 2);
  };
  charts._calculateStepAreaIconPath = function _calculateStepAreaIconPath(path, x, y, width, height) {
    path.moveTo(dart.notNull(x) - dart.notNull(width) / 2 - 10 / 4, dart.notNull(y) + dart.notNull(height) / 2);
    path.lineTo(dart.notNull(x) - dart.notNull(width) / 2 - 10 / 4, dart.notNull(y) - dart.notNull(height) / 4);
    path.lineTo(dart.notNull(x) - dart.notNull(width) / 2 + dart.notNull(width) / 10, dart.notNull(y) - dart.notNull(height) / 4);
    path.lineTo(dart.notNull(x) - dart.notNull(width) / 2 + dart.notNull(width) / 10, dart.notNull(y) - dart.notNull(height) / 2);
    path.lineTo(dart.notNull(x) - dart.notNull(width) / 10, dart.notNull(y) - dart.notNull(height) / 2);
    path.lineTo(dart.notNull(x) - dart.notNull(width) / 10, y);
    path.lineTo(dart.notNull(x) + dart.notNull(width) / 5, y);
    path.lineTo(dart.notNull(x) + dart.notNull(width) / 5, dart.notNull(y) - dart.notNull(height) / 3);
    path.lineTo(dart.notNull(x) + dart.notNull(width) / 2, dart.notNull(y) - dart.notNull(height) / 3);
    path.lineTo(dart.notNull(x) + dart.notNull(width) / 2, dart.notNull(y) + dart.notNull(height) / 2);
    path.close();
  };
  charts._calculatePieIconPath = function _calculatePieIconPath(path, x, y, width, height) {
    let r = math.min(core.double, height, width) / 2;
    path.moveTo(x, y);
    path.lineTo(dart.notNull(x) + r, y);
    path.arcTo(new ui.Rect.fromCircle({center: new ui.Offset.new(x, y), radius: r}), charts._degreesToRadians(0), charts._degreesToRadians(270), false);
    path.close();
    path.moveTo(dart.notNull(x) + dart.notNull(width) / 10, dart.notNull(y) - dart.notNull(height) / 10);
    path.lineTo(dart.notNull(x) + r, dart.notNull(y) - dart.notNull(height) / 10);
    path.arcTo(new ui.Rect.fromCircle({center: new ui.Offset.new(dart.notNull(x) + 2, dart.notNull(y) - 2), radius: r}), charts._degreesToRadians(-5), charts._degreesToRadians(-80), false);
    path.close();
  };
  charts._calculatePyramidIconPath = function _calculatePyramidIconPath(path, x, y, width, height) {
    path.moveTo(dart.notNull(x) - dart.notNull(width) / 2, dart.notNull(y) + dart.notNull(height) / 2);
    path.lineTo(dart.notNull(x) + dart.notNull(width) / 2, dart.notNull(y) + dart.notNull(height) / 2);
    path.lineTo(x, dart.notNull(y) - dart.notNull(height) / 2);
    path.lineTo(dart.notNull(x) - dart.notNull(width) / 2, dart.notNull(y) + dart.notNull(height) / 2);
    path.close();
  };
  charts._calculateFunnelIconPath = function _calculateFunnelIconPath(path, x, y, width, height) {
    path.moveTo(dart.notNull(x) + dart.notNull(width) / 2, dart.notNull(y) - dart.notNull(height) / 2);
    path.lineTo(x, dart.notNull(y) + dart.notNull(height) / 2);
    path.lineTo(dart.notNull(x) - dart.notNull(width) / 2, dart.notNull(y) - dart.notNull(height) / 2);
    path.lineTo(dart.notNull(x) + dart.notNull(width) / 2, dart.notNull(y) - dart.notNull(height) / 2);
    path.close();
  };
  charts._calculateRectangle = function _calculateRectangle(x1, y1, x2, y2, series, chart) {
    let rect = charts._calculatePlotOffset(chart[_chartAxis][_axisClipRect], new ui.Offset.new(series[_xAxis$].plotOffset, series[_yAxis$].plotOffset));
    let isInverted = chart[_requireInvertedAxis];
    let point1 = charts._calculatePoint(x1, y1, series[_xAxis$], series[_yAxis$], isInverted, series, rect);
    let point2 = charts._calculatePoint(x2, y2, series[_xAxis$], series[_yAxis$], isInverted, series, rect);
    return new ui.Rect.fromLTWH(math.min(core.double, point1.x, point2.x), math.min(core.double, point1.y, point2.y), (dart.notNull(point2.x) - dart.notNull(point1.x))[$abs](), (dart.notNull(point2.y) - dart.notNull(point1.y))[$abs]());
  };
  charts._calculateShadowRectangle = function _calculateShadowRectangle(x1, y1, x2, y2, series, chart, plotOffset) {
    let rect = charts._calculatePlotOffset(chart[_chartAxis][_axisClipRect], new ui.Offset.new(series[_xAxis$].plotOffset, series[_yAxis$].plotOffset));
    let isInverted = chart[_requireInvertedAxis];
    let point1 = charts._calculatePoint(x1, y1, series[_xAxis$], series[_yAxis$], isInverted, series, rect);
    let point2 = charts._calculatePoint(x2, y2, series[_xAxis$], series[_yAxis$], isInverted, series, rect);
    let isColumn = series[_seriesType$] === "column";
    let isStackedColumn = series[_seriesType$] === "stackedcolumn";
    let isStackedBar = series[_seriesType$] === "stackedbar";
    let isRangeColumn = series[_seriesType$] === "rangecolumn";
    let columnSeries = null;
    let barSeries = null;
    let stackedColumnSeries = null;
    let stackedBarSeries = null;
    let rangeColumnSeries = null;
    if (series[_seriesType$] === "column") {
      columnSeries = charts.ColumnSeries._check(series);
    } else if (series[_seriesType$] === "bar") {
      barSeries = charts.BarSeries._check(series);
    } else if (series[_seriesType$] === "stackedcolumn") {
      stackedColumnSeries = charts.StackedColumnSeries._check(series);
    } else if (series[_seriesType$] === "stackedbar") {
      stackedBarSeries = charts.StackedBarSeries._check(series);
    } else if (series[_seriesType$] === "rangecolumn") {
      rangeColumnSeries = charts.RangeColumnSeries._check(series);
    }
    return !dart.test(chart.isTransposed) ? charts._getNormalShadowRect(rect, isColumn, isRangeColumn, isStackedColumn, isStackedBar, chart, plotOffset, point1, point2, columnSeries, barSeries, stackedColumnSeries, stackedBarSeries, rangeColumnSeries) : charts._getTransposedShadowRect(rect, isColumn, isRangeColumn, isStackedColumn, isStackedBar, chart, plotOffset, point1, point2, columnSeries, barSeries, stackedColumnSeries, stackedBarSeries, rangeColumnSeries);
  };
  charts._getNormalShadowRect = function _getNormalShadowRect(rect, isColumn, isRangeColumn, isStackedColumn, isStackedBar, chart, plotOffset, point1, point2, columnSeries, barSeries, stackedColumnSeries, stackedBarSeries, rangeColumnSeries) {
    return new ui.Rect.fromLTWH(dart.test(isColumn) ? math.min(core.num, point1.x, point2.x) + (-dart.notNull(columnSeries.trackBorderWidth) - dart.notNull(columnSeries.trackPadding)) : dart.test(isRangeColumn) ? math.min(core.num, point1.x, point2.x) + (-dart.notNull(rangeColumnSeries.trackBorderWidth) - dart.notNull(rangeColumnSeries.trackPadding)) : dart.test(isStackedColumn) ? math.min(core.num, point1.x, point2.x) + (-dart.notNull(stackedColumnSeries.trackBorderWidth) - dart.notNull(stackedColumnSeries.trackPadding)) : dart.test(isStackedBar) ? chart[_chartAxis][_axisClipRect].left : chart[_chartAxis][_axisClipRect].left, dart.test(isColumn) || dart.test(isRangeColumn) ? rect.top : dart.test(isStackedColumn) ? rect.top : dart.test(isStackedBar) ? math.min(core.num, point1.y, point2.y) - dart.notNull(stackedBarSeries.trackBorderWidth) - dart.notNull(stackedBarSeries.trackPadding) : math.min(core.num, point1.y, point2.y) - dart.notNull(barSeries.trackBorderWidth) - dart.notNull(barSeries.trackPadding), dart.test(isColumn) ? (dart.notNull(point2.x) - dart.notNull(point1.x))[$abs]() + dart.notNull(columnSeries.trackBorderWidth) * 2 + dart.notNull(columnSeries.trackPadding) * 2 : dart.test(isRangeColumn) ? (dart.notNull(point2.x) - dart.notNull(point1.x))[$abs]() + dart.notNull(rangeColumnSeries.trackBorderWidth) * 2 + dart.notNull(rangeColumnSeries.trackPadding) * 2 : dart.test(isStackedColumn) ? (dart.notNull(point2.x) - dart.notNull(point1.x))[$abs]() + dart.notNull(stackedColumnSeries.trackBorderWidth) * 2 + dart.notNull(stackedColumnSeries.trackPadding) * 2 : dart.test(isStackedBar) ? chart[_chartAxis][_axisClipRect].width : chart[_chartAxis][_axisClipRect].width, dart.test(isColumn) || dart.test(isRangeColumn) ? dart.notNull(chart[_chartAxis][_axisClipRect].height) - 2 * dart.notNull(plotOffset.dy) : dart.test(isStackedColumn) ? dart.notNull(chart[_chartAxis][_axisClipRect].height) - 2 * dart.notNull(plotOffset.dy) : dart.test(isStackedBar) ? (dart.notNull(point2.y) - dart.notNull(point1.y))[$abs]() + dart.notNull(stackedBarSeries.trackBorderWidth) * 2 + dart.notNull(stackedBarSeries.trackPadding) * 2 : (dart.notNull(point2.y) - dart.notNull(point1.y))[$abs]() + dart.notNull(barSeries.trackBorderWidth) * 2 + dart.notNull(barSeries.trackPadding) * 2);
  };
  charts._getTransposedShadowRect = function _getTransposedShadowRect(rect, isColumn, isRangeColumn, isStackedColumn, isStackedBar, chart, plotOffset, point1, point2, columnSeries, barSeries, stackedColumnSeries, stackedBarSeries, rangeColumnSeries) {
    return new ui.Rect.fromLTWH(dart.test(isColumn) || dart.test(isRangeColumn) ? chart[_chartAxis][_axisClipRect].left : dart.test(isStackedColumn) ? chart[_chartAxis][_axisClipRect].left : dart.test(isStackedBar) ? math.min(core.num, point1.x, point2.x) + (-dart.notNull(stackedBarSeries.trackBorderWidth) - dart.notNull(stackedBarSeries.trackPadding)) : math.min(core.num, point1.x, point2.x) + (-dart.notNull(barSeries.trackBorderWidth) - dart.notNull(barSeries.trackPadding)), dart.test(isColumn) ? math.min(core.num, point1.y, point2.y) - dart.notNull(columnSeries.trackBorderWidth) - dart.notNull(columnSeries.trackPadding) : dart.test(isRangeColumn) ? math.min(core.num, point1.y, point2.y) - dart.notNull(rangeColumnSeries.trackBorderWidth) - dart.notNull(rangeColumnSeries.trackPadding) : dart.test(isStackedColumn) ? math.min(core.num, point1.y, point2.y) - dart.notNull(stackedColumnSeries.trackBorderWidth) - dart.notNull(stackedColumnSeries.trackPadding) : dart.test(isStackedBar) ? rect.top : rect.top, dart.test(isColumn) || dart.test(isRangeColumn) ? chart[_chartAxis][_axisClipRect].width : dart.test(isStackedColumn) ? chart[_chartAxis][_axisClipRect].width : dart.test(isStackedBar) ? (dart.notNull(point2.x) - dart.notNull(point1.x))[$abs]() + dart.notNull(stackedBarSeries.trackBorderWidth) * 2 + dart.notNull(stackedBarSeries.trackPadding) * 2 : (dart.notNull(point2.x) - dart.notNull(point1.x))[$abs]() + dart.notNull(barSeries.trackBorderWidth) * 2 + dart.notNull(barSeries.trackPadding) * 2, dart.test(isColumn) ? (dart.notNull(point2.y) - dart.notNull(point1.y))[$abs]() + dart.notNull(columnSeries.trackBorderWidth) * 2 + dart.notNull(columnSeries.trackPadding) * 2 : dart.test(isRangeColumn) ? (dart.notNull(point2.y) - dart.notNull(point1.y))[$abs]() + dart.notNull(rangeColumnSeries.trackBorderWidth) * 2 + dart.notNull(rangeColumnSeries.trackPadding) * 2 : dart.test(isStackedColumn) ? (dart.notNull(point2.y) - dart.notNull(point1.y))[$abs]() + dart.notNull(stackedColumnSeries.trackBorderWidth) * 2 + dart.notNull(stackedColumnSeries.trackPadding) * 2 : dart.test(isStackedBar) ? dart.notNull(chart[_chartAxis][_axisClipRect].height) - 2 * dart.notNull(plotOffset.dy) : dart.notNull(chart[_chartAxis][_axisClipRect].height) - 2 * dart.notNull(plotOffset.dy));
  };
  charts._calculateSideBySideInfo = function _calculateSideBySideInfo(series, chart) {
    let rectPosition = null;
    let count = null;
    let seriesSpacing = null;
    let pointSpacing = null;
    if (series[_seriesType$] === "column" && dart.test(chart.enableSideBySideSeriesPlacement)) {
      let columnSeries = charts.ColumnSeries._check(series);
      charts._calculateSideBySidePositions(series, chart);
      rectPosition = columnSeries[_rectPosition];
      count = columnSeries[_rectCount];
    } else if (series[_seriesType$] === "bar" && dart.test(chart.enableSideBySideSeriesPlacement)) {
      let barSeries = charts.BarSeries._check(series);
      charts._calculateSideBySidePositions(series, chart);
      rectPosition = barSeries[_rectPosition];
      count = barSeries[_rectCount];
    } else if ((series[_seriesType$][$contains]("stackedcolumn") || series[_seriesType$][$contains]("stackedbar")) && dart.test(chart.enableSideBySideSeriesPlacement)) {
      let stackedRectSeries = charts._StackedSeriesBase._check(series);
      charts._calculateSideBySidePositions(series, chart);
      rectPosition = stackedRectSeries[_rectPosition];
      count = stackedRectSeries[_rectCount];
    } else if (series[_seriesType$] === "rangecolumn" && dart.test(chart.enableSideBySideSeriesPlacement)) {
      let rangeColumnSeries = charts.RangeColumnSeries._check(series);
      charts._calculateSideBySidePositions(series, chart);
      rectPosition = rangeColumnSeries[_rectPosition];
      count = rangeColumnSeries[_rectCount];
    } else if (series[_seriesType$] === "hilo" && dart.test(chart.enableSideBySideSeriesPlacement)) {
      let hiloSeries = charts.HiloSeries._check(series);
      charts._calculateSideBySidePositions(series, chart);
      rectPosition = hiloSeries[_rectPosition];
      count = hiloSeries[_rectCount];
    } else if (series[_seriesType$] === "hiloopenclose" && dart.test(chart.enableSideBySideSeriesPlacement)) {
      let hiloOpenCloseSeries = charts.HiloOpenCloseSeries._check(series);
      charts._calculateSideBySidePositions(series, chart);
      rectPosition = hiloOpenCloseSeries[_rectPosition];
      count = hiloOpenCloseSeries[_rectCount];
    } else if (series[_seriesType$] === "candle" && dart.test(chart.enableSideBySideSeriesPlacement)) {
      let candleSeries = charts.CandleSeries._check(series);
      charts._calculateSideBySidePositions(series, chart);
      rectPosition = candleSeries[_rectPosition];
      count = candleSeries[_rectCount];
    }
    if (series[_seriesType$] === "column") {
      let columnSeries = charts.ColumnSeries._check(series);
      seriesSpacing = dart.test(chart.enableSideBySideSeriesPlacement) ? columnSeries.spacing : 0;
      pointSpacing = columnSeries.width;
    } else if (series[_seriesType$] === "stackedcolumn" || series[_seriesType$] === "stackedcolumn100" || series[_seriesType$] === "stackedbar" || series[_seriesType$] === "stackedbar100") {
      let stackedRectSeries = charts._StackedSeriesBase._check(series);
      seriesSpacing = dart.test(chart.enableSideBySideSeriesPlacement) ? stackedRectSeries.spacing : 0;
      pointSpacing = stackedRectSeries.width;
    } else if (series[_seriesType$] === "rangecolumn") {
      let rangeColumnSeries = charts.RangeColumnSeries._check(series);
      seriesSpacing = dart.test(chart.enableSideBySideSeriesPlacement) ? rangeColumnSeries.spacing : 0;
      pointSpacing = rangeColumnSeries.width;
    } else if (series[_seriesType$] === "hilo") {
      let hiloSeries = charts.HiloSeries._check(series);
      seriesSpacing = dart.test(chart.enableSideBySideSeriesPlacement) ? hiloSeries.spacing : 0;
      pointSpacing = hiloSeries.width;
    } else if (series[_seriesType$] === "hiloopenclose") {
      let hiloOpenCloseSeries = charts.HiloOpenCloseSeries._check(series);
      seriesSpacing = dart.test(chart.enableSideBySideSeriesPlacement) ? hiloOpenCloseSeries.spacing : 0;
      pointSpacing = hiloOpenCloseSeries.width;
    } else if (series[_seriesType$] === "candle") {
      let candleSeries = charts.CandleSeries._check(series);
      seriesSpacing = dart.test(chart.enableSideBySideSeriesPlacement) ? candleSeries.spacing : 0;
      pointSpacing = candleSeries.width;
    } else {
      let barSeries = charts.BarSeries._check(series);
      seriesSpacing = dart.test(chart.enableSideBySideSeriesPlacement) ? barSeries.spacing : 0;
      pointSpacing = barSeries.width;
    }
    let position = !dart.test(chart.enableSideBySideSeriesPlacement) ? 0 : rectPosition;
    let rectCount = !dart.test(chart.enableSideBySideSeriesPlacement) ? 1 : count;
    let minPointsDelta = charts._calculateMinPointsDelta(series[_xAxis$], ListOfCartesianSeries()._check(chart[_chartSeries].visibleSeries), chart);
    let width = dart.notNull(minPointsDelta) * dart.notNull(pointSpacing);
    let location = dart.notNull(position) / dart.notNull(rectCount) - 0.5;
    let doubleRange = new charts._VisibleRange.new(location, location + 1 / dart.notNull(rectCount));
    if (typeof doubleRange.minimum == 'number' && typeof doubleRange.maximum == 'number') {
      doubleRange = new charts._VisibleRange.new(dart.dsend(doubleRange.minimum, '*', [width]), dart.dsend(doubleRange.maximum, '*', [width]));
      doubleRange.delta = core.num._check(dart.dsend(doubleRange.maximum, '-', [doubleRange.minimum]));
      let radius = dart.notNull(seriesSpacing) * dart.notNull(doubleRange.delta);
      doubleRange = new charts._VisibleRange.new(dart.dsend(doubleRange.minimum, '+', [radius / 2]), dart.dsend(doubleRange.maximum, '-', [radius / 2]));
      doubleRange.delta = core.num._check(dart.dsend(doubleRange.maximum, '-', [doubleRange.minimum]));
    }
    return doubleRange;
  };
  charts._getRotatedTextLocation = function _getRotatedTextLocation(pointX, pointY, labelText, textStyle, angle, axis) {
    if (dart.notNull(angle) > 0) {
      let textSize = charts._measureText(labelText, textStyle);
      let rotateTextSize = charts._measureText(labelText, textStyle, angle);
      pointX = dart.notNull(pointX) + ((dart.notNull(rotateTextSize.width) - dart.notNull(textSize.width))[$abs]() / 2 + dart.notNull(dart.notNull(angle) > 90 ? 90 : angle) / 90 * dart.notNull(textSize.height));
      pointX = dart.notNull(pointX) + (dart.notNull(angle) > 90 ? (dart.notNull(rotateTextSize.width) - dart.notNull(textSize.height))[$abs]() : 0);
      pointY = dart.notNull(pointY) + (dart.notNull(angle) > 90 ? dart.notNull(angle) / 180 * dart.notNull(textSize.height) - (180 - dart.notNull(angle)) / 180 * dart.notNull(textSize.height) : 0);
      pointX = dart.notNull(pointX) - (dart.notNull(angle) > 180 ? dart.notNull(angle) / 270 * dart.notNull(textSize.height) : 0);
      pointY = dart.notNull(pointY) + (dart.notNull(angle) > 180 ? (dart.notNull(rotateTextSize.height) - dart.notNull(textSize.height))[$abs]() - dart.notNull(angle) / 270 * dart.notNull(textSize.height) : 0);
      pointX = dart.notNull(pointX) - (dart.notNull(angle) > 270 ? (dart.notNull(rotateTextSize.width) - dart.notNull(textSize.height))[$abs]() : 0);
      pointY = dart.notNull(pointY) - (dart.notNull(angle) > 270 ? (dart.notNull(angle) - 270) / 90 * dart.notNull(textSize.height) + dart.notNull(textSize.height) * ((dart.notNull(angle) - 270) / 90) / 2 : 0);
      if (axis != null && axis.labelRotation[$isNegative]) {
        let rotation = axis.labelRotation[$abs]();
        if (rotation > 15 && rotation < 90) {
          pointX = dart.notNull(pointX) - (dart.notNull(rotateTextSize.width) - dart.notNull(textSize.height))[$abs]() / 2;
          pointY = dart.notNull(pointY) - (90 - rotation) / 90 / 2 * dart.notNull(textSize.height);
        } else if (rotation > 90 && rotation < 180) {
          pointX = dart.notNull(pointX) + (rotation > 164 ? 0 : (dart.notNull(rotateTextSize.width) - dart.notNull(textSize.height))[$abs]() / 2 + (rotation - 90) / 90 / 2 * dart.notNull(textSize.height));
          pointY = dart.notNull(pointY) + rotation / 180 / 2 * dart.notNull(textSize.height);
        } else if (rotation > 195 && rotation < 270) {
          pointX = dart.notNull(pointX) - (dart.notNull(rotateTextSize.width) - dart.notNull(textSize.height))[$abs]() / 2;
        } else if (rotation > 270 && rotation < 360) {
          pointX = dart.notNull(pointX) + (dart.notNull(rotateTextSize.width) - dart.notNull(textSize.height))[$abs]() / 2;
        }
      }
    }
    return new charts._ChartLocation.new(pointX, pointY);
  };
  charts._calculateSideBySidePositions = function _calculateSideBySidePositions(series, chart) {
    let t7, t7$, t7$0, t7$1, t7$2, t7$3, t7$4, t7$5, t7$6;
    let seriesCollection = charts._findRectSeriesCollection(chart);
    let rectCount = 0;
    let position = null;
    let stackingGroupPos = null;
    for (let series of seriesCollection) {
      if (charts.ColumnSeries.is(series)) {
        series[_rectPosition] = (t7 = rectCount, rectCount = t7 + 1, t7);
        series[_rectCount] = seriesCollection[$length];
      } else if (charts.BarSeries.is(series)) {
        series[_rectPosition] = (t7$ = rectCount, rectCount = t7$ + 1, t7$);
        series[_rectCount] = seriesCollection[$length];
      } else if (charts.RangeColumnSeries.is(series)) {
        series[_rectPosition] = (t7$0 = rectCount, rectCount = t7$0 + 1, t7$0);
        series[_rectCount] = seriesCollection[$length];
      } else if (charts.HiloSeries.is(series)) {
        series[_rectPosition] = (t7$1 = rectCount, rectCount = t7$1 + 1, t7$1);
        series[_rectCount] = seriesCollection[$length];
      } else if (charts.HiloOpenCloseSeries.is(series)) {
        series[_rectPosition] = (t7$2 = rectCount, rectCount = t7$2 + 1, t7$2);
        series[_rectCount] = seriesCollection[$length];
      } else if (charts.CandleSeries.is(series)) {
        series[_rectPosition] = (t7$3 = rectCount, rectCount = t7$3 + 1, t7$3);
        series[_rectCount] = seriesCollection[$length];
      }
    }
    if (charts._StackedSeriesBase.is(series)) {
      for (let i = 0; i < dart.notNull(seriesCollection[$length]); i = i + 1) {
        let series = null;
        if (charts._StackedSeriesBase.is(seriesCollection[$_get](i))) {
          series = charts._StackedSeriesBase._check(seriesCollection[$_get](i));
        }
        if (series != null) {
          let groupName = series.groupName;
          if (groupName != null) {
            stackingGroupPos == null ? stackingGroupPos = JSArrayOf_StackingGroup().of([]) : null;
            if (dart.test(stackingGroupPos[$isEmpty])) {
              series[_rectPosition] = rectCount;
              stackingGroupPos[$add](new charts._StackingGroup.new(groupName, dart.asInt((t7$4 = rectCount, rectCount = t7$4 + 1, t7$4))));
            } else if (dart.test(stackingGroupPos[$isNotEmpty])) {
              for (let j = 0; j < dart.notNull(stackingGroupPos[$length]); j = j + 1) {
                if (groupName == stackingGroupPos[$_get](j).groupName) {
                  series[_rectPosition] = stackingGroupPos[$_get](j).stackCount;
                  break;
                } else if (groupName != stackingGroupPos[$_get](j).groupName && j === dart.notNull(stackingGroupPos[$length]) - 1) {
                  series[_rectPosition] = rectCount;
                  stackingGroupPos[$add](new charts._StackingGroup.new(groupName, dart.asInt((t7$5 = rectCount, rectCount = t7$5 + 1, t7$5))));
                  break;
                }
              }
            }
          } else {
            if (position == null) {
              series[_rectPosition] = rectCount;
              position = (t7$6 = rectCount, rectCount = t7$6 + 1, t7$6);
            } else {
              series[_rectPosition] = position;
            }
          }
        }
      }
    }
    if (series[_seriesType$][$contains]("stackedcolumn") || series[_seriesType$][$contains]("stackedbar")) {
      for (let i = 0; i < dart.notNull(seriesCollection[$length]); i = i + 1) {
        let series = null;
        if (charts._StackedSeriesBase.is(seriesCollection[$_get](i))) {
          series = charts._StackedSeriesBase._check(seriesCollection[$_get](i));
        }
        if (series != null) {
          series[_rectCount] = rectCount;
        }
      }
    }
  };
  charts._findSeriesCollection = function _findSeriesCollection(chart, isRect = null) {
    let seriesCollection = JSArrayOfCartesianSeries().of([]);
    for (let xAxisIndex = 0; xAxisIndex < dart.notNull(chart[_chartAxis][_horizontalAxes][$length]); xAxisIndex = xAxisIndex + 1) {
      let xAxis = chart[_chartAxis][_horizontalAxes][$_get](xAxisIndex);
      for (let xSeriesIndex = 0; xSeriesIndex < dart.notNull(xAxis[_series][$length]); xSeriesIndex = xSeriesIndex + 1) {
        let xAxisSeries = xAxis[_series][$_get](xSeriesIndex);
        for (let yAxisIndex = 0; yAxisIndex < dart.notNull(chart[_chartAxis][_verticalAxes][$length]); yAxisIndex = yAxisIndex + 1) {
          let yAxis = chart[_chartAxis][_verticalAxes][$_get](yAxisIndex);
          for (let ySeriesIndex = 0; ySeriesIndex < dart.notNull(yAxis[_series][$length]); ySeriesIndex = ySeriesIndex + 1) {
            let yAxisSeries = yAxis[_series][$_get](ySeriesIndex);
            if (dart.equals(xAxisSeries, yAxisSeries) && (xAxisSeries[_seriesType$][$contains]("column") || xAxisSeries[_seriesType$][$contains]("bar") || xAxisSeries[_seriesType$][$contains]("hilo") || xAxisSeries[_seriesType$][$contains]("candle") || xAxisSeries[_seriesType$][$contains]("stackedarea") || xAxisSeries[_seriesType$][$contains]("stackedline")) && dart.test(xAxisSeries[_visible])) {
              seriesCollection[$add](yAxisSeries);
            }
          }
        }
      }
    }
    return seriesCollection;
  };
  charts.getRRectFromRect = function getRRectFromRect(rect, borderRadius) {
    return new ui.RRect.fromRectAndCorners(rect, {bottomLeft: borderRadius.bottomLeft, bottomRight: borderRadius.bottomRight, topLeft: borderRadius.topLeft, topRight: borderRadius.topRight});
  };
  charts._findRectSeriesCollection = function _findRectSeriesCollection(chart) {
    let seriesCollection = JSArrayOfCartesianSeries().of([]);
    for (let xAxisIndex = 0; xAxisIndex < dart.notNull(chart[_chartAxis][_horizontalAxes][$length]); xAxisIndex = xAxisIndex + 1) {
      let xAxis = chart[_chartAxis][_horizontalAxes][$_get](xAxisIndex);
      for (let xSeriesIndex = 0; xSeriesIndex < dart.notNull(xAxis[_series][$length]); xSeriesIndex = xSeriesIndex + 1) {
        let xAxisSeries = xAxis[_series][$_get](xSeriesIndex);
        for (let yAxisIndex = 0; yAxisIndex < dart.notNull(chart[_chartAxis][_verticalAxes][$length]); yAxisIndex = yAxisIndex + 1) {
          let yAxis = chart[_chartAxis][_verticalAxes][$_get](yAxisIndex);
          for (let ySeriesIndex = 0; ySeriesIndex < dart.notNull(yAxis[_series][$length]); ySeriesIndex = ySeriesIndex + 1) {
            let yAxisSeries = yAxis[_series][$_get](ySeriesIndex);
            if (dart.equals(xAxisSeries, yAxisSeries) && (xAxisSeries[_seriesType$][$contains]("column") || xAxisSeries[_seriesType$][$contains]("bar") || xAxisSeries[_seriesType$][$contains]("hilo") || xAxisSeries[_seriesType$] === "candle") && dart.test(xAxisSeries[_visible])) {
              seriesCollection[$add](yAxisSeries);
            }
          }
        }
      }
    }
    return seriesCollection;
  };
  charts._calculatePlotOffset = function _calculatePlotOffset(axisClipRect, plotOffset) {
    return new ui.Rect.fromLTWH(dart.notNull(axisClipRect.left) + dart.notNull(plotOffset.dx), dart.notNull(axisClipRect.top) + dart.notNull(plotOffset.dy), dart.notNull(axisClipRect.width) - 2 * dart.notNull(plotOffset.dx), dart.notNull(axisClipRect.height) - 2 * dart.notNull(plotOffset.dy));
  };
  charts._getLinearGradientPaint = function _getLinearGradientPaint(gradientFill, region, isInvertedAxis) {
    let t7;
    let gradientPaint = null;
    let gradient = null;
    gradient = dart.test(isInvertedAxis) ? new gradient$.LinearGradient.new({colors: gradientFill.colors, stops: gradientFill.stops, begin: alignment.Alignment.centerLeft, end: alignment.Alignment.centerRight}) : new gradient$.LinearGradient.new({colors: gradientFill.colors, stops: gradientFill.stops, begin: alignment.Alignment.bottomCenter, end: alignment.Alignment.topCenter});
    gradientPaint = (t7 = ui.Paint.new(), t7.shader = gradient.createShader(region), t7.style = ui.PaintingStyle.fill, t7);
    return gradientPaint;
  };
  charts._getLabelValue = function _getLabelValue(value, axis, showDigits = null) {
    let t7;
    if (dart.notNull(dart.toString(value)[$split](".")[$length]) > 1) {
      let str = dart.toString(value);
      let list = str[$split](".");
      value = charts.LogarithmicAxis.is(axis) ? math.pow(10, core.num._check(value)) : value;
      value = core.double.parse(core.String._check(dart.dsend(value, 'toStringAsFixed', [(t7 = showDigits, t7 == null ? 3 : t7)])));
      value = dart.equals(list[$_get](1), "0") || dart.equals(list[$_get](1), "00") || dart.equals(list[$_get](1), "000") || dart.equals(list[$_get](1), "0000") || dart.equals(list[$_get](1), "00000") || dart.equals(list[$_get](1), "000000") || dart.equals(list[$_get](1), "0000000") ? dart.dsend(value, 'round', []) : value;
    }
    let text = charts.NumericAxis.is(axis) && axis.numberFormat != null ? axis.numberFormat.format(value) : value;
    return dart.dload(axis, 'labelFormat') != null && !dart.equals(dart.dload(axis, 'labelFormat'), "") ? dart.dsend(dart.dload(axis, 'labelFormat'), 'replaceAll', [core.RegExp.new("{value}"), dart.toString(text)]) : dart.toString(text);
  };
  charts._pointToXValue = function _pointToXValue(chart, axis, rect, x, y) {
    if (axis != null) {
      if (!dart.test(chart[_requireInvertedAxis])) {
        return charts._coefficientToValue(dart.notNull(x) / dart.notNull(rect.width), axis);
      }
      return charts._coefficientToValue(1 - dart.notNull(y) / dart.notNull(rect.height), axis);
    }
    return 0 / 0;
  };
  charts._pointToYValue = function _pointToYValue(chart, axis, rect, x, y) {
    if (axis != null) {
      if (!dart.test(chart[_requireInvertedAxis])) {
        return charts._coefficientToValue(1 - dart.notNull(y) / dart.notNull(rect.height), axis);
      }
      return charts._coefficientToValue(dart.notNull(x) / dart.notNull(rect.width), axis);
    }
    return 0 / 0;
  };
  charts._coefficientToValue = function _coefficientToValue(coefficient, axis) {
    let result = null;
    coefficient = dart.test(axis.isInversed) ? 1 - dart.notNull(coefficient) : coefficient;
    result = core.double._check(dart.dsend(axis[_visibleRange].minimum, '+', [dart.notNull(axis[_visibleRange].delta) * dart.notNull(coefficient)]));
    return result;
  };
  charts._needsRepaintChart = function _needsRepaintChart(chart, oldChart) {
    if (chart.series[$length] == oldChart.series[$length]) {
      for (let seriesIndex = 0; seriesIndex < dart.notNull(chart.series[$length]); seriesIndex = seriesIndex + 1) {
        charts._canRepaintChartSeries(chart, oldChart, seriesIndex);
      }
    } else {
      chart.series[$forEach](dart.fn(series => series[_needsRepaint] = true, ChartSeriesTobool()));
    }
    if (chart[_chartAxis][_axisCollections][$length] == oldChart[_chartAxis][_axisCollections][$length]) {
      for (let axisIndex = 0; axisIndex < dart.notNull(chart.series[$length]); axisIndex = axisIndex + 1) {
        charts._canRepaintAxis(chart, oldChart, axisIndex);
        if (dart.test(chart[_chartAxis][_needsRepaint])) {
          break;
        }
      }
    } else {
      chart[_chartAxis][_needsRepaint] = true;
    }
  };
  charts._canRepaintChartSeries = function _canRepaintChartSeries(chart, oldChart, seriesIndex) {
    let t7, t7$, t7$0, t7$1, t7$2, t7$3, t7$4, t7$5, t7$6, t7$7, t7$8, t7$9, t7$10, t7$11, t7$12, t7$13, t7$14, t7$15, t7$16, t7$17, t7$18, t7$19, t7$20, t7$21, t7$22, t7$23, t7$24, t7$25, t7$26, t7$27, t7$28, t7$29, t7$30, t7$31, t7$32, t7$33, t7$34, t7$35, t7$36, t7$37, t7$38, t7$39, t7$40, t7$41, t7$42, t7$43, t7$44, t7$45, t7$46, t7$47, t7$48, t7$49, t7$50, t7$51, t7$52, t7$53, t7$54, t7$55, t7$56, t7$57, t7$58, t7$59, t7$60, t7$61, t7$62, t7$63, t7$64, t7$65, t7$66, t7$67, t7$68, t7$69, t7$70, t7$71, t7$72, t7$73, t7$74, t7$75, t7$76, t7$77, t7$78, t7$79, t7$80, t7$81, t7$82, t7$83, t7$84, t7$85, t7$86, t7$87, t7$88, t7$89, t7$90, t7$91, t7$92, t7$93, t7$94, t7$95, t7$96, t7$97, t7$98, t7$99, t7$100, t7$101;
    let series = charts.CartesianSeries._check(chart.series[$_get](seriesIndex));
    let oldWidgetSeries = charts.CartesianSeries._check(oldChart.series[$_get](seriesIndex));
    if (series.animationDuration != oldWidgetSeries.animationDuration || !dart.equals(oldChart[_chartSeries], chart[_chartSeries]) || (t7 = series.color, t7 == null ? null : t7.value) != (t7$ = oldWidgetSeries.color, t7$ == null ? null : t7$.value) || series.width != oldWidgetSeries.width || !dart.equals(series.isVisible, oldWidgetSeries.isVisible) || !dart.equals(series.enableTooltip, oldWidgetSeries.enableTooltip) || series.name != oldWidgetSeries.name || !dart.equals(series.gradient, oldWidgetSeries.gradient) || (t7$1 = (t7$0 = series[_xAxis$], t7$0 == null ? null : t7$0[_visibleRange]), t7$1 == null ? null : t7$1.delta) != (t7$3 = (t7$2 = oldWidgetSeries[_xAxis$], t7$2 == null ? null : t7$2[_visibleRange]), t7$3 == null ? null : t7$3.delta) || !dart.equals((t7$5 = (t7$4 = series[_xAxis$], t7$4 == null ? null : t7$4[_visibleRange]), t7$5 == null ? null : t7$5.maximum), (t7$7 = (t7$6 = oldWidgetSeries[_xAxis$], t7$6 == null ? null : t7$6[_visibleRange]), t7$7 == null ? null : t7$7.maximum)) || !dart.equals((t7$9 = (t7$8 = series[_xAxis$], t7$8 == null ? null : t7$8[_visibleRange]), t7$9 == null ? null : t7$9.minimum), (t7$11 = (t7$10 = oldWidgetSeries[_xAxis$], t7$10 == null ? null : t7$10[_visibleRange]), t7$11 == null ? null : t7$11.minimum)) || !dart.equals((t7$13 = (t7$12 = series[_xAxis$], t7$12 == null ? null : t7$12[_visibleRange]), t7$13 == null ? null : t7$13.interval), (t7$15 = (t7$14 = oldWidgetSeries[_xAxis$], t7$14 == null ? null : t7$14[_visibleRange]), t7$15 == null ? null : t7$15.interval)) || !dart.equals((t7$16 = series[_xAxis$], t7$16 == null ? null : t7$16.isVisible), (t7$17 = oldWidgetSeries[_xAxis$], t7$17 == null ? null : t7$17.isVisible)) || !dart.equals((t7$18 = series[_xAxis$], t7$18 == null ? null : t7$18[_bounds]), (t7$19 = oldWidgetSeries[_xAxis$], t7$19 == null ? null : t7$19[_bounds])) || !dart.equals((t7$20 = series[_xAxis$], t7$20 == null ? null : t7$20.isInversed), (t7$21 = oldWidgetSeries[_xAxis$], t7$21 == null ? null : t7$21.isInversed)) || (t7$22 = series[_xAxis$], t7$22 == null ? null : t7$22.desiredIntervals) != (t7$23 = oldWidgetSeries[_xAxis$], t7$23 == null ? null : t7$23.desiredIntervals) || !dart.equals((t7$24 = series[_xAxis$], t7$24 == null ? null : t7$24.enableAutoIntervalOnZooming), (t7$25 = oldWidgetSeries[_xAxis$], t7$25 == null ? null : t7$25.enableAutoIntervalOnZooming)) || !dart.equals((t7$26 = series[_xAxis$], t7$26 == null ? null : t7$26.opposedPosition), (t7$27 = oldWidgetSeries[_xAxis$], t7$27 == null ? null : t7$27.opposedPosition)) || !dart.equals((t7$28 = series[_xAxis$], t7$28 == null ? null : t7$28[_orientation]), (t7$29 = oldWidgetSeries[_xAxis$], t7$29 == null ? null : t7$29[_orientation])) || (t7$30 = series[_xAxis$], t7$30 == null ? null : t7$30.plotOffset) != (t7$31 = oldWidgetSeries[_xAxis$], t7$31 == null ? null : t7$31.plotOffset) || !dart.equals((t7$32 = series[_xAxis$], t7$32 == null ? null : t7$32.rangePadding), (t7$33 = oldWidgetSeries[_xAxis$], t7$33 == null ? null : t7$33.rangePadding)) || (t7$34 = series[_dataPoints$], t7$34 == null ? null : t7$34[$length]) != (t7$35 = oldWidgetSeries[_dataPoints$], t7$35 == null ? null : t7$35[$length]) || (t7$37 = (t7$36 = series[_yAxis$], t7$36 == null ? null : t7$36[_visibleRange]), t7$37 == null ? null : t7$37.delta) != (t7$39 = (t7$38 = oldWidgetSeries[_yAxis$], t7$38 == null ? null : t7$38[_visibleRange]), t7$39 == null ? null : t7$39.delta) || !dart.equals((t7$41 = (t7$40 = series[_yAxis$], t7$40 == null ? null : t7$40[_visibleRange]), t7$41 == null ? null : t7$41.maximum), (t7$43 = (t7$42 = oldWidgetSeries[_yAxis$], t7$42 == null ? null : t7$42[_visibleRange]), t7$43 == null ? null : t7$43.maximum)) || !dart.equals((t7$45 = (t7$44 = series[_yAxis$], t7$44 == null ? null : t7$44[_visibleRange]), t7$45 == null ? null : t7$45.minimum), (t7$47 = (t7$46 = oldWidgetSeries[_yAxis$], t7$46 == null ? null : t7$46[_visibleRange]), t7$47 == null ? null : t7$47.minimum)) || !dart.equals((t7$49 = (t7$48 = series[_yAxis$], t7$48 == null ? null : t7$48[_visibleRange]), t7$49 == null ? null : t7$49.interval), (t7$51 = (t7$50 = oldWidgetSeries[_yAxis$], t7$50 == null ? null : t7$50[_visibleRange]), t7$51 == null ? null : t7$51.interval)) || !dart.equals((t7$52 = series[_yAxis$], t7$52 == null ? null : t7$52.isVisible), (t7$53 = oldWidgetSeries[_yAxis$], t7$53 == null ? null : t7$53.isVisible)) || !dart.equals((t7$54 = series[_yAxis$], t7$54 == null ? null : t7$54[_bounds]), (t7$55 = oldWidgetSeries[_yAxis$], t7$55 == null ? null : t7$55[_bounds])) || !dart.equals((t7$56 = series[_yAxis$], t7$56 == null ? null : t7$56.isInversed), (t7$57 = oldWidgetSeries[_yAxis$], t7$57 == null ? null : t7$57.isInversed)) || (t7$58 = series[_yAxis$], t7$58 == null ? null : t7$58.desiredIntervals) != (t7$59 = oldWidgetSeries[_yAxis$], t7$59 == null ? null : t7$59.desiredIntervals) || !dart.equals((t7$60 = series[_yAxis$], t7$60 == null ? null : t7$60.enableAutoIntervalOnZooming), (t7$61 = oldWidgetSeries[_yAxis$], t7$61 == null ? null : t7$61.enableAutoIntervalOnZooming)) || !dart.equals((t7$62 = series[_yAxis$], t7$62 == null ? null : t7$62.opposedPosition), (t7$63 = oldWidgetSeries[_yAxis$], t7$63 == null ? null : t7$63.opposedPosition)) || !dart.equals((t7$64 = series[_yAxis$], t7$64 == null ? null : t7$64[_orientation]), (t7$65 = oldWidgetSeries[_yAxis$], t7$65 == null ? null : t7$65[_orientation])) || (t7$66 = series[_yAxis$], t7$66 == null ? null : t7$66.plotOffset) != (t7$67 = oldWidgetSeries[_yAxis$], t7$67 == null ? null : t7$67.plotOffset) || !dart.equals((t7$68 = series[_yAxis$], t7$68 == null ? null : t7$68.rangePadding), (t7$69 = oldWidgetSeries[_yAxis$], t7$69 == null ? null : t7$69.rangePadding)) || series.animationDuration != oldWidgetSeries.animationDuration || !dart.equals(series.borderColor, oldWidgetSeries.borderColor) || series.borderWidth != oldWidgetSeries.borderWidth || !dart.equals(series.sizeValueMapper, oldWidgetSeries.sizeValueMapper) || series.emptyPointSettings.borderWidth != oldWidgetSeries.emptyPointSettings.borderWidth || !dart.equals(series.emptyPointSettings.borderColor, oldWidgetSeries.emptyPointSettings.borderColor) || !dart.equals(series.emptyPointSettings.color, oldWidgetSeries.emptyPointSettings.color) || !dart.equals(series.emptyPointSettings.mode, oldWidgetSeries.emptyPointSettings.mode) || series[_maximumX] != oldWidgetSeries[_maximumX] || series[_maximumY] != oldWidgetSeries[_maximumY] || series[_minimumX] != oldWidgetSeries[_minimumX] || series[_minimumY] != oldWidgetSeries[_minimumY] || (t7$70 = series.dashArray, t7$70 == null ? null : t7$70[$length]) != (t7$71 = oldWidgetSeries.dashArray, t7$71 == null ? null : t7$71[$length]) || (t7$72 = series.dataSource, t7$72 == null ? null : t7$72[$length]) != (t7$73 = oldWidgetSeries.dataSource, t7$73 == null ? null : t7$73[$length]) || series.markerSettings.width != oldWidgetSeries.markerSettings.width || (t7$74 = series.markerSettings.color, t7$74 == null ? null : t7$74.value) != (t7$75 = oldWidgetSeries.markerSettings.color, t7$75 == null ? null : t7$75.value) || (t7$76 = series.markerSettings.borderColor, t7$76 == null ? null : t7$76.value) != (t7$77 = oldWidgetSeries.markerSettings.borderColor, t7$77 == null ? null : t7$77.value) || !dart.equals(series.markerSettings.isVisible, oldWidgetSeries.markerSettings.isVisible) || series.markerSettings.borderWidth != oldWidgetSeries.markerSettings.borderWidth || series.markerSettings.height != oldWidgetSeries.markerSettings.height || !dart.equals(series.markerSettings.shape, oldWidgetSeries.markerSettings.shape) || (t7$78 = series.dataLabelSettings.color, t7$78 == null ? null : t7$78.value) != (t7$79 = oldWidgetSeries.dataLabelSettings.color, t7$79 == null ? null : t7$79.value) || !dart.equals(series.dataLabelSettings.isVisible, oldWidgetSeries.dataLabelSettings.isVisible) || !dart.equals(series.dataLabelSettings.labelAlignment, oldWidgetSeries.dataLabelSettings.labelAlignment) || series.dataLabelSettings.opacity != oldWidgetSeries.dataLabelSettings.opacity || !dart.equals(series.dataLabelSettings.alignment, oldWidgetSeries.dataLabelSettings.alignment) || series.dataLabelSettings.angle != oldWidgetSeries.dataLabelSettings.angle || (t7$81 = (t7$80 = series.dataLabelSettings.textStyle, t7$80 == null ? null : t7$80.color), t7$81 == null ? null : t7$81.value) != (t7$83 = (t7$82 = oldWidgetSeries.dataLabelSettings.textStyle, t7$82 == null ? null : t7$82.color), t7$83 == null ? null : t7$83.value) || !dart.equals((t7$84 = series.dataLabelSettings.textStyle, t7$84 == null ? null : t7$84.fontStyle), (t7$85 = oldWidgetSeries.dataLabelSettings.textStyle, t7$85 == null ? null : t7$85.fontStyle)) || (t7$86 = series.dataLabelSettings.textStyle, t7$86 == null ? null : t7$86.fontFamily) != (t7$87 = oldWidgetSeries.dataLabelSettings.textStyle, t7$87 == null ? null : t7$87.fontFamily) || (t7$88 = series.dataLabelSettings.textStyle, t7$88 == null ? null : t7$88.fontSize) != (t7$89 = oldWidgetSeries.dataLabelSettings.textStyle, t7$89 == null ? null : t7$89.fontSize) || !dart.equals((t7$90 = series.dataLabelSettings.textStyle, t7$90 == null ? null : t7$90.fontWeight), (t7$91 = oldWidgetSeries.dataLabelSettings.textStyle, t7$91 == null ? null : t7$91.fontWeight)) || (t7$92 = series.dataLabelSettings.borderColor, t7$92 == null ? null : t7$92.value) != (t7$93 = oldWidgetSeries.dataLabelSettings.borderColor, t7$93 == null ? null : t7$93.value) || series.dataLabelSettings.borderWidth != oldWidgetSeries.dataLabelSettings.borderWidth || (t7$94 = series.dataLabelSettings.margin, t7$94 == null ? null : t7$94.right) != (t7$95 = oldWidgetSeries.dataLabelSettings.margin, t7$95 == null ? null : t7$95.right) || (t7$96 = series.dataLabelSettings.margin, t7$96 == null ? null : t7$96.bottom) != (t7$97 = oldWidgetSeries.dataLabelSettings.margin, t7$97 == null ? null : t7$97.bottom) || (t7$98 = series.dataLabelSettings.margin, t7$98 == null ? null : t7$98.top) != (t7$99 = oldWidgetSeries.dataLabelSettings.margin, t7$99 == null ? null : t7$99.top) || (t7$100 = series.dataLabelSettings.margin, t7$100 == null ? null : t7$100.left) != (t7$101 = oldWidgetSeries.dataLabelSettings.margin, t7$101 == null ? null : t7$101.left) || series.dataLabelSettings.borderRadius != oldWidgetSeries.dataLabelSettings.borderRadius) {
      series[_needsRepaint] = true;
    } else {
      series[_needsRepaint] = false;
    }
  };
  charts._canRepaintAxis = function _canRepaintAxis(chart, oldChart, axisIndex) {
    let t7, t7$, t7$0, t7$1;
    if (chart[_chartAxis][_axisCollections] != null && dart.test(chart[_chartAxis][_axisCollections][$isNotEmpty])) {
      let axis = chart[_chartAxis][_axisCollections][$_get](axisIndex);
      let oldWidgetAxis = oldChart[_chartAxis][_axisCollections][$_get](axisIndex);
      if (axis.rangePadding.index != oldWidgetAxis.rangePadding.index || axis.plotOffset != oldWidgetAxis.plotOffset || !dart.equals(axis[_orientation], oldWidgetAxis[_orientation]) || !dart.equals(axis.opposedPosition, oldWidgetAxis.opposedPosition) || axis.minorTicksPerInterval != oldWidgetAxis.minorTicksPerInterval || axis.desiredIntervals != oldWidgetAxis.desiredIntervals || !dart.equals(axis.isInversed, oldWidgetAxis.isInversed) || !dart.equals(axis[_bounds], oldWidgetAxis[_bounds]) || (t7 = axis.majorGridLines.dashArray, t7 == null ? null : t7[$length]) != (t7$ = oldWidgetAxis.majorGridLines.dashArray, t7$ == null ? null : t7$[$length]) || axis.majorGridLines.width != oldWidgetAxis.majorGridLines.width || !dart.equals(axis.majorGridLines.color, oldWidgetAxis.majorGridLines.color) || !dart.equals(axis.title, oldWidgetAxis.title) || !dart.equals(axis[_visibleRange].interval, oldWidgetAxis[_visibleRange].interval) || !dart.equals(axis[_visibleRange].minimum, oldWidgetAxis[_visibleRange].minimum) || !dart.equals(axis[_visibleRange].maximum, oldWidgetAxis[_visibleRange].maximum) || axis[_visibleRange].delta != oldWidgetAxis[_visibleRange].delta || !dart.equals(axis[_isInsideTickPosition], oldWidgetAxis[_isInsideTickPosition]) || axis.maximumLabels != oldWidgetAxis.maximumLabels || (t7$0 = axis.minorGridLines.dashArray, t7$0 == null ? null : t7$0[$length]) != (t7$1 = oldWidgetAxis.minorGridLines.dashArray, t7$1 == null ? null : t7$1[$length]) || axis.minorGridLines.width != oldWidgetAxis.minorGridLines.width || !dart.equals(axis.minorGridLines.color, oldWidgetAxis.minorGridLines.color) || axis.tickPosition.index != oldWidgetAxis.tickPosition.index) {
        chart[_chartAxis][_needsRepaint] = true;
      } else {
        chart[_chartAxis][_needsRepaint] = false;
      }
    }
  };
  charts._getInteractiveTooltipLabel = function _getInteractiveTooltipLabel(value, axis) {
    let t7;
    if (charts.CategoryAxis.is(axis)) {
      value = dart.dtest(dart.dsend(value, '<', [0])) ? 0 : value;
      value = dart.dsend(axis[_labels], '_get', [dart.dsend(dart.dtest(dart.dsend(dart.dsend(value, 'round', []), '>=', [dart.dload(axis[_labels], 'length')])) ? dart.dsend(value, '-', [1]) : value, 'round', [])]);
    } else if (charts.DateTimeAxis.is(axis)) {
      let dateFormat = (t7 = axis.dateFormat, t7 == null ? axis[_getLabelFormat](axis) : t7);
      value = dateFormat.format(new core.DateTime.fromMillisecondsSinceEpoch(core.int._check(dart.dsend(value, 'toInt', []))));
    } else {
      value = charts._getLabelValue(value, axis, axis.interactiveTooltip.decimalPlaces);
    }
    return value;
  };
  charts._getMarkerShapes = function _getMarkerShapes(markerType, position, size, series = null) {
    let path = ui.Path.new();
    switch (markerType) {
      case C551 || CT.C551:
      {
        {
          charts._ChartShapeUtils._drawCircle(path, position.dx, position.dy, size.width, size.height);
        }
        break;
      }
      case C609 || CT.C609:
      {
        {
          charts._ChartShapeUtils._drawRectangle(path, position.dx, position.dy, size.width, size.height);
        }
        break;
      }
      case C610 || CT.C610:
      {
        {
          if (series != null) {
            charts._loadMarkerImage(charts.CartesianSeries._check(series));
          }
        }
        break;
      }
      case C611 || CT.C611:
      {
        {
          charts._ChartShapeUtils._drawPentagon(path, position.dx, position.dy, size.width, size.height);
        }
        break;
      }
      case C612 || CT.C612:
      {
        {
          charts._ChartShapeUtils._drawVerticalLine(path, position.dx, position.dy, size.width, size.height);
        }
        break;
      }
      case C616 || CT.C616:
      {
        {
          charts._ChartShapeUtils._drawInvertedTriangle(path, position.dx, position.dy, size.width, size.height);
        }
        break;
      }
      case C613 || CT.C613:
      {
        {
          charts._ChartShapeUtils._drawHorizontalLine(path, position.dx, position.dy, size.width, size.height);
        }
        break;
      }
      case C614 || CT.C614:
      {
        {
          charts._ChartShapeUtils._drawDiamond(path, position.dx, position.dy, size.width, size.height);
        }
        break;
      }
      case C615 || CT.C615:
      {
        {
          charts._ChartShapeUtils._drawTriangle(path, position.dx, position.dy, size.width, size.height);
        }
        break;
      }
      case C617 || CT.C617:
      {
        break;
      }
    }
    return path;
  };
  charts._loadMarkerImage = function _loadMarkerImage(series) {
    return async.async(dart.void, function* _loadMarkerImage() {
      if (series.markerSettings != null && (dart.test(series.markerSettings.isVisible) || series[_seriesType$] === "scatter") && dart.equals(series.markerSettings.shape, charts.DataMarkerType.image) && series.markerSettings.image != null) {
        charts._calculateImage(null, series);
      }
    });
  };
  charts._getAnnotationLocation = function _getAnnotationLocation(annotation, chart) {
    let xAxisName = core.String._check(annotation.xAxisName);
    let yAxisName = core.String._check(annotation.yAxisName);
    let xAxis = null;
    let yAxis = null;
    let xValue = null;
    let location = null;
    if (dart.equals(annotation.coordinateUnit, charts.CoordinateUnit.logicalPixel)) {
      location = dart.equals(annotation.region, charts.AnnotationRegion.chart) ? new charts._ChartLocation.new(core.num._check(annotation.x), annotation.y) : new charts._ChartLocation.new(dart.notNull(chart[_chartAxis][_axisClipRect].left) + dart.notNull(core.num._check(annotation.x)), dart.notNull(chart[_chartAxis][_axisClipRect].top) + dart.notNull(annotation.y));
    } else {
      for (let i = 0; i < dart.notNull(chart[_chartAxis][_axisCollections][$length]); i = i + 1) {
        let axis = chart[_chartAxis][_axisCollections][$_get](i);
        if (xAxisName == axis[_name$] || xAxisName == null && axis[_name$] === "primaryXAxis") {
          xAxis = axis;
          if (charts.CategoryAxis.is(xAxis)) {
            if (annotation.x != null && core.num.tryParse(dart.toString(annotation.x)) != null) {
              xValue = core.num.tryParse(dart.toString(annotation.x));
            } else if (dart.dtest(dart.dsend(dart.dload(xAxis[_labels], 'length'), '>', [0]))) {
              xValue = core.num._check(dart.dsend(xAxis[_labels], 'indexOf', [annotation.x]));
            }
          } else if (charts.DateTimeAxis.is(xAxis)) {
            xValue = core.num._check(core.DateTime.is(annotation.x) ? dart.dload(annotation.x, 'millisecondsSinceEpoch') : annotation.x);
          } else {
            xValue = core.num._check(annotation.x);
          }
        } else if (yAxisName == axis[_name$] || yAxisName == null && axis[_name$] === "primaryYAxis") {
          yAxis = axis;
        }
      }
      if (xAxis != null && yAxis != null) {
        location = charts._calculatePoint(xValue, annotation.y, xAxis, yAxis, chart[_requireInvertedAxis], null, chart[_chartAxis][_axisClipRect]);
      }
    }
    return location;
  };
  charts._drawTooltipArrowhead = function _drawTooltipArrowhead(canvas, backgroundPath, fillPaint, strokePaint, x1, y1, x2, y2, x3, y3, x4, y4) {
    backgroundPath.moveTo(x1, y1);
    backgroundPath.lineTo(x2, y2);
    backgroundPath.lineTo(x3, y3);
    backgroundPath.lineTo(x4, y4);
    backgroundPath.lineTo(x1, y1);
    fillPaint.isAntiAlias = true;
    canvas.drawPath(backgroundPath, strokePaint);
    canvas.drawPath(backgroundPath, fillPaint);
  };
  charts._getRoundedCornerRect = function _getRoundedCornerRect(rect, cornerRadius) {
    return new ui.RRect.fromRectAndCorners(rect, {bottomLeft: new ui.Radius.circular(cornerRadius), bottomRight: new ui.Radius.circular(cornerRadius), topLeft: new ui.Radius.circular(cornerRadius), topRight: new ui.Radius.circular(cornerRadius)});
  };
  charts._pointToXVal = function _pointToXVal(chart, axis, rect, x, y) {
    if (axis != null) {
      return charts._coefficientToValue(dart.notNull(x) / dart.notNull(rect.width), axis);
    }
    return 0 / 0;
  };
  charts._pointToYVal = function _pointToYVal(chart, axis, rect, x, y) {
    if (axis != null) {
      return charts._coefficientToValue(1 - dart.notNull(y) / dart.notNull(rect.height), axis);
    }
    return 0 / 0;
  };
  charts._validateRectXPosition = function _validateRectXPosition(labelRect, chart) {
    let validatedRect = labelRect;
    if (dart.notNull(labelRect.right) >= dart.notNull(chart[_chartAxis][_axisClipRect].right)) {
      validatedRect = new ui.Rect.fromLTRB(dart.notNull(labelRect.left) - (dart.notNull(labelRect.right) - dart.notNull(chart[_chartAxis][_axisClipRect].right)), labelRect.top, chart[_chartAxis][_axisClipRect].right, labelRect.bottom);
    } else if (dart.notNull(labelRect.left) <= dart.notNull(chart[_chartAxis][_axisClipRect].left)) {
      validatedRect = new ui.Rect.fromLTRB(chart[_chartAxis][_axisClipRect].left, labelRect.top, dart.notNull(labelRect.right) + (dart.notNull(chart[_chartAxis][_axisClipRect].left) - dart.notNull(labelRect.left)), labelRect.bottom);
    }
    return validatedRect;
  };
  charts._validateRectYPosition = function _validateRectYPosition(labelRect, chart) {
    let validatedRect = labelRect;
    if (dart.notNull(labelRect.bottom) >= dart.notNull(chart[_chartAxis][_axisClipRect].bottom)) {
      validatedRect = new ui.Rect.fromLTRB(labelRect.left, dart.notNull(labelRect.top) - (dart.notNull(labelRect.bottom) - dart.notNull(chart[_chartAxis][_axisClipRect].bottom)), labelRect.right, chart[_chartAxis][_axisClipRect].bottom);
    } else if (dart.notNull(labelRect.top) <= dart.notNull(chart[_chartAxis][_axisClipRect].top)) {
      validatedRect = new ui.Rect.fromLTRB(labelRect.left, chart[_chartAxis][_axisClipRect].top, labelRect.right, dart.notNull(labelRect.bottom) + (dart.notNull(chart[_chartAxis][_axisClipRect].top) - dart.notNull(labelRect.top)));
    }
    return validatedRect;
  };
  charts._validateRectBounds = function _validateRectBounds(tooltipRect, boundary) {
    let validatedRect = tooltipRect;
    let difference = 0.0;
    if (dart.notNull(tooltipRect.left) < dart.notNull(boundary.left)) {
      difference = dart.notNull(boundary.left) - dart.notNull(tooltipRect.left) + 0.5;
      validatedRect = new ui.Rect.fromLTRB(dart.notNull(validatedRect.left) + difference, validatedRect.top, dart.notNull(validatedRect.right) + difference, validatedRect.bottom);
    }
    if (dart.notNull(tooltipRect.right) > dart.notNull(boundary.right)) {
      difference = dart.notNull(tooltipRect.right) - dart.notNull(boundary.right) + 0.5;
      validatedRect = new ui.Rect.fromLTRB(dart.notNull(validatedRect.left) - difference, validatedRect.top, dart.notNull(validatedRect.right) - difference, validatedRect.bottom);
    }
    if (dart.notNull(tooltipRect.top) < dart.notNull(boundary.top)) {
      difference = dart.notNull(boundary.top) - dart.notNull(tooltipRect.top) + 0.5;
      validatedRect = new ui.Rect.fromLTRB(validatedRect.left, dart.notNull(validatedRect.top) + difference, validatedRect.right, dart.notNull(validatedRect.bottom) + difference);
    }
    if (dart.notNull(tooltipRect.bottom) > dart.notNull(boundary.bottom)) {
      difference = dart.notNull(tooltipRect.bottom) - dart.notNull(boundary.bottom) + 0.5;
      validatedRect = new ui.Rect.fromLTRB(validatedRect.left, dart.notNull(validatedRect.top) - difference, validatedRect.right, dart.notNull(validatedRect.bottom) - difference);
    }
    return validatedRect;
  };
  charts._renderStackingRectSeries = function _renderStackingRectSeries(fillPaint, strokePaint, path, animationFactor, series, canvas, segmentRect, _currentPoint) {
    if (fillPaint != null) {
      dart.notNull(series.animationDuration) > 0 ? charts._animateStackedRectSeries(canvas, segmentRect, fillPaint, series, animationFactor, _currentPoint, series[_chart]) : canvas.drawRRect(segmentRect, fillPaint);
    }
    if (strokePaint != null) {
      if (series.dashArray[$_get](0) !== 0 && series.dashArray[$_get](1) !== 0) {
        let _series = series;
        charts._drawDashedLine(canvas, _series.dashArray, strokePaint, path);
      } else {
        dart.notNull(series.animationDuration) > 0 ? charts._animateStackedRectSeries(canvas, segmentRect, strokePaint, series, animationFactor, _currentPoint, series[_chart]) : canvas.drawRRect(segmentRect, strokePaint);
      }
    }
  };
  charts._renderStackedAreaSeries = function _renderStackedAreaSeries(series, fillPaint, strokePaint, canvas, _seriesIndex, getFillPaint) {
    let _path = ui.Path.new();
    let _strokePath = ui.Path.new();
    let rect = series[_chart][_chartAxis][_axisClipRect];
    let point1 = null;
    let point2 = null;
    let xAxis = series[_xAxis$];
    let yAxis = series[_yAxis$];
    let point = null;
    let _series = series;
    if (dart.test(series[_dataPoints$][$isNotEmpty])) {
      let startPoint = 0;
      let stackedValues = series[_stackingValues$][$_get](0);
      let seriesCollection = null;
      let previousSeries = null;
      seriesCollection = charts._findSeriesCollection(series[_chart]);
      point1 = charts._calculatePoint(core.num._check(series[_dataPoints$][$_get](0).xValue), math.max(core.num, core.num._check(yAxis[_visibleRange].minimum), stackedValues.startValues[$_get](0)), xAxis, yAxis, series[_chart][_requireInvertedAxis], series, rect);
      _path.moveTo(point1.x, point1.y);
      _strokePath.moveTo(point1.x, point1.y);
      for (let pointIndex = 0; pointIndex < dart.notNull(series[_dataPoints$][$length]); pointIndex = pointIndex + 1) {
        point = series[_dataPoints$][$_get](pointIndex);
        if (dart.test(point.isVisible)) {
          point1 = charts._calculatePoint(core.num._check(series[_dataPoints$][$_get](pointIndex).xValue), stackedValues.endValues[$_get](pointIndex), xAxis, yAxis, series[_chart][_requireInvertedAxis], series, rect);
          _path.lineTo(point1.x, point1.y);
          _strokePath.lineTo(point1.x, point1.y);
        } else {
          if (!dart.equals(series.emptyPointSettings.mode, charts.EmptyPointMode.drop)) {
            for (let j = pointIndex - 1; j >= startPoint; j = j - 1) {
              point2 = charts._calculatePoint(core.num._check(series[_dataPoints$][$_get](j).xValue), stackedValues.startValues[$_get](j), xAxis, yAxis, series[_chart][_requireInvertedAxis], series, rect);
              _path.lineTo(point2.x, point2.y);
              if (dart.equals(dart.dload(_series, 'borderDrawMode'), charts.BorderDrawMode.excludeBottom))
                _strokePath.lineTo(point1.x, point2.y);
              else if (dart.equals(dart.dload(_series, 'borderDrawMode'), charts.BorderDrawMode.all)) _strokePath.lineTo(point2.x, point2.y);
            }
            if (dart.notNull(series[_dataPoints$][$length]) > pointIndex + 1 && series[_dataPoints$][$_get](pointIndex + 1) != null && dart.test(series[_dataPoints$][$_get](pointIndex + 1).isVisible)) {
              point1 = charts._calculatePoint(core.num._check(series[_dataPoints$][$_get](pointIndex + 1).xValue), stackedValues.startValues[$_get](pointIndex + 1), xAxis, yAxis, series[_chart][_requireInvertedAxis], series, rect);
              _path.moveTo(point1.x, point1.y);
              _strokePath.moveTo(point1.x, point1.y);
            }
            startPoint = pointIndex + 1;
          }
        }
      }
      for (let j = dart.notNull(series[_dataPoints$][$length]) - 1; j >= startPoint; j = j - 1) {
        previousSeries = charts._getPreviousSeries(seriesCollection, _seriesIndex);
        if (!dart.equals(previousSeries.emptyPointSettings.mode, charts.EmptyPointMode.drop) || dart.test(previousSeries[_dataPoints$][$_get](j).isVisible)) {
          point2 = charts._calculatePoint(core.num._check(series[_dataPoints$][$_get](j).xValue), stackedValues.startValues[$_get](j), xAxis, yAxis, series[_chart][_requireInvertedAxis], series, rect);
          _path.lineTo(point2.x, point2.y);
          if (dart.equals(dart.dload(_series, 'borderDrawMode'), charts.BorderDrawMode.excludeBottom))
            _strokePath.lineTo(point1.x, point2.y);
          else if (dart.equals(dart.dload(_series, 'borderDrawMode'), charts.BorderDrawMode.all)) _strokePath.lineTo(point2.x, point2.y);
        }
      }
      charts._drawStackedAreaPath(_path, _strokePath, series, canvas, fillPaint, strokePaint);
    }
  };
  charts._drawStackedAreaPath = function _drawStackedAreaPath(_path, _strokePath, series, canvas, fillPaint, strokePaint) {
    let _pathRect = null;
    let stackedAreaSegment = null;
    _pathRect = _path.getBounds();
    stackedAreaSegment = series.segments[$_get](0);
    dart.dput(stackedAreaSegment, _pathRect$, _pathRect);
    series.selectionSettings[_selectionRenderer][_checkWithSelectionState](series.segments[$_get](0), series[_chart]);
    canvas.drawPath(_path, series.gradient == null ? fillPaint : series.segments[$_get](0).getFillPaint());
    if (!dart.equals(strokePaint.color, colors$.Colors.transparent)) {
      let _series = series;
      charts._drawDashedLine(canvas, _series.dashArray, strokePaint, _strokePath);
    }
  };
  charts._renderStackedLineSeries = function _renderStackedLineSeries(series, canvas, strokePaint) {
    let rect = series[_chart][_chartAxis][_axisClipRect];
    let point1 = null;
    let xAxis = series[_xAxis$];
    let yAxis = series[_yAxis$];
    let point = null;
    let path = ui.Path.new();
    let stackedValues = series[_stackingValues$][$_get](0);
    for (let i = 0; i < dart.notNull(series[_dataPoints$][$length]); i = i + 1) {
      point = series[_dataPoints$][$_get](i);
      if (dart.test(point.isVisible)) {
        point1 = charts._calculatePoint(core.num._check(series[_dataPoints$][$_get](i).xValue), stackedValues.endValues[$_get](i), xAxis, yAxis, series[_chart][_requireInvertedAxis], series, rect);
        i === 0 ? path.moveTo(point1.x, point1.y) : path.lineTo(point1.x, point1.y);
      } else {
        if (!dart.equals(series.emptyPointSettings.mode, charts.EmptyPointMode.drop)) {
          if (dart.notNull(series[_dataPoints$][$length]) > i + 1 && series[_dataPoints$][$_get](i + 1) != null && dart.test(series[_dataPoints$][$_get](i + 1).isVisible)) {
            point1 = charts._calculatePoint(core.num._check(series[_dataPoints$][$_get](i + 1).xValue), stackedValues.endValues[$_get](i + 1), xAxis, yAxis, series[_chart][_requireInvertedAxis], series, rect);
            path.moveTo(point1.x, point1.y);
          }
        }
      }
    }
    let _series = series;
    charts._drawDashedLine(canvas, _series.dashArray, strokePaint, path);
  };
  charts._stackedAreaPainter = function _stackedAreaPainter(canvas, series, seriesAnimation, chartElementAnimation) {
    canvas.save();
    let clipRect = null;
    let animationFactor = null;
    if (dart.test(series[_visible])) {
      let axisClipRect = charts._calculatePlotOffset(series[_chart][_chartAxis][_axisClipRect], new ui.Offset.new(series[_xAxis$].plotOffset, series[_yAxis$].plotOffset));
      canvas.clipRect(axisClipRect);
      animationFactor = seriesAnimation != null ? seriesAnimation.value : 1.0;
      if (dart.notNull(series.animationDuration) > 0 && !(dart.test(series[_chart][_chartState].widgetNeedUpdate) || dart.test(series[_chart][_chartState][_isLegendToggled]))) {
        charts._performLinearAnimation(series[_chart], series[_xAxis$], canvas, animationFactor);
      }
      series[_draw](canvas, animationFactor);
      clipRect = charts._calculatePlotOffset(new ui.Rect.fromLTRB(dart.notNull(series[_chart][_chartAxis][_axisClipRect].left) - dart.notNull(series.markerSettings.width), dart.notNull(series[_chart][_chartAxis][_axisClipRect].top) - dart.notNull(series.markerSettings.height), dart.notNull(series[_chart][_chartAxis][_axisClipRect].right) + dart.notNull(series.markerSettings.width), dart.notNull(series[_chart][_chartAxis][_axisClipRect].bottom) + dart.notNull(series.markerSettings.height)), new ui.Offset.new(series[_xAxis$].plotOffset, series[_yAxis$].plotOffset));
    }
    canvas.restore();
    if (dart.test(series[_visible]) && dart.notNull(animationFactor) > dart.notNull(series[_chart][_seriesDurationFactor])) {
      canvas.clipRect(clipRect);
      charts._renderSeriesElements(canvas, series, chartElementAnimation);
    }
  };
  charts._getPreviousSeries = function _getPreviousSeries(seriesCollection, seriesIndex) {
    for (let i = 0; i < dart.notNull(seriesCollection[$length]); i = i + 1) {
      if (seriesIndex == seriesCollection[$indexOf](seriesCollection[$_get](i)) && i !== 0) {
        return seriesCollection[$_get](i - 1);
      }
    }
    return seriesCollection[$_get](0);
  };
  charts._stackedRectPainter = function _stackedRectPainter(canvas, series, seriesAnimation, chartElementAnimation) {
    canvas.save();
    let clipRect = null;
    let animationFactor = null;
    if (dart.test(series[_visible])) {
      animationFactor = seriesAnimation != null && !(dart.test(series[_chart][_chartState].widgetNeedUpdate) || dart.test(series[_chart][_chartState][_isLegendToggled])) ? seriesAnimation.value : 1.0;
      let axisClipRect = charts._calculatePlotOffset(series[_chart][_chartAxis][_axisClipRect], new ui.Offset.new(series[_xAxis$].plotOffset, series[_yAxis$].plotOffset));
      canvas.clipRect(axisClipRect);
      series[_draw](canvas, animationFactor);
      clipRect = charts._calculatePlotOffset(new ui.Rect.fromLTRB(dart.notNull(series[_chart][_chartAxis][_axisClipRect].left) - dart.notNull(series.markerSettings.width), dart.notNull(series[_chart][_chartAxis][_axisClipRect].top) - dart.notNull(series.markerSettings.height), dart.notNull(series[_chart][_chartAxis][_axisClipRect].right) + dart.notNull(series.markerSettings.width), dart.notNull(series[_chart][_chartAxis][_axisClipRect].bottom) + dart.notNull(series.markerSettings.height)), new ui.Offset.new(series[_xAxis$].plotOffset, series[_yAxis$].plotOffset));
    }
    canvas.restore();
    if (dart.test(series[_visible]) && dart.notNull(animationFactor) > dart.notNull(series[_chart][_seriesDurationFactor])) {
      canvas.clipRect(clipRect);
      charts._renderSeriesElements(canvas, series, chartElementAnimation);
    }
  };
  charts._stackedLinePainter = function _stackedLinePainter(canvas, series, seriesAnimation, chartElementAnimation) {
    canvas.save();
    let clipRect = null;
    let animationFactor = null;
    if (dart.test(series[_visible])) {
      animationFactor = seriesAnimation != null ? seriesAnimation.value : 1.0;
      let axisClipRect = charts._calculatePlotOffset(series[_chart][_chartAxis][_axisClipRect], new ui.Offset.new(series[_xAxis$].plotOffset, series[_yAxis$].plotOffset));
      canvas.clipRect(axisClipRect);
      if (dart.notNull(series.animationDuration) > 0 && !(dart.test(series[_chart][_chartState].widgetNeedUpdate) || dart.test(series[_chart][_chartState][_isLegendToggled]))) {
        charts._performLinearAnimation(series[_chart], series[_xAxis$], canvas, animationFactor);
      }
      series[_draw](canvas, animationFactor);
      clipRect = charts._calculatePlotOffset(new ui.Rect.fromLTRB(dart.notNull(series[_chart][_chartAxis][_axisClipRect].left) - dart.notNull(series.markerSettings.width), dart.notNull(series[_chart][_chartAxis][_axisClipRect].top) - dart.notNull(series.markerSettings.height), dart.notNull(series[_chart][_chartAxis][_axisClipRect].right) + dart.notNull(series.markerSettings.width), dart.notNull(series[_chart][_chartAxis][_axisClipRect].bottom) + dart.notNull(series.markerSettings.height)), new ui.Offset.new(series[_xAxis$].plotOffset, series[_yAxis$].plotOffset));
    }
    canvas.restore();
    if (dart.test(series[_visible]) && dart.notNull(animationFactor) > dart.notNull(series[_chart][_seriesDurationFactor])) {
      canvas.clipRect(clipRect);
      charts._renderSeriesElements(canvas, series, chartElementAnimation);
    }
  };
  charts._getMonotonicSpline = function _getMonotonicSpline(xValues, yValues, yCoef, dataCount, dx) {
    let t9, t8, t7, t9$, t8$, t7$, t9$0, t8$0, t7$0, t9$1, t8$1, t7$1;
    let count = dataCount;
    let index = -1;
    let slope = core.List.new(dart.notNull(count) - 1);
    let coefficient = core.List.new(count);
    for (let i = 0; i < dart.notNull(count) - 1; i = i + 1) {
      dx[$_set](i, dart.notNull(xValues[$_get](i + 1)) - dart.notNull(xValues[$_get](i)));
      dart.dsend(slope, '_set', [i, (dart.notNull(yValues[$_get](i + 1)) - dart.notNull(yValues[$_get](i))) / dart.notNull(dx[$_get](i))]);
      if (dart.equals(dart.dsend(dart.dsend(slope, '_get', [i]), 'toDouble', []), 1 / 0)) {
        dart.dsend(slope, '_set', [i, 0]);
      }
    }
    if (dart.equals(dart.dload(slope, 'length'), 0)) {
      return null;
    }
    dart.equals(dart.dsend(slope, '_get', [0]), 0 / 0) ? (t7 = coefficient, t8 = index = index + 1, t9 = 0, dart.dsend(t7, '_set', [t8, t9]), t9) : (t7$ = coefficient, t8$ = index = index + 1, t9$ = dart.dsend(slope, '_get', [0]), dart.dsend(t7$, '_set', [t8$, t9$]), t9$);
    for (let i = 0; i < dart.notNull(dx[$length]) - 1; i = i + 1) {
      if (dart.dtest(dart.dsend(dart.dload(slope, 'length'), '>', [i + 1]))) {
        let m = dart.dsend(slope, '_get', [i]);
        let next = dart.dsend(slope, '_get', [i + 1]);
        if (dart.dtest(dart.dsend(dart.dsend(m, '*', [next]), '<=', [0]))) {
          dart.dsend(coefficient, '_set', [index = index + 1, 0]);
        } else {
          if (dx[$_get](i) === 0) {
            dart.dsend(coefficient, '_set', [index = index + 1, 0]);
          } else {
            let firstPoint = dx[$_get](i)[$toDouble]();
            let nextPoint = dx[$_get](i + 1)[$toDouble]();
            let interPoint = firstPoint + nextPoint;
            dart.dsend(coefficient, '_set', [index = index + 1, 3 * interPoint / ((interPoint + nextPoint) / dart.notNull(core.num._check(m)) + (interPoint + firstPoint) / dart.notNull(core.num._check(next)))]);
          }
        }
      }
    }
    dart.equals(dart.dsend(slope, '_get', [dart.dsend(dart.dload(slope, 'length'), '-', [1])]), 0 / 0) ? (t7$0 = coefficient, t8$0 = index = index + 1, t9$0 = 0, dart.dsend(t7$0, '_set', [t8$0, t9$0]), t9$0) : (t7$1 = coefficient, t8$1 = index = index + 1, t9$1 = dart.dsend(slope, '_get', [dart.dsend(dart.dload(slope, 'length'), '-', [1])]), dart.dsend(t7$1, '_set', [t8$1, t9$1]), t9$1);
    for (let i = 0; i < dart.notNull(core.num._check(dart.dload(coefficient, 'length'))); i = i + 1) {
      yCoef[$add](core.num._check(dart.dsend(coefficient, '_get', [i])));
    }
    return yCoef;
  };
  charts._getCardinalSpline = function _getCardinalSpline(xValues, yValues, yCoef, dataCount, tension) {
    if (dart.notNull(tension) < 0.1) {
      tension = 0.0;
    } else if (dart.notNull(tension) > 1) {
      tension = 1.0;
    }
    let count = dataCount;
    let tangentsX = core.List.new(count);
    for (let i = 0; i < dart.notNull(count); i = i + 1) {
      if (i === 0 && dart.notNull(xValues[$length]) > 2) {
        dart.dsend(tangentsX, '_set', [i, dart.notNull(tension) * (dart.notNull(xValues[$_get](i + 2)) - dart.notNull(xValues[$_get](i)))]);
      } else if (i === dart.notNull(count) - 1 && dart.notNull(count) - 3 >= 0) {
        dart.dsend(tangentsX, '_set', [i, dart.notNull(tension) * (dart.notNull(xValues[$_get](dart.notNull(count) - 1)) - dart.notNull(xValues[$_get](dart.notNull(count) - 3)))]);
      } else if (i - 1 >= 0 && dart.notNull(xValues[$length]) > i + 1) {
        dart.dsend(tangentsX, '_set', [i, dart.notNull(tension) * (dart.notNull(xValues[$_get](i + 1)) - dart.notNull(xValues[$_get](i - 1)))]);
      }
      if (dart.equals(dart.dsend(tangentsX, '_get', [i]), 0 / 0)) {
        dart.dsend(tangentsX, '_set', [i, 0]);
      }
    }
    for (let i = 0; i < dart.notNull(core.num._check(dart.dload(tangentsX, 'length'))); i = i + 1) {
      yCoef[$add](core.num._check(dart.dsend(tangentsX, '_get', [i])));
    }
    return yCoef;
  };
  charts._naturalSpline = function _naturalSpline(xValues, yValues, yCoeff, dataCount, splineType) {
    let t9, t8, t7;
    let count = dataCount;
    let yCoef = core.List.new(count);
    for (let i = 0; i < dart.notNull(count); i = i + 1) {
      dart.dsend(yCoef, '_set', [i, 0]);
    }
    let u = core.List.new(count);
    if (dart.equals(splineType, charts.SplineType.clamped) && dart.notNull(xValues[$length]) > 1) {
      dart.dsend(u, '_set', [0, 0.5]);
      let d0 = (dart.notNull(xValues[$_get](1)) - dart.notNull(xValues[$_get](0))) / (dart.notNull(yValues[$_get](1)) - dart.notNull(yValues[$_get](0)));
      let dn = (dart.notNull(xValues[$_get](dart.notNull(count) - 1)) - dart.notNull(xValues[$_get](dart.notNull(count) - 2))) / (dart.notNull(yValues[$_get](dart.notNull(count) - 1)) - dart.notNull(yValues[$_get](dart.notNull(count) - 2)));
      dart.dsend(yCoef, '_set', [0, 3 * (dart.notNull(yValues[$_get](1)) - dart.notNull(yValues[$_get](0))) / (dart.notNull(xValues[$_get](1)) - dart.notNull(xValues[$_get](0))) - 3 * core.num._check(d0)]);
      dart.dsend(yCoef, '_set', [dart.notNull(count) - 1, 3 * core.num._check(dn) - 3 * (dart.notNull(yValues[$_get](dart.notNull(count) - 1)) - dart.notNull(yValues[$_get](dart.notNull(count) - 2))) / (dart.notNull(xValues[$_get](dart.notNull(count) - 1)) - dart.notNull(xValues[$_get](dart.notNull(count) - 2)))]);
      if (dart.equals(dart.dsend(yCoef, '_get', [0]), 1 / 0) || dart.equals(dart.dsend(yCoef, '_get', [0]), 0 / 0)) {
        dart.dsend(yCoef, '_set', [0, 0]);
      }
      if (dart.equals(dart.dsend(yCoef, '_get', [dart.notNull(count) - 1]), 1 / 0) || dart.equals(dart.dsend(yCoef, '_get', [dart.notNull(count) - 1]), 0 / 0)) {
        dart.dsend(yCoef, '_set', [dart.notNull(count) - 1, 0]);
      }
    } else {
      dart.dsend(yCoef, '_set', [0, (t7 = u, t8 = 0, t9 = 0, dart.dsend(t7, '_set', [t8, t9]), t9)]);
      dart.dsend(yCoef, '_set', [dart.notNull(count) - 1, 0]);
    }
    for (let i = 1; i < dart.notNull(count) - 1; i = i + 1) {
      if (yValues[$_get](i + 1) !== 0 / 0 && yValues[$_get](i - 1) !== 0 / 0 && yValues[$_get](i) !== 0 / 0 && yValues[$_get](i + 1) != null && xValues[$_get](i + 1) != null && yValues[$_get](i - 1) != null && xValues[$_get](i - 1) != null && xValues[$_get](i) != null && yValues[$_get](i) != null) {
        let d1 = xValues[$_get](i)[$toDouble]() - xValues[$_get](i - 1)[$toDouble]();
        let d2 = xValues[$_get](i + 1)[$toDouble]() - xValues[$_get](i - 1)[$toDouble]();
        let d3 = xValues[$_get](i + 1)[$toDouble]() - xValues[$_get](i)[$toDouble]();
        let dy1 = yValues[$_get](i + 1)[$toDouble]() - yValues[$_get](i)[$toDouble]();
        let dy2 = yValues[$_get](i)[$toDouble]() - yValues[$_get](i - 1)[$toDouble]();
        if (xValues[$_get](i) == xValues[$_get](i - 1) || xValues[$_get](i) == xValues[$_get](i + 1)) {
          dart.dsend(yCoef, '_set', [i, 0]);
          dart.dsend(u, '_set', [i, 0]);
        } else {
          let p = 1 / (d1 * dart.notNull(core.num._check(dart.dsend(yCoef, '_get', [i - 1]))) + 2 * d2);
          dart.dsend(yCoef, '_set', [i, dart.dsend(dart.dsend(p, '_negate', []), '*', [d3])]);
          if (d1 !== null && dart.dsend(u, '_get', [i - 1]) != null) {
            dart.dsend(u, '_set', [i, dart.dsend(p, '*', [6 * (dy1 / d3 - dy2 / d1) - d1 * dart.notNull(core.num._check(dart.dsend(u, '_get', [i - 1])))])]);
          }
        }
      }
    }
    for (let k = dart.notNull(count) - 2; k >= 0; k = k - 1) {
      if (dart.dsend(u, '_get', [k]) != null && dart.dsend(yCoef, '_get', [k]) != null && dart.dsend(yCoef, '_get', [k + 1]) != null) {
        dart.dsend(yCoef, '_set', [k, dart.dsend(dart.dsend(dart.dsend(yCoef, '_get', [k]), '*', [dart.dsend(yCoef, '_get', [k + 1])]), '+', [dart.dsend(u, '_get', [k])])]);
      }
    }
    for (let i = 0; i < dart.notNull(core.num._check(dart.dload(yCoef, 'length'))); i = i + 1) {
      yCoeff[$add](core.num._check(dart.dsend(yCoef, '_get', [i])));
    }
    return yCoeff;
  };
  charts._calculateMonotonicControlPoints = function _calculateMonotonicControlPoints(pointX, pointY, pointX1, pointY1, coefficientY, coefficientY1, dx) {
    let value = dart.notNull(dx) / 3;
    let values = ListOfdouble().new(4);
    values[$_set](0, dart.notNull(pointX) + core.num._check(value));
    values[$_set](1, dart.notNull(pointY) + dart.notNull(coefficientY) * core.num._check(value));
    values[$_set](2, dart.notNull(pointX1) - core.num._check(value));
    values[$_set](3, dart.notNull(pointY1) - dart.notNull(coefficientY1) * core.num._check(value));
    return values;
  };
  charts._calculateCardinalControlPoints = function _calculateCardinalControlPoints(pointX, pointY, pointX1, pointY1, coefficientY, coefficientY1) {
    let values = ListOfdouble().new(4);
    values[$_set](0, dart.notNull(pointX) + dart.notNull(coefficientY) / 3);
    values[$_set](1, dart.notNull(pointY) + dart.notNull(coefficientY) / 3);
    values[$_set](2, dart.notNull(pointX1) - dart.notNull(coefficientY1) / 3);
    values[$_set](3, dart.notNull(pointY1) - dart.notNull(coefficientY1) / 3);
    return values;
  };
  charts._calculateControlPoints = function _calculateControlPoints(xValues, yValues, yCoef, nextyCoef, i) {
    let controlPoints = ListOfdouble().new(4);
    let yCoeff1 = yCoef;
    let yCoeff2 = nextyCoef;
    let x = xValues[$_get](i)[$toDouble]();
    let y = yValues[$_get](i)[$toDouble]();
    let nextX = xValues[$_get](dart.notNull(i) + 1)[$toDouble]();
    let nextY = yValues[$_get](dart.notNull(i) + 1)[$toDouble]();
    let deltaX2 = nextX - x;
    deltaX2 = deltaX2 * deltaX2;
    let dx1 = 2 * x + nextX;
    let dx2 = x + 2 * nextX;
    let dy1 = 2 * y + nextY;
    let dy2 = y + 2 * nextY;
    let y1 = 0.3333333333333333 * (dy1 - 0.3333333333333333 * deltaX2 * (dart.notNull(yCoeff1) + 0.5 * dart.notNull(yCoeff2)));
    let y2 = 0.3333333333333333 * (dy2 - 0.3333333333333333 * deltaX2 * (0.5 * dart.notNull(yCoeff1) + dart.notNull(yCoeff2)));
    let startControlPointsX = dx1 * 0.3333333333333333;
    let startControlPointsY = y1;
    let endControlPointsX = dx2 * 0.3333333333333333;
    let endControlPointsY = y2;
    controlPoints[$_set](0, core.double._check(startControlPointsX));
    controlPoints[$_set](1, core.double._check(startControlPointsY));
    controlPoints[$_set](2, core.double._check(endControlPointsX));
    controlPoints[$_set](3, core.double._check(endControlPointsY));
    return controlPoints;
  };
  charts._calculateSplineAreaControlPoints = function _calculateSplineAreaControlPoints(series) {
    let yCoef = JSArrayOfnum().of([]);
    let xValues = JSArrayOfnum().of([]);
    let yValues = JSArrayOfnum().of([]);
    let splineType = null;
    if (charts.SplineAreaSeries.is(series)) {
      splineType = series.splineType;
    }
    for (let i = 0; i < dart.notNull(series[_dataPoints$][$length]); i = i + 1) {
      xValues[$add](core.num._check(series[_dataPoints$][$_get](i).xValue));
      yValues[$add](core.num._check(series[_dataPoints$][$_get](i).yValue));
    }
    if (charts.SplineAreaSeries.is(series) && dart.test(xValues[$isNotEmpty])) {
      let dx = ListOfnum().new(dart.notNull(xValues[$length]) - 1);
      if (dart.equals(splineType, charts.SplineType.monotonic)) {
        yCoef = charts._getMonotonicSpline(xValues, yValues, yCoef, xValues[$length], dx);
      } else if (dart.equals(splineType, charts.SplineType.cardinal)) {
        yCoef = charts._getCardinalSpline(xValues, yValues, yCoef, xValues[$length], series.cardinalSplineTension);
      } else {
        yCoef = charts._naturalSpline(xValues, yValues, yCoef, xValues[$length], splineType);
      }
      charts._updateSplineAreaControlPoints(series, splineType, xValues, yValues, yCoef, dx);
    }
  };
  charts._updateSplineAreaControlPoints = function _updateSplineAreaControlPoints(series, splineType, xValues, yValues, yCoef, dx) {
    for (let pointIndex = 0; pointIndex < dart.notNull(xValues[$length]) - 1; pointIndex = pointIndex + 1) {
      let controlPoints = JSArrayOfdouble().of([]);
      series[_drawPoints] = JSArrayOf_ControlPoints().of([]);
      if (xValues[$_get](pointIndex) != null && yValues[$_get](pointIndex) != null && xValues[$_get](pointIndex + 1) != null && yValues[$_get](pointIndex + 1) != null) {
        let x = xValues[$_get](pointIndex)[$toDouble]();
        let y = yValues[$_get](pointIndex)[$toDouble]();
        let nextX = xValues[$_get](pointIndex + 1)[$toDouble]();
        let nextY = yValues[$_get](pointIndex + 1)[$toDouble]();
        if (dart.equals(splineType, charts.SplineType.monotonic)) {
          controlPoints = charts._calculateMonotonicControlPoints(x, y, nextX, nextY, yCoef[$_get](pointIndex)[$toDouble](), yCoef[$_get](pointIndex + 1)[$toDouble](), dx[$_get](pointIndex)[$toDouble]());
          series[_drawPoints][$add](new charts._ControlPoints.new(controlPoints[$_get](0), controlPoints[$_get](1)));
          series[_drawPoints][$add](new charts._ControlPoints.new(controlPoints[$_get](2), controlPoints[$_get](3)));
          series.drawControlPoints[$add](new charts._ListControlPoints.new(series[_drawPoints]));
        } else if (dart.equals(splineType, charts.SplineType.cardinal)) {
          controlPoints = charts._calculateCardinalControlPoints(x, y, nextX, nextY, yCoef[$_get](pointIndex)[$toDouble](), yCoef[$_get](pointIndex + 1)[$toDouble]());
          series[_drawPoints][$add](new charts._ControlPoints.new(controlPoints[$_get](0), controlPoints[$_get](1)));
          series[_drawPoints][$add](new charts._ControlPoints.new(controlPoints[$_get](2), controlPoints[$_get](3)));
          series.drawControlPoints[$add](new charts._ListControlPoints.new(series[_drawPoints]));
        } else {
          controlPoints = charts._calculateControlPoints(xValues, yValues, yCoef[$_get](pointIndex)[$toDouble](), yCoef[$_get](pointIndex + 1)[$toDouble](), pointIndex);
          series[_drawPoints][$add](new charts._ControlPoints.new(controlPoints[$_get](0), controlPoints[$_get](1)));
          series[_drawPoints][$add](new charts._ControlPoints.new(controlPoints[$_get](2), controlPoints[$_get](3)));
          series.drawControlPoints[$add](new charts._ListControlPoints.new(series[_drawPoints]));
        }
      }
    }
  };
  charts._getOldAxis = function _getOldAxis(axis, oldAxisList) {
    for (let i = 0; i < dart.notNull(oldAxisList[$length]); i = i + 1) {
      if (oldAxisList[$_get](i)[_name$] == axis[_name$]) {
        return oldAxisList[$_get](i);
      }
    }
    return null;
  };
  charts._getVisiblePointIndex = function _getVisiblePointIndex(points, loc, index) {
    if (loc === "before") {
      for (let i = index; dart.notNull(i) >= 0; i = dart.notNull(i) - 1) {
        if (dart.test(points[$_get](dart.notNull(i) - 1).isVisible)) {
          return dart.notNull(i) - 1;
        }
      }
    } else {
      for (let i = index; dart.notNull(i) < dart.notNull(points[$length]); i = dart.notNull(i) + 1) {
        if (dart.test(points[$_get](dart.notNull(i) + 1).isVisible)) {
          return dart.notNull(i) + 1;
        }
      }
    }
    return null;
  };
  charts._getCircularDataLabelColor = function _getCircularDataLabelColor(currentPoint, series, chart) {
    let t7;
    let color = null;
    let dataLabel = series.dataLabelSettings;
    let _seriesType = series[_seriesType$] === "pie" ? "Pie" : series[_seriesType$] === "doughnut" ? "Doughnut" : series[_seriesType$] === "radialbar" ? "RadialBar" : "Default";
    switch (_seriesType) {
      case "Pie":
      case "Doughnut":
      {
        if (dart.equals(currentPoint.renderPosition, charts.ChartDataLabelPosition.inside) && !dart.test(currentPoint.saturationRegionOutside)) {
          color = charts._getInnerColor(dataLabel.color, currentPoint.fill, chart[_chartState][_chartTheme]);
        } else {
          color = charts._getOuterColor(dataLabel.color, dart.test(dataLabel.useSeriesColor) ? currentPoint.fill : (t7 = chart.backgroundColor, t7 == null ? chart[_chartState][_chartTheme].plotAreaBackgroundColor : t7), chart[_chartState][_chartTheme]);
        }
        break;
      }
      case "RadialBar":
      {
        let radialBar = charts.RadialBarSeries._check(series);
        color = radialBar.trackColor;
        break;
      }
      default:
      {
        color = colors$.Colors.white;
      }
    }
    return charts._getSaturationColor(color);
  };
  charts._getInnerColor = function _getInnerColor(dataLabelColor, pointColor, theme) {
    return dataLabelColor != null ? dataLabelColor : pointColor != null ? pointColor : dart.equals(theme.brightness, ui.Brightness.light) ? C894 || CT.C894 : colors$.Colors.black;
  };
  charts._getOuterColor = function _getOuterColor(dataLabelColor, backgroundColor, theme) {
    return dataLabelColor != null ? dataLabelColor : !dart.equals(backgroundColor, colors$.Colors.transparent) ? backgroundColor : dart.equals(theme.brightness, ui.Brightness.light) ? C894 || CT.C894 : colors$.Colors.black;
  };
  charts._checkIsAnyPointSelect = function _checkIsAnyPointSelect(series, point, chart) {
    let isAnyPointSelected = false;
    if (dart.test(series.initialSelectedDataIndexes[$isNotEmpty])) {
      for (let i = 0; i < dart.notNull(series.initialSelectedDataIndexes[$length]); i = i + 1) {
        let data = series.initialSelectedDataIndexes[$_get](i);
        for (let j = 0; j < dart.notNull(series[_renderPoints][$length]); j = j + 1) {
          if (j === data) {
            isAnyPointSelected = true;
            break;
          }
        }
      }
    }
    return isAnyPointSelected;
  };
  charts._renderDataLabel = function _renderDataLabel(series, canvas, chart, seriesIndex, animation) {
    let point = null;
    let dataLabel = series.dataLabelSettings;
    let angle = dataLabel.angle;
    let labelLocation = null;
    let label = null;
    let animateOpacity = animation != null ? animation.value : 1.0;
    let dataLabelArgs = null;
    let dataLabelStyle = null;
    let renderDataLabelRegions = JSArrayOfRect().of([]);
    for (let pointIndex = 0; pointIndex < dart.notNull(series[_renderPoints][$length]); pointIndex = pointIndex + 1) {
      point = series[_renderPoints][$_get](pointIndex);
      if (dart.test(point.isVisible)) {
        label = point.text;
        label = series[_renderer].getLabelContent(series, point, pointIndex, seriesIndex, label);
        dataLabelStyle = dataLabel.textStyle;
        if (chart.onDataLabelRender != null) {
          dataLabelArgs = new charts.DataLabelRenderArgs.new();
          dataLabelArgs.text = label;
          dataLabelArgs.textStyle = dataLabelStyle;
          dataLabelArgs.series = series;
          dataLabelArgs.dataPoints = series[_renderPoints];
          dataLabelArgs.pointIndex = pointIndex;
          chart.onDataLabelRender(dataLabelArgs);
          label = dataLabelArgs.text;
          dataLabelStyle = dataLabelArgs.textStyle;
        }
        dataLabelStyle = chart.onDataLabelRender == null ? series[_renderer].getDataLabelStyle(series, point, pointIndex, seriesIndex, dataLabelStyle, chart) : dataLabelStyle;
        let textSize = charts._measureText(label, dataLabelStyle);
        if (series[_seriesType$] === "radialbar") {
          labelLocation = charts._degreeToPoint(point.startAngle, (dart.notNull(point.innerRadius) + dart.notNull(point.outerRadius)) / 2, point.center);
          labelLocation = new ui.Offset.new(dart.notNull(labelLocation.dx) - dart.notNull(textSize.width) - 5 + (angle === 0 ? 0 : dart.notNull(textSize.width) / 2), dart.notNull(labelLocation.dy) - dart.notNull(textSize.height) / 2 + (angle === 0 ? 0 : dart.notNull(textSize.height) / 2));
          point.labelRect = new ui.Rect.fromLTWH(dart.notNull(labelLocation.dx) - 2, dart.notNull(labelLocation.dy) - 2, dart.notNull(textSize.width) + 2 * 2, dart.notNull(textSize.height) + 2 * 2);
          charts._drawLabel(point.labelRect, labelLocation, label, null, canvas, series, point, pointIndex, seriesIndex, chart, dataLabelStyle, renderDataLabelRegions, animateOpacity);
        } else {
          charts._setLabelPosition(dataLabel, point, textSize, chart, canvas, renderDataLabelRegions, pointIndex, label, series, animateOpacity, dataLabelStyle, seriesIndex);
        }
      }
    }
  };
  charts._setLabelPosition = function _setLabelPosition(dataLabel, point, textSize, chart, canvas, renderDataLabelRegions, pointIndex, label, series, animateOpacity, dataLabelStyle, seriesIndex) {
    let t9, t8, t7, t7$, t8$, t7$0;
    let angle = dataLabel.angle;
    let labelLocation = null;
    let smartLabel = core.bool._check(dart.dload(series, 'enableSmartLabels'));
    if (dart.equals(dataLabel.labelPosition, charts.ChartDataLabelPosition.inside)) {
      labelLocation = charts._degreeToPoint(point.midAngle, (dart.notNull(point.innerRadius) + dart.notNull(point.outerRadius)) / 2, point.center);
      labelLocation = new ui.Offset.new(dart.notNull(labelLocation.dx) - dart.notNull(textSize.width) / 2 + (angle === 0 ? 0 : dart.notNull(textSize.width) / 2), dart.notNull(labelLocation.dy) - dart.notNull(textSize.height) / 2 + (angle === 0 ? 0 : dart.notNull(textSize.height) / 2));
      point.labelRect = new ui.Rect.fromLTWH(dart.notNull(labelLocation.dx) - 2, dart.notNull(labelLocation.dy) - 2, dart.notNull(textSize.width) + 2 * 2, dart.notNull(textSize.height) + 2 * 2);
      let isDataLabelCollide = charts._isCollide(point.labelRect, renderDataLabelRegions);
      if (dart.test(smartLabel) && dart.test(isDataLabelCollide)) {
        point.saturationRegionOutside = true;
        point.renderPosition = charts.ChartDataLabelPosition.outside;
        dataLabelStyle.color = (t7 = dataLabel.textStyle.color, t7 == null ? charts._getSaturationColor((t8 = dataLabel.color, t8 == null ? dart.test(dataLabel.useSeriesColor) ? point.fill : (t9 = chart.backgroundColor, t9 == null ? dart.equals(chart[_chartState][_chartTheme].brightness, ui.Brightness.light) ? colors$.Colors.white : colors$.Colors.black : t9) : t8)) : t7);
        charts._renderOutsideDataLabel(canvas, label, point, textSize, pointIndex, charts.CircularSeries._check(series), smartLabel, seriesIndex, chart, dataLabelStyle, renderDataLabelRegions, animateOpacity);
      } else {
        point.renderPosition = charts.ChartDataLabelPosition.inside;
        dataLabelStyle.color = chart.onDataLabelRender != null && dataLabel.textStyle.color != null ? charts._getSaturationColor((t7$ = dataLabel.color, t7$ == null ? point.fill : t7$)) : (t7$0 = dataLabel.textStyle.color, t7$0 == null ? charts._getSaturationColor((t8$ = dataLabel.color, t8$ == null ? point.fill : t8$)) : t7$0);
        if (dart.test(isDataLabelCollide) ? dart.equals(dataLabel.labelIntersectAction, charts.LabelIntersectAction.hide) ? false : true : true) {
          charts._drawLabel(point.labelRect, labelLocation, label, null, canvas, charts.CircularSeries._check(series), point, pointIndex, seriesIndex, chart, dataLabelStyle, renderDataLabelRegions, animateOpacity);
        }
      }
    } else {
      point.renderPosition = charts.ChartDataLabelPosition.outside;
      charts._renderOutsideDataLabel(canvas, label, point, textSize, pointIndex, charts.CircularSeries._check(series), smartLabel, seriesIndex, chart, dataLabelStyle, renderDataLabelRegions, animateOpacity);
    }
  };
  charts._renderOutsideDataLabel = function _renderOutsideDataLabel(canvas, label, point, textSize, pointIndex, series, smartLabel, seriesIndex, chart, textStyle, renderDataLabelRegions, animateOpacity) {
    let t8, t7;
    let connectorPath = null;
    let rect = null;
    let labelLocation = null;
    let margin = series.dataLabelSettings.margin;
    let connector = series.dataLabelSettings.connectorLineSettings;
    connectorPath = ui.Path.new();
    let connectorLength = charts._percentToValue(connector.length != null ? connector.length : "10%", point.outerRadius);
    let startPoint = charts._degreeToPoint(point.midAngle, point.outerRadius, point.center);
    let endPoint = charts._degreeToPoint(point.midAngle, dart.notNull(point.outerRadius) + dart.notNull(connectorLength), point.center);
    connectorPath.moveTo(startPoint.dx, startPoint.dy);
    if (dart.equals(connector.type, charts.ConnectorType.line)) {
      connectorPath.lineTo(endPoint.dx, endPoint.dy);
    }
    rect = charts._getDataLabelRect(point.dataLabelPosition, connector.type, margin, connectorPath, endPoint, textSize);
    point.labelRect = rect;
    labelLocation = new ui.Offset.new(dart.notNull(rect.left) + dart.notNull(margin.left), dart.notNull(rect.top) + dart.notNull(rect.height) / 2 - dart.notNull(textSize.height) / 2);
    let containerRect = chart[_chartState].chartAreaRect;
    if (series.dataLabelSettings.builder == null) {
      if (dart.equals(series.dataLabelSettings.labelIntersectAction, charts.LabelIntersectAction.hide)) {
        if (!dart.test(charts._isCollide(rect, renderDataLabelRegions)) && dart.notNull(rect.left) > dart.notNull(containerRect.left) && dart.notNull(rect.left) + dart.notNull(rect.width) < dart.notNull(containerRect.left) + dart.notNull(containerRect.width) && dart.notNull(rect.top) > dart.notNull(containerRect.top) && dart.notNull(rect.top) + dart.notNull(rect.height) < dart.notNull(containerRect.top) + dart.notNull(containerRect.height)) {
          charts._drawLabel(rect, labelLocation, label, connectorPath, canvas, series, point, pointIndex, seriesIndex, chart, textStyle, renderDataLabelRegions, animateOpacity);
        }
      } else {
        charts._drawLabel(rect, labelLocation, label, connectorPath, canvas, series, point, pointIndex, seriesIndex, chart, textStyle, renderDataLabelRegions, animateOpacity);
      }
    } else {
      canvas.drawPath(connectorPath, (t7 = ui.Paint.new(), t7.color = dart.notNull(connector.width) <= 0 ? colors$.Colors.transparent : (t8 = connector.color.withOpacity(animateOpacity), t8 == null ? point.fill.withOpacity(animateOpacity) : t8), t7.strokeWidth = connector.width, t7.style = ui.PaintingStyle.stroke, t7));
    }
  };
  charts._drawLabel = function _drawLabel(labelRect, location, label, connectorPath, canvas, series, point, pointIndex, seriesIndex, chart, textStyle, renderDataLabelRegions, animateOpacity) {
    let t8, t7, t7$, t7$0;
    let rectPaint = null;
    let dataLabel = series.dataLabelSettings;
    let connector = dataLabel.connectorLineSettings;
    if (connectorPath != null) {
      canvas.drawPath(connectorPath, (t7 = ui.Paint.new(), t7.color = dart.notNull(connector.width) <= 0 ? colors$.Colors.transparent : (t8 = connector.color, t8 == null ? point.fill.withOpacity(animateOpacity) : t8), t7.strokeWidth = connector.width, t7.style = ui.PaintingStyle.stroke, t7));
    }
    if (dataLabel.builder == null) {
      let strokeWidth = series[_renderer].getDataLabelStrokeWidth(series, point, pointIndex, seriesIndex, dataLabel.borderWidth);
      let labelFill = series[_renderer].getDataLabelColor(series, point, pointIndex, seriesIndex, dataLabel.color != null ? dataLabel.color : dart.test(dataLabel.useSeriesColor) ? point.fill : dataLabel.color);
      let strokeColor = series[_renderer].getDataLabelStrokeColor(series, point, pointIndex, seriesIndex, dataLabel.borderColor.withOpacity(dataLabel.opacity));
      if (strokeWidth != null && dart.notNull(strokeWidth) > 0) {
        rectPaint = (t7$ = ui.Paint.new(), t7$.color = strokeColor.withOpacity(dart.notNull(animateOpacity) - (1 - dart.notNull(dataLabel.opacity)) < 0 ? 0.0 : dart.notNull(animateOpacity) - (1 - dart.notNull(dataLabel.opacity))), t7$.style = ui.PaintingStyle.stroke, t7$.strokeWidth = strokeWidth, t7$);
        charts._drawLabelRect(rectPaint, new ui.Rect.fromLTRB(labelRect.left, labelRect.top, labelRect.right, labelRect.bottom), dataLabel.borderRadius, canvas);
      }
      if (labelFill != null) {
        charts._drawLabelRect((t7$0 = ui.Paint.new(), t7$0.color = labelFill.withOpacity(dart.notNull(animateOpacity) - (1 - dart.notNull(dataLabel.opacity)) < 0 ? 0.0 : dart.notNull(animateOpacity) - (1 - dart.notNull(dataLabel.opacity))), t7$0.style = ui.PaintingStyle.fill, t7$0), new ui.Rect.fromLTRB(labelRect.left, labelRect.top, labelRect.right, labelRect.bottom), dataLabel.borderRadius, canvas);
      }
      textStyle.color = textStyle.color.withOpacity(animateOpacity);
      charts._drawText(canvas, label, location, textStyle, dataLabel.angle);
      renderDataLabelRegions[$add](labelRect);
    }
  };
  charts._drawLabelRect = function _drawLabelRect(paint, labelRect, borderRadius, canvas) {
    return canvas.drawRRect(new ui.RRect.fromRectAndRadius(labelRect, new ui.Radius.circular(borderRadius)), paint);
  };
  charts._findDataLabelPosition = function _findDataLabelPosition(point) {
    return point.dataLabelPosition = dart.notNull(point.midAngle) >= -90 && dart.notNull(point.midAngle) < 0 || dart.notNull(point.midAngle) >= 0 && dart.notNull(point.midAngle) < 90 || dart.notNull(point.midAngle) >= 270 ? charts.Position.right : charts.Position.left;
  };
  charts._percentToValue = function _percentToValue(value, size) {
    let t7;
    if (value != null) {
      return value[$contains]("%") ? dart.notNull(size) / 100 * core.num.tryParse(value[$replaceAll](core.RegExp.new("%"), ""))[$abs]() : (t7 = core.num.tryParse(value), t7 == null ? null : t7[$abs]());
    }
    return null;
  };
  charts._degreesToRadians = function _degreesToRadians(deg) {
    return dart.notNull(deg) * (3.141592653589793 / 180);
  };
  charts._getArcPath = function _getArcPath(innerRadius, radius, center, startAngle, endAngle, degree, chart, isAnimate) {
    let path = ui.Path.new();
    startAngle = charts._degreesToRadians(startAngle);
    endAngle = charts._degreesToRadians(endAngle);
    degree = charts._degreesToRadians(degree);
    let innerRadiusStartPoint = new (PointOfdouble()).new(dart.notNull(innerRadius) * math.cos(startAngle) + dart.notNull(center.dx), dart.notNull(innerRadius) * math.sin(startAngle) + dart.notNull(center.dy));
    let innerRadiusEndPoint = new (PointOfdouble()).new(dart.notNull(innerRadius) * math.cos(endAngle) + dart.notNull(center.dx), dart.notNull(innerRadius) * math.sin(endAngle) + dart.notNull(center.dy));
    let radiusStartPoint = new (PointOfdouble()).new(dart.notNull(radius) * math.cos(startAngle) + dart.notNull(center.dx), dart.notNull(radius) * math.sin(startAngle) + dart.notNull(center.dy));
    if (dart.test(isAnimate)) {
      path.moveTo(innerRadiusStartPoint.x, innerRadiusStartPoint.y);
    }
    let isFullCircle = startAngle != null && endAngle != null && dart.notNull(endAngle) - dart.notNull(startAngle) === 2 * 3.141592653589793;
    let midpointAngle = (dart.notNull(endAngle) + dart.notNull(startAngle)) / 2;
    path.lineTo(radiusStartPoint.x, radiusStartPoint.y);
    if (isFullCircle) {
      path.arcTo(new ui.Rect.fromCircle({center: center, radius: radius}), startAngle, midpointAngle - dart.notNull(startAngle), true);
      path.arcTo(new ui.Rect.fromCircle({center: center, radius: radius}), midpointAngle, dart.notNull(endAngle) - midpointAngle, true);
    } else {
      path.arcTo(new ui.Rect.fromCircle({center: center, radius: radius}), startAngle, degree, true);
    }
    path.lineTo(innerRadiusEndPoint.x, innerRadiusEndPoint.y);
    if (isFullCircle) {
      path.arcTo(new ui.Rect.fromCircle({center: center, radius: innerRadius}), endAngle, midpointAngle - dart.notNull(endAngle), true);
      path.arcTo(new ui.Rect.fromCircle({center: center, radius: innerRadius}), midpointAngle, dart.notNull(startAngle) - midpointAngle, true);
    } else {
      path.arcTo(new ui.Rect.fromCircle({center: center, radius: innerRadius}), endAngle, dart.notNull(startAngle) - dart.notNull(endAngle), true);
    }
    path.lineTo(radiusStartPoint.x, radiusStartPoint.y);
    return path;
  };
  charts._getRoundedCornerArcPath = function _getRoundedCornerArcPath(innerRadius, outerRadius, center, startAngle, endAngle, degree, cornerStyle) {
    let path = ui.Path.new();
    let midPoint = null;
    let midStartAngle = null;
    let midEndAngle = null;
    if (dart.equals(cornerStyle, charts.CornerStyle.startCurve) || dart.equals(cornerStyle, charts.CornerStyle.bothCurve)) {
      midPoint = charts._degreeToPoint(startAngle, (dart.notNull(innerRadius) + dart.notNull(outerRadius)) / 2, center);
      midStartAngle = charts._degreesToRadians(180);
      midEndAngle = dart.notNull(midStartAngle) + dart.notNull(charts._degreesToRadians(180));
      path.addArc(new ui.Rect.fromCircle({center: midPoint, radius: (dart.notNull(innerRadius) - dart.notNull(outerRadius))[$abs]() / 2}), midStartAngle, midEndAngle);
    }
    path.addArc(new ui.Rect.fromCircle({center: center, radius: outerRadius}), charts._degreesToRadians(startAngle), charts._degreesToRadians(dart.notNull(endAngle) - dart.notNull(startAngle)));
    if (dart.equals(cornerStyle, charts.CornerStyle.endCurve) || dart.equals(cornerStyle, charts.CornerStyle.bothCurve)) {
      midPoint = charts._degreeToPoint(endAngle, (dart.notNull(innerRadius) + dart.notNull(outerRadius)) / 2, center);
      midStartAngle = charts._degreesToRadians(dart.notNull(endAngle) / 2);
      midEndAngle = dart.notNull(midStartAngle) + dart.notNull(charts._degreesToRadians(180));
      path.arcTo(new ui.Rect.fromCircle({center: midPoint, radius: (dart.notNull(innerRadius) - dart.notNull(outerRadius))[$abs]() / 2}), midStartAngle, midEndAngle, false);
    }
    path.arcTo(new ui.Rect.fromCircle({center: center, radius: innerRadius}), charts._degreesToRadians(endAngle), dart.notNull(charts._degreesToRadians(startAngle)) - dart.notNull(charts._degreesToRadians(endAngle)), false);
    return path;
  };
  charts._getPointRegion = function _getPointRegion(chart, position) {
    let pointRegion = null;
    for (let i = 0; i < dart.notNull(chart[_chartSeries].visibleSeries[$length]); i = i + 1) {
      let series = chart[_chartSeries].visibleSeries[$_get](i);
      for (let region of series[_pointRegions]) {
        let fromCenterX = dart.notNull(position.dx) - dart.notNull(region.center.dx);
        let fromCenterY = dart.notNull(position.dy) - dart.notNull(region.center.dy);
        let tapAngle = (math.atan2(fromCenterY, fromCenterX) - -1.5707963267948966)[$modulo](2 * 3.141592653589793);
        let pointStartAngle = dart.notNull(region.start) - dart.notNull(charts._degreesToRadians(-90));
        let pointEndAngle = dart.notNull(region.end) - dart.notNull(charts._degreesToRadians(-90));
        if (dart.notNull(region.endAngle) + 90 > 360 && dart.notNull(region.startAngle) + 90 > 360) {
          pointEndAngle = charts._degreesToRadians((dart.notNull(region.endAngle) + 90)[$modulo](360));
          pointStartAngle = charts._degreesToRadians((dart.notNull(region.startAngle) + 90)[$modulo](360));
        } else if (dart.notNull(region.endAngle) + 90 > 360) {
          tapAngle = tapAngle > dart.notNull(pointStartAngle) ? tapAngle : 2 * 3.141592653589793 + tapAngle;
        }
        if (tapAngle >= dart.notNull(pointStartAngle) && tapAngle <= dart.notNull(pointEndAngle)) {
          let distanceFromCenter = math.sqrt(math.pow(fromCenterX[$abs](), 2) + math.pow(fromCenterY[$abs](), 2));
          if (distanceFromCenter <= dart.notNull(region.outerRadius) && distanceFromCenter >= dart.notNull(region.innerRadius)) {
            pointRegion = region;
          }
        }
      }
    }
    return pointRegion;
  };
  charts._drawPath = function _drawPath(canvas, style, path) {
    let t7;
    let paint = ui.Paint.new();
    if (style.fill != null) {
      paint.color = dart.equals(style.fill, colors$.Colors.transparent) ? style.fill : style.fill.withOpacity((t7 = style.opacity, t7 == null ? 1.0 : t7));
      paint.style = ui.PaintingStyle.fill;
      canvas.drawPath(path, paint);
    }
    if (style.strokeColor != null && style.strokeWidth != null && dart.notNull(style.strokeWidth) > 0) {
      paint.color = style.strokeColor;
      paint.strokeWidth = style.strokeWidth;
      paint.style = ui.PaintingStyle.stroke;
      canvas.drawPath(path, paint);
    }
  };
  charts._degreeToPoint = function _degreeToPoint(degree, radius, center) {
    degree = charts._degreesToRadians(degree);
    return new ui.Offset.new(dart.notNull(center.dx) + math.cos(degree) * dart.notNull(radius), dart.notNull(center.dy) + math.sin(degree) * dart.notNull(radius));
  };
  charts._needsRepaintCircularChart = function _needsRepaintCircularChart(chart, oldChart) {
    if (chart.series[$length] == oldChart.series[$length]) {
      for (let seriesIndex = 0; seriesIndex < dart.notNull(chart.series[$length]); seriesIndex = seriesIndex + 1) {
        charts._canRepaintSeries(chart, oldChart, seriesIndex);
      }
    } else {
      chart.series[$forEach](dart.fn(series => series[_needsRepaint] = true, CircularSeriesTobool()));
    }
  };
  charts._canRepaintSeries = function _canRepaintSeries(chart, oldChart, seriesIndex) {
    let t7, t7$, t7$0, t7$1, t7$2, t7$3, t7$4, t7$5, t7$6, t7$7, t7$8, t7$9, t7$10, t7$11, t7$12, t7$13, t7$14, t7$15, t7$16, t7$17, t7$18, t7$19, t7$20, t7$21, t7$22, t7$23, t7$24, t7$25, t7$26, t7$27, t7$28, t7$29;
    let series = chart.series[$_get](seriesIndex);
    let oldWidgetSeries = oldChart.series[$_get](seriesIndex);
    if ((t7 = series[_center], t7 == null ? null : t7.dy) != (t7$ = oldWidgetSeries[_center], t7$ == null ? null : t7$.dy) || (t7$0 = series[_center], t7$0 == null ? null : t7$0.dx) != (t7$1 = oldWidgetSeries[_center], t7$1 == null ? null : t7$1.dx) || series.borderWidth != oldWidgetSeries.borderWidth || series.name != oldWidgetSeries.name || (t7$2 = series.borderColor, t7$2 == null ? null : t7$2.value) != (t7$3 = oldWidgetSeries.borderColor, t7$3 == null ? null : t7$3.value) || series[_currentInnerRadius] != oldWidgetSeries[_currentInnerRadius] || series[_currentRadius] != oldWidgetSeries[_currentRadius] || series[_start] != oldWidgetSeries[_start] || series[_totalAngle] != oldWidgetSeries[_totalAngle] || (t7$4 = series[_dataPoints$], t7$4 == null ? null : t7$4[$length]) != (t7$5 = oldWidgetSeries[_dataPoints$], t7$5 == null ? null : t7$5[$length]) || series.emptyPointSettings.borderWidth != oldWidgetSeries.emptyPointSettings.borderWidth || (t7$6 = series.emptyPointSettings.borderColor, t7$6 == null ? null : t7$6.value) != (t7$7 = oldWidgetSeries.emptyPointSettings.borderColor, t7$7 == null ? null : t7$7.value) || (t7$8 = series.emptyPointSettings.color, t7$8 == null ? null : t7$8.value) != (t7$9 = oldWidgetSeries.emptyPointSettings.color, t7$9 == null ? null : t7$9.value) || !dart.equals(series.emptyPointSettings.mode, oldWidgetSeries.emptyPointSettings.mode) || (t7$10 = series.dataSource, t7$10 == null ? null : t7$10[$length]) != (t7$11 = oldWidgetSeries.dataSource, t7$11 == null ? null : t7$11[$length]) || !dart.equals(series.dataLabelSettings.isVisible, oldWidgetSeries.dataLabelSettings.isVisible) || (t7$12 = series.dataLabelSettings.color, t7$12 == null ? null : t7$12.value) != (t7$13 = oldWidgetSeries.dataLabelSettings.color, t7$13 == null ? null : t7$13.value) || series.dataLabelSettings.borderRadius != oldWidgetSeries.dataLabelSettings.borderRadius || series.dataLabelSettings.borderWidth != oldWidgetSeries.dataLabelSettings.borderWidth || (t7$14 = series.dataLabelSettings.borderColor, t7$14 == null ? null : t7$14.value) != (t7$15 = oldWidgetSeries.dataLabelSettings.borderColor, t7$15 == null ? null : t7$15.value) || (t7$17 = (t7$16 = series.dataLabelSettings.textStyle, t7$16 == null ? null : t7$16.color), t7$17 == null ? null : t7$17.value) != (t7$19 = (t7$18 = oldWidgetSeries.dataLabelSettings.textStyle, t7$18 == null ? null : t7$18.color), t7$19 == null ? null : t7$19.value) || !dart.equals((t7$20 = series.dataLabelSettings.textStyle, t7$20 == null ? null : t7$20.fontWeight), (t7$21 = oldWidgetSeries.dataLabelSettings.textStyle, t7$21 == null ? null : t7$21.fontWeight)) || (t7$22 = series.dataLabelSettings.textStyle, t7$22 == null ? null : t7$22.fontSize) != (t7$23 = oldWidgetSeries.dataLabelSettings.textStyle, t7$23 == null ? null : t7$23.fontSize) || (t7$24 = series.dataLabelSettings.textStyle, t7$24 == null ? null : t7$24.fontFamily) != (t7$25 = oldWidgetSeries.dataLabelSettings.textStyle, t7$25 == null ? null : t7$25.fontFamily) || !dart.equals((t7$26 = series.dataLabelSettings.textStyle, t7$26 == null ? null : t7$26.fontStyle), (t7$27 = oldWidgetSeries.dataLabelSettings.textStyle, t7$27 == null ? null : t7$27.fontStyle)) || !dart.equals(series.dataLabelSettings.labelIntersectAction, oldWidgetSeries.dataLabelSettings.labelIntersectAction) || !dart.equals(series.dataLabelSettings.labelPosition, oldWidgetSeries.dataLabelSettings.labelPosition) || (t7$28 = series.dataLabelSettings.connectorLineSettings.color, t7$28 == null ? null : t7$28.value) != (t7$29 = oldWidgetSeries.dataLabelSettings.connectorLineSettings.color, t7$29 == null ? null : t7$29.value) || series.dataLabelSettings.connectorLineSettings.width != oldWidgetSeries.dataLabelSettings.connectorLineSettings.width || series.dataLabelSettings.connectorLineSettings.length != oldWidgetSeries.dataLabelSettings.connectorLineSettings.length || !dart.equals(series.dataLabelSettings.connectorLineSettings.type, oldWidgetSeries.dataLabelSettings.connectorLineSettings.type) || !dart.equals(series.xValueMapper, oldWidgetSeries.xValueMapper) || !dart.equals(series.yValueMapper, oldWidgetSeries.yValueMapper) || !dart.equals(series.enableTooltip, oldWidgetSeries.enableTooltip)) {
      series[_needsRepaint] = true;
    } else {
      series[_needsRepaint] = false;
    }
  };
  charts._findAngleDeviation = function _findAngleDeviation(innerRadius, outerRadius, totalAngle) {
    let calcRadius = (dart.notNull(innerRadius) + dart.notNull(outerRadius)) / 2;
    let circumference = 2 * 3.141592653589793 * calcRadius;
    let rimSize = (dart.notNull(innerRadius) - dart.notNull(outerRadius))[$abs]();
    let deviation = rimSize / 2 / circumference * 100;
    return deviation * 360 / 100;
  };
  charts._getSaturationColor = function _getSaturationColor(color) {
    let saturationColor = null;
    let contrast = ((dart.notNull(color.red) * 299 + dart.notNull(color.green) * 587 + dart.notNull(color.blue) * 114) / 1000)[$round]();
    saturationColor = contrast >= 128 ? colors$.Colors.black : colors$.Colors.white;
    return saturationColor;
  };
  charts._getPointFromData = function _getPointFromData(series, pointIndex) {
    let xValue = series.xValueMapper;
    let yValue = series.yValueMapper;
    let xVal = dart.dcall(xValue, [pointIndex]);
    let yVal = series[_seriesType$][$contains]("range") || series[_seriesType$][$contains]("hilo") || series[_seriesType$] === "candle" ? null : dart.dcall(yValue, [pointIndex]);
    let point = new charts.CartesianChartPoint.new(xVal, yVal);
    if (series[_seriesType$][$contains]("range") || series[_seriesType$][$contains]("hilo") || series[_seriesType$] === "candle") {
      let highValue = series.highValueMapper;
      let lowValue = series.lowValueMapper;
      point.high = dart.dcall(highValue, [pointIndex]);
      point.low = dart.dcall(lowValue, [pointIndex]);
    }
    if (charts._FinancialSeriesBase.is(series)) {
      if (series[_seriesType$] === "hiloopenclose" || series[_seriesType$] === "candle") {
        let openValue = series.openValueMapper;
        let closeValue = series.closeValueMapper;
        point.open = dart.dcall(openValue, [pointIndex]);
        point.close = dart.dcall(closeValue, [pointIndex]);
      }
    }
    return point;
  };
  charts._getTextStyle = function _getTextStyle(opts) {
    let t7, t7$, t7$0, t7$1;
    let textStyle = opts && 'textStyle' in opts ? opts.textStyle : null;
    let fontColor = opts && 'fontColor' in opts ? opts.fontColor : null;
    let fontSize = opts && 'fontSize' in opts ? opts.fontSize : null;
    let fontStyle = opts && 'fontStyle' in opts ? opts.fontStyle : null;
    let fontFamily = opts && 'fontFamily' in opts ? opts.fontFamily : null;
    let fontWeight = opts && 'fontWeight' in opts ? opts.fontWeight : null;
    let background = opts && 'background' in opts ? opts.background : null;
    let takeFontColorValue = opts && 'takeFontColorValue' in opts ? opts.takeFontColorValue : null;
    return new charts.ChartTextStyle.new({color: textStyle != null ? textStyle.color != null && (takeFontColorValue == null ? true : !dart.test(takeFontColorValue)) ? textStyle.color : fontColor : fontColor, fontWeight: textStyle != null ? (t7 = textStyle.fontWeight, t7 == null ? fontWeight : t7) : fontWeight, fontSize: textStyle != null ? (t7$ = textStyle.fontSize, t7$ == null ? fontSize : t7$) : fontSize, fontStyle: textStyle != null ? (t7$0 = textStyle.fontStyle, t7$0 == null ? fontStyle : t7$0) : fontStyle, fontFamily: textStyle != null ? (t7$1 = textStyle.fontFamily, t7$1 == null ? fontFamily : t7$1) : fontFamily});
  };
  charts._getElements = function _getElements(chart, chartWidget, constraints) {
    let legendPosition = charts.LegendPosition._check(dart.dload(dart.dload(chart, 'legend'), 'legendPosition'));
    let legendHeight = null;
    let legendWidth = null;
    let chartHeight = null;
    let chartWidth = null;
    let element = null;
    if (dart.dtest(dart.dload(dart.dload(chart, _chartLegend), 'needRenderLegend')) && dart.dtest(dart.dload(dart.dload(chart, 'legend'), 'isResponsive'))) {
      chartHeight = dart.notNull(constraints.maxHeight) - dart.notNull(core.num._check(dart.dload(dart.dload(dart.dload(chart, _chartLegend), 'legendSize'), 'height')));
      chartWidth = dart.notNull(constraints.maxWidth) - dart.notNull(core.num._check(dart.dload(dart.dload(dart.dload(chart, _chartLegend), 'legendSize'), 'width')));
      dart.dput(dart.dload(chart, _chartLegend), 'needRenderLegend', dart.equals(legendPosition, charts.LegendPosition.bottom) || dart.equals(legendPosition, charts.LegendPosition.top) ? dart.notNull(chartHeight) > dart.notNull(core.num._check(dart.dload(dart.dload(dart.dload(chart, _chartLegend), 'legendSize'), 'height'))) : dart.notNull(chartWidth) > dart.notNull(core.num._check(dart.dload(dart.dload(dart.dload(chart, _chartLegend), 'legendSize'), 'width'))));
    }
    if (!dart.dtest(dart.dload(dart.dload(chart, _chartLegend), 'needRenderLegend'))) {
      element = new container.Container.new({child: chartWidget, width: constraints.maxWidth, height: constraints.maxHeight, $creationLocationd_0dea112b090073317d4: C897 || CT.C897});
    } else {
      legendHeight = core.double._check(dart.dload(dart.dload(dart.dload(chart, _chartLegend), 'legendSize'), 'height'));
      legendWidth = core.double._check(dart.dload(dart.dload(dart.dload(chart, _chartLegend), 'legendSize'), 'width'));
      chartHeight = core.double._check(dart.dsend(dart.dload(dart.dload(dart.dload(chart, _chartLegend), 'chartSize'), 'height'), '-', [legendHeight]));
      chartWidth = core.double._check(dart.dsend(dart.dload(dart.dload(dart.dload(chart, _chartLegend), 'chartSize'), 'width'), '-', [legendWidth]));
      let legendBorderWidget = new basic.CustomPaint.new({painter: new charts._ChartLegendStylePainter.new({chart: chart}), $creationLocationd_0dea112b090073317d4: C902 || CT.C902});
      let legendWidget = new container.Container.new({height: legendHeight, width: legendWidth, decoration: new box_decoration.BoxDecoration.new({color: ui.Color._check(dart.dload(dart.dload(chart, 'legend'), 'backgroundColor'))}), child: new charts._LegendContainer.new({chart: chart, $creationLocationd_0dea112b090073317d4: C905 || CT.C905}), $creationLocationd_0dea112b090073317d4: C908 || CT.C908});
      switch (legendPosition) {
        case C854 || CT.C854:
        case C857 || CT.C857:
        {
          element = charts._getBottomAndTopLegend(chart, chartWidget, constraints, legendWidget, legendBorderWidget, legendHeight, legendWidth, chartHeight);
          break;
        }
        case C856 || CT.C856:
        case C855 || CT.C855:
        {
          element = charts._getLeftAndRightLegend(chart, chartWidget, constraints, legendWidget, legendBorderWidget, legendHeight, legendWidth, chartWidth);
          break;
        }
        default:
        {
          break;
        }
      }
    }
    return element;
  };
  charts._getBottomAndTopLegend = function _getBottomAndTopLegend(chart, chartWidget, constraints, legendWidget, legendBorderWidget, legendHeight, legendWidth, chartHeight) {
    let element = null;
    let needPadding = charts.SfCircularChart.is(chart) || charts.SfPyramidChart.is(chart) || charts.SfFunnelChart.is(chart);
    let legendPosition = charts.LegendPosition._check(dart.dload(dart.dload(chart, 'legend'), 'legendPosition'));
    let legendLeft = core.double._check(dart.dtest(dart.dsend(dart.dload(dart.dload(dart.dload(chart, _chartLegend), 'chartSize'), 'width'), '>', [legendWidth])) ? dart.equals(dart.dload(dart.dload(chart, 'legend'), 'alignment'), charts.ChartAlignment.near) ? 0.0 : dart.equals(dart.dload(dart.dload(chart, 'legend'), 'alignment'), charts.ChartAlignment.center) ? dart.dsend(dart.dsend(dart.dload(dart.dload(dart.dload(chart, _chartLegend), 'chartSize'), 'width'), '/', [2]), '-', [dart.dsend(dart.dload(dart.dload(dart.dload(chart, _chartLegend), 'legendSize'), 'width'), '/', [2])]) : dart.dsend(dart.dload(dart.dload(dart.dload(chart, _chartLegend), 'chartSize'), 'width'), '-', [dart.dload(dart.dload(dart.dload(chart, _chartLegend), 'legendSize'), 'width')]) : 0.0);
    let margin = dart.equals(legendPosition, charts.LegendPosition.top) ? new edge_insets.EdgeInsets.fromLTRB(dart.notNull(legendLeft) + (needPadding ? 10 : 0), 5, 0.0, 0.0) : new edge_insets.EdgeInsets.fromLTRB(legendLeft, dart.notNull(chartHeight) + 5, 0.0, 0.0);
    legendWidget = new container.Container.new({child: new basic.Stack.new({children: JSArrayOfWidget().of([new container.Container.new({margin: margin, height: legendHeight, width: legendWidth, child: legendBorderWidget, $creationLocationd_0dea112b090073317d4: C914 || CT.C914}), new container.Container.new({margin: margin, height: legendHeight, width: legendWidth, child: legendWidget, $creationLocationd_0dea112b090073317d4: C920 || CT.C920})]), $creationLocationd_0dea112b090073317d4: C926 || CT.C926}), $creationLocationd_0dea112b090073317d4: C929 || CT.C929});
    if (dart.equals(legendPosition, charts.LegendPosition.top)) {
      element = new container.Container.new({height: constraints.maxHeight, width: constraints.maxWidth, child: new basic.Stack.new({children: JSArrayOfWidget().of([legendWidget, new container.Container.new({margin: new edge_insets.EdgeInsets.fromLTRB(needPadding ? 10 : 0.0, dart.notNull(legendHeight) + 10, 0.0, 0.0), height: chartHeight, width: core.double._check(dart.dload(dart.dload(dart.dload(chart, _chartLegend), 'chartSize'), 'width')), child: chartWidget, $creationLocationd_0dea112b090073317d4: C932 || CT.C932})]), $creationLocationd_0dea112b090073317d4: C938 || CT.C938}), $creationLocationd_0dea112b090073317d4: C941 || CT.C941});
    } else {
      element = new container.Container.new({margin: new edge_insets.EdgeInsets.fromLTRB(needPadding ? 10 : 0.0, needPadding ? 10 : 0.0, 0.0, 0.0), height: constraints.maxHeight, width: constraints.maxWidth, child: new basic.Stack.new({children: JSArrayOfWidget().of([new container.Container.new({height: chartHeight, width: core.double._check(dart.dload(dart.dload(dart.dload(chart, _chartLegend), 'chartSize'), 'width')), child: chartWidget, $creationLocationd_0dea112b090073317d4: C946 || CT.C946}), legendWidget]), $creationLocationd_0dea112b090073317d4: C951 || CT.C951}), $creationLocationd_0dea112b090073317d4: C954 || CT.C954});
    }
    return element;
  };
  charts._getLeftAndRightLegend = function _getLeftAndRightLegend(chart, chartWidget, constraints, legendWidget, legendBorderWidget, legendHeight, legendWidth, chartWidth) {
    let element = null;
    let needPadding = charts.SfCircularChart.is(chart) || charts.SfPyramidChart.is(chart) || charts.SfFunnelChart.is(chart);
    let legendPosition = charts.LegendPosition._check(dart.dload(dart.dload(chart, 'legend'), 'legendPosition'));
    let legendTop = core.double._check(dart.dtest(dart.dsend(dart.dload(dart.dload(dart.dload(chart, _chartLegend), 'chartSize'), 'height'), '>', [legendHeight])) ? dart.equals(dart.dload(dart.dload(chart, 'legend'), 'alignment'), charts.ChartAlignment.near) ? 0.0 : dart.equals(dart.dload(dart.dload(chart, 'legend'), 'alignment'), charts.ChartAlignment.center) ? dart.dsend(dart.dsend(dart.dload(dart.dload(dart.dload(chart, _chartLegend), 'chartSize'), 'height'), '/', [2]), '-', [dart.dsend(dart.dload(dart.dload(dart.dload(chart, _chartLegend), 'legendSize'), 'height'), '/', [2])]) : dart.dsend(dart.dload(dart.dload(dart.dload(chart, _chartLegend), 'chartSize'), 'height'), '-', [dart.dload(dart.dload(dart.dload(chart, _chartLegend), 'legendSize'), 'height')]) : 0.0);
    let margin = dart.equals(legendPosition, charts.LegendPosition.left) ? new edge_insets.EdgeInsets.fromLTRB(5 / 2, legendTop, 0.0, 0.0) : new edge_insets.EdgeInsets.fromLTRB(dart.notNull(chartWidth) + 5, legendTop, 0.0, 0.0);
    legendWidget = new container.Container.new({child: new basic.Stack.new({children: JSArrayOfWidget().of([new container.Container.new({margin: margin, height: legendHeight, width: legendWidth, child: legendBorderWidget, $creationLocationd_0dea112b090073317d4: C960 || CT.C960}), new container.Container.new({margin: margin, height: legendHeight, width: legendWidth, child: legendWidget, $creationLocationd_0dea112b090073317d4: C966 || CT.C966})]), $creationLocationd_0dea112b090073317d4: C972 || CT.C972}), $creationLocationd_0dea112b090073317d4: C975 || CT.C975});
    if (dart.equals(legendPosition, charts.LegendPosition.left)) {
      element = new container.Container.new({height: constraints.maxHeight, width: constraints.maxWidth, child: new basic.Stack.new({children: JSArrayOfWidget().of([legendWidget, new container.Container.new({margin: new edge_insets.EdgeInsets.fromLTRB(dart.notNull(legendWidth) + (needPadding ? 10 : 0), core.double._check(needPadding ? dart.dload(dart.dload(chart, 'margin'), 'top') : 0.0), 0.0, 0.0), height: core.double._check(dart.dload(dart.dload(dart.dload(chart, _chartLegend), 'chartSize'), 'height')), width: chartWidth, child: chartWidget, $creationLocationd_0dea112b090073317d4: C978 || CT.C978})]), $creationLocationd_0dea112b090073317d4: C984 || CT.C984}), $creationLocationd_0dea112b090073317d4: C987 || CT.C987});
    } else {
      element = new container.Container.new({height: constraints.maxHeight, width: constraints.maxWidth, child: new basic.Stack.new({children: JSArrayOfWidget().of([new container.Container.new({margin: new edge_insets.EdgeInsets.only({top: core.double._check(needPadding ? dart.dload(dart.dload(chart, 'margin'), 'top') : 0.0)}), height: core.double._check(dart.dload(dart.dload(dart.dload(chart, _chartLegend), 'chartSize'), 'height')), width: chartWidth, child: chartWidget, $creationLocationd_0dea112b090073317d4: C992 || CT.C992}), legendWidget]), $creationLocationd_0dea112b090073317d4: C998 || CT.C998}), $creationLocationd_0dea112b090073317d4: C1001 || CT.C1001});
    }
    return element;
  };
  charts._legendToggleTemplateState = function _legendToggleTemplateState(currentItem, chart, checkType) {
    let needSelect = false;
    let legendToggles = ListOf_MeasureWidgetContext()._check(dart.dload(dart.dload(chart, _chartState), 'legendToggleTemplateStates'));
    if (dart.test(legendToggles[$isNotEmpty])) {
      for (let i = 0; i < dart.notNull(legendToggles[$length]); i = i + 1) {
        let item = legendToggles[$_get](i);
        if (currentItem.seriesIndex == item.seriesIndex && currentItem.pointIndex == item.pointIndex) {
          if (checkType !== "isSelect") {
            needSelect = true;
            legendToggles[$removeAt](i);
          }
          break;
        }
      }
    }
    if (!needSelect) {
      needSelect = false;
      if (checkType !== "isSelect") {
        legendToggles[$add](currentItem);
      }
    }
    return needSelect;
  };
  charts._legendToggleState = function _legendToggleState(currentItem, chart) {
    let needSelect = false;
    let legendToggles = ListOf_LegendRenderContext()._check(dart.dload(dart.dload(chart, _chartState), 'legendToggleStates'));
    if (dart.test(legendToggles[$isNotEmpty])) {
      for (let i = 0; i < dart.notNull(legendToggles[$length]); i = i + 1) {
        let item = legendToggles[$_get](i);
        if (currentItem.seriesIndex == item.seriesIndex) {
          needSelect = true;
          legendToggles[$removeAt](i);
          break;
        }
      }
    }
    if (!needSelect) {
      needSelect = false;
      legendToggles[$add](currentItem);
    }
  };
  charts._cartesianLegendToggleState = function _cartesianLegendToggleState(currentItem, chart) {
    let needSelect = false;
    let legendToggles = ListOf_LegendRenderContext()._check(dart.dload(dart.dload(chart, _chartState), 'legendToggleStates'));
    if (currentItem.trendline == null || dart.dtest(dart.dload(dart.dsend(dart.dload(chart, 'series'), '_get', [currentItem.seriesIndex]), _visible))) {
      if (dart.test(legendToggles[$isNotEmpty])) {
        for (let i = 0; i < dart.notNull(legendToggles[$length]); i = i + 1) {
          let item = legendToggles[$_get](i);
          if (currentItem.trendline != null && currentItem.text == item.text && currentItem.seriesIndex == item.seriesIndex && currentItem.trendlineIndex == item.trendlineIndex) {
            needSelect = true;
            legendToggles[$removeAt](i);
            break;
          } else if (currentItem.trendline == null && currentItem.seriesIndex == item.seriesIndex && currentItem.text == item.text) {
            needSelect = true;
            legendToggles[$removeAt](i);
            break;
          }
        }
      }
      if (!needSelect) {
        if (!(!dart.dtest(dart.dload(currentItem.series, _visible)) && !dart.dtest(dart.dload(dart.dload(chart, _chartState), 'isTrendlineToggled')))) {
          needSelect = false;
          if (currentItem.trendlineIndex != null) {
            dart.dput(dart.dsend(dart.dload(chart, 'series'), '_get', [currentItem.seriesIndex]), _minimumX, 1 / 0);
            dart.dput(dart.dsend(dart.dload(chart, 'series'), '_get', [currentItem.seriesIndex]), _minimumY, 1 / 0);
            dart.dput(dart.dsend(dart.dload(chart, 'series'), '_get', [currentItem.seriesIndex]), _maximumX, -1 / 0);
            dart.dput(dart.dsend(dart.dload(chart, 'series'), '_get', [currentItem.seriesIndex]), _maximumY, -1 / 0);
          }
          legendToggles[$add](currentItem);
        }
      }
    }
  };
  charts._isCollide = function _isCollide$(rect, regions, pathRect = null) {
    let isCollide = false;
    if (pathRect != null && dart.notNull(pathRect.left) < dart.notNull(rect.left) && dart.notNull(pathRect.width) > dart.notNull(rect.width) && dart.notNull(pathRect.top) < dart.notNull(rect.top) && dart.notNull(pathRect.height) > dart.notNull(rect.height)) {
      isCollide = false;
    } else if (pathRect != null) {
      isCollide = true;
    }
    for (let i = 0; i < dart.notNull(regions[$length]); i = i + 1) {
      let regionRect = regions[$_get](i);
      if (dart.notNull(rect.left) < dart.notNull(regionRect.left) + dart.notNull(regionRect.width) && dart.notNull(rect.left) + dart.notNull(rect.width) > dart.notNull(regionRect.left) && dart.notNull(rect.top) < dart.notNull(regionRect.top) + dart.notNull(regionRect.height) && dart.notNull(rect.top) + dart.notNull(rect.height) > dart.notNull(regionRect.top)) {
        isCollide = true;
        break;
      }
    }
    return isCollide;
  };
  charts._getValueByPercentage = function _getValueByPercentage(value1, value2) {
    let value = null;
    value = value1[$isNegative] ? core.num.tryParse("-" + core.num.tryParse(dart.toString(value1)[$replaceAll](core.RegExp.new("-"), ""))[$modulo](value2)[$toString]()) : value1[$modulo](value2);
    return value;
  };
  charts._renderChartTitle = function _renderChartTitle(widget) {
    let t7, t7$, t7$0;
    let titleWidget = null;
    if (dart.dload(dart.dload(widget, 'title'), 'text') != null && dart.dtest(dart.dload(dart.dload(dart.dload(widget, 'title'), 'text'), 'isNotEmpty'))) {
      let color = ui.Color._check((t7 = dart.dload(dart.dload(dart.dload(widget, 'title'), 'textStyle'), 'color'), t7 == null ? dart.dload(dart.dload(dart.dload(widget, _chartState), _chartTheme), 'titleTextColor') : t7));
      let fontSize = core.double._check(dart.dload(dart.dload(dart.dload(widget, 'title'), 'textStyle'), 'fontSize'));
      let fontFamily = core.String._check(dart.dload(dart.dload(dart.dload(widget, 'title'), 'textStyle'), 'fontFamily'));
      let fontStyle = ui.FontStyle._check(dart.dload(dart.dload(dart.dload(widget, 'title'), 'textStyle'), 'fontStyle'));
      let fontWeight = ui.FontWeight._check(dart.dload(dart.dload(dart.dload(widget, 'title'), 'textStyle'), 'fontWeight'));
      titleWidget = new container.Container.new({margin: new edge_insets.EdgeInsets.fromLTRB(core.double._check(dart.dload(dart.dload(widget, 'margin'), 'left')), core.double._check(dart.dload(dart.dload(widget, 'margin'), 'top')), core.double._check(dart.dload(dart.dload(widget, 'margin'), 'right')), core.double._check(dart.dload(dart.dload(widget, 'margin'), 'bottom'))), child: new container.Container.new({padding: C1006 || CT.C1006, decoration: new box_decoration.BoxDecoration.new({color: ui.Color._check((t7$ = dart.dload(dart.dload(widget, 'title'), 'backgroundColor'), t7$ == null ? dart.dload(dart.dload(dart.dload(widget, _chartState), _chartTheme), 'titleBackgroundColor') : t7$)), border: box_border.Border.all({color: ui.Color._check((t7$0 = dart.dload(dart.dload(widget, 'title'), 'borderColor'), t7$0 == null ? dart.dload(dart.dload(dart.dload(widget, _chartState), _chartTheme), 'titleTextColor') : t7$0)), width: core.double._check(dart.dload(dart.dload(widget, 'title'), 'borderWidth'))})}), child: new text.Text.new(core.String._check(dart.dload(dart.dload(widget, 'title'), 'text')), {style: new text_style.TextStyle.new({color: color, fontSize: fontSize, fontFamily: fontFamily, fontStyle: fontStyle, fontWeight: fontWeight}), textScaleFactor: 1.2, overflow: paragraph.TextOverflow.clip, textAlign: ui.TextAlign.center, $creationLocationd_0dea112b090073317d4: C1007 || CT.C1007}), $creationLocationd_0dea112b090073317d4: C1014 || CT.C1014}), alignment: dart.equals(dart.dload(dart.dload(widget, 'title'), 'alignment'), charts.ChartAlignment.near) ? alignment.Alignment.topLeft : dart.equals(dart.dload(dart.dload(widget, 'title'), 'alignment'), charts.ChartAlignment.far) ? alignment.Alignment.topRight : dart.equals(dart.dload(dart.dload(widget, 'title'), 'alignment'), charts.ChartAlignment.center) ? alignment.Alignment.topCenter : alignment.Alignment.topCenter, $creationLocationd_0dea112b090073317d4: C1019 || CT.C1019});
    } else {
      titleWidget = new container.Container.new({$creationLocationd_0dea112b090073317d4: C1024 || CT.C1024});
    }
    return titleWidget;
  };
  charts._bindLegendTemplateWidgets = function _bindLegendTemplateWidgets(widget) {
    let legendWidget = null;
    let templates = JSArrayOfWidget().of([]);
    dart.dput(dart.dload(widget, _chartState), _chartWidgets, JSArrayOfWidget().of([]));
    if (dart.dtest(dart.dload(dart.dload(widget, 'legend'), 'isVisible')) && dart.dload(dart.dload(widget, 'legend'), 'legendItemBuilder') != null) {
      for (let i = 0; i < dart.notNull(core.num._check(dart.dload(dart.dload(dart.dload(widget, _chartSeries), 'visibleSeries'), 'length'))); i = i + 1) {
        let series = dart.dsend(dart.dload(dart.dload(widget, _chartSeries), 'visibleSeries'), '_get', [i]);
        for (let j = 0; j < dart.notNull(core.num._check(dart.dload(dart.dload(series, _renderPoints), 'length'))); j = j + 1) {
          legendWidget = framework.Widget._check(dart.dsend(dart.dload(widget, 'legend'), 'legendItemBuilder', [dart.dload(dart.dsend(dart.dload(series, _renderPoints), '_get', [j]), 'x'), series, dart.dsend(dart.dload(series, _renderPoints), '_get', [j]), j]));
          templates[$add](new charts._MeasureWidgetSize.new({chart: widget, type: "Legend", seriesIndex: i, pointIndex: j, currentKey: GlobalKeyOfStateOfStatefulWidget().new(), currentWidget: legendWidget, opacityValue: 0.0, $creationLocationd_0dea112b090073317d4: C1025 || CT.C1025}));
        }
      }
    }
    return templates;
  };
  charts._validIndex = function _validIndex(_pointIndex, _seriesIndex, chart) {
    return _seriesIndex != null && _pointIndex != null && dart.notNull(_seriesIndex) >= 0 && dart.notNull(_seriesIndex) < dart.notNull(chart.series[$length]) && dart.notNull(_pointIndex) >= 0 && dart.notNull(_pointIndex) < dart.notNull(chart.series[$_get](_seriesIndex).dataSource[$length]);
  };
  charts._renderFunnelDataLabel = function _renderFunnelDataLabel(series, canvas, chart, animation) {
    let point = null;
    let dataLabel = series.dataLabelSettings;
    let label = null;
    let animateOpacity = animation != null ? animation.value : 1.0;
    let dataLabelArgs = null;
    let dataLabelStyle = null;
    let renderDataLabelRegions = JSArrayOfRect().of([]);
    for (let pointIndex = 0; pointIndex < dart.notNull(series[_renderPoints][$length]); pointIndex = pointIndex + 1) {
      point = series[_renderPoints][$_get](pointIndex);
      if (dart.test(point.isVisible)) {
        label = point.text;
        dataLabelStyle = dataLabel.textStyle;
        if (chart.onDataLabelRender != null) {
          dataLabelArgs = new charts.DataLabelRenderArgs.new();
          dataLabelArgs.text = label;
          dataLabelArgs.textStyle = dataLabelStyle;
          dataLabelArgs.series = series;
          dataLabelArgs.dataPoints = series[_renderPoints];
          dataLabelArgs.pointIndex = pointIndex;
          chart.onDataLabelRender(dataLabelArgs);
          label = dataLabelArgs.text;
          dataLabelStyle = dataLabelArgs.textStyle;
        }
        dataLabelStyle = chart.onDataLabelRender == null ? charts._getDataLabelTextStyle(series, point, chart) : dataLabelStyle;
        let textSize = charts._measureText(label, dataLabelStyle);
        if (dart.equals(dataLabel.labelPosition, charts.ChartDataLabelPosition.inside)) {
          charts._setFunnelInsideLabelPosition(dataLabel, point, textSize, chart, canvas, renderDataLabelRegions, pointIndex, label, series, animateOpacity, dataLabelStyle);
        } else {
          point.renderPosition = charts.ChartDataLabelPosition.outside;
          charts._renderOutsideFunnelDataLabel(canvas, label, point, textSize, pointIndex, series, chart, dataLabelStyle, renderDataLabelRegions, animateOpacity);
        }
      }
    }
  };
  charts._setFunnelInsideLabelPosition = function _setFunnelInsideLabelPosition(dataLabel, point, textSize, chart, canvas, renderDataLabelRegions, pointIndex, label, series, animateOpacity, dataLabelStyle) {
    let angle = dataLabel.angle;
    let labelLocation = null;
    let smartLabelMode = chart.smartLabelMode;
    labelLocation = point.symbolLocation;
    labelLocation = new ui.Offset.new(dart.notNull(labelLocation.dx) - dart.notNull(textSize.width) / 2 + (angle === 0 ? 0 : dart.notNull(textSize.width) / 2), dart.notNull(labelLocation.dy) - dart.notNull(textSize.height) / 2 + (angle === 0 ? 0 : dart.notNull(textSize.height) / 2));
    point.labelRect = new ui.Rect.fromLTWH(dart.notNull(labelLocation.dx) - 2, dart.notNull(labelLocation.dy) - 2, dart.notNull(textSize.width) + 2 * 2, dart.notNull(textSize.height) + 2 * 2);
    let isDataLabelCollide = charts._isCollide(point.labelRect, renderDataLabelRegions, point.region);
    if (dart.test(isDataLabelCollide) && dart.equals(smartLabelMode, charts.SmartLabelMode.shift)) {
      point.saturationRegionOutside = true;
      point.renderPosition = charts.ChartDataLabelPosition.outside;
      charts._renderOutsideFunnelDataLabel(canvas, label, point, textSize, pointIndex, series, chart, dataLabelStyle, renderDataLabelRegions, animateOpacity);
    } else if (dart.equals(smartLabelMode, charts.SmartLabelMode.none) || !dart.test(isDataLabelCollide) && dart.equals(smartLabelMode, charts.SmartLabelMode.shift) || !dart.test(isDataLabelCollide) && dart.equals(smartLabelMode, charts.SmartLabelMode.hide)) {
      point.renderPosition = charts.ChartDataLabelPosition.inside;
      charts._drawFunnelLabel(point.labelRect, labelLocation, label, null, canvas, series, point, pointIndex, chart, dataLabelStyle, renderDataLabelRegions, animateOpacity);
    }
  };
  charts._renderOutsideFunnelDataLabel = function _renderOutsideFunnelDataLabel(canvas, label, point, textSize, pointIndex, series, chart, textStyle, renderDataLabelRegions, animateOpacity) {
    let connectorPath = null;
    let rect = null;
    let labelLocation = null;
    let margin = series.dataLabelSettings.margin;
    let connector = series.dataLabelSettings.connectorLineSettings;
    connectorPath = ui.Path.new();
    let connectorLength = dart.notNull(charts._percentToValue(connector.length != null ? connector.length : "0%", dart.notNull(chart[_chartState].chartAreaRect.width) / 2)) + dart.notNull(series[_maximumDataLabelRegion].width) / 2 - 10;
    let regions = series[_renderPoints][$_get](pointIndex).pathRegion;
    let startPoint = new ui.Offset.new((dart.notNull(regions[$_get](1).dx) + dart.notNull(regions[$_get](2).dx)) / 2, (dart.notNull(regions[$_get](1).dy) + dart.notNull(regions[$_get](2).dy)) / 2);
    let endPoint = new ui.Offset.new(dart.notNull(series[_renderPoints][$_get](pointIndex).symbolLocation.dx) + connectorLength, (dart.notNull(regions[$_get](1).dy) + dart.notNull(regions[$_get](2).dy)) / 2);
    connectorPath.moveTo(startPoint.dx, startPoint.dy);
    if (dart.equals(connector.type, charts.ConnectorType.line)) {
      connectorPath.lineTo(endPoint.dx, endPoint.dy);
    }
    point.dataLabelPosition = charts.Position.right;
    if (dart.notNull(textSize.width) > 22) {
      label = label[$substring](0, 2) + "..";
      textSize = charts._measureText(label, textStyle);
    }
    rect = charts._getDataLabelRect(point.dataLabelPosition, connector.type, margin, connectorPath, endPoint, textSize);
    let containerRect = chart[_chartState].chartAreaRect;
    point.labelRect = rect;
    labelLocation = new ui.Offset.new(dart.notNull(rect.left) + dart.notNull(margin.left), dart.notNull(rect.top) + dart.notNull(rect.height) / 2 - dart.notNull(textSize.height) / 2);
    if (series.dataLabelSettings.builder == null) {
      let lastRenderedLabelRegion = null;
      if (dart.test(renderDataLabelRegions[$isNotEmpty])) {
        lastRenderedLabelRegion = renderDataLabelRegions[$_get](dart.notNull(renderDataLabelRegions[$length]) - 1);
      }
      if (dart.notNull(rect.left) > dart.notNull(containerRect.left) && dart.notNull(rect.right) <= dart.notNull(containerRect.right) && dart.notNull(rect.top) > dart.notNull(containerRect.top) && dart.notNull(rect.bottom) < dart.notNull(containerRect.bottom)) {
        if (!dart.test(charts._isFunnelLabelIntersect(rect, lastRenderedLabelRegion))) {
          charts._drawFunnelLabel(rect, labelLocation, label, connectorPath, canvas, series, point, pointIndex, chart, textStyle, renderDataLabelRegions, animateOpacity);
        } else {
          if (pointIndex !== 0) {
            let previousRenderedRect = renderDataLabelRegions[$_get](dart.notNull(renderDataLabelRegions[$length]) - 1);
            rect = new ui.Rect.fromLTWH(rect.left, dart.notNull(previousRenderedRect.top) - 2 - dart.notNull(rect.height), rect.width, rect.height);
            labelLocation = new ui.Offset.new(dart.notNull(rect.left) + dart.notNull(margin.left), dart.notNull(previousRenderedRect.top) - 2 - dart.notNull(rect.height) + dart.notNull(rect.height) / 2 - dart.notNull(textSize.height) / 2);
            connectorPath = ui.Path.new();
            connectorPath.moveTo(startPoint.dx, startPoint.dy);
            if (dart.notNull(rect.left) - 15 >= dart.notNull(startPoint.dx)) connectorPath.lineTo(dart.notNull(rect.left) - 15, startPoint.dy);
            connectorPath.lineTo(rect.left, dart.notNull(rect.top) + dart.notNull(rect.height) / 2);
          }
          if (dart.notNull(rect.top) >= dart.notNull(containerRect.top) + 10) {
            charts._drawFunnelLabel(rect, labelLocation, label, connectorPath, canvas, series, point, pointIndex, chart, textStyle, renderDataLabelRegions, animateOpacity);
          }
        }
      }
    }
  };
  charts._isFunnelLabelIntersect = function _isFunnelLabelIntersect(rect, previousRect) {
    let isIntersect = false;
    if (previousRect != null && dart.notNull(rect.bottom) + 2 > dart.notNull(previousRect.top)) {
      isIntersect = true;
    }
    return isIntersect;
  };
  charts._drawFunnelLabel = function _drawFunnelLabel(labelRect, location, label, connectorPath, canvas, series, point, pointIndex, chart, textStyle, renderDataLabelRegions, animateOpacity) {
    let t8, t7, t7$, t7$0, t7$1, t7$2;
    let rectPaint = null;
    let dataLabel = series.dataLabelSettings;
    let connector = dataLabel.connectorLineSettings;
    if (connectorPath != null) {
      canvas.drawPath(connectorPath, (t7 = ui.Paint.new(), t7.color = dart.notNull(connector.width) <= 0 ? colors$.Colors.transparent : (t8 = connector.color, t8 == null ? point.fill.withOpacity(!dart.test(chart[_chartState][_isLegendToggled]) ? animateOpacity : dataLabel.opacity) : t8), t7.strokeWidth = connector.width, t7.style = ui.PaintingStyle.stroke, t7));
    }
    if (dataLabel.builder == null) {
      let strokeWidth = dataLabel.borderWidth;
      let labelFill = dataLabel.color != null ? dataLabel.color : dart.test(dataLabel.useSeriesColor) ? point.fill : dataLabel.color;
      let strokeColor = (t7$ = dataLabel.borderColor.withOpacity(dataLabel.opacity), t7$ == null ? point.fill : t7$);
      if (strokeWidth != null && dart.notNull(strokeWidth) > 0) {
        rectPaint = (t7$0 = ui.Paint.new(), t7$0.color = strokeColor.withOpacity(!dart.test(chart[_chartState][_isLegendToggled]) ? animateOpacity : dataLabel.opacity), t7$0.style = ui.PaintingStyle.stroke, t7$0.strokeWidth = strokeWidth, t7$0);
        charts._drawLabelRect(rectPaint, new ui.Rect.fromLTRB(labelRect.left, labelRect.top, labelRect.right, labelRect.bottom), dataLabel.borderRadius, canvas);
      }
      if (labelFill != null) {
        charts._drawLabelRect((t7$1 = ui.Paint.new(), t7$1.color = labelFill.withOpacity(!dart.test(chart[_chartState][_isLegendToggled]) ? dart.notNull(animateOpacity) - (1 - dart.notNull(dataLabel.opacity)) < 0 ? 0.0 : dart.notNull(animateOpacity) - (1 - dart.notNull(dataLabel.opacity)) : dataLabel.opacity), t7$1.style = ui.PaintingStyle.fill, t7$1), new ui.Rect.fromLTRB(labelRect.left, labelRect.top, labelRect.right, labelRect.bottom), dataLabel.borderRadius, canvas);
      }
      textStyle.color = (t7$2 = textStyle.color, t7$2 == null ? colors$.Colors.black : t7$2).withOpacity(!dart.test(chart[_chartState][_isLegendToggled]) ? animateOpacity : dataLabel.opacity);
      charts._drawText(canvas, label, location, textStyle, dataLabel.angle);
      renderDataLabelRegions[$add](labelRect);
    }
  };
  charts._renderPyramidDataLabel = function _renderPyramidDataLabel(series, canvas, chart, animation) {
    let point = null;
    let dataLabel = series.dataLabelSettings;
    let label = null;
    let animateOpacity = animation != null ? animation.value : 1.0;
    let dataLabelArgs = null;
    let dataLabelStyle = null;
    let renderDataLabelRegions = JSArrayOfRect().of([]);
    for (let pointIndex = 0; pointIndex < dart.notNull(series[_renderPoints][$length]); pointIndex = pointIndex + 1) {
      point = series[_renderPoints][$_get](pointIndex);
      if (dart.test(point.isVisible)) {
        label = point.text;
        dataLabelStyle = dataLabel.textStyle;
        if (chart.onDataLabelRender != null) {
          dataLabelArgs = new charts.DataLabelRenderArgs.new();
          dataLabelArgs.text = label;
          dataLabelArgs.textStyle = dataLabelStyle;
          dataLabelArgs.series = series;
          dataLabelArgs.dataPoints = series[_renderPoints];
          dataLabelArgs.pointIndex = pointIndex;
          chart.onDataLabelRender(dataLabelArgs);
          label = dataLabelArgs.text;
          dataLabelStyle = dataLabelArgs.textStyle;
        }
        dataLabelStyle = chart.onDataLabelRender == null ? charts._getDataLabelTextStyle(series, point, chart) : dataLabelStyle;
        let textSize = charts._measureText(label, dataLabelStyle);
        if (dart.equals(dataLabel.labelPosition, charts.ChartDataLabelPosition.inside)) {
          charts._setPyramidInsideLabelPosition(dataLabel, point, textSize, chart, canvas, renderDataLabelRegions, pointIndex, label, series, animateOpacity, dataLabelStyle);
        } else {
          point.renderPosition = charts.ChartDataLabelPosition.outside;
          charts._renderOutsidePyramidDataLabel(canvas, label, point, textSize, pointIndex, series, chart, dataLabelStyle, renderDataLabelRegions, animateOpacity);
        }
      }
    }
  };
  charts._setPyramidInsideLabelPosition = function _setPyramidInsideLabelPosition(dataLabel, point, textSize, chart, canvas, renderDataLabelRegions, pointIndex, label, series, animateOpacity, dataLabelStyle) {
    let angle = dataLabel.angle;
    let labelLocation = null;
    let smartLabelMode = chart.smartLabelMode;
    labelLocation = point.symbolLocation;
    labelLocation = new ui.Offset.new(dart.notNull(labelLocation.dx) - dart.notNull(textSize.width) / 2 + (angle === 0 ? 0 : dart.notNull(textSize.width) / 2), dart.notNull(labelLocation.dy) - dart.notNull(textSize.height) / 2 + (angle === 0 ? 0 : dart.notNull(textSize.height) / 2));
    point.labelRect = new ui.Rect.fromLTWH(dart.notNull(labelLocation.dx) - 2, dart.notNull(labelLocation.dy) - 2, dart.notNull(textSize.width) + 2 * 2, dart.notNull(textSize.height) + 2 * 2);
    let isDataLabelCollide = charts._isCollide(point.labelRect, renderDataLabelRegions, point.region);
    if (dart.test(isDataLabelCollide) && dart.equals(smartLabelMode, charts.SmartLabelMode.shift)) {
      point.saturationRegionOutside = true;
      point.renderPosition = charts.ChartDataLabelPosition.outside;
      charts._renderOutsidePyramidDataLabel(canvas, label, point, textSize, pointIndex, series, chart, dataLabelStyle, renderDataLabelRegions, animateOpacity);
    } else if (dart.equals(smartLabelMode, charts.SmartLabelMode.none) || !dart.test(isDataLabelCollide) && dart.equals(smartLabelMode, charts.SmartLabelMode.shift) || !dart.test(isDataLabelCollide) && dart.equals(smartLabelMode, charts.SmartLabelMode.hide)) {
      point.renderPosition = charts.ChartDataLabelPosition.inside;
      charts._drawPyramidLabel(point.labelRect, labelLocation, label, null, canvas, series, point, pointIndex, chart, dataLabelStyle, renderDataLabelRegions, animateOpacity);
    }
  };
  charts._renderOutsidePyramidDataLabel = function _renderOutsidePyramidDataLabel(canvas, label, point, textSize, pointIndex, series, chart, textStyle, renderDataLabelRegions, animateOpacity) {
    let connectorPath = null;
    let rect = null;
    let labelLocation = null;
    let margin = series.dataLabelSettings.margin;
    let connector = series.dataLabelSettings.connectorLineSettings;
    connectorPath = ui.Path.new();
    let connectorLength = dart.notNull(charts._percentToValue(connector.length != null ? connector.length : "0%", dart.notNull(chart[_chartState].chartAreaRect.width) / 2)) + dart.notNull(series[_maximumDataLabelRegion].width) / 2 - 12;
    let startPoint = new ui.Offset.new(series[_renderPoints][$_get](pointIndex).region.right, dart.notNull(series[_renderPoints][$_get](pointIndex).region.top) + dart.notNull(series[_renderPoints][$_get](pointIndex).region.height) / 2);
    let endPoint = new ui.Offset.new(dart.notNull(series[_renderPoints][$_get](pointIndex).symbolLocation.dx) + connectorLength, series[_renderPoints][$_get](pointIndex).symbolLocation.dy);
    connectorPath.moveTo(startPoint.dx, startPoint.dy);
    if (dart.equals(connector.type, charts.ConnectorType.line)) {
      connectorPath.lineTo(endPoint.dx, endPoint.dy);
    }
    point.dataLabelPosition = charts.Position.right;
    rect = charts._getDataLabelRect(point.dataLabelPosition, connector.type, margin, connectorPath, endPoint, textSize);
    point.labelRect = rect;
    labelLocation = new ui.Offset.new(dart.notNull(rect.left) + dart.notNull(margin.left), dart.notNull(rect.top) + dart.notNull(rect.height) / 2 - dart.notNull(textSize.height) / 2);
    let containerRect = chart[_chartState].chartAreaRect;
    if (series.dataLabelSettings.builder == null) {
      let lastRenderedLabelRegion = null;
      if (dart.test(renderDataLabelRegions[$isNotEmpty])) {
        lastRenderedLabelRegion = renderDataLabelRegions[$_get](dart.notNull(renderDataLabelRegions[$length]) - 1);
      }
      if (!dart.test(charts._isPyramidLabelIntersect(rect, lastRenderedLabelRegion)) && dart.notNull(rect.left) > dart.notNull(containerRect.left) && dart.notNull(rect.left) + dart.notNull(rect.width) < dart.notNull(containerRect.left) + dart.notNull(containerRect.width) && dart.notNull(rect.top) > dart.notNull(containerRect.top) && dart.notNull(rect.top) + dart.notNull(rect.height) < dart.notNull(containerRect.top) + dart.notNull(containerRect.height)) {
        charts._drawPyramidLabel(rect, labelLocation, label, connectorPath, canvas, series, point, pointIndex, chart, textStyle, renderDataLabelRegions, animateOpacity);
      } else {
        if (pointIndex !== 0) {
          let previousRenderedRect = renderDataLabelRegions[$_get](dart.notNull(renderDataLabelRegions[$length]) - 1);
          rect = new ui.Rect.fromLTWH(rect.left, dart.notNull(previousRenderedRect.bottom) + 2, rect.width, rect.height);
          labelLocation = new ui.Offset.new(dart.notNull(rect.left) + dart.notNull(margin.left), dart.notNull(previousRenderedRect.bottom) + 2 + dart.notNull(rect.height) / 2 - dart.notNull(textSize.height) / 2);
          connectorPath = ui.Path.new();
          connectorPath.moveTo(startPoint.dx, startPoint.dy);
          connectorPath.lineTo(dart.notNull(rect.left) - 15, dart.notNull(rect.top) + dart.notNull(rect.height) / 2);
          connectorPath.lineTo(rect.left, dart.notNull(rect.top) + dart.notNull(rect.height) / 2);
        }
        if (dart.notNull(rect.bottom) < dart.notNull(chart[_chartState].chartAreaRect.bottom)) {
          charts._drawPyramidLabel(rect, labelLocation, label, connectorPath, canvas, series, point, pointIndex, chart, textStyle, renderDataLabelRegions, animateOpacity);
        }
      }
    }
  };
  charts._isPyramidLabelIntersect = function _isPyramidLabelIntersect(rect, previousRect) {
    let isIntersect = false;
    if (previousRect != null && dart.notNull(rect.top) - 2 < dart.notNull(previousRect.bottom)) {
      isIntersect = true;
    }
    return isIntersect;
  };
  charts._drawPyramidLabel = function _drawPyramidLabel(labelRect, location, label, connectorPath, canvas, series, point, pointIndex, chart, textStyle, renderDataLabelRegions, animateOpacity) {
    let t8, t7, t7$, t7$0, t7$1, t7$2;
    let rectPaint = null;
    let dataLabel = series.dataLabelSettings;
    let connector = dataLabel.connectorLineSettings;
    if (connectorPath != null) {
      canvas.drawPath(connectorPath, (t7 = ui.Paint.new(), t7.color = dart.notNull(connector.width) <= 0 ? colors$.Colors.transparent : (t8 = connector.color, t8 == null ? point.fill.withOpacity(!dart.test(chart[_chartState][_isLegendToggled]) ? animateOpacity : dataLabel.opacity) : t8), t7.strokeWidth = connector.width, t7.style = ui.PaintingStyle.stroke, t7));
    }
    if (dataLabel.builder == null) {
      let strokeWidth = dataLabel.borderWidth;
      let labelFill = dataLabel.color != null ? dataLabel.color : dart.test(dataLabel.useSeriesColor) ? point.fill : dataLabel.color;
      let strokeColor = (t7$ = dataLabel.borderColor.withOpacity(dataLabel.opacity), t7$ == null ? point.fill : t7$);
      if (strokeWidth != null && dart.notNull(strokeWidth) > 0) {
        rectPaint = (t7$0 = ui.Paint.new(), t7$0.color = strokeColor.withOpacity(!dart.test(chart[_chartState][_isLegendToggled]) ? animateOpacity : dataLabel.opacity), t7$0.style = ui.PaintingStyle.stroke, t7$0.strokeWidth = strokeWidth, t7$0);
        charts._drawLabelRect(rectPaint, new ui.Rect.fromLTRB(labelRect.left, labelRect.top, labelRect.right, labelRect.bottom), dataLabel.borderRadius, canvas);
      }
      if (labelFill != null) {
        charts._drawLabelRect((t7$1 = ui.Paint.new(), t7$1.color = labelFill.withOpacity(!dart.test(chart[_chartState][_isLegendToggled]) ? dart.notNull(animateOpacity) - (1 - dart.notNull(dataLabel.opacity)) < 0 ? 0.0 : dart.notNull(animateOpacity) - (1 - dart.notNull(dataLabel.opacity)) : dataLabel.opacity), t7$1.style = ui.PaintingStyle.fill, t7$1), new ui.Rect.fromLTRB(labelRect.left, labelRect.top, labelRect.right, labelRect.bottom), dataLabel.borderRadius, canvas);
      }
      textStyle.color = (t7$2 = textStyle.color, t7$2 == null ? colors$.Colors.black : t7$2).withOpacity(!dart.test(chart[_chartState][_isLegendToggled]) ? animateOpacity : dataLabel.opacity);
      charts._drawText(canvas, label, location, textStyle, dataLabel.angle);
      renderDataLabelRegions[$add](labelRect);
    }
  };
  charts._isPointInPolygon = function _isPointInPolygon(polygon, point) {
    let p = false;
    let i = -1;
    let l = polygon[$length];
    let j = null;
    for (let t7 = j = dart.notNull(l) - 1; (i = i + 1) < dart.notNull(l); j = i)
      (dart.notNull(polygon[$_get](dart.asInt(i)).dy) <= dart.notNull(core.num._check(dart.dload(point, 'dy'))) && dart.dtest(dart.dsend(dart.dload(point, 'dy'), '<', [polygon[$_get](dart.asInt(j)).dy])) || dart.notNull(polygon[$_get](dart.asInt(j)).dy) <= dart.notNull(core.num._check(dart.dload(point, 'dy'))) && dart.dtest(dart.dsend(dart.dload(point, 'dy'), '<', [polygon[$_get](dart.asInt(i)).dy]))) && dart.dtest(dart.dsend(dart.dload(point, 'dx'), '<', [(dart.notNull(polygon[$_get](dart.asInt(j)).dx) - dart.notNull(polygon[$_get](dart.asInt(i)).dx)) * dart.notNull(core.num._check(dart.dsend(dart.dload(point, 'dy'), '-', [polygon[$_get](dart.asInt(i)).dy]))) / (dart.notNull(polygon[$_get](dart.asInt(j)).dy) - dart.notNull(polygon[$_get](dart.asInt(i)).dy)) + dart.notNull(polygon[$_get](dart.asInt(i)).dx)])) && (p = !p);
    return p;
  };
  charts._findTemplates = function _findTemplates$(chart) {
    let labelLocation = null;
    let point = null;
    let labelWidget = null;
    dart.dput(dart.dload(chart, _chartState), 'templates', JSArrayOf_ChartTemplateInfo().of([]));
    dart.dput(dart.dload(chart, _chartState), 'dataLabelTemplateRegions', JSArrayOfRect().of([]));
    for (let k = 0; k < dart.notNull(core.num._check(dart.dload(dart.dload(dart.dload(chart, _chartSeries), 'visibleSeries'), 'length'))); k = k + 1) {
      let series = dart.dsend(dart.dload(dart.dload(chart, _chartSeries), 'visibleSeries'), '_get', [k]);
      if (dart.dtest(dart.dload(dart.dload(series, 'dataLabelSettings'), 'isVisible')) && dart.dload(dart.dload(series, 'dataLabelSettings'), 'builder') != null) {
        for (let i = 0; i < dart.notNull(core.num._check(dart.dload(dart.dload(series, _renderPoints), 'length'))); i = i + 1) {
          point = charts.PointInfo._check(dart.dsend(dart.dload(series, _renderPoints), '_get', [i]));
          let labelAlign = null;
          if (dart.test(point.isVisible)) {
            labelWidget = framework.Widget._check(dart.dsend(dart.dload(series, 'dataLabelSettings'), 'builder', [dart.dsend(dart.dload(series, 'dataSource'), '_get', [i]), point, series, i, k]));
            if (dart.equals(dart.dload(dart.dload(series, 'dataLabelSettings'), 'labelPosition'), charts.ChartDataLabelPosition.inside)) {
              labelLocation = point.symbolLocation;
              labelAlign = charts.ChartAlignment.center;
            } else {
              labelLocation = point.symbolLocation;
              labelLocation = new ui.Offset.new(dart.equals(point.dataLabelPosition, charts.Position.right) ? dart.notNull(labelLocation.dx) + 10 + 5 : dart.notNull(labelLocation.dx) - 10 - 5, labelLocation.dy);
              labelAlign = dart.equals(point.dataLabelPosition, charts.Position.left) ? charts.ChartAlignment.far : charts.ChartAlignment.near;
            }
            dart.dsend(dart.dload(dart.dload(chart, _chartState), 'templates'), 'add', [new charts._ChartTemplateInfo.new({key: GlobalKeyOfStateOfStatefulWidget().new(), templateType: "DataLabel", pointIndex: i, seriesIndex: k, needMeasure: true, clipRect: ui.Rect._check(dart.dload(dart.dload(chart, _chartState), 'chartAreaRect')), animationDuration: 500, widget: labelWidget, horizontalAlignment: labelAlign, verticalAlignment: charts.ChartAlignment.center, location: labelLocation})]);
          }
        }
      }
    }
  };
  charts._renderTemplates = function _renderTemplates$(chart) {
    if (dart.dtest(dart.dload(dart.dload(dart.dload(chart, _chartState), 'templates'), 'isNotEmpty'))) {
      for (let i = 0; i < dart.notNull(core.num._check(dart.dload(dart.dload(dart.dload(chart, _chartState), 'templates'), 'length'))); i = i + 1) {
        let chartTemplateInfo = charts._ChartTemplateInfo._check(dart.dsend(dart.dload(dart.dload(chart, _chartState), 'templates'), '_get', [i]));
        chartTemplateInfo.animationDuration = !dart.dtest(dart.dload(dart.dload(chart, _chartState), 'initialRender')) ? 0 : chartTemplateInfo.animationDuration;
      }
      dart.dput(dart.dload(chart, _chartState), _chartTemplate, new charts._ChartTemplate.new({templates: ListOf_ChartTemplateInfo()._check(dart.dload(dart.dload(chart, _chartState), 'templates')), render: core.bool._check(dart.dload(dart.dload(chart, _chartState), 'animateCompleted')), chart: chart, $creationLocationd_0dea112b090073317d4: C1034 || CT.C1034}));
      dart.dsend(dart.dload(dart.dload(chart, _chartState), _chartWidgets), 'add', [dart.dload(dart.dload(chart, _chartState), _chartTemplate)]);
    }
  };
  charts._getPyramidFunnelColor = function _getPyramidFunnelColor(currentPoint, series, chart) {
    let color = null;
    let dataLabel = charts.DataLabelSettings._check(dart.dload(series, 'dataLabelSettings'));
    if (dart.dload(currentPoint, 'renderPosition') == null || dart.equals(dart.dload(currentPoint, 'renderPosition'), charts.ChartDataLabelPosition.inside) && !dart.dtest(dart.dload(currentPoint, 'saturationRegionOutside'))) {
      color = charts._innerColor(dataLabel.color, ui.Color._check(dart.dload(currentPoint, 'fill')), charts_theme.SfChartThemeData._check(dart.dload(dart.dload(chart, _chartState), _chartTheme)));
    } else {
      color = charts._outerColor(dataLabel.color, ui.Color._check(dart.test(dataLabel.useSeriesColor) ? dart.dload(currentPoint, 'fill') : dart.dload(chart, 'backgroundColor') != null ? dart.dload(dart.dload(dart.dload(chart, _chartState), _chartTheme), 'plotAreaBackgroundColor') : null), charts_theme.SfChartThemeData._check(dart.dload(dart.dload(chart, _chartState), _chartTheme)));
    }
    return charts._getSaturationColor(color);
  };
  charts._innerColor = function _innerColor(dataLabelColor, pointColor, theme) {
    return dataLabelColor != null ? dataLabelColor : pointColor != null ? pointColor : colors$.Colors.black;
  };
  charts._outerColor = function _outerColor(dataLabelColor, backgroundColor, theme) {
    return dataLabelColor != null ? dataLabelColor : backgroundColor != null ? backgroundColor : dart.equals(theme.brightness, ui.Brightness.light) ? C894 || CT.C894 : colors$.Colors.black;
  };
  charts._getDataLabelTextStyle = function _getDataLabelTextStyle(series, point, chart) {
    let dataLabel = charts.DataLabelSettings._check(dart.dload(series, 'dataLabelSettings'));
    let fontColor = dataLabel.textStyle.color != null ? dataLabel.textStyle.color : charts._getPyramidFunnelColor(point, series, chart);
    let textStyle = new charts.ChartTextStyle.new({color: fontColor, fontSize: dataLabel.textStyle.fontSize, fontFamily: dataLabel.textStyle.fontFamily, fontStyle: dataLabel.textStyle.fontStyle, fontWeight: dataLabel.textStyle.fontWeight});
    return textStyle;
  };
  charts._isNeedExplode = function _isNeedExplode(pointIndex, series, chart) {
    let isNeedExplode = false;
    if (dart.dtest(dart.dload(series, 'explode'))) {
      if (dart.dtest(dart.dload(dart.dload(chart, _chartState), 'initialRender'))) {
        if (core.identical(pointIndex, dart.dload(series, 'explodeIndex'))) {
          dart.dsend(dart.dload(dart.dload(chart, _chartState), 'explodedPoints'), 'add', [pointIndex]);
          isNeedExplode = true;
        }
      } else if (dart.dtest(dart.dload(dart.dload(chart, _chartState), 'widgetNeedUpdate')) || dart.dtest(dart.dload(dart.dload(chart, _chartState), _isLegendToggled))) {
        isNeedExplode = core.bool._check(dart.dsend(dart.dload(dart.dload(chart, _chartState), 'explodedPoints'), 'contains', [pointIndex]));
      }
    }
    return isNeedExplode;
  };
  charts._getDataLabelRect = function _getDataLabelRect(position, connectorType, margin, connectorPath, endPoint, textSize) {
    let rect = null;
    switch (position) {
      case C137 || CT.C137:
      {
        dart.equals(connectorType, charts.ConnectorType.line) ? connectorPath.lineTo(dart.notNull(endPoint.dx) + 10, endPoint.dy) : connectorPath.quadraticBezierTo(endPoint.dx, endPoint.dy, dart.notNull(endPoint.dx) + 10, endPoint.dy);
        rect = new ui.Rect.fromLTWH(dart.notNull(endPoint.dx) + 10, dart.notNull(endPoint.dy) - dart.notNull(textSize.height) / 2 - dart.notNull(margin.top), dart.notNull(textSize.width) + dart.notNull(margin.left) + dart.notNull(margin.right), dart.notNull(textSize.height) + dart.notNull(margin.top) + dart.notNull(margin.bottom));
        break;
      }
      case C136 || CT.C136:
      {
        dart.equals(connectorType, charts.ConnectorType.line) ? connectorPath.lineTo(dart.notNull(endPoint.dx) - 10, endPoint.dy) : connectorPath.quadraticBezierTo(endPoint.dx, endPoint.dy, dart.notNull(endPoint.dx) - 10, endPoint.dy);
        rect = new ui.Rect.fromLTWH(dart.notNull(endPoint.dx) - 10 - dart.notNull(margin.right) - dart.notNull(textSize.width) - dart.notNull(margin.left), dart.notNull(endPoint.dy) - dart.notNull(textSize.height) / 2 - dart.notNull(margin.top), dart.notNull(textSize.width) + dart.notNull(margin.left) + dart.notNull(margin.right), dart.notNull(textSize.height) + dart.notNull(margin.top) + dart.notNull(margin.bottom));
        break;
      }
    }
    return rect;
  };
  let C1039;
  let C1040;
  web.HandCursor = class HandCursor extends basic.MouseRegion {
    static _mouseHover(event) {
      return web.HandCursor.appContainer.style[$cursor] = "pointer";
    }
    static _mouseExit(event) {
      return web.HandCursor.appContainer.style[$cursor] = "default";
    }
  };
  (web.HandCursor.new = function(opts) {
    let child = opts && 'child' in opts ? opts.child : null;
    let $36creationLocationd_0dea112b090073317d4 = opts && '$creationLocationd_0dea112b090073317d4' in opts ? opts.$creationLocationd_0dea112b090073317d4 : null;
    web.HandCursor.__proto__.new.call(this, {child: child, onHover: C1039 || CT.C1039, onExit: C1040 || CT.C1040, $creationLocationd_0dea112b090073317d4: $36creationLocationd_0dea112b090073317d4});
    ;
  }).prototype = web.HandCursor.prototype;
  dart.addTypeTests(web.HandCursor);
  dart.setLibraryUri(web.HandCursor, "package:syncfusion_flutter_charts/src/common/handcursor/web.dart");
  dart.defineLazy(web.HandCursor, {
    /*web.HandCursor.appContainer*/get appContainer() {
      return html.window[$document].getElementById("app-container");
    }
  });
  web.changeCursorStyleOnNavigation = function changeCursorStyleOnNavigation() {
    web.HandCursor.appContainer.style[$cursor] = "default";
  };
  dart.trackLibraries("packages/syncfusion_flutter_charts/charts", {
    "package:syncfusion_flutter_charts/charts.dart": charts,
    "package:syncfusion_flutter_charts/src/common/handcursor/web.dart": web
  }, {
    "package:syncfusion_flutter_charts/charts.dart": ["./src/circular_chart/base/circular_base.dart", "./src/circular_chart/base/series_base.dart", "./src/circular_chart/renderer/circular-series.dart", "./src/circular_chart/renderer/common.dart", "./src/circular_chart/renderer/data_label_renderer.dart", "./src/circular_chart/renderer/doughnut_series.dart", "./src/circular_chart/renderer/pie_series.dart", "./src/circular_chart/renderer/radial_bar_series.dart", "./src/circular_chart/utils/enum.dart", "./src/circular_chart/utils/helper.dart", "./src/pyramid_chart/base/pyramid_base.dart", "./src/pyramid_chart/base/series_base.dart", "./src/pyramid_chart/renderer/pyramid_series.dart", "./src/pyramid_chart/utils/common.dart", "./src/pyramid_chart/utils/helper.dart", "./src/pyramid_chart/renderer/data_label_renderer.dart", "./src/funnel_chart/base/funnel_base.dart", "./src/funnel_chart/base/series_base.dart", "./src/funnel_chart/renderer/funnel_series.dart", "./src/funnel_chart/renderer/data_label_renderer.dart", "./src/chart/annotation/annotation_settings.dart", "./src/chart/axis/axis.dart", "./src/chart/axis/axis_panel.dart", "./src/chart/axis/axis_renderer.dart", "./src/chart/axis/category_axis.dart", "./src/chart/axis/datetime_axis.dart", "./src/chart/axis/logarithmic_axis.dart", "./src/chart/axis/numeric_axis.dart", "./src/chart/axis/plotband.dart", "./src/chart/base/chart_base.dart", "./src/chart/base/series_base.dart", "./src/chart/chart_behavior/chart_behavior.dart", "./src/chart/chart_behavior/selection_behavior.dart", "./src/chart/chart_behavior/zoom_behavior.dart", "./src/chart/chart_segment/area_segment.dart", "./src/chart/chart_segment/stacked_area_segment.dart", "./src/chart/chart_segment/stackedarea100_segment.dart", "./src/chart/chart_segment/bar_segment.dart", "./src/chart/chart_segment/bubble_segment.dart", "./src/chart/chart_segment/chart_segment.dart", "./src/chart/chart_segment/column_segment.dart", "./src/chart/chart_segment/fastline_segment.dart", "./src/chart/chart_series/financial_series_base.dart", "./src/chart/chart_segment/hilo_segment.dart", "./src/chart/chart_segment/hiloopenclose_segment.dart", "./src/chart/chart_segment/candle_segment.dart", "./src/chart/chart_segment/line_segment.dart", "./src/chart/chart_segment/stacked_line_segment.dart", "./src/chart/chart_segment/range_area_segment.dart", "./src/chart/chart_segment/stackedline100_segment.dart", "./src/chart/chart_segment/range_column_segment.dart", "./src/chart/chart_segment/scatter_segment.dart", "./src/chart/chart_segment/spline_segment.dart", "./src/chart/chart_segment/spline_area_segment.dart", "./src/chart/chart_series/stacked_series_base.dart", "./src/chart/chart_segment/stacked_bar_segment.dart", "./src/chart/chart_segment/stackedbar100_segment.dart", "./src/chart/chart_segment/stacked_column_segment.dart", "./src/chart/chart_segment/stackedcolumn100_segment.dart", "./src/chart/chart_segment/step_area_segment.dart", "./src/chart/chart_segment/stepline_segment.dart", "./src/chart/chart_series/area_series.dart", "./src/chart/chart_series/stacked_area_series.dart", "./src/chart/chart_series/stackedarea100_series.dart", "./src/chart/chart_series/bar_series.dart", "./src/chart/chart_series/bubble_series.dart", "./src/chart/chart_series/column_series.dart", "./src/chart/chart_series/fastline_series.dart", "./src/chart/chart_series/hilo_series.dart", "./src/chart/chart_series/hiloopenclose_series.dart", "./src/chart/chart_series/candle_series.dart", "./src/chart/chart_series/line_series.dart", "./src/chart/chart_series/stacked_line_series.dart", "./src/chart/chart_series/range_area_series.dart", "./src/chart/chart_series/stackedline100_series.dart", "./src/chart/chart_series/range_column_series.dart", "./src/chart/chart_series/scatter_series.dart", "./src/chart/chart_series/stacked_bar_series.dart", "./src/chart/chart_series/stackedbar100_series.dart", "./src/chart/chart_series/stacked_column_series.dart", "./src/chart/chart_series/stackedcolumn100_series.dart", "./src/chart/chart_series/series.dart", "./src/chart/chart_series/spline_series.dart", "./src/chart/chart_series/spline_area_series.dart", "./src/chart/chart_series/step_area_series.dart", "./src/chart/chart_series/stepline_series.dart", "./src/chart/chart_series/xy_data_series.dart", "./src/chart/common/common.dart", "./src/chart/common/data_label.dart", "./src/chart/common/data_label_renderer.dart", "./src/chart/common/marker.dart", "./src/chart/common/renderer.dart", "./src/chart/series_painter/area_painter.dart", "./src/chart/series_painter/stacked_area_painter.dart", "./src/chart/series_painter/stackedarea100_painter.dart", "./src/chart/series_painter/bar_painter.dart", "./src/chart/series_painter/bubble_painter.dart", "./src/chart/series_painter/column_painter.dart", "./src/chart/series_painter/fastline_painter.dart", "./src/chart/series_painter/hilo_painter.dart", "./src/chart/series_painter/hiloopenclose_painter.dart", "./src/chart/series_painter/candle_painter.dart", "./src/chart/series_painter/line_painter.dart", "./src/chart/series_painter/stacked_line_painter.dart", "./src/chart/series_painter/range_area_painter.dart", "./src/chart/series_painter/stackedline100_painter.dart", "./src/chart/series_painter/range_column_painter.dart", "./src/chart/series_painter/scatter_painter.dart", "./src/chart/series_painter/spline_painter.dart", "./src/chart/series_painter/spline_area_painter.dart", "./src/chart/series_painter/stacked_bar_painter.dart", "./src/chart/series_painter/stackedbar100_painter.dart", "./src/chart/series_painter/stacked_column_painter.dart", "./src/chart/series_painter/stackedcolumn100_painter.dart", "./src/chart/series_painter/step_area_painter.dart", "./src/chart/series_painter/stepline_painter.dart", "./src/chart/technical_indicators/accumulation_distribution_indicator.dart", "./src/chart/technical_indicators/atr_indicator.dart", "./src/chart/technical_indicators/bollinger_bands_indicator.dart", "./src/chart/technical_indicators/ema_indicator.dart", "./src/chart/technical_indicators/tma_indicator.dart", "./src/chart/technical_indicators/rsi_indicator.dart", "./src/chart/technical_indicators/sma_indicator.dart", "./src/chart/technical_indicators/macd_indicator.dart", "./src/chart/technical_indicators/momentum_indicator.dart", "./src/chart/technical_indicators/stochastic_indicator.dart", "./src/chart/technical_indicators/technical_indicator.dart", "./src/chart/trendlines/trendlines.dart", "./src/chart/trendlines/trendlines_painter.dart", "./src/chart/user_interaction/crosshair.dart", "./src/chart/user_interaction/crosshair_painter.dart", "./src/chart/user_interaction/selection_renderer.dart", "./src/chart/user_interaction/tooltip_painter.dart", "./src/chart/user_interaction/tooltip_template.dart", "./src/chart/user_interaction/trackball.dart", "./src/chart/user_interaction/trackball_painter.dart", "./src/chart/user_interaction/zooming_painter.dart", "./src/chart/user_interaction/zooming_panning.dart", "./src/chart/utils/enum.dart", "./src/chart/utils/helper.dart", "./src/common/common.dart", "./src/common/event_args.dart", "./src/common/legend/legend.dart", "./src/common/legend/renderer.dart", "./src/common/series/chart_series.dart", "./src/common/template/rendering.dart", "./src/common/user_interaction/selection.dart", "./src/common/user_interaction/tooltip.dart", "./src/common/utils/enum.dart", "./src/common/utils/helper.dart"]
  }, '{"version":3,"sourceRoot":"","sources":["src/circular_chart/base/circular_base.dart","src/circular_chart/base/series_base.dart","src/common/series/chart_series.dart","src/circular_chart/renderer/circular-series.dart","src/circular_chart/renderer/common.dart","src/circular_chart/renderer/data_label_renderer.dart","src/circular_chart/renderer/doughnut_series.dart","src/circular_chart/renderer/pie_series.dart","src/circular_chart/renderer/radial_bar_series.dart","src/circular_chart/utils/enum.dart","src/pyramid_chart/base/pyramid_base.dart","src/pyramid_chart/base/series_base.dart","src/pyramid_chart/renderer/pyramid_series.dart","src/pyramid_chart/utils/common.dart","src/pyramid_chart/renderer/data_label_renderer.dart","src/funnel_chart/base/funnel_base.dart","src/funnel_chart/base/series_base.dart","src/funnel_chart/renderer/funnel_series.dart","src/funnel_chart/renderer/data_label_renderer.dart","src/chart/annotation/annotation_settings.dart","src/chart/axis/axis.dart","src/chart/axis/axis_panel.dart","src/chart/axis/axis_renderer.dart","src/chart/axis/category_axis.dart","src/chart/axis/datetime_axis.dart","src/chart/axis/logarithmic_axis.dart","src/chart/axis/numeric_axis.dart","src/chart/axis/plotband.dart","src/chart/base/chart_base.dart","src/chart/base/series_base.dart","src/chart/chart_behavior/chart_behavior.dart","src/chart/chart_behavior/selection_behavior.dart","src/chart/chart_behavior/zoom_behavior.dart","src/chart/chart_segment/chart_segment.dart","src/chart/chart_segment/area_segment.dart","src/chart/chart_segment/stacked_area_segment.dart","src/chart/chart_segment/stackedarea100_segment.dart","src/chart/chart_segment/bar_segment.dart","src/chart/chart_segment/bubble_segment.dart","src/chart/chart_segment/column_segment.dart","src/chart/chart_segment/fastline_segment.dart","src/chart/chart_series/series.dart","src/chart/chart_series/xy_data_series.dart","src/chart/chart_series/financial_series_base.dart","src/chart/chart_segment/hilo_segment.dart","src/chart/chart_segment/hiloopenclose_segment.dart","src/chart/chart_segment/candle_segment.dart","src/chart/chart_segment/line_segment.dart","src/chart/chart_segment/stacked_line_segment.dart","src/chart/chart_segment/range_area_segment.dart","src/chart/chart_segment/stackedline100_segment.dart","src/chart/chart_segment/range_column_segment.dart","src/chart/chart_segment/scatter_segment.dart","src/chart/chart_segment/spline_segment.dart","src/chart/chart_segment/spline_area_segment.dart","src/chart/chart_series/stacked_series_base.dart","src/chart/chart_segment/stacked_bar_segment.dart","src/chart/chart_segment/stackedbar100_segment.dart","src/chart/chart_segment/stacked_column_segment.dart","src/chart/chart_segment/stackedcolumn100_segment.dart","src/chart/chart_segment/step_area_segment.dart","src/chart/chart_segment/stepline_segment.dart","src/chart/chart_series/area_series.dart","src/chart/chart_series/stacked_area_series.dart","src/chart/chart_series/stackedarea100_series.dart","src/chart/chart_series/bar_series.dart","src/chart/chart_series/bubble_series.dart","src/chart/chart_series/column_series.dart","src/chart/chart_series/fastline_series.dart","src/chart/chart_series/hilo_series.dart","src/chart/chart_series/hiloopenclose_series.dart","src/chart/chart_series/candle_series.dart","src/chart/chart_series/line_series.dart","src/chart/chart_series/stacked_line_series.dart","src/chart/chart_series/range_area_series.dart","src/chart/chart_series/stackedline100_series.dart","src/chart/chart_series/range_column_series.dart","src/chart/chart_series/scatter_series.dart","src/chart/chart_series/stacked_bar_series.dart","src/chart/chart_series/stackedbar100_series.dart","src/chart/chart_series/stacked_column_series.dart","src/chart/chart_series/stackedcolumn100_series.dart","src/chart/chart_series/spline_series.dart","src/chart/chart_series/spline_area_series.dart","src/chart/chart_series/step_area_series.dart","src/chart/chart_series/stepline_series.dart","src/chart/common/common.dart","src/chart/common/data_label.dart","src/chart/common/marker.dart","src/chart/common/renderer.dart","src/chart/series_painter/area_painter.dart","src/chart/series_painter/stacked_area_painter.dart","src/chart/series_painter/stackedarea100_painter.dart","src/chart/series_painter/bar_painter.dart","src/chart/series_painter/bubble_painter.dart","src/chart/series_painter/column_painter.dart","src/chart/series_painter/fastline_painter.dart","src/chart/series_painter/hilo_painter.dart","src/chart/series_painter/hiloopenclose_painter.dart","src/chart/series_painter/candle_painter.dart","src/chart/series_painter/line_painter.dart","src/chart/series_painter/stacked_line_painter.dart","src/chart/series_painter/range_area_painter.dart","src/chart/series_painter/stackedline100_painter.dart","src/chart/series_painter/range_column_painter.dart","src/chart/series_painter/scatter_painter.dart","src/chart/series_painter/spline_painter.dart","src/chart/series_painter/spline_area_painter.dart","src/chart/series_painter/stacked_bar_painter.dart","src/chart/series_painter/stackedbar100_painter.dart","src/chart/series_painter/stacked_column_painter.dart","src/chart/series_painter/stackedcolumn100_painter.dart","src/chart/series_painter/step_area_painter.dart","src/chart/series_painter/stepline_painter.dart","src/chart/technical_indicators/technical_indicator.dart","src/chart/technical_indicators/accumulation_distribution_indicator.dart","src/chart/technical_indicators/atr_indicator.dart","src/chart/technical_indicators/bollinger_bands_indicator.dart","src/chart/technical_indicators/ema_indicator.dart","src/chart/technical_indicators/tma_indicator.dart","src/chart/technical_indicators/rsi_indicator.dart","src/chart/technical_indicators/sma_indicator.dart","src/chart/technical_indicators/macd_indicator.dart","src/chart/technical_indicators/momentum_indicator.dart","src/chart/technical_indicators/stochastic_indicator.dart","src/chart/trendlines/trendlines.dart","src/chart/trendlines/trendlines_painter.dart","src/chart/user_interaction/crosshair.dart","src/chart/user_interaction/crosshair_painter.dart","src/chart/user_interaction/selection_renderer.dart","src/chart/user_interaction/tooltip_painter.dart","src/chart/user_interaction/tooltip_template.dart","src/chart/user_interaction/trackball.dart","src/chart/user_interaction/trackball_painter.dart","src/chart/user_interaction/zooming_painter.dart","src/chart/user_interaction/zooming_panning.dart","src/chart/utils/enum.dart","src/chart/utils/helper.dart","src/common/common.dart","src/common/event_args.dart","src/common/legend/legend.dart","src/common/legend/renderer.dart","src/common/template/rendering.dart","src/common/user_interaction/selection.dart","src/common/user_interaction/tooltip.dart","src/common/utils/enum.dart","src/common/utils/helper.dart","src/chart/common/data_label_renderer.dart","src/circular_chart/utils/helper.dart","src/pyramid_chart/utils/helper.dart","src/common/handcursor/web.dart"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAgHmB;;;;;;IAgB4B;;;;;;IAa5B;;;;;;IAYJ;;;;;;IAYS;;;;;;IAYV;;;;;;IAqBwB;;;;;;IAYxB;;;;;;IAaC;;;;;;IAoCO;;;;;;IAcP;;;;;;IAcA;;;;;;IAkBsB;;;;;;IAgBL;;;;;;IAqBQ;;;;;;IAeP;;;;;;IAeF;;;;;;IAgBG;;;;;;IAcd;;;;;;IA4BG;;;;;;IAsBV;;;;;;;AAW4B;IAAuB;;;;QA1ZrD;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QAYM;QACA;QAC4B;QAChC;QACA;QACA;QACS;QACD;QACV;;IA4MJ;IAoHiB;IAiDT;IAGG;IAGF;IAtZL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAqBI,gBAAE,UAAgB,KAAP,MAAM,QAAN,OAA4C;IACxD,gBAAQ,MAAN,KAAK,SAAL,OAAS;IACV,iBAAS,OAAP,MAAM,UAAN,OAAU;IACZ,iBAAS,OAAP,MAAM,UAAN;IACD,kBAAU,OAAR,OAAO,UAAP,OAAW;IACb,kBAAU,OAAR,OAAO,UAAP,OAAW;IACL,0BAAkB,OAAhB,eAAe,UAAf,OAAmB;IACpB,2BAAmB,OAAjB,gBAAgB,UAAhB,OAAmC;IACjC,+BAAuB,OAArB,oBAAoB,UAApB,OAAwB;AAC/C,0DAAW,GAAG;AACc,IAAhC,qBAAe;AACgB,IAA/B,sBAAgB;AACa,IAA7B,qBAAe;AACa,IAA5B,8BAAwB;EAC1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAma4B,MAA1B;AACiB,MAAX;IACR;;;AAG0B,MAAxB,wBAAmB;AACC,MAApB,qBAAgB;AACwB,MAAxC,sBAAsC;AACiB,MAAvD,4BAAuB,yDAA2B;AACL,MAA7C,6BAAwB,+BAAmB;AACI,MAA/C,2BAA6C;AACrB,MAAxB,sBAAsB;AACY,MAAlC,iBAAgC;AACa,MAA7C,0BAA2C;AACC,MAA5C,0BAA0C;AACI,MAA9C,4BAA4C;AACf,MAA7B,uBAA2B;AACI,MAA/B,yBAA6B;AACyB,MAAtD,kCAAoD;AACjB,MAAnC,gCAAiC;AACL,MAA5B,yBAA0B;AACF,MAAxB,wBAAmB;AACK,MAAxB,yBAAmB;AACI,MAAvB,qBAAqB;AAEgB,MADrC,iCAAsB,yDAA2B,QAC7C,yBAAY;IAClB;;AAIwC,MAAtC,oBAA2B,6BAAG;AACD,MAAvB;IACR;;oCAGqC;AACU,MAA7C,kCAA2B,aAAQ,SAAS;AACjC,2BACkB,UADD,AAAO,AAAM,AAAI,0BAAH,4BACtC,AAAO,AAAM,AAAI,0BAAH,4BACd,AAAU,AAAM,AAAI,SAAX,eAAQ,eAAiB,AAAO,AAAM,AAAI,0BAAH;AAC5B,MAAxB,yBAAmB;AACiC,MAApD,AAAU,AAAY,SAAb,8BAA6B,cAAc;AAC7B,MAAvB,wBAAmB;AACa,MAAhC,kBAAa,AAAU,AAAM,SAAP,eAAQ;AAC9B,oBAAI,AAAoB;AACK,QAA3B,AAAoB;;AAEU,MAA1B,sBAAgB,SAAS;IACjC;;AAIE,UAAI,4BAAuB;AAC+B,QAAxD,AAAoB,kDAAe;AACN,QAA7B,AAAoB;AACM,QAA1B,2BAAsB;;AAET,MAAT;IACR;;;AAG+B,WAA7B;MAAsB,WAAK,aAAL,YAAK;IAC7B;;AAI0C,MAAxC,AAAO,AAAY,yCAAgB;AACnC,oBAAI;AAC2B,QAA7B,kBAAa,AAAO,AAAM,0BAAC;AAEyC,QADpE,mBACI,uBAA0B,AAAO,AAAM,AAAI,AAAc,0BAAjB;AAC5C,iBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,AAAM,AAAI,AAAc,0BAAjB,6BAAyB,IAAA,AAAC,CAAA;AACT,UAAjD,AAAU,wBAAC,CAAC,EAAI,AAAO,AAAM,AAAI,AAAa,0BAAhB,yBAAiB,CAAC;;;AAGrC,MAAf,cAAS;;IACX;;AAGE,oBAAI,AAAO,AAAY,AAAoB;AACzC,iBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,AAAY,AAAoB,wDAAQ,IAAA,AAAC,CAAA;AACtC,gCACxB,AAAO,AAAY,AAAmB,oDAAC,CAAC;AAC5B,+CAAY,AAAgB,AAAQ,eAAT;AACN,UAArC,AAAgB,eAAD,QAAQ,AAAU,SAAD;;AAEnB,QAAf,cAAS;;;IAEb;UAG0B;;AACkB,MAAxB,wCAAgB,OAAO;AAChB,MAAzB,AAAO,2BAAc;AACrB,YAAO,qCACE,iDACI,yCACG,8CAEmB,KAAvB,AAAO,mCAAA,OAAmB,AAAY,wDACnC,AAAO,AAAgB,+BAAG,OAC3B,iDACS,AAAO,kCAA6B,wBAC7C,cACS,8BACJ,AAAO,gCAAoB,AAAO,oCAC1C,gCACa,sBAAC,yBAAkB,cAAS;IAItD;;AAGE,YAAO,gCACE,+CACM,SAAc,SAAwB;AAC1C;AACiB,YAAxB,kBAAY,WAAW;AACiB,YAAxC,AAAO,AAAa;AACoB,YAAxC,AAAO,AAAa;AACD,kCAAkB,kCAA2B;AAChE,0BAAI,AAAgB,eAAD,4BAAe,AAAoB;AACQ,cAA5D,UAAU,oCAAiB,+BAAgB,eAAe;AACO,cAAhD,AAAS,uDAAqB,QAAC,KAAM;;AAGI,cAD1D,AAAO,AACF,kDAAuB,AAAO,AAAa;AAEmB,cADnE,UACI,oBAAa,aAAQ,qCAAqB,sEAAS,WAAW;;AAG9B,YADtC,AAAO,AAAY,gDACJ,AAAY,0BAAT,OAAO;AACzB,kBAAO,QAAO;;IAGpB;kBAEgC;AACI,MAAlC,AAAO,AAAa,kCAAQ;AACM,MAAlC,AAAO,AAAa,kCAAQ;AACd,kBAAQ,AAAY,WAAD;AACnB,mBAAS,AAAY,WAAD;AACjB,mBAAS,AAAO;AAID,MAHhC,AAAO,AAAO,oCACc,YAAvB,AAAO,AAAO,6BAA2B,yCAC5B,WAAP,MAAM,QAAG,KAAK,MAAkB,+BAAwB,8BACzD,AAAO,AAAO;AAEgB,MADxC,AAAO,AAAa,sCAAY,mCAAyB,WAAd,WAAN,KAAK,QAAG,AAAO,MAAD,eAAQ,AAAO,MAAD,8BACzC,WAAb,WAAP,MAAM,QAAG,AAAO,MAAD,cAAO,AAAO,MAAD;IAClC;;;IAxM0B;IAGN;IAGA;IAGD;IAGS;IAGH;IAGZ;IAGI;IACV;IACF;IACA;IACA;IACK;IACiB;IACC;IACvB;IACqB;IACA;IACZ;IACA;IACH;IACA;IACI;IACG;IACX;IACoB;IACtB;IACA;IAC4B;IACP;IAChB;IACQ;IACN;;;EA2Jd;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAU4B;AACxB,YAAO,gDACM,SAAc,SAAwB,gBAC1C,oCACI,+BAAwB,sBACjC,uBAAiB,WAAW,EAAE,OAAO,GACrC,kCACW,qCACK,AAAY,WAAD,mBACZ,AAAY,WAAD,wGAEb,QAAc,SAAU,eAAS,KAAK,kCACvC,QAAc;AACqB,kBAAzC,AAAM,AAAgB,0CAAc;mGAE1C,qCACe,QAAgB,SAAU,eAAS,KAAK,2CACtC,QAAkB,SAAU,iBAAW,KAAK,qCACpD,iEACU,4CACA,4BACN,qCACG,AAAY,WAAD,mBACZ,AAAY,WAAD;IAMhC;iCAEgD,OAAe;AAChD;AACgB,MAA7B,eAAe;AACiC,MAAhD,AAAa,YAAD,cAAc,AAAY,WAAD;AACa,MAAlD,AAAa,YAAD,eAAe,AAAY,WAAD;AAEoC,MAD1E,AAAa,YAAD,cACR,AAAM,AAAa,AAAa,AAA2B,KAAtD,oCAA4B,AAAa,YAAD;AAChB,MAAjC,AAAM,KAAD,eAAe,YAAY;IAClC;iBAMiC;;AACU,MAAzC,AAAM,AAAgB,0CAAc;AAEE,MAAtC,AAAM,AAAY,wCAAgB;AACsC,MAAxE,AAAM,AAAY,wCAAe,AAAU,6BAAc,AAAM,KAAD;AACM,MAApE,mBAAc,uBAAgB,YAAO,AAAM,AAAY;AACvD,UAAI,AAAM,4BAAiB,QAAQ,oBAAe;AACF,QAA9C,iCAA2B,YAAO;;AAEc,MAAlD,yBAAoB,AAAM,AAAY;AACtC,UAAI,AAAM,AAAY,yCAAgB,QAAQ,oBAAe;AAO3C,QANhB,AAAM,AAAY,wCAAgB,iCAC9B,AAAY,8BACZ,AAAY,6BACZ,AAAM,AAAa,AAAa,8CAAC,AAAY,+BAC7C,AAAM,AAAa,AAAa,AAC3B,AAAa,8CADe,AAAY,oDAC1B,AAAY,8BAC/B;;AAEiD,oBAArD,AAAM,yCAAA,OAAiB;sBAAjB,OAAmC,WAAO;AACiB,+BAAjE,AAAM,2CAAA,OAAiB,wCAAjB,OAAmC;uBAAnC,OAA0C;;IAEpD;;AAGE,UAAI,0BAAqB,QAAQ,oBAAe;AAO9B,QANhB,AAAM,AAAY,wCAAgB,iCAC9B,AAAY,8BACZ,AAAY,6BACZ,AAAM,AAAa,AAAa,8CAAC,AAAY,+BAC7C,AAAM,AAAa,AAAa,AAC3B,AAAa,8CADe,AAAY,oDAC1B,AAAY,8BAC/B;AACJ,YAAI,AAAM,AAAY,yCAAiB;AACrC,cAA0D,YAAf,WAAvC,AAAM,AAAY,AAAc,iEACjB;AAEiD,YADlE,AAAM,AACD,gDAAsB,AAAM,AAAY,AAAc;;;AAIE,QADjE,AAAM,AACD,gDAAsB,kBAA4B;AACvD,sBAAI,AAAM,AAAgB,sCACe,YAArC,AAAM,AAAgB,2CAAiC;AAEY,UADrE,AAAM,AAAgB,uCAClB,AAAkB,AAAG,wCAAY,AAAkB,AAAG;;;IAGhE;;AAGE,UAAI,AAAM,AAAY,yCAAgB,QAAQ,oBAAe;AAO3C,QANhB,AAAM,AAAY,wCAAgB,iCAC9B,AAAY,8BACZ,AAAY,6BACZ,AAAM,AAAa,AAAa,8CAAC,AAAY,+BAC7C,AAAM,AAAa,AAAa,AAC3B,AAAa,8CADe,AAAY,oDAC1B,AAAY,8BAC/B;AAE6D,QADjE,AAAM,AACD,gDAAsB,kBAA4B;AACvD,YAAI,AAAM,AAAY,yCAAiB;AACrC,cAA0D,YAAf,WAAvC,AAAM,AAAY,AAAc,iEACjB;AAEiD,YADlE,AAAM,AACD,gDAAsB,AAAM,AAAY,AAAc;;;AAG/D,sBAAI,AAAM,AAAgB,sCACe,YAArC,AAAM,AAAgB,2CAAiC;AAGR,UAFjD,AAAM,AAAgB,uCAClB,AAAM,AAAY,AAAa,AAAG,uDAClC,AAAM,AAAY,AAAa,AAAG;;;IAG5C;eAE6B;;AACc,MAAzC,AAAM,AAAgB,0CAAc;AACpC,UAAI,AAAM,AAAY,yCAAgB;AACpC,YAAI,AAAM,AAAY,yCAAiB,QACnC,AAAM,AAAY,AAAc,gDAAU,QACY,YAAf,WAAvC,AAAM,AAAY,AAAc,iEACb;AAE6C,UADlE,AAAM,AACD,gDAAsB,AAAM,AAAY,AAAc;;AAG7D,YAAI,AAAM,AAAY,yCAAgB,QAClC,AAAM,AAAY,yCAAiB;AAEgC,UADrE,AAAM,AAAa,gDACf,AAAM,AAAY,AAAc,8CAAuB;;AAE7D,sBAAI,AAAM,AAAgB,sCACe,YAArC,AAAM,AAAgB,2CAAiC,oCACvD,AAAM,AAAY,yCAAiB,QACnC,AAAM,AAAY,AAAc,gDAAU;AAC5C,cAAI,AAAM,AAAgB,sCAAW;AACI,2DACnC,AAAM,AAAY,AAAc;AACV,iDACtB,AAAM,AAAY,AAAc;AACvB,2BAAW,sBAAe,AAAM,KAAD,WACA,CAArB,aAAlB,AAAM,KAAD,6BAAe,AAAM,KAAD,iBAAgB,GAAG,AAAM,KAAD;AAEL,YADjD,AAAM,AAAgB,AAAiB,oDAC9B,qBAAS,AAAS,QAAD,KAAK,AAAS,QAAD,KAAK,KAAG;AAQI,YAPnD,AAAM,AAAgB,AAAiB,wDACnC,AAAM,AAAgB,mCAClB,AACK,AAAU,WADJ,mBACK,AAAM,AAAY,AAAc,mDAChD,KAAK,EACL,WAAW,EACX,AAAM,AAAY,AAAc,mDAChC,AAAM,AAAY,AAAc;AACU,YAAlD,AAAM,AAAgB,AAAiB,oDAAO;AACkB,wBAAhE,AAAM,AAAgB,2DAAA,OAAkB;0BAAlB,OAAyB;;AAGlC,2BAAW,AAAU,6BAAc,AAAM,KAAD;AAES,YAD9D,AAAM,AACD,qCAAU,AAAS,AAAG,QAAJ,kBAAgB,AAAS,AAAG,QAAJ;;;;AAIhB,MAArC,AAAM,AAAY,wCAAe;IACnC;eAE2B;;AACa,MAAtC,AAAM,AAAY,wCAAgB;AACsC,MAAxE,AAAM,AAAY,wCAAe,AAAU,6BAAc,AAAM,KAAD;AACM,MAApE,mBAAc,uBAAgB,YAAO,AAAM,AAAY;AACvD,UAAI,AAAM,4BAAiB,QAAQ,oBAAe;AACF,QAA9C,iCAA2B,YAAO;;AAEpC,UAAI,AAAM,AAAY,yCAAgB,QAAQ,oBAAe;AAO3C,QANhB,AAAM,AAAY,wCAAgB,iCAC9B,AAAY,8BACZ,AAAY,6BACZ,AAAM,AAAa,AAAa,8CAAC,AAAY,+BAC7C,AAAM,AAAa,AAAa,AAC3B,AAAa,8CADe,AAAY,oDAC1B,AAAY,8BAC/B;;AAEN,UAAI,AAAM,AAAY,yCAAgB;AACpC,sBAAI,AAAM,AAAgB,sCACtB,AAAM,AAAY,yCAAiB,QACnC,AAAM,AAAY,AAAc,gDAAU;AACJ,UAAxC,AAAM,AAAgB,0CAAc;AACvB,yBAAW,AAAU,6BAAc,AAAM,KAAD;AAEO,UAD5D,AAAM,AACD,mCAAQ,AAAS,AAAG,QAAJ,kBAAgB,AAAS,AAAG,QAAJ;;AAEY,uDAAzD,OAAO,mCAAP,OAAwB;yBAAxB,OAAkC,wBAAmB;AACO,4DAA5D,OAAO,sCAAP,OAAwB;yBAAxB,OAAkC,2BAAsB;AAChB,4DAAxC,OAAO,sCAAP,OAAwB;yBAAxB,OAAkC;;;AAGD,MAArC,AAAM,AAAY,wCAAe;IACnC;uBAEuC,aAA0B;;AACpC,MAA3B,qBAAe,WAAW;AAC6B,WAAvD,AAAM;mBAAA,OAAc;AACpB,YAAO,gEAEI,qBAAe,WAAW,EAAE,OAAO;IAChD;qBAEmC;AACnB,kBAAQ,AAAY,WAAD;AACnB,mBAAS,AAAY,WAAD;AACuC,MAAzE,AAAM,AAAY,6CAA0B,qBAAS,KAAG,wBAAG,KAAK,sBAAE,MAAM;AACvD,mBAAS,AAAM;AAKQ,MAJxC,AAAM,AAAY,wCAAqB,qBACnC,AAAO,MAAD,OACN,AAAO,MAAD,yBACe,WAAf,WAAN,KAAK,QAAG,AAAO,MAAD,gBAAS,AAAO,MAAD,6BACT,WAAb,WAAP,MAAM,QAAG,AAAO,MAAD,cAAO,AAAO,MAAD;IAClC;qBAEqC,aAA0B;AAClC,MAA3B,yBAAmB,OAAO;AACV,MAAhB;AACkB,MAAlB;AACgC,MAAhC,0BAAoB,WAAW;AACL,MAA1B,AAAM,4BAAgB;AACgB,uBAAtC,qBAAY,AAAQ,OAAD;AACnB,YAAO,qCAAiB,+BAAgB,AAAM,AAAY;IAC5D;;AAGS;AAEa;AACb;AAC6C,MAApD,AAAM,AAAY,oCAAgC;AACG,MAArD,AAAM,AAAY,mDAAiC;AACL,MAA9C,AAAM,AAAY,4CAA0B;AAC5C,eAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAM,AAAa,AAAc,kDAAQ,IAAA,AAAC,CAAA;AACrB,qBACnC,AAAM,AAAa,AAAa,8CAAC,CAAC;AACV,wBACxB,AAAO,AAAkB,MAAnB;AACV,sBAAI,AAAO,AAAkB,MAAnB,iCACN,AAAO,AAAkB,MAAnB,8BAA8B;AACtC,mBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,AAAc,MAAf,2BAAuB,IAAA,AAAC,CAAA;AACjB,YAA/B,QAAQ,AAAO,AAAa,MAAd,uBAAe,CAAC;AACf;AACf,0BAAI,AAAM,KAAD;AAEgD,cADvD,cAAc,AAAO,AAChB,MADe,2BACP,AAAO,AAAU,MAAX,mBAAY,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;AACtD,kBAA2C,YAAvC,AAAO,AAAkB,MAAnB,kCACiB;AAEqC,gBAD9D,gBAAgB,sBAAe,AAAM,KAAD,WACQ,CAArB,aAAlB,AAAM,KAAD,6BAAe,AAAM,KAAD,iBAAgB,GAAG,AAAM,KAAD;AACI,gBAA1D,gBAAgB,kBAAO,AAAc,aAAD,KAAK,AAAc,aAAD;AACpB,gBAAlC,aAA4B;;AAElB,sCACN,uBAAgB,AAAU,SAAD,SAAS,AAAM,KAAD;AAEW,gBADtD,gBAAgB,sBAAe,AAAM,KAAD,WACd,aAAlB,AAAM,KAAD,6BAAe,eAAe,GAAE,AAAM,KAAD;AAKzB,gBAJrB,gBAAgB,kBACY,YAAxB,AAAM,KAAD,oBAA+B,yBACb,AAAa,aAA9B,AAAc,aAAD,YAAmB,IACf,AAAa,aAA9B,AAAc,aAAD,YAAmB,GACtC,AAAc,aAAD;AAGQ,gBAFzB,aAAqC,YAAxB,AAAM,KAAD,oBAA+B,wBAC5B,4BACA;;AAaM,cAX7B,AAAM,AAAY,AAAU,wCAAI,wCACvB,wDACS,yBACF,CAAC,eACA,CAAC,eACD,gBACH,AAAM,AAAY,0DACT,aACX,WAAW,uBACE,UAAU,qBACG,wCACxB,aAAa;;;;;AAKnC,UAAI,AAAM,0BAAe,kBAAQ,AAAM,AAAY;AACjD,iBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAM,AAAY,kCAAQ,IAAA,AAAC,CAAA;AACf,2BAAa,AAAM,AAAW,8BAAC,CAAC;AAC9D,cAAI,AAAW,UAAD,WAAW;AACV,yBACT,AACK,uBADW,AAAW,UAAD,SAAiC,aAAxB,AAAM,AAAa,iCAAO;AAEpD,wBAAQ,sBACjB,AAAW,UAAD,QAAQ,MAAM,EAAE,AAAM,AAAY;AACnC,mCACT,uBAAgB,AAAW,UAAD,SAAiC,aAAxB,AAAM,AAAa,iCAAO;AACpD,kCACT,uBAAgB,AAAW,UAAD,QAAgC,aAAxB,AAAM,AAAa,iCAAO;AACvC,+BAAe,wCAC/B,wDACS,2BACD,2BACQ,AAAW,UAAD,yCACZ,AAAW,UAAD,8BACnB,AAAM,AAAY,oDACH,AAAI,aAArB,gBAAgB,IAAG,KAAqB,aAAhB,eAAe,IAAG,IAC5C,qCACU,gBAAgB,SACjB,eAAe,SACf,AAAW,UAAD,mEACnB,AAAW,UAAD,qBACJ,CAAC,qBACM,eACT,KAAK;AAC0B,YAA7C,AAAM,AAAY,AAAU,wCAAI,YAAY;;;;IAIpD;;AAGE,oBAAI,AAAM,AAAY,AAAU;AAC9B,iBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAM,AAAY,AAAU,6CAAQ,IAAA,AAAC,CAAA;AAC9B,kCACrB,AAAM,AAAY,AAAS,yCAAC,CAAC;AAGQ,UAFzC,AAAkB,iBAAD,qBAAqB,WAAC,AAAM,AAAY,yCACnD,IACA,AAAkB,iBAAD;;AAKR,QAHjB,AAAM,AAAY,0CAAiB,0CACpB,AAAM,AAAY,2CACrB,AAAM,AAAY,iDACnB;AAC0D,QAArE,AAAM,AAAY,AAAc,6CAAI,AAAM,AAAY;;IAE1D;0BAEwC;AACtC,oBAAI,AAAM,AAAgB;AACxB,YAAI,AAAM,AAAgB,sCAAW;AAE6B,UADhE,AAAM,AAAgB,+CAAmB,uCAC/B,iBAAiB,AAAM,AAAY;AAEG,UADhD,AAAM,AAAY,AACb,6CAAI,AAAM,AAAgB;;AAGc,UAD7C,AAAM,AAAgB,0CAClB,mDAAmC;AACgC,UAAvE,AAAM,AAAY,AAAc,6CAAI,AAAM,AAAgB;;;IAGhE;yBAEqC;;AACrB;AACI;AACwB,MAA1C,AAAM,AAAY,2CAAmB;AACS,WAA9C,AAAM;MAAY,AAAc,qBAAA,OAAd,oBAA0B,2BAAZ;AAChC,eAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAM,AAAa,AAAc,kDAAQ,IAAA,AAAC,CAAA;AAChB,QAA5C,cAAS,AAAM,AAAa,AAAa,8CAAC,CAAC;AAC3C,YAAI,AAAO,iCAAqB;AAC9B,wBAAI,AAAO,AAA2B;AACpC,qBAAS,QAAQ,GACb,AAAM,KAAD,gBAAG,AAAO,AAA2B,kDAC1C,QAAA,AAAK,KAAA;AAE2C,cADlD,AAAM,AAAY,AACb,4CAAI,AAAO,AAA0B,8CAAC,KAAK;;;;AAIZ,QAA1C,AAAM,AAAY,2CAAmB;AACrC,YAA6B,aAAzB,AAAO,iCAAoB,MAC1B,AAAM,AAAY,AAAqB,gDAAG,QACA,YAAvC,AAAM,AAAY,8CACH,AAAY,0BAAT,OAAO,8BAC5B,AAAM,AAAY,oDACf,AAAM,AAAY,uDAClB,AAAM,AAAY;AAEoC,UAD5D,AAAM,AAAY,AAAoB,uDAClC,qCAAuB,AAAO,AAAkB;AAgB3C,UAfT,kBACI,AAAoC,kCAAf,UAAU,qBAAa,4CACtC,AAAM,AAAY,uEAEzB,sBAAkB,QAAiB;AAC9B,gBAAW,YAAP,MAAM,EAAoB;AACa,cAAzC,AAAM,AAAY,2CAAmB;AACrC,kBAAI,AAAM,AAAY,2CAAmB;AACS,gBAAhD,AAAM,AAAY,AAAgB,AAAM;;AAE1C,kBAAI,AAAM,AAAY,2CAAkB,QACpC,AAAM,AAAY,AAAe,iDAAS;AACW,gBAAvD,AAAM,AAAY,AAAe,AAAM;;;;AAQjD,UAJF,AAAM,AAAY,gDACd,AAAoC,kCAAf,UAAU,cAAa,4CACtC,AAAM,AAAY;AAG4B,UAAxD,AAAM,AAAY,AAAoB,2DAAc;;AAEX,UAAzC,AAAM,AAAY,2CAAmB;;AAEvC,YAAI,AAAO,AAAY,8BAAG;AAO8B,UANtD,gBAAgB,wCACL,mBACA,CAAC,aACG,AAAO,iDACG,AAAM,AAAY,8DACtB,eAAe,YACtB,AAAM,AAAY;cAC3B,KAAI,AAAO,AAAY,8BAAG;AAOuB,UANtD,gBAAgB,6CACL,mBACA,CAAC,aACG,AAAO,iDACG,AAAM,AAAY,8DACtB,eAAe,YACtB,AAAM,AAAY;cAC3B,KAAI,AAAO,AAAY,8BAAG;AAOuB,UANtD,gBAAgB,yCACL,mBACA,CAAC,aACG,AAAO,iDACG,AAAM,AAAY,8DACtB,eAAe,YACtB,AAAM,AAAY;;AAGmC,QADrE,AAAM,AAAY,AACb,6CAAI,sCAAuB,oCAAqB,aAAa;AAEC,QADnE,AAAM,AAAY,0CAAkB,0DACjB,kBAAa,AAAM,AAAY;AACoB,QAAtE,AAAM,AAAY,AAAc,6CAAI,AAAM,AAAY;;IAE1D;;;QA/boB;;IAEa;IA4CvB;IACF;IACO;IACR;IAjDa;AAApB;;EAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/oB2B,MAApD,qBAAkD;AAClD,eAAsC,SAAU,AAAM;AAC9B,QAAtB,qBAAe,MAAM;AACP,qBAAS,AAAO,MAAD;AACf,qBAAS,AAAO,MAAD;AACf,wBAAY,AAAO,MAAD;AAClB,sBAAU,AAAO,MAAD;AAChB,qBAAS,AAAO,MAAD;AACe,QAA5C,AAAO,MAAD,iBAAoC;AAC1C,YAAI,AAAO,MAAD,eAAe;AACvB,mBAAS,aAAa,GAClB,AAAW,UAAD,gBAAG,AAAO,AAAW,MAAZ,uBACnB,aAAA,AAAU,UAAA;AACJ;AACR,gBAAU,WAAN,MAAM,GAAC,UAAU,MAAK;AAChB;AAAQ;AAChB,kBAAI,AAAO,MAAD,yBAAyB;AACF,gBAA/B,UAAmB,WAAT,SAAS,GAAC,UAAU;;AAGgC,cADhE,AAAO,AAAY,MAAb,qBACF,0BAA0B,WAAN,MAAM,GAAC,UAAU,oBAAS,WAAN,MAAM,GAAC,UAAU;AAC7D,kBAAI,AAAO,MAAD,sBAAsB;AACF,gBAA5B,SAAgB,WAAP,OAAO,GAAC,UAAU;AACsC,gBAAjE,AAAO,AAAW,AAAgC,MAA5C,sBAAuC,aAA1B,AAAO,AAAY,MAAb,2BAAsB,YAAG,mBAAS,MAAM;;AAEnE,kBAAI,AAAO,MAAD,qBAAqB;AACH,gBAA1B,QAAc,WAAN,MAAM,GAAC,UAAU;AAEhB,gBADT,AAAO,AAAW,AAAgC,MAA5C,sBAAuC,aAA1B,AAAO,AAAY,MAAb,2BAAsB,gBAAG,gBAC9C,KAAK;;AAEX,+BAAI,AAAO,MAAD,eAA8B,6BAAQ,OAAO,IAAI,MACzD,AAAO,AAAW,AAAgC,AACvC,MADL,sBAAuC,aAA1B,AAAO,AAAY,MAAb,2BAAsB,eAC3C,OAAO;;;;AAInB,yBAAI,AAAO,MAAD,eAA8B,6BACpC,AAAO,MAAD,yBAAyB;AACV,UAAvB,sBAAgB,MAAM;;AAEC,QAAzB,AAAc,yBAAI,MAAM;AACxB;;IAEJ;oCAEoE;AAClE,eAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,AAAY,MAAb,0BAAqB,IAAA,AAAC,CAAA;AAC9C,YAAI,AAAO,AAAW,AAAI,AAAE,MAAlB,sBAAa,CAAC,OAAO,MAC7B,AAAO,AAAkD,MAAnD,0BAA0B,CAAC,EAAE,AAAO,AAAW,MAAZ,sBAAa,CAAC;;IAE7D;;AAGE,eAAsC,SAAU;AACxB,QAAtB,qBAAgB,MAAM;AACsB,QAA5C,oCAA8B;AACZ,QAAlB;;IAEJ;sBAGsD;AAyBlD,MAxBF,AAAO,AAAY,MAAb,sBAEF,SAAqB,YAAgC;AACvD,YAAwB,YAApB,AAAO,MAAD,eAA8B;AACtC,iCAAQ,AAAW,AAAU,UAAX,cAAc,OAC1B,CAAC,IACA,AAAY,AAAU,WAAX,cAAc,OACtB,IACsB,OAArB,AAAW,UAAD,yBAGJ,WADA,WADH,AAAW,UAAD,8CAEyB,WAAtB,AAAY,WAAD,mCACH,WAArB,AAAW,UAAD,0BAAqB,AAAY,WAAD;cACnD,KAAwB,YAApB,AAAO,MAAD,eAA8B;AAC7C,iCAAQ,AAAW,AAAU,UAAX,cAAc,OAC1B,IACC,AAAY,AAAU,WAAX,cAAc,OACtB,CAAC,IACqB,OAArB,AAAW,UAAD,yBAGJ,WADA,WADH,AAAY,WAAD,8CAEuB,WAArB,AAAW,UAAD,mCACD,WAAtB,AAAY,WAAD,0BAAqB,AAAW,UAAD;;;IAG9D;;;AAGY,uBAAa,AAAc;AACR,iBAAO,AAAc;AAC7C;AACS,wBAAc,AAAc;AACtB;AACN,MAAd,kBAAa;AACwC,MAArD,AAAc,oCAAqC;AACnD,eAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAc,AAAY,4CAAQ,IAAA,AAAC,CAAA;AACjB,QAApC,QAAQ,AAAc,AAAW,wCAAC,CAAC;AAKnB,QAJhB,AAAM,KAAD,QAAC,mBAAO,AAAM,AAAK,KAAN,SAAS,OACrB,AAAY,WAAD,IAAI,QACI,KAAJ,WAAX,WAAW,GAAC,CAAC,UAAF,OAAe,cAAR,AAAM,KAAD,YACf,cAAR,AAAM,KAAD,MACT,AAAM,KAAD;AAC8C,QAAzD,UAAU,AAAM,AAAK,KAAN,UAAiB,cAAR,AAAM,KAAD,MAAgB,OAAO;AAEpD,sBAAI,AAAM,KAAD;AACP,cAAS,YAAL,IAAI,EAA2B,wCAC/B,UAAU,IAAI,QACd,AAAE,CAAD,iBAAI,UAAU;AACU,YAA3B,kBAAW,aAAX,mBAAc,AAAM,AAAE,KAAH;gBACd,KAAS,YAAL,IAAI,EAA2B,wCACtC,UAAU,IAAI,QACN,aAAR,AAAM,KAAD,oBAAM,UAAU;AACI,YAA3B,kBAAW,aAAX,mBAAc,AAAM,AAAE,KAAH;;AAEmB,YAAtC,AAAc,AAAc,wCAAI,KAAK;;;;AAK3C,UAAe,aAAX,mBAAa;AAEoC,QADnD,AAAc,AACT,wCAAI,0BAAoB,UAAU;AAE6B,QADpE,AAAc,AAAa,AAAyC,yCAAL,aAAnC,AAAc,AAAc,8CAAS,UACrD,YAAR,OAAO,EAAI,QAAO,AAAY,cAAa,cAAX,mBAAwB;;AAE9C,MAAhB;IACF;;;AAG2B,kBAAQ,AAAc;AAC7B,oBAAU,AAAM;AAC9B,cAAI;AACR,eAAyB,QAAS,AAAc;AAGO,QAFrD,AAAM,KAAD,QAAsB,UAAd,AAAM,KAAD,aAAY,AAAM,KAAD,UAAU,OACvC,AAAM,KAAD,UACY,KAAjB,AAAM,KAAD,mBAAC,OAAc,AAAO,OAAA,QAAC,AAAE,CAAD,UAAG,AAAQ,OAAD;AACrB,QAAxB,AAAM,KAAD,SAAS,AAAM,KAAD;AAGY,QAF/B,AAAM,KAAD,eAA6B,UAAd,AAAM,KAAD,aAAY,AAAM,KAAD,gBAAgB,OACpD,AAAM,KAAD,eACL,AAAc;AAGW,QAF/B,AAAM,KAAD,eAA6B,UAAd,AAAM,KAAD,aAAY,AAAM,KAAD,gBAAgB,OACpD,AAAM,KAAD,eACL,AAAc;AAE+C,QADnE,AAAM,KAAD,eACD,AAAM,AAAY,KAAb,iBAAgB,IAAW,6BAAc,AAAM,KAAD;AAEvD,YAAI,AAAM,AAAO,uCAAqB;AACF,8BAC9B,AAAM,AAAY;AACtB,wBAAI,AAAc,aAAD;AACf,qBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAc,aAAD,YAAS,IAAA,AAAC,CAAA;AACb,yBAAO,AAAa,aAAA,QAAC,CAAC;AAClD,kBAAI,AAAE,CAAD,KAAI,AAAK,IAAD;AACY,gBAAvB,AAAM,KAAD,aAAa;AAClB;;;;;AAKN,wBAAI,AAAM,AAAY,AAAmB;AACvC,qBAAS,IAAI,GACT,AAAE,CAAD,gBAAG,AAAM,AAAY,AAAmB,sDACzC,IAAA,AAAC,CAAA;AACwB,wCACvB,AAAM,AAAY,AAAkB,kDAAC,CAAC;AAC1C,kBAAI,AAAE,CAAD,KAAI,AAAoB,mBAAD;AACH,gBAAvB,AAAM,KAAD,aAAa;AAClB;;;;;AAKL,QAAH,IAAA,AAAC,CAAA;;IAEL;;AAGE,eAAsC,SAAU;AACxB,QAAtB,qBAAgB,MAAM;AACJ,QAAlB;AACiB,QAAjB;AACkB,QAAlB;AACkB,QAAlB;AAC4B,QAA5B;AAC0B,QAA1B;;IAEJ;;AAGE,oBAAI,AAAM,sCACN,AAAc,AAAkB,wCAAG,SAClC,AAAc,AAAY,qCAAG,SAC1B,AAAc,AAAY,qCAAG;AACxB,uBAAW,AAAM,AAAY;AACnC,0BAAc;AACZ,qBAAS,AAAc;AAC9B,eAAO,WAAW;AACL,UAAX,SAAO,aAAP,MAAM,IAAI;AACC,6BAAe,AASrB,mBARG,KACA,MAAM,EACN,AAAc,6BACd,AAAc,4BACd,AAAc,0BACd,AAAc,iCACd,YACA;AAER,cAAuB,aAAnB,AAAa,YAAD,uBAAS,AAAS,QAAD;AACZ,YAAnB,cAAc;AACoB,YAAlC,AAAc,4BAAQ,YAAY;AAClC;;AAEF,cAAwB,aAApB,AAAa,YAAD,wBAAU,AAAS,QAAD;AACb,YAAnB,cAAc;AACoB,YAAlC,AAAc,4BAAQ,YAAY;AAClC;;;AAYY,QAThB,AAAc,4BAAQ,AASjB,mBARG,KACA,AAAc,oCACd,AAAc,6BACd,AAAc,4BACd,AAAc,0BACd,AAAc,iCACd,YACA;AAER,iBAAyB,QAAS,AAAc;AACE,UAAhD,AAAM,KAAD,eAAe,AAAc;;;IAGxC;;AAGM,uBAAa;AACb;AACA,4BAAkB,AAAc;AAC1B,wBAAc,AAAc;AACtC,eAAyB,QAAS,AAAc;AAC9C,sBAAI,AAAM,KAAD;AAE0D,UADjE,AAAM,KAAD,eACA,AAAc,AAAY,qCAAG,aAAc,WAAW,GAAG;AAKjC,UAJ7B,AAAM,KAAD,UAAW,AAAM,AAAE,AAAM,AAGZ,KAHG,0BACZ,AAAc,AAAa,qCAAG,IACzB,AAAc,mCACd,kBACV,AAAc;AAC4B,UAA9C,gBAAgC,aAAhB,eAAe,iBAAG,AAAM,KAAD;AACL,UAAlC,AAAM,KAAD,cAAc,eAAe;AACJ,UAA9B,AAAM,KAAD,YAAY,aAAa;AACwB,UAAtD,AAAM,KAAD,YAA8C,CAAjB,aAAhB,eAAe,iBAAG,aAAa,KAAI;AAEC,UADtD,AAAM,KAAD,eAAe,4BAChB,AAAM,KAAD,SAAS,KAAK,EAAE,AAAc;AAIZ,UAH3B,AAAM,KAAD,oBAAU,mBAAa,UAAU,EAAE,uBAClC,yBACE,AAAM,KAAD,WAAW,oBAAe,AAAM,KAAD,gBACtC,AAAc;AACpB,cAAI,AAAc,wCAAqB;AACR,YAA7B,8BAAuB,KAAK;;AAEC,UAA/B,kBAAkB,aAAa;;AAErB,QAAZ,aAAA,AAAU,UAAA;;IAEd;mBAEsB,YAA6C;AAC5D,0BAAgB;AACrB,oBAAI,AAAO,MAAD;AACR,sBAAI,AAAM,AAAY;AACpB,cAAI,AAAW,UAAD,IAAI,AAAO,MAAD,2BAAiB,AAAO,MAAD;AACG,YAAhD,AAAM,AAAY,AAAe,6CAAI,UAAU;AAC3B,YAApB,gBAAgB;;cAEb,eAAI,AAAM,AAAY,uDACzB,AAAM,AAAY;AACiD,UAArE,gBAAgB,AAAM,AAAY,AAAe,kDAAS,UAAU;;;AAGxE,YAAO,cAAa;IACtB;;;AAGgC,MAA9B,AAAc,mCAAe;AAC7B,eAAyB,QAAS,AAAc;AAC9C,sBAAI,AAAM,KAAD;AACoC,eAA3C;UAAc,mBAAa,aAAb,oBAAgB,AAAM,AAAE,KAAH;;;IAGzC;;;AAOgC,MAJ9B,AAAc,6BAAkC,aAAzB,AAAc,iCAAa,IACnB,aAAzB,AAAc,iCAAa,CAAC,MACvB,AAAc,AAAW,AAAO,uCAAL,OAAO,MACV,aAAzB,AAAc,iCAAa,MAC/B,AAAc;AAKQ,MAJ5B,AAAc,2BAA8B,aAAvB,AAAc,+BAAW,IACjB,aAAvB,AAAc,+BAAW,CAAC,MACrB,AAAc,AAAS,AAAO,qCAAL,OAAO,MACV,aAAvB,AAAc,+BAAW,MAC7B,AAAc;AAGM,MAF1B,AAAc,6BAA8B,aAArB,AAAc,8BAAS,MACxC,AAAc,AAAO,oCAAE,OACvB,AAAc;AAGI,MAFxB,AAAc,2BAA0B,aAAnB,AAAc,4BAAO,MACpC,AAAc,AAAK,kCAAE,OACrB,AAAc;AACM,WAA1B;MAAc,aAAO,aAAP,cAAU;AACA,YAAxB;MAAc,YAAK,aAAL,aAAQ;AAGE,MAFxB,AAAc,2BAAO,AAAc,AAAO,8BAAG,AAAc,2BAChC,aAArB,AAAc,8BAAS,MACvB,AAAc;AAGmC,MAFvD,AAAc,kCAAmC,aAArB,AAAc,2CAAS,AAAc,4BAC9B,AAAM,CAAb,aAArB,AAAc,8BAAS,4BAAa,AAAc,4BACP,CAAtB,aAArB,AAAc,2CAAS,AAAc;IAC9C;;AAGa,0BAAgB,AAAM,AAAY;AACQ,MAArD,YAAO,mBAAI,AAAc,aAAD,QAAQ,AAAc,aAAD;AAEiB,MAD9D,AAAc,qCACV,AAAgD,uBAAhC,AAAc,2BAAa,aAAL,aAAO;AAEW,MAD5D,AAAc,0CAAsB,uBAChC,AAAc,gCAAa,AAAc;IAC/C;;AAGa,0BAAgB,AAAM,AAAY;AAClC,+BAAqB,AAAM,AAAY;AAGkB,MAFpE,AAAc,8BAAU,kBACpB,AAAoD,uBAApC,AAAM,oBAAS,AAAc,aAAD,sBAC5C,AAAqD,uBAArC,AAAM,oBAAS,AAAc,aAAD;AAKqB,MAJrE,AAAc,8BAAU,kBACK,aAAzB,AAAc,AAAQ,kCAC+B,AAAM,CAA7B,aAAzB,AAAmB,kBAAD,uBAAS,AAAc,aAAD,mBAAgB,GACpC,aAAzB,AAAc,AAAQ,kCACiC,AAAM,CAA9B,aAA1B,AAAmB,kBAAD,wBAAU,AAAc,aAAD,oBAAiB;AACX,MAAxD,AAAM,AAAY,yCAAiB,AAAc;IACnD;yBAE8B,UACO,QAAY;AACrC,0BACN,uBAAgB,AAAO,MAAD,gBAAgB,aAAa;AACvD,YAAO,uBAAe,QAAQ,EAAE,aAAa,EAAE,AAAO,MAAD;IACvD;4BAGY,OAA2B,OAAW;AAChD,UAAI,KAAK,IAAI;AACuD,QAAlE,SAAS,AAAM,KAAD,IAAI,OAAO,0CAAgB,KAAK,GAAO,aAAL,aAAO,KAAK,MAAM;;AAEpE,YAAO,OAAM;IACf;4BAEmC,aAA4B;;AACxD,mCAAyB;AACS,mBACnC,AAAM,AAAa,AAAa,8CAAC,AAAY,WAAD;AAChD,oBAAI,AAAO,AAAkB,MAAnB,8BAAkC,YAAL,IAAI,EAAI,AAAM;AACnD,sBAAI,AAAM,AAAY,AAAc;AAClC,mBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAM,AAAY,AAAc,iDAAQ,IAAA,AAAC,CAAA;AACjD,iCAAiB,AAAM,AAAY,AAAa,6CAAC,CAAC;AAC5D,2BAAK,AAAM;AAGuC,cAFhD,yBACI,AAAM,AAAY,AAAc,AAAO,AAAK,mDAAF,KACtC,AAAY,AAAW,WAAZ,eAAe,cAAc;AACL,cAA3C,AAAM,AAAY,AAAc,iDAAS,CAAC;AACK,mBAA/C,AAAM,AAAY;cAAsB,WAAK,aAAL,YAAK;kBACxC,KAAI,AAAY,AAAW,WAAZ,eAAe,cAAc;AACN,cAA3C,AAAM,AAAY,AAAc,iDAAS,CAAC;AACb,cAA7B,yBAAyB;AACsB,oBAA/C,AAAM,AAAY;cAAsB,YAAK,aAAL,aAAK;AAC7C;;;;AAIN,aAAK,sBAAsB;AACkC,UAA3D,AAAM,AAAY,AAAc,4CAAI,AAAY,WAAD;AACA,iBAA/C,AAAM,AAAY;UAAsB,aAAK,aAAL,cAAK;;;IAGnD;4BAEmC;;AAC5B,gCAAsB;AACY,mBACnC,AAAM,AAAa,AAAa,8CAAC,AAAY,WAAD;AACtB,kBACtB,AAAO,AAAa,MAAd,uBAAe,AAAY,WAAD;AACpC,oBAAI,AAAO,MAAD;AACR,sBAAI,AAAM,AAAY,AAAe;AACnC,cAAI,AAAM,AAAY,AAAe,AAAO,oDAAG,eAC3C,AAAM,AAAY,AAAe,kDAAS,AAAY,WAAD;AAC7B,YAA1B,sBAAsB;AACO,YAA7B,AAAM,KAAD,UAAU,AAAO,MAAD;AACX,wBACN,AAAM,AAAY,AAAe,iDAAQ,AAAY,WAAD;AACR,YAAhD,AAAM,AAAY,AAAe,kDAAS,KAAK;AACA,iBAA/C,AAAM,AAAY;YAAsB,WAAK,aAAL,YAAK;gBACxC,eAAI,AAAO,MAAD,gBAC2B,aAAxC,AAAM,AAAY,AAAe,mDAAS,eAC1C,AAAM,AAAY,AAAe,kDAAS,AAAY,WAAD;AACvD,qBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAM,AAAY,AAAe,kDAAQ,IAAA,AAAC,CAAA;AAClD,iCAAe,AAAM,AAAY,AAAc,8CAAC,CAAC;AACD,cAA1D,AAAO,AAAa,AAAe,MAA7B,uBAAe,YAAY,WAAW,AAAO,MAAD;AACN,cAA5C,AAAM,AAAY,AAAe,kDAAS,CAAC;AACxC,cAAH,IAAA,AAAC,CAAA;;AAEuB,YAA1B,sBAAsB;AACyB,kBAA/C,AAAM,AAAY;YAAsB,YAAK,aAAL,aAAK;gBACxC,KAAI,AAAM,AAAY,AAAe,AAAO,oDAAG;AACpD,qBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAM,AAAY,AAAe,kDAAQ,IAAA,AAAC,CAAA;AAClD,iCAAe,AAAM,AAAY,AAAc,8CAAC,CAAC;AACD,cAA1D,AAAO,AAAa,AAAe,MAA7B,uBAAe,YAAY,WAAW,AAAO,MAAD;AACN,cAA5C,AAAM,AAAY,AAAe,kDAAS,CAAC;AACI,qBAA/C,AAAM,AAAY;cAAsB,aAAK,aAAL,cAAK;;;;AAInD,aAAK,mBAAmB;AAE+B,UADrD,AAAM,KAAD,UAAU,yBACX,AAAM,KAAD,WAAW,oBAAe,AAAM,KAAD;AACoB,UAA5D,AAAM,AAAY,AAAe,6CAAI,AAAY,WAAD;AACD,iBAA/C,AAAM,AAAY;UAAsB,aAAK,aAAL,cAAK;;;IAGnD;qBAGqD;AACnD,UAAW,oBAAP,MAAM;AACkB,QAA1B,AAAO,MAAD,iBAAe;UAClB,KAAW,yBAAP,MAAM;AACkB,QAA/B,AAAO,MAAD,iBAAe;UAClB,KAAW,0BAAP,MAAM;AACmB,QAAhC,AAAO,MAAD,iBAAe;;IAEzB;;;IA1cgB;IAEiB;IAE7B;IAEA;IAEI;IAEA;IAE+B;;EAdtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MC4DH;;;;;;MA+BmB;;;;;;MA+BE;;;;;;MAgCE;;;;;;MA8BC;;;;;;MAgBb;;;;;;MAiBD;;;;;;MAkBX;;;;;;MAiBF;;;;;;MAkBE;;;;;;MAoBD;;;;;;MAoBC;;;;;;MAmBA;;;;;;MAqBQ;;;;;;MAqBG;;;;;;MAkBX;;;;;;MAgC0B;;;;;;MAqBpB;;;;;;MAoBd;;;;;;MAGE;;;;;;MAEF;;;;;;MAGA;;;;;;;;UA7cK;UACD;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;MAobJ;MAGE;MAEF;MAGA;MA7cK;MACD;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;AACa,MAApB,sBAAgB;IAClB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MCgEa;;;;;;MAwBW;;;;;;MA4BV;;;;;;MA8BmB;;;;;;MA8BE;;;;;;MA8BE;;;;;;MA+BC;;;;;;MA8BA;;;;;;MA+BC;;;;;;MAmB5B;;;;;;MAwBU;;;;;;MAwBF;;;;;;MAkBR;;;;;;MAeE;;;;;;MAcD;;;;;;MAgBa;;;;;;MAmBD;;;;;;MAkBd;;;;;;MAkBA;;;;;;MAoBG;;;;;;MAoBA;;;;;;MAkBF;;;;;;MAkBA;;;;;;MAmBD;;;;;;MAmBG;;;;;;MAwBQ;;;;;;MAmBR;;;;;;MAqBgB;;;;;;MAkBhB;;;;;;MAsBK;;;;;;MAkBL;;;;;;MAkBA;;;;;;MAEH;;;;;;MA8BL;;;;;;qBAGG,mBAC6B,QACjB,OACI;AACR;AACU,wBAAY,AAAO,MAAD;AAE1C,sBAAI,AAAU,SAAD;AACX,wBAAI,AAAM,AAAY,AAAc,KAA3B;AACP,gBAAI,AAAM,KAAD,uBAAuB;AAEqC,cADnE,AAAM,KAAD,oBACD,6BAAuB,MAAM,KAAe,iBAAiB;;AAEnE,qBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAM,AAAY,AAAc,KAA3B,uCAAmC,IAAA,AAAC,CAAA;AACjD,mCAAiB,AAAM,AAAY,AAAa,KAA1B,mCAA2B,CAAC;AAC5D,kBAAI,AAAkB,iBAAD,IAAI,cAAc;AAWP,gBAV9B,aAAa,6BACT,AAAe,wBAAG,OACZ,AAAe,qCACf,AAAU,SAAD,gBACf,AAAe,wBAAG,OACZ,AAAe,2CACf,AAAU,SAAD,sBACf,AAAe,wBAAG,OACZ,AAAe,2CACf,AAAU,SAAD,sBACf,AAAU,SAAD;AACb;oBACK,KAAI,AAAE,CAAD,KAA2C,aAAvC,AAAM,AAAY,AAAc,KAA3B,wCAAoC;AAWvB,gBAVhC,aAAa,6BACT,AAAe,wBAAG,OACZ,AAAe,uCACf,AAAU,SAAD,kBACf,AAAe,wBAAG,OACZ,AAAe,6CACf,AAAU,SAAD,wBACf,AAAe,wBAAG,OACZ,AAAe,6CACf,AAAU,SAAD,wBACf,AAAU,SAAD;;;;;AAKrB,cAAO,WAAU;MACnB;+BAGY,QAAY,aAAiB;AACvC,YAAI,MAAM,IAAI;AACoB,UAAhC,uBAAiB;AACa,UAA9B,AAAe,8BAAS,MAAM;AAEkB,UADhD,AAAe,2CAAA,gBACc,WAAlB,WAAP,MAAM;AAEsC,UADhD,AAAe,2CAAA,mBACc,WAAlB,WAAP,MAAM;AAC2D,UAArE,AAAe,qCAAA,gBAAyC,WAAlB,WAAP,MAAM;AAEa,UADlD,AAAe,6CAAA,gBACc,WAAlB,WAAP,MAAM;AAEwC,UADlD,AAAe,6CAAA,mBACc,WAAlB,WAAP,MAAM;AAC+D,UAAzE,AAAe,uCAAA,gBAA2C,WAAlB,WAAP,MAAM;AACC,UAAxC,AAAe,mCAAA,WAAc,WAAW;AACF,UAAtC,AAAe,kCAAA,WAAa,UAAU;;AAExC,cAAO;MACT;qBAGoB,OACiB,QACb,OAChB,iBACA,aACA,aACG,QACH,aACA,YACA,sBACA,sBACC,kBACe,UACO;;AAClB,8BAAkB,AAAS,QAAD,IAAI;AAC/B,kCAAgB,QAAQ,eAAR,OAAU;AAC1B,iCAAc,QAAQ,gBAAR,OAAU;AAC9B;AAAe;AAGnB,YAAI,eAAe;AACjB,yBAAK,AAAS,QAAD,yBAAc,AAAM,KAAD;AACpB,sBAAM,AAAM,AAAW,KAAZ,eAAe,AAAO,MAAD,WACpC,AAAO,MAAD,WACN,AAAY,AAET,YAFS,QACN,6BAAsB,YAAY,EAAE,qBAAU,UAAU;AAEG,YAAvE,kBAAsB,aAAJ,GAAG,IAA4B,CAApB,aAAJ,GAAG,iBAAG,AAAM,KAAD,6BAAe,oBAAoB;AACJ,YAAnE,gBAAoB,aAAJ,GAAG,IAA0B,CAAP,aAAf,AAAM,KAAD,0BAAY,GAAG,kBAAI,oBAAoB;AAC3B,YAAxC,SAAuB,aAAd,aAAa,iBAAG,eAAe;gBACnC,eAAI,AAAS,QAAD,0BAAe,AAAM,KAAD;AACrC,gBAAI,AAAS,AAAW,AAAQ,QAApB,0BAAuB,AAAO,MAAD,aACpC,AAAS,AAAS,AAAQ,QAAlB,wBAAqB,AAAO,MAAD,UAChC,AAAS,AAAS,AAAQ,QAAlB,wBAAqB,AAAI,mBAAE,AAAO,MAAD;AACV,cAArC,kBAAkB,AAAS,QAAD;AAE0C,cADpE,gBAAkC,aAAlB,AAAS,QAAD,aACsB,CAAvB,aAAlB,AAAS,QAAD,0BAAY,AAAS,QAAD,6BAAe,oBAAoB;kBAC/D,KAAI,AAAS,AAAW,QAAZ,eAAe,AAAS,QAAD;AACa,cAArD,kBAAkB,gBAAgB,AAAS,QAAD;;AAUd,cAR5B,kBAAsC,aAApB,AAAS,QAAD,eAOM,CANP,aAApB,AAAS,QAAD,4BACA,AAAS,AAAW,QAAZ,eAAe,AAAO,MAAD,WACxB,AAAO,MAAD,WACN,AACG,AAAa,AAEb,MAHG,uBACW,6BACX,AAAO,MAAD,iBAAgB,qBAAU,UAAU,8BAE1D,oBAAoB;AAUA,cAT5B,gBAAkC,aAAlB,AAAS,QAAD,aAQU,CAPX,aAAlB,AAAS,QAAD,0BACC,AAAS,AAAS,AAAQ,AAAe,QAAjC,wBAAqB,AAAO,MAAD,UAC7B,AAAS,AAAS,AAAQ,QAAlB,wBAAqB,AAAI,mBAAE,AAAO,MAAD,UAC3C,AAAS,QAAD,YACR,AACG,AAAa,AAEb,MAHG,uBACW,6BACX,AAAO,MAAD,iBAAgB,oBAAS,UAAU,gCAEzD,oBAAoB;;AAEU,YAAxC,SAAuB,aAAd,aAAa,iBAAG,eAAe;gBACnC,eAAI,AAAM,KAAD,yBAAc,AAAS,QAAD;AAK+B,YAJnE,kBAAoC,aAAjB,AAAM,KAAD,4BAAc,aAAa,IAC/B,aAAd,aAAa,IACyB,CAAjB,aAAjB,AAAM,KAAD,4BAAc,aAAa,kBAAI,oBAAoB,IAC9C,aAAd,aAAa,IACyB,CAApB,aAAd,aAAa,iBAAG,AAAM,KAAD,6BAAe,oBAAoB;AAKH,YAJ/D,gBAAgC,aAAf,AAAM,KAAD,0BAAY,WAAW,IAC3B,aAAZ,WAAW,IACuB,CAAf,aAAf,AAAM,KAAD,0BAAY,WAAW,kBAAI,oBAAoB,IAC5C,aAAZ,WAAW,IACuB,CAAlB,aAAZ,WAAW,iBAAG,AAAM,KAAD,2BAAa,oBAAoB;AACtB,YAAxC,SAAuB,aAAd,aAAa,iBAAG,eAAe;;cAErC,eAAI,AAAM,KAAD;AAC8B,UAA5C,SAA8B,aAArB,oBAAoB,iBAAG,AAAM,KAAD;AACG,UAAxC,gBAAgC,aAAhB,eAAe,iBAAG,MAAM;;AAIzB,QAFjB,wBAAc,AAAM,AAAY,KAAb,+BACQ,aAArB,oBAAoB,iBAAG,WAAW,IAClC,WAAW;AAcG,QAbpB,gCACI,UAAU,cACV,WAAW,GACX,KAAK,EACL,MAAM,EACN,KAAK,EACL,QAAQ,EACR,MAAM,EACN,MAAM,EACN,WAAW,EACX,WAAW,EACX,eAAe,EACf,aAAa,EACb,eAAe;AACnB,cAAO,cAAa;MACtB;uBAIQ,YACA,aACY,OACiB,QACb,OACA,UACb,QACH,QACA,aACA,aACA,iBACA,eACC;;AACF;AACa,0BAAc,AAAO,MAAD;AAClC;AAAkB;AACtB,uBAAK,eAAe,eACf,eAAe,gBACV,AAAS,QAAD,yBAAc,AAAM,KAAD,yBACxB,AAAS,QAAD,0BAAe,AAAM,KAAD,0BAC3B,AAAS,QAAD,yBAAc,AAAM,KAAD;AAC+B,UAAtE,cAAc,AAAY,WAAD,IAAI,OAAO,AAAS,QAAD,eAAe,WAAW;AACA,UAAtE,cAAc,AAAY,WAAD,IAAI,OAAO,AAAS,QAAD,eAAe,WAAW;AACtE,2BAAI,WAAW,EAAgB;AACnB,iCACN,2BAAoB,WAAW,EAAE,WAAW,EAAE;AAI7B,YAHrB,mBAAgC,AAA0B,YAAtC,WAAW,EAAgB,kCAC3B,YAAZ,WAAW,EAAgB,gCACZ,aAAhB,eAAe,iBAAG,cAAc,IACjC,eAAe;AAIF,YAHnB,iBAA8B,AAAwB,YAApC,WAAW,EAAgB,gCACzB,YAAZ,WAAW,EAAgB,gCACd,aAAd,aAAa,iBAAG,cAAc,IAC/B,aAAa;;AAEF,UAAnB,aAAa;AAoB8B,UAnB3C,aAA0B,AACkB,YAD9B,WAAW,EAAgB,kCACrB,YAAZ,WAAW,EAAgB,gCACf,YAAZ,WAAW,EAAgB,gCAC7B,gCACE,WAAW,EACX,WAAW,GACE,KAAb,AAAM,KAAD,eAAC,OAAU,AAAS,QAAD,eACxB,gBAAgB,EAChB,cAAc,EACd,MAAM,EACN,WAAW,IACb,mBACE,WAAW,EACX,WAAW,EACX,AAAM,AAAO,KAAR,WAAW,OAAO,AAAS,QAAD,UAAU,AAAM,KAAD,SAC9C,eAAe,EACf,aAAa,EACb,MAAM,EACN,KAAK,EACL,AAAM,AAAY,KAAb;;AAGqB,QADpC,sBAAgB,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EACjE,UAAU,EAAE,MAAM,EAAE,WAAW;MACrC;wBAIQ,YACA,aACY,OACiB,QACb,OACb,QACF,YACD,QACA;AACN,sBAAI,AAAM,KAAD;AACO,4BAAc,uBACxB,yBAAkB,AAAM,KAAD,cACvB,yBAAkB,AAAM,KAAD,YACvB,AAAM,KAAD,aACL,AAAM,KAAD,WACL,WAAW,EACX,UAAU,EACV,AAAM,KAAD,SACL,WAAW,EACX,AAAM,KAAD;AAC4B,UAArC,AAAO,AAAc,MAAf,sBAAmB,WAAW;;AAElB,oBAAQ,mBAAa,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK;AAC7D,wBAAY,AAAc,KAAT,IAAI,QAAQ,AAAM,KAAD,SAAS,OACjD,AAAM,KAAD,QACO,aAAX,AAAM,KAAD,OAAgB,8BAClB,AAAO,AAAU,MAAX,0BAAyB,MAAM,EAAE,KAAK,EAAE,UAAU,EACtD,WAAW,EAAE,AAAM,KAAD,OAAO,AAAO,MAAD,YACjC,AAAM,KAAD;AAEH,0BAAc,AAAc,KAAT,IAAI,QAAQ,AAAM,KAAD,gBAAgB,OAC1D,AAAM,KAAD,eACL,AAAO,AAAU,MAAX,gCACJ,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,AAAM,KAAD;AAExC,0BAAc,AAAc,KAAT,IAAI,QAAQ,AAAM,KAAD,gBAAgB,OAC3D,AAAM,KAAD,eACL,AAAO,AAAU,MAAX,gCACJ,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,AAAM,KAAD;AAExC,sBAAU,AAAc,KAAT,IAAI,QAAQ,AAAM,KAAD,YAAY,OACnD,AAAM,KAAD,WACL,AAAO,AACJ,MADG,uBACQ,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,AAAO,MAAD;AAElE,YAAI,UAAU,IAAI,QAAe,aAAP,MAAM,IAAG;AAQlB,UAPf,iBACI,MAAM,EACN,6BACI,SAAS,YACT,AAAM,AAAY,KAAb,kCAAgC,WAAW,GAAG,GACnD,WAAW,EACX,OAAO,GACX,UAAU;;MAElB;+BAIQ,YAAgC;AACb,oBAAQ;AACvB,0BAAc,AAAY;AACV,oBAAQ,AAAW,0BAAC,UAAU;AACxD,YAAI,AAAM,AAAE,KAAH,MAAM;AACb,kBAAQ,AAAM,KAAD;;;AAEC,6BAAsB,AAAI,aAAf,UAAU,IAAG,KAAK,IACjC,AAAW,AAAiB,AAAE,0BAAP,aAAX,UAAU,IAAG,QAAQ,OAC7B,IACA,AAAW,AAAiB,0BAAL,aAAX,UAAU,IAAG,OAC7B;AACI,yBAAkB,AAAI,aAAf,UAAU,IAAG,KAAiB,aAAZ,WAAW,IAAG,IAC3C,AAAW,AAAiB,AAAE,0BAAP,aAAX,UAAU,IAAG,QAAQ,OAC7B,IACA,AAAW,AAAiB,0BAAL,aAAX,UAAU,IAAG,OAC7B;AAC+B,cAArC,AAAM,KAAD,KAAuB,AAAM,CAAd,aAAT,QAAQ,iBAAG,IAAI,aAAU;AACd,cAAtB,AAAM,KAAD,aAAa;AACE,cAApB,AAAM,KAAD,WAAW;AAChB;;;;AAEW,cAAX,AAAM,KAAD,KAAK;AACY,cAAtB,AAAM,KAAD,aAAa;AACE,cAApB,AAAM,KAAD,WAAW;AAChB;;;;AAEoB,cAApB,AAAM,KAAD,WAAW;AACO,cAAvB,AAAM,KAAD,aAAa;AAClB;;;;MAGR;;;;UAzlCU;UACD;UACA;UACA;UACA;UACA;UACA;UACD;UACA;UACG;UACA;UACF;UACA;UACA;UACU;UACR;UACF;UACA;UACE;UACA;UACY;UACb;UACC;UACW;UACb;UACA;UACA;UACE;UACW;UACL;UACE;UACH;UACF;MA4EK;MA2oBZ;MAEmB;MAEA;MAEtB;MAEA;MAEA;MAEA;MAEA;MAEA;MAEG;MAEO;MAGT;MAES;MAGT;MAnxBK;MACD;MACA;MACA;MACA;MACA;MACA;MAOA;MAGA;MACA;MASA;MAOQ,qBAAa,KAAX,UAAU,QAAV,OAAc;MACT,6BAAoB,MAAlB,iBAAiB,SAAjB,OAAqB;MAChC,mBAAW,OAAT,QAAQ,UAAR,OAAY;MAChB,iBAAS,OAAP,MAAM,UAAN,OAAU;MACP,sBAAc,OAAZ,WAAW,UAAX,OAAe;MACrB,kBAAU,OAAR,OAAO,UAAP,OAAW;MACV,qBAAa,OAAX,UAAU,UAAV,OAAc;MACb,wBAAgB,OAAd,aAAa,UAAb,OAAiB;MAClB,yBAAiB,OAAf,cAAc,UAAd,OAAiC;MAC9C,cAAM,OAAJ,GAAG,UAAH,OAAO;MACD,sBAAc,OAAZ,WAAW,UAAX,OAA2B;MACvB,6BAAoB,OAAlB,iBAAiB,UAAjB,OAAqB;MACtB,8BAAqB,QAAnB,kBAAkB,WAAlB,OAAsB;MACzB,6BAAoB,QAAlB,iBAAiB,WAAjB,OAAqB;MAC7B,uBAAc,QAAZ,WAAW,WAAX,OAAsB;MACxB,uBAAc,QAAZ,WAAW,WAAX,OAAe;MACrB,mBAAU,QAAR,OAAO,WAAP,OAAW;MACP,yBAAgB,QAAd,aAAa,WAAb,OAAiB;MACpB,wBAAe,QAAb,YAAY,WAAZ,OAA6B;MAC7B,0BAAiB,QAAf,cAAc,WAAd,OAAiC;MAChC,4BAAoB,QAAlB,iBAAiB,WAAjB,OAAqB;MACd,qCAA6B,QAA3B,0BAA0B,WAA1B,OAAmC;AAChE,qDAAY,IAAI;AACA,MAApB,sBAAgB;AACgB,MAAhC,kBAAY;IACd;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAilCF;;;;;;EAkCA;;;;;;;;;;;;kBAO2C,QACb,OAChB,YACA,aACE,OACC;;AACX,gBAAK;0BAAL,OAAO,eAAY,OAAO;IAAC;wBAIU,QACb,OAChB,YACA,aACE;AACV,wBAAW;;wBAI0B,QACb,OAChB,YACA,aACG;AACX,wBAAW;;oBAI0B,QACb,OAChB,YACA,aACG;AACX,oBAAO;;sBAI0B,QACb,OAChB,YACA,aACW,OACC;AACM,sBAAY,AAAO,MAAD;AAC9B,sBAAY,AAAU,AAAU,AAAM,SAAjB,oBAAoB,OAC/C,AAAU,AAAU,SAAX,mBACT,kCAA2B,KAAK,EAAE,MAAM,EAAE,KAAK;AAChC,sBAAY,sCACtB,SAAS,YACN,AAAU,AAAU,SAAX,iCACP,AAAU,AAAU,SAAX,kCACV,AAAU,AAAU,SAAX,kCACR,AAAU,AAAU,SAAX;AACzB,YAAO,UAAS;IAClB;sBAIyC,QACb,OAChB,YACA,aACE;AACV,kBAAK;;4BAIgC,QACb,OAChB,YACA,aACE;;AACV,sBAAW;mBAAX,OAAe,AAAM,KAAD;IAAK;4BAIY,QACb,OAChB,YACA,aACG;AACX,wBAAW;;eAI0B,QACb,OAChB,YACA,aACG;AACX,oBAAO;;;;;EA9FS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MClrCZ;;;;;;MAGJ;;;;;;MAGA;;;;;;MAGA;;;;;;MAGA;;;;;;MAGA;;;;;;MAGG;;;;;;MAGA;;;;;;MAGD;;;;;;MAGA;;;;;;MAGA;;;;;;MAGJ;;;;;;MAGE;;;;;;MAGA;;;;;;MAGA;;;;;;MAGC;;;;;;MAGA;;;;;;MAGA;;;;;;MAGA;;;;;;MAGA;;;;;;MAGI;;;;;;MAGc;;;;;;MAGlB;;;;;;MAGA;;;;;;MAGA;;;;;;MAGD;;;;;;MAGA;;;;;;MAGG;;;;;;MAGD;;;;;;;+BAvFU,GAAQ;MASpB;MAGA;MAGA;MAGA;MAGG;MAGA;MAGD;MAGA;MAGA;MAGJ;MAGE;MAGA;MAGA;MAGC;MAGA;MAGA,gBAAU;MAGV,mBAAY;MAGZ,mBAAa;MAGT;MAGc;MAGlB;MAGA;MAGA,gCAA0B;MAG3B;MAGA;MAGG;MAGD;MAvFU;MAAQ;;IAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCA4FjB,OACA,KACA,YACA,UACA,aACA,YACA,QACA,aACA;IARA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAAY;;;;;;;;;;;;;;;;uCAaF,MAAW,aAAkB,aAAmB;IAAhD;IAAW;IAAkB;IAAmB;;EAAS;;;;;;;;;;;;;;;IAoC/D;;;;;;IAkBA;;;;;;IAkBD;;;;;;IAkBQ;;;;;;;;;QA1EV;QAAe;QAAqB;QAAW;IAA/C;IAA+C;IAC7C,gBAAQ,KAAN,KAAK,QAAL,OAAS;IACZ,eAAO,MAAL,IAAI,SAAJ,OAAsB;;EAAI;;;;;;;;;;;2CA4EhB,aAAkB,YAAiB,QAAa,OAC7D;IADa;IAAkB;IAAiB;IAAa;IAC7D;;EAAQ;;;;;;;;;;;;;;;;;;;IAmDR;;;;;;IAuBG;;;;;;IAmBA;;;;;;IAqBA;;;;;;IAqBA;;;;;;IAyBQ;;;;;;IAyBA;;;;;;;;;QAtKZ;QACE;QACF;QACE;QACA;QACQ;QACA;IAJV;IAKG,gBAAQ,KAAN,KAAK,QAAL,OAAS;IACV,kBAAS,MAAP,MAAM,SAAN,OAAU;IACZ,iBAAS,OAAP,MAAM,UAAN,OAAU;IACb,iBAAQ,OAAN,KAAK,UAAL,OAAS;IACC,4BAAoB,OAAlB,iBAAiB,UAAjB,OAAoC;IACpC,8BAAsB,OAApB,mBAAmB,UAAnB,OAAsC;;EAAM;;;;;;;;;;;;;;;ACxOtE,YAAO;IACT;;;QAXiC;QAAoB;;IAMrB;IANC;IAAoB;AAArD;;EAA2D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BT,MAAhD,gCAA2B,+BAAmB;AAEL,MADzC,iCAAsB,yDAA2B,QAC7C,yBAAY;AACC,MAAX;IACR;;AAIE,UAAI,4BAAuB;AACmC,QAA5D,AAAoB,kDAAe;AACN,QAA7B,AAAoB;AACM,QAA1B,2BAAsB;;AAET,MAAT;IACR;;;AAGkC,WAAhC;MAAyB,WAAK,aAAL,YAAK;IAChC;;AAKI,MAFF,cAAS;AACW,QAAlB,AAAO,mBAAO;;IAElB;UAG0B;AACL,MAAnB,AAAO,oBAAQ;AACiD,MAAhE,AAAoB;AACI,+BACpB,AAAoC,kCAAf,UAAU,cAAa,4CACtC;AAGV,oBAAI,AAAO,AAAc,AAAY;AACG,QAAtC,AAAoB,wCAAc;;AAEpC,YAAO,YAAC,AAAO,oBACT,yFACA,oCACS,oCACM,yDACU,AAAO,sCACX,kBAAkB,SACtB,gBACG,oDACW;IACvC;;;IA1D0B;IAGN;IAGD;;;EAqDrB;;;;;;;;;;;;;;;;UAoBoB,QAAa;AAC7B,eAAS,cAAc,GACnB,AAAY,WAAD,gBAAG,AAAc,AAAO,qCACnC,cAAA,AAAW,WAAA;AAC0B,qBACnC,AAAc,AAAM,iCAAC,WAAW;AACpC,YAAI,AAAO,MAAD,sBAAsB,kBAC5B,AAAO,AAAkB,MAAnB;AAC+D,UAAvE,wBAAiB,MAAM,EAAE,MAAM,EAAE,oBAAe,WAAW,EAAE;;;IAGnE;;8CAG6C;AAAgB;IAAI;;;QA9BvD;QACD;QACA;QACA;QACc;IAJb;IACD;IACA;IACA;AAEH,wEAAe,QAAQ;;EAAC;;;;;;;;;;;;;;;;;;;;UC9EjB;UACc;UACE;UACE;UACC;UACA;UACA;UACxB;UACA;UACG;UACA;UACF;UACA;UACD;UACG;UACQ;UACR;UACgB;UACJ;UACb;UACC;UACW;UACb;UACA;UACE;UACA;UACA;UACW;UACL;UACE;UACH;UACF;AACR,2DACc,UAAU,gBACR,QAAK,SAAU,AAAY,YAAA,CAAC,AAAU,UAAA,QAAC,KAAK,GAAG,KAAK,4BACpD,QAAK,SAAU,AAAY,YAAA,CAAC,AAAU,UAAA,QAAC,KAAK,GAAG,KAAK,kCAChD,QAAK,SAAU,AAAiB,gBAAD,IAAI,OAC/C,AAAgB,gBAAA,CAAC,AAAU,UAAA,QAAC,KAAK,GAAG,KAAK,IACzC,wCACa,AAAkB,iBAAD,IAAI,OAClC,OACA,QAAK,SAAU,AAAiB,iBAAA,CAAC,AAAU,UAAA,QAAC,KAAK,GAAG,KAAK,oCAC9C,QAAK,SAAU,AAAgB,eAAD,IAAI,OAC7C,AAAe,eAAA,CAAC,AAAU,UAAA,QAAC,KAAK,GAAG,KAAK,IACxC,4CACgB,AAAqB,oBAAD,IAAI,OACxC,QAAK,SAAU,AAAoB,oBAAA,CAAC,AAAU,UAAA,QAAC,KAAK,GAAG,KAAK,oBAC5D,yBACa,iBAAiB,cACxB,UAAU,YACZ,QAAQ,UACV,MAAM,eACD,WAAW,WACf,OAAO,WACP,OAAO,cACJ,UAAU,gBACR,YAAY,iBACX,aAAa,kBACZ,cAAc,aACnB,SAAS,WACX,OAAO,sBACI,kBAAkB,eACzB,WAAW,eACX,WAAW,qBACL,iBAAiB,iBACrB,aAAa,QACtB,IAAI,qBACS,iBAAiB,kBACpB,cAAc,gBAChB,YAAY,qBACP,iBAAiB,eACvB,WAAW,8BACI,0BAA0B;;IACvD;;;;;;;;;UAyBW,QAAa;;AACzB;AAC4C,oBAAhD,6BAAS,AAAM,AAAa,AAAa,8CAAC;AACX,MAA/B,kBAAkB,AAAO;AACe,MAAxC,mBAAc,AAAO;AACS,MAA9B,cAAS,AAAO;AACI;AACc,MAAlC,AAAO,6BAAyB;AACZ;AACmB,mDAES,UAD3C,AAAM,AAAY,wDACV,AAAM,AAAY,8CACnB,AAAM,AAAY,AAAW,AAAY,qDAAG,aAC9C,AAAM,AAAY,qCAClB;AACV,eAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,AAAc,sCAAQ,IAAA,AAAC,CAAA;AACjB,QAA/B,QAAQ,AAAO,AAAa,kCAAC,CAAC;AAQf,QAPf,WAAY,AAC4B,SADnB,IAAI,QACjB,AAAU,SAAD,mBAAkB,QACK,AAAI,aAAnC,AAAU,AAAc,SAAf,4BAAwB,KAAK,CAAC,GAC1C,AAAU,AAAa,SAAd,uBAAe,CAAC,IACY,UAAnC,AAAM,AAAY,8CACd,AAAM,AAAY,AAAW,AAAY,qDAAG,aAC9C,AAAM,AAAY,AAAU,2CAAC,CAAC,IAC9B;AAeuB,QAdjC,kBAAkB,AAAO,0BACrB,YACA,aACA,KAAK,EACL,eAAe,EACf,AAAM,KAAD,cACL,AAAM,KAAD,cACL,MAAM,EACN,YACA,CAAC,EACD,AAAgB,wBAAG,gDAAO,OAAiB,YAAQ,GACnD,GACA,8BAAuB,aAAQ,KAAK,EAAE,aACtC,QAAQ,EACR,AAAM,AAAY;;IAE1B;;0CAGyC;AAAgB;IAAS;;;QAhE3D;QACA;QACA;QACA;QACA;QACc;IAQY;IAE7B;IAEA;IAjBG;IACA;IACA;IACA;IACA;AAEF,oEAAe,QAAQ;;EAAC;;;;;;;;;;;;;;;;;;;;;;;;UCrFhB;UACc;UACE;UACE;UACC;UACA;UACA;UACxB;UACA;UACG;UACF;UACA;UACD;UACW;UACR;UACA;UACgB;UACJ;UACb;UACC;UACA;UACW;UACb;UACA;UACE;UACA;UACW;UACL;UACE;UACL;AACR,6DACuB,iBAAiB,cACxB,UAAU,gBACR,QAAK,SAAU,AAAY,YAAA,CAAC,AAAU,UAAA,QAAC,KAAK,GAAG,KAAK,4BACpD,QAAK,SAAU,AAAY,YAAA,CAAC,AAAU,UAAA,QAAC,KAAK,GAAG,KAAK,kCAChD,QAAK,SAAU,AAAiB,gBAAD,IAAI,OAC/C,AAAgB,gBAAA,CAAC,AAAU,UAAA,QAAC,KAAK,GAAG,KAAK,IACzC,wCACa,AAAkB,iBAAD,IAAI,OAClC,OACA,QAAK,SAAU,AAAiB,iBAAA,CAAC,AAAU,UAAA,QAAC,KAAK,GAAG,KAAK,oCAC9C,QAAK,SAAU,AAAgB,eAAD,IAAI,OAC7C,AAAe,eAAA,CAAC,AAAU,UAAA,QAAC,KAAK,GAAG,KAAK,IACxC,4CACgB,AAAqB,oBAAD,IAAI,OACxC,QAAK,SAAU,AAAoB,oBAAA,CAAC,AAAU,UAAA,QAAC,KAAK,GAAG,KAAK,oBAC5D,kBACM,UAAU,YACZ,QAAQ,UACV,MAAM,WACL,OAAO,cACJ,UAAU,gBACR,YAAY,iBACX,aAAa,kBACZ,cAAc,WACrB,OAAO,aACL,SAAS,sBACA,kBAAkB,8BACV,0BAA0B,eACzC,WAAW,eACX,WAAW,WACf,OAAO,qBACG,iBAAiB,iBACrB,aAAa,QACtB,IAAI,qBACS,iBAAiB,kBACpB,cAAc,gBAChB,YAAY,qBACP,iBAAiB;;IAAC;;;;;;;;;UAoB7B,QAAa;;AACzB;AAC4C,oBAAhD,wBAAS,AAAM,AAAa,AAAa,8CAAC;AACX,MAA/B,kBAAkB,AAAO;AACS,MAAlC,AAAO,6BAAyB;AAC3B,iCAAuB;AAC5B,oBAAI,AAAM,AAAY;AAC+C,QAAnE,uBAAuB,8BAAuB,aAAQ,+BAAO;;AAE3C;AACc,8CAEc,UAD3C,AAAM,AAAY,wDACV,AAAM,AAAY,8CACnB,AAAM,AAAY,AAAW,AAAY,qDAAG,QAC9C,AAAM,AAAY,qCAClB;AACV,eAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,AAAc,sCAAQ,IAAA,AAAC,CAAA;AACjB,QAA/B,gCAAQ,AAAO,AAAa,kCAAC,CAAC;AAQf,QAPf,WAAY,AAC4B,SADnB,IAAI,QACjB,AAAU,SAAD,mBAAkB,QACK,AAAI,aAAnC,AAAU,AAAc,SAAf,4BAAwB,KAAK,CAAC,GAC1C,AAAU,AAAa,SAAd,uBAAe,CAAC,IACY,UAAnC,AAAM,AAAY,8CACd,AAAM,AAAY,AAAW,AAAY,qDAAG,QAC9C,AAAM,AAAY,AAAU,2CAAC,CAAC,IAC9B;AACa,QAAvB,AAAM,4CAAc;AAea,QAdjC,kBAAkB,AAAO,0BACrB,YACA,aACA,+BACA,eAAe,EACf,AAAM,2CACN,AAAM,2CACN,MAAM,EACN,YACA,CAAC,EACD,AAAgB,wBAAG,gDAAO,OAAiB,YAAQ,GACnD,AAAgB,wBAAG,kDAAO,OAAiB,aAAQ,GACnD,oBAAoB,EACpB,QAAQ,EACR,AAAM,AAAY;;IAE1B;;qCAGoC;AAAgB;IAAS;;;QA7DtD;QACA;QACA;QACA;QACA;QACc;IAOO;IAZrB;IACA;IACA;IACA;IACA;AAEF,+DAAe,QAAQ;;EAAC;;;;;;;;;;;;;;;;;;MAOF,6BAAK;;;;;;;;;;;;;;;;MCRpB;;;;;;MAoBC;;;;;;MAiBD;;;;;;MAkBC;;;;;;MAiBA;;;;;;MAkBF;;;;;;;;UAvKE;UACc;UACE;UACE;UACC;UACA;UACA;UACvB;UACA;UACA;UACA;UACA;UACA;UACa;UACX;UACA;UACA;UACA;UACA;UACD;UACD;UACA;UACE;UACA;UACW;UACL;UACE;UACH;UACF;MArBL;MACA;MACA;MACA;MACA;MACA;AAiBH,4DACc,UAAU,qBACH,iBAAiB,gBACtB,QAAK,SAAU,AAAY,YAAA,CAAC,AAAU,UAAA,QAAC,KAAK,GAAG,KAAK,4BACpD,QAAK,SAAU,AAAY,YAAA,CAAC,AAAU,UAAA,QAAC,KAAK,GAAG,KAAK,kCAChD,QAAK,SAAU,AAAiB,gBAAD,IAAI,OAC/C,AAAgB,gBAAA,CAAC,AAAU,UAAA,QAAC,KAAK,GAAG,KAAK,IACzC,wCACa,QAAK,SAAU,AAAkB,iBAAD,IAAI,OACjD,AAAiB,iBAAA,CAAC,AAAU,UAAA,QAAC,KAAK,GAAG,KAAK,IAC1C,uCACW,QAAK,SAAU,AAAgB,eAAD,IAAI,OAC7C,AAAe,eAAA,CAAC,AAAU,UAAA,QAAC,KAAK,GAAG,KAAK,IACxC,4CACgB,AAAqB,oBAAD,IAAI,OACxC,QAAK,SAAU,AAAoB,oBAAA,CAAC,AAAU,UAAA,QAAC,KAAK,GAAG,KAAK,oBAC5D,cACE,MAAM,eACD,WAAW,OACnB,GAAG,eACK,WAAW,eACX,WAAW,WACf,OAAO,iBACD,aAAa,qBACT,iBAAiB,QAC9B,IAAI,qBACS,iBAAiB,gBACtB,YAAY,kBACV,cAAc,qBACX,iBAAiB,eACvB,WAAW,8BACI,0BAA0B;;IACvD;;;;;;;;;;;;;;;;;;;;;UAmJW,QAAa;;AACzB;AAAiB;AAAe;AAAQ,mBAAS;AACL,oBAAhD,8BAAS,AAAM,AAAa,AAAa,8CAAC;AACR,MAAlC,AAAO,6BAAyB;AACtB,gBAAM,AAAO;AAAc,6BAAmB,AAAO;AACvB,MAAxC,mBAAc,AAAO;AACS,MAA9B,cAAS,AAAO;AACI;AAAO;AACJ,MAAvB,cAAS,AAAO;AACgC,MAAhD,AAAO,MAAD,UAAU,AAAM,AAAY;AAGlC,eAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,AAAc,sCAAQ,IAAA,AAAC,CAAA;AACG,QAAnD,SAAA,AAAO,MAAD,cAAI,AAAO,AAAa,AAAI,kCAAH,CAAC,eAAc,IAAI;;AAI1C,yBAAe;AACf,qBAC+C,AAAM,CAApC,aAAtB,AAAO,4CAAiB,AAAO,6CAA6B,MAAM;AAC7D,gBAAM,uBACZ,AAAO,iBAA0D,CAA9B,aAAtB,AAAO,4CAAiB,AAAO;AACtC,2BACN,AAAgB,wBAAG,OAAO,AAAgB,6BAAQ;AAC3C,2BAAiB,AAAM,AAAY;AACN,oDAEQ,UAD3C,AAAM,AAAY,wDACV,AAAM,AAAY,8CACnB,AAAM,AAAY,AAAW,AAAY,qDAAG,cAC9C,AAAM,AAAY,qCAClB;AACV,eAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,AAAc,sCAAQ,IAAA,AAAC,CAAA;AACjB,QAA/B,QAAQ,AAAO,AAAa,kCAAC,CAAC;AAIqC,QAHnE,WACK,AAAkB,SAAT,IAAI,QAAwC,AAAI,aAAnC,AAAU,AAAc,SAAf,4BAAwB,KAAK,CAAC,GACxD,AAAU,AAAa,SAAd,uBAAe,CAAC,cACxB,cAAc,IAAG,AAAM,AAAY,AAAU,2CAAC,CAAC,IAAI;AAC5B,QAAlC,kBAAkB,gBAAgB;AACvB,8BAAkB,AAAS,QAAD,IAAI;AACpC,mBAAO;AACR;AAAU;AAAQ;AAAW;AAAgB;AACjD,aAAK,eAAe,cACd,AAAS,QAAD,yBAAc,AAAM,KAAD,yBACxB,AAAS,QAAD,0BAAe,AAAM,KAAD,0BAC3B,AAAS,QAAD,yBAAc,AAAM,KAAD;AACnC,wBAAI,AAAM,KAAD;AACK,YAAZ,OAAO;AACP,gBAAI,eAAe,eAAK,cAAc;AAGsB,cAF1D,QAAiB,aAAR,AAAM,KAAD,mBAAK,AAAS,QAAD,MACV,aAAX,AAAS,QAAD,MAA4B,CAAd,aAAR,AAAM,KAAD,mBAAK,AAAS,QAAD,oBAAM,cAAc,IACzC,aAAX,AAAS,QAAD,MAA4B,CAAX,aAAX,AAAS,QAAD,mBAAK,AAAM,KAAD,oBAAM,cAAc;;AAG5B,YADhC,SAA2C,AAAM,CAAvC,AAAM,KAAD,IAAI,OAAO,KAAK,GAAG,AAAM,KAAD,4BACd,KAApB,AAAO,gCAAA,OAAgB,GAAG;AACmB,YAAlD,SAAmC,aAAlB,aAAP,MAAM,IAAG,IAAI,IAAI,MAAM,KAAK,AAAI,MAAE;AACe,YAA3D,SAAS,eAAe,GAAG,MAAM,GAAU,aAAP,MAAM,iBAAG,cAAc;AACnB,YAAxC,gBAAgC,aAAhB,eAAe,iBAAG,MAAM;AACc,YAAtD,AAAM,KAAD,YAA8C,CAAjB,aAAhB,eAAe,iBAAG,aAAa,KAAI;AACnB,YAAlC,AAAM,KAAD,cAAc,eAAe;AACJ,YAA9B,AAAM,KAAD,YAAY,aAAa;AACT,YAArB,AAAM,KAAD,UAAU;AAEqD,YADpE,AAAM,KAAD,eACD,mBAA0B,aAAZ,qBAAgB,AAAE,CAAD,KAAI,YAAY,GAAI,IAAI,QAAQ;AAEL,YAD9D,AAAM,KAAD,eACD,cAAS,AAAS,QAAD,gBAAG,GAAG,IAAG,IAAgB,AAAW,aAAvB,oBAAc,QAAQ,gBAAG,GAAG;AAC9D,0BAAI,cAAc;AAEuB,cADvC,kDACI,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,cAAc;;gBAGrC,eAAI,cAAc,gBAAK,AAAM,KAAD,yBAAc,AAAS,QAAD;AAC1C,YAAX,OAAO;AACmB,YAA1B,SAAS,AAAS,QAAD;AACa,YAA9B,WAAW,AAAS,QAAD;AACqC,YAAxD,SAAS,AAAS,AAAE,AAAM,QAAT,2BAAgC,MAApB,AAAO,iCAAA,OAAgB,GAAG;AACL,YAAlD,SAAmC,aAAlB,aAAP,MAAM,IAAG,IAAI,IAAI,MAAM,KAAK,AAAI,MAAE;AAItB,YAHtB,iBAAsC,aAArB,AAAS,QAAD,gBAES,CADiB,AAAI,CAA5B,aAArB,AAAS,QAAD,6BAAe,AAAS,QAAD,iBAAgB,iBACzC,AAAS,QAAD,8BACZ,cAAc;AAIA,YAHtB,YAAiC,aAArB,AAAS,QAAD,gBAE2C,CADrC,aAArB,AAAS,QAAD,gBAC6C,CAAxB,aAArB,AAAS,QAAD,6BAAe,AAAS,QAAD,iBAAgB,kBACpD,cAAc;;AAeb,UAbX,qBACI,KAAK,EACL,MAAM,EACN,eAAe,EACf,aAAa,EACb,aACA,IAAI,EACJ,SAAS,EACT,cAAc,EACd,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,CAAC,EACD,MAAM;;;IAGhB;;AAIE,eAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,AAAc,sCAAQ,IAAA,AAAC,CAAA;AAChD,sBAAI,AAAO,AAAa,AAAI,kCAAH,CAAC;AACxB,gBAAO,EAAC;;;AAGZ,YAAO;IACT;kDAEqE,OAC7C,UAAc,GAAO;AAC3C,qBAAK,AAAS,QAAD,yBAAc,AAAM,KAAD;AAImC,QAHjE,cAAS,AAAE,CAAD,KAAI,IACR,AAAM,KAAD,eACc,aAAlB,AAAM,KAAD,gBACoC,CAArB,aAAlB,AAAM,KAAD,6BAAe,AAAM,KAAD,8BAAgB,cAAc;AAI/C,QAHjB,mBAAc,AAAE,CAAD,KAAI,IACM,aAAlB,AAAM,KAAD,gBACoC,CAArB,aAAlB,AAAM,KAAD,6BAAe,AAAM,KAAD,8BAAgB,cAAc,IAC1D;;AAM6D,QAJnE,cAA4B,aAAlB,AAAM,KAAD,6BAAe,AAAS,QAAD,gBACX,aAArB,AAAS,QAAD,gBACqC,CAAxB,aAAlB,AAAM,KAAD,6BAAe,AAAS,QAAD,8BAAgB,cAAc,IACxC,aAArB,AAAS,QAAD,gBACqC,CAArB,aAArB,AAAS,QAAD,6BAAe,AAAM,KAAD,8BAAgB,cAAc;AAKA,QAJnE,mBAAiC,aAAlB,AAAM,KAAD,6BAAe,AAAS,QAAD,gBAChB,aAArB,AAAS,QAAD,gBACqC,CAAxB,aAAlB,AAAM,KAAD,6BAAe,AAAS,QAAD,8BAAgB,cAAc,IACxC,aAArB,AAAS,QAAD,gBACqC,CAArB,aAArB,AAAS,QAAD,6BAAe,AAAM,KAAD,8BAAgB,cAAc;;IAEvE;qBAGwB,OAChB,QACA,iBACA,eAC8B,QAC7B,MACD,WACA,gBACgB,UAChB,UACA,QACA,GACG;AAgBK,MAfd,iBACI,MAAM,EACN,uCACI,AAAO,MAAD,mBAAkB,AAAM,KAAD,QAAQ,AAAO,MAAD,aAC3C,AAAO,MAAD,mBACN,AAAO,MAAD,mBACN,AAAO,MAAD,gBACV,6BACI,IAAI,IAAG,cAAc,GAAG,4BACxB,IAAI,IAAG,SAAS,GAAG,AAAO,0BAC1B,aACA,GACA,AAAI,MAAE,OACN,AAAI,MAAE,OACN,YACA;AACR,UAAW,aAAP,eAAS,KAAY,aAAP,MAAM,IAAG;AAE4C,QADrE,mBAAa,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,EACpE,SAAS,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;;IAExE;mBAGwB,OAChB,QACA,iBACA,eAC8B,QAC7B,MACD,WACA,gBACgB,UAChB,UACA,QACA,GACG;AACT,oBAAI,AAAM,KAAD;AACO,0BAAc,uBACxB,yBAAkB,AAAM,KAAD,cACvB,yBAAkB,AAAM,KAAD,YACvB,AAAM,KAAD,aACL,AAAM,KAAD,WACL,YACA,CAAC,EACD,AAAM,KAAD,SACL,kBACA,AAAM,KAAD;AAC4B,QAArC,AAAO,AAAc,MAAf,sBAAmB,WAAW;;AAG5B,2BAAiB,qCACvB,IAAI,IAAG,cAAc,GAAG,4BAAa,IAAI,IAAG,SAAS,GAAG,aAAQ;AAClD,wBAAc,AAAO,MAAD;AACtC,UAAgB,YAAZ,WAAW,EAAgB,iCACf,YAAZ,WAAW,EAAgB;AAGU,kBAFvC,IAAI,IACE,WAA+B,aAApB,AAAS,QAAD,4BAAc,cAAc,IAC/C,kBAAgB,aAAhB,eAAe,iBAAI,cAAc;;AAEzC,UAAgB,YAAZ,WAAW,EAAgB,iCACf,YAAZ,WAAW,EAAgB;AAGQ,kBAFrC,IAAI,IACE,SAA2B,aAAlB,AAAS,QAAD,0BAAY,cAAc,IAC3C,gBAAc,aAAd,aAAa,iBAAI,cAAc;;AAEnB,kBAAQ,AAAO,MAAD,eAAc,CAAC,EAAE,MAAM,EAAE,YAAO,KAAK;AAC3D,sBAAY,AAAc,KAAT,IAAI,QAAQ,AAAM,KAAD,SAAS,OACjD,AAAM,KAAD,QACO,aAAX,AAAM,KAAD,OAAgB,8BAClB,AAAO,AAAU,MAAX,0BACJ,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,YAAO,AAAM,KAAD,OAAO,AAAO,MAAD,YAC7C,AAAM,KAAD;AACH,wBAAc,AAAc,KAAT,IAAI,QAAQ,AAAM,KAAD,gBAAgB,OAC1D,AAAM,KAAD,eACL,AAAO,AACJ,MADG,gCACiB,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,YAAO,AAAM,KAAD;AAC9C,wBAAc,AAAc,KAAT,IAAI,QAAQ,AAAM,KAAD,gBAAgB,OAC3D,AAAM,KAAD,eACL,AAAO,AACJ,MADG,gCACiB,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,YAAO,AAAM,KAAD;AAC9C,oBAAU,AAAc,KAAT,IAAI,QAAQ,AAAM,KAAD,YAAY,OACnD,AAAM,KAAD,WACL,AAAO,AAAU,MAAX,uBAAsB,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,YAAO,AAAO,MAAD;AACjE,oBAAI,IAAI,IACQ,AAAY,AAAK,aAAxB,MAAM,iBAAG,QAAQ,IAAI,KAAO,SAAS,IAAI,cAAc,GAC1C,AAAmB,aAAjC,aAAa,iBAAG,eAAe,IAAI;AAeb,QAd5B,iBACI,MAAM,EACN,6BACI,SAAS,YACT,AAAM,AAAY,4CAAmB,WAAW,GAAG,GACnD,WAAW,EACX,OAAO,GACX,0CACI,IAAI,IAAG,cAAc,GAAG,4BACxB,IAAI,IAAG,SAAS,GAAG,aACnB,uBACA,IAAI,IAAG,QAAQ,GAAG,eAAe,YACjC,IAAI,IAAG,MAAM,GAAG,aAAa,EAC7B,MAAM,EACN,AAAO,MAAD;;IAElB;;wCAGiC;AAAgB;IAAS;;;QAvRnD;QACA;QACA;QACA;QACA;QACc;IAQa;IAE9B;IAEA;IAEG;IAnBA;IACA;IACA;IACA;IACA;AAEF,gEAAe,QAAQ;;EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IClM/B;;uDANK;;;;EAML;;;;;;;;;;;;;;;;;;IASA;;yCANK;;;;EAML;;;;;;;;;;;;;;;;;;IASA;;qDANK;;;;EAML;;;;;;;;;;;;;;;;;;IASA;;8CANK;;;;EAML;;;;;;;;;;;;;;;;;;;;IAeA;;4CAZK;;;;EAYL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IC4BmB;;;;;;IAYL;;;;;;IAYA;;;;;;IAYC;;;;;;IAeyB;;;;;;IAYrB;;;;;;IAYJ;;;;;;IAeK;;;;;;IAYI;;;;;;IAiBY;;;;;;IAKL;;;;;;IAGQ;;;;;;IAGR;;;;;;IAGR;;;;;;IA6CA;;;;;;IAoBV;;;;;;IAcS;;;;;;IAEW;;;;;;;AAYQ;IAAsB;;;;QAxRvD;QACC;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACM;QACqB;QACrB;QACJ;QACF;QAYW;QACD;QACA;QACV;;IAkPA;IACkB;IACA;IACV;IACM;IACR;IAEI;IArRV;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAKA;IAgBK,iBAAQ,KAAN,KAAK,QAAL,OAAS;IACV,kBAAS,MAAP,MAAM,SAAN,OAAU,MAAM;IAClB,kBAAS,OAAP,MAAM,UAAN;IACF,kBAAS,OAAP,MAAM,UAAN,OAAU;IACH,2BAAkB,OAAhB,eAAe,UAAf,OAAmB;IACtB,yBAAiB,OAAf,cAAc,UAAd,OAAiC;IACjC,4BAAmB,OAAjB,gBAAgB,UAAhB,OAAmC;IACjC,gCAAuB,OAArB,oBAAoB,UAApB,OAAwB;AAC/C,yDAAW,GAAG;AACa,IAA/B,qBAAe;AACc,IAA7B,qBAAe;AACoB,IAAnC,uBAAiB;EACnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmR4B,MAA1B;AACiB,MAAX;IACR;;;AAGsB,MAApB,qBAAgB;AACwB,MAAxC,sBAAsC;AACiB,MAAvD,4BAAuB,yDAA2B;AACL,MAA7C,6BAAwB,+BAAmB;AACE,MAA7C,0BAA2C;AACW,MAAtD,kCAAoD;AAC5B,MAAxB,sBAAsB;AACC,MAAvB,wBAAmB;AACK,MAAxB,yBAAmB;AACK,MAAxB,wBAAmB;AAC4B,MAA/C,2BAA6C;AACV,MAAnC,gCAAiC;AACV,MAAvB,qBAAqB;AAEgB,MADrC,iCAAsB,yDAA2B,QAC7C,yBAAY;IAClB;;AAIwC,MAAtC,oBAA2B,6BAAG;AACD,MAAvB;IACR;;mCAGoC;AACF,MAA1B,sBAAgB,SAAS;AACP,MAAxB,yBAAmB;AACI,MAAvB,wBAAmB;IACrB;;AAIE,UAAI,4BAAuB;AAC+B,QAAxD,AAAoB,kDAAe;AACN,QAA7B,AAAoB;AACM,QAA1B,2BAAsB;;AAET,MAAT;IACR;;;AAG+B,WAA7B;MAAsB,WAAK,aAAL,YAAK;IAC7B;UAG0B;AACkB,MAAxB,wCAAgB,OAAO;AAChB,MAAzB,AAAO,2BAAc;AACrB,YAAO,qCACI,iDACI,yCACS,6CACD,AAAO,oCACP,AAAO,AAAgB,+BAAG,OAC3B,iDACS,AAAO,kCAA6B,wBAC7C,cACS,8BACJ,AAAO,gCAAoB,AAAO,oCAC1C,gCACa,sBAChB,yBAAkB,cAClB;IAGlB;;AAGE,YAAO,gCAAgB,+CACV,SAAc,SAAwB;AAC1C;AACP,gBAAI,AAAO,AAAO,iCAAc;AACN,cAAxB,kBAAY,WAAW;AACiB,cAAxC,AAAO,AAAa;AACoB,cAAxC,AAAO,AAAa;AACD,oCAAkB,kCAA2B;AAChE,4BAAI,AAAgB,eAAD,4BAAe,AAAoB;AACQ,gBAA5D,UAAU,oCAAiB,+BAAgB,eAAe;AACO,gBAAhD,AAAS,uDAAqB,QAAC,KAAM;;AAGI,gBAD1D,AAAO,AACF,kDAAuB,AAAO,AAAa;AAES,gBADzD,UAAU,oBACN,aAAQ,wCAAwB,wEAAS,WAAW;;;AAGrC,cAArB,UAAU;;AAEZ,kBAAO,QAAO;;IAElB;;AAGE,oBAAI,AAAO,AAAY,AAAoB;AACzC,iBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,AAAY,AAAoB,wDAAQ,IAAA,AAAC,CAAA;AACtC,gCACxB,AAAO,AAAY,AAAmB,oDAAC,CAAC;AAC5B,+CAAY,AAAgB,AAAQ,eAAT;AACN,UAArC,AAAgB,eAAD,QAAQ,AAAU,SAAD;;AAEnB,QAAf,cAAS;;;IAEb;;AAI0C,MAAxC,AAAO,AAAY,yCAAgB;AACpB,MAAf,cAAS;;IACX;kBAEgC;AACI,MAAlC,AAAO,AAAa,kCAAQ;AACM,MAAlC,AAAO,AAAa,kCAAQ;AACiB,MAA7C,AAAO,AAAY,0CAAwB;AAC7B,kBAAQ,AAAY,WAAD;AACnB,mBAAS,AAAY,WAAD;AACjB,mBAAS,AAAO;AACjC,UAA2B,YAAvB,AAAO,AAAO,6BAA2B;AAEsB,QADjE,AAAO,AAAO,+CACH,WAAP,MAAM,QAAG,KAAK,MAAkB,+BAAwB;;AAEP,QAArD,AAAO,AAAO,oCAAiB,AAAO,AAAO;;AAGP,MADxC,AAAO,AAAa,sCAAY,mCAAyB,WAAd,WAAN,KAAK,QAAG,AAAO,MAAD,eAAQ,AAAO,MAAD,8BACzC,WAAb,WAAP,MAAM,QAAG,AAAO,MAAD,cAAO,AAAO,MAAD;IAClC;;;IAlK0B;IACN;IAEhB;IACe;IAEf;IACqB;IACZ;IAGI;IACZ;IACA;IACU;IACG;IACb;IACsB;IACC;IACvB;IACE;IACF;IACa;IACQ;IACrB;IACK;IACC;IACD;IACN;;;EAuIN;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAc4B;AACxB,YAAO,gDACM,SAAc,SAAwB,gBAC1C,oCACI,+BAAwB,sBACjC,uBAAiB,WAAW,EAAE,OAAO,GACrC,kCACW,qCACK,AAAY,WAAD,mBACZ,AAAY,WAAD,0GAEb,QAAc,SAAU,eAAS,KAAK,kCACvC,QAAc;AACqB,kBAAzC,AAAM,AAAgB,0CAAc;qGAE1C,qCACe,QAAgB,SAAU,eAAS,KAAK,2CACtC,QAAkB,SAAU,iBAAW,KAAK,qCACpD,iEACU,4CACA,4BACN,qCACG,AAAY,WAAD,mBACZ,AAAY,WAAD;IAiBhC;uBAEuC,aAA0B;AACpC,MAA3B,qBAAe,WAAW;AAC1B,YAAO,kDACI,+DAEI,qBAAe,WAAW,EAAE,OAAO;IACpD;qBAEmC;AACnB,kBAAQ,AAAY,WAAD;AACnB,mBAAS,AAAY,WAAD;AACuC,MAAzE,AAAM,AAAY,6CAA0B,qBAAS,KAAG,wBAAG,KAAK,sBAAE,MAAM;AACvD,mBAAS,AAAM;AAKQ,MAJxC,AAAM,AAAY,wCAAqB,qBACnC,AAAO,MAAD,OACN,AAAO,MAAD,yBACe,WAAf,WAAN,KAAK,QAAG,AAAO,MAAD,gBAAS,AAAO,MAAD,6BACT,WAAb,WAAP,MAAM,QAAG,AAAO,MAAD,cAAO,AAAO,MAAD;IAClC;qBAEqC,aAA0B;AACzC,MAApB;AACsB,MAAtB;AACqB,MAArB,sBAAe;AACQ,MAAvB,wBAAiB;AACe,MAAhC,0BAAoB,WAAW;AACO,uBAAtC,qBAAY,AAAQ,OAAD;AACQ,MAA3B,AAAM,6BAAiB;AACvB,YAAO,qCAAiB,+BAAgB,AAAM,AAAY;IAC5D;;AAGE,oBAAI,AAAM,AAAa,AAAc;AACG,qBAClC,AAAM,AAAa,AAAa,8CAAC;AACrC,iBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,AAAc,MAAf,2BAAuB,IAAA,AAAC,CAAA;AAChD,wBAAI,AAAO,AAAa,AAAI,MAAlB,uBAAe,CAAC;AACkB,YAA1C,AAAM,AAAa,+CAAqB,CAAC;;;;IAIjD;;;AAGgB;AACI;AAClB,eAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAM,AAAa,AAAc,kDAAQ,IAAA,AAAC,CAAA;AAChB,QAA5C,cAAS,AAAM,AAAa,AAAa,8CAAC,CAAC;AACW,QAAtD,AAAM,AAAa,sDAA4B;AAC/C,YAAI,AAAO,iCAAqB;AAC9B,wBAAI,AAAO,AAA2B;AACpC,qBAAS,QAAQ,GACb,AAAM,KAAD,gBAAG,AAAO,AAA2B,kDAC1C,QAAA,AAAK,KAAA;AAE2C,cADlD,AAAM,AAAY,AACb,4CAAI,AAAO,AAA0B,8CAAC,KAAK;;;;AAItD,YAA6B,aAAzB,AAAO,iCAAoB,gBAC1B,AAAM,AAAY,oDACf,AAAM,AAAY,uDAClB,AAAM,AAAY;AAEoC,UAD5D,AAAM,AAAY,AAAoB,uDAClC,qCAAuB,AAAO,AAAkB;AAgB3C,UAfT,kBACI,AAAoC,kCAAf,UAAU,oBAAa,4CACtC,AAAM,AAAY,uEAEzB,qBAAkB,QAAiB;AAC9B,gBAAW,YAAP,MAAM,EAAoB;AACa,cAAzC,AAAM,AAAY,2CAAmB;AACrC,kBAAI,AAAM,AAAY,2CAAmB;AACS,gBAAhD,AAAM,AAAY,AAAgB,AAAM;;AAE1C,kBAAI,AAAM,AAAY,2CAAkB,QACpC,AAAM,AAAY,AAAe,iDAAS;AACW,gBAAvD,AAAM,AAAY,AAAe,AAAM;;;;AAQjD,UAJF,AAAM,AAAY,gDACd,AAAoC,kCAAf,UAAU,cAAa,4CACtC,AAAM,AAAY;AAG4B,UAAxD,AAAM,AAAY,AAAoB,2DAAc;;AAEX,UAAzC,AAAM,AAAY,2CAAmB;;AAEvC,YAAI,AAAO,AAAY,8BAAG;AAO8B,UANtD,gBAAgB,4CACL,yBACM,CAAC,aACH,AAAO,iDACG,AAAM,AAAY,8DACtB,eAAe,YACtB,AAAM,AAAY;;AAGmC,QADrE,AAAM,AAAY,AACb,6CAAI,sCAAuB,oCAAqB,aAAa;AAKrB,QAJ7C,AAAM,AAAY,0CAAkB,wDAClB,kBACiB,aAAzB,AAAO,iCAAoB,IAC3B,QACA,AAAM,AAAY;AAC0C,QAAtE,AAAM,AAAY,AAAc,6CAAI,AAAM,AAAY;;IAE1D;0BAEwC;AACtC,oBAAI,AAAM,AAAgB;AACxB,YAAI,AAAM,AAAgB,sCAAW;AAE6B,UADhE,AAAM,AAAgB,+CAAmB,uCAC/B,iBAAiB,AAAM,AAAY;AAEG,UADhD,AAAM,AAAY,AACb,6CAAI,AAAM,AAAgB;;AAGc,UAD7C,AAAM,AAAgB,0CAClB,mDAAmC;AACgC,UAAvE,AAAM,AAAY,AAAc,6CAAI,AAAM,AAAgB;;;IAGhE;iBAEiC;;AACU,MAAzC,AAAM,AAAgB,0CAAc;AAEE,MAAtC,AAAM,AAAY,wCAAgB;AACsC,MAAxE,AAAM,AAAY,wCAAe,AAAU,6BAAc,AAAM,KAAD;AACzD;AAED;AACkC,mBAClC,AAAM,AAAa,AAAa,8CAAC;AACrC,eAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,AAAc,MAAf,2BAAuB,IAAA,AAAC,CAAA;AAChD,sBAAI,AAAO,AAAa,AAAI,MAAlB,uBAAe,CAAC;AAE+C,UADvE,UAAU,yBACN,AAAO,AAAa,AAAI,MAAlB,uBAAe,CAAC,cAAc,AAAM,AAAY;AAC1D,wBAAI,OAAO;AACK,YAAd,aAAa,CAAC;AACd;;;;AAI4C,MAAlD,yBAAoB,AAAM,AAAY;AACtC,UAAI,AAAM,AAAY,yCAAgB,kBAAQ,OAAO;AAMlD,QALD,AAAM,AAAY,wCAAgB,iCAChC,0BACA,UAAU,GACV,AAAM,AAAa,AAAa,8CAAC,gBACjC,AAAM,AAAa,AAAa,AAAc,AAAa,8CAA1B,gDAA2B,UAAU;;AAGnB,oBAArD,AAAM,yCAAA,OAAiB;sBAAjB,OAAmC,WAAO;AACiB,+BAAjE,AAAM,2CAAA,OAAiB,wCAAjB,OAAmC;uBAAnC,OAA0C;;IAEpD;;AAIE,UAAI,0BAAqB,QAAQ,AAAM,AAAY,yCAAiB;AACxD,yBAAa,AAAM,AAAY,AAAc;AAMpB,QALnC,AAAM,AAAY,wCAAgB,iCAC9B,0BACA,UAAU,GACV,AAAM,AAAa,AAAa,8CAAC,gBACjC,AAAM,AAAa,AAAa,AAC3B,AAAa,8CADe,gDACd,UAAU;AACjC,YAAI,AAAM,AAAY,yCAAiB;AACrC,cAA0D,YAAf,WAAvC,AAAM,AAAY,AAAc,iEACjB;AAC2B,YAA5C,AAAM,AAAa,wCAAc,UAAU;;;AAIiB,QADhE,AAAM,AACD,gDAAsB,UAAU,EAAiB;AACtD,sBAAI,AAAM,AAAgB,sCACe,YAArC,AAAM,AAAgB,2CAAiC;AAEY,UADrE,AAAM,AAAgB,uCAClB,AAAkB,AAAG,wCAAY,AAAkB,AAAG;;;IAGhE;;AAIE,UAAI,AAAM,AAAY,yCAAgB,QAClC,AAAM,AAAY,yCAAiB;AAC3B,yBAAa,AAAM,AAAY,AAAc;AAOvC,QANhB,AAAM,AAAY,wCAAgB,iCAC9B,0BACA,UAAU,GACV,AAAM,AAAa,AAAa,8CAAC,gBACjC,AAAM,AAAa,AAAa,AAC3B,AAAa,8CADe,gDACd,UAAU,IAC7B;AAE4D,QADhE,AAAM,AACD,gDAAsB,UAAU,EAAiB;AACtD,YAAI,AAAM,AAAY,yCAAiB;AACrC,cAA0D,YAAf,WAAvC,AAAM,AAAY,AAAc,iEACjB;AAC2B,YAA5C,AAAM,AAAa,wCAAc,UAAU;;;AAG/C,sBAAI,AAAM,AAAgB,sCACe,YAArC,AAAM,AAAgB,2CAAiC;AAGR,UAFjD,AAAM,AAAgB,uCAClB,AAAM,AAAY,AAAa,AAAG,uDAClC,AAAM,AAAY,AAAa,AAAG;;;IAG5C;eAE6B;;AACc,MAAzC,AAAM,AAAgB,0CAAc;AACoC,MAAxE,AAAM,AAAY,wCAAe,AAAU,6BAAc,AAAM,KAAD;AAC9D,UAAI,AAAM,AAAY,yCAAgB,QAClC,AAAM,AAAY,yCAAiB;AACrC,YAAI,AAAM,AAAY,AAAc,gDAAU,QACY,YAAf,WAAvC,AAAM,AAAY,AAAc,iEACb;AAEyC,UAD9D,AAAM,AACD,wCAAc,AAAM,AAAY,AAAc;;AAGrD,uBAA6D,WAAlB,WAAvC,AAAM,AAAY,AAAc;AAGL,UAF7B,AAAM,AAAa,gDACf,AAAM,AAAY,AAAc,kDACjB;;AAGrB,sBAAI,AAAM,AAAgB,sCACe,YAArC,AAAM,AAAgB,2CAAiC,oCACvD,AAAM,AAAY,AAAc,gDAAU;AAC5C,cAAI,AAAM,AAAgB,sCAAW;AACG,0DAClC,AAAM,AAAY,AAAc;AACX,gDACrB,AAAM,AAAY,AAAc;AACvB,2BAAW,AAAM,KAAD;AAEoB,YADjD,AAAM,AAAgB,AAAiB,oDAC9B,qBAAS,AAAS,QAAD,KAAK,AAAS,QAAD,KAAK,KAAG;AAQI,YAPnD,AAAM,AAAgB,AAAiB,wDACnC,AAAM,AAAgB,mCAClB,AACK,AAAU,WADJ,mBACK,AAAM,AAAY,AAAc,mDAChD,KAAK,EACL,WAAW,EACX,AAAM,AAAY,AAAc,mDAChC,AAAM,AAAY,AAAc;AACU,YAAlD,AAAM,AAAgB,AAAiB,oDAAO;AACkB,wBAAhE,AAAM,AAAgB,2DAAA,OAAkB;0BAAlB,OAAyB;;AAGlC,2BAAW,AAAU,6BAAc,AAAM,KAAD;AAES,YAD9D,AAAM,AACD,qCAAU,AAAS,AAAG,QAAJ,kBAAgB,AAAS,AAAG,QAAJ;;;;AAIhB,MAArC,AAAM,AAAY,wCAAe;IACnC;eAE2B;;AACa,MAAtC,AAAM,AAAY,wCAAgB;AACsC,MAAxE,AAAM,AAAY,wCAAe,AAAU,6BAAc,AAAM,KAAD;AACzD;AAED;AACkC,mBAClC,AAAM,AAAa,AAAa,8CAAC;AACrC,eAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,AAAc,MAAf,2BAAuB,IAAA,AAAC,CAAA;AAChD,sBAAI,AAAO,AAAa,AAAI,MAAlB,uBAAe,CAAC;AAE+C,UADvE,UAAU,yBACN,AAAO,AAAa,AAAI,MAAlB,uBAAe,CAAC,cAAc,AAAM,AAAY;AAC1D,wBAAI,OAAO;AACK,YAAd,aAAa,CAAC;AACd;;;;AAIN,UAAI,AAAM,AAAY,yCAAgB,kBAAQ,OAAO;AAMlD,QALD,AAAM,AAAY,wCAAgB,iCAChC,0BACA,UAAU,GACV,AAAM,AAAa,AAAa,8CAAC,gBACjC,AAAM,AAAa,AAAa,AAAc,AAAa,8CAA1B,gDAA2B,UAAU;;AAGnB,oBAArD,AAAM,yCAAA,OAAiB;sBAAjB,OAAmC,WAAO;AACiB,+BAAjE,AAAM,2CAAA,OAAiB,wCAAjB,OAAmC;uBAAnC,OAA0C;;AAElD,UAAI,AAAM,AAAY,yCAAgB;AACpC,sBAAI,AAAM,AAAgB,sCACtB,AAAM,AAAY,yCAAiB,QACnC,AAAM,AAAY,AAAc,gDAAU;AACJ,UAAxC,AAAM,AAAgB,0CAAc;AACvB,yBAAW,AAAU,6BAAc,AAAM,KAAD;AAEO,UAD5D,AAAM,AACD,mCAAQ,AAAS,AAAG,QAAJ,kBAAgB,AAAS,AAAG,QAAJ;;AAEY,4DAAzD,OAAO,sCAAP,OAAwB;yBAAxB,OAAkC,wBAAmB;AACO,4DAA5D,OAAO,sCAAP,OAAwB;yBAAxB,OAAkC,2BAAsB;AAChB,8DAAxC,OAAO,uCAAP,OAAwB;0BAAxB,OAAkC;;;AAGD,MAArC,AAAM,AAAY,wCAAe;IACnC;;;QAvWuB;;IAES;IACtB;IACF;IACO;IACR;IANgB;AAAvB;;EAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjduB,MAAnD,qBAAiD;AACA,MAAjD,AAAM,AAAO,kCAAkC;AAGT,0BAAgB,AAAM;AAEvB,MAArC,AAAc,aAAD,iBAAe;AACd,mBAAS,AAAc,aAAD;AACtB,mBAAS,AAAc,aAAD;AACpC,eAAS,aAAa,GAClB,AAAW,UAAD,gBAAG,AAAc,AAAW,aAAZ,uBAC1B,aAAA,AAAU,UAAA;AACZ,YAAU,WAAN,MAAM,GAAC,UAAU,MAAK;AAE4C,UADpE,AAAc,AACT,aADQ,qBACJ,yBAAyB,WAAN,MAAM,GAAC,UAAU,oBAAS,WAAN,MAAM,GAAC,UAAU;;;AAGtC,MAA/B,AAAc,yBAAI,AAAM;IAC1B;mCAEkE;AAChE,eAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,AAAY,MAAb,0BAAqB,IAAA,AAAC,CAAA;AAC9C,YAAI,AAAO,AAAW,AAAI,AAAE,MAAlB,sBAAa,CAAC,OAAO,MAC7B,AAAO,AAAkD,MAAnD,0BAA0B,CAAC,EAAE,AAAO,AAAW,MAAZ,sBAAa,CAAC;;IAE7D;;AAGE,eAAqC,SAAU;AACvB,QAAtB,qBAAgB,MAAM;AACqB,QAA3C,mCAA6B;AACJ,QAAzB;AACgB,QAAhB;AACkB,QAAlB;;IAEJ;;AAGiC,mBAAS,AAAc;AACH,MAAnD,AAAM,AAAO,mCAAoC;AACjD,eAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,MAAD,YAAS,IAAA,AAAC,CAAA;AAClC,sBAAI,AAAM,AAAI,MAAJ,QAAC,CAAC;AAC+B,UAAzC,AAAM,AAAO,AAAc,uCAAI,AAAM,MAAA,QAAC,CAAC;;;IAG7C;;;AAGoB,oBAAU,AAAM;AACpB,uBAAa,AAAc;AAChB,kBAAQ,AAAc;AACjC,wBAAc,AAAc;AACX,mBAAS,AAAc;AACtD,eAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,MAAD,YAAS,IAAA,AAAC,CAAA;AACf;AACK,QAAxB,eAAe,AAAM,MAAA,QAAC,CAAC;AAG2B,QAFlD,AAAa,YAAD,QAAC,gBAA4B,UAArB,AAAa,YAAD,aAAY,AAAM,KAAD,UAAU,OACrD,AAAM,KAAD,UACS,KAAJ,WAAV,UAAU,GAAC,CAAC,UAAF,OAAO,AAAO,OAAA,QAAC,AAAE,CAAD,UAAG,AAAQ,OAAD;AACJ,QAAtC,AAAa,YAAD,SAAS,AAAa,YAAD;AAIE,QAHnC,AAAa,YAAD,eACa,UAArB,AAAa,YAAD,aAAY,AAAM,KAAD,gBAAgB,OACvC,AAAM,KAAD,eACL,AAAc;AAIW,QAHnC,AAAa,YAAD,eACa,UAArB,AAAa,YAAD,aAAY,AAAM,KAAD,gBAAgB,OACvC,AAAM,KAAD,eACL,AAAc;AAGM,QAF9B,AAAa,YAAD,eAAe,AAAa,AAAY,YAAb,iBAAgB,IAC1C,6BACP,AAAa,YAAD;AAMK,QAJvB,AAAa,YAAD,QAAC,mBAAO,AAAa,AAAK,YAAN,SAAS,OACnC,AAAY,WAAD,IAAI,QACI,MAAJ,WAAX,WAAW,GAAC,CAAC,WAAF,OAAsB,cAAf,AAAa,YAAD,aACf,cAAf,AAAa,YAAD,MAChB,AAAa,YAAD;AAElB,YAAI,AAAM,AAAO,uCAAqB;AACF,8BAC9B,AAAM,AAAY;AACtB,wBAAI,AAAc,aAAD;AACf,qBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAc,aAAD,YAAS,IAAA,AAAC,CAAA;AACb,yBAAO,AAAa,aAAA,QAAC,CAAC;AAClD,kBAAI,AAAE,CAAD,KAAI,AAAK,IAAD;AACmB,gBAA9B,AAAa,YAAD,aAAa;AACzB;;;;;AAKN,wBAAI,AAAM,AAAY,AAAmB;AACvC,qBAAS,IAAI,GACT,AAAE,CAAD,gBAAG,AAAM,AAAY,AAAmB,sDACzC,IAAA,AAAC,CAAA;AACwB,wCACvB,AAAM,AAAY,AAAkB,kDAAC,CAAC;AAC1C,kBAAI,AAAE,CAAD,KAAI,AAAoB,mBAAD;AACI,gBAA9B,AAAa,YAAD,aAAa;AACzB;;;;;;IAMZ;;;AAGgC,MAA9B,AAAc,mCAAe;AAC7B,eAAwB,QAAS,AAAc;AAC7C,sBAAI,AAAM,KAAD;AACoC,eAA3C;UAAc,mBAAa,aAAb,oBAAgB,AAAM,AAAE,KAAH;;;IAGzC;kCAEiE;AACpD,0BAAgB,AAAM,AAAY;AAClC,oBAAU,AAAO,AAAY,MAAb,mBAAgB,YAAY,OAAO;AAGM,MAFpE,AAAO,MAAD,kBAAiB,gBACnB,AAAmD,uBAAnC,AAAO,MAAD,QAAQ,AAAc,aAAD,sBAC3C,AAAqD,uBAArC,AAAO,MAAD,SAAS,AAAc,aAAD;AAEc,MAD9D,AAAO,MAAD,qBACF,uBAAgB,AAAO,MAAD,gBAAgB,AAAc,aAAD;AACvD,UAAuB,YAAnB,AAAO,MAAD,cAA4B;AACC,QAArC,2BAAqB,MAAM,EAAE,OAAO;;AAED,QAAnC,kCAA4B,MAAM;;IAEtC;kCAEiE;AACrD,kBAAQ,AAAO,AAAc,MAAf;AACd,wBAAc,AAAO,MAAD;AACpB;AACA;AACC,MAAX,IAAS;AACO,MAAhB,SAAc;AACJ,qBAAW,mBAAI,mBAAI,AAAO,MAAD,WAAW,IAAI;AACxC,sBAAY,AAAS,QAAD,IAAU,aAAN,KAAK,IAAG;AAChC,mBAAS,wBAAkB,GAAG,WAAW;AAC/C,kBAAQ;AACZ,eAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,KAAK,GAAE,IAAA,AAAC,CAAA;AAC1B,sBAAI,AAAO,AAAa,AAAI,MAAlB,kCAAe,CAAC;AACZ,UAAZ,AAAE,CAAD,OAAK,KAAK;AAC0D,UAArE,AAAO,MAAD,OAAK,wBAAkB,KAAK,EAAE,AAAO,AAAa,AAAI,AAAE,MAApB,kCAAe,CAAC;AACnB,UAAvC,QAAA,AAAM,KAAD,IAAc,aAAV,AAAM,MAAA,mBAAC,CAAC,MAAI,AAAU,SAAD,gBAAG,MAAM;;;AAGjC,iBAAO,AAAE,KAAG,AAAM,KAAD,GAAG,AAAU,SAAD,gBAAG,MAAM;AAChD,eAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,KAAK,GAAE,IAAA,AAAC,CAAA;AAC1B,sBAAI,AAAO,AAAa,AAAI,MAAlB,kCAAe,CAAC;AACoB,UAA5C,AAAO,AAAa,AAAI,MAAlB,kCAAe,CAAC,YAAW,AAAK,IAAD,gBAAG,AAAC,CAAA,mBAAC,CAAC;AACW,UAAtD,AAAO,AAAa,AAAI,MAAlB,kCAAe,CAAC,iBAAgB,AAAK,IAAD,gBAAG,AAAM,MAAA,mBAAC,CAAC;;;IAG3D;wBAE0B,GAAO;AAC7B,2CAAwB,GAAG,AAAE,iBAAE,CAAC,GAAE,cAAC,OAAO;IAAC;8BAEf,GAAO,GAAO;AACxC;AACA;AACM,cAAM,AAAI,aAAN,CAAC,iBAAG,CAAC,IAAG,AAAE,AAAI,iBAAF,CAAC,iBAAG,CAAC;AAC/B,UAAI,AAAE,CAAD,IAAI;AACG,iBAAK,UAAK,CAAC;AACM,QAA3B,QAAkB,CAAT,AAAG,cAAF,CAAC,IAAG,EAAE,KAAK,AAAE,iBAAE,CAAC;AACC,QAA3B,QAAkB,CAAT,AAAG,cAAF,CAAC,IAAG,EAAE,KAAK,AAAE,iBAAE,CAAC;AAC1B,cAAO,oBAAI,KAAK,EAAE,KAAK;;AAEzB,YAAO;IACT;2BAE0D,QAChD;AACuB,mBAAS,AAAO,MAAD;AACvC;AACM,qBAAW,sBAAI,sBAAI,AAAO,MAAD,WAAW,MAAI;AACxC,kBACT,AAAE,KAAuB,aAApB,AAAO,MAAD,mBAAiB,AAAE,IAAE,AAAS,QAAD,IAAI,AAAE,IAAE,QAAQ;AAC/C,oBAAU,AAAS,QAAD,IAAkB,aAAd,AAAO,MAAD,aAAU;AAC9C,MAAL,IAAI;AACA;AACA;AACJ,eAAS,IAAkB,aAAd,AAAO,MAAD,aAAU,GAAG,AAAE,CAAD,IAAI,GAAG,IAAA,AAAC,CAAA;AACI,QAA3C,kBAAQ,OAAO,IAAiB,AAAI,aAAlB,AAAO,MAAD,aAAU,IAAI,CAAC,GAAG,CAAC;AAC3C,sBAAI,AAAM,AAAQ,MAAR,mBAAC,KAAK;AACkB,UAAhC,SAAS,AAAM,KAAD,gBAAG,AAAM,AAAQ,MAAR,mBAAC,KAAK;AACL,UAAxB,AAAM,AAAQ,MAAR,mBAAC,KAAK,YAAW,CAAC;AACU,UAAlC,AAAM,AAAQ,MAAR,mBAAC,KAAK,iBAAgB,MAAM;AACb,UAArB,IAAE,aAAF,CAAC,KAAW,aAAP,MAAM,IAAG,OAAO;;;IAG3B;oBAEuB;;AAChB,gCAAsB;AACW,mBAClC,AAAM,AAAa,AAAa,8CAAC;AACZ,kBAAQ,AAAO,AAAa,MAAd,kCAAe,UAAU;AAChE,oBAAI,AAAO,MAAD;AACR,sBAAI,AAAM,AAAY,AAAe;AACT,UAA1B,sBAAsB;AACZ,8BAAgB,AAAM,AAAY,AAAc,8CAAC;AACJ,UAAvD,AAAO,AAAa,AAAgB,MAA9B,uBAAe,aAAa,oBAAoB;AAEO,UAD7D,AAAM,KAAD,mBACD,AAAc,aAAD,IAAI,UAAU,GAAG,IAAI,AAAO,MAAD;AACI,UAAhD,AAAM,AAAY,AAAc,8CAAC,cAAK,UAAU;AAChD,cAAI,AAAc,aAAD,IAAI,UAAU;AACa,YAA1C,AAAM,AAAY,yCAAsB;;AAEK,eAA/C,AAAM,AAAY;UAAsB,WAAK,aAAL,YAAK;;AAE/C,aAAK,mBAAmB;AACyB,UAA/C,AAAM,KAAD,mBAAmB,AAAO,MAAD;AACkB,UAAhD,AAAM,AAAY,AAAe,wDAAI,UAAU;AACA,gBAA/C,AAAM,AAAY;UAAsB,YAAK,aAAL,aAAK;;AAEf,QAAhC,2BAAqB,UAAU;;IAEnC;2BAE8B;AACd,yBAAe,AAAc,AAAa,oDAAC,UAAU;AAC/B,MAAvB,UAAb,YAAY,gBAAsB;AACvB,iBAAO,AAAc;AACtB,sBAAqD,aAAzC,AAAM,AAAY,AAAmB,kDACK,CAAf,aAA5C,AAAM,AAAY,AAAmB,kEAAS,AAAK,IAAD,YAAW;AAExD,uCAIO,WAJoB,AAAgB,WAA7B,YAAY,wBAAoB,OACjC,WAAb,YAAY,iCACZ,iCAAe,UAAU,GAAE,oBAAe,eACtC,AAAc,uCACd,SAEiC,CADC,aAA3C,AAAM,AAAY,AAAmB,iEAC9B,AAAc,AAAc,4CAChC;AACE,6BACK,aAAX,UAAU,iBAAG,AAAM,AAAY,AAAmB;AAClD,gCAAmB,WAAb,YAAY;AAClB,mCAA6B,WAAP,WAAb,YAAY,mBAAuB,WAAb,YAAY;AACrC,sBAAY,AAAI,OAAG,AAAE,iCAAe,WAAb,YAAY;AACnC,yBAAe,AAAI,OAAG,AAAE,iBAAE,MAAM;AACZ,MAA9B,MAAI,aAAJ,GAAG,IAAI,AAAU,SAAD,gBAAG,AAAK,IAAD;AACU,MAAjC,SAAO,aAAP,MAAM,IAAI,AAAU,SAAD,gBAAG,AAAK,IAAD;AACtB;AAAQ;AAAQ;AAAQ;AAAQ;AAAQ;AAAQ;AAAQ;AACD,MAA3D,SAAS,AAAiB,AAAS,gBAAV,OAAY,AAAU,SAAD,gBAAG,AAAK,IAAD;AAC3B,MAA1B,SAAa,aAAJ,GAAG,iBAAG,AAAK,IAAD;AAC8C,MAAjE,SAAS,AAAiB,AAAS,gBAAV,OAA4B,CAAf,AAAE,IAAE,SAAS,iBAAI,AAAK,IAAD;AACjC,MAA1B,SAAa,aAAJ,GAAG,iBAAG,AAAK,IAAD;AACiD,MAApE,SAAS,AAAiB,AAAS,gBAAV,OAA+B,CAAlB,AAAE,IAAE,YAAY,iBAAI,AAAK,IAAD;AACjC,MAA7B,SAAgB,aAAP,MAAM,iBAAG,AAAK,IAAD;AACwC,MAA9D,SAAS,AAAiB,AAAS,gBAAV,OAAY,AAAa,YAAD,gBAAG,AAAK,IAAD;AAC3B,MAA7B,SAAgB,aAAP,MAAM,iBAAG,AAAK,IAAD;AAC6B,MAA3B,WAAX,WAAb,YAAY,yBAAgB,kBAAO,MAAM,EAAE,MAAM;AACE,MAA3B,WAAX,WAAb,YAAY,yBAAgB,kBAAO,MAAM,EAAE,MAAM;AACE,MAA3B,WAAX,WAAb,YAAY,yBAAgB,kBAAO,MAAM,EAAE,MAAM;AACE,MAA3B,WAAX,WAAb,YAAY,yBAAgB,kBAAO,MAAM,EAAE,MAAM;AACa,MAA9D,4BAAsB,AAAc,0DAAa,YAAY;IAC/D;gCAEsC,QAAY;AAChB,MAAhC,2BAAqB,UAAU;AACjB,yBAAe,AAAc,AAAa,oDAAC,UAAU;AACxD,iBAAO;AACuD,MAAzE,AAAK,IAAD,2BAAmC,WAAJ,WAAV,WAAb,YAAY,0BAAY,gCAAkC,WAAJ,WAAV,WAAb,YAAY,0BAAY;AACM,MAAzE,AAAK,IAAD,2BAAmC,WAAJ,WAAV,WAAb,YAAY,0BAAY,gCAAkC,WAAJ,WAAV,WAAb,YAAY,0BAAY;AACM,MAAzE,AAAK,IAAD,2BAAmC,WAAJ,WAAV,WAAb,YAAY,0BAAY,gCAAkC,WAAJ,WAAV,WAAb,YAAY,0BAAY;AACM,MAAzE,AAAK,IAAD,2BAAmC,WAAJ,WAAV,WAAb,YAAY,0BAAY,gCAAkC,WAAJ,WAAV,WAAb,YAAY,0BAAY;AACM,MAAzE,AAAK,IAAD,2BAAmC,WAAJ,WAAV,WAAb,YAAY,0BAAY,gCAAkC,WAAJ,WAAV,WAAb,YAAY,0BAAY;AACvD,MAAZ,AAAK,IAAD;AACJ,UAAI,AAAW,UAAD,KAAuC,aAAnC,AAAc,AAAc,8CAAS;AACG,QAAxD,AAAc,8CAA0B,AAAK,IAAD;;AAEP,MAAvC,oBAAc,MAAM,EAAE,IAAI,EAAE,UAAU;IACxC;oBAE0B,QAAa,MAAU;AACjC,kBAAQ,AAAc,AAAa,oDAAC,UAAU;AACxC,kBAChB,gCAAe,UAAU,GAAE,oBAAe,oCAAO,KAAK;AAE9C,sCAAY,AAAc,KAAT,IAAI,QAAQ,AAAM,KAAD,SAAS,OACjD,AAAM,KAAD,QACO,aAAL,WAAN,KAAK,WAAgB,8BAClB,AAAc,AAAU,4CAAc,4CAAe,KAAK,cACxD,UAAU,mBAAQ,WAAN,KAAK,YAAO,AAAc,8BAClC,WAAN,KAAK;AAEH,wBAAc,AAAc,KAAT,IAAI,QAAQ,AAAM,KAAD,gBAAgB,OAC1D,AAAM,KAAD,eACL,AAAc,AAAU,kDACtB,4CAAe,KAAK,cAAE,UAAU,mBAAQ,WAAN,KAAK;AAElC,wBAAc,AAAc,KAAT,IAAI,QAAQ,AAAM,KAAD,gBAAgB,OAC3D,AAAM,KAAD,eACL,AAAc,AAAU,kDACtB,4CAAe,KAAK,cAAE,UAAU,sBAAQ,WAAN,KAAK;AAElC,oBAAU,AAAc,KAAT,IAAI,QAAQ,AAAM,KAAD,YAAY,OACnD,AAAM,KAAD,WACL,AAAc,AAAU,yCACtB,4CAAe,KAAK,cAAE,UAAU,GAAE,AAAc;AAS/C,MAPT,iBACI,MAAM,EACN,6BACI,SAAS,YACT,AAAM,AAAY,4CAAmB,WAAW,GAAG,GACnD,WAAW,EACX,OAAO,GACX,IAAI;IACV;4BAEkC,YAA+B;AAC5C,uBAAa,AAAM,KAAD;AAC3B,mBACN,AAAW,UAAD,KAAI,WAA6B,aAAlB,AAAW,UAAD,aAAU,IAAsB,aAAlB,AAAW,UAAD,aAAU;AAC/D,cAA+C,CAAzB,aAAjB,AAAU,AAAI,UAAJ,QAAC,sBAAQ,AAAU,AAAS,UAAT,mBAAC,MAAM,UAAQ;AACjD,kBAAuD,CAA7B,aAAjB,AAAU,AAAI,UAAJ,QAAC,sBAAQ,AAAU,AAAa,UAAb,mBAAC,AAAO,MAAD,GAAG,WAAS;AAEtB,MAD7C,AAAM,KAAD,UAAe,qBAAS,CAAC,EAAE,AAAU,AAAI,UAAJ,QAAC,OAAO,AAAM,KAAD,GAAG,CAAC,EACjC,aAAtB,AAAU,AAAS,UAAT,mBAAC,MAAM,sBAAO,AAAU,AAAI,UAAJ,QAAC;AAEQ,MAD/C,AAAM,KAAD,kBAAkB,kBAAyB,aAAlB,AAAM,AAAO,KAAR,gBAAkC,aAAnB,AAAM,AAAO,KAAR,iBAAgB,GAClD,aAAjB,AAAM,AAAO,KAAR,eAAkC,aAApB,AAAM,AAAO,KAAR,kBAAiB;IAC/C;4BAE+B,YAA2B;;AACnD,mCAAyB;AAChB,mBAAS,AAAM,AAAa,AAAa,8CAAC;AACxD,qBAA6B,WAAlB,WAAP,MAAM,sCAAkC,YAAL,IAAI,EAAI,AAAM;AACnD,sBAAI,AAAM,AAAY,AAAc;AAClC,mBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAM,AAAY,AAAc,iDAAQ,IAAA,AAAC,CAAA;AACjD,iCAAiB,AAAM,AAAY,AAAa,6CAAC,CAAC;AAC5D,2BAAK,AAAM;AAG2B,cAFpC,yBACI,AAAM,AAAY,AAAc,AAAO,AAAK,mDAAF,KACtC,AAAW,UAAD,IAAI,cAAc;AACO,cAA3C,AAAM,AAAY,AAAc,iDAAS,CAAC;AACK,mBAA/C,AAAM,AAAY;cAAsB,WAAK,aAAL,YAAK;kBACxC,KAAI,AAAW,UAAD,IAAI,cAAc;AACM,cAA3C,AAAM,AAAY,AAAc,iDAAS,CAAC;AACb,cAA7B,yBAAyB;AACsB,oBAA/C,AAAM,AAAY;cAAsB,YAAK,aAAL,aAAK;AAC7C;;;;AAIN,aAAK,sBAAsB;AACsB,UAA/C,AAAM,AAAY,AAAc,uDAAI,UAAU;AACC,iBAA/C,AAAM,AAAY;UAAsB,aAAK,aAAL,cAAK;;;IAGnD;qBAGQ,mBAC4B,QACjB,OACI;AACP;AACU,sBAAY,AAAO,MAAD;AAE1C,oBAAI,AAAU,SAAD;AACX,sBAAI,AAAM,AAAY,AAAc,KAA3B;AACP,cAAI,AAAM,KAAD,uBAAuB;AAEqC,YADnE,AAAM,KAAD,oBACD,6BAAuB,MAAM,KAAe,iBAAiB;;AAEnE,mBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAM,AAAY,AAAc,KAA3B,uCAAmC,IAAA,AAAC,CAAA;AACjD,iCAAiB,AAAM,AAAY,AAAa,KAA1B,mCAA2B,CAAC;AAC5D,gBAAI,AAAkB,iBAAD,IAAI,cAAc;AAWP,cAV9B,aAAa,6BACT,AAAe,wBAAG,OACZ,AAAe,qCACf,AAAU,SAAD,gBACf,AAAe,wBAAG,OACZ,AAAe,2CACf,AAAU,SAAD,sBACf,AAAe,wBAAG,OACZ,AAAe,2CACf,AAAU,SAAD,sBACf,AAAU,SAAD;AACb;kBACK,KAAI,AAAE,CAAD,KAA2C,aAAvC,AAAM,AAAY,AAAc,KAA3B,wCAAoC;AAWvB,cAVhC,aAAa,6BACT,AAAe,wBAAG,OACZ,AAAe,uCACf,AAAU,SAAD,kBACf,AAAe,wBAAG,OACZ,AAAe,6CACf,AAAU,SAAD,wBACf,AAAe,wBAAG,OACZ,AAAe,6CACf,AAAU,SAAD,wBACf,AAAU,SAAD;;;;;AAKrB,YAAO,WAAU;IACnB;6BAGY,QAAY,aAAiB;AACvC,UAAI,MAAM,IAAI;AACoB,QAAhC,uBAAiB;AACa,QAA9B,AAAe,8BAAS,MAAM;AAEkB,QADhD,AAAe,2CAAA,gBACc,WAAlB,WAAP,MAAM;AAEsC,QADhD,AAAe,2CAAA,mBACc,WAAlB,WAAP,MAAM;AAC2D,QAArE,AAAe,qCAAA,gBAAyC,WAAlB,WAAP,MAAM;AAEa,QADlD,AAAe,6CAAA,gBACc,WAAlB,WAAP,MAAM;AAEwC,QADlD,AAAe,6CAAA,mBACc,WAAlB,WAAP,MAAM;AAC+D,QAAzE,AAAe,uCAAA,gBAA2C,WAAlB,WAAP,MAAM;AACC,QAAxC,AAAe,mCAAA,WAAc,WAAW;AACF,QAAtC,AAAe,kCAAA,WAAa,UAAU;;AAExC,YAAO;IACT;;;IA9ae;IAEiB;IAEM;IACxB;;EAPE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MCoEF;;;;;;MA2BmB;;;;;;MA2BE;;;;;;MAetB;;;;;;MAeA;;;;;;MAeA;;;;;;MAiBK;;;;;;MAeL;;;;;;MAcY;;;;;;MAaZ;;;;;;MAeF;;;;;;MAoBU;;;;;;MAgBR;;;;;;MAeD;;;;;;MAiBS;;;;;;MAcG;;;;;;MAgBX;;;;;;MAsBwB;;;;;;MAsBC;;;;;;MAgBzB;;;;;;MAiBW;;;;;;MAiBd;;;;;;MAEA;;;;;;+BAiBF,YAA+B;AACZ,oBAAQ;AACvB,0BAAc,AAAY;AACX,oBAAQ,AAAW,0BAAC,UAAU;AACvD,YAAI,AAAM,AAAE,KAAH,MAAM;AACb,kBAAQ,AAAM,KAAD;;;AAEC,6BAAsB,AAAI,aAAf,UAAU,IAAG,KAAK,IACjC,AAAW,AAAiB,AAAE,0BAAP,aAAX,UAAU,IAAG,QAAQ,OAC7B,IACA,AAAW,AAAiB,0BAAL,aAAX,UAAU,IAAG,OAC7B;AACI,yBAAkB,AAAI,aAAf,UAAU,IAAG,KAAiB,aAAZ,WAAW,IAAG,IAC3C,AAAW,AAAiB,AAAE,0BAAP,aAAX,UAAU,IAAG,QAAQ,OAC7B,IACA,AAAW,AAAiB,0BAAL,aAAX,UAAU,IAAG,OAC7B;AAC+B,cAArC,AAAM,KAAD,KAAuB,AAAM,CAAd,aAAT,QAAQ,iBAAG,IAAI,aAAU;AACd,cAAtB,AAAM,KAAD,aAAa;AACE,cAApB,AAAM,KAAD,WAAW;AAChB;;;;AAEW,cAAX,AAAM,KAAD,KAAK;AACY,cAAtB,AAAM,KAAD,aAAa;AACE,cAApB,AAAM,KAAD,WAAW;AAChB;;;;AAEoB,cAApB,AAAM,KAAD,WAAW;AACO,cAAvB,AAAM,KAAD,aAAa;AAClB;;;;MAGR;;;;UAleO;UACA;UACA;UACA;UACA;UACA;UACA;UACE;UACA;UACK;UACL;UACY;UACZ;UACF;UACU;UACT;UACC;UACQ;UACG;UACX;UACA;UACW;UACR;MA8ZL;MACkB;MACA;MACrB;MAEC;MACD;MACC;MAES;MACO;MA9bd;MACA;MACA;MACA;MACA;MACA;MACA;MAiBM,kBAAS,KAAP,MAAM,QAAN,OAAU;MACb,iBAAQ,MAAN,KAAK,SAAL,OAAS;MACL,sBAAc,OAAZ,WAAW,UAAX,OAA2B;MAChC,mBAAW,OAAT,QAAQ,UAAR,OAAY;MACJ,8BAAqB,OAAnB,kBAAkB,UAAlB,OAAsB;MAC7B,yBAAgB,OAAd,aAAa,UAAb,OAAiB;MACzB,mBAAU,OAAR,OAAO,UAAP,OAAW;MACN,0BAAiB,OAAf,cAAc,UAAd,OAAiC;MACtC,uBAAc,OAAZ,WAAW,UAAX,OAAsB;MACxB,uBAAc,OAAZ,WAAW,UAAX,OAAe;MACd,0BAAiB,OAAf,cAAc,UAAd,OAAiC;MAChC,6BAAoB,OAAlB,iBAAiB,UAAjB,OAAqB;MACvB,6BAAoB,QAAlB,iBAAiB,WAAjB,OAAqB;MACjC,mBAAU,QAAR,OAAO,WAAP,OAAW;MACM,sCAA6B,QAA3B,0BAA0B,WAA1B,OAAmC;MAC9C,6BAAoB,QAAlB,iBAAiB,WAAjB,OAAqB;AACzC,yDACU,IAAI,cACE,UAAU,gBACR,YAAY,gBACZ,YAAY;AACA,MAAlC,kBAAY;IACd;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAicU;UACe;UACE;UACE;UACC;UACrB;UACA;UACA;UACK;UACL;UACQ;UACI;UACD;UACX;UACA;UACD;UACC;UACF;UACD;UACW;UACR;UACW;UACR;AACP,0DACe,UAAU,gBACR,QAAK,SAAU,AAAY,YAAA,CAAC,AAAU,UAAA,QAAC,KAAK,GAAG,KAAK,4BACpD,QAAK,SAAU,AAAY,YAAA,CAAC,AAAU,UAAA,QAAC,KAAK,GAAG,KAAK,kCAChD,QAAK,SAAU,AAAiB,gBAAD,IAAI,OAC/C,AAAgB,gBAAA,CAAC,AAAU,UAAA,QAAC,KAAK,GAAG,KAAK,IACzC,sCACW,QAAK,SAAU,AAAgB,eAAD,IAAI,OAC7C,AAAe,eAAA,CAAC,AAAU,UAAA,QAAC,KAAK,GAAG,KAAK,IACxC,4BACA,IAAI,UACF,MAAM,SACP,KAAK,eACC,WAAW,YACd,QAAQ,sBACE,kBAAkB,qBACnB,iBAAiB,kBACpB,cAAc,WACrB,OAAO,eACH,WAAW,eACX,WAAW,qBACL,iBAAiB,WAC3B,OAAO,gBACF,YAAY,iBACX,aAAa,kBACZ,cAAc,qBACX,iBAAiB,8BACR,0BAA0B;;IACvD;;;;;;;;;UAsBW,QAAa;AACyB,MAAtD,cAAS,AAAM,AAAa,AAAa,8CAAC;AAE1C,eAAS,aAAa,GAClB,AAAW,UAAD,gBAAG,AAAO,AAAc,sCAClC,aAAA,AAAU,UAAA;AACZ,sBAAI,AAAO,AAAa,AAAa,kCAAZ,UAAU;AACpB,gCACT,AAAgB,wBAAG,OAAO,AAAgB,6BAAQ;AACtD,cAA6B,aAAzB,AAAO,iCAAoB,gBAC1B,AAAM,AAAY;AACR,yBAA8C,AACX,aADzB,AAAM,AAAY,AAAc,0DAC/C,AAAM,AAAY,AAAc,gDACpB,aAAhB,eAAe,KAC0B,aAApC,AAAM,AAAY,AAAc,0DAC7B,AAAM,AAAY,AAAc;AAC/B,yBAA6C,AACf,aADrB,AAAM,AAAY,AAAc,0DAClD,AAAM,AAAY,AAAc,gDAChC,MAAM;AASsC,YARhD,AAAO,MAAD,UAAe,qBACjB,KACoC,AACO,aAD3C,AAAM,AAAY,AAAc,0DAC5B,AAAM,AAAY,AAAc,gDAChC,MAAM,EAC2B,aAArC,AAAM,AAAY,AAAc,2DAC5B,AAAM,AAAY,AAAc,8CACA,aAApC,AAAM,AAAY,AAAc,0DAC5B,AAAM,AAAY,AAAc;;AAEsB,UAAhE,AAAM,AAAa,oDAA0B,MAAM,EAAE,UAAU;;;IAGrE;;yCAGwC;AAAgB;IAAI;;;QApDrD;QACA;QACA;QACA;QACA;QACc;IAOW;IAZzB;IACA;IACA;IACA;IACA;AAEF,mEAAe,QAAQ;;EAAC;;;;;;;;;;;;;;;;;;MAQH,iCAAK;;;;;;;;EA8DjC;;;;;;;;kBAO0C,QACb,OACf,YACE,OACC;;AACX,gBAAK;0BAAL,OAAO,eAAY,OAAO;IAAC;wBAG4B,QAChC,OAAW,YAAmB;AACrD,wBAAW;;wBAG4C,QAChC,OAAW,YAAmB;AACrD,wBAAW;;oBAGsC,QAC1B,OAAW,YAAiB;AACnD,sBAAS;;wBAG6C,QAC/B,OAAW,YAAkB;AACpD,wBAAW;;wBAG4C,QAChC,OAAW,YAAmB;AACrD,wBAAW;;eAGmC,QACvB,OAAW,YAAmB;AACrD,oBAAO;;;;;EAvCW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MCnnBd;;;;;;MAGJ;;;;;;MAGG;;;;;;MAGD;;;;;;MAGA;;;;;;MAGA;;;;;;MAGJ;;;;;;MAGE;;;;;;MAGC;;;;;;MAGA;;;;;;MAGA;;;;;;MAGA;;;;;;MAGA;;;;;;MAGI;;;;;;MAGc;;;;;;MAGlB;;;;;;MAGA;;;;;;MAGA;;;;;;MAGD;;;;;;MAGA;;;;;;MAGS;;;;;;MAGR;;;;;;MAGE;;;;;;MAGH;;;;;;;8BAxEW,GAAQ;MAShB;MAGD;MAGA;MAGA;MAGJ;MAGE;MAGC;MAGA;MAGA,iBAAU;MAGV,oBAAY;MAGZ,oBAAa;MAGT;MAGc;MAGlB;MAGA;MAGA,iCAA0B;MAG3B;MAGA;MAGS;MAGR;MAGE;MAGH;MAxEW;MAAQ;;IAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACWvB,YAAO;IACT;;;QAXgC;QAAmB;;IAMpB;IANC;IAAmB;AAAnD;;EAAyD;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BP,MAAhD,gCAA2B,+BAAmB;AAEL,MADzC,iCAAsB,yDAA2B,QAC7C,yBAAY;AACC,MAAX;IACR;;AAIE,UAAI,4BAAuB;AACmC,QAA5D,AAAoB,kDAAe;AACN,QAA7B,AAAoB;AACM,QAA1B,2BAAsB;;AAET,MAAT;IACR;;;AAGkC,WAAhC;MAAyB,WAAK,aAAL,YAAK;IAChC;;AAKI,MAFF,cAAS;AACW,QAAlB,AAAO,mBAAO;;IAElB;UAG0B;AACL,MAAnB,AAAO,oBAAQ;AACiD,MAAhE,AAAoB;AACI,+BACpB,AAAoC,kCAAf,UAAU,cAAa,4CACtC;AAGV,oBAAI,AAAO,AAAa,AAAY;AACI,QAAtC,AAAoB,wCAAc;;AAEpC,YAAO,YAAC,AAAO,oBACT,yFACA,oCACS,oCACM,uDACS,AAAO,qCACV,kBAAkB,SACtB,gBACG,oDACW;IACvC;;;IA1D0B;IAGN;IAGD;;;EAqDrB;;;;;;;;;;;;;;;;UAoBoB,QAAa;AACS,mBAAS,AAAa;AAC5D,UAAI,AAAO,MAAD,sBAAsB,kBAC5B,AAAO,AAAkB,MAAnB;AACwD,QAAhE,+BAAwB,MAAM,EAAE,MAAM,EAAE,mBAAc;;IAE1D;;6CAG4C;AAAgB;IAAI;;;QAzBtD;QACD;QACA;QACA;QACc;IAJb;IACD;IACA;IACA;AAEH,uEAAe,QAAQ;;EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICRb;;;;;;IAYL;;;;;;IAYA;;;;;;IAYC;;;;;;IAewB;;;;;;IAYpB;;;;;;IAYJ;;;;;;IAgBK;;;;;;IAYI;;;;;;IAiBW;;;;;;IAKL;;;;;;IAKQ;;;;;;IAGP;;;;;;IAKR;;;;;;IA6CA;;;;;;IAoBV;;;;;;IAcS;;;;;;IAEU;;;;;;;AAYS;IAAqB;;;;QA7RtD;QACC;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACM;QACoB;QACpB;QACJ;QACF;QAYW;QACD;QACA;QACV;;IAuPA;IACkB;IACA;IACX;IACM;IACP;IAEG;IA1RT;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAKA;IAgBK,iBAAQ,KAAN,KAAK,QAAL,OAAS;IACV,kBAAS,MAAP,MAAM,SAAN,OAAU;IACZ,kBAAS,OAAP,MAAM,UAAN;IACF,kBAAS,OAAP,MAAM,UAAN,OAAU;IACH,2BAAkB,OAAhB,eAAe,UAAf,OAAmB;IACtB,0BAAiB,OAAf,cAAc,UAAd,OAAiC;IACjC,4BAAmB,OAAjB,gBAAgB,UAAhB,OAAmC;IACjC,gCAAuB,OAArB,oBAAoB,UAApB,OAAwB;AAC/C,wDAAW,GAAG;AACY,IAA9B,qBAAe;AACc,IAA7B,qBAAe;AACoB,IAAnC,wBAAkB;EACpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyR4B,MAA1B;AACiB,MAAX;IACR;;;AAGsB,MAApB,qBAAgB;AACwB,MAAxC,sBAAsC;AACiB,MAAvD,4BAAuB,yDAA2B;AACL,MAA7C,6BAAwB,+BAAmB;AACE,MAA7C,0BAA2C;AACW,MAAtD,kCAAoD;AAC5B,MAAxB,sBAAsB;AACC,MAAvB,wBAAmB;AACK,MAAxB,yBAAmB;AACK,MAAxB,wBAAmB;AACgB,MAAnC,gCAAiC;AACV,MAAvB,qBAAqB;AAC0B,MAA/C,2BAA6C;AAER,MADrC,iCAAsB,yDAA2B,QAC7C,yBAAY;IAClB;;AAIwC,MAAtC,oBAA2B,6BAAG;AACD,MAAvB;IACR;;kCAGmC;AACD,MAA1B,sBAAgB,SAAS;AACP,MAAxB,yBAAmB;AACI,MAAvB,wBAAmB;IACrB;;AAIE,UAAI,4BAAuB;AAC+B,QAAxD,AAAoB,kDAAe;AACN,QAA7B,AAAoB;AACM,QAA1B,2BAAsB;;AAET,MAAT;IACR;;;AAG+B,WAA7B;MAAsB,WAAK,aAAL,YAAK;IAC7B;UAG0B;AACkB,MAAxB,wCAAgB,OAAO;AAChB,MAAzB,AAAO,2BAAc;AACrB,YAAO,qCACI,iDACI,yCACS,6CACD,AAAO,oCACP,AAAO,AAAgB,+BAAG,OAC3B,iDACS,AAAO,kCAA6B,wBAC7C,cACS,8BACJ,AAAO,gCAAoB,AAAO,oCAC1C,gCACa,sBAChB,yBAAkB,cAClB;IAGlB;;AAGE,YAAO,gCAAgB,+CACV,SAAc,SAAwB;AAC1C;AACP,gBAAI,AAAO,AAAO,iCAAc;AACN,cAAxB,kBAAY,WAAW;AACiB,cAAxC,AAAO,AAAa;AACoB,cAAxC,AAAO,AAAa;AACD,oCAAkB,kCAA2B;AAChE,4BAAI,AAAgB,eAAD,4BAAe,AAAoB;AACQ,gBAA5D,UAAU,oCAAiB,+BAAgB,eAAe;AACO,gBAAhD,AAAS,uDAAqB,QAAC,KAAM;;AAGI,gBAD1D,AAAO,AACF,kDAAuB,AAAO,AAAa;AAEqB,gBADrE,UACI,oBAAa,aAAQ,uCAAuB,wEAAS,WAAW;;;AAGjD,cAArB,UAAU;;AAEZ,kBAAO,QAAO;;IAElB;;AAGE,oBAAI,AAAO,AAAY,AAAoB;AACzC,iBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,AAAY,AAAoB,wDAAQ,IAAA,AAAC,CAAA;AACtC,gCACxB,AAAO,AAAY,AAAmB,oDAAC,CAAC;AAC5B,+CAAY,AAAgB,AAAQ,eAAT;AACN,UAArC,AAAgB,eAAD,QAAQ,AAAU,SAAD;;AAEnB,QAAf,cAAS;;;IAEb;;AAI0C,MAAxC,AAAO,AAAY,yCAAgB;AACpB,MAAf,cAAS;;IACX;kBAEgC;AACI,MAAlC,AAAO,AAAa,kCAAQ;AACM,MAAlC,AAAO,AAAa,kCAAQ;AACiB,MAA7C,AAAO,AAAY,0CAAwB;AAC7B,kBAAQ,AAAY,WAAD;AACnB,mBAAS,AAAY,WAAD;AACjB,mBAAS,AAAO;AACjC,UAA2B,YAAvB,AAAO,AAAO,6BAA2B;AAEsB,QADjE,AAAO,AAAO,+CACH,WAAP,MAAM,QAAG,KAAK,MAAkB,+BAAwB;;AAEP,QAArD,AAAO,AAAO,oCAAiB,AAAO,AAAO;;AAGP,MADxC,AAAO,AAAa,sCAAY,mCAAyB,WAAd,WAAN,KAAK,QAAG,AAAO,MAAD,eAAQ,AAAO,MAAD,8BACzC,WAAb,WAAP,MAAM,QAAG,AAAO,MAAD,cAAO,AAAO,MAAD;IAClC;;;IAlKI;IAEA;IACgB;IACD;IAEf;IACqB;IACZ;IAGI;IACZ;IACA;IACU;IACG;IACb;IACsB;IACC;IACvB;IACE;IACF;IACa;IACO;IACpB;IACK;IACC;IACD;IACN;;;EAuIN;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAc4B;AACxB,YAAO,gDACM,SAAc,SAAwB,gBAC1C,oCACI,+BAAwB,sBACjC,uBAAiB,WAAW,EAAE,OAAO,GACrC,kCACW,qCACK,AAAY,WAAD,mBACZ,AAAY,WAAD,0GAEb,QAAc,SAAU,eAAS,KAAK,kCACvC,QAAc;AACqB,kBAAzC,AAAM,AAAgB,0CAAc;qGAE1C,qCACiB,QAAgB,SAAU,eAAS,KAAK,2CACtC,QAAkB,SAAU,iBAAW,KAAK,qCACpD,iEACU,4CACA,4BACN,+DAEI,uBAAiB,WAAW,EAAE,OAAO;IAG9D;uBAEuC,aAA0B;AACpC,MAA3B,qBAAe,WAAW;AAC1B,YAAO,kDACI,+DAEI,qBAAe,WAAW,EAAE,OAAO;IACpD;qBAEmC;AACnB,kBAAQ,AAAY,WAAD;AACnB,mBAAS,AAAY,WAAD;AACuC,MAAzE,AAAM,AAAY,6CAA0B,qBAAS,KAAG,wBAAG,KAAK,sBAAE,MAAM;AACvD,mBAAS,AAAM;AAKQ,MAJxC,AAAM,AAAY,wCAAqB,qBACnC,AAAO,MAAD,OACN,AAAO,MAAD,yBACe,WAAf,WAAN,KAAK,QAAG,AAAO,MAAD,gBAAS,AAAO,MAAD,6BACT,WAAb,WAAP,MAAM,QAAG,AAAO,MAAD,cAAO,AAAO,MAAD;IAClC;qBAEqC,aAA0B;AACzC,MAApB;AACsB,MAAtB;AACqB,MAArB,sBAAe;AACQ,MAAvB,wBAAiB;AACe,MAAhC,0BAAoB,WAAW;AACO,uBAAtC,qBAAY,AAAQ,OAAD;AACS,MAA5B,AAAM,8BAAkB;AACxB,YAAO,qCAAiB,+BAAgB,AAAM,AAAY;IAC5D;;AAGE,oBAAI,AAAM,AAAa,AAAc;AACE,gDACjC,AAAM,AAAa,AAAa,8CAAC;AACrC,iBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,AAAc,MAAf,2BAAuB,IAAA,AAAC,CAAA;AAChD,wBAAI,AAAO,AAAa,AAAI,MAAlB,uBAAe,CAAC;AACwB,YAAhD,AAAM,AAAa,qDAA2B,CAAC;;;;IAIvD;;;AAGgB;AACI;AAClB,eAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAM,AAAa,AAAc,kDAAQ,IAAA,AAAC,CAAA;AAChB,sBAA5C,2BAAS,AAAM,AAAa,AAAa,8CAAC,CAAC;AACW,QAAtD,AAAM,AAAa,sDAA4B;AAC/C,YAAI,AAAO,iCAAqB;AAC9B,wBAAI,AAAO,AAA2B;AACpC,qBAAS,QAAQ,GACb,AAAM,KAAD,gBAAG,AAAO,AAA2B,kDAC1C,QAAA,AAAK,KAAA;AAE2C,cADlD,AAAM,AAAY,AACb,4CAAI,AAAO,AAA0B,8CAAC,KAAK;;;;AAItD,YAA6B,aAAzB,AAAO,iCAAoB,gBAC1B,AAAM,AAAY,oDACf,AAAM,AAAY,uDAClB,AAAM,AAAY;AAEoC,UAD5D,AAAM,AAAY,AAAoB,uDAClC,qCAAuB,AAAO,AAAkB;AAgB3C,UAfT,kBACI,AAAoC,kCAAf,UAAU,oBAAa,4CACtC,AAAM,AAAY,uEAEzB,qBAAkB,QAAiB;AAC9B,gBAAW,YAAP,MAAM,EAAoB;AACa,cAAzC,AAAM,AAAY,2CAAmB;AACrC,kBAAI,AAAM,AAAY,2CAAmB;AACS,gBAAhD,AAAM,AAAY,AAAgB,AAAM;;AAE1C,kBAAI,AAAM,AAAY,2CAAkB,QACpC,AAAM,AAAY,AAAe,iDAAS;AACW,gBAAvD,AAAM,AAAY,AAAe,AAAM;;;;AAQjD,UAJF,AAAM,AAAY,gDACd,AAAoC,kCAAf,UAAU,cAAa,4CACtC,AAAM,AAAY;AAG4B,UAAxD,AAAM,AAAY,AAAoB,2DAAc;;AAEX,UAAzC,AAAM,AAAY,2CAAmB;;AAQe,QANtD,gBAAgB,2CACL,yBACM,CAAC,aACH,AAAO,iDACG,AAAM,AAAY,8DACtB,eAAe,YACtB,AAAM,AAAY;AAEqC,QADrE,AAAM,AAAY,AACb,6CAAI,sCAAuB,oCAAqB,aAAa;AAKrB,QAJ7C,AAAM,AAAY,0CAAkB,sDACnB,kBACkB,aAAzB,AAAO,iCAAoB,IAC3B,QACA,AAAM,AAAY;AAC0C,QAAtE,AAAM,AAAY,AAAc,6CAAI,AAAM,AAAY;;IAE1D;0BAEwC;AACtC,oBAAI,AAAM,AAAgB;AACxB,YAAI,AAAM,AAAgB,sCAAW;AAE6B,UADhE,AAAM,AAAgB,+CAAmB,uCAC/B,iBAAiB,AAAM,AAAY;AAEG,UADhD,AAAM,AAAY,AACb,6CAAI,AAAM,AAAgB;;AAGc,UAD7C,AAAM,AAAgB,0CAClB,mDAAmC;AACgC,UAAvE,AAAM,AAAY,AAAc,6CAAI,AAAM,AAAgB;;;IAGhE;iBAOiC;;AAEU,MAAzC,AAAM,AAAgB,0CAAc;AACE,MAAtC,AAAM,AAAY,wCAAgB;AACsC,MAAxE,AAAM,AAAY,wCAAe,AAAU,6BAAc,AAAM,KAAD;AACzD;AAED;AACiC,8CACjC,AAAM,AAAa,AAAa,8CAAC;AACrC,eAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,AAAc,MAAf,2BAAuB,IAAA,AAAC,CAAA;AAChD,sBAAI,AAAO,AAAa,AAAI,MAAlB,uBAAe,CAAC;AAE+C,UADvE,UAAU,yBACN,AAAO,AAAa,AAAI,MAAlB,uBAAe,CAAC,cAAc,AAAM,AAAY;AAC1D,wBAAI,OAAO;AACK,YAAd,aAAa,CAAC;AACd;;;;AAI4C,MAAlD,yBAAoB,AAAM,AAAY;AACtC,UAAI,AAAM,AAAY,yCAAgB,QAAQ,OAAO,IAAI,kBAAQ,OAAO;AAMrE,QALD,AAAM,AAAY,wCAAgB,iCAChC,0BACA,UAAU,GACV,AAAM,AAAa,AAAa,8CAAC,gBACjC,AAAM,AAAa,AAAa,AAAc,AAAa,8CAA1B,gDAA2B,UAAU;;AAGnB,oBAArD,AAAM,yCAAA,OAAiB;sBAAjB,OAAmC,WAAO;AACiB,+BAAjE,AAAM,2CAAA,OAAiB,wCAAjB,OAAmC;uBAAnC,OAA0C;;IAEpD;;AAIE,UAAI,0BAAqB,QAAQ,AAAM,AAAY,yCAAiB;AACxD,yBAAa,AAAM,AAAY,AAAc;AAMpB,QALnC,AAAM,AAAY,wCAAgB,iCAC9B,0BACA,UAAU,GACV,AAAM,AAAa,AAAa,8CAAC,gBACjC,AAAM,AAAa,AAAa,AAC3B,AAAa,8CADe,gDACd,UAAU;AACjC,YAAI,AAAM,AAAY,yCAAiB;AACrC,cAA0D,YAAf,WAAvC,AAAM,AAAY,AAAc,iEACjB;AAC2B,YAA5C,AAAM,AAAa,wCAAc,UAAU;;;AAIiB,QADhE,AAAM,AACD,gDAAsB,UAAU,EAAiB;AACtD,sBAAI,AAAM,AAAgB,sCACe,YAArC,AAAM,AAAgB,2CAAiC;AAEY,UADrE,AAAM,AAAgB,uCAClB,AAAkB,AAAG,wCAAY,AAAkB,AAAG;;;IAGhE;;AAIE,UAAI,AAAM,AAAY,yCAAgB,QAClC,AAAM,AAAY,yCAAiB;AAC3B,yBAAa,AAAM,AAAY,AAAc;AAOvC,QANhB,AAAM,AAAY,wCAAgB,iCAC9B,0BACA,UAAU,GACV,AAAM,AAAa,AAAa,8CAAC,gBACjC,AAAM,AAAa,AAAa,AAC3B,AAAa,8CADe,gDACd,UAAU,IAC7B;AAE4D,QADhE,AAAM,AACD,gDAAsB,UAAU,EAAiB;AACtD,YAAI,AAAM,AAAY,yCAAiB;AACrC,cAA0D,YAAf,WAAvC,AAAM,AAAY,AAAc,iEACjB;AAC2B,YAA5C,AAAM,AAAa,wCAAc,UAAU;;;AAG/C,sBAAI,AAAM,AAAgB,sCACe,YAArC,AAAM,AAAgB,2CAAiC;AAGR,UAFjD,AAAM,AAAgB,uCAClB,AAAM,AAAY,AAAa,AAAG,uDAClC,AAAM,AAAY,AAAa,AAAG;;;IAG5C;eAE6B;;AACc,MAAzC,AAAM,AAAgB,0CAAc;AACoC,MAAxE,AAAM,AAAY,wCAAe,AAAU,6BAAc,AAAM,KAAD;AAC9D,UAAI,AAAM,AAAY,yCAAgB;AACpC,YAAI,AAAM,AAAY,yCAAiB,QACnC,AAAM,AAAY,AAAc,gDAAU,QACY,YAAf,WAAvC,AAAM,AAAY,AAAc,iEACb;AAEyC,UAD9D,AAAM,AACD,wCAAc,AAAM,AAAY,AAAc;;AAErD,YAAI,AAAM,AAAY,yCAAgB,QAClC,AAAM,AAAY,yCAAiB;AAGR,UAF7B,AAAM,AAAa,gDACf,AAAM,AAAY,AAAc,kDACjB;;AAErB,sBAAI,AAAM,AAAgB,sCACe,YAArC,AAAM,AAAgB,2CAAiC,oCACvD,AAAM,AAAY,yCAAiB,QACnC,AAAM,AAAY,AAAc,gDAAU;AAC5C,cAAI,AAAM,AAAgB,sCAAW;AACE,yDACjC,AAAM,AAAY,AAAc;AACX,gDACrB,AAAM,AAAY,AAAc;AACvB,2BAAW,AAAM,KAAD;AAEoB,YADjD,AAAM,AAAgB,AAAiB,oDAC9B,qBAAS,AAAS,QAAD,KAAK,AAAS,QAAD,KAAK,KAAG;AAQI,YAPnD,AAAM,AAAgB,AAAiB,wDACnC,AAAM,AAAgB,mCAClB,AACK,AAAU,WADJ,mBACK,AAAM,AAAY,AAAc,mDAChD,KAAK,EACL,WAAW,EACX,AAAM,AAAY,AAAc,mDAChC,AAAM,AAAY,AAAc;AACU,YAAlD,AAAM,AAAgB,AAAiB,oDAAO;AACkB,wBAAhE,AAAM,AAAgB,2DAAA,OAAkB;0BAAlB,OAAyB;;AAGlC,2BAAW,AAAU,6BAAc,AAAM,KAAD;AAES,YAD9D,AAAM,AACD,qCAAU,AAAS,AAAG,QAAJ,kBAAgB,AAAS,AAAG,QAAJ;;;;AAIhB,MAArC,AAAM,AAAY,wCAAe;IACnC;eAE2B;;AACa,MAAtC,AAAM,AAAY,wCAAgB;AACsC,MAAxE,AAAM,AAAY,wCAAe,AAAU,6BAAc,AAAM,KAAD;AACzD;AAED;AACiC,8CACjC,AAAM,AAAa,AAAa,8CAAC;AACrC,eAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,AAAc,MAAf,2BAAuB,IAAA,AAAC,CAAA;AAChD,sBAAI,AAAO,AAAa,AAAI,MAAlB,uBAAe,CAAC;AAE+C,UADvE,UAAU,yBACN,AAAO,AAAa,AAAI,MAAlB,uBAAe,CAAC,cAAc,AAAM,AAAY;AAC1D,wBAAI,OAAO;AACK,YAAd,aAAa,CAAC;AACd;;;;AAIN,UAAI,AAAM,AAAY,yCAAgB,kBAAQ,OAAO;AAMlD,QALD,AAAM,AAAY,wCAAgB,iCAChC,0BACA,UAAU,GACV,AAAM,AAAa,AAAa,8CAAC,gBACjC,AAAM,AAAa,AAAa,AAAc,AAAa,8CAA1B,gDAA2B,UAAU;;AAGnB,oBAArD,AAAM,yCAAA,OAAiB;sBAAjB,OAAmC,WAAO;AACiB,+BAAjE,AAAM,2CAAA,OAAiB,wCAAjB,OAAmC;uBAAnC,OAA0C;;AAElD,UAAI,AAAM,AAAY,yCAAgB;AACpC,sBAAI,AAAM,AAAgB,sCACtB,AAAM,AAAY,yCAAiB,QACnC,AAAM,AAAY,AAAc,gDAAU;AACJ,UAAxC,AAAM,AAAgB,0CAAc;AACvB,yBAAW,AAAU,6BAAc,AAAM,KAAD;AAEO,UAD5D,AAAM,AACD,mCAAQ,AAAS,AAAG,QAAJ,kBAAgB,AAAS,AAAG,QAAJ;;AAEY,4DAAzD,OAAO,sCAAP,OAAwB;yBAAxB,OAAkC,wBAAmB;AACO,4DAA5D,OAAO,sCAAP,OAAwB;yBAAxB,OAAkC,2BAAsB;AAChB,8DAAxC,OAAO,uCAAP,OAAwB;0BAAxB,OAAkC;;;AAGD,MAArC,AAAM,AAAY,wCAAe;IACnC;;;QA5VsB;;IAES;IACrB;IACF;IACO;IACR;IANe;AAAtB;;EAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzd4B,MAAvD,qBAAqD;AACJ,MAAjD,AAAM,AAAO,kCAAkC;AAGL,0BAAgB,AAAM;AAE5B,MAApC,AAAc,aAAD,iBAAe;AACd,mBAAS,AAAc,aAAD;AACtB,mBAAS,AAAc,aAAD;AAEpC,eAAS,aAAa,GAClB,AAAW,UAAD,gBAAG,AAAc,AAAW,aAAZ,uBAC1B,aAAA,AAAU,UAAA;AACZ,YAAU,WAAN,MAAM,GAAC,UAAU,MAAK;AAE4C,UADpE,AAAc,AACT,aADQ,qBACJ,yBAAyB,WAAN,MAAM,GAAC,UAAU,oBAAS,WAAN,MAAM,GAAC,UAAU;;;AAGtC,MAA/B,AAAc,yBAAI,AAAM;IAC1B;kCAEgE;AAC9D,eAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,AAAY,MAAb,0BAAqB,IAAA,AAAC,CAAA;AAC9C,YAAI,AAAO,AAAW,AAAI,AAAE,MAAlB,sBAAa,CAAC,OAAO,MAC7B,AAAO,AAAkD,MAAnD,0BAA0B,CAAC,EAAE,AAAO,AAAW,MAAZ,sBAAa,CAAC;;IAE7D;;AAGE,eAAyC,SAAU;AAC3B,QAAtB,qBAAgB,MAAM;AACoB,QAA1C,6DAA4B;AACH,QAAzB;AACgB,QAAhB;AACkB,QAAlB;;IAEJ;;AAGiC,mBAAS,AAAc;AACH,MAAnD,AAAM,AAAO,mCAAoC;AACjD,eAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,MAAD,YAAS,IAAA,AAAC,CAAA;AAClC,sBAAI,AAAM,AAAI,MAAJ,QAAC,CAAC;AAC+B,UAAzC,AAAM,AAAO,AAAc,uCAAI,AAAM,MAAA,QAAC,CAAC;;;IAG7C;;;AAGoB,oBAAU,AAAM;AACpB,uBAAa,AAAc;AAChB,kBAAQ,AAAc;AACjC,wBAAc,AAAc;AACX,mBAAS,AAAc;AACtD,eAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,MAAD,YAAS,IAAA,AAAC,CAAA;AACf;AACK,QAAxB,eAAe,AAAM,MAAA,QAAC,CAAC;AAG2B,QAFlD,AAAa,YAAD,QAAC,gBAA4B,UAArB,AAAa,YAAD,aAAY,AAAM,KAAD,UAAU,OACrD,AAAM,KAAD,UACS,KAAJ,WAAV,UAAU,GAAC,CAAC,UAAF,OAAO,AAAO,OAAA,QAAC,AAAE,CAAD,UAAG,AAAQ,OAAD;AACJ,QAAtC,AAAa,YAAD,SAAS,AAAa,YAAD;AAIE,QAHnC,AAAa,YAAD,eACa,UAArB,AAAa,YAAD,aAAY,AAAM,KAAD,gBAAgB,OACvC,AAAM,KAAD,eACL,AAAc;AAIW,QAHnC,AAAa,YAAD,eACa,UAArB,AAAa,YAAD,aAAY,AAAM,KAAD,gBAAgB,OACvC,AAAM,KAAD,eACL,AAAc;AAGM,QAF9B,AAAa,YAAD,eAAe,AAAa,AAAY,YAAb,iBAAgB,IAC1C,6BACP,AAAa,YAAD;AAMK,QAJvB,AAAa,YAAD,QAAC,mBAAO,AAAa,AAAK,YAAN,SAAS,OACnC,AAAY,WAAD,IAAI,QACI,MAAJ,WAAX,WAAW,GAAC,CAAC,WAAF,OAAsB,cAAf,AAAa,YAAD,aACf,cAAf,AAAa,YAAD,MAChB,AAAa,YAAD;AAElB,YAAI,AAAM,AAAO,uCAAqB;AACF,8BAC9B,AAAM,AAAY;AACtB,wBAAI,AAAc,aAAD;AACf,qBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAc,aAAD,YAAS,IAAA,AAAC,CAAA;AACb,yBAAO,AAAa,aAAA,QAAC,CAAC;AAClD,kBAAI,AAAE,CAAD,KAAI,AAAK,IAAD;AACmB,gBAA9B,AAAa,YAAD,aAAa;AACzB;;;;;AAKN,wBAAI,AAAM,AAAY,AAAmB;AACvC,qBAAS,IAAI,GACT,AAAE,CAAD,gBAAG,AAAM,AAAY,AAAmB,sDACzC,IAAA,AAAC,CAAA;AACwB,wCACvB,AAAM,AAAY,AAAkB,kDAAC,CAAC;AAC1C,kBAAI,AAAE,CAAD,KAAI,AAAoB,mBAAD;AACI,gBAA9B,AAAa,YAAD,aAAa;AACzB;;;;;;IAMZ;;;AAGgC,MAA9B,AAAc,mCAAe;AAC7B,eAAwB,QAAS,AAAc;AAC7C,sBAAI,AAAM,KAAD;AACoC,eAA3C;UAAc,mBAAa,aAAb,oBAAgB,AAAM,AAAE,KAAH;;;IAGzC;kCAEqE;AACxD,0BAAgB,AAAM,AAAY;AAClC,oBAAU,AAAO,AAAY,MAAb,mBAAgB,YAAY,OAAO;AAGM,MAFpE,AAAO,MAAD,kBAAiB,gBACnB,AAAmD,uBAAnC,AAAO,MAAD,QAAQ,AAAc,aAAD,sBAC3C,AAAqD,uBAArC,AAAO,MAAD,SAAS,AAAc,aAAD;AAGwB,MAFxE,AAAO,MAAD,cAAa,gBACf,AAAuD,uBAAvC,AAAO,MAAD,YAAY,AAAc,aAAD,sBAC/C,AAAyD,uBAAzC,AAAO,MAAD,aAAa,AAAc,aAAD;AAEU,MAD9D,AAAO,MAAD,qBACF,uBAAgB,AAAO,MAAD,gBAAgB,AAAc,aAAD;AAClB,MAArC,2BAAqB,MAAM,EAAE,OAAO;IACtC;2BAE8D,QACpD;AACuB,mBAAS,AAAO,MAAD;AACvC;AACM,qBAAW,sBAAI,sBAAI,AAAO,MAAD,WAAW,MAAI;AACxC,kBACT,AAAE,KAAuB,aAApB,AAAO,MAAD,mBAAiB,AAAE,IAAE,AAAS,QAAD,IAAI,AAAE,IAAE,QAAQ;AAC/C,oBAAU,AAAS,QAAD,IAAkB,aAAd,AAAO,MAAD,aAAU;AAC9C,MAAL,IAAI;AACA;AACA;AACJ,eAAS,IAAkB,aAAd,AAAO,MAAD,aAAU,GAAG,AAAE,CAAD,IAAI,GAAG,IAAA,AAAC,CAAA;AACI,QAA3C,kBAAQ,OAAO,IAAiB,AAAI,aAAlB,AAAO,MAAD,aAAU,IAAI,CAAC,GAAG,CAAC;AAC3C,sBAAI,AAAM,AAAQ,MAAR,mBAAC,KAAK;AACkB,UAAhC,SAAS,AAAM,KAAD,gBAAG,AAAM,AAAQ,MAAR,mBAAC,KAAK;AACL,UAAxB,AAAM,AAAQ,MAAR,mBAAC,KAAK,YAAW,CAAC;AACU,UAAlC,AAAM,AAAQ,MAAR,mBAAC,KAAK,iBAAgB,MAAM;AACb,UAArB,IAAE,aAAF,CAAC,KAAW,aAAP,MAAM,IAAG,OAAO;;;IAG3B;4BAEkC,YAA+B;AAC5C,uBAAa,AAAM,KAAD;AAC3B,mBACN,AAAW,UAAD,KAAI,WAA6B,aAAlB,AAAW,UAAD,aAAU,IAAsB,aAAlB,AAAW,UAAD,aAAU;AAC/D,cAA+C,CAAzB,aAAjB,AAAU,AAAI,UAAJ,QAAC,sBAAQ,AAAU,AAAS,UAAT,mBAAC,MAAM,UAAQ;AACjD,kBAAuD,CAA7B,aAAjB,AAAU,AAAI,UAAJ,QAAC,sBAAQ,AAAU,AAAa,UAAb,mBAAC,AAAO,MAAD,GAAG,WAAS;AAEtB,MAD7C,AAAM,KAAD,UAAe,qBAAS,CAAC,EAAE,AAAU,AAAI,UAAJ,QAAC,OAAO,AAAM,KAAD,GAAG,CAAC,EACjC,aAAtB,AAAU,AAAS,UAAT,mBAAC,MAAM,sBAAO,AAAU,AAAI,UAAJ,QAAC;AAEQ,MAD/C,AAAM,KAAD,kBAAkB,kBAAyB,aAAlB,AAAM,AAAO,KAAR,gBAAkC,aAAnB,AAAM,AAAO,KAAR,iBAAgB,GAClD,aAAjB,AAAM,AAAO,KAAR,eAAkC,aAApB,AAAM,AAAO,KAAR,kBAAiB;IAC/C;oBAEuB;;AAChB,gCAAsB;AACU,8CACjC,AAAM,AAAa,AAAa,8CAAC;AACZ,kBAAQ,AAAO,AAAa,MAAd,kCAAe,UAAU;AAChE,oBAAI,AAAO,MAAD;AACR,sBAAI,AAAM,AAAY,AAAe;AACT,UAA1B,sBAAsB;AACZ,8BAAgB,AAAM,AAAY,AAAc,8CAAC;AACJ,UAAvD,AAAO,AAAa,AAAgB,MAA9B,uBAAe,aAAa,oBAAoB;AAEO,UAD7D,AAAM,KAAD,mBACD,AAAc,aAAD,IAAI,UAAU,GAAG,IAAI,AAAO,MAAD;AACI,UAAhD,AAAM,AAAY,AAAc,8CAAC,cAAK,UAAU;AAChD,cAAI,AAAc,aAAD,IAAI,UAAU;AACa,YAA1C,AAAM,AAAY,yCAAsB;;AAEK,eAA/C,AAAM,AAAY;UAAsB,WAAK,aAAL,YAAK;;AAE/C,aAAK,mBAAmB;AACyB,UAA/C,AAAM,KAAD,mBAAmB,AAAO,MAAD;AACkB,UAAhD,AAAM,AAAY,AAAe,wDAAI,UAAU;AACA,gBAA/C,AAAM,AAAY;UAAsB,YAAK,aAAL,aAAK;;AAET,QAAtC,iCAA2B,UAAU;;IAEzC;iCAEoC;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,iBAAO,AAAc;AAElB,yBAAe,AAAc,AAAa,oDAAC,UAAU;AAC/B,MAAvB,UAAb,YAAY,gBAAsB;AACxB,uCAIO,WAJoB,AAAgB,WAA7B,YAAY,wBAAoB,OACjC,WAAb,YAAY,iCACZ,iCAAe,UAAU,GAAE,oBAAe,eACtC,AAAc,uCACd,SAEiC,CADC,aAA3C,AAAM,AAAY,AAAmB,iEAC9B,AAAc,AAAc,4CAChC;AACE,6BACK,aAAX,UAAU,iBAAG,AAAM,AAAY,AAAmB;AAC5C,sBAAqD,aAAzC,AAAM,AAAY,AAAmB,kDACK,CAAf,aAA5C,AAAM,AAAY,AAAmB,kEAAS,AAAK,IAAD,YAAW;AAC3B,YAAvC,gBAA0B,WAAP,WAAb,YAAY,mBAAU,AAAK,IAAD;AACqB,MAArD,SAAa,aAAJ,GAAG,iCAA4B,WAAZ,WAAb,YAAY,wBAAe,AAAK,IAAD;AACnC,qBAAW,AAAc;AAIQ,MAH5C,YAA2B,aAAf,AAAS,QAAD,UACc,CAAlB,aAAX,AAAK,IAAD,uBAAS,AAAS,QAAD,YACqB,CAAzB,AAAkB,aAA9B,AAAK,IAAD,wBAAU,AAAS,QAAD,wBAAU,GAAG,MACpB,aAAZ,AAAK,IAAD,wBAAU,AAAS,QAAD;AACS,MAA5C,YAAwB,AAAK,aAAhB,AAAK,IAAD,UAAS,IAAe,aAAV,SAAS,IAAG;AACb,MAA9B,SAAmB,aAAV,SAAS,iBAAG,SAAS;AAC9B,UAAW,aAAP,MAAM,IAAe,aAAZ,AAAK,IAAD,wBAAU,AAAS,QAAD,YAC/B,AAAK,AAAO,IAAR,WAAW,AAAS,QAAD;AACC,QAA1B,YAAY,AAAS,QAAD;;AAKwB,QAH5C,YAA2B,aAAf,AAAS,QAAD,UACc,CAAlB,aAAX,AAAK,IAAD,uBAAS,AAAS,QAAD,YACwB,CAA5B,AAAkB,aAA9B,AAAK,IAAD,wBAAU,AAAS,QAAD,wBAAU,MAAM,MACvB,aAAZ,AAAK,IAAD,wBAAU,AAAS,QAAD;;AAEY,MAAjD,eAA2B,AAAK,aAAhB,AAAK,IAAD,UAAS,IAAgB,aAAV,SAAS,IAAG;AACX,MAApC,YAAyB,aAAb,YAAY,iBAAG,SAAS;AACpC,UAAQ,aAAJ,GAAG,KAAgB,aAAZ,AAAK,IAAD,wBAAU,AAAS,QAAD;AAEqC,QADpE,YACI,eAAe,YAAwB,AAAK,aAAhB,AAAK,IAAD,UAAS,IAAoB,aAAf,AAAS,QAAD,UAAS;AACA,QAAnE,SAAS,YAAY,SAAqB,AAAK,aAAhB,AAAK,IAAD,UAAS,IAAoB,aAAf,AAAS,QAAD,UAAS;YAC7D,KAAW,aAAP,MAAM,IAAgB,aAAZ,AAAK,IAAD,wBAAU,AAAS,QAAD;AACkB,QAA3D,YAAY,eAA2B,AAAK,aAAhB,AAAK,IAAD,UAAS,IAAe,aAAV,SAAS,IAAG;AAChB,QAA1C,SAAS,YAAsB,aAAV,SAAS,iBAAG,SAAS;AACH,QAAvC,UAAsB,aAAZ,AAAK,IAAD,wBAAU,AAAS,QAAD;;AAElB,MAAhB,MAAI,aAAJ,GAAG,IAAI,SAAS;AACG,MAAnB,SAAO,aAAP,MAAM,IAAI,SAAS;AACuC,MAA1D,UAAW,AAAQ,OAAD,IAAI,OAAiB,aAAR,OAAO,IAAG,SAAS,GAAI;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC0C,MAA9C,SAAS,AAAiB,AAAS,gBAAV,oBAAY,SAAS;AAClC,MAAZ,SAAS,GAAG;AAC+B,MAA3C,SAAS,AAAiB,AAAS,gBAAV,oBAAY,MAAM;AAC/B,MAAZ,SAAS,GAAG;AACkC,MAA9C,SAAS,AAAiB,AAAS,gBAAV,oBAAY,SAAS;AAC/B,MAAf,SAAS,MAAM;AACkC,MAAjD,SAAS,AAAiB,AAAS,gBAAV,oBAAY,YAAY;AAClC,MAAf,SAAS,MAAM;AAC+B,MAA9C,SAAS,AAAiB,AAAS,gBAAV,oBAAY,SAAS;AAC/B,MAAf,SAAS,MAAM;AACkC,MAAjD,SAAS,AAAiB,AAAS,gBAAV,oBAAY,YAAY;AAClC,MAAf,SAAS,MAAM;AACf,UAAI,OAAO,IAAI;AAC8B,QAA3C,SAAS,AAAiB,AAAS,gBAAV,oBAAY,MAAM;AAC3B,QAAhB,SAAS,OAAO;AAEqD,QADrE,SACI,AAAiB,AAAS,gBAAV,oBAAc,AAAU,SAAD,IAAI,OAAQ,SAAS,GAAG;AACnD,QAAhB,SAAS,OAAO;;AAEiC,MAA3B,WAAX,WAAb,YAAY,yBAAgB,kBAAO,MAAM,EAAE,MAAM;AACE,MAA3B,WAAX,WAAb,YAAY,yBAAgB,kBAAO,MAAM,EAAE,MAAM;AACE,MAA3B,WAAX,WAAb,YAAY,yBAAgB,kBAAO,MAAM,EAAE,MAAM;AACE,MAA3B,WAAX,WAAb,YAAY,yBAAgB,kBAAO,MAAM,EAAE,MAAM;AACE,MAA3B,WAAX,WAAb,YAAY,yBAAgB,kBAAO,MAAM,EAAE,MAAM;AACE,MAA3B,WAAX,WAAb,YAAY,yBAAgB,kBAAO,MAAM,EAAE,MAAM;AACa,MAA9D,4BAAsB,AAAc,0DAAa,YAAY;IAC/D;+BAEqC,QAAY;AACT,MAAtC,iCAA2B,UAAU;AACvB,yBAAe,AAAc,AAAa,oDAAC,UAAU;AACxD,iBAAO;AACuD,MAAzE,AAAK,IAAD,2BAAmC,WAAJ,WAAV,WAAb,YAAY,0BAAY,gCAAkC,WAAJ,WAAV,WAAb,YAAY,0BAAY;AACM,MAAzE,AAAK,IAAD,2BAAmC,WAAJ,WAAV,WAAb,YAAY,0BAAY,gCAAkC,WAAJ,WAAV,WAAb,YAAY,0BAAY;AACM,MAAzE,AAAK,IAAD,2BAAmC,WAAJ,WAAV,WAAb,YAAY,0BAAY,gCAAkC,WAAJ,WAAV,WAAb,YAAY,0BAAY;AACM,MAAzE,AAAK,IAAD,2BAAmC,WAAJ,WAAV,WAAb,YAAY,0BAAY,gCAAkC,WAAJ,WAAV,WAAb,YAAY,0BAAY;AACM,MAAzE,AAAK,IAAD,2BAAmC,WAAJ,WAAV,WAAb,YAAY,0BAAY,gCAAkC,WAAJ,WAAV,WAAb,YAAY,0BAAY;AACM,MAAzE,AAAK,IAAD,2BAAmC,WAAJ,WAAV,WAAb,YAAY,0BAAY,gCAAkC,WAAJ,WAAV,WAAb,YAAY,0BAAY;AACvD,MAAZ,AAAK,IAAD;AACJ,UAAI,AAAW,UAAD,KAAuC,aAAnC,AAAc,AAAc,8CAAS;AACG,QAAxD,AAAc,8CAA0B,AAAK,IAAD;;AAEP,MAAvC,oBAAc,MAAM,EAAE,IAAI,EAAE,UAAU;IACxC;oBAE0B,QAAa,MAAU;AACjC,kBAAQ,AAAc,AAAa,oDAAC,UAAU;AACxC,kBAChB,gCAAe,UAAU,8BAAE,qBAAe,oCAAO,KAAK;AAE9C,sCACR,AAAc,KAAT,IAAI,QAAQ,AAAM,KAAD,SAAS,OAAO,AAAM,KAAD,QAAc,WAAN,KAAK;AAEhD,wCAAc,AAAc,KAAT,IAAI,QAAQ,AAAM,KAAD,gBAAgB,OAC1D,AAAM,KAAD,eACC,WAAN,KAAK;AAEE,2CAAc,AAAc,KAAT,IAAI,QAAQ,AAAM,KAAD,gBAAgB,OAC3D,AAAM,KAAD,eACC,WAAN,KAAK;AAEE,oBAAU,AAAc,KAAT,IAAI,QAAQ,AAAM,KAAD,YAAY,OACnD,AAAM,KAAD,WACL,AAAc;AASX,MAPT,iBACI,MAAM,EACN,6BACI,SAAS,YACT,AAAM,AAAY,4CAAmB,WAAW,GAAG,GACnD,WAAW,EACX,OAAO,GACX,IAAI;IACV;4BAE+B,YAA2B;;AACnD,mCAAyB;AAChB,mBAAS,AAAM,AAAa,AAAa,8CAAC;AACxD,qBAA6B,WAAlB,WAAP,MAAM,sCAAkC,YAAL,IAAI,EAAI,AAAM;AACnD,sBAAI,AAAM,AAAY,AAAc;AAClC,mBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAM,AAAY,AAAc,iDAAQ,IAAA,AAAC,CAAA;AACjD,iCAAiB,AAAM,AAAY,AAAa,6CAAC,CAAC;AAC5D,2BAAK,AAAM;AAG2B,cAFpC,yBACI,AAAM,AAAY,AAAc,AAAO,AAAK,mDAAF,KACtC,AAAW,UAAD,IAAI,cAAc;AACO,cAA3C,AAAM,AAAY,AAAc,iDAAS,CAAC;AACK,mBAA/C,AAAM,AAAY;cAAsB,WAAK,aAAL,YAAK;kBACxC,KAAI,AAAW,UAAD,IAAI,cAAc;AACM,cAA3C,AAAM,AAAY,AAAc,iDAAS,CAAC;AACb,cAA7B,yBAAyB;AACsB,oBAA/C,AAAM,AAAY;cAAsB,YAAK,aAAL,aAAK;AAC7C;;;;AAIN,aAAK,sBAAsB;AACsB,UAA/C,AAAM,AAAY,AAAc,uDAAI,UAAU;AACC,iBAA/C,AAAM,AAAY;UAAsB,aAAK,aAAL,cAAK;;;IAGnD;qBAGQ,mBAC2B,QACjB,OACK;AACP;AACU,sBAAY,AAAO,MAAD;AAE1C,oBAAI,AAAU,SAAD;AACX,sBAAI,AAAM,AAAY,AAAc,KAA3B;AACP,cAAI,AAAM,KAAD,uBAAuB;AAEqC,YADnE,AAAM,KAAD,oBACD,6BAAuB,MAAM,KAAe,iBAAiB;;AAEnE,mBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAM,AAAY,AAAc,KAA3B,uCAAmC,IAAA,AAAC,CAAA;AACjD,iCAAiB,AAAM,AAAY,AAAa,KAA1B,mCAA2B,CAAC;AAC5D,gBAAI,AAAkB,iBAAD,IAAI,cAAc;AAWP,cAV9B,aAAa,6BACT,AAAe,wBAAG,OACZ,AAAe,qCACf,AAAU,SAAD,gBACf,AAAe,wBAAG,OACZ,AAAe,2CACf,AAAU,SAAD,sBACf,AAAe,wBAAG,OACZ,AAAe,2CACf,AAAU,SAAD,sBACf,AAAU,SAAD;AACb;kBACK,KAAI,AAAE,CAAD,KAA2C,aAAvC,AAAM,AAAY,AAAc,KAA3B,wCAAoC;AAWvB,cAVhC,aAAa,6BACT,AAAe,wBAAG,OACZ,AAAe,uCACf,AAAU,SAAD,kBACf,AAAe,wBAAG,OACZ,AAAe,6CACf,AAAU,SAAD,wBACf,AAAe,wBAAG,OACZ,AAAe,6CACf,AAAU,SAAD,wBACf,AAAU,SAAD;;;;;AAKrB,YAAO,WAAU;IACnB;6BAGY,QAAY,aAAiB;AACvC,UAAI,MAAM,IAAI;AACoB,QAAhC,uBAAiB;AACa,QAA9B,AAAe,8BAAS,MAAM;AAEkB,QADhD,AAAe,2CAAA,gBACc,WAAlB,WAAP,MAAM;AAEsC,QADhD,AAAe,2CAAA,mBACc,WAAlB,WAAP,MAAM;AAC2D,QAArE,AAAe,qCAAA,gBAAyC,WAAlB,WAAP,MAAM;AAEa,QADlD,AAAe,6CAAA,gBACc,WAAlB,WAAP,MAAM;AAEwC,QADlD,AAAe,6CAAA,mBACc,WAAlB,WAAP,MAAM;AAC+D,QAAzE,AAAe,uCAAA,gBAA2C,WAAlB,WAAP,MAAM;AACC,QAAxC,AAAe,mCAAA,WAAc,WAAW;AACF,QAAtC,AAAe,kCAAA,WAAa,UAAU;;AAExC,YAAO;IACT;;;IAzbc;IAEsB;IAEM;IAC5B;;EAPC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MCwED;;;;;;MA2BmB;;;;;;MA2BE;;;;;;MAetB;;;;;;MAeA;;;;;;MAeA;;;;;;MAeA;;;;;;MAeA;;;;;;MAiBA;;;;;;MAcY;;;;;;MAeZ;;;;;;MAeF;;;;;;MAsBU;;;;;;MAgBR;;;;;;MAeD;;;;;;MAmBS;;;;;;MAcG;;;;;;MAgBX;;;;;;MAsBwB;;;;;;MAsBC;;;;;;MAkBzB;;;;;;MAiBW;;;;;;MAiBd;;;;;;MAEA;;;;;;+BAiBF,YAA+B;AACZ,oBAAQ;AACvB,0BAAc,AAAY;AACX,oBAAQ,AAAW,0BAAC,UAAU;AACvD,YAAI,AAAM,AAAE,KAAH,MAAM;AACb,kBAAQ,AAAM,KAAD;;;AAEC,6BAAsB,AAAI,aAAf,UAAU,IAAG,KAAK,IACjC,AAAW,AAAiB,AAAE,0BAAP,aAAX,UAAU,IAAG,QAAQ,OAC7B,IACA,AAAW,AAAiB,0BAAL,aAAX,UAAU,IAAG,OAC7B;AACI,yBAAkB,AAAI,aAAf,UAAU,IAAG,KAAiB,aAAZ,WAAW,IAAG,IAC3C,AAAW,AAAiB,AAAE,0BAAP,aAAX,UAAU,IAAG,QAAQ,OAC7B,IACA,AAAW,AAAiB,0BAAL,aAAX,UAAU,IAAG,OAC7B;AAC+B,cAArC,AAAM,KAAD,KAAuB,AAAM,CAAd,aAAT,QAAQ,iBAAG,IAAI,aAAU;AACd,cAAtB,AAAM,KAAD,aAAa;AACE,cAApB,AAAM,KAAD,WAAW;AAChB;;;;AAEW,cAAX,AAAM,KAAD,KAAK;AACY,cAAtB,AAAM,KAAD,aAAa;AACE,cAApB,AAAM,KAAD,WAAW;AAChB;;;;AAEoB,cAApB,AAAM,KAAD,WAAW;AACO,cAAvB,AAAM,KAAD,aAAa;AAClB;;;;MAGR;;;;UA7fO;UACA;UACA;UACA;UACA;UACA;UACA;UACE;UACA;UACA;UACA;UACA;UACY;UACZ;UACF;UACU;UACT;UACC;UACQ;UACG;UACX;UACA;UACW;UACR;MAwbL;MACkB;MACA;MACrB;MAEC;MACA;MACD;MACC;MAvdE;MACA;MACA;MACA;MACA;MACA;MACA;MAkBS,oBAAY,KAAV,SAAS,QAAT,OAAa;MACd,qBAAa,MAAX,UAAU,SAAV,OAAc;MACpB,kBAAS,OAAP,MAAM,UAAN,OAAU;MACb,iBAAQ,OAAN,KAAK,UAAL,OAAS;MACR,oBAAW,OAAT,QAAQ,UAAR,OAAY;MACJ,8BAAqB,OAAnB,kBAAkB,UAAlB,OAAsB;MAC7B,yBAAgB,OAAd,aAAa,UAAb,OAAiB;MACzB,mBAAU,OAAR,OAAO,UAAP,OAAW;MACN,0BAAiB,OAAf,cAAc,UAAd,OAAiC;MACtC,uBAAc,OAAZ,WAAW,UAAX,OAAsB;MACxB,uBAAc,OAAZ,WAAW,UAAX,OAAe;MACd,0BAAiB,OAAf,cAAc,UAAd,OAAiC;MAChC,6BAAoB,QAAlB,iBAAiB,WAAjB,OAAqB;MACvB,6BAAoB,QAAlB,iBAAiB,WAAjB,OAAqB;MACjC,mBAAU,QAAR,OAAO,WAAP,OAAW;MACM,sCAA6B,QAA3B,0BAA0B,WAA1B,OAAmC;MAC9C,6BAAoB,QAAlB,iBAAiB,WAAjB,OAAqB;AACzC,wDACU,IAAI,cACE,UAAU,gBACR,YAAY,gBACZ,YAAY;IAEpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAydU;UACe;UACE;UACE;UACC;UACrB;UACA;UACA;UACA;UACA;UACA;UACQ;UACI;UACD;UACX;UACA;UACD;UACC;UACF;UACU;UACR;UACW;UACd;UACM;AACP,yDACiB,UAAU,gBACR,QAAK,SAAU,AAAY,YAAA,CAAC,AAAU,UAAA,QAAC,KAAK,GAAG,KAAK,4BACpD,QAAK,SAAU,AAAY,YAAA,CAAC,AAAU,UAAA,QAAC,KAAK,GAAG,KAAK,kCAChD,QAAK,SAAU,AAAiB,gBAAD,IAAI,OAC/C,AAAgB,gBAAA,CAAC,AAAU,UAAA,QAAC,KAAK,GAAG,KAAK,IACzC,sCACW,QAAK,SAAU,AAAgB,eAAD,IAAI,OAC7C,AAAe,eAAA,CAAC,AAAU,UAAA,QAAC,KAAK,GAAG,KAAK,IACxC,4BACA,IAAI,aACC,SAAS,cACR,UAAU,UACd,MAAM,SACP,KAAK,YACF,QAAQ,sBACE,kBAAkB,qBACnB,iBAAiB,kBACpB,cAAc,WACrB,OAAO,eACH,WAAW,eACX,WAAW,qBACL,iBAAiB,WAC3B,OAAO,gBACF,YAAY,kBACV,cAAc,iBACf,aAAa,qBACT,iBAAiB,8BACR,0BAA0B;;IAAC;;;;;;;;;UAsB/C,QAAa;AACyB,oBAAtD,2BAAS,AAAM,AAAa,AAAa,8CAAC;AAC1C,eAAS,aAAa,GAClB,AAAW,UAAD,gBAAG,AAAO,AAAc,sCAClC,aAAA,AAAU,UAAA;AACZ,sBAAI,AAAO,AAAa,AAAa,kCAAZ,UAAU;AACpB,gCACT,AAAgB,wBAAG,OAAO,AAAgB,6BAAQ;AACtD,cAA6B,aAAzB,AAAO,iCAAoB,gBAC1B,AAAM,AAAY;AACR,yBAA8C,AACX,aADzB,AAAM,AAAY,AAAc,0DAC/C,AAAM,AAAY,AAAc,gDACpB,aAAhB,eAAe,KAC0B,aAApC,AAAM,AAAY,AAAc,0DAC7B,AAAM,AAAY,AAAc;AAC/B,yBAA6C,AACf,aADrB,AAAM,AAAY,AAAc,0DAClD,AAAM,AAAY,AAAc,gDAChC,MAAM;AASsC,YARhD,AAAO,MAAD,UAAe,qBACjB,KACoC,AACO,aAD3C,AAAM,AAAY,AAAc,0DAC5B,AAAM,AAAY,AAAc,gDAChC,MAAM,EAC2B,aAArC,AAAM,AAAY,AAAc,2DAC5B,AAAM,AAAY,AAAc,8CACA,aAApC,AAAM,AAAY,AAAc,0DAC5B,AAAM,AAAY,AAAc;;AAEqB,UAA/D,AAAM,AAAa,mDAAyB,MAAM,EAAE,UAAU;;;IAGpE;;wCAGuC;AAAgB;IAAI;;;QAnDpD;QACA;QACA;QACA;QACA;QACc;IAOU;IAZxB;IACA;IACA;IACA;IACA;AAEF,kEAAe,QAAQ;;EAAC;;;;;;;;;;;;;;;;;;MAQH,gCAAK;;;;;;;ACtkBQ;IAA+B;;;QATvC;QAAkB;;IAMnB;IANC;IAAkB;AAAjD;;EAAuD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwBL,MAAhD,gCAA2B,+BAAmB;AAEL,MADzC,iCAAsB,yDAA2B,QAC7C,yBAAY;AACC,MAAX;IACR;;AAIE,UAAI,4BAAuB;AACmC,QAA5D,AAAoB,kDAAe;AACN,QAA7B,AAAoB;AACM,QAA1B,2BAAsB;;AAET,MAAT;IACR;;;AAGkC,WAAhC;MAAyB,WAAK,aAAL,YAAK;IAChC;;AAKI,MAFF,cAAS;AACW,QAAlB,AAAO,mBAAO;;IAElB;UAG0B;AACL,MAAnB,AAAO,oBAAQ;AACiD,MAAhE,AAAoB;AACI,+BACpB,AAAoC,kCAAf,UAAU,cAAa,4CACtC;AAGV,oBAAI,AAAO,AAAY,AAAY;AACK,QAAtC,AAAoB,wCAAc;;AAEpC,YAAO,YAAC,AAAO,oBACT,yFACA,oCACS,oCACM,qDACQ,AAAO,oCACT,kBAAkB,SACtB,gBACG,oDACW;IACvC;;;IA1D0B;IAGN;IAGD;;;EAqDrB;;;;;;;;;;;;;;;;UAoBoB,QAAa;AACQ,mBAAS,AAAY;AAC1D,UAAI,AAAO,MAAD,sBAAsB,kBAC5B,AAAO,AAAkB,MAAnB;AACsD,QAA9D,8BAAuB,MAAM,EAAE,MAAM,EAAE,kBAAa;;IAExD;;4CAG2C;AAAgB;IAAI;;;QAzBrD;QACD;QACA;QACA;QACc;IAJb;IACD;IACA;IACA;AAEH,sEAAe,QAAQ;;EAAC;;;;;;;;;;;;;;;;;;;;;;;;;ICnCjB;;;;;;IAyBQ;;;;;;IAuBE;;;;;;IAuBT;;;;;;IAuBJ;;;;;;IA6BI;;;;;;IA6BA;;;;;;IA4BO;;;;;;IA4BA;;;;;;;;;QArPX;QACS;QACE;QACF;QACA;QACP;QACA;QACH;QACA;IARC;IAOD;IACA;IACY,yBAAiB,KAAf,cAAc,QAAd,OAAiC;IAC3C,iBAAS,MAAP,MAAM,SAAN,OAA2B;IAClC,aAAI,OAAF,CAAC,UAAD,OAAK;gBACP,iBAAI,OAAF,CAAC,UAAD,OAAK;IACW,+BAAsB,OAApB,mBAAmB,UAAnB,OAAsC;IAC1C,6BAAoB,OAAlB,iBAAiB,UAAjB,OAAoC;;EAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IC0EzD;;;;;;IACN;;;;;;IAcU;;;;;;IAeM;;;;;;IAeA;;;;;;IAgBA;;;;;;IAeA;;;;;;IAgBA;;;;;;IAYL;;;;;;IAiBQ;;;;;;IAiBd;;;;;;IAcA;;;;;;IAcA;;;;;;IAeA;;;;;;IAoBqB;;;;;;IAgBpB;;;;;;IAkBA;;;;;;IAmBkB;;;;;;IAYR;;;;;;IAmBF;;;;;;IAmBM;;;;;;IAkBZ;;;;;;IAcA;;;;;;IAsBA;;;;;;IASC;;;;;;IA0BD;;;;;;IAcA;;;;;;IAcF;;;;;;IAac;;;;;;IAYX;;;;;;IAYD;;;;;;IAYF;;;;;;IAcU;;;;;;IAEC;;;;;;IAyBL;;;;;;IAIZ;;;;;;mBAkByB;AACjB,MAAX,aAAO;AACI,MAAX,aAAO;AACiC;AACN;AAC3B,4BAAkB;AACf;AAAQ;AACK,MAAvB,gBAAgB;AAChB,eAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAc,aAAD,YAAS,IAAA,AAAC,CAAA;AAChB,QAAzB,SAAS,AAAa,aAAA,QAAC,CAAC;AACxB,sBAAI,AAAO,MAAD,eACN,AAAO,MAAD,eAAc,QACpB,AAAO,MAAD,eAAc,QACpB,AAAO,MAAD,eAAc,QACpB,AAAO,MAAD,eAAc;AACH,UAAnB,kBAAkB;AACI,UAAtB,SAAS,AAAO,MAAD;AACO,UAAtB,SAAS,AAAO,MAAD;AACf,eAAa,uBAAP,MAAM,KAA2B,sBAAP,MAAM,MAC9B,AAAO,MAAD,iBAAiB,QACH,YAApB,AAAO,MAAD,eAAmC,mCAC5C,AAAO,AAAY,MAAb,0BAAsB,aACzB,AAAO,AAAY,MAAb,0BAAsB;AAE2B,YAD7D,kBAC0D,aAAtD,gCAAyB,MAAM,aAAa,EAAE,iBAAU;;AAE9D,cAAqD,sBAA/C,AAAO,sCAAuB,MAAM,GAAG,MAAM,EAAK,KAAK,KAC5C,YAAb,oBAAgC;AAIS,sBAH3C,AAAO,sCACD,kBAAY,AAAO,MAAD,aAAY,AAAO,MAAD,eACpC,kBAA6B,aAAjB,AAAO,MAAD,eAAa,eAAe,EAC3B,aAAjB,AAAO,MAAD,eAAa,eAAe;;AAG5C,cAAqD,sBAA/C,AAAO,sCAAuB,MAAM,GAAG,MAAM,EAAK,KAAK,KAC5C,YAAb,oBAAgC;AAImB,sBAHrD,AAAO,sCACD,kBAA6B,aAAjB,AAAO,MAAD,eAAa,eAAe,EAC3B,aAAjB,AAAO,MAAD,eAAa,eAAe,IACpC,kBAAY,AAAO,MAAD,aAAY,AAAO,MAAD;;;;IAIlD;kBAGqB,QAAY;AAC/B,UAAI,AAAK,cAAG,QAAa,aAAL,2BAAO,MAAM;AAClB,QAAb,aAAO,MAAM;;AAEf,UAAI,AAAK,cAAG,QAAa,aAAL,2BAAO,MAAM;AAClB,QAAb,aAAO,MAAM;;IAEjB;oCAG4C,MAAU,OAAY;AAClD,8BAA6B,CAAC,IAAI,GAAG,GAAG;AAClD;AAGM,uCACN,qCAA+B,IAAI,EAAE,IAAI;AACI,MAAjD,eAAqB,aAAN,KAAK,iBAAG,0BAA0B;AACjD,UAAI,AAAK,IAAD,qBAAqB;AAC3B,cAAO,aAAY;;AAIX,4BAAkB,AAAa,YAAD,KAAI,IACtC,IACA,SAAS,IAAI,AAA2B,gBAAlB,YAAY,EAAE;AAC1C,eAAS,IAAI,GAAG,AAAE,CAAD,gCAAqB,WAAlB,iBAAiB,eAAS,IAAA,AAAC,CAAA;AACnC,uCAA4B,WAAjB,iBAAiB,WAAC,CAAC;AAC9B,8BAAkB,AAAgB,eAAD,gBAAG,QAAQ;AACtD,YAA+B,aAA3B,0BAA0B,IAAU,aAAN,KAAK,IAAG,eAAe;AACvD;;AAE4B,QAA9B,eAAe,eAAe;;AAEhC,YAAO,aAAY;IACrB;qCAGwC,eAAyB;AACjD,iBAAyB,YAAlB,AAAK,IAAD,gBAAiC,qCACpD,AAAc,aAAD,SACb,AAAc,aAAD;AACnB,UAAI,AAAK,AAAiB,IAAlB,qBAAqB;AACvB,mCAC8D,CAA3C,YAAlB,AAAK,IAAD,gBAAiC,qCAAa,QAAQ,kBACvD,AAAK,IAAD;AAC2D,QAAvE,uBAAuB,mCAAc,WAAL,IAAI,QAAI,AAAqB,oBAAD,GAAG,QAAM;AACrE,cAAO,qBAAoB;;AAE3B,cAAO,AAAK,KAAD;;IAEf;6BAIc,MAAuB;AACjB;AAClB,uBAAI,AAAK,IAAD,eAAmC;AACd,QAA3B,UAAU,AAAK,IAAD;YACT,KAAsB,YAAlB,AAAK,IAAD,eAAmC,kCAC9C,AAAK,IAAD,kBAAiB;AACvB,gBAAQ,AAAK,IAAD;;;AAMoB,YAJ5B,oBAAU,AAAM,KAAD,oCACR,mBACqB,iCACA,kCACJ;AACxB;;;;AAM4B,YAJ5B,UAAU,WAAC,AAAM,KAAD,oCACT,mBACqB,iCACA,kCACJ;AACxB;;;;AAGN,YAAO,QAAO;IAChB;yBAGkC,MAAuB,OACvC,OAAW;AACjB,kCAAQ,AAAM,KAAD;AACb,gCAAM,AAAM,KAAD;AACG,oBAAU,6BAAuB,MAAM,KAAK;AACpE,UAAY,YAAR,OAAO,EAAsB,wCACrB,YAAR,OAAO,EAAsB;AAEkB,QAAjD,2BAAqB,MAAM,KAAK,EAAE,GAAG,EAAE,SAAS;YAC3C,KAAY,YAAR,OAAO,EAAsB;AAEO,QAA7C,uBAAiB,MAAM,KAAK,EAAE,GAAG,EAAE,SAAS;;AAEG,QAA/C,yBAAmB,MAAM,KAAK,EAAE,GAAG,EAAE,SAAS;;AAEL,MAA3C,AAAM,KAAD,SAAC,gBAAsB,WAAd,AAAM,KAAD,gBAAW,AAAM,KAAD;IACrC;2BAGoC,MAAU,OAAW,KAAS;AAC5D;AACA;AAC6C,MAAjD,UAA8B,AAAS,CAArB,aAAN,KAAK,iBAAG,QAAQ,4BAAa,QAAQ;AACH,MAA9C,UAA4B,AAAQ,CAApB,aAAJ,GAAG,iBAAG,QAAQ,2BAAY,QAAQ;AAC9C,UAAsB,YAAlB,AAAK,IAAD,eAAmC;AACtB,QAAnB,UAAQ,aAAR,OAAO,iBAAI,QAAQ;AACA,QAAnB,UAAQ,aAAR,OAAO,iBAAI,QAAQ;;AAI+B,MAApD,yBAAmB,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ;IACrD;yBAIc,MAAU,SAAa,SAAa;AAClC,kBAAQ,IAAI;AACiD,MAA3E,AAAK,AAAa,IAAd,yBAA8B,AAAQ,WAAd,KAAK,gBAAY,OAAa,WAAN,KAAK,eAAW,OAAO;AACA,MAA3E,AAAK,AAAa,IAAd,yBAA8B,AAAQ,WAAd,KAAK,gBAAY,OAAa,WAAN,KAAK,eAAW,OAAO;AAElB,MADzD,AAAK,AAAa,IAAd,uBAAc,gBACY,WAA1B,AAAK,AAAa,IAAd,8BAAwB,AAAK,AAAa,IAAd;AAEgB,MADpD,AAAK,AAAa,IAAd,0BACA,AAAK,AAAS,IAAV,aAAa,OAAO,AAAK,IAAD,YAAY,QAAQ;IACtD;uBAGgC,MAAU,OAAW,KAAS;AACxD;AAAW;AAAS;AACpB,uBAAa,KAAK;AACtB,UAAS,uBAAL,IAAI,KAAwC,YAApB,AAAK,IAAD,iBAAkC;AAC3C,QAArB,UAAgB,aAAN,KAAK,IAAG;AACC,QAAnB,UAAc,aAAJ,GAAG,IAAG;;AAEhB,YAAU,aAAN,KAAK,IAAG;AACI,UAAd,aAAa;AACiB,UAA9B,UAAgB,aAAN,KAAK,IAAU,aAAN,KAAK,IAAG;AACoC,UAA/D,YAAqB,aAAT,QAAQ,iBAAG,6BAAsB,OAAO,EAAE,QAAQ;AAC9D,cAAK,AAAM,AAAY,qBAAV,QAAQ,kBAAK,SAAS;AACd,YAAnB,UAAQ,aAAR,OAAO,iBAAI,QAAQ;;AAErB,cAA6C,aAAzC,6BAAsB,OAAO,EAAE,QAAQ,KAAI;AAEsB,YADnE,UACa,AAAY,aAApB,OAAO,iBAAG,QAAQ,iBAAI,6BAAsB,OAAO,EAAE,QAAQ;;;AAGG,UAAvE,UAAgB,aAAN,KAAK,IAAK,AAAI,AAAO,MAAL,mBAAO,GAAG,IAAI,IAAW,aAAN,KAAK,IAAiB,CAAT,aAAJ,GAAG,iBAAG,KAAK,KAAI;AACrE,cAAI,AAAQ,AAAW,OAAZ,UAAG,QAAQ,IAAG;AACM,YAA7B,UAAQ,aAAR,OAAO,IAAI,AAAQ,OAAD,UAAG,QAAQ;;;AAKI,QAFrC,UAAe,aAAJ,GAAG,IAAG,IACN,aAAJ,GAAG,IAAsB,CAAd,aAAJ,GAAG,iBAAG,UAAU,KAAI,KACvB,aAAJ,GAAG,IAAsB,CAAd,aAAJ,GAAG,iBAAG,UAAU,KAAI;AACS,QAA3C,YAAqB,aAAT,QAAQ,IAAI,AAAQ,OAAD,UAAG,QAAQ;AAC1C,YAAK,AAAM,AAAY,qBAAV,QAAQ,kBAAK,SAAS;AACd,UAAnB,UAAQ,aAAR,OAAO,iBAAI,QAAQ;;AAErB,YAAI,AAAQ,AAAW,OAAZ,UAAG,QAAQ,IAAG;AAC8B,UAArD,UAAmB,AAAY,aAApB,OAAO,iBAAG,QAAQ,IAAK,AAAQ,OAAD,UAAG,QAAQ;;;AAGxD,UAAI,AAAQ,OAAD,KAAI;AAGsD,QAFnE,WAAiB,sBAAL,IAAI,IACV,oCAA8B,IAAI,EAAU,aAAR,OAAO,iBAAG,OAAO,GAAE,mBACvD,uBAAkB,6BAAc,OAAO,EAAE,OAAO,GAAG;AACT,QAAhD,UAA+B,AAAO,CAAnB,aAAR,OAAO,iBAAG,QAAQ,2BAAW,QAAQ;;AAIE,MAApD,yBAAmB,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ;IACrD;+BAEqC,WAAe;AAC9B;AACL;AACO,MAAtB,YAAY;AACZ,UAAI,AAAO,kCAAqB;AACO,QAArC,gBAAgB;AACc,QAA9B,AAAc,aAAD,QAAQ,SAAS;AACE,QAAhC,AAAc,aAAD,SAAS,UAAU;AACG,QAAnC,AAAc,aAAD,aAAa,SAAS;AACV,QAAzB,AAAc,aAAD,QAAQ;AACmB,QAAxC,AAAc,aAAD,eAAe;AACE,QAA9B,AAAc,aAAD,YAAY;AACc,QAAvC,AAAO,+BAAkB,aAAa;AACR,QAA9B,YAAY,AAAc,aAAD;AACU,QAAnC,YAAY,AAAc,aAAD;;AAEhB,sBAAY,oBAAa,SAAS,EAAE,SAAS,EAAE;AACgB,MAA1E,AAAe,2BAAI,yBAAU,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU;IAC1E;iCAG0C,MAAuB;AACtC;AACf;AACN,+BAAqB;AACrB,8BAAoB;AACpB;AACA;AAC8B,MAAlC,SAAS,AAAK,IAAD;AAEwD,MADrE,oBACyC,aAArC,AAAM,AAAW,AAAc,KAA1B,kDAAkC,AAAK,AAAe,IAAhB;AAC/C,UAAsB,YAAlB,AAAK,IAAD,gBAAiC,mDACrC,AAAK,IAAD,uBAAkD,yCAC3B,aAA3B,AAAK,AAAe,IAAhB,6BAAyB;AACpB,yBAAa,AAAM,AAAW,KAAZ;AACnB;AACN;AACJ,iBAAS,IAAI,GAAG,AAAE,CAAD,GAA8B,aAA3B,AAAK,AAAe,IAAhB,6BAAyB,GAAG,IAAA,AAAC,CAAA;AACrB,UAA9B,QAAQ,AAAK,AAAc,IAAf,wBAAgB,CAAC;AAEV,UADnB,SAAiD,AAAoB,aAA3D,2BAAoB,AAAM,KAAD,QAAQ,IAAI,kBAAI,AAAW,UAAD,uBACzD,AAAW,UAAD;AACqB,UAAnC,SAAO,aAAP,MAAM,IAA0B,aAAtB,AAAM,AAAU,KAAX,oBAAmB;AAmBjB,UAlBjB,SAAU,AAAE,AACgD,CADjD,KAAI,KACiB,YAAxB,AAAK,IAAD,qBAA0C,qCACrC,aAAP,MAAM,iBAAG,AAAW,UAAD,qBAAU,AAAK,IAAD,gBACvB,AAAwB,aAA/B,MAAM,iBAAG,AAAM,AAAU,KAAX,iCAAmB,AAAW,UAAD,qBACxC,AAAK,IAAD,0BACb,AAAK,IAAD,eACe,AAAmB,aAAnC,AAAW,UAAD,sBAAQ,AAAW,UAAD,uBAAS,AAAM,AAAU,KAAX,oBAC1C,AAAW,UAAD,QACZ,AAAE,AACsD,CADvD,KAA+B,aAA3B,AAAK,AAAe,IAAhB,6BAAyB,KACN,YAAxB,AAAK,IAAD,qBAA0C,qCACnC,AAAyB,aAAhC,MAAM,iBAAG,AAAM,AAAU,KAAX,iCAAoB,AAAW,UAAD,sBACvC,AAAK,IAAD,gBACD,aAAP,MAAM,iBAAG,AAAW,UAAD,oBAAS,AAAK,IAAD,0BACtC,AAAK,IAAD,eACD,AAAW,UAAD,QACM,AACG,aADnB,AAAW,UAAD,sBACR,AAAW,UAAD,uBACV,AAAM,AAAU,KAAX,oBACX,MAAM;AAEmB,UAAnC,SAAS,AAAK,AAAc,IAAf,wBAAgB,AAAE,CAAD,GAAG;AAGM,UAFvC,UAAmD,AACL,aADnC,2BAAoB,AAAO,MAAD,QAAQ,IAAI,kBACzC,AAAM,AAAW,AAAc,KAA1B,kDACT,AAAM,AAAW,AAAc,KAA1B;AAC4B,UAArC,UAAQ,aAAR,OAAO,IAA2B,aAAvB,AAAO,AAAU,MAAX,oBAAmB;AAEpC,cAAc,AAAyB,aAAhC,MAAM,iBAAG,AAAM,AAAU,KAAX,iCAAoB,OAAO,gBACvC,AAAK,IAAD,gBACC,AAAyB,aAAhC,MAAM,iBAAG,AAAM,AAAU,KAAX,iCAAoB,OAAO,eAAK,AAAK,IAAD;AACtC,YAAjB,mBAAa;AACb;;;;AAKN,eAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAK,AAAe,IAAhB,4BAAwB,IAAA,AAAC,CAAA;AACjB,QAA9B,QAAQ,AAAK,AAAc,IAAf,wBAAgB,CAAC;AAC7B,YAA0B,aAAtB,AAAM,AAAU,KAAX,iCAAmB,iBAAiB;AACF,UAAzC,oBAAoB,AAAM,AAAU,KAAX;;AAE3B,YAA2B,aAAvB,AAAM,AAAU,KAAX,kCAAoB,kBAAkB;AACF,UAA3C,qBAAqB,AAAM,AAAU,KAAX;;AAG5B,YAAsB,YAAlB,AAAK,IAAD,gBAAiC;AAGA,UAFvC,SAAiD,AACH,aADpC,2BAAoB,AAAM,KAAD,QAAQ,IAAI,kBACvC,AAAM,AAAW,AAAc,KAA1B,kDACT,AAAM,AAAW,AAAc,KAA1B;AAC0B,UAAnC,SAAO,aAAP,MAAM,IAA0B,aAAtB,AAAM,AAAU,KAAX,oBAAmB;AAGlC,wBAAI;AACc,wBAAQ,mCACpB,KAAK,EACL,MAAM,EACN,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,MAAM,EACN,CAAC,EACD,IAAI,EACJ,KAAK;AACmB,YAA5B,oBAAoB,AAAK,KAAA,QAAC;AACG,YAA7B,qBAAqB,AAAK,KAAA,QAAC;;;;AAImC,MAApE,AAAK,IAAD,sBAAqB,gBAAK,iBAAiB,EAAE,kBAAkB;IACrE;mCAGc,OACe,QACrB,mBACA,oBACA,mBACA,QACA,GACM,MACO;AACf;AACA,kBAAQ,AAAK,IAAD;AACX;AACL,cAAQ,MAAM;;;AAEV,cAAM,aAAF,CAAC,IAAG;AACgD,YAAtD,SAAS,qBAAe,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK;AACrD,gBAAW,aAAP,MAAM,iBAAG,kBAAkB;AACF,cAA3B,qBAAqB,MAAM;;;AAG/B;;;;;AAG6D,UAA7D,QAAe,YAAP,MAAM,EAA6B,4CAAW,KAAK;AAChC,UAA3B,AAAK,IAAD,mBAAkB,KAAK;AACwC,UAAnE,mBAAmB,oBAAa,AAAM,KAAD,OAAO,AAAK,IAAD,aAAa,KAAK;AAClE,cAA4B,aAAxB,AAAiB,gBAAD,wBAAU,kBAAkB,GAC9C,AAA4C,qBAAvB,AAAiB,gBAAD;AACvC,cAA2B,aAAvB,AAAiB,gBAAD,uBAAS,iBAAiB,GAC5C,AAA0C,oBAAtB,AAAiB,gBAAD;AACtC;;;;AAEuE,UAAvE,AAAM,KAAD,qBAAoB,gBAAU,AAAM,KAAD,OAAO,iBAAiB,EAAE,IAAI;AACtE,wBAAI,AAAM,AAAiB,KAAlB,kCACP,AAAM,AAAgC,KAAjC,QAAQ,AAAM,AAAgB,KAAjB,0BAAkB;AACyB,UAA/D,SAAgC,aAAvB,AAAM,AAAU,KAAX,kCAAoB,AAAM,AAAiB,KAAlB;AACvC,cAAW,aAAP,MAAM,iBAAG,kBAAkB;AACF,YAA3B,qBAAqB,MAAM;;AAE7B;;;;AAEA;;;AAEJ,YAAY,oBAAC,iBAAiB,EAAE,kBAAkB;IACpD;qBAEuB,QAAY,UAAoB,cACzC,MAAuB;AACzB;AACN;AACU,uBAAsB;AAC/B;AACL,mBAAS,WAAW,aAAP,MAAM,IAAG,IAAG,AAAE,CAAD,IAAI,GAAG,IAAA,AAAC,CAAA;AACF,QAA9B,QAAQ,AAAK,AAAc,IAAf,wBAAgB,CAAC;AAGU,QAFvC,SAAiD,AACH,aADpC,2BAAoB,AAAM,KAAD,QAAQ,IAAI,kBACvC,AAAM,AAAW,AAAc,KAA1B,kDACT,AAAM,AAAW,AAAc,KAA1B;AAImC,QAH5C,cAAc,WAAC,AAAK,IAAD,eACJ,aAAT,QAAQ,IAAW,aAAP,MAAM,IAAyB,aAAtB,AAAM,AAAU,KAAX,oBAAmB,IACpC,AAA+B,aAAxC,QAAQ,iBAAG,AAAa,AAAU,YAAX,oBACb,aAAP,MAAM,IAAyB,aAAtB,AAAM,AAAU,KAAX,oBAAmB;AAC1C,sBAAI,WAAW;AACe,UAAjB,WAAX,UAAU,UAAK,AAAM,KAAD;AAGE,UAFtB,AAAa,YAAD,WAA+B,aAApB,AAAa,YAAD,yBAAU,AAAM,KAAD,YAC5C,AAAa,YAAD,WACC,aAAb,AAAM,KAAD,YAAU;;AAIH,UAFlB,AAAa,YAAD,sBAAqB,WAAX,UAAU,eAAU,AAAM,KAAD,cACzC,AAAa,YAAD,WACZ,AAAM,KAAD;;;AAGf,YAAqC,cAA9B,AAAa,AAAU,YAAX,kCAAoB,AAAa,YAAD;IACrD;gBAGW,cAAkB,cAAwB;AAChC,2BAAiB,AAAa,YAAD,SAAO,gBAAO;AAC3C,4BAA0B;AACtC;AACP,eAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAe,cAAD,YAAS,IAAA,AAAC,CAAA;AAClB,QAAxB,OAAO,AAAc,cAAA,QAAC,CAAC;AAK2C,QAJF,aAA/D,AAAyD,oBAA5C,IAAI,EAAE,AAAK,IAAD,aAAa,AAAK,IAAD,wCACjC,YAAY,IACd,AAAgB,eAAD,OAAK,IAAI,IACxB,AACG,eADY,OACR,gBAAU,IAAI,EAAE,YAAY,EAAE,AAAK,IAAD,aAAa,IAAI;;AAElE,YAAO,gBAAe;IACxB;gBAEwB,MAAU,cAA6B,YACjD;AACL,kBAAQ,IAAI;AACf,iBAAO,AAAyD,oBAA5C,IAAI,EAAE,AAAK,IAAD,aAAa,AAAK,IAAD;AACnD,UAAS,aAAL,IAAI,iBAAG,YAAY;AACX,yBAAa,AAAK,IAAD;AAC3B,iBAAS,IAAI,AAAW,UAAD,GAAG,GAAG,AAAE,CAAD,IAAI,GAAK,IAAF,AAAE,CAAC,GAAH;AACC,UAApC,QAAQ,AAAK,AAAgB,IAAjB,aAAW,GAAG,CAAC,IAAI;AACkC,UAAjE,OAAO,AAAqD,oBAAxC,KAAK,EAAE,UAAU,EAAE,AAAK,IAAD;AAC3C,cAAS,aAAL,IAAI,kBAAI,YAAY;AACtB,kBAAO,MAAK;;;;AAIlB,YAAO,MAAK;IACd;0BAGmC,MAAW;AAG8B,MAD1E,AAAK,IAAD,gBACiB,aAAjB,AAAK,IAAD,iBAAe,IAAI,MAAqB,aAAjB,AAAK,IAAD,iBAAe,IAAI,MAAI,AAAK,IAAD;AAGT,MAFrD,AAAK,IAAD,kBAAoC,aAAnB,AAAK,IAAD,mBAAiB,IACpC,MACmB,aAAnB,AAAK,IAAD,mBAAiB,IAAI,MAAI,AAAK,IAAD;AAEnB,sBAAY,AAAK,IAAD;AAChC;AAAO;AAEsC,cADjD,gBAAmC,WAA3B,AAAK,AAAc,IAAf,+BACW,aAAnB,AAAK,IAAD,gCAAiB,AAAK,AAAc,IAAf;AAC4B,MAAzD,MAAY,aAAN,KAAK,IAAoB,aAAjB,AAAK,IAAD,8BAAe,AAAK,AAAc,IAAf;AAErC,UAAU,aAAN,KAAK,iCAAG,AAAU,SAAD;AACoB,QAAvC,MAAU,aAAJ,GAAG,iCAAsB,WAAlB,AAAU,SAAD,gBAAW,KAAK;AACb,gBAAzB,gBAAQ,AAAU,SAAD;;AAEnB,UAAQ,aAAJ,GAAG,iCAAG,AAAU,SAAD;AACwB,QAAzC,QAAc,aAAN,KAAK,KAAQ,aAAJ,GAAG,iCAAG,AAAU,SAAD;AACT,cAAvB,gBAAM,AAAU,SAAD;;AAEiB,MAAlC,AAAK,AAAc,IAAf,0BAAyB,KAAK;AACF,MAAhC,AAAK,AAAc,IAAf,0BAAyB,GAAG;AACM,MAAtC,AAAK,AAAc,IAAf,wBAA2B,aAAJ,GAAG,iBAAG,KAAK;IACxC;0BAEmC,MAAsB;AACvD,eAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAW,UAAD,YAAS,IAAA,AAAC,CAAA;AACtB,yBAAa,AAAU,UAAA,QAAC,CAAC;AACzC,YAAI,AAAW,AAAM,UAAP,YAAU,AAAK,IAAD;AACe,UAAzC,AAAK,IAAD,gBAAe,AAAW,UAAD;AACgB,UAA7C,AAAK,IAAD,kBAAiB,AAAW,UAAD;AAC/B;;;IAGN;;;;QA/kCO;QACE;QACF;QACA;QACK;QACD;QACS;QACd;QACmB;QACR;QACF;QACE;QACA;QACA;QACU;QACpB;QACU;QACA;QACX;QACA;QACC;QACA;QACc;QACd;QACE;QACA;QACY;QACd;QACA;QACA;QACA;QACU;QACV;IA8DC;IACA;IA+UW;IAuBd;IAGW;IAGF;IAGA;IAG0B;IAmHnC;IAEE;IAGA;IAGA;IAIA;IAEH;IAEG;IAEA;IAGF,mBAAa;IAED;IAEb;IAAM;IAAM;IAAS;IAAS;IAAU;IAEvC;IAEK;IAEN;IAEU;IAEV;IAvmBG;IAeA;IAYA;IACA;IACA;IAGA;IACS,qBAAY,KAAV,SAAS,QAAT,OAAa;IACd,qBAAa,MAAX,UAAU,SAAV,OAAc;IACR,6BAAqB,OAAnB,kBAAkB,UAAlB,OAAsB;IAChC,qBAAa,OAAX,UAAU,UAAV,OAAc;IAChB,qBAAa,OAAX,UAAU,UAAV,OAAc;IACH,kCAA0B,OAAxB,uBAAuB,UAAvB,OAA2B;IACrC,0BAAkB,OAAhB,eAAe,UAAf,OAAmB;IACxB,uBAAe,OAAb,YAAY,UAAZ,OAAkC;IACnC,wBAAgB,OAAd,aAAa,UAAb,OAAiB;IACnB,wBAAgB,OAAd,aAAa,UAAb,OAAwC;IACzC,yBAAiB,OAAf,cAAc,UAAd,OAAiC;IACrC,uBAAe,OAAb,YAAY,UAAZ,OAA6B;IACvB,+BACI,QAArB,oBAAoB,WAApB,OAAiD;IAC/B,gCAAwB,QAAtB,qBAAqB,WAArB,OAAyB;IACnC,wBAAgB,QAAd,aAAa,WAAb,OAAiB;IACtB,oBAAE,iCACE,UAAU,YACX,iBACW,iCACE,kCACX;IACV,iBAAQ,QAAN,KAAK,WAAL,OAAS;IACR,mBAAW,QAAT,QAAQ,WAAR,OAAY;IACR,yBAAiB,QAAf,cAAc,WAAd,OAAkB;IACpB,yBAAiB,QAAf,cAAc,WAAd,OAAkB;IACpB,yBAAiB,QAAf,cAAc,WAAd,OAAkB;IACpB,yBAAiB,QAAf,cAAc,WAAd,OAAkB;IAChB,6BAAqB,QAAnB,kBAAkB,WAAlB,OAAyC;IACtD;IACG,qBAAa,QAAX,UAAU,WAAV,OAAc;IACd,uBAAe,QAAb,YAAY,WAAZ,OAAgB;IACH,sCAA8B,QAA5B,2BAA2B,WAA3B,OAA+B;IACnD,oBAAY,QAAV,SAAS,WAAT,OAAuB;IACpB,uBAAa;AACI,IAApC,sBAAgB;AACoB,IAApC;AAC+C,IAA/C,gBAA6C;AACjC,IAAZ,eAAQ;AAC2B,IAAnC,uBAAsB;AACO,IAA7B,oBAAmB;AACc,IAAjC,sBAAqB;EACvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA6hCe;;;;;;IAGV;;;;;;IAGE;;;;;;IAGH;;;;;;;mCAxBW,YAAiB,WAAgB,MAAW;IA0B9C;IAET,eAAS;IAGR;IAGA,oBAAc;IAlCJ;IAAiB;IAAgB;IAAW;;EAAM;;;;;;;;;;;;;;;;;;IAmEpD;;;;;;IAiBA;;;;;;IAiBD;;;;;;;;QAxDS;QAAe;QAAgB;IAA/B;IAAe;IAAgB;;EAAO;;;;;;;;;;;;;IAsF9C;;;;;;IAmBA;;;;;;IAmBD;;;;;;;;QAzDS;QAAe;QAAkB;IAAjC;IAAe;IAAkB;;EAAO;;;;;;;;;;;;;IAuF1C;;;;;;IAiBN;;;;;;IAiBD;;;;;;;;QAnDS;QAAkB;QAAY;IAA9B;IAAkB;IAAY;;EAAW;;;;;;;;;;;;;IAiF3C;;;;;;IAmBN;;;;;;IAmBD;;;;;;;;QAzDS;QAAkB;QAAY;IAA9B;IAAkB;IAAY;;EAAW;;;;;;;;;;;;;;IA8FjD;;;;;;IAsBQ;;;;;;IA0BA;;;;;;;;QAzEX;QACS;QACV;IAFC;IAED;IACO,mBAAE,iCACG,SAAS,cACR,sBACF,iBACW,iCACE;;EAAO;;;;;;;;;;;;;IA6F3B;;;;;;IAiBD;;;;;;IAmBO;;;;;;;;QArDJ;QAAY;QAAgB;IAA5B;IAAY;IAAgB;;EAAW;;;;;;;;;;uCA0DhC,KAAa;IAW3B;IAGA;IAGA;IAGJ;AAnBF,mBAAQ,WAAJ,GAAG,QAAG,GAAG;AACE,MAAb,eAAU,GAAG;AACA,MAAb,eAAU,GAAG;;AAEA,MAAb,eAAU,GAAG;AACA,MAAb,eAAU,GAAG;;EAEjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBCjhD6B;AAC3B,UAAI,AAAK,IAAD,cAAc;AACpB,YAAI,AAAK,IAAD,uBAAuB;AAC7B,mBAAS,IAAI,GACT,AAAE,CAAD,gBAAG,AAAa,AAAW,AAAiB,4DAC7C,IAAA,AAAC,CAAA;AACH,gBAAI,AAAK,AAAmB,IAApB,uBACJ,AAAa,AAAW,AAAgB,AAAI,wDAAH,CAAC;AACiB,cAA7D,AAAK,IAAD,eAAc,AAAa,AAAW,AAAgB,wDAAC,CAAC;AACb,cAA/C,+BAAyB,IAAI,EAAE,AAAK,IAAD;;;;AAUH,UANpC,AAAK,IAAD,yBAAc,AAAa,4CACxB,AAAK,IAAD,eAAgC,YAAlB,AAAK,IAAD,gBAAiC,qCACpD,AAAa,kCACb,AAAa,kCACE,YAAlB,AAAK,IAAD,gBAAiC,qCAClC,AAAa,kCACb,AAAa;AAEwB,UAA/C,+BAAyB,IAAI,EAAE,AAAK,IAAD;;;IAGzC;+BAGwC,aAAuB;AACrD,kBAAQ,AAAY,WAAD;AAGhB,MAFX,QAAc,AAAU,OAAhB,KAAK,gBAAkB,kBAAS,KAAK,KAAK,OACxC,kBAAS,KAAK,IAClB,KAAK;AACX,UAAe,uBAAX,UAAU;AACoD,QAAhE,QAAc,iBAAN,KAAK,IAAe,AAAM,KAAD,0BAA0B,KAAK;AACA,QAAhE,AAAW,UAAD,6BAA4B,oBAAc;YAC/C,KAAe,uBAAX,UAAU;AACqD,QAAxE,QAAc,OAAN,KAAK,eAAU,AAAM,KAAD,aAA8B,WAAnB,AAAW,UAAD,uBAAiB,KAAK;AACP,QAAhE,AAAW,UAAD,6BAA4B,oBAAc;YAC/C,KAAe,0BAAX,UAAU;AACwB,QAA3C,QAAQ,gCAAS,KAAK,GAAE,AAAW,UAAD;AAC8B,QAAhE,AAAW,UAAD,6BAA4B,oBAAc;YAC/C,KAAe,sBAAX,UAAU;AAC6C,QAAhE,AAAW,UAAD,6BAA4B,oBAAc;;AAEtD,sBAAW,WAAN,KAAK;AAE8C,QADtD,AAAY,WAAD,gBACP,wCAAkB,KAAK,GAAE,AAAW,UAAD;AACW,QAAlD,AAAY,WAAD,gBAAe,AAAW,UAAD;;IAExC;;AAIiB,MAAf,oBAAc;AACF,MAAZ,iBAAW;AACE,MAAb,kBAAY;AACE,MAAd,mBAAa;AACiB,MAA9B,uBAA4B;AACI,MAAhC,yBAA8B;AACD,MAA7B,sBAA2B;AACI,MAA/B,wBAA6B;AACF,MAA3B,oBAAyB;AACC,MAA1B,mBAAwB;AACA,MAAxB,iBAAsB;AACG,MAAzB,kBAAuB;AAEvB,oBAAI,AAAc;AAChB,iBAAS,YAAY,GAAG,AAAU,SAAD,gBAAG,AAAc,+BAAQ,YAAA,AAAS,SAAA;AACnD,qBAAO,AAAa,2BAAC,SAAS;AACC,UAAxC,WAAL,IAAI,+BAA4B;AACb,UAAnB,4CAAc,IAAI;AACI,UAAtB,+CAAiB,IAAI;;AAEG,QAA1B;;AAEF,oBAAI,AAAgB;AAClB,iBAAS,YAAY,GAAG,AAAU,SAAD,gBAAG,AAAgB,iCAAQ,YAAA,AAAS,SAAA;AACrD,qBAAO,AAAe,6BAAC,SAAS;AACZ,UAAlC,2DAA6B,IAAI;AACY,UAAxC,WAAL,IAAI,+BAA4B;AACb,UAAnB,4CAAc,IAAI;AACI,UAAtB,+CAAiB,IAAI;;;AAGL,MAApB;IACF;uBAGgC;;AAC1B,sBAAY;AACG,MAAnB,AAAK,IAAD,eAAc;AAClB,oBAAI,AAAK,IAAD;AACN,YAAI,AAAK,AAAM,IAAP,eAAe,QAAQ,AAAK,AAAM,AAAK,IAAZ;AAEjB,UADhB,YAAuE,aAA3D,AAAoD,oBAAvC,AAAK,AAAM,IAAP,aAAa,AAAK,AAAM,IAAP,yCAC1C;;AAEK,mBAAO,AAAa,AAAY;AACjC,wBAAY,oBAAc,IAAI;AAC3B,uBACR,AAAU,AAAK,SAAN,KAAI,KAAuB,YAAlB,AAAK,IAAD,eAA8B,8BAC/C,MACA,AAIe,mBAHT,AAAK,AAAe,IAAhB,sBACuB,aAA3B,AAAK,IAAD,0BAAyB,IACvB,AAAK,AAAe,IAAhB,uBACJ,kBACV;AACC,wBAAa,AAAU,AAAK,SAAN,KAAI,KACZ,YAAnB,AAAK,IAAD,gBAAyC,wCAC/C,MAK0C,aAJzC,AAAK,AAAW,AAAS,IAArB,yBAAwB,IACrB,IACmB,YAAlB,AAAK,IAAD,gBAAiC,qCAClC,AAAK,AAAkB,IAAnB,6BACJ,AAAK,AAAkB,IAAnB,0CACd;AAE0C,QAAlD,AAAK,IAAD,eAAc,AAAU,AAAW,SAAZ,GAAG,QAAQ,GAAG,SAAS;AAClD,YAAsB,YAAlB,AAAK,IAAD,gBAAiC;AACvC,yBAAK,AAAK,IAAD;AAII,iBAHX,IAAI;YAAC,iBAAW,aAAX,mBACsB,UAAvB,AAAY,mCAAuC,aAAzB,AAAK,AAAW,IAAZ,wBAAuB,IAC/C,AAAa,kCACb;AACV,gBAAI,AAAK,IAAD,iBAAgB,QAAQ,AAAK,IAAD,iBAAgB;AACxC,iCACiD,aAAvD,2BAAoB,AAAK,IAAD,eAAc,AAAK,IAAD,8BACtC,AAAK,IAAD;AAGuC,cAFnD,AAAK,IAAD,eAAc,AAAa,AAAkB,YAAnB,gBAAG,AAAK,IAAD,gBAAc,IACZ,CAAhC,AAAa,YAAD,gBAAG,AAAK,IAAD,yBACpB,WAAC,AAAK,IAAD,4BAA2B,SAAS,GAAG;;AAEtB,YAA9B,oBAAY,aAAZ,kCAAe,AAAK,IAAD;AACmC,YAAtD,AAAiB,6BAAI,yBAAU,IAAI,EAAE,AAAK,IAAD;;AAIlC,kBAFP,IAAI;YAAC,kBAAW,aAAX,oBAAkC,UAApB,AAAS,gCAAuC,aAAzB,AAAK,AAAW,IAAZ,wBAAuB,IAC/D,AAAa,kCACb;AACN,gBAAI,AAAK,IAAD,iBAAgB,QAAQ,AAAK,IAAD,iBAAgB;AACxC,iCACiD,aAAvD,2BAAoB,AAAK,IAAD,eAAc,AAAK,IAAD,8BACtC,AAAK,IAAD;AAGuC,cAFnD,AAAK,IAAD,eAAc,AAAa,AAAkB,YAAnB,gBAAG,AAAK,IAAD,6BAAc,AAAK,IAAD,WACA,CAA/C,AAAa,AAAmB,YAApB,gBAAG,AAAK,IAAD,6BAAe,AAAK,IAAD,oBACxC,WAAC,AAAK,IAAD,4BAA2B,SAAS,GAAG;;AAEzB,YAA3B,iBAAS,aAAT,+BAAY,AAAK,IAAD;AACmC,YAAnD,AAAc,0BAAI,yBAAU,IAAI,EAAE,AAAK,IAAD;;cAEnC,KAAsB,YAAlB,AAAK,IAAD,gBAAiC;AAC9C,yBAAK,AAAK,IAAD;AAII,mBAHX,IAAI;YAAC,mBAAW,aAAX,qBACoB,UAArB,AAAU,iCAAuC,aAAzB,AAAK,AAAW,IAAZ,wBAAuB,IAC7C,AAAa,kCACb;AACV,gBAAI,AAAK,IAAD,iBAAgB,QAAQ,AAAK,IAAD,iBAAgB;AACxC,iCACiD,aAAvD,2BAAoB,AAAK,IAAD,eAAc,AAAK,IAAD,8BACtC,AAAK,IAAD;AAGuC,cAFnD,AAAK,IAAD,eAAc,AAAa,AAAkB,YAAnB,gBAAG,AAAK,IAAD,gBAAc,IACZ,CAAhC,AAAa,YAAD,gBAAG,AAAK,IAAD,yBACpB,WAAC,AAAK,IAAD,4BAA2B,SAAS,GAAG;;AAExB,YAA5B,kBAAU,aAAV,gCAAa,AAAK,IAAD;AACmC,YAApD,AAAe,2BAAI,yBAAU,IAAI,EAAE,AAAK,IAAD;;AAK5B,mBAHX,IAAI;YAAC,mBAAW,aAAX,qBACqB,UAAtB,AAAW,kCAAuC,aAAzB,AAAK,AAAW,IAAZ,wBAAuB,IAC9C,AAAa,kCACb;AACV,gBAAI,AAAK,IAAD,iBAAgB,QAAQ,AAAK,IAAD,iBAAgB;AACxC,iCACiD,aAAvD,2BAAoB,AAAK,IAAD,eAAc,AAAK,IAAD,8BACtC,AAAK,IAAD;AAGuC,cAFnD,AAAK,IAAD,eAAc,AAAa,AAAkB,YAAnB,gBAAG,AAAK,IAAD,6BAAc,AAAK,IAAD,UACD,CAA9C,AAAa,AAAmB,YAApB,gBAAG,AAAK,IAAD,6BAAe,AAAK,IAAD,mBACxC,WAAC,AAAK,IAAD,4BAA2B,SAAS,GAAG;;AAEvB,YAA7B,mBAAW,aAAX,iCAAc,AAAK,IAAD;AACmC,YAArD,AAAgB,4BAAI,yBAAU,IAAI,EAAE,AAAK,IAAD;;;;IAIhD;oBAE4B;AACtB;AACJ,UAAsB,YAAlB,AAAK,IAAD,gBAAiC;AACvC,uBAAK,AAAK,IAAD;AACc,UAArB,AAAY,wBAAI,IAAI;AACM,UAA1B,QAAQ,AAAY;;AAEF,UAAlB,AAAS,qBAAI,IAAI;AACM,UAAvB,QAAQ,AAAS;;YAEd,KAAsB,YAAlB,AAAK,IAAD,gBAAiC;AAC9C,uBAAK,AAAK,IAAD;AACY,UAAnB,AAAU,sBAAI,IAAI;AACM,UAAxB,QAAQ,AAAU;;AAEE,UAApB,AAAW,uBAAI,IAAI;AACM,UAAzB,QAAQ,AAAW;;;AAGvB,YAAa,cAAN,KAAK,IAAG;IACjB;mCAG4C;AACtC,kBAAQ,AAAK,IAAD;AAChB,UAAU,aAAN,KAAK,IAAG,CAAC,OAAa,aAAN,KAAK,IAAG;AACd,QAAZ,QAAA,AAAM,KAAD,UAAI;;AAEX,UAAI,AAAM,KAAD;AACY,QAAnB,QAAc,aAAN,KAAK,IAAG;;AAES,MAA3B,AAAK,IAAD,mBAAkB,KAAK;IAC7B;;AAIa,0BAAgB,AAAa,AAAY;AAC1C,oBACN,AAAa,AAAM,AAAa,iCAAL,QAAQ,AAAa,AAAM,AAAK,6CACrD,KACA;AAKkD,MAJ5D,AAAa,AAAW,gDAAqB,qBACtB,aAAnB,AAAc,aAAD,sBAAQ,kBACH,AAAW,aAA7B,AAAc,aAAD,qBAAO,kBAAW,OAAO,EAClB,AAAY,aAAhC,AAAc,aAAD,uBAAS,gCAAY,mBACb,AAAW,AAAc,aAA9C,AAAc,aAAD,wBAAU,+BAAW,qBAAc,OAAO;IAC7D;wBAE0B,OAAe;AACvC,UAAU,aAAN,KAAK,iCAAS,WAAN,KAAK;AACM,gBAArB,gBAAc,WAAN,KAAK;;AAEf,UAAU,aAAN,KAAK,iCAAS,WAAN,KAAK;AACM,gBAArB,gBAAc,WAAN,KAAK;;AAEf,YAAO,MAAK;IACd;yBAGoB,UAAe,MAAU,kBAAyB;AAChE;AACJ,UAAqB,aAAjB,gBAAgB,IAAG;AACrB,iBAAS,IAAqB,aAAjB,gBAAgB,IAAG,GAAG,AAAE,CAAD,IAAI,GAAG,IAAA,AAAC,CAAA;AAC1B,qBAAO,AAAQ,AAAI,QAAJ,QAAC,CAAC;AACtB,uBAAS,AAAK,IAAD;AACxB,cAAI,AAAK,IAAD,KAAI,UAG8B,CAFpC,AAAK,AAAa,IAAd,kBAAiB,OACK,aAAlB,AAAK,IAAD,+BAAgB,AAAK,AAAkB,IAAnB,6BACZ,aAAZ,AAAO,MAAD,sBAAQ,AAAO,MAAD,wBAC1B,AAAK,IAAD;AAGsB,YAFhC,sBAAsB,AAAK,AAAa,IAAd,kBAAiB,OACnB,aAAlB,AAAK,IAAD,+BAAgB,AAAK,AAAkB,IAAnB,6BACZ,aAAZ,AAAO,MAAD,sBAAQ,AAAO,MAAD;AAC1B;gBACK,KAAI,AAAK,IAAD,KAAI,YAGuB,CAFpC,AAAK,AAAa,IAAd,kBAAiB,OACK,aAAlB,AAAK,IAAD,+BAAgB,AAAK,AAAkB,IAAnB,8BACb,aAAX,AAAO,MAAD,qBAAO,AAAO,MAAD,YAChB,aAAT,AAAK,IAAD,qBAAO,AAAK,IAAD;AAGW,YAFhC,sBAAsB,AAAK,AAAa,IAAd,kBAAiB,OACnB,aAAlB,AAAK,IAAD,+BAAgB,AAAK,AAAkB,IAAnB,8BACb,aAAX,AAAO,MAAD,qBAAO,AAAO,MAAD;AACzB;gBACK,KAAI,AAAK,IAAD,KAAI,WAGuB,CAFpC,AAAK,AAAa,IAAd,kBAAiB,OACK,aAAlB,AAAK,IAAD,+BAAgB,AAAK,AAAkB,IAAnB,6BACZ,aAAZ,AAAO,MAAD,sBAAQ,AAAO,MAAD,WAChB,aAAV,AAAK,IAAD,sBAAQ,AAAK,IAAD;AAGU,YAFhC,sBAAsB,AAAK,AAAa,IAAd,kBAAiB,OACnB,aAAlB,AAAK,IAAD,+BAAgB,AAAK,AAAkB,IAAnB,6BACZ,aAAZ,AAAO,MAAD,sBAAQ,AAAO,MAAD;AAC1B;gBACK,KAAI,AAAK,IAAD,KAAI,SAGuB,CAFpC,AAAK,AAAa,IAAd,kBAAiB,OACK,aAAlB,AAAK,IAAD,+BAAgB,AAAK,AAAkB,IAAnB,8BACb,aAAX,AAAO,MAAD,qBAAO,AAAO,MAAD,yBACzB,AAAK,IAAD;AAGsB,YAFhC,sBAAsB,AAAK,AAAa,IAAd,kBAAiB,OACnB,aAAlB,AAAK,IAAD,+BAAgB,AAAK,AAAkB,IAAnB,8BACb,aAAX,AAAO,MAAD,qBAAO,AAAO,MAAD;AACzB;;;;AAIN,YAAO,oBAAmB;IAC5B;;AAI4B,MAA1B;AAGA,oBAAI,AAAe;AACS,QAA1B;;AAIF,oBAAI,AAAiB;AACS,QAA5B;;AAIF,oBAAI,AAAgB;AACS,QAA3B;;AAIF,oBAAI,AAAc;AACS,QAAzB;;IAEJ;;AAIM;AAAU;AACJ,uBAAa,AAAe;AAC3B,iBAAO,AAAa,AAAW;AAC1C,eAAS,YAAY,GAAG,AAAU,SAAD,gBAAG,UAAU,GAAE,YAAA,AAAS,SAAA;AACjB,QAAtC,QAAQ,AAAc,AAAY,4BAAX,SAAS;AAChB,mBAAO,AAAc,AAAY,4BAAX,SAAS;AAC/C,YAAI,AAAK,IAAD,iBAAgB;AAGT,UAFb,WAAmE,AAC/C,aADR,2BAAoB,AAAK,IAAD,eAAc,AAAK,IAAD,8BAC9C,AAAK,IAAD,uBACR,AAAK,IAAD;AACR,cAAI,AAAU,SAAD,KAAI,gBAAM,AAAK,IAAD;AACQ,YAAjC,AAAK,IAAD,iBAA0B,aAAV,AAAK,IAAD,SAAQ;;;AAGxB,oCACN,yBAAmB,sBAAgB,IAAI,EAAE,SAAS,EAAE;AAcpC,UAbpB,WAAW,AAAoB,mBAAD,IAAI,OAC5B,AAAK,IAAD,QACiB,AAGL,AAOL,aAVV,mBAAmB,KACM,YAAnB,AAAK,IAAD,gBAAyC,wCACzB,aAAd,oCAAgB,AAAK,AAAkB,IAAnB,6BACrB,MACS,YAAlB,AAAK,IAAD,eAA8B,8BAC7B,mBACE,AAAK,AAAe,IAAhB,sBACuB,aAA3B,AAAK,IAAD,0BAAyB,IACvB,AAAK,AAAe,IAAhB,uBACJ,KACR,kBACN;;AAG4B,QADtC,AAAK,IAAD,YAAgB,qBAAS,QAAQ,EAAW,aAAT,AAAK,IAAD,qBAAO,AAAK,IAAD,cAAa,KAAK,EACxD,aAAZ,AAAK,IAAD,WAAU,AAAE,iBAAE,AAAK,IAAD;;IAE9B;;AAIM;AAAU;AACJ,uBAAa,AAAiB;AAC7B,iBAAO,AAAa,AAAW;AAC1C,eAAS,YAAY,GAAG,AAAU,SAAD,gBAAG,UAAU,GAAE,YAAA,AAAS,SAAA;AACd,QAAzC,SAAS,AAAgB,AAAY,8BAAX,SAAS;AACnB,mBAAO,AAAgB,AAAY,8BAAX,SAAS;AACjD,YAAI,AAAK,IAAD,iBAAgB;AAIF,UAHpB,WAAoB,AACJ,aADL,AAAK,IAAD,qBACX,AAAK,IAAD,WACoD,aAAvD,2BAAoB,AAAK,IAAD,eAAc,AAAK,IAAD,8BACvC,AAAK,IAAD;AACZ,cAAI,AAAU,SAAD,KAAI,gBAAM,AAAK,IAAD;AACqB,YAA9C,AAAK,IAAD,iBAAyB,AAAc,aAAvB,AAAK,IAAD,qBAAO,AAAK,IAAD,WAAU;;;AAGrC,oCACN,yBAAmB,wBAAkB,IAAI,EAAE,SAAS,EAAE;AAc1C,UAbhB,WAAY,AAAoB,mBAAD,IAAI,OACpB,aAAT,AAAK,IAAD,qBAAO,AAAK,IAAD,WACF,AACS,AAGX,aAJX,mCACE,mBAAmB,KACC,YAAnB,AAAK,IAAD,gBAAyC,wCACzB,aAAd,oCAAgB,AAAK,AAAkB,IAAnB,8BACrB,MACa,YAAlB,AAAK,IAAD,eAA8B,8BAC7B,mBACE,AAAK,AAAe,IAAhB,sBACuB,aAA3B,AAAK,IAAD,0BAAyB,IACvB,AAAK,AAAe,IAAhB,uBACJ,KACR;;AAG6B,QAD7C,AAAK,IAAD,YAAgB,qBAAmB,aAAV,AAAK,IAAD,sBAAQ,AAAK,IAAD,cAAa,QAAQ,EACnD,aAAX,AAAK,IAAD,UAAS,AAAE,iBAAE,AAAK,IAAD,cAAa,MAAM;;IAEhD;;AAIM;AAAU;AACJ,uBAAa,AAAgB;AAC5B,iBAAO,AAAa,AAAW;AAC1C,eAAS,YAAY,GAAG,AAAU,SAAD,gBAAG,UAAU,GAAE,YAAA,AAAS,SAAA;AACvC,mBAAO,AAAe,AAAY,6BAAX,SAAS;AACT,QAAvC,QAAQ,AAAe,AAAY,6BAAX,SAAS;AACjC,YAAI,AAAK,IAAD,iBAAgB;AAGH,UAFnB,WAAqB,aAAV,AAAK,IAAD,SAC6C,aAAvD,2BAAoB,AAAK,IAAD,eAAc,AAAK,IAAD,8BACvC,AAAK,IAAD;AACZ,cAAI,AAAU,SAAD,KAAI,gBAAM,AAAK,IAAD;AACqB,YAA9C,AAAK,IAAD,iBAA0B,AAAa,aAAvB,AAAK,IAAD,sBAAQ,AAAK,IAAD,UAAS;;;AAGrC,oCACN,yBAAmB,uBAAiB,IAAI,EAAE,SAAS,EAAE;AAcrC,UAbpB,WAAY,AAAoB,mBAAD,IAAI,OACnB,aAAV,AAAK,IAAD,sBAAQ,AAAK,IAAD,UACK,AAGL,AAOL,aAVV,mBAAmB,KACM,YAAnB,AAAK,IAAD,gBAAyC,wCACX,aAA7B,AAAK,AAAkB,IAAnB,0CAA2B,uBAC/B,MACS,YAAlB,AAAK,IAAD,eAA8B,8BAC7B,mBACE,AAAK,AAAe,IAAhB,sBACuB,aAA3B,AAAK,IAAD,0BAAyB,IACvB,AAAK,AAAe,IAAhB,uBACJ,KACR,kBACN;;AAG4B,QADtC,AAAK,IAAD,YAAgB,qBAAS,QAAQ,EAAW,aAAT,AAAK,IAAD,qBAAO,AAAK,IAAD,cAAa,KAAK,EACxD,aAAZ,AAAK,IAAD,WAAU,AAAE,iBAAE,AAAK,IAAD;;IAE9B;;AAIM;AAAU;AACJ,uBAAa,AAAc;AAC1B,iBAAO,AAAa,AAAW;AAC1C,eAAS,YAAY,GAAG,AAAU,SAAD,gBAAG,UAAU,GAAE,YAAA,AAAS,SAAA;AACvC,mBAAO,AAAa,AAAY,2BAAX,SAAS;AACR,QAAtC,SAAS,AAAa,AAAY,2BAAX,SAAS;AAChC,YAAI,AAAK,IAAD,iBAAgB;AAIF,UAHpB,WAAoB,AACJ,aADL,AAAK,IAAD,qBACX,AAAK,IAAD,WACoD,aAAvD,2BAAoB,AAAK,IAAD,eAAc,AAAK,IAAD,8BACvC,AAAK,IAAD;AACZ,cAAI,AAAU,SAAD,KAAI,gBAAM,AAAK,IAAD;AACO,YAAhC,AAAK,IAAD,iBAAyB,aAAT,AAAK,IAAD,QAAO;;;AAGvB,oCACN,yBAAmB,qBAAe,IAAI,EAAE,SAAS,EAAE;AAcnC,UAbpB,WAAY,AAAoB,mBAAD,IAAI,OAC7B,AAAK,IAAD,OACgB,AAGT,AAOA,aAVX,mBAAmB,KACG,YAAnB,AAAK,IAAD,gBAAyC,wCAC1B,aAAb,mCAAe,AAAK,AAAkB,IAAnB,8BACpB,MACa,YAAlB,AAAK,IAAD,eAA8B,8BAC7B,mBACE,AAAK,AAAe,IAAhB,sBACuB,aAA3B,AAAK,IAAD,0BAAyB,IACvB,AAAK,AAAe,IAAhB,uBACJ,KACR,kBACN;;AAGmC,QAD7C,AAAK,IAAD,YAAgB,qBAAmB,aAAV,AAAK,IAAD,sBAAQ,AAAK,IAAD,cAAa,QAAQ,EACnD,aAAX,AAAK,IAAD,UAAS,AAAE,iBAAE,AAAK,IAAD,cAAa,MAAM;;IAEhD;;;AAI0C,MAAxC,sBAAgB,AAAa;AACb,MAAhB,qBAAe;AACgC,MAA/C;AAC6B,MAA7B,sBAA2B;AACI,MAA/B,wBAA6B;AAE0B,MADvD,AAAa,AAAa,2CACY,KAAjC,AAAa,AAAa,+CAAA,OAAU;AAEY,MADrD,AAAa,AAAa,2CACU,MAAhC,AAAa,AAAa,gDAAA,OAAS;AAItC,MAHD,yBAA8B,yBAC5B,AAAa,iCACb,AAAa;AAE+B,yDAC1C,AAAa,AAAa;AAC9B,oBAAI,AAAc,aAAD;AACf,sBAAI,AAAa,AAAK;AACsB,UAA1C,AAAiB,gCAAO,AAAa;;AAEpB,wBAAoB;AACvC,iBAAS,YAAY,GACjB,AAAU,SAAD,gBAAG,AAAa,AAAK,mCAC9B,YAAA,AAAS,SAAA;AACsC,UAAjD,AAAU,SAAD,OAAK,AAAa,AAAI,AAAY,+BAAX,SAAS;;AAE3C,iBAAS,YAAY,GACjB,AAAU,SAAD,gBAAG,AAAiB,kCAC7B,YAAA,AAAS,SAAA;AACK,qBAAO,AAAgB,8BAAC,SAAS;AACjD,cAAS,uBAAL,IAAI;AACoB,YAA1B,AAAK,IAAD,YAAoB;;AAE0B,UAApD,AAAK,IAAD,YAA8C;AAClD,mBAAS,cAAc,GACnB,AAAY,WAAD,gBAAG,AAAc,aAAD,YAC3B,cAAA,AAAW,WAAA;AACwB,oDACjC,AAAa,aAAA,QAAC,WAAW;AAC7B,gBAAI,AAAO,AAAU,MAAX,cAAc,OAClB,AAAO,AAAU,AACuB,MADlC,cAAc,AAAK,IAAD,uBACrB,AAAU,SAAD,YAAU,AAAO,MAAD,gBAC1B,AAAO,AAAU,MAAX,cAAc,AAAa,AAAa,0CAChD,AAAK,AAAM,IAAP,YAAU,AAAa,AAAa;AAGZ,cAFhC,AAAK,IAAD,2BAAgB,AAAa,4CACX,kCACA;AACF,cAApB,AAAO,MAAD,YAAU,IAAI;AACI,cAAxB,AAAK,AAAQ,IAAT,gBAAa,MAAM;kBAClB,KAAI,AAAO,AAAU,MAAX,cAAc,OACzB,AAAO,AAAU,AACuB,MADlC,cAAc,AAAK,IAAD,uBACrB,AAAU,SAAD,YAAU,AAAO,MAAD,gBAC1B,AAAO,AAAU,MAAX,cAAc,AAAa,AAAa,0CAChD,AAAK,AAAM,IAAP,YAAU,AAAa,AAAa;AAGd,cAF9B,AAAK,IAAD,2BAAgB,AAAa,4CACX,oCACA;AACF,cAApB,AAAO,MAAD,YAAU,IAAI;AACI,cAAxB,AAAK,AAAQ,IAAT,gBAAa,MAAM;;;AAK3B,cAAI,AAAK,AAAa,IAAd,kBAAiB,kBAAQ,AAAa,AAAW;AACvD,qBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAa,AAAW,yCAAQ,IAAA,AAAC,CAAA;AACnD,4BAAI,AAAa,AAAU,AAAI,qCAAH,CAAC;AAC3B,oBAAI,AAAa,AAAU,AAAI,AAAU,qCAAb,CAAC,eAAe,AAAK,IAAD;AAGd,kBAFhC,AAAK,IAAD,2BAAgB,AAAa,4CACX,kCACA;sBACjB,KAAI,AAAa,AAAU,AAAI,AAAU,qCAAb,CAAC,eAAe,AAAK,IAAD;AAGvB,kBAF9B,AAAK,IAAD,2BAAgB,AAAa,4CACX,oCACA;;;;;AAK9B,cAAI,AAAK,IAAD,kBAAiB;AAGQ,YAFb,YAAlB,AAAK,IAAD,gBAAiC,mCAC/B,AAAc,0BAAI,IAAI,IACtB,AAAgB,4BAAI,IAAI;;;;AAMF,QAFhC,AAAa,AAAa,0DAAe,AAAa,4CAChC,kCACA;AAGQ,QAF9B,AAAa,AAAa,0DAAe,AAAa,4CAChC,oCACA;AACwB,QAA9C,AAAgB,4BAAI,AAAa;AACW,QAA5C,AAAc,0BAAI,AAAa;AAC/B,YAAI,AAAa,2BAAQ;AACmB,UAA1C,AAAiB,gCAAO,AAAa;;;IAG3C;;;IAhlBiB;IACD,kBAAuB;IACvB,mBAAwB;IACxB,iBAAsB;IACtB,oBAAyB;IACzB;IACA;IACA;IACA;IACT,oBAAc;IACd,iBAAW;IACX,kBAAY;IACZ,mBAAa;IAChB,sBAAgB;IAChB,qBAAe;IACd;IACW,sBAA2B;IAC3B,wBAA6B;IAC7B,yBAA8B;IAGzC;AA5Bc,IAAjB,sBAAgB;AACC,IAAjB,qBAAe;AACgC,IAA/C;AAC6B,IAA7B,sBAA2B;AACI,IAA/B,wBAA6B;AACT,IAApB,sBAAgB;EAClB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ECgEF;;;;;;;;;;;;;;qBAOmC;AAAS,YAAA,AAAK,AAAS,KAAV;IAAe;qBAE3B;AAAS,YAAA,AAAK,AAAS,KAAV;IAAe;0BAGxB,MAAU;AAC5C,YAAA,AAAK,AAAe,KAAhB;IAAqB;0BAGU,MAAU;AAC7C,YAAA,AAAK,AAAe,KAAhB;IAAqB;0BAIX,MAAU,gBAAoB;AAC5C,YAAA,AAAK,AAAe,KAAhB;IAAqB;0BAIX,MAAU,gBAAoB;AAC5C,YAAA,AAAK,AAAe,KAAhB;IAAqB;0BAGS,MAAU;AAC5C,YAAA,AAAK,AAAe,KAAhB;IAAqB;0BAGU,MAAU;AAC7C,YAAA,AAAK,AAAe,KAAhB;IAAqB;0BAIX,MAAU,gBAAoB;AAC5C,YAAA,AAAK,AAAe,KAAhB;IAAqB;0BAGX,MAAU,gBAAoB;AAC5C,YAAA,AAAK,AAAe,KAAhB;IAAqB;iBAGC,MAAa,MAAU;AAAe,iBAAI;;sBAItD,MAAa,MAAU;AACrC,YAAA,AAAK,KAAD;IAAW;sBAGa,MAAa,MAAU;AACnD,YAA2B,AAAqC,aAA/D,AAAK,IAAD,uBAAkD,uDAC/C,AAAK,IAAD,gBACN,KAC2B,AAAqC,YAA/D,AAAK,IAAD,uBAAkD,uDACjD,AAAK,IAAD,gBACN,KACA,AAAK,IAAD;IAAe;2BAItB,QAAkB,MAAuB;;AACvC,iBAAY,qBACD,aAAlB,AAAK,AAAQ,IAAT,+BAAgB,AAAK,IAAD,cACxB,AAAK,AAAQ,IAAT,eACe,aAAnB,AAAK,AAAQ,IAAT,mBAAiB,AAAE,iBAAE,AAAK,IAAD,cAC7B,AAAK,AAAQ,IAAT;AAEgB,uBAAa,iCACjC,AAAK,AAAc,IAAf,iCAAgC,IAAI,IACE,KAA1C,AAAK,AAAc,IAAf,iCAAgC,IAAI,SAArB,OACf,AAAM,AAAY,AAAY,KAAzB,gDACK;AAEoD,MADtE,uBAAgB,MAAM,EAAE,UAAU,EAAE,kBAAO,AAAK,IAAD,OAAO,AAAK,IAAD,OACtD,kBAAiB,aAAV,AAAK,IAAD,sBAAQ,AAAK,IAAD,SAAQ,AAAK,IAAD,OAAO,AAAK,AAAS,IAAV;AACT,MAAzC,oBAAc,kBAAO,AAAK,IAAD,OAAO,AAAK,IAAD;AACgB,MAApD,kBAAY,kBAAiB,aAAV,AAAK,IAAD,sBAAQ,AAAK,IAAD,SAAQ,AAAK,IAAD;IACjD;yBAIW,QAAkB,MAAuB;;AACvC,iBAAY,qBACnB,AAAK,AAAQ,IAAT,gBACa,aAAjB,AAAK,AAAQ,IAAT,8BAAe,AAAK,IAAD,cACvB,AAAK,AAAQ,IAAT,iBACgB,aAApB,AAAK,AAAQ,IAAT,oBAAkB,AAAE,iBAAE,AAAK,IAAD;AACV,uBAAa,iCACjC,AAAK,AAAc,IAAf,iCAAgC,IAAI,IACE,KAA1C,AAAK,AAAc,IAAf,iCAAgC,IAAI,SAArB,OACf,AAAM,AAAY,AAAY,KAAzB,gDACK;AAEqD,MADvE,uBAAgB,MAAM,EAAE,UAAU,EAAE,kBAAO,AAAK,IAAD,OAAO,AAAK,IAAD,OACtD,kBAAO,AAAK,IAAD,OAAgB,aAAT,AAAK,IAAD,qBAAO,AAAK,IAAD,WAAU,AAAK,AAAS,IAAV;IACrD;gCAIW,QAAkB,MAAuB,OACxC,mBACD,wBACG,gBACL;;AACI,uBAAa,AAAK,IAAD;AACN,0BAAgB,AAAK,IAAD;AACtC;AAAc;AAAQ;AAAQ,mBAAS,AAAc,aAAD;AACxD,UAAW,aAAP,MAAM,IAAG;AACU,oBAAQ,AAAK,IAAD;AAEtB,6BAAsB,AAAgB,uBAArB,IAAI,KACR,YAApB,AAAK,IAAD,iBAAkC;AAChC,+BAAmB,cAAc,GAAG,MAAM;AACpB,QAAhC,SAAO,aAAP,MAAM,KAAI,cAAc,GAAG,IAAI;AAC/B,iBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,MAAM,GAAE,IAAA,AAAC,CAAA;AAMC,UAL5B,eAAe,cAAc,GACvB,AAAE,CAAD,GAAU,aAAP,MAAM,IAAG,IACc,aAAvB,AAAa,AAAI,aAAJ,QAAC,CAAC,WAAU,gBAAgB,GACb,AAA+B,aAA1D,AAAa,AAAQ,aAAR,QAAC,AAAE,CAAD,GAAG,yCAAW,AAAK,AAAc,IAAf,6BAChC,gBAAgB,GACtB,AAAa,AAAI,aAAJ,QAAC,CAAC;AAGD,UAFpB,SAEK,CAF8C,AAAoB,aAA5D,2BAAoB,YAAY,EAAE,IAAI,kBAAI,AAAW,UAAD,uBACvD,AAAW,UAAD;AAEyC,UAA3D,SAAwB,AAAU,aAAzB,AAAW,UAAD,YAAqC,aAApB,AAAK,AAAS,IAAV,mBAAkB;AAE1D,wBAAI,WAAW;AACA,8BACT,uBAAiB,IAAI,EAAE,OAAO,EAAE,YAAY;AAGpC,YAFZ,SAAS,AAAY,WAAD,IAAI,OACL,aAAZ,WAAW,IAA0B,CAAV,aAAZ,WAAW,iBAAG,MAAM,kBAAI,eAAe,IACvD,MAAM;;AAGd,cAA8B,aAA1B,AAAK,AAAe,IAAhB,yBAAwB,KAC5B,AAAW,UAAD,KAAI,cACG,aAAhB,AAAK,IAAD,eAAc,KACd,CAAC,KAAI,KAAK,CAAC,KAAW,aAAP,MAAM,IAAG,KACR,aAAhB,AAAW,UAAD,uBAAS,MAAM,KACL,aAAjB,AAAW,UAAD,wBAAU,MAAM,gBACzB,AAAM,KAAD;AAEgD,YADhE,AAAK,AAAc,IAAf,iDAAgD,MAAM,EACtD,kBAAO,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,AAAK,IAAD,iBAAiB,CAAC,EAAE,KAAK;;AAEjE,cAA8B,aAA1B,AAAK,AAAe,IAAhB,yBAAwB,KAA+B,aAA1B,AAAK,AAAe,IAAhB,yBAAwB;AAC3D,4CAAY,cAAc,GACV,aAAb,YAAY,iCAAG,AAAK,AAAc,IAAf,6BACpB,AAAE,CAAD,KAAW,aAAP,MAAM,IAAG,IACV,AAAK,AAAc,IAAf,gCACJ,AAAa,aAAA,QAAC,AAAE,CAAD,GAAG,iBAAL,OAAS;AAChC,gBAAI,SAAS,IAAI;AAIS,cAHxB,YAGS,CAFkC,AAAoB,aAAzD,2BAAoB,SAAS,EAAE,IAAI,kBAAI,AAAW,UAAD,uBAC3C,AAAW,UAAD;AAGkC,cADxD,AAAK,AAAc,IAAf,6CAA4C,MAAM,EAAE,IAAI,EACxD,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU;;;AAI3D,cAA8B,aAA1B,AAAK,AAAe,IAAhB,yBAAwB,KACX,aAAhB,AAAW,UAAD,uBAAS,MAAM,KAAqB,aAAjB,AAAW,UAAD,wBAAU,MAAM,KACxD,AAAW,UAAD,IAAsB,AAAW,AAAU,cAAvC,AAAK,IAAD,uBAA+B,YAAK;AAiBhB,YAhBxC,uBACI,MAAM,EACN,iCACI,AAAK,AAAc,IAAf,sCAAqC,IAAI,EAAE,CAAC,IACE,MAAlD,AAAK,AAAc,IAAf,sCAAqC,IAAI,EAAE,CAAC,UAA7B,OACf,AAAM,AAAY,AAAY,KAAzB,sDACK,0BAClB,kBAAO,MAAM,EAAE,MAAM,GACrB,kBACI,MAAM,EACN,WAAC,AAAK,IAAD,8BACE,AAAK,IAAD,2BACM,aAAP,MAAM,iBAAG,AAAM,KAAD,SACP,aAAP,MAAM,iBAAG,AAAM,KAAD,mBACjB,AAAK,IAAD,2BACM,aAAP,MAAM,iBAAG,AAAM,KAAD,SACP,aAAP,MAAM,iBAAG,AAAM,KAAD;;;;IAIxC;qCAG6C,QAAe,OAC9C,MAAqB,OAAW,OAAwB;;AAC5C,uBAAa,iCACjC,AAAK,AAAc,IAAf,sCAAqC,IAAI,EAAE,KAAK,IACE,KAAtD,AAAK,AAAc,IAAf,sCAAqC,IAAI,EAAE,KAAK,SAAjC,OACf,AAAM,AAAY,AAAY,KAAzB,qDACK;AASE,MARpB,uBACI,MAAM,EACN,UAAU,EACV,kBAAO,AAAM,KAAD,KAAK,AAAM,AAAW,AAAc,KAA1B,kCACtB,kBACI,AAAM,KAAD,KAC8B,aAAnC,AAAM,AAAW,AAAc,KAA1B,gDACD,AAAM,AAAW,AAAc,KAA1B,sCACb,AAAM,KAAD;IACX;iCAIW,QACG,MACN,cACC,MACD,WACA,OACa,OACT;;AACN,qBAAW,YAAY;AACN,kBAAQ,AAAK,IAAD;AACvB,qBACqB,AAAM,CAAnB,aAAb,YAAY,iBAAG,SAAS,cAAsC,aAA3B,AAAK,IAAD,0BAAyB;AACrE,eAAa,IAAI,cAAK,WAAF,CAAC,QAAG,AAAK,IAAD,2BAAwB,IAAC,WAAD,CAAC;AAC/B,QAApB,WAAS,aAAT,QAAQ,IAAI,QAAQ;AACV,qBAAS,AAAK,IAAD;AACvB,YAA8B,aAA1B,AAAK,AAAe,IAAhB,yBAAwB,KAC5B,AAAW,UAAD,KAAI,aACK,aAAlB,AAAK,AAAQ,IAAT,gCAAiB,QAAQ,KAAuB,aAAnB,AAAK,AAAQ,IAAT,iCAAkB,QAAQ;AAahC,UAZlC,uBACI,MAAM,EACN,iCACI,AAAK,AAAc,IAAf,sCAAqC,IAAI,EAAE,KAAK,kBAAE,CAAC,KACE,KAAzD,AAAK,AAAc,IAAf,sCAAqC,IAAI,EAAE,KAAK,kBAAE,CAAC,UAApC,OACf,AAAM,AAAY,AAAY,KAAzB,qDACK,0BAClB,kBAAO,QAAQ,EAAE,AAAM,AAAW,AAAc,KAA1B,kCACtB,kBACI,QAAQ,EAC2B,aAAnC,AAAM,AAAW,AAAc,KAA1B,gDACD,AAAM,AAAW,AAAc,KAA1B,sCACb,AAAK,AAAe,IAAhB;;AAGV,YAA8B,aAA1B,AAAK,AAAe,IAAhB,yBAAwB,KACV,aAAlB,AAAK,AAAQ,IAAT,gCAAiB,QAAQ,KACV,aAAnB,AAAK,AAAQ,IAAT,iCAAkB,QAAQ,KAC9B,AAAW,UAAD,IAAsB,AAAW,AAAU,cAAvC,AAAK,IAAD,uBAA+B,YAAK;AAkBtB,UAjBlC,uBACI,MAAM,EACN,iCACI,AAAK,AAAc,IAAf,sCAAqC,IAAI,EAAE,KAAK,kBAAE,CAAC,KACE,MAAzD,AAAK,AAAc,IAAf,sCAAqC,IAAI,EAAE,KAAK,kBAAE,CAAC,WAApC,OACf,AAAM,AAAY,AAAY,KAAzB,sDACK,0BAClB,kBAAO,QAAQ,EAAE,MAAM,GACvB,kBACI,QAAQ,EACR,WAAC,AAAK,IAAD,8BACE,AAAK,IAAD,2BACM,aAAP,MAAM,iBAAG,AAAM,KAAD,SACP,aAAP,MAAM,iBAAG,AAAM,KAAD,mBACjB,AAAK,IAAD,2BACM,aAAP,MAAM,iBAAG,AAAM,KAAD,SACP,aAAP,MAAM,iBAAG,AAAM,KAAD,SAC5B,AAAK,AAAe,IAAhB;;;IAGd;8BAIW,QAAkB,MAAuB,OACxC,mBACD,wBACG,gBACL;;AACI,uBAAa,AAAK,IAAD;AACN,0BAAgB,AAAK,IAAD;AACtC;AAAc;AAAQ;AAAQ,mBAAS,AAAc,aAAD;AAE7C,2BAAsB,AAAgB,uBAArB,IAAI,KACR,YAApB,AAAK,IAAD,iBAAkC;AAChC,6BAAmB,cAAc,GAAG,MAAM;AACpB,MAAhC,SAAO,aAAP,MAAM,KAAI,cAAc,GAAG,IAAI;AAC/B,eAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,MAAM,GAAE,IAAA,AAAC,CAAA;AAMC,QAL5B,eAAe,cAAc,GACvB,AAAE,CAAD,GAAU,aAAP,MAAM,IAAG,IACc,aAAvB,AAAa,AAAI,aAAJ,QAAC,CAAC,WAAU,gBAAgB,GACb,AAA+B,aAA1D,AAAa,AAAQ,aAAR,QAAC,AAAE,CAAD,GAAG,yCAAW,AAAK,AAAc,IAAf,6BAChC,gBAAgB,GACtB,AAAa,AAAI,aAAJ,QAAC,CAAC;AAEH,QADlB,SAAkD,AAAqB,aAA7D,2BAAoB,YAAY,EAAE,IAAI,kBAAI,AAAW,UAAD,wBAC1D,AAAW,UAAD;AAEqB,QADnC,SAAyB,AAAqB,aAApC,AAAW,UAAD,qBAAO,AAAW,UAAD,WACP,CAAlB,aAAP,MAAM,iBAAG,AAAW,UAAD;AACoC,QAA5D,SAAyB,AAAU,aAA1B,AAAW,UAAD,aAAsC,aAApB,AAAK,AAAS,IAAV,mBAAkB;AAE3D,sBAAI,WAAW;AACA,4BACT,uBAAiB,IAAI,EAAE,OAAO,EAAE,YAAY;AAGpC,UAFZ,SAAS,AAAY,WAAD,IAAI,OACL,aAAZ,WAAW,IAA0B,CAAV,aAAZ,WAAW,iBAAG,MAAM,kBAAI,eAAe,IACvD,MAAM;;AAGd,YAA8B,aAA1B,AAAK,AAAe,IAAhB,yBAAwB,KAC5B,AAAW,UAAD,KAAI,cACG,aAAhB,AAAK,IAAD,eAAc,MACb,AAAE,CAAD,KAAI,KAAK,AAAE,CAAD,KAAW,aAAP,MAAM,IAAG,MAAM,AAAM,AAAoB,KAArB,yBAAwB,MAC1D,AAAE,CAAD,KAAI,gBAAM,AAAK,IAAD,qBACT,AAAE,CAAD,KAAW,aAAP,MAAM,IAAG,eAAK,AAAK,IAAD,sBAC5B,AAAK,AAAS,AAAM,IAAhB,oBAAmB,KACX,aAAf,AAAW,UAAD,QAAc,aAAP,MAAM,iBAAG,AAAK,AAAe,IAAhB,0BACT,aAAlB,AAAW,UAAD,WAAiB,aAAP,MAAM,iBAAG,AAAK,AAAe,IAAhB;AAEqB,UADhE,AAAK,AAAc,IAAf,+CAA8C,MAAM,EACpD,kBAAO,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,AAAK,IAAD,iBAAiB,CAAC,EAAE,KAAK;;AAEjE,YAA8B,aAA1B,AAAK,AAAe,IAAhB,yBAAwB,KAA+B,aAA1B,AAAK,AAAe,IAAhB,yBAAwB;AAEE,UADjE,AAAK,AAAc,IAAf,+CACA,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU;;AAElE,YAA8B,aAA1B,AAAK,AAAe,IAAhB,yBAAwB,KAC5B,AAAW,UAAD,IAAsB,AAAW,AAAU,cAAvC,AAAK,IAAD,uBAA+B,YAAK;AAiBxC,UAhBhB,uBACI,MAAM,EACN,iCACI,AAAK,AAAc,IAAf,sCAAqC,IAAI,EAAE,CAAC,IACE,KAAlD,AAAK,AAAc,IAAf,sCAAqC,IAAI,EAAE,CAAC,SAA7B,OACf,AAAM,AAAY,AAAY,KAAzB,qDACK,0BAClB,kBAAO,MAAM,EAAE,MAAM,GACrB,kBACI,WAAC,AAAK,IAAD,8BACE,AAAK,IAAD,2BACM,aAAP,MAAM,iBAAG,AAAK,AAAe,IAAhB,wBACN,aAAP,MAAM,iBAAG,AAAK,AAAe,IAAhB,kCAChB,AAAK,IAAD,2BACM,aAAP,MAAM,iBAAG,AAAK,AAAe,IAAhB,wBACN,aAAP,MAAM,iBAAG,AAAK,AAAe,IAAhB,uBACvB,MAAM;;;IAGpB;mCAG2C,QAAe,OAC5C,MAAqB,OAAW,OAAwB;;AAC5C,uBAAa,iCACjC,AAAK,AAAc,IAAf,sCAAqC,IAAI,EAAE,KAAK,IACE,KAAtD,AAAK,AAAc,IAAf,sCAAqC,IAAI,EAAE,KAAK,SAAjC,OACf,AAAM,AAAY,AAAY,KAAzB,qDACK;AAClB,uBAAI,AAAM,AAAa,AAAc,KAA5B,2CACD,kBAAO,AAAM,AAAW,AAAc,KAA1B,kCAAgC,AAAM,KAAD,sBACrD,AAAM,AAAa,AAAc,KAA5B,yCACD,kBACwC,aAApC,AAAM,AAAW,AAAc,KAA1B,iDACD,AAAM,AAAW,AAAc,KAA1B,oCACT,AAAM,KAAD,OACf,AAQoB,uBAPhB,MAAM,EACN,UAAU,EACV,kBAAO,AAAM,AAAW,AAAc,KAA1B,kCAAgC,AAAM,KAAD,MACjD,kBACwC,aAApC,AAAM,AAAW,AAAc,KAA1B,iDACD,AAAM,AAAW,AAAc,KAA1B,oCACT,AAAM,KAAD,MACT,AAAM,KAAD;IACb;mCAG2C,QAAkB,MACrD,cAAmB,MAAU,OAAwB,OACjD;;AACN,kBAAQ,YAAY;AAAE,qBAAW;AACjB,kBAAQ,AAAK,IAAD;AACrB,sBAAuC,AAAI,aAA/B,AAAK,IAAD,0BAAyB,MACrB,aAA1B,AAAK,AAAe,IAAhB,yBAAwB,KAA+B,aAA1B,AAAK,AAAe,IAAhB,yBAAwB;AAClE,UAAI,SAAS;AACX,iBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAK,IAAD,yBAAwB,IAAA,AAAC,CAAA;AACW,UAA1D,QAAM,aAAN,KAAK,iCAAmB,WAAf,AAAM,KAAD,iBAAwC,aAA3B,AAAK,IAAD,0BAAyB;AACxD,cAAW,aAAN,KAAK,iCAAG,AAAM,KAAD,cAAoB,aAAN,KAAK,iCAAG,AAAM,KAAD;AACc,YAAzD,WAA4C,aAAjC,2BAAoB,KAAK,EAAE,IAAI,kBAAI,AAAK,IAAD;AACC,YAAnD,WAAiC,AAAQ,CAA7B,AAAS,QAAD,gBAAG,AAAK,IAAD;AAC3B,gBAA8B,aAA1B,AAAK,AAAe,IAAhB,yBAAwB,KAC5B,AAAW,UAAD,KAAI,aACL,aAAT,AAAK,IAAD,SAAQ,QAAQ,IACR,aAAZ,AAAK,IAAD,YAAW,QAAQ;AAaS,cAZlC,uBACI,MAAM,EACN,iCACI,AAAK,AAAc,IAAf,sCAAqC,IAAI,EAAE,KAAK,EAAE,CAAC,IACE,KAAzD,AAAK,AAAc,IAAf,sCAAqC,IAAI,EAAE,KAAK,EAAE,CAAC,SAApC,OACf,AAAM,AAAY,AAAY,KAAzB,qDACK,0BAClB,kBAAO,AAAM,AAAW,AAAc,KAA1B,kCAAgC,QAAQ,GACpD,kBACwC,aAApC,AAAM,AAAW,AAAc,KAA1B,iDACD,AAAM,AAAW,AAAc,KAA1B,oCACT,QAAQ,GACZ,AAAK,AAAe,IAAhB;;AAEV,gBAA8B,aAA1B,AAAK,AAAe,IAAhB,yBAAwB,KAC5B,AAAW,UAAD,IAAsB,AAAW,AAAU,cAAvC,AAAK,IAAD,uBAA+B,YAAK;AAiBtC,cAhBlB,uBACI,MAAM,EACN,iCACI,AAAK,AAAc,IAAf,sCAAqC,IAAI,EAAE,KAAK,EAAE,CAAC,IACE,MAAzD,AAAK,AAAc,IAAf,sCAAqC,IAAI,EAAE,KAAK,EAAE,CAAC,UAApC,OACf,AAAM,AAAY,AAAY,KAAzB,sDACK,0BAClB,kBAAO,AAAK,IAAD,OAAO,QAAQ,GAC1B,kBACI,WAAC,AAAK,IAAD,8BACE,AAAK,IAAD,2BACS,aAAV,AAAK,IAAD,sBAAQ,AAAK,AAAe,IAAhB,wBACN,aAAV,AAAK,IAAD,sBAAQ,AAAK,AAAe,IAAhB,kCACnB,AAAK,IAAD,2BACS,aAAV,AAAK,IAAD,sBAAQ,AAAK,AAAe,IAAhB,wBACN,aAAV,AAAK,IAAD,sBAAQ,AAAK,AAAe,IAAhB,uBAC1B,QAAQ;;;;;IAK1B;6BAIW,QAAkB,MAAuB,OACxC,mBACD,wBACG,gBACL;;AACP,UAAI,AAAW,UAAD,IAAuB,AAAW,AAAU,cAAxC,AAAK,IAAD,wBAAgC,YAAK;AAC9C,yBAAa,AAAK,IAAD;AACxB;AACW;AACO,4BAAgB,AAAK,IAAD;AACtC;AAAc;AAAQ;AAC1B,iBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAc,aAAD,YAAS,IAAA,AAAC,CAAA;AACzB,sBAAQ,AAAa,aAAA,QAAC,CAAC;AAC1B,0BACT,AAAK,AAAc,IAAf,6BAA4B,IAAI,EAAE,AAAM,KAAD,OAAO,CAAC;AAE3B,UAA5B,YAAY,AAAM,KAAD;AAIoC,UAHrD,YAAY,iCACG,SAAS,cACO,KAAhB,AAAU,SAAD,cAAC,OACjB,AAAM,AAAY,AAAY,KAAzB;AACa,UAA1B,eAAe,AAAM,KAAD;AAC4C,UAAhE,QAAQ,AAAK,AAAc,IAAf,kCAAiC,IAAI,EAAE,SAAS,EAAE,CAAC;AACpD,yBAAW,oBAAa,SAAS,EAAE,SAAS;AAC5C,gCAAkB,oBAAa,SAAS,EAAE,SAAS,EAAE,KAAK;AAGjD,UAFpB,SAEK,CAF8C,AAAoB,aAA5D,2BAAoB,YAAY,EAAE,IAAI,kBAAI,AAAW,UAAD,uBACvD,AAAW,UAAD;AAE0B,UAA5C,SAAS,iBAAW,IAAI,EAAE,KAAK,EAAE,UAAU;AACG,UAA9C,SAAO,aAAP,MAAM,KAAI,AAAM,KAAD,KAAI,IAAoB,aAAhB,AAAS,QAAD,WAAU,IAAI;AACT,UAApC,SAAO,aAAP,MAAM,IAA2B,aAAvB,AAAgB,eAAD,WAAU;AACU,UAA7C,SAAO,aAAP,MAAM,KAAI,AAAM,KAAD,KAAI,IAAmB,aAAf,AAAS,QAAD,UAAS,IAAI;AAI0B,UADtE,SACI,0BAAoB,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AACrE,cAA4B,YAAxB,AAAK,IAAD,qBAA0C;AAChD,gBAAK,AAAE,CAAD,KAAI,MACO,aAAP,MAAM,iBAAG,AAAW,UAAD,qBAAU,AAAK,IAAD,gBACvB,AAAiB,aAAxB,MAAM,iBAAG,AAAS,QAAD,uBAAS,AAAW,UAAD,qBACjC,AAAK,IAAD,iBACf,AAAE,CAAD,KAA+B,aAA3B,AAAK,AAAe,IAAhB,6BAAyB,KACvB,AAAkB,aAAzB,MAAM,iBAAG,AAAS,QAAD,UACG,aAAhB,AAAW,UAAD,sBAAQ,AAAW,UAAD;AACG,cAA1C,AAAK,AAAc,AAAI,IAAnB,wBAAgB,CAAC,iBAAgB;AACrC;;;AAIJ,cAA8B,YAA1B,AAAK,IAAD,uBAAkD,yCACtD,AAAK,AAAc,AAAM,IAArB,wBAAiB,SAAO,KAC5B,CAAC,KAAI,eACL,AAAK,AAAc,AAAQ,IAAvB,wBAAgB,AAAE,CAAD,GAAG,qBACvB,WAAC,AAAK,IAAD,eACO,aAAP,MAAM,iBAAG,AAAa,AAAQ,AAAa,aAArB,QAAC,AAAE,CAAD,GAAG,0BACS,aAApC,AAAa,AAAI,AAAa,aAAjB,QAAC,CAAC,sCACb,AAAa,AAAQ,AAAa,aAArB,QAAC,AAAE,CAAD,GAAG;AACc,YAA1C,AAAK,AAAc,AAAI,IAAnB,wBAAgB,CAAC,iBAAgB;AACrC;;AAGF,wBAAI,WAAW;AACA,8BACT,uBAAiB,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK;AAGrD,YAFZ,SAAS,AAAY,WAAD,IAAI,OACL,aAAZ,WAAW,IAA0B,CAAV,aAAZ,WAAW,iBAAG,MAAM,kBAAI,eAAe,IACvD,MAAM;;AAED,sBAAQ,kBAAO,MAAM,EAAE,MAAM;AAC1C,cAAoB,AAAiB,aAAjC,AAAW,UAAD,sBAAQ,AAAS,QAAD,wBAAU,MAAM,GAC5C,AAAqD,iBAA3C,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK;AACtD,cAAI,AAAM,KAAD,sBAAqB,kBAC1B,AAAM,AAAiB,KAAlB,oCACqB,YAA1B,AAAK,IAAD,uBAAkD;AACxD,qBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAM,AAAiB,KAAlB,8BAA0B,IAAA,AAAC,CAAA;AACrC,4BAAU,AAAM,AAAgB,KAAjB,0BAAkB,CAAC;AAWrC,cAVV,iBACI,MAAM,EACN,OAAO,EACP,kBACI,MAAM,EACC,aAAP,MAAM,IACD,AAAE,CAAD,gBACE,AACK,oBADQ,OAAO,EAAE,AAAK,IAAD,aAAa,KAAK,YAExD,SAAS,EACT,KAAK;;;;;IAKnB;2BAIW,QAAkB,MAAuB,OACxC,mBACD,wBACG,gBACL;;AACP,UAAuB,AAAW,AAAU,AAAI,cAA5C,AAAK,IAAD,wBAAgC,YAAK,MAAM,UAAU;AAChD,yBAAa,AAAK,IAAD;AACN,4BAAgB,AAAK,IAAD;AAC3B;AACX;AAAc;AAAQ;AAAQ;AAClC,iBAAa,IAAI,cAAK,WAAF,CAAC,QAAG,AAAc,aAAD,cAAS,IAAC,WAAD,CAAC;AAChC,0BACT,AAAK,AAAc,IAAf,6BAA4B,IAAI,EAAE,AAAa,AAAI,aAAJ,wBAAC,CAAC,yBAAQ,CAAC;AACxD,sBACN,AAAK,AAAc,IAAf,kCAAiC,IAAI,EAAE,SAAS,kBAAE,CAAC;AACpB,UAAvC,YAAY,AAAa,AAAI,aAAJ,wBAAC,CAAC;AAI0B,UAHrD,YAAY,iCACG,SAAS,cACO,KAAhB,AAAU,SAAD,cAAC,OACjB,AAAM,AAAY,AAAY,KAAzB;AACwB,UAArC,eAAe,AAAa,AAAI,aAAJ,wBAAC,CAAC;AACnB,yBAAW,oBAAa,SAAS,EAAE,SAAS,EAAE;AAEvC,UADlB,SAAkD,AAAqB,aAA7D,2BAAoB,YAAY,EAAE,IAAI,kBAAI,AAAW,UAAD,wBAC1D,AAAW,UAAD;AAGS,UAFvB,SAA0B,AAAqB,AACJ,aADhC,AAAW,UAAD,qBAAO,AAAW,UAAD,WACH,CAAV,aAAf,AAAW,UAAD,qBAAO,MAAM,aACb,aAAhB,AAAS,QAAD,WAAU;AACyB,UAA/C,SAAS,iBAAW,IAAI,EAAE,QAAQ,EAAE,UAAU;AACzB,yBAAW,+BAC5B,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI;AACrD,cAAwB,YAApB,AAAK,IAAD,iBAAkC;AACrB,YAAnB,SAAS,AAAS,QAAD;AACE,YAAnB,SAAS,AAAS,QAAD;gBACZ,KAAwB,YAApB,AAAK,IAAD,iBAAkC;AAC5B,YAAnB,SAAS,AAAS,QAAD;AACwB,YAAzC,SAAoB,aAAX,AAAS,QAAD,MAAqB,aAAhB,AAAS,QAAD,WAAU;gBACnC,KAAwB,YAApB,AAAK,IAAD,iBAAkC;AAC5B,YAAnB,SAAS,AAAS,QAAD;AACwB,YAAzC,SAAoB,aAAX,AAAS,QAAD,MAAqB,aAAhB,AAAS,QAAD,WAAU;;AAE1C,cAA8B,YAA1B,AAAK,IAAD,uBAAkD,sDACtD,CAAC,EAAI,OACJ,WAAC,AAAK,IAAD,eACO,AAAwB,aAA/B,MAAM,IAAoB,aAAhB,AAAS,QAAD,WAAU,iBAAK,WAAW,IACrC,AAAwB,aAA/B,MAAM,IAAoB,aAAhB,AAAS,QAAD,WAAU,iBAAK,WAAW;AACpD;;AAIgC,UAFlC,cAAc,WAAC,AAAK,IAAD,eACN,aAAP,MAAM,IAAmB,aAAhB,AAAS,QAAD,WAAU,IACpB,aAAP,MAAM,IAAmB,aAAhB,AAAS,QAAD,WAAU;AAGjC,cAA4B,YAAxB,AAAK,IAAD,qBAA0C;AAChD,gBAAM,YAAF,CAAC,EAAI,MAAuB,aAAlB,AAAW,UAAD,YAAkB,aAAP,MAAM,IAAmB,aAAhB,AAAS,QAAD,WAAU;AACC,cAA7D,SAAwB,AAAoB,aAAnC,AAAW,UAAD,qBAAO,AAAW,UAAD,wBAAU,AAAS,QAAD;kBACjD,KAAM,YAAF,CAAC,EAA+B,aAA3B,AAAK,AAAe,IAAhB,6BAAyB,MAC1B,aAAf,AAAW,UAAD,SAAe,aAAP,MAAM,IAAmB,aAAhB,AAAS,QAAD,WAAU;AACxB,cAAvB,SAAS,AAAW,UAAD;;gBAEhB,KAA4B,YAAxB,AAAK,IAAD,qBAA0C;AACvD,gBAAM,YAAF,CAAC,EAAI,MAAO,YAAF,CAAC,EAA+B,aAA3B,AAAK,AAAe,IAAhB,6BAAyB;AAC9C;;;AAI8D,UADlE,AAAK,AAAc,AAAI,IAAnB,wCAAgB,CAAC,mBACZ,qBAAS,MAAM,EAAE,MAAM,EAAE,AAAS,QAAD,QAAQ,AAAS,QAAD;AAE1D,wBAAI,WAAW;AACA,8BACT,uBAAiB,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ;AAG9C,YAFZ,SAAS,AAAY,WAAD,IAAI,OACL,aAAZ,WAAW,IAA0B,CAAV,aAAZ,WAAW,iBAAG,MAAM,kBAAI,eAAe,IACvD,MAAM;;AAGD,sBAAQ,kBAAO,MAAM,EAAE,MAAM;AAC1C,cAAmB,AAAkB,aAAjC,AAAW,UAAD,qBAAO,AAAS,QAAD,yBAAW,MAAM,KACxB,AAAkB,aAApC,AAAW,UAAD,wBAAU,AAAS,QAAD,yBAAW,MAAM,GAC/C,AAAmE,iBAAzD,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,AAAK,IAAD;;;IAG3D;uBAEkC,MAAgB,SAAiB,OACzD,iBAAc;AACf;AACI,mBAAS,AAAK,IAAD;AACK,MAA7B,AAAS,QAAD,IAAC,OAAT,6BAAS;AACT,qBAAkC,WAA9B,AAAQ,AAAc,OAAf,+BAAyB,KAAK;AAGa,QAFpD,WAA6B,YAAlB,AAAK,IAAD,gBAAiC,6CACzC,AAAK,IAAD,eAAc,AAAO,MAAD,OAAO,AAAO,MAAD,oBACrC,AAAK,IAAD,eAAc,AAAO,MAAD,SAAS,AAAO,MAAD;YACzC,gBAAkC,WAA9B,AAAQ,AAAc,OAAf,+BAAyB,KAAK;AAGM,QAFpD,WAA6B,YAAlB,AAAK,IAAD,gBAAiC,6CACzC,AAAK,IAAD,eAAc,AAAO,MAAD,UAAU,AAAO,MAAD,iBACxC,AAAK,IAAD,eAAc,AAAO,MAAD,QAAQ,AAAO,MAAD;;AAE7C,YAAsB,YAAlB,AAAK,IAAD,gBAAiC;AAGZ,UAF3B,WACyC,AAA0B,aAA9D,2CAAoB,KAAK,GAAE,OAAO,kBAAI,AAAQ,AAAQ,OAAT,iCAC1C,AAAQ,AAAQ,OAAT;AAGQ,UAFvB,WAAiC,AAA0B,AACT,aADrC,AAAQ,AAAQ,OAAT,8BAAe,AAAQ,AAAQ,OAAT,oBACA,CAAZ,aAApB,AAAQ,AAAQ,OAAT,8BAAe,QAAQ,aACpB,aAAhB,AAAS,QAAD,WAAU;;AAKE,UAHxB,WAGS,CAFiC,AAAyB,aAA7D,2CAAoB,KAAK,GAAE,OAAO,kBAAI,AAAQ,AAAQ,OAAT,gCACvC,AAAQ,AAAQ,OAAT;AAEnB,cAAI,KAAK,IAAI;AACoC,YAA/C,WAAS,aAAT,QAAQ,KAAI,AAAM,KAAD,KAAI,IAAmB,aAAf,AAAS,QAAD,UAAS,IAAI;;;;AAIpD,YAAO,SAAQ;IACjB;iBAE4B,MAAW,UAAe;AAChD;AAEJ,UAAuB,YAAnB,AAAK,IAAD,gBAAyC;AAQqB,QAPpE,SAAU,WAAC,AAAK,IAAD,oBACQ,AACF,aADd,AAAW,UAAD,oCAER,AAAK,IAAD,2BAAyB,AAAK,AAAe,IAAhB,uBAAuB,KAC1C,AACc,AAChB,aAFd,AAAW,UAAD,sBACT,AAAK,AAAkB,IAAnB,wDAEH,AAAK,IAAD,2BAAyB,AAAK,AAAe,IAAhB,uBAAuB;;AAavC,QAX1B,SAAU,WAAC,AAAK,IAAD,oBACT,AAAK,AAAa,IAAd,kBAAiB,OACC,aAAlB,AAAK,IAAD,+BAAgB,AAAS,QAAD,UACX,AAC6C,AAC7C,aAFhB,AAAW,UAAD,gCACR,AAAK,IAAD,2BAAyB,IAAI,AAAK,AAAe,IAAhB,qCACtC,AAAS,QAAD,cAEb,AAAK,AAAa,IAAd,kBAAiB,OAClB,AAAK,IAAD,iBACa,AAC6C,aAD7D,AAAW,UAAD,gCACR,AAAK,IAAD,2BAAyB,IAAI,AAAK,AAAe,IAAhB;;AAGpD,YAAO,OAAM;IACf;iBAE4B,MAAgB,OAAY;AAC/C;AAEP,UAAuB,YAAnB,AAAK,IAAD,gBAAyC;AAUmB,QATlE,SAAS,WAAC,AAAK,IAAD,oBACO,AACA,AAGwB,aAJvC,AAAW,UAAD,yBAEM,aAAb,AAAM,KAAD,YAAU,IACoB,aAA9B,AAAK,AAAkB,IAAnB,8BAA4B,IAChC,AAAK,AAAkB,IAAnB,qDACT,AAAK,IAAD,2BAAyB,AAAK,AAAe,IAAhB,uBAAuB,KAC5C,AAC+C,aAD9D,AAAW,UAAD,+BACP,AAAK,IAAD,2BAAyB,AAAK,AAAe,IAAhB,uBAAuB,MAC3C,aAAb,AAAM,KAAD,YAAU,IAAkC,aAA9B,AAAK,AAAkB,IAAnB,8BAA4B,IAAI;;AAmBtB,QAjB1C,SAAS,WAAC,AAAK,IAAD,oBACR,AAAK,AAAa,IAAd,kBAAiB,OACjB,AAAK,IAAD,iBACY,AAEI,aAFnB,AAAW,UAAD,SACoD,uBAA3D,AAAK,IAAD,2BAAyB,IAAI,AAAK,AAAe,IAAhB,8BAEzB,aAAb,AAAM,KAAD,YAAU,IAAkC,aAA9B,AAAK,AAAkB,IAAnB,8BAA4B,IAAI,KAC9D,AAAK,AAAa,IAAd,kBAAiB,OACC,aAAlB,AAAK,IAAD,+BAAgB,AAAK,AAAkB,IAAnB,8BACR,AAOA,aAPf,AAAW,UAAD,SAG+B,AAClB,uBAHnB,AAAK,IAAD,2BACO,IACA,AAAK,AAAe,IAAhB,6BAEA,aAAb,AAAM,KAAD,YAAU,IACoB,aAA9B,AAAK,AAAkB,IAAnB,8BAA4B,IAChC,mBACV,AAAK,AAAkB,IAAnB;;AAElB,YAAO,OAAM;IACf;0BAEqC,MAAW,YAAmB,QACxD,QAAa,UAAc;AACpC,UAA4B,YAAxB,AAAK,IAAD,qBAA0C;AAChD,YAAI,AAAE,CAAD,KAAI,MACI,aAAP,MAAM,iBAAG,AAAW,UAAD,qBAAU,AAAK,IAAD,gBACvB,AAAiB,aAAxB,MAAM,iBAAG,AAAS,QAAD,uBAAS,AAAW,UAAD,qBACjC,AAAK,IAAD;AAGO,UAFrB,mBAAS,AAAK,IAAD,eACS,AAAmB,aAAnC,AAAW,UAAD,sBAAQ,AAAW,UAAD,uBAAS,AAAS,QAAD,UAC7C,AAAW,UAAD;;AAGlB,YAAI,AAAE,CAAD,KAA+B,aAA3B,AAAK,AAAe,IAAhB,6BAAyB,MACvB,AAAkB,aAAzB,MAAM,iBAAG,AAAS,QAAD,uBAAU,AAAW,UAAD,sBAChC,AAAK,IAAD,gBACD,aAAP,MAAM,iBAAG,AAAW,UAAD,oBAAS,AAAK,IAAD;AAGkB,UAFzD,mBAAS,AAAK,IAAD,eACP,AAAW,UAAD,QACM,AAAmB,aAAnC,AAAW,UAAD,sBAAQ,AAAW,UAAD,uBAAS,AAAS,QAAD;;;AAIW,MADlE,AAAK,AAAc,AAAI,IAAnB,wBAAgB,CAAC,kBACZ,qBAAS,MAAM,EAAE,MAAM,EAAE,AAAS,QAAD,QAAQ,AAAS,QAAD;AAC1D,YAAO,OAAM;IACf;4BAIW,QAAkB,MAAuB;;AACvC,uBAAa,AAAK,IAAD;AACrB;AACM,kBAAQ,AAAK,AAAM,IAAP;AAEV,kBAAQ,AAAK,AAAM,IAAP;AAGgD,MAF3E,QAAQ,iCACO,KAAK,cACO,KAAZ,AAAM,KAAD,cAAC,OAAS,AAAM,AAAY,AAAY,KAAzB;AACxB,qBAAW,oBAAa,KAAK,EAAE,KAAK;AAC3C;AACJ,UAAuB,YAAnB,AAAK,IAAD,gBAAyC;AAQxB,QAPvB,MAAM,WAAC,AAAK,IAAD,oBACU,AAC+C,aAD9D,AAAW,UAAD,+BACP,AAAK,IAAD,2BAAyB,IAAI,AAAK,AAAe,IAAhB,4BAEzB,AAC+C,AAC/C,aAFf,AAAW,UAAD,+BACP,AAAK,IAAD,2BAAyB,IAAI,AAAK,AAAe,IAAhB,yCAEtC,AAAS,QAAD;;AAWO,QATvB,MAAM,WAAC,AAAK,IAAD,oBACU,AAC+C,AAC/C,aAFf,AAAW,UAAD,+BACP,AAAK,IAAD,2BAAyB,IAAI,AAAK,AAAe,IAAhB,yCAEtC,AAAK,AAAkB,IAAnB,8BACS,AAC+C,AAC/C,AACiB,aAHhC,AAAW,UAAD,+BACP,AAAK,IAAD,2BAAyB,IAAI,AAAK,AAAe,IAAhB,yCAEtC,AAAK,AAAkB,IAAnB,2CACJ,AAAS,QAAD;;AAUF,MARK,YAArB,AAAK,AAAM,IAAP,kBAAmC,8BACjC,QAAQ,kBAAO,AAAM,AAAW,AAAc,KAA1B,kCAAgC,GAAG,IAClC,YAArB,AAAK,AAAM,IAAP,kBAAmC,6BACnC,QAAQ,kBAC+B,aAArC,AAAM,AAAW,AAAc,KAA1B,kDAAkC,AAAS,QAAD,SAAQ,GAAG,IAC5D,QAAQ,kBACU,aAAhB,AAAW,UAAD,UACa,AAAK,aAAtB,AAAW,UAAD,UAAS,IAAqB,aAAf,AAAS,QAAD,UAAS,IAChD,GAAG;AACf,oBAAI,AAAK,AAAQ,IAAT,2BAAuB,AAAK,AAAM,IAAP,aAAU,gBAC3C,AAAqD,iBAA3C,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;IACzC;0BAIW,QAAkB,MAAuB;;AACvC,uBAAa,AAAK,IAAD;AACrB;AACM,kBAAQ,AAAK,AAAM,IAAP;AACf,oCAAgB,AAAK,IAAD,oBAAmB,KAAK;AAEvC,kBAAQ,AAAK,AAAM,IAAP;AAGgD,MAF3E,QAAQ,iCACO,KAAK,cACO,KAAZ,AAAM,KAAD,cAAC,OAAS,AAAM,AAAY,AAAY,KAAzB;AACxB,qBAAW,oBAAa,KAAK,EAAE,KAAK;AAC3C;AACJ,UAAuB,YAAnB,AAAK,IAAD,gBAAyC;AAQvB,QAPxB,OAAQ,WAAC,AAAK,IAAD,oBACS,AAC8C,AAC/C,aAFf,AAAW,UAAD,gCACP,AAAK,IAAD,2BAAyB,IAAI,AAAK,AAAe,IAAhB,0CAEtC,AAAS,QAAD,WACM,AAC8C,aAD9D,AAAW,UAAD,gCACP,AAAK,IAAD,2BAAyB,IAAI,AAAK,AAAe,IAAhB,wBACzB,KAAE;;AAYI,QAV3B,OAAQ,WAAC,AAAK,IAAD,oBACU,AAC6C,AAC/C,AACgB,aAH9B,AAAW,UAAD,gCACR,AAAK,IAAD,2BAAyB,IAAI,AAAK,AAAe,IAAhB,0CAEtC,AAAK,AAAkB,IAAnB,6BACY,aAAhB,AAAS,QAAD,WAAU,IACJ,AAC8C,AAC/C,AACgB,aAH/B,AAAW,UAAD,gCACP,AAAK,IAAD,2BAAyB,IAAI,AAAK,AAAe,IAAhB,0CAEtC,AAAK,AAAkB,IAAnB,6BACY,aAAhB,AAAS,QAAD,WAAU;;AAQ4C,MANnD,YAArB,AAAK,AAAM,IAAP,kBAAmC,8BACjC,QAAQ,kBACN,IAAI,EAAwC,aAAtC,AAAM,AAAW,AAAc,KAA1B,sCAAkD,aAAf,AAAS,QAAD,UAAS,KAC5C,YAArB,AAAK,AAAM,IAAP,kBAAmC,6BACnC,QAAQ,kBACN,IAAI,EAAqC,aAAnC,AAAM,AAAW,AAAc,KAA1B,mCAA+C,aAAf,AAAS,QAAD,UAAS,KAC9D,QAAQ,kBAAO,IAAI,EAAiB,aAAf,AAAW,UAAD,QAA0B,aAAlB,AAAW,UAAD,WAAU;AACrE,oBAAI,AAAK,AAAQ,IAAT,2BAAuB,AAAK,AAAM,IAAP,aAAU,gBAC3C,AAAqD,iBAA3C,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa;IACxD;;;IArzBO;IAAa;;EADA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAq0BmB;IAA6B;;;QATvC;QAAY;;IAMb;IANC;IAAY;AAAzC;;EAAqD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwBR,MAA3C,2BAAsB,+BAAmB;AAEJ,MADrC,iCAAsB,yDAA2B,QAC7C,yBAAY;AACC,MAAX;IACR;;AAIE,UAAI,4BAAuB;AAC+B,QAAxD,AAAoB,kDAAe;AACN,QAA7B,AAAoB;AACM,QAA1B,2BAAsB;;AAET,MAAT;IACR;;;AAG6B,WAA3B;MAAoB,WAAK,aAAL,YAAK;IAC3B;UAG0B;AACL,MAAnB,AAAO,oBAAQ;AAC+C,MAA9D,AAAoB;AACI,0BACpB,AAAoC,kCAAf,UAAU,cAAa,4CACtC;AAG4B,MAAtC,AAAoB,wCAAc;AAClC,YAAO,qCACI,oCACM,6CACE,AAAO,kCACC,aAAa,cAChB,AAAO,mCACR,AAAO,AAAM,AAAW,wDACzB;IACxB;;;IAhD0B;IAGN;IAGD;;;EA2CrB;;;;;;;;;;;;;;;;;;;;;UAgBoB,QAAa;AACd,MAAf,cAAQ,MAAM;IAChB;cAEoB;AAClB,UAAI,AAAW,oBAAG;AACW,QAA3B,0BAAoB,MAAM;AAC1B,YAAI,AAAM,sCAA2B,QACjC,AAAM,AAAY,6CAAoB;AAKnB,UAJrB,qCACY,MAAM,QACR,AAAM,AAAW,8CAChB,AAAM,AAAY,gDACb;;;AAGH,MAAjB,gBAAU,MAAM;IAClB;0BAEgC;;AACnB,yBAAe,AAAM,AAAW;AAC/B,kBAAQ;AACmB,MAAvC,AAAM,KAAD,SAAS,AAAM;AACc,MAAlC,AAAM,KAAD,SAAuB;AACiB,MAA7C,AAAM,KAAD,eAAe,AAAM;AAGK,MAF/B,AAAM,AAAoB,mCAAG,IACvB,AAAM,KAAD,SAAgB,6BACrB,AAAM,KAAD,SAAS,AAAM,KAAD;AACW,MAApC,AAAO,MAAD,UAAU,YAAY,EAAE,KAAK;AAOA,MALnC,AAAO,MAAD,UACF,YAAY,QACZ,gBACI,YAAsC,KAA9B,AAAM,0CAAA,OACZ,AAAM,AAAY,AAAY,oEAChC,WAAsB;IAChC;0BAEgC,QAAkB,MACvC,iBAA2B,SAAc;AAClD,oBAAI,AAAK,IAAD;AACN,YAAwB,aAApB,AAAK,AAAS,IAAV,mBAAkB,KAAK,AAAW,oBAAG;AACmB,UAA9D,AAAK,AAAc,IAAf,uCAAsC,MAAM,EAAE,IAAI,EAAE;;AAE1D,YAA8B,aAA1B,AAAK,AAAe,IAAhB,yBAAwB,KAA+B,aAA1B,AAAK,AAAe,IAAhB,yBAAwB;AAET,UADtD,AAAK,AAAc,IAAf,4CAA2C,MAAM,EAAE,IAAI,EAAE,YACzD,iBAAY,eAAe,EAAE,OAAO,EAAE,WAAW;;AAGD,QADtD,AAAK,AAAc,IAAf,yCAAwC,MAAM,EAAE,IAAI,EAAE,YACtD,iBAAY,eAAe,EAAE,OAAO,EAAE,WAAW;AACrD,YAAI,AAAW,oBAAG;AAC+C,UAA/D,AAAK,AAAc,IAAf,wCAAuC,MAAM,EAAE,IAAI,EAAE;;;IAG/D;wBAE8B,QAAkB,MAAa,iBAC/C,SAAc;AAC1B,oBAAI,AAAK,IAAD;AACN,YAAwB,aAApB,AAAK,AAAS,IAAV,mBAAkB,KAAK,AAAW,oBAAG;AACiB,UAA5D,AAAK,AAAc,IAAf,qCAAoC,MAAM,EAAE,IAAI,EAAE;;AAExD,sBAAI,AAAK,AAAe,IAAhB,mCACuB,aAA1B,AAAK,AAAe,IAAhB,yBAAwB,KAA+B,aAA1B,AAAK,AAAe,IAAhB,yBAAwB;AAEV,UADtD,AAAK,AAAc,IAAf,0CAAyC,MAAM,EAAE,IAAI,EAAE,YACvD,iBAAY,eAAe,EAAE,OAAO,EAAE,WAAW;;AAGb,QAD1C,AAAK,AAAc,IAAf,uCAAsC,MAAM,EAAE,IAAI,EAAE,YAAO,iBAC3D,eAAe,EAAE,OAAO,EAAE,WAAW;AACzC,YAAI,AAAW,oBAAG;AAC6C,UAA7D,AAAK,AAAc,IAAf,sCAAqC,MAAM,EAAE,IAAI,EAAE;;;IAG7D;gBAEsB;AACP,4BACT,AAAc,sBAAG,OAAO,AAAc,2BAAQ;AAClD,eAAS,YAAY,GACjB,AAAU,SAAD,gBAAG,AAAM,AAAW,AAAiB,oDAC9C,YAAA,AAAS,SAAA;AACK,mBAAO,AAAM,AAAW,AAAgB,gDAAC,SAAS;AAEL,QAD7D,AAAK,IAAD,0BACmB,YAAlB,AAAK,IAAD,eAA8B,8BAAU,OAAO;AAC9C;AACL,0BAAc;AACnB,YAAI,AAAM,AAAY,mCAAW,QAAQ,AAAK,IAAD,mBAAkB;AACP,UAAtD,UAAU,mBAAY,IAAI,EAAE,AAAM,AAAY;AAC9C,cAAI,OAAO,IAAI,QAAQ,AAAQ,OAAD,mBAAkB;AAGqB,YAFnE,cACgE,aAA5D,AAAQ,AAAc,OAAf,yBAA0B,AAAK,AAAc,IAAf,yCACjC,AAAQ,AAAc,OAAf,yBAA0B,AAAK,AAAc,IAAf;;;AAOW,QAJ1C,YAAlB,AAAK,IAAD,gBAAiC,qCAC/B,0BACE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,WAAW,IACrD,wBACE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,WAAW;;IAE/D;;0CAGyC;AAAgB;IAAS;;;QAnHxD;QACD;QACc;QACd;QACA;IAJC;IACD;IAEA;IACA;AACH,oEAAe,QAAQ;;EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IC53Bb;;;;;;IAiBI;;;;;;IAkBV;;;;;;IAgBE;;;;;;IAgBA;;;;;;IAeA;;;;;;IAgBA;;;;;;sBAI0C,QACtB,OAAW,YAAgB;;AAC1D,oBAAI;AAGmC,QAF1B,AAAiB,aAA5B,UAAU,iCAAW,WAAR,8BAAyB,WAAP,wBAAQ,UAAU,MAAK,QAC5B,KAApB,oBAAQ,UAAU,OAAE,WAAb,oCAAgB,AAAK,uCAAE,AAAM,KAAD,QAA5B,wCACC,WAAR,uBAAoB,cAAR,AAAM,KAAD;AACE,QAAzB,AAAM,KAAD,UAAU,UAAU;;AAEzB,uBAAwC,WAA5B,WAAR,2BAAwB,cAAR,AAAM,KAAD,aAAiB;AACT,UAAvB,WAAR,uBAAoB,cAAR,AAAM,KAAD;;AAE+B,QAAlD,AAAM,KAAD,UAAkB,WAAR,2BAAwB,cAAR,AAAM,KAAD;;AAEhB,MAAtB,AAAM,KAAD,UAAU,AAAM,KAAD;AACa,YAAjC,MAAM;MAAC,AAAU,kBAAA,wBAAV,gBAAc,AAAM,KAAD,WAAT;AACgB,aAAjC,MAAM;MAAC,AAAU,mBAAA,yBAAV,gBAAc,AAAM,KAAD,WAAT;AACjB,WAAK,AAAO,AAAY,MAAb,0BAAsB;AACE,eAAjC,MAAM;QAAC,AAAU,mBAAA,yBAAV,gBAAc,AAAM,KAAD,WAAT;AACgB,eAAjC,MAAM;QAAC,AAAU,mBAAA,yBAAV,gBAAc,AAAM,KAAD,WAAT;;AAEE,MAArB,AAAQ,iBAAA,uBAAR,gBAAY,AAAM,KAAD,QAAT;AACa,MAArB,AAAQ,iBAAA,uBAAR,gBAAY,AAAM,KAAD,QAAT;AACe,MAAvB,AAAS,kBAAA,wBAAT,gBAAa,AAAM,KAAD,SAAT;AACc,MAAvB,AAAS,kBAAA,wBAAT,gBAAa,AAAM,KAAD,SAAT;AACT,UAAI,AAAM,KAAD,WAAW;AACyC,QAA3D,AAAO,MAAD,cAAa,mBAAS,AAAO,MAAD,6BAAY,AAAM,KAAD;AACQ,QAA3D,AAAO,MAAD,cAAa,mBAAS,AAAO,MAAD,6BAAY,AAAM,KAAD;;AAErD,UAAI,AAAM,KAAD,WAAW,SACd,AAAO,AAAY,MAAb,0BAAsB,aACzB,AAAO,AAAY,MAAb,0BAAsB,YAC5B,AAAO,AAAY,MAAb,0BAAsB;AACwB,QAA3D,AAAO,MAAD,cAAa,mBAAS,AAAO,MAAD,6BAAY,AAAM,KAAD;AACQ,QAA3D,AAAO,MAAD,cAAa,mBAAS,AAAO,MAAD,6BAAY,AAAM,KAAD;;AAErD,UAAI,AAAM,KAAD,SAAS;AACyB,QAAzC,iBAAW,mBAAS,gCAAU,AAAM,KAAD;AACM,QAAzC,iBAAW,mBAAS,gCAAU,AAAM,KAAD;;AAErC,UAAI,AAAM,KAAD,QAAQ;AACuB,QAAtC,gBAAU,mBAAS,+BAAS,AAAM,KAAD;AACK,QAAtC,gBAAU,mBAAS,+BAAS,AAAM,KAAD;;AAEnC,UAAe,aAAX,UAAU,KAAe,aAAX,UAAU,IAAG;AAC7B,YAAI,AAAO,AAAY,MAAb,0BAAsB,YAC5B,AAAO,AAAY,MAAb,0BAAsB,WAC5B,AAAO,AAAY,MAAb,0BAAsB;AACjB,UAAb,AAAQ,iBAAA,OAAR,gBAAY,IAAJ;AACK,UAAb,AAAQ,iBAAA,OAAR,gBAAY,IAAJ;AACM,UAAd,AAAS,kBAAA,OAAT,iBAAa,IAAJ;AACK,UAAd,AAAS,kBAAA,OAAT,iBAAa,IAAJ;AACqC,UAA9C,AAAO,MAAD,cAAa,mBAAS,eAAS;AACS,UAA9C,AAAO,MAAD,cAAa,mBAAS,eAAS;;AAEjB,eAAtB,MAAM;QAAC,AAAU,mBAAA,OAAV,kBAAc,IAAJ;AACK,eAAtB,MAAM;QAAC,AAAU,mBAAA,OAAV,kBAAc,IAAJ;;IAErB;;AAGE,UAAI,wBAAmB;AACwB,QAA7C,AAAO,AAAY,gDAAsB;AACJ,QAArC,sBAAgB,AAAgB;AACG,QAAnC,sBAAgB,AAAgB;AACQ,QAAxC,AAAO,AAAY;;IAEvB;iCAGiD,OAAe;AAChD,MAAd,eAAS,KAAK;AACd,UAAI,wBAAmB;AACwB,QAA7C,AAAgB,2CAAY;;AAEnB,0BAAgB,AAAM,AAAY,KAAb;AAEc,MAD9C,cAAa,qBAAS,AAAc,aAAD,OAAO,AAAc,aAAD,MACnD,AAAc,aAAD,QAAQ,AAAc,aAAD;AAClB,MAApB,oBAAe;AACQ,MAAvB;AACA,UAAI,sBAAgB;AACoC,QAAtD,uBAAkB,oCAAc,AAAa;AAC7C,YAAI,AAAK,IAAD,IAAI,QAAQ,IAAI,KAAI;AACH,UAAvB;;;IAGN;;;AAGE,UAAI,cAAQ,QAAQ,cAAQ;AAOA,QAN1B,qBAAe,6BAC4B,UAAvC,AAAO,AAAY,kDAAuB,wBAAmB,OACvD,uBACQ,yBAAR,OAAW,kBACsB,UAAvC,AAAO,AAAY,kDAAuB,wBAAmB,OACvD,uBACQ,2BAAR,OAAW;AACyB,+BAAmB;AAC/B;AAClC,iBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAiB,gBAAD,YAAS,IAAA,AAAC,CAAA;AAChB,UAA5B,SAAS,AAAgB,gBAAA,QAAC,CAAC;AAC3B,yBAAyB,WAArB,AAAa,kCAAoC,aAA1B,AAAO,AAAY,MAAb,2BAAsB;AACrD,yBAAS,gBAAY,WAAR,2BAAkB,aAAF,CAAC,iCAAwB,WAArB,AAAa,kCAAU,OAAG,IAAC,aAAD,CAAC;AACjC,cAAjB,WAAR,uBAAc,cAAF,CAAC;;;;AAI2C,QAA9D,qBAAe,8BAAsB,6BAAR,OAAW,qBAAc,6BAAR,OAAW;AAGzD,YAA0B,YAArB,AAAa,4BAAW,AAAa,+BACtB,YAAf,qBAAiC;AACX,iBAAzB;UAAa,eAAQ,WAAR,oBAAW;;AAEsC,QAAhE,AAAa,2BAAA,gBAA6B,WAArB,AAAa,kCAAU,AAAa;AAEW,QADpE,AAAa,+BAAoB,8BAAT,OACpB,uBAAkB,oBAAc,gBAAK,AAAM,mBAAO,AAAM;AACI,QAAhE,AAAa,2BAAA,gBAA6B,WAArB,AAAa,kCAAU,AAAa;;IAE7D;0BAIgC;AAC2C,MAAzE,sBAAgB,6BAAc,AAAa,4BAAS,AAAa;AACzB,MAAxC,AAAc,4BAAQ,AAAa;AACW,MAA9C,AAAc,+BAAW,AAAa;AACwB,MAA9D,0BAAoB,MAAM,AAAO,AAAY;AAC7C,UAAgB,aAAZ,qBAAc,KAAmB,aAAd,uBAAgB;AACG,QAAxC,0BAAoB,MAAM,aAAa;;IAE3C;sBAIqC,OAAW;;AACvB;AACvB,UAAmB,YAAf,qBAAiC;AACf,aAApB,KAAK;QAAC,aAAQ,WAAR,kBAAW;AACG,cAApB,KAAK;QAAC,cAAQ,WAAR,mBAAW;AAC0B,QAA3C,AAAM,KAAD,SAAC,gBAAsB,WAAd,AAAM,KAAD,gBAAW,AAAM,KAAD;;AAGrC,YAAM,gBAAW,QAAQ,gBAAW;AAEe,QAAjD,yBAAmB,MAAM,cAAQ,KAAK,EAAE,QAAQ;;AAGI,MAAtD,2BAAsB,gBAAK,AAAM,mBAAO,AAAM;AAG9C,WAAK,uBAAkB,QAAQ,uBAAkB,SAC5C,uBAAkB,uBACnB,AAAO,AAAY,8CAAoB,kBACvC,AAAO,AAAY,AAAiB;AAE6B,QADnE,AAAc,8BACV,AAAe,uBAAG,OAAO,sBAAiB,AAAc;AAEO,QADnE,AAAc,8BACV,AAAe,uBAAG,OAAO,sBAAiB,AAAc;AACO,QAAnE,AAAc,4BAAA,gBAA8B,WAAtB,AAAc,mCAAU,AAAc;AACX,QAAjD,oBAAkC,aAApB,AAAc,0CAAS,AAAM,KAAD;AAEsB,8BADhE,mBACmD,WAAxB,WAAtB,AAAc,mCAAU,AAAa,oCAAW,AAAM,KAAD;;AAE5D,UAAI,AAAO,qCAAwB;AACU,QAA3C,mBAAmB;AACc,QAAjC,AAAiB,gBAAD,YAAY;AACe,QAA3C,AAAiB,gBAAD,eAAe;AACH,QAA5B,AAAiB,gBAAD,QAAQ;AACkB,QAA1C,AAAiB,gBAAD,aAAa,AAAM,KAAD;AACQ,QAA1C,AAAiB,gBAAD,aAAa,AAAM,KAAD;AACc,QAAhD,AAAiB,gBAAD,kBAAkB,AAAM,KAAD;AACY,QAAnD,AAAiB,gBAAD,cAAc,AAAc;AACO,QAAnD,AAAiB,gBAAD,cAAc,AAAc;AACa,QAAzD,AAAiB,gBAAD,mBAAmB,AAAc;AACJ,QAA7C,AAAO,kCAAqB,gBAAgB;AACO,QAAnD,AAAc,8BAAU,AAAiB,gBAAD;AACW,QAAnD,AAAc,8BAAU,AAAiB,gBAAD;AACiB,QAAzD,AAAc,+BAAW,AAAiB,gBAAD;;IAE7C;;AAKM,yCAAqC,WAAtB,AAAc;AAC7B;AACG;AACuB,MAA9B,uBAA4B;AAC5B,aACiB,aAAb,YAAY,kCAAI,AAAc,+BAC9B,eAAa,aAAb,YAAY,iCAAI,AAAc;AAChC,sBAAI,eAAQ,YAAY,EAAE;AACO,UAA/B,WAAW,AAAa,YAAD;AACvB,cAAa,aAAT,QAAQ,KAAI,CAAC,gBACJ,WAAR,iCAA+B,aAAT,QAAQ,kCAAY,WAAR;AACrC;gBACK,gBAAY,WAAR,iCAA6B,WAAP,wBAAQ,QAAQ,MAAK;AACvB,wBAA7B,mBAAmB,WAAP,wBAAQ,QAAQ;;AAE5B;;AAE+C,UAAjD,+BAAyB,SAAS,EAAE,YAAY;;;AAGZ,MAAxC,iCAA2B,MAAM;IACnC;sBAIoC,OAAY;AAAkB,YAAA,AAO7D,oBALG,GAIK,CAHe,aAAnB,AAAa,yCACN,qCACI,gBAAK,AAAM,mBAAO,AAAM,qBAAS;IAEzC;;;;QAxYA;QACH;QACK;QACD;QACJ;QACa;QACH;QACI;QACI;QACV;QACT;QACqB;QACV;QACV;QACA;QACD;QACA;QACW;QACA;QACA;QACA;QACA;QACR;QACA;QACA;QACY;QACd;QACA;QACE;QACF;QACA;QACG;QACD;QACF;QACU;QACX;QACY;IAsCH;IAmGT;IACH;IApJI;IACA;IAEA;IACA;IAOY,yBAAiB,KAAf,cAAc,QAAd,OAAkB;IACpB,yBAAiB,MAAf,cAAc,SAAd,OAAiC;AAClD,wDACQ,IAAI,aACC,SAAS,cACR,UAAU,cACV,UAAU,gBACR,YAAY,mBACT,eAAe,sBACZ,kBAAkB,iBACvB,aAAa,iBACb,aAAa,gBACd,YAAY,wBACJ,oBAAoB,yBACnB,qBAAqB,iBAC7B,aAAa,kBACZ,cAAc,cAClB,UAAU,SACf,KAAK,YACF,QAAQ,kBACF,cAAc,kBACd,cAAc,kBACd,cAAc,kBACd,cAAc,cAClB,UAAU,gBACR,YAAY,sBACN,kBAAkB,YAC5B,QAAQ,aACP,SAAS,sBACA,kBAAkB,2BACb,uBAAuB,aACrC,SAAS,oBACF,gBAAgB,mBACjB,eAAe;AAEjB,IAArB,gBAAmB;EACrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICYiB;;;;;;IAYJ;;;;;;IAiBc;;;;;;IAaZ;;;;;;IAaA;;;;;;IAaA;;;;;;IAaA;;;;;;IAGD;;;;;;IACG;;;;;;IACZ;;;;;;sBAGkD,QACtB,OAAW,YAAgB;;AAC1D,UAAI,AAAM,KAAD,MAAM;AACkC,QAA/C,AAAM,KAAD,UAAoB,WAAT,AAAM,KAAD;;AAED,MAAtB,AAAM,KAAD,UAAU,AAAM,KAAD;AACa,WAAjC,MAAM;MAAC,AAAU,iBAAA,uBAAV,gBAAc,AAAM,KAAD,WAAT;AACgB,YAAjC,MAAM;MAAC,AAAU,kBAAA,wBAAV,gBAAc,AAAM,KAAD,WAAT;AACjB,WAAK,AAAO,AAAY,MAAb,0BAAsB,aAC3B,AAAO,AAAY,MAAb,0BAAsB,YAC5B,AAAO,AAAY,MAAb,0BAAsB;AACC,eAAjC,MAAM;QAAC,AAAU,mBAAA,yBAAV,gBAAc,AAAM,KAAD,WAAT;AACgB,eAAjC,MAAM;QAAC,AAAU,mBAAA,yBAAV,gBAAc,AAAM,KAAD,WAAT;;AAEE,MAArB,AAAQ,iBAAA,uBAAR,gBAAY,AAAM,KAAD,QAAT;AACa,MAArB,AAAQ,iBAAA,uBAAR,gBAAY,AAAM,KAAD,QAAT;AACe,MAAvB,AAAS,kBAAA,wBAAT,gBAAa,AAAM,KAAD,SAAT;AACc,MAAvB,AAAS,kBAAA,wBAAT,gBAAa,AAAM,KAAD,SAAT;AACT,UAAI,AAAM,KAAD,WAAW;AACyC,QAA3D,AAAO,MAAD,cAAa,mBAAS,AAAO,MAAD,6BAAY,AAAM,KAAD;AACQ,QAA3D,AAAO,MAAD,cAAa,mBAAS,AAAO,MAAD,6BAAY,AAAM,KAAD;;AAErD,UAAI,AAAM,KAAD,WAAW,SACd,AAAO,AAAY,MAAb,0BAAsB,aACzB,AAAO,AAAY,MAAb,0BAAsB,YAC5B,AAAO,AAAY,MAAb,0BAAsB;AACwB,QAA3D,AAAO,MAAD,cAAa,mBAAS,AAAO,MAAD,6BAAY,AAAM,KAAD;AACQ,QAA3D,AAAO,MAAD,cAAa,mBAAS,AAAO,MAAD,6BAAY,AAAM,KAAD;;AAErD,UAAI,AAAM,KAAD,SAAS;AACyB,QAAzC,iBAAW,mBAAS,gCAAU,AAAM,KAAD;AACM,QAAzC,iBAAW,mBAAS,gCAAU,AAAM,KAAD;;AAErC,UAAI,AAAM,KAAD,QAAQ;AACuB,QAAtC,gBAAU,mBAAS,+BAAS,AAAM,KAAD;AACK,QAAtC,gBAAU,mBAAS,+BAAS,AAAM,KAAD;;AAEnC,UAAe,aAAX,UAAU,KAAe,aAAX,UAAU,IAAG;AAC7B,YAAI,AAAO,AAAY,MAAb,0BAAsB,YAC5B,AAAO,AAAY,MAAb,0BAAsB,WAC5B,AAAO,AAAY,MAAb,0BAAsB;AACjB,UAAb,AAAQ,iBAAA,OAAR,gBAAY,IAAJ;AACK,UAAb,AAAQ,iBAAA,OAAR,gBAAY,IAAJ;AACM,UAAd,AAAS,kBAAA,OAAT,iBAAa,IAAJ;AACK,UAAd,AAAS,kBAAA,OAAT,iBAAa,IAAJ;AACqC,UAA9C,AAAO,MAAD,cAAa,mBAAS,eAAS;AACS,UAA9C,AAAO,MAAD,cAAa,mBAAS,eAAS;;AAER,eAA/B,MAAM;QAAC,AAAU,mBAAA,OAAV,kBAAc,aAAJ;AACe,eAAhC,MAAM;QAAC,AAAU,mBAAA,OAAV,kBAAc,cAAJ;;IAErB;;AAGE,UAAI,wBAAmB;AACwB,QAA7C,AAAO,AAAY,gDAAsB;AACmB,QAA5D,sBAAsC,WAAtB,AAAgB;AAC0B,QAA1D,sBAAoC,WAApB,AAAgB;AACQ,QAAxC,AAAO,AAAY;;IAEvB;iCAGiD,aAAqB;AAChD,MAApB,eAAS,WAAW;AACpB,UAAI,wBAAmB;AACwB,QAA7C,AAAgB,2CAAY;;AAEnB,0BAAgB,AAAO,AAAY;AACnC,iBAAY,qBAAS,AAAc,aAAD,OAAO,AAAc,aAAD,MAC7D,AAAc,aAAD,QAAQ,AAAc,aAAD;AACG,MAAzC,kBAAY,gBAAK,AAAK,IAAD,QAAQ,AAAK,IAAD;AACb,MAApB,oBAAe;AACQ,MAAvB;AACA,UAAI,sBAAgB;AACoC,QAAtD,uBAAkB,oCAAc,AAAa;AAC7C,YAAI,AAAK,IAAD,IAAI,QAAQ,IAAI,KAAI;AACH,UAAvB;;;IAGN;;;AAIqB,MAAnB,AAAK,cAAA,OAAL,aAAS,aAAJ;AACe,MAApB,AAAK,cAAA,OAAL,aAAS,cAAJ;AAQ6D,MANlE,qBAAe,6BAC4B,UAAvC,AAAO,AAAY,kDAAuB,wBAAmB,OACvD,sBACA,AAAQ,gBAAG,OAAO,AAAQ,sCAAyB,YAClB,UAAvC,AAAO,AAAY,kDAAuB,wBAAmB,OACvD,sBACA,AAAQ,gBAAG,OAAO,AAAQ,sCAAyB;AAC7D,UAAyB,YAArB,AAAa,4BAAW,AAAa;AACiB,QAAxD,AAAa,6BAA+B,WAArB,AAAa,kCAAU;AACU,QAAxD,AAAa,6BAA+B,WAArB,AAAa,kCAAU;;AAGyB,MADzE,0BACI,AAA8D,qCAA/B,MAAM,iBAAW;AACW,MAA/D,AAAa,8BAA2C,CAAtB,0BAAT,OAAY;AAC2B,MAAhE,AAAa,2BAAA,gBAA6B,WAArB,AAAa,kCAAU,AAAa;IAC3D;sBAIqC,OAAW;AAClB,mBAA5B,gBAAqB,WAAd,AAAM,KAAD;AACgB,mBAA5B,gBAAqB,WAAd,AAAM,KAAD;AACW;AACvB,UAAI,AAAQ,gBAAG,QAAQ,AAAQ,gBAAG;AACR,2BACpB,6BAAuB,MAAM;AAClB,sBAAmB,wDAA2B;AAC9C,sBAAmB,wDAA2B;AAC7D,YAAiB,YAAb,YAAY,EAAsB;AACC,UAArC,aAAO,AAAQ,OAAD;AACuB,UAArC,aAAO,AAAQ,OAAD;cACT,KAAiB,YAAb,YAAY,EAAsB,wCAC5B,YAAb,YAAY,EAAsB;AACpC,kBAAQ;;;AAE4D,cAAhE,qBAAe,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,AAAS,QAAD;AACvD;;;;AAEiE,cAAjE,sBAAgB,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,AAAS,QAAD;AACxD;;;;AAE+D,cAA/D,oBAAc,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,AAAS,QAAD;AACtD;;;;AAEgE,cAAhE,qBAAe,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,AAAS,QAAD;AACvD;;;;AAEkE,cAAlE,uBAAiB,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,AAAS,QAAD;AACzD;;;;AAEkE,cAAlE,uBAAiB,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,AAAS,QAAD;AACzD;;;;AAEA;;;;;AAIY,MAApB,AAAM,KAAD,WAAW;AACI,MAApB,AAAM,KAAD,WAAW;AAC2B,MAA3C,AAAM,KAAD,SAAC,gBAAsB,WAAd,AAAM,KAAD,gBAAW,AAAM,KAAD;AAEH,MAAhC,2BAAsB;AAGtB,WAAK,uBAAkB,QAAQ,uBAAkB,sBAC5C,qBAAkB,wBACnB,AAAO,AAAY,8CAAoB,kBACvC,AAAO,AAAY,AAAiB;AAGX,QAF3B,AAAc,8BAAU,AAAe,uBAAG,OACpC,AAAe,6CACf,AAAc;AAGO,QAF3B,AAAc,8BAAU,AAAe,uBAAG,OACpC,AAAe,6CACf,AAAc;AAC+C,QAAnE,AAAc,4BAAA,gBAA8B,WAAtB,AAAc,mCAAU,AAAc;AACQ,QAApE,AAAc,+BAAW,uBAAkB,qBAAe;AACT,QAAjD,oBAAkC,aAApB,AAAc,0CAAS,AAAM,KAAD;AAEsB,8BADhE,mBACmD,WAAxB,WAAtB,AAAc,mCAAU,AAAa,oCAAW,AAAM,KAAD;;AAE5D,UAAI,AAAO,qCAAwB;AACU,QAA3C,mBAAmB;AACS,QAA5B,AAAiB,gBAAD,QAAQ;AACS,QAAjC,AAAiB,gBAAD,YAAY;AACe,QAA3C,AAAiB,gBAAD,eAAe;AACW,QAA1C,AAAiB,gBAAD,aAAa,AAAM,KAAD;AACQ,QAA1C,AAAiB,gBAAD,aAAa,AAAM,KAAD;AACc,QAAhD,AAAiB,gBAAD,kBAAkB,AAAM,KAAD;AACY,QAAnD,AAAiB,gBAAD,cAAc,AAAc;AACO,QAAnD,AAAiB,gBAAD,cAAc,AAAc;AACa,QAAzD,AAAiB,gBAAD,mBAAmB,AAAc;AACJ,QAA7C,AAAO,kCAAqB,gBAAgB;AAGX,QAFjC,AAAc,8BAAsC,iBAA5B,AAAiB,gBAAD,eACN,WAA5B,AAAiB,gBAAD,yCAChB,AAAiB,gBAAD;AAGW,QAFjC,AAAc,8BAAsC,iBAA5B,AAAiB,gBAAD,eACN,WAA5B,AAAiB,gBAAD,yCAChB,AAAiB,gBAAD;AACmC,QAAzD,AAAc,+BAAW,AAAiB,gBAAD;;IAE7C;0BAIgC;AAC2C,MAAzE,sBAAgB,6BAAc,AAAa,4BAAS,AAAa;AACzB,MAAxC,AAAc,4BAAQ,AAAa;AACW,MAA9C,AAAc,+BAAW,AAAa;AAEwB,MAA9D,0BAAoB,MAAM,AAAO,AAAY;AAC7C,UAAgB,aAAZ,qBAAc,KAAmB,aAAd,uBAAgB;AACC,QAAtC,AAAO,AAAY,yCAAe;AACM,QAAxC,0BAAoB,MAAM,aAAa;AAIP,QAHhC,AAAc,+BACkB,UAA5B,+CAA+B,AAAO,AAAY,0CAC5C,uBAAkB,qBAAe,aAAa,IAC9C,AAAc;AAC+B,QAAvD,AAAc,8BAAkC,WAAvB,AAAc;AACgB,QAAvD,AAAc,8BAAkC,WAAvB,AAAc;;IAE3C;;;AAKgC,MAA9B,uBAA4B;AACxB,qCAAW,AAAc;AACsC,MAAnE,WAAW,uBAAiB,MAAM,QAAQ,kBAAE,AAAc;AAC1D,aAAgB,aAAT,QAAQ,kCAAI,AAAc;AAC/B,sBAAI,eAAQ,QAAQ,EAAE;AACH,wBAAoB,4BAAX,OAAc,sBAAgB;AACjD,0BACH,AAAO,MAAD,QAAiB,6CAA2B,QAAQ;AAC9D,cAAI,oBAAe,QAAQ,qBAAe;AACwB,YAAhE,YAAY,AAAY,8BAAW,gBAAO,YAAY,SAAS;;AAEpB,UAA7C,+BAAyB,SAAS,EAAE,QAAQ;;AAIf,QAF/B,WACI,AACK,gCADqB,MAAM,QAAQ,kBAAE,AAAc;;AAGtB,MAAxC,iCAA2B,MAAM;IACnC;sBAEwC;AAC3B;AACX,cAAQ,AAAK,IAAD;;;AAEkB,UAA1B,SAAoB;AACpB;;;;AAE0B,UAA1B,SAAoB;AACpB;;;;AAE0B,UAA1B,SAAoB;AACpB;;;;AAEwB,UAAxB,SAAoB;AACpB;;;;AAEwB,UAAxB,SAAoB;AACpB;;;;AAEwB,UAAxB,SAAoB;AACpB;;;;AAEA;;;AAEJ,YAAO,OAAM;IACf;uBAGkC,MAAU,WAAe;AAChD,qBAAoB,6CAA2B,SAAS;AACjE,cAAQ,AAAK,IAAD;;;AAEE,qBAC0C,CAApB,AAAQ,CAApB,aAAd,AAAS,QAAD,sBAAQ,QAAQ,4BAAY,QAAQ;AACc,UAAhE,WAAW,sBAAS,IAAI,EAAE,AAAS,QAAD,QAAQ,AAAS,QAAD,MAAM,GAAG,GAAG;AAC9D;;;;AAEU,sBAAiD,CAAxB,AAAY,aAA3B,AAAS,QAAD,uBAAS,QAAQ,iBAAI,QAAQ;AACO,UAAhE,WAAW,sBAAS,AAAS,QAAD,OAAO,KAAK,EAAE,AAAS,QAAD,MAAM,GAAG,GAAG;AAC9D;;;;AAEU,oBAA6C,CAAxB,AAAY,aAAzB,AAAS,QAAD,qBAAO,QAAQ,iBAAI,QAAQ;AACW,UAAhE,WAAW,sBAAS,AAAS,QAAD,OAAO,AAAS,QAAD,QAAQ,GAAG,EAAE,GAAG,GAAG;AAC9D;;;;AAEU,qBAC0C,CAApB,AAAQ,CAApB,aAAd,AAAS,QAAD,sBAAQ,QAAQ,4BAAY,QAAQ;AAEmB,UADrE,WACI,sBAAS,AAAS,QAAD,OAAO,AAAS,QAAD,QAAQ,AAAS,QAAD,MAAM,IAAI,EAAE,GAAG;AACnE;;;;AAEU,uBAC4C,CAApB,AAAQ,CAApB,aAAhB,AAAS,QAAD,wBAAU,QAAQ,4BAAY,QAAQ;AAEvB,UAD7B,WAAW,sBAAS,AAAS,QAAD,OAAO,AAAS,QAAD,QAAQ,AAAS,QAAD,MACvD,AAAS,QAAD,OAAO,MAAM,EAAE;AAC3B;;;;AAEU,uBAC4C,CAApB,AAAQ,CAApB,aAAhB,AAAS,QAAD,wBAAU,QAAQ,4BAAY,QAAQ;AAET,UAD3C,WAAW,sBAAS,AAAS,QAAD,OAAO,AAAS,QAAD,QAAQ,AAAS,QAAD,MACvD,AAAS,QAAD,OAAO,AAAS,QAAD,SAAS,MAAM;AAC1C;;;;AAEA;;;AAEJ,YAAO,AAAS,SAAD;IACjB;gCAIiB,MAAU,OAAW;AAC3B,qBAAoB,6CAA2B,KAAK;AACvB,MAAtC,AAAK,AAAc,IAAf,2BAA0B,QAAQ;AACtC,cAAQ,AAAK,IAAD;;;AAG6D,UADrE,WAAW,sBAAuB,aAAd,AAAS,QAAD,sBAAQ,QAAQ,GAAE,AAAS,QAAD,QAClD,AAAS,QAAD,MAAM,AAAS,QAAD,OAAO,AAAS,QAAD,SAAS,AAAS,QAAD,SAAS;AACnE;;;;AAGqE,UADrE,WAAW,sBAAS,AAAS,QAAD,OAAsB,aAAf,AAAS,QAAD,uBAAS,QAAQ,GACxD,AAAS,QAAD,MAAM,AAAS,QAAD,OAAO,AAAS,QAAD,SAAS,AAAS,QAAD,SAAS;AACnE;;;;AASM,UAPN,WAAW,sBACP,AAAS,QAAD,OACR,AAAS,QAAD,QACK,aAAb,AAAS,QAAD,qBAAO,QAAQ,GACvB,AAAS,QAAD,OACR,AAAS,QAAD,SACR,AAAS,QAAD,SACR;AACJ;;;;AAGkE,UADlE,WAAW,sBAAS,AAAS,QAAD,OAAO,AAAS,QAAD,QAAQ,AAAS,QAAD,MACzC,aAAd,AAAS,QAAD,sBAAQ,QAAQ,GAAE,AAAS,QAAD,SAAS,AAAS,QAAD,SAAS;AAChE;;;;AAGkE,UADlE,WAAW,sBAAS,AAAS,QAAD,OAAO,AAAS,QAAD,QAAQ,AAAS,QAAD,MACvD,AAAS,QAAD,OAAuB,aAAhB,AAAS,QAAD,wBAAU,QAAQ,GAAE,AAAS,QAAD,SAAS;AAChE;;;;AAGkE,UADlE,WAAW,sBAAS,AAAS,QAAD,OAAO,AAAS,QAAD,QAAQ,AAAS,QAAD,MACvD,AAAS,QAAD,OAAO,AAAS,QAAD,SAAyB,aAAhB,AAAS,QAAD,wBAAU,QAAQ,GAAE;AAChE;;;;AAEA;;;AAEJ,YAAO,SAAQ;IACjB;qBAG6B,SAAkB,SACzB,cAAkB;AAC5B,sBAAY,AAAQ,OAAD;AACnB,oBAAU,AAAQ,OAAD;AAC3B,UAAiB,YAAb,YAAY,EAAsB;AAEoC,QADxE,aACI,AAA8C,sBAA3B,aAAV,SAAS,iBAAG,QAAQ,GAAE,GAAG,GAAG,GAAG,GAAG;AAC0B,QAAzE,aAAO,AAA4C,sBAA3B,aAAR,OAAO,iBAAG,QAAQ,GAAE,GAAG,GAAG,GAAG,GAAG;;AAEgB,QAAhE,aAAO,AAAmC,sBAA1B,SAAS,EAAE,GAAG,GAAG,GAAG,GAAG;AAC4B,QAAnE,aAAO,AAAsC,sBAA7B,OAAO,EAAE,IAAI,IAAI,IAAI,IAAI;;IAE7C;sBAG8B,SAAkB,SAC1B,cAAkB;AAC5B,uBAAa,AAAQ,OAAD;AACpB,qBAAW,AAAQ,OAAD;AAC5B,UAAiB,YAAb,YAAY,EAAsB;AAEqC,QADzE,aACI,AAA+C,sBAAtC,AAAQ,OAAD,OAAO,UAAU,EAAE,GAAG,GAAG,GAAG;AAGrB,QAF3B,aAAO,AAEF,sBAFW,AAAQ,OAAD,OAAO,QAAQ,EAC9B,AAAyC,sBAAhC,AAAQ,OAAD,OAAO,AAAQ,OAAD,QAAQ,QAAQ,IAAI,IAAI;;AAInC,QAD3B,aAAO,AACF,sBADW,AAAQ,OAAD,OAAkB,aAAX,UAAU,IAAI,cAAC,QAAQ,GAAG,GAAG,GAAG,GAAG;AAItC,QAF3B,aAAO,AAEF,sBAFW,AAAQ,OAAD,OAAgB,aAAT,QAAQ,iBAAG,QAAQ,GACzC,AAAS,QAAD,KAAI,IAAI,KAAK,IAAI,GAAG,GAAG;;IAG3C;oBAG4B,SAAkB,SACxB,cAAkB;AAC5B,qBAAW,AAAQ,OAAD;AAClB,mBAAS,AAAQ,OAAD;AAC1B,UAAiB,YAAb,YAAY,EAAsB;AAET,QAD3B,aAAO,AACF,sBADW,AAAQ,OAAD,OAAO,AAAQ,OAAD,QAAQ,QAAQ,EAAE,GAAG,GAAG;AAGlC,QAD3B,aAAO,AACF,sBADW,AAAQ,OAAD,OAAO,AAAQ,OAAD,QAAQ,MAAM,EAAE,IAAI,IAAI;;AAK9B,QAF/B,aACI,AACK,sBADI,AAAQ,OAAD,OAAO,AAAQ,OAAD,QAAiB,aAAT,QAAQ,IAAI,cAAC,QAAQ,GAAG,GAAG,GAAG;AAG7C,QAD3B,aAAO,AACF,sBADW,AAAQ,OAAD,OAAO,AAAQ,OAAD,QAAe,aAAP,MAAM,iBAAG,QAAQ,GAAE,GAAG,GAAG;;IAG1E;qBAG6B,SAAkB,SACzB,cAAkB;AAC5B,sBAAmD,CAAxB,AAAY,aAAzB,AAAQ,OAAD,sBAAQ,QAAQ,iBAAI,QAAQ;AACjD,oBAAuB,aAAb,AAAQ,OAAD,SAAmC,CAAb,aAAb,AAAQ,OAAD,SAAQ,SAAS;AAC5D,UAAiB,YAAb,YAAY,EAAsB;AAET,QAD3B,aAAO,AACF,sBADW,AAAQ,OAAD,OAAO,AAAQ,OAAD,QAAQ,AAAQ,OAAD,MAAM,SAAS,EAAE,GAAG;AAIzC,QAF/B,aACI,AACK,sBADI,AAAQ,OAAD,OAAO,AAAQ,OAAD,QAAQ,AAAQ,OAAD,MAAM,SAAS,EAAE,IAAI;;AAK3C,QAF3B,aAAO,AAEF,sBAFW,AAAQ,OAAD,OAAO,AAAQ,OAAD,QAAQ,AAAQ,OAAD,MAC5C,AAAU,SAAD,GAAI,cAAC,QAAQ,GAAG,GAAG;AAIT,QAF3B,aAAO,AAEF,sBAFW,AAAQ,OAAD,OAAO,AAAQ,OAAD,QAAQ,AAAQ,OAAD,MAC5C,AAAQ,OAAD,gBAAG,QAAQ,GAAE,GAAG;;IAGnC;uBAG+B,SAAkB,SAC3B,cAAkB;AAC5B,wBAAuD,CAAxB,AAAY,aAA3B,AAAQ,OAAD,wBAAU,QAAQ,iBAAI,QAAQ;AACrD,sBACS,aAAf,AAAQ,OAAD,WAAyC,CAAf,aAAf,AAAQ,OAAD,WAAU,WAAW;AAClD,UAAiB,YAAb,YAAY,EAAsB;AAGT,QAF3B,aAAO,AAEF,sBAFW,AAAQ,OAAD,OAAO,AAAQ,OAAD,QAAQ,AAAQ,OAAD,MAAM,AAAQ,OAAD,OACzD,WAAW,EAAE;AAIM,QAF3B,aAAO,AAEF,sBAFW,AAAQ,OAAD,OAAO,AAAQ,OAAD,QAAQ,AAAQ,OAAD,MAAM,AAAQ,OAAD,OACzD,SAAS,EAAE;;AAKQ,QAF3B,aAAO,AAEF,sBAFW,AAAQ,OAAD,OAAO,AAAQ,OAAD,QAAQ,AAAQ,OAAD,MAAM,AAAQ,OAAD,OACzD,AAAY,WAAD,GAAI,cAAC,QAAQ,GAAG;AAIR,QAF3B,aAAO,AAEF,sBAFW,AAAQ,OAAD,OAAO,AAAQ,OAAD,QAAQ,AAAQ,OAAD,MAAM,AAAQ,OAAD,OACzD,AAAU,SAAD,gBAAG,QAAQ,GAAE;;IAGlC;uBAG+B,SAAkB,SAC3B,cAAkB;AAC5B,wBAAuD,CAAxB,AAAY,aAA3B,AAAQ,OAAD,wBAAU,QAAQ,iBAAI,QAAQ;AACrD,sBACS,aAAf,AAAQ,OAAD,WAAyC,CAAf,aAAf,AAAQ,OAAD,WAAU,WAAW;AAClD,UAAiB,YAAb,YAAY,EAAsB;AAGT,QAF3B,aAAO,AAEF,sBAFW,AAAQ,OAAD,OAAO,AAAQ,OAAD,QAAQ,AAAQ,OAAD,MAAM,AAAQ,OAAD,OACzD,AAAQ,OAAD,SAAS,WAAW,EAAE;AAIV,QAF3B,aAAO,AAEF,sBAFW,AAAQ,OAAD,OAAO,AAAQ,OAAD,QAAQ,AAAQ,OAAD,MAAM,AAAQ,OAAD,OACzD,AAAQ,OAAD,SAAS,SAAS,EAAE;;AAKR,QAF3B,aAAO,AAEF,sBAFW,AAAQ,OAAD,OAAO,AAAQ,OAAD,QAAQ,AAAQ,OAAD,MAAM,AAAQ,OAAD,OACzD,AAAQ,OAAD,SAAS,AAAY,WAAD,GAAI,cAAC,QAAQ,GAAG;AAIxB,QAF3B,aAAO,AAEF,sBAFW,AAAQ,OAAD,OAAO,AAAQ,OAAD,QAAQ,AAAQ,OAAD,MAAM,AAAQ,OAAD,OACzD,AAAQ,OAAD,SAAS,AAAU,SAAD,gBAAG,QAAQ,GAAE;;IAGlD;qCAIiB,MAAW,MAAoB;AAE/B,sBACF,6DAAyC,WAAd,AAAM,KAAD;AAC9B,oBACF,6DAAyC,WAAd,AAAM,KAAD;AACzC;AACM,sBAGD,CAFgE,CAAlC,aAAjC,AAAU,SAAD,wCAA0B,AAAQ,OAAD;AAGJ,MAA5C,AAAK,IAAD,wBAAuB,AAAK,IAAD;AAC/B,cAAQ,AAAK,IAAD;;;AAE6D,UAArE,WAAW,oCAA8B,IAAI,EAAE,AAAU,SAAD,GAAG,KAAK,IAAI;AACpE;;;;AAEoE,UAApE,WAAW,oCAA8B,IAAI,EAAE,AAAU,SAAD,GAAG,IAAI,IAAI;AACnE;;;;AAE+D,UAA/D,WAAW,oCAA8B,IAAI,EAAE,SAAS,EAAE,IAAI;AAC9D;;;;AAEoE,UAApE,WAAW,oCAA8B,IAAI,EAAE,AAAU,SAAD,GAAG,IAAI,IAAI;AACnE;;;;AAGkE,UADlE,WACI,oCAA8B,IAAI,EAAE,AAAU,AAAK,SAAN,GAAG,KAAK,IAAI,IAAI;AACjE;;;;AAGuE,UADvE,WACI,oCAA8B,IAAI,EAAE,AAAU,AAAK,AAAK,SAAX,GAAG,KAAK,KAAK,IAAI,IAAI;AACtE;;;;AAIqE,UAArE,WAAW,oCAA8B,IAAI,EAAE,AAAU,SAAD,GAAG,KAAK,IAAI;AACpE,cAAa,aAAT,QAAQ,KAAI;AACuC,YAArD,AAAK,IAAD,wBAA4C;AAChD,kBAAO,AAAS,SAAD;;AAImD,UAApE,WAAW,oCAA8B,IAAI,EAAE,AAAU,SAAD,GAAG,IAAI,IAAI;AACnE,cAAa,aAAT,QAAQ,KAAI;AACwC,YAAtD,AAAK,IAAD,wBAA4C;AAChD,kBAAO,AAAS,SAAD;;AAI8C,UAA/D,WAAW,oCAA8B,IAAI,EAAE,SAAS,EAAE,IAAI;AAC9D,cAAa,aAAT,QAAQ,KAAI;AACsC,YAApD,AAAK,IAAD,wBAA4C;AAChD,kBAAO,AAAS,SAAD;;AAImD,UAApE,WAAW,oCAA8B,IAAI,EAAE,AAAU,SAAD,GAAG,IAAI,IAAI;AACnE,cAAa,aAAT,QAAQ,KAAI;AACuC,YAArD,AAAK,IAAD,wBAA4C;AAChD,kBAAO,AAAS,SAAD;;AAKiD,UADlE,WACI,oCAA8B,IAAI,EAAE,AAAU,AAAK,SAAN,GAAG,KAAK,IAAI,IAAI;AACjE,cAAa,aAAT,QAAQ,KAAI;AACyC,YAAvD,AAAK,IAAD,wBAA4C;AAChD,kBAAO,AAAS,SAAD;;AAKsD,UADvE,WACI,oCAA8B,IAAI,EAAE,AAAU,AAAK,AAAK,SAAX,GAAG,KAAK,KAAK,IAAI,IAAI;AACf,UAAvD,AAAK,IAAD,wBAA4C;AAChD,gBAAO,AAAS,SAAD;AACf;;;AAEJ,YAAgB,cAAT,QAAQ,IAAG,IAAI,AAAS,QAAD,YAAU,AAAS,QAAD;IAClD;kBAGqB,cAAkB;AACrC,UAAI,AAAK,cAAG,QAAa,aAAL,2BAAO,YAAY;AAClB,QAAnB,aAAO,YAAY;;AAErB,UAAI,AAAK,cAAG,QAAa,aAAL,2BAAO,YAAY;AAClB,QAAnB,aAAO,YAAY;;IAEvB;sBAIoC,OAAY;AAC5C,YAAA,AAAuD,sCAAxB,MAAM,iBAAW,KAAK;IAAS;;;;QA5tBtD;QACH;QACK;QACD;QACS;QACO;QACF;QACV;QACM;QACZ;QACA;QACF;QACD;QACC;QACA;QACD;QACA;QACG;QACQ;QACA;QACA;QACA;QACA;QACV;QACgB;QACF;QACd;QACA;QACA;QACU;QACR;QACF;QACA;QACG;QACD;QACF;QACU;QACC;QACZ;IAgIa;IACjB;IACU;IACG;IACZ;IAnJI;IAGA;IACA;IACA;IAGA;IACA;IAOU,uBAAe,KAAb,YAAY,QAAZ,OAAqC;AACpD,wDACU,IAAI,aACC,SAAS,cACR,UAAU,mBACL,eAAe,gBAClB,YAAY,cACd,UAAU,iBACP,aAAa,wBACN,oBAAoB,yBACnB,qBAAqB,iBAC7B,aAAa,cAChB,UAAU,SACf,KAAK,kBACI,cAAc,YACpB,QAAQ,kBACF,cAAc,kBACd,cAAc,kBACd,cAAc,kBACd,cAAc,sBACV,kBAAkB,iBACvB,aAAa,gBACd,YAAY,cACd,UAAU,gBACR,YAAY,+BACG,2BAA2B,sBACpC,kBAAkB,YAC5B,QAAQ,aACP,SAAS,sBACA,kBAAkB,2BACb,uBAAuB,aACrC,SAAS,mBACH,eAAe,oBACd,gBAAgB;;EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICYhC;;;;;;IAgBM;;;;;;IAgBN;;;;;;IAeA;;;;;;IAeA;;;;;;IAgBA;;;;;;IAgBA;;;;;;IAER;;;;;;sBAGkD,QACtB,OAAW,YAAgB;;AACpC,MAAtB,AAAM,KAAD,UAAU,AAAM,KAAD;AACE,MAAtB,AAAM,KAAD,UAAU,AAAM,KAAD;AACa,WAAjC,MAAM;MAAC,AAAU,iBAAA,uBAAV,gBAAc,AAAM,KAAD,WAAT;AACgB,YAAjC,MAAM;MAAC,AAAU,kBAAA,wBAAV,gBAAc,AAAM,KAAD,WAAT;AACjB,WAAK,AAAO,AAAY,MAAb,0BAAsB,aAC3B,AAAO,AAAY,MAAb,0BAAsB,YAC5B,AAAO,AAAY,MAAb,0BAAsB;AACC,eAAjC,MAAM;QAAC,AAAU,mBAAA,yBAAV,gBAAc,AAAM,KAAD,WAAT;AACgB,eAAjC,MAAM;QAAC,AAAU,mBAAA,yBAAV,gBAAc,AAAM,KAAD,WAAT;;AAEE,MAArB,AAAQ,iBAAA,uBAAR,gBAAY,AAAM,KAAD,QAAT;AACa,MAArB,AAAQ,iBAAA,uBAAR,gBAAY,AAAM,KAAD,QAAT;AACe,MAAvB,AAAS,kBAAA,wBAAT,gBAAa,AAAM,KAAD,SAAT;AACc,MAAvB,AAAS,kBAAA,wBAAT,gBAAa,AAAM,KAAD,SAAT;AACT,UAAI,AAAM,KAAD,WAAW;AACyC,QAA3D,AAAO,MAAD,cAAa,mBAAS,AAAO,MAAD,6BAAY,AAAM,KAAD;AACQ,QAA3D,AAAO,MAAD,cAAa,mBAAS,AAAO,MAAD,6BAAY,AAAM,KAAD;;AAErD,UAAI,AAAM,KAAD,WAAW,SACd,AAAO,AAAY,MAAb,0BAAsB,aACzB,AAAO,AAAY,MAAb,0BAAsB,YAC5B,AAAO,AAAY,MAAb,0BAAsB;AACwB,QAA3D,AAAO,MAAD,cAAa,mBAAS,AAAO,MAAD,6BAAY,AAAM,KAAD;AACQ,QAA3D,AAAO,MAAD,cAAa,mBAAS,AAAO,MAAD,6BAAY,AAAM,KAAD;;AAErD,UAAI,AAAM,KAAD,SAAS;AACyB,QAAzC,iBAAW,mBAAS,gCAAU,AAAM,KAAD;AACM,QAAzC,iBAAW,mBAAS,gCAAU,AAAM,KAAD;;AAErC,UAAI,AAAM,KAAD,QAAQ;AACuB,QAAtC,gBAAU,mBAAS,+BAAS,AAAM,KAAD;AACK,QAAtC,gBAAU,mBAAS,+BAAS,AAAM,KAAD;;AAEnC,UAAe,aAAX,UAAU,KAAe,aAAX,UAAU,IAAG;AAC7B,YAAI,AAAO,AAAY,MAAb,0BAAsB,YAC5B,AAAO,AAAY,MAAb,0BAAsB,WAC5B,AAAO,AAAY,MAAb,0BAAsB;AACjB,UAAb,AAAQ,iBAAA,OAAR,gBAAY,IAAJ;AACK,UAAb,AAAQ,iBAAA,OAAR,gBAAY,IAAJ;AACM,UAAd,AAAS,kBAAA,OAAT,iBAAa,IAAJ;AACK,UAAd,AAAS,kBAAA,OAAT,iBAAa,IAAJ;AACqC,UAA9C,AAAO,MAAD,cAAa,mBAAS,eAAS;AACS,UAA9C,AAAO,MAAD,cAAa,mBAAS,eAAS;;AAEjB,eAAtB,MAAM;QAAC,AAAU,mBAAA,OAAV,kBAAc,IAAJ;AACK,eAAtB,MAAM;QAAC,AAAU,mBAAA,OAAV,kBAAc,IAAJ;AACK,eAAtB,MAAM;QAAC,AAAU,mBAAA,OAAV,kBAAc,IAAJ;AACK,eAAtB,MAAM;QAAC,AAAU,mBAAA,OAAV,kBAAc,IAAJ;;IAErB;;AAGE,UAAI,wBAAmB;AACwB,QAA7C,AAAO,AAAY,gDAAsB;AACJ,QAArC,sBAAgB,AAAgB;AACG,QAAnC,sBAAgB,AAAgB;AACQ,QAAxC,AAAO,AAAY;;IAEvB;iCAGiD,aAAqB;AAChD,MAApB,eAAS,WAAW;AACpB,UAAI,wBAAmB;AACwB,QAA7C,AAAgB,2CAAY;;AAEnB,0BAAgB,AAAO,AAAY;AACnC,iBAAY,qBAAS,AAAc,aAAD,OAAO,AAAc,aAAD,MAC7D,AAAc,aAAD,QAAQ,AAAc,aAAD;AACG,MAAzC,kBAAY,gBAAK,AAAK,IAAD,QAAQ,AAAK,IAAD;AACb,MAApB,oBAAe;AACQ,MAAvB;AACgC,MAAhC,2BAAsB;AAGtB,WAAK,uBAAkB,QAAQ,uBAAkB,SAC5C,uBAAkB,uBACnB,AAAO,AAAY,8CAAoB,kBACvC,AAAO,AAAY,AAAiB;AAGX,QAF3B,AAAc,8BAAU,AAAe,uBAAG,OACQ,CAA3C,AAAyB,SAAhB,uBAAmB,SAAS,iBACtC,AAAc;AAGO,QAF3B,AAAc,8BAAU,AAAe,uBAAG,OACQ,CAA3C,AAAyB,SAAhB,uBAAmB,SAAS,iBACtC,AAAc;AAC+C,QAAnE,AAAc,4BAAA,gBAA8B,WAAtB,AAAc,mCAAU,AAAc;AACJ,QAAxD,oBAAkC,aAApB,AAAc,0CAAS,AAAa;AAEqB,8BADvE,mBACmD,WAAxB,WAAtB,AAAc,mCAAU,AAAa,oCAAW,AAAa;;AAEpE,UAAI,AAAK,IAAD,IAAI,QAAQ,IAAI,KAAI;AACH,QAAvB;;IAEJ;;;AAGM;AAAU;AACJ,MAAV,AAAK,cAAA,OAAL,aAAS,IAAJ;AACK,MAAV,AAAK,cAAA,OAAL,aAAS,IAAJ;AAGgB,mBAFrB,gBAA8C,UAAvC,AAAO,AAAY,kDAAuB,wBAAmB,OAC9D,uBACQ,yBAAR,OAAW;AAGI,mBAFrB,gBAA8C,UAAvC,AAAO,AAAY,kDAAuB,wBAAmB,OAC9D,uBACQ,2BAAR,OAAW;AACS,MAA1B,aAAY,aAAL,cAAO,IAAI,IAAI;AACY,MAAlC,WAAW,gBAAS,YAAM;AACoB,MAA9C,WAAW,AAAS,QAAD,cAAY,QAAQ,GAAG;AACV,MAAhC,SAAS,gBAAS,YAAM;AACgB,MAAxC,SAAS,AAAO,MAAD,cAAY,MAAM,GAAG;AACP,MAA7B,aAAsB,CAAL,aAAT,QAAQ,IAAG;AACO,MAA1B,aAAoB,CAAL,aAAP,MAAM,IAAG;AACjB,UAAI,AAAK,cAAG;AACD,QAAT,aAAK,aAAL,cAAQ;;AAE8B,MAAxC,qBAAe,6BAAc,YAAM;AAC6B,MAAhE,AAAa,2BAAA,gBAA6B,WAArB,AAAa,kCAAU,AAAa;AAEG,MAD5D,AAAa,+BACA,8BAAT,OAAY,8BAAyB,AAAa;IACxD;0BAIgC;AAC2C,MAAzE,sBAAgB,6BAAc,AAAa,4BAAS,AAAa;AACzB,MAAxC,AAAc,4BAAQ,AAAa;AACW,MAA9C,AAAc,+BAAW,AAAa;AACwB,MAA9D,0BAAoB,MAAM,AAAO,AAAY;AAC7C,UAAgB,aAAZ,qBAAc,KAAmB,aAAd,uBAAgB;AACC,QAAtC,AAAO,AAAY,yCAAe;AACM,QAAxC,0BAAoB,MAAM,aAAa;AAC4B,QAAnE,AAAc,4BAAA,gBAA8B,WAAtB,AAAc,mCAAU,AAAc;AAI5B,QAHhC,AAAc,+BACkB,UAA5B,+CAA+B,AAAO,AAAY,0CAC5C,8BAAyB,AAAc,6BACvC,AAAc;AAGY,QAFpC,AAAc,+BAA0C,YAAR,WAAvB,AAAc,4CAAoB,KACrD,IACuB,WAAvB,AAAc;;IAExB;6BAEiC;AACjB,8BAA6B,CAAC,IAAI,GAAG,GAAG;AAC5C,uCACN,qCAA+B,iBAAW;AAC1C,yBAAe,KAAK;AACd,wBAAc,SAAS,IAAI,AAA2B,gBAAlB,YAAY,EAAE;AAC5D,eAAS,IAAI,GAAG,AAAE,CAAD,gCAAqB,WAAlB,iBAAiB,eAAS,IAAA,AAAC,CAAA;AACnC,uCAA4B,WAAjB,iBAAiB,WAAC,CAAC;AAC9B,8BAAkB,AAAY,WAAD,gBAAG,QAAQ;AAClD,YAA+B,aAA3B,0BAA0B,IAAU,aAAN,KAAK,IAAG,eAAe;AACvD;;AAE4B,QAA9B,eAAe,eAAe;;AAEhC,YAAO,aAAY;IACrB;sBAIqC,OAAW;IAAW;;AAKrD,yCAAe,AAAc;AAC1B;AACuB,MAA9B,uBAA4B;AAC5B,aACiB,aAAb,YAAY,kCAAI,AAAc,+BAC9B,eAAa,aAAb,YAAY,iCAAI,AAAc;AACyB,QAAzD,YAAY,AAA2B,AAAQ,SAA/B,cAAS,YAAY;AACrC,YAAI,qBAAgB;AACiD,UAAnE,YAAY,AAAa,yBAAO,AAA2B,SAAvB,cAAS,YAAY;;AAE3D,YAAI,oBAAe,QAAQ,qBAAe;AACwB,UAAhE,YAAY,AAAY,8BAAW,gBAAO,YAAY,SAAS;;AAEhB,QAAjD,+BAAyB,SAAS,EAAE,YAAY;;AAIV,MAAxC,iCAA2B,MAAM;IACnC;sBAIoC,OAAY;AAAkB;IAAI;;;;QAvX1D;QACH;QACK;QACD;QACgB;QACrB;QACmB;QACV;QACR;QACA;QACD;QACA;QACW;QACA;QACA;QACA;QACI;QACJ;QACR;QACA;QACA;QACF;QACc;QACd;QACA;QACE;QACA;QACF;QACA;QACA;QACA;QACU;QACP;QACD;QACF;QACU;QACX;QACY;IAiJf;IA/JI;IACA;IAGA;IACA;IACA;IACA;IAQK,kBAAU,KAAR,OAAO,QAAP,OAAW;AACrB,2DACU,IAAI,aACC,SAAS,cACR,UAAU,mBACL,eAAe,iBACjB,aAAa,wBACN,oBAAoB,iBAC3B,aAAa,gBACd,YAAY,yBACH,qBAAqB,iBAC7B,aAAa,cAChB,UAAU,SACf,KAAK,YACF,QAAQ,sBACE,kBAAkB,kBACtB,cAAc,kBACd,cAAc,kBACd,cAAc,kBACd,cAAc,kBACd,cAAc,cAClB,UAAU,cACV,UAAU,gBACR,YAAY,+BACG,2BAA2B,sBACpC,kBAAkB,YAC5B,QAAQ,aACP,SAAS,sBACA,kBAAkB,2BACb,uBAAuB,aACrC,SAAS,oBACF,gBAAgB,mBACjB,eAAe;;EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICK1B;;;;;;IAgBJ;;;;;;IAcM;;;;;;IAgBN;;;;;;IAgBA;;;;;;IAgBA;;;;;;IAgBA;;;;;;IAcH;;;;;;IAML;;;;;;sBAGkD,QACtB,OAAW,YAAgB;;AACpC,MAAtB,AAAM,KAAD,UAAU,AAAM,KAAD;AACE,MAAtB,AAAM,KAAD,UAAU,AAAM,KAAD;AACa,WAAjC,MAAM;MAAC,AAAU,iBAAA,uBAAV,gBAAc,AAAM,KAAD,WAAT;AACgB,YAAjC,MAAM;MAAC,AAAU,kBAAA,wBAAV,gBAAc,AAAM,KAAD,WAAT;AACjB,WAAK,AAAO,AAAY,MAAb,0BAAsB,aAC3B,AAAO,AAAY,MAAb,0BAAsB,YAC5B,AAAO,AAAY,MAAb,0BAAsB;AACC,eAAjC,MAAM;QAAC,AAAU,mBAAA,yBAAV,gBAAc,AAAM,KAAD,WAAT;AACgB,eAAjC,MAAM;QAAC,AAAU,mBAAA,yBAAV,gBAAc,AAAM,KAAD,WAAT;;AAEE,MAArB,AAAQ,iBAAA,uBAAR,gBAAY,AAAM,KAAD,QAAT;AACa,MAArB,AAAQ,iBAAA,uBAAR,gBAAY,AAAM,KAAD,QAAT;AACe,MAAvB,AAAS,kBAAA,wBAAT,gBAAa,AAAM,KAAD,SAAT;AACc,MAAvB,AAAS,kBAAA,wBAAT,gBAAa,AAAM,KAAD,SAAT;AACT,UAAI,AAAM,KAAD,WAAW;AACyC,QAA3D,AAAO,MAAD,cAAa,mBAAS,AAAO,MAAD,6BAAY,AAAM,KAAD;AACQ,QAA3D,AAAO,MAAD,cAAa,mBAAS,AAAO,MAAD,6BAAY,AAAM,KAAD;;AAErD,UAAI,AAAM,KAAD,WAAW,SACd,AAAO,AAAY,MAAb,0BAAsB,aACzB,AAAO,AAAY,MAAb,0BAAsB,YAC5B,AAAO,AAAY,MAAb,0BAAsB;AACwB,QAA3D,AAAO,MAAD,cAAa,mBAAS,AAAO,MAAD,6BAAY,AAAM,KAAD;AACQ,QAA3D,AAAO,MAAD,cAAa,mBAAS,AAAO,MAAD,6BAAY,AAAM,KAAD;;AAErD,UAAI,AAAM,KAAD,SAAS;AACyB,QAAzC,iBAAW,mBAAS,gCAAU,AAAM,KAAD;AACM,QAAzC,iBAAW,mBAAS,gCAAU,AAAM,KAAD;;AAErC,UAAI,AAAM,KAAD,QAAQ;AACuB,QAAtC,gBAAU,mBAAS,+BAAS,AAAM,KAAD;AACK,QAAtC,gBAAU,mBAAS,+BAAS,AAAM,KAAD;;AAEnC,UAAe,aAAX,UAAU,KAAe,aAAX,UAAU,IAAG;AAC7B,YAAI,AAAO,AAAY,MAAb,0BAAsB,YAC5B,AAAO,AAAY,MAAb,0BAAsB,WAC5B,AAAO,AAAY,MAAb,0BAAsB;AACjB,UAAb,AAAQ,iBAAA,OAAR,gBAAY,IAAJ;AACK,UAAb,AAAQ,iBAAA,OAAR,gBAAY,IAAJ;AACM,UAAd,AAAS,kBAAA,OAAT,iBAAa,IAAJ;AACK,UAAd,AAAS,kBAAA,OAAT,iBAAa,IAAJ;AACqC,UAA9C,AAAO,MAAD,cAAa,mBAAS,eAAS;AACS,UAA9C,AAAO,MAAD,cAAa,mBAAS,eAAS;;AAEjB,eAAtB,MAAM;QAAC,AAAU,mBAAA,OAAV,kBAAc,IAAJ;AACK,eAAtB,MAAM;QAAC,AAAU,mBAAA,OAAV,kBAAc,IAAJ;AACK,eAAtB,MAAM;QAAC,AAAU,mBAAA,OAAV,kBAAc,IAAJ;AACK,eAAtB,MAAM;QAAC,AAAU,mBAAA,OAAV,kBAAc,IAAJ;;IAErB;;AAGE,UAAI,wBAAmB;AACwB,QAA7C,AAAO,AAAY,gDAAsB;AACJ,QAArC,sBAAgB,AAAgB;AACG,QAAnC,sBAAgB,AAAgB;AACQ,QAAxC,AAAO,AAAY;;IAEvB;iCAGiD,aAAqB;AAChD,MAApB,eAAS,WAAW;AACpB,UAAI,wBAAmB;AACwB,QAA7C,AAAgB,2CAAY;;AAEnB,0BAAgB,AAAO,AAAY;AACnC,iBAAY,qBAAS,AAAc,aAAD,OAAO,AAAc,aAAD,MAC7D,AAAc,aAAD,QAAQ,AAAc,aAAD;AACG,MAAzC,kBAAY,gBAAK,AAAK,IAAD,QAAQ,AAAK,IAAD;AACb,MAApB,oBAAe;AACQ,MAAvB;AACA,UAAI,sBAAgB;AACoC,QAAtD,uBAAkB,oCAAc,AAAa;AAC7C,YAAI,AAAK,IAAD,IAAI,QAAQ,IAAI,KAAI;AACH,UAAvB;;;IAGN;;;AAGY,MAAV,AAAK,cAAA,OAAL,aAAS,IAAJ;AACK,MAAV,AAAK,cAAA,OAAL,aAAS,IAAJ;AAOqB,MAN1B,qBAAe,6BAC4B,UAAvC,AAAO,AAAY,kDAAuB,wBAAmB,OACvD,uBACQ,yBAAR,OAAW,kBACsB,UAAvC,AAAO,AAAY,kDAAuB,wBAAmB,OACvD,uBACQ,2BAAR,OAAW;AAGrB,UAAyB,YAArB,AAAa,4BAAW,AAAa;AACd,eAAzB;QAAa,eAAQ,WAAR,oBAAW;YAIrB,gBAAyB,WAArB,AAAa,kCAAU,AAAa;AACuB,QAAlE,AAAa,6BAA+B,WAArB,AAAa,kCAAU,AAAa;AACO,QAAlE,AAAa,6BAA+B,WAArB,AAAa,kCAAU,AAAa;AACO,QAAlE,AAAa,6BAA+B,WAArB,AAAa,kCAAU,AAAa;;AAEG,MAAhE,AAAa,2BAAA,gBAA6B,WAArB,AAAa,kCAAU,AAAa;AAI3C,MAFd,AAAa,8BAAW,AAAS,iBAAG,OAC9B,oCAA8B,MAAM,AAAa,0BAAO,mBACxD;IACR;sBAIqC,OAAW;AACvB;AACvB,YAAM,gBAAW,QAAQ,gBAAW;AAEe,QAAjD,yBAAmB,MAAM,cAAQ,KAAK,EAAE,QAAQ;;AAGlB,MAAhC,2BAAsB;AAGtB,WAAK,uBAAkB,QAAQ,uBAAkB,SAC5C,uBAAkB,uBACnB,AAAO,AAAY,8CAAoB,kBACvC,AAAO,AAAY,AAAiB;AAE6B,QADnE,AAAc,8BACV,AAAe,uBAAG,OAAO,sBAAiB,AAAc;AAEO,QADnE,AAAc,8BACV,AAAe,uBAAG,OAAO,sBAAiB,AAAc;AACO,QAAnE,AAAc,4BAAA,gBAA8B,WAAtB,AAAc,mCAAU,AAAc;AACb,QAA/C,oBAAkC,aAApB,AAAc,0CAAQ,AAAM,KAAD;AAEuB,8BADhE,mBACmD,WAAxB,WAAtB,AAAc,mCAAU,AAAa,oCAAW,AAAM,KAAD;;AAE5D,UAAI,AAAO,qCAAwB;AACU,QAA3C,mBAAmB;AACS,QAA5B,AAAiB,gBAAD,QAAQ;AACS,QAAjC,AAAiB,gBAAD,YAAY;AACe,QAA3C,AAAiB,gBAAD,eAAe;AACW,QAA1C,AAAiB,gBAAD,aAAa,AAAM,KAAD;AACQ,QAA1C,AAAiB,gBAAD,aAAa,AAAM,KAAD;AACc,QAAhD,AAAiB,gBAAD,kBAAkB,AAAM,KAAD;AACY,QAAnD,AAAiB,gBAAD,cAAc,AAAc;AACO,QAAnD,AAAiB,gBAAD,cAAc,AAAc;AACa,QAAzD,AAAiB,gBAAD,mBAAmB,AAAc;AACJ,QAA7C,AAAO,kCAAqB,gBAAgB;AACO,QAAnD,AAAc,8BAAU,AAAiB,gBAAD;AACW,QAAnD,AAAc,8BAAU,AAAiB,gBAAD;AACiB,QAAzD,AAAc,+BAAW,AAAiB,gBAAD;;IAE7C;;AAKM,yCAAe,AAAc;AAC1B;AACM,oBAAuB,cAAb,YAAY;AACzB,gDAAsB,AAAc;AAC1C,qCAAW,AAAc;AAMf,MALd,WAAiD,aAA7B,AAAW,AAAW,cAA/B,QAAQ,UAAkB,kBAAe,IACrC,AAAW,AAAU,AAAI,AAAO,AAAK,cAA9C,QAAQ,UAAkB,YAAK,cAAa,KAC7B,AAAW,AAAU,AAAI,cAAlC,QAAQ,UAAkB,YAAK,OAAM,MACvC,AAAS,QAAD,aACR,QAAQ,GACZ,QAAQ;AACgB,MAA9B,uBAA4B;AAC5B,aAAoB,aAAb,YAAY,kBAAI,mBAAmB,GAAE,eAAa,aAAb,YAAY,iBAAI,QAAQ;AAC9D,kCAAsB,YAAY;AACtC,YAAwB,aAApB,mBAAmB,kBAAI,mBAAmB,KACtB,aAApB,mBAAmB,kCAAI,AAAc;AAC7B,+BAA4C,aAA1B,AAAQ,AAAW,OAAZ,SAAO,kBAAe,IAC7B,AAAW,cAAjC,AAAQ,AAAU,OAAX,SAAO,YAAK,aAC+B,aAA7B,AAAW,AAAW,cAA1C,mBAAmB,UAAkB,kBAAe,IACJ,AAAW,cAApC,AAAW,AAAU,cAAzC,mBAAmB,UAAkB,YAAK,aAC1C;AAG6D,UAFvE,sBAA0C,AAAW,cAA/B,mBAAmB,aAAqB,OACxD,mBAAmB,GACf,kBAAS,AAAoB,mBAAD,mBAAiB,cAAc;AACrE,cAAqD,aAA7B,AAAW,AAAW,cAA1C,mBAAmB,UAAkB,iBAAc;AACxC,sBAA0B,cAApB,mBAAmB;AAClB,uBAAO,AAAI,GAAD,SAAO;AAE+B,YADpE,sBACW,kBAAM,AAAoB,mBAAD,mBAAiB;AACrD,gBAAI,IAAI,KAAI,QACI,aAAZ,AAAK,IAAD,aAAU,MACL,YAAR,AAAI,IAAA,QAAC,IAAM,QACA,YAAR,AAAI,IAAA,QAAC,IAAM,SACH,YAAR,AAAI,IAAA,QAAC,IAAM,UACH,YAAR,AAAI,IAAA,QAAC,IAAM,WACH,YAAR,AAAI,IAAA,QAAC,IAAM,WACjB,AAAiD,sBAA3B,AAAoB,mBAAD;;AAER,UAArC,OAA2B,cAApB,mBAAmB;AAC1B,cAAI,qBAAgB;AAC6B,YAA/C,OAAO,AAAa,yBAAO,mBAAmB;;AAEhD,cAAI,oBAAe,QAAQ,qBAAe;AACc,YAAtD,OAAO,AAAY,8BAAW,gBAAO,YAAY,IAAI;;AAK7C,UAHV,OAAsC,AAAQ,YAAvC,AAAO,AAAa,sCAAc,SACjC,AAAM,gBAAG,AAAO,AAAa,oCACzB,aAAL,IAAI,IAAG,MACR,IAAI;AACkC,UAA5C,+BAAyB,IAAI,EAAE,YAAY;;;AAKP,MAAxC,iCAA2B,MAAM;IACnC;0BAIgC;AAC2C,MAAzE,sBAAgB,6BAAc,AAAa,4BAAS,AAAa;AACzB,MAAxC,AAAc,4BAAQ,AAAa;AACW,MAA9C,AAAc,+BAAW,AAAa;AACwB,MAA9D,0BAAoB,MAAM,AAAO,AAAY;AAC7C,UAAgB,aAAZ,qBAAc,KAAmB,aAAd,uBAAgB;AACC,QAAtC,AAAO,AAAY,yCAAe;AACM,QAAxC,0BAAoB,MAAM,aAAa;AAIP,QAHhC,AAAc,+BACkB,UAA5B,+CAA+B,AAAO,AAAY,0CAC5C,uBAAkB,qBAAe,mBACjC,AAAc;;IAE5B;sBAIoC,OAAY;AAC5C,iDAA8B,MAAM,AAAc,2BAAO;IAAU;;;;QAxa9D;QACF;QACK;QACD;QACS;QACO;QACrB;QACC;QACA;QACU;QACQ;QACV;QACR;QACA;QACD;QACA;QACW;QACA;QACA;QACA;QACI;QACJ;QACR;QACA;QACA;QACY;QACd;QACA;QACE;QACF;QACA;QACG;QACD;QACF;QACU;QACX;QACA;QACY;IAoCD;IA8GP,qBAAe;IAEf,sBAAgB;IAErB;IApLE;IACA;IAkBA;IACA;IAEA;IACA;IAQa,wBAAgB,KAAd,aAAa,QAAb,OAAiB;AACjC,uDACQ,IAAI,aACC,SAAS,cACR,UAAU,mBACL,eAAe,gBAClB,YAAY,iBACX,aAAa,wBACN,oBAAoB,iBAC3B,aAAa,gBACd,YAAY,yBACH,qBAAqB,iBAC7B,aAAa,cAChB,UAAU,SACf,KAAK,kBACI,cAAc,YACpB,QAAQ,sBACE,kBAAkB,kBACtB,cAAc,kBACd,cAAc,kBACd,cAAc,kBACd,cAAc,cAClB,UAAU,cACV,UAAU,gBACR,YAAY,sBACN,kBAAkB,YAC5B,QAAQ,aACP,SAAS,sBACA,kBAAkB,2BACb,uBAAuB,aACrC,SAAS,oBACF,gBAAgB,mBACjB,eAAe;;EACjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICbI;;;;;;IAsBG;;;;;;IAsBA;;;;;;IAoBD;;;;;;IAmBQ;;;;;;IAqBT;;;;;;IAqBA;;;;;;IAqBC;;;;;;IAqBA;;;;;;IAqBF;;;;;;IAmBG;;;;;;IAmBA;;;;;;IAmBD;;;;;;IAqBF;;;;;;IAqBgB;;;;;;IAoBR;;;;;;IAmBL;;;;;;IAmBA;;;;;;IAmBA;;;;;;IAqBG;;;;;;IAqBA;;;;;;IA+BI;;;;;;;;;QA3eX;QACD;QACA;QACC;QACC;QACD;QACC;QACF;QACU;QACV;QACG;QACH;QACA;QACA;QACgB;QACR;QACR;QACA;QACA;QACM;QACA;QACN;IApBA;IACA;IAKA;IAIA;IACA;IAIA;IACA;IACA;IAGA;IACO,qBAAY,KAAV,SAAS,QAAT,OAAa;IACjB,mBAAU,MAAR,OAAO,SAAP,OAAW;IACf,iBAAQ,OAAN,KAAK,UAAL,OAAgB;IACZ,uBAAc,OAAZ,WAAW,UAAX,OAAsB;IACxB,uBAAc,OAAZ,WAAW,UAAX,OAAe;IACnB,qBAAY,OAAV,SAAS,UAAT,OAAa;IACZ,uBAAe,OAAb,YAAY,UAAZ,OAAgB;IACnB,sBAAc,OAAZ,WAAW,UAAX,OAAe;IACL,kCAA0B,OAAxB,uBAAuB,UAAvB,OAA2B;IAC3C,qBAAY,OAAV,SAAS,UAAT,OAAqB,sBAAC,KAAG;IAC5B,mBAAW,OAAT,QAAQ,UAAR,OAAiC;IACtB,gCAAwB,OAAtB,qBAAqB,UAArB,OAAoC;IACpC,kCAA0B,QAAxB,uBAAuB,WAAvB,OAAsC;;EAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAod1D,QAAa;AACxB;AACL,eAAS,YAAY,GACjB,AAAU,SAAD,gBAAG,AAAM,AAAW,AAAiB,oDAC9C,YAAA,AAAS,SAAA;AACK,mBAAO,AAAM,AAAW,AAAgB,gDAAC,SAAS;AAClE,iBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAK,AAAU,IAAX,sBAAmB,IAAA,AAAC,CAAA;AAC3B,yBAAW,AAAK,AAAS,IAAV,kBAAW,CAAC;AAC1C,wBAAI,AAAS,QAAD,4BACR,8BAA2B,AAAS,QAAD;AAQ4B,YAPjE,WAAW,4BACF,qBACD,AAAM,AAAW,AAAc,4CAC/B,AAAM,AAAW,AAAc,2CAC/B,AAAM,AAAW,AAAc,6CAC/B,AAAM,AAAW,AAAc,+CACnC,kBAAO,AAAM,AAAW,AAAgB,AAAY,gDAAX,SAAS,cAC9C,AAAM,AAAW,AAAgB,AAAY,gDAAX,SAAS;AAC1B,YAAzB,AAAO,MAAD,UAAU,QAAQ;AACe,YAAvC,sBAAgB,MAAM,EAAE,IAAI,EAAE,QAAQ;;;;IAI9C;4BAE+C,MAAc,OACjD,KAAc,UAAe;AAC/B,uBAAmB,AAAU,OAAhB,KAAK,gBAAkB,kBAAS,KAAK,KAAK,OACrD,kBAAS,KAAK,IAClB,KAAK;AAEH,qBACA,AAAU,OAAd,GAAG,gBAAkB,kBAAS,GAAG,KAAK,OAAW,kBAAS,GAAG,IAAI,GAAG;AACxE,UAAS,uBAAL,IAAI;AAGU,QAFhB,aAAwB,iBAAX,UAAU,IACjB,AAAW,UAAD,0BACV,UAAU;AAKuD,QAJvE,qBAAW,YAAY,IACI,iBAArB,AAAS,QAAD,gBACiB,WAArB,AAAS,QAAD,0CACR,AAAS,QAAD,eACH,iBAAT,QAAQ,IAAe,AAAS,QAAD,0BAA0B,QAAQ;YAClE,KAAS,uBAAL,IAAI;AAEwD,QADrE,aACe,OAAX,UAAU,eAAU,UAAU,GAAgB,WAAb,AAAK,IAAD,uBAAiB,UAAU;AAKH,QAJjE,qBAAW,YAAY,IACI,OAArB,AAAS,QAAD,2BACiB,WAArB,AAAS,QAAD,6BACK,WAAb,AAAK,IAAD,uBAAiB,AAAS,QAAD,iBACxB,OAAT,QAAQ,eAAU,QAAQ,GAAgB,WAAb,AAAK,IAAD,uBAAiB,QAAQ;YAC3D,KAAS,0BAAL,IAAI,KAA4B,sBAAL,IAAI;AACiB,QAAzD,qBAAW,YAAY,IAAG,AAAS,QAAD,eAAe,QAAQ;;AAE3D,YAAO,+CAAe,UAAU,mBAAE,QAAQ;IAC5C;sBAE4B,QAAkB,MAAe;;AACvD;AAAY;AAEL,yBACsB,UADP,AAAS,QAAD,kBAC9B,AAAS,QAAD,gBAAgB,QACxB,AAAS,QAAD,gBAAgB;AAEP,8BAAoB,4BACrC,IAAI,GACW,KAAf,AAAS,QAAD,cAAC,OAAS,AAAK,AAAc,IAAf,+BACtB,AAAS,QAAD,MACR,QAAQ,EACR,YAAY;AACgB,MAAhC,aAAa,AAAkB,iBAAD;AACA,MAA9B,WAAW,AAAkB,iBAAD;AAC5B,UAAI,YAAY;AACV,0BAAc,UAAU;AAAE;AAC9B,eAAmB,aAAZ,WAAW,iBAAG,QAAQ;AAE4C,UADvE,YAAY,gBACR,IAAI,EAAE,QAAQ,EAAE,WAAW,mBAAgB,MAAd,AAAS,QAAD,cAAC,OAAQ,AAAS,QAAD;AACH,UAAvD,YAAsB,aAAV,SAAS,iBAAG,QAAQ,IAAG,QAAQ,GAAG,SAAS;AACe,UAAtE,6BAAuB,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM;AAGtD,UAFf,cAAc,AAAS,AAAK,QAAN,SAAS,OACzB,gBAAU,IAAI,EAAE,QAAQ,EAAE,WAAW,kBAAE,AAAS,QAAD,iBAC/C,SAAS;;;AAGmD,QAApE,6BAAuB,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM;;IAEvE;gBAEwB,MAAe,UAAc,OAAW;AACzC;AACrB,UAAS,uBAAL,IAAI;AAGiB,QAFvB,eAAkC,YAAlB,AAAS,QAAD,WAAkC,oCACpD,AAAK,IAAD,wBACJ,AAAS,QAAD;AACL,mBAAgB,wDAA2B,KAAK;AACzD,gBAAQ,YAAY;;;AAGa,YAD7B,OAAO,iCAAmB,aAAV,AAAK,IAAD,sBAAQ,QAAQ,IAAE,AAAK,IAAD,QAAQ,AAAK,IAAD,MAAM,AAAK,IAAD,OAC5D,AAAK,IAAD,SAAS,AAAK,IAAD;AACrB;;;;AAG6B,YAD7B,OAAO,sBAAS,AAAK,IAAD,kBAAkB,aAAX,AAAK,IAAD,uBAAS,QAAQ,IAAE,AAAK,IAAD,MAAM,AAAK,IAAD,OAC5D,AAAK,IAAD,SAAS,AAAK,IAAD;AACrB;;;;AAG6B,YAD7B,OAAO,sBAAS,AAAK,IAAD,OAAO,AAAK,IAAD,mBAAiB,aAAT,AAAK,IAAD,qBAAO,QAAQ,IAAE,AAAK,IAAD,OAC5D,AAAK,IAAD,SAAS,AAAK,IAAD;AACrB;;;;AAG6B,YAD7B,OAAO,sBAAS,AAAK,IAAD,OAAO,AAAK,IAAD,QAAQ,AAAK,IAAD,iBAAgB,aAAV,AAAK,IAAD,sBAAQ,QAAQ,IACjE,AAAK,IAAD,SAAS,AAAK,IAAD;AACrB;;;;AAGwC,YADxC,OAAO,sBAAS,AAAK,IAAD,OAAO,AAAK,IAAD,QAAQ,AAAK,IAAD,MAAM,AAAK,IAAD,kBACrC,aAAZ,AAAK,IAAD,wBAAU,QAAQ,IAAE,AAAK,IAAD;AAChC;;;;AAGwC,YADxC,OAAO,sBAAS,AAAK,IAAD,OAAO,AAAK,IAAD,QAAQ,AAAK,IAAD,MAAM,AAAK,IAAD,OACjD,AAAK,IAAD,oBAAqB,aAAZ,AAAK,IAAD,wBAAU,QAAQ;AACvC;;;;AAEA;;;AAE+B,QAAnC,QAAQ,AAAK,IAAD;;AAEK,QAAjB,QAAM,aAAN,KAAK,iBAAI,QAAQ;;AAEnB,YAAO,MAAK;IACd;6BAEsC,MAAU,YAAgB,UACnD,UAAiB;;AACb;AAAY;AAAU;AAAmB;AAC7C,qBAAW,AAAM,AAAW;AAClC;AACD;AACA;AAAM;AAAK;AAAQ;AAIM,mBAF7B,gBAAa,AAAW,UAAD,IAAI,OACrB,AAAK,AAAc,IAAf,0BACJ,aAAa,UAAU;AAG0C,iBADvE,gBACI,AAAS,QAAD,IAAI,OAAO,AAAK,AAAc,IAAf,0BAAyB,WAAW,QAAQ;AAIvD,MAFhB,aAAkB,0BAAL,IAAI,IACX,gBAAS,UAAU,EAAE,AAAK,IAAD,YACzB,UAAU;AAEyD,MADzE,WACS,0BAAL,IAAI,IAAsB,gBAAS,QAAQ,EAAE,AAAK,IAAD,YAAY,QAAQ;AAQ5C,MANpB,aAAT,QAAQ,IAAG,IACI,aAAT,QAAQ,kCAAI,AAAK,AAAc,IAAf,uCACZ,gBAAW,AAAK,AAAc,IAAf,2BACf,WAAW,QAAQ,GACd,aAAT,QAAQ,kCAAI,AAAK,AAAc,IAAf,uCACZ,gBAAW,AAAK,AAAc,IAAf,2BACf,WAAW,QAAQ;AAQI,MANtB,aAAX,UAAU,IAAG,IACI,aAAX,UAAU,kCAAI,AAAK,AAAc,IAAf,yCACd,gBAAa,AAAK,AAAc,IAAf,2BACjB,aAAa,UAAU,GAChB,aAAX,UAAU,kCAAI,AAAK,AAAc,IAAf,yCACd,gBAAa,AAAK,AAAc,IAAf,2BACjB,aAAa,UAAU;AAGc,MAD/C,aAAa,uBAAgB,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAC3D,AAAM,kCAAsB,MAAM,QAAQ;AAEC,MAD/C,WAAW,uBAAgB,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EACrD,AAAM,kCAAsB,MAAM,QAAQ;AAEpC;AACV,UAAI,AAAS,QAAD,wBAAwB,QAChC,AAAS,QAAD,sBAAsB;AAChC,YAAI,AAAK,AAAmB,IAApB,uBAAuB;AAGL,UAFxB,cAAiC,YAAlB,AAAK,IAAD,gBAAiC,qCAC9C,AAAM,0BACN,AAAM;;AAEZ,mBAAS,YAAY,GACjB,AAAU,SAAD,gBAAG,AAAM,AAAW,AAAiB,oDAC9C,YAAA,AAAS,SAAA;AACK,6BACZ,AAAM,AAAW,AAAgB,gDAAC,SAAS;AAC/C,gBAAI,AAAK,AAAmB,IAApB,uBAAuB,AAAW,UAAD;AACrB,cAAlB,cAAc,IAAI;;;;AAIH,gCAAoB,4BACrC,WAAW,GACkB,KAA7B,AAAS,QAAD,4BAAC,OAAuB,UAAU,SACf,MAA3B,AAAS,QAAD,2BAAC,OAAqB,QAAQ,SACtC,QAAQ,EACR;AAEJ,YAA6B,YAAzB,AAAY,WAAD,gBAAiC;AAEoB,UADlE,oBAAoB,uBAAgB,AAAkB,iBAAD,IAAI,UAAU,EAC/D,WAAW,EAAE,IAAI,EAAE,AAAM,kCAAsB,MAAM,QAAQ;AAEC,UADlE,kBAAkB,uBAAgB,AAAkB,iBAAD,IAAI,QAAQ,EAC3D,WAAW,EAAE,IAAI,EAAE,AAAM,kCAAsB,MAAM,QAAQ;AAG9C,UAFnB,OAAO,AAAS,AAAoB,QAArB,wBAAwB,OACjC,AAAkB,iBAAD,KACjB,AAAS,QAAD;AAGM,UAFpB,QAAQ,AAAS,AAAkB,QAAnB,sBAAsB,OAChC,AAAgB,eAAD,KACf,AAAS,QAAD;;AAGoD,UADlE,oBAAoB,uBAAgB,UAAU,EAAE,AAAkB,iBAAD,IAC7D,IAAI,EAAE,WAAW,EAAE,AAAM,kCAAsB,MAAM,QAAQ;AAEL,UAD5D,kBAAkB,uBAAgB,QAAQ,EAAE,AAAkB,iBAAD,IAAI,IAAI,EACjE,WAAW,EAAE,AAAM,kCAAsB,MAAM,QAAQ;AAGtC,UAFrB,MAAM,AAAS,AAAoB,QAArB,wBAAwB,OAChC,AAAkB,iBAAD,KACjB,AAAS,QAAD;AAGI,UAFlB,SAAS,AAAS,AAAkB,QAAnB,sBAAsB,OACjC,AAAgB,eAAD,KACf,AAAS,QAAD;;;AAIlB,UAAsB,YAAlB,AAAK,IAAD,gBAAiC;AACkC,QAAzE,YAAY,AAAS,AAAU,QAAX,cAAc,OAAO,AAAS,AAAU,QAAX,uBAAqB;AAEnB,QADnD,eAAoB,sBAAc,OAAL,IAAI,UAAJ,OAAQ,AAAW,UAAD,aAAQ,OAAJ,GAAG,UAAH,OAAO,AAAS,QAAD,eACxD,OAAN,KAAK,UAAL,OAAS,AAAS,QAAD,aAAW,OAAP,MAAM,UAAN,OAAU,AAAS,QAAD;;AAE4B,QAAvE,YAAY,AAAS,AAAU,QAAX,cAAc,OAAO,AAAS,AAAU,QAAX,uBAAqB;AAElB,QADpD,eAAoB,sBAAc,OAAL,IAAI,UAAJ,OAAQ,AAAS,QAAD,gBAAW,OAAJ,GAAG,UAAH,OAAO,AAAS,QAAD,aACzD,OAAN,KAAK,UAAL,OAAS,AAAS,QAAD,iBAAe,OAAP,MAAM,UAAN,OAAU,AAAW,UAAD;;AAEK,MAAxD,oBAAc,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM;IACzD;oBAGa,UAAe,cAAkB,WAAkB;;AAC3C,sBAAY,AAAS,QAAD;AAClC,yBAAe;AACpB,UAAI,YAAY,IAAI,QAAQ,AAAS,QAAD,UAAU;AACvC;AACL,iBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAU,SAAD,YAAS,IAAI,AAAE,CAAD,GAAG;AAC5C,cAAI,AAAS,AAAI,SAAJ,QAAC,CAAC,MAAK;AACE,YAApB,eAAe;;;AAUR,QANX,aAAO,eACH,UAAO,AAAa,YAAD,OAAO,AAAa,YAAD,OACtC,UAAyB,aAAlB,AAAa,YAAD,sBAAQ,AAAa,YAAD,SAAQ,AAAa,YAAD,OAC3D,UAAyB,aAAlB,AAAa,YAAD,sBAAQ,AAAa,YAAD,SACpB,aAAjB,AAAa,YAAD,qBAAO,AAAa,YAAD,WACjC,UAAO,AAAa,YAAD,OAAwB,aAAjB,AAAa,YAAD,qBAAO,AAAa,YAAD,WACzD;AAEQ,oBAAQ;AACf;AACL,YAAI,YAAY;AACW,UAAzB,AAAM,KAAD,eAAe;AAIV,UAHV,WAAW,QACL,iBAAU,IAAI,cACD,0CAA8B,SAAS,MACpD,IAAI;;AAEK,UAAf,WAAW,IAAI;;AAEjB,YAAI,IAAI,IAAI;AACJ;AACN,cAAI,AAAS,QAAD,aAAa;AAGO,YAF9B,mBAAY,gBACR,aAAS,AAAS,AAAS,QAAV,uBAAuB,YAAY,GACpD,YAAsB;;AAII,YAF9B,oBAAY,gBACR,aAAQ,AAAS,AAAM,QAAP,mBAAmB,AAAS,QAAD,WAC3C,aAAsB;;AAEI,UAAhC,AAAO,MAAD,UAAU,IAAI,EAAE,SAAS;AAC/B,cAAyB,aAArB,AAAS,QAAD,gBAAe,KACvB,AAAS,QAAD,gBAAgB,QACxB,QAAQ,IAAI;AAM6B,YAL3C,AAAO,MAAD,UACF,QAAQ,UACR,KAAK,EACD,aAAQ,AAAS,AAAY,QAAb,yBAAyB,AAAS,QAAD,WACjD,aAAsB,yBACtB,mBAAc,AAAS,QAAD;;;;AAIpC,UAAI,AAAS,QAAD,SAAS,QAAQ,AAAS,AAAK,QAAN;AACxB,uBACP,oBAAa,AAAS,QAAD,OAAO,AAAS,QAAD,YAAY,SAAS;AAkC/C,QAjCd,iBACI,MAAM,EACN,AAAS,QAAD,OACR,kBACqC,YAAjC,AAAS,QAAD,0BAAuC,4BACtB,AACU,AAOQ,aARpC,AAAa,YAAD,SACY,aAAnB,AAAa,YAAD,UAAS,iBACnB,AAAa,AAAK,YAAN,SACN,AAAM,AAAW,AAAc,8CACjC,IACC,AAAa,AAAM,YAAP,UACP,AAAM,AAAW,AAAc,6CACjC,AAAS,QAAD,SACO,aAAf,AAAS,QAAD,UAAS,MAC9B,AAAU,SAAD,KAAI,IAAmB,aAAf,AAAS,QAAD,UAAS,IAAI,KACR,YAAjC,AAAS,QAAD,0BAAuC,2BAC3C,AAAa,YAAD,QACO,aAAnB,AAAa,YAAD,uBAAS,AAAS,QAAD,SACR,YAA/B,AAAS,QAAD,wBAAqC,4BACrB,AACY,AAOI,aARjC,AAAa,YAAD,QACa,aAApB,AAAa,YAAD,WAAU,iBACpB,AAAa,AAAO,YAAR,WACN,AAAM,AAAW,AAAc,4CACjC,AAAS,QAAD,UACP,AAAa,AAAI,YAAL,QACP,AAAM,AAAW,AAAc,+CACjC,IACA,AAAS,QAAD,YACrB,AAAU,SAAD,KAAI,IAAoB,aAAhB,AAAS,QAAD,WAAU,IAAI,KACX,YAA/B,AAAS,QAAD,wBAAqC,2BACzC,AAAa,YAAD,OACQ,aAApB,AAAa,YAAD,wBAAU,AAAS,QAAD,WAC5C,AAAS,QAAD,YACR,SAAS;;IAEjB;;qCAGoC;AAAgB;IAAI;;;QAhVjC;QAAY;IAAZ;IAAY;AAAnC;;EAA4D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICpS3C;;;;;;IAYJ;;;;;;IAcD;;;;;;IAcA;;;;;;IAeC;;;;;;IAcD;;;;;;IAcA;;;;;;IAeC;;;;;;IAYG;;;;;;IAYA;;;;;;IAaC;;;;;;IAgBK;;;;;;IAcX;;;;;;IAgBgB;;;;;;IAeW;;;;;;IAeH;;;;;;IAeA;;;;;;IAgBH;;;;;;IAeG;;;;;;IAgBN;;;;;;IAgBA;;;;;;IAiBF;;;;;;IAgBA;;;;;;IAgBA;;;;;;IAcA;;;;;;IAgBC;;;;;;IAeI;;;;;;IAeH;;;;;;IAYA;;;;;;IAcO;;;;;;IAoBD;;;;;;IAqBH;;;;;;IAYV;;;;;;IAYE;;;;;;IAYA;;;;;;IAYF;;;;;;IAgBF;;;;;;IAsBiB;;;;;;IAsB1B;;;;;;IAyBU;;;;;;IAcD;;;;;;IAqCT;;;;;;IAgB+B;;;;;;IAaxB;;;;;;IAGgC;;;;;;;AAgCX;IAAwB;;;;QAvyBtD;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QAYK;QACA;QACC;QACK;QACA;QACT;QACO;QACC;QACV;QACa;QACA;QACV;QACG;QACK;QAC4B;;IAktBnC,8BAAwB;IAGxB,iCAA2B;IAGjB;IAIlB,6BAAuB;IAGjB;IAGE;IAGA;IAIE;IAGO,wBAAmC;IAnyBhD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IA2BU,uBAAe,KAAb,YAAY,QAAZ,OAAgB;IAClB,uBAAe,MAAb,YAAY,SAAZ,OAAgB;IACzB,iBAAQ,OAAN,KAAK,UAAL,OAAS;IACZ,eAAO,OAAL,IAAI,UAAJ,OAAmB;qBACnB,4BAAS,OAAP,MAAM,UAAN,OAAyC;IAC3C,kBAAS,OAAP,MAAM,UAAN;IACO,0BAAkB,OAAhB,eAAe,UAAf,OAAmB;IACrB,2BAAkB,OAAhB,eAAe,UAAf,OAAmB;IACnB,4BAAoB,OAAlB,iBAAiB,UAAjB,OAAqB;IACvB,4BAAoB,OAAlB,iBAAiB,UAAjB,OAAqB;IAClC,kBAAS,OAAP,MAAM,UAAN,OAAU;IACL,wBAAgB,OAAd,aAAa,UAAb,OAA+B;IAC9B,4BAAmB,QAAjB,gBAAgB,WAAhB,OAAmC;IACjC,gCAAuB,QAArB,oBAAoB,WAApB,OAAwB;IACpC,qBAAa,QAAX,UAAU,WAAV,OAAqD;AAClE,2DAAW,GAAG;AACO,IAAzB,mBAAa;AACgB,IAA7B,qBAAe;AACc,IAA7B,qBAAe;AACkB,IAAjC,uBAAiB;EACnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4yB0C,MAAxC,sBAAsC;AACK,MAA3C,2BAAsB,+BAAmB;AACI,MAA7C,6BAAwB,+BAAmB;AACK,MAAhD,gCAA2B,+BAAmB;AACE,MAAhD,gCAA2B,+BAAmB;AACE,MAAhD,gCAA2B,+BAAmB;AACE,MAAhD,gCAA2B,+BAAmB;AACC,MAA/C,2BAA6C;AACX,MAAlC,iBAAgC;AACA,MAAhC,wBAA8B;AACD,MAA7B,gBAA2B;AACoB,MAA/C;AACoB,MAApB,oBAAe;AACK,MAApB,qBAAgB;AAC6B,MAA7C,0BAA2C;AACR,MAAnC,wBAAiC;AACI,MAArC,0BAAmC;AACmB,MAAtD,kCAAoD;AACnB,MAAjC,8BAA+B;AACI,MAAnC,gCAAiC;AACL,MAA5B,yBAA0B;AACF,MAAxB,wBAAmB;AACK,MAAxB,wBAAmB;AACiC,MAApD,wBAAkD;AAC1B,MAAxB,yBAAmB;AACS,MAA5B,0BAA0B;AACa,MAAvC,6BAAqC;AACC,MAAtC,4BAAoC;AACZ,MAAxB,yBAAmB;AACI,MAAvB,wBAAkB;AACW,MAA7B,mBAA2B;AACR,MAAnB,oBAAe;AAEsB,MADrC,iCAAsB,yDAA2B,QAC7C,yBAAY;IAClB;;AAI4B,MAA1B;AACiB,MAAX;IACR;;AAIwC,MAAtC,oBAA2B,6BAAG;AACD,MAAvB;IACR;;qCAGsC;AACC,MAArC,0BAAmB,aAAQ,SAAS;AACZ,MAAxB,yBAAmB;AACnB,UAAI,AAAO,4BAAe,QACtB,AAAO,AAAY,gDAAuB,kBAC1C,AAAO,AAAY,AAAoB;AACK,QAA9C,AAAO,AAAY,AAAoB;;AAEzC,oBAAI;AAC6D,QAA/D,8BAAwB,AAAU,AAAY,SAAb;AACZ,QAArB,qBAAgB;AACO,QAAvB,wBAAmB;AACoC,QAAvD,wBAAmB,AAAU,AAAa,SAAd;AACmB,QAA/C,eAAU,AAAU,AAAW,SAAZ;;AAEW,MAA1B,sBAAgB,SAAS;IACjC;;AAGE,oBAAI,AAAO,AAAY,AAAoB;AACzC,iBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,AAAY,AAAoB,wDAAQ,IAAA,AAAC,CAAA;AACtC,gCACxB,AAAO,AAAY,AAAmB,oDAAC,CAAC;AAC5B,+CAAY,AAAgB,AAAQ,eAAT;AACN,UAArC,AAAgB,eAAD,QAAQ,AAAU,SAAD;;AAEnB,QAAf,cAAS;;;IAEb;;AAGiE,MAA/D,AAAO,AAAY,mCAAU,AAAO,AAAW;AACP,MAAxC,AAAO,AAAY,yCAAgB;AACnC,oBAAI,AAAO,AAAY;AACyB,QAA9C,AAAO,AAAY,oCAAyB;AAEY,QADxD,AAAO,AAAY,8CACf,iBAAW,AAAO,AAAa,AAAc;AACjD,iBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,AAAa,AAAc,mDAAQ,IAAA,AAAC,CAAA;AACrB,qDACpC,AAAO,AAAa,AAAa,+CAAC,CAAC;AACvC,cAAW,uBAAP,MAAM,KAA2B,oBAAP,MAAM;AAClC,qBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,AAAS,MAAV,qBAAkB,IAAA,AAAC,CAAA;AACQ,cAAnD,AAAO,AAAY,AAAS,wCAAI,AAAO,AAAQ,MAAT,iBAAU,CAAC;;;;;AAKzD,UAAI,AAAO,AAAY,6CAAoB,kBACvC,AAAO,AAAY,AAAiB;AACpB,QAAlB,mBAAc;;AAEhB,oBAAI;AACa,QAAf,cAAS;;;IAEb;;AAGE,oBAAI;AACa,QAAf,cAAS;;;IAEb;;AAIE,UAAI,4BAAuB;AAC+B,QAAxD,AAAoB,kDAAe;AACN,QAA7B,AAAoB;AACM,QAA1B,2BAAsB;;AAET,MAAT;IACR;;;AAG+B,WAA7B;MAAsB,WAAK,aAAL,YAAK;AACK,YAAhC;MAAyB,YAAK,aAAL,aAAK;IAChC;kBAEuB,OAAc,MAAW;AAC1C,kBAAQ;AACZ,eAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAY,4BAAQ,IAAA,AAAC,CAAA;AACrB,yBAAa,AAAW,wBAAC,CAAC;AAC5C,sBAAI,AAAW,UAAD;AACL,UAAP,QAAA,AAAK,KAAA;cACA,KAAI,AAAW,AAAM,UAAP,UAAU,KAAK,IAChC,AAAW,AAAK,UAAN,SAAS,IAAI,eACtB,AAAW,UAAD;AACgC,UAA7C,AAAW,UAAD,qBAAqB,cAAc;AACtC,UAAP,QAAA,AAAK,KAAA;;AAEP,YAAI,AAAM,KAAD,iBAAI,AAAY,yCAAW;AACd,UAApB,qBAAgB;;;IAMtB;UAG0B;;AACkB,MAAxB,wCAAgB,OAAO;AAChB,MAAzB,AAAO,2BAAc;AACmB,MAAxC,AAAO,AAAY,yCAAgB;AACR,MAA3B,yBAAmB,OAAO;AAC1B,YAAO,wCACI,yCACG,8CACsB,KAAvB,AAAO,mCAAA,OAAmB,AAAY,iDAElC,8BAAW,AAAO,gCAAoB,AAAO,oCACrD,qCACgB,oCAAS,AAAO,AAAO,yBAAM,AAAO,AAAO,wBAC1D,AAAO,AAAO,0BAAO,AAAO,AAAO,mCAChC,gCACa,sBAAC,sBAAgB,2BAAqB,OAAO;IAGzE;;;AAGS;AACP,UAAI,AAAO,AAAM,0BAAQ,QAAQ,AAAO,AAAM,AAAK;AACrC,oCAAkB,gBAC1B,WAAQ,AAAO,AAAM,+BACrB,WAAsB,yBACtB,iBAAc,AAAO,AAAM;AACV,yBAAa,iCACnB,AAAO,AAAM,yCACZ,eAAe,cACa,MAA7B,AAAO,AAAM,AAAU,0CAAA,OAC9B,AAAO,AAAY,AAAY;AACvB,wBAAY,qCACjB,AAAW,UAAD,kBACP,AAAW,UAAD,uBACR,AAAW,UAAD,wBACX,AAAW,UAAD,wBACT,AAAW,UAAD;AAyBzB,QAxBD,cAAc,oCACL,oCACE,kBAAK,AAAO,AAAM,mCACE,wCACF,sCACJ,YACV,SAAS,yEACR,8CAC4B,OAA7B,AAAO,AAAM,2CAAA,OAChB,AAAO,AAAY,AAAY,4EACpB,8BACJ,AAAO,AAAM,AAAY,kCAAG,IACtB,8BACkB,OAAzB,AAAO,AAAM,uCAAA,OACX,AAAO,AAAY,AAAY,qEAChC,AAAO,AAAM,yGAEK,YAAvB,AAAO,AAAM,6BAA4B,8BACrC,8BACc,YAAvB,AAAO,AAAM,6BAA4B,6BAC5B,+BACc,YAAvB,AAAO,AAAM,6BAA4B,gCAC5B,gCACA;;AAGD,QAAzB,cAAc;;AAEhB,YAAO,YAAW;IACpB;2BAGyC;AACvC,UAAI,AAAO,uCAA2B,QAAQ,AAAO,AAAO,4BAAS,MACnE,AAAuB,uBAAP;AAClB,UAAI,AAAO,AAAY,8CAAqB,qBACxC,AAAO,AAAY,4CACJ,AAAY,0BAAT,OAAO;AAC8C,QAAzE,AAAO,AAAY,6CAA+B,AAAY,0BAAT,OAAO;;AAEN,QAAtD,AAAO,AAAY,4CAAiC;AACI,QAAxD,AAAO,AAAY,8CAAmC;AACmB,QAAzE,AAAO,AAAY,6CAA+B,AAAY,0BAAT,OAAO;;AAE9D,YAAO,gCACE,+CACM,SAAc,SAAwB;AAC1C;AACY,kCACf;AACJ,0BAAI,AAAgB,eAAD,4BAAe,AAAoB;AACQ,cAA5D,UAAU,oCAAiB,+BAAgB,eAAe;AACO,cAAhD,AAAS,uDAAqB,QAAC,KAAM;;AAE9B,cAAxB,kBAAY,WAAW;AAEmC,cAD1D,AAAO,AACF,kDAAuB,AAAO,AAAa;AAEoB,cADpE,UACI,oBAAa,aAAQ,sCAAsB,wEAAS,WAAW;;AAErE,kBAAO,QAAO;;IAGpB;;AAGS;AACY,sBAAoB;AACvC,oBAAI,AAAO,AAAO,iCAAa,AAAO,AAAO,wCAAqB;AAChE,iBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,AAAO,8BAAQ,IAAA,AAAC,CAAA;AACD,qDAAS,AAAO,AAAM,0BAAC,CAAC;AAChE,wBAAI,AAAO,MAAD;AAEmD,YAD3D,eAAe,AAAO,AACjB,qCAAkB,AAAO,MAAD,eAAc,MAAM,EAAE,MAAM,CAAC;AAQnC,YAPvB,AAAU,SAAD,OAAK,0CACH,0BACM,CAAC,cACF,YACN,sBACM,yDACG,YAAY,gBACb;;;;AAIxB,YAAO,UAAS;IAClB;kBAEgC;AACI,MAAlC,AAAO,AAAa,kCAAQ;AACM,MAAlC,AAAO,AAAa,kCAAQ;AACW,MAAvC,AAAO,AAAW,wCAAe;AACpB,kBAAQ,AAAY,WAAD;AACnB,mBAAS,AAAY,WAAD;AAID,MAHhC,AAAO,AAAO,oCACc,YAAvB,AAAO,AAAO,6BAA2B,8BAC5B,aAAP,MAAM,iBAAG,KAAK,IAAkB,+BAAwB,8BACzD,AAAO,AAAO;AACH,qBAAW,AAAO,AAAO;AACjC,yBACA,AAAuB,YAAhC,QAAQ,EAAmB,+BAAiB,YAAT,QAAQ,EAAmB,+BACxD,MACA;AACG,0BACA,AAAsB,YAA/B,QAAQ,EAAmB,8BAAgB,YAAT,QAAQ,EAAmB,gCACvD,MACA;AAE4C,MADtD,AAAO,AAAa,sCAChB,gBAAW,aAAN,KAAK,IAAG,YAAY,EAAS,aAAP,MAAM,IAAG,aAAa;IACvD;yBAEqC;;AAC9B,yBAAe;AACqD,MAAzE,AAAO,AAAa,0CAAmD;AACvE,eAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,AAAO,8BAAQ,IAAA,AAAC,CAAA;AAC0B,QAAnE,AAAO,AAAM,AAAI,0BAAH,CAAC,kBAAsC,KAAtB,AAAO,AAAM,AAAI,0BAAH,CAAC,cAAE,OAAQ,AAAW,qBAAF,CAAC;AAClD,6BAAsB,mBAAC,GAAG,GAAG,GAAG,GAAG,GAAG;AACd,4DACpC,AAAO,AAAM,0BAAC,CAAC;AACnB,YAAI,AAAgB,eAAD,eAAe;AAChC,mBAAe,YAAa,AAAgB,gBAAD,aAIsB;kBAH/D,SAAS;YAAC,AAAM,eAAA,OAAN,cAEyC,CAFf,YAAf,AAAU,SAAD,OAAuB,sCAC3C,mBACe,AAAW,cAA1B,AAAU,SAAD,mBAA2B,QACzC,AAAI,MAA2C,eAAJ,KAApC,cAAc,OAAC,AAAU,AAAK,SAAN,iCAAV,iCAAsB,YAHhC;;AAIlB,mBAAe,YAAa,AAAgB,gBAAD;AAE0B,YADnE,AAAU,SAAD,WACL,AAAU,AAAK,AAAI,AAAc,SAAxB,gBAAO,qBAAmB,AAAU,AAAM,SAAP,qBAAiB;AACjE,gBAAI,AAAc,AAAuB,cAAvB,QAAC,AAAU,AAAK,SAAN,iBAAgB,KACxC,AAAU,AAAK,AAA6B,SAAnC,gBAAO,AAAU,AAAM,AAAO,SAAd,kBAAgB,OAAM,KACjD,AAAU,AACkD,SADnD,WACL,AAAU,AAAM,SAAP,qBAAiB,GAAG,AAAU,AAAM,AAAO,SAAd,kBAAgB;;;AAGhE,sBAAI,AAAO,AAAY,qDAClB,AAAO,AAAY,yDACf,AAAO,AAAY,8CACsB,YAAzC,AAAO,AAAY,iDACL,AAAY,0BAAT,OAAO;AASsC,UARrE,AAAO,AAAM,AAAI,0BAAH,CAAC,cAE4C,UADvD,AAAO,AAAY,AAAiB,2DACe,aAA3C,AAAO,AAAY,AAAiB,sDAAS,CAAC,IACG,YAAjD,AAAO,AAAY,AAAgB,AAAI,iDAAH,CAAC,aACjC,AAAO,AAAM,AAAI,0BAAH,CAAC,eACrB,AAAO,AAAY,AAAgB,AAAI,iDAAH,CAAC,wBACrC,AAAO,AAAY,0CACf,AAAO,AAAM,AAAI,0BAAH,CAAC,eACW,OAA1B,AAAO,AAAM,AAAI,0BAAH,CAAC,qBAAE,OAAY,AAAO,AAAM,AAAI,0BAAH,CAAC;;AAEvC,UAAnB,eAAe;;AAEjB,YAAI,AAAE,CAAD,KAAI,MACc,AAAW,cAA5B,AAAO,AAAM,0BAAC,eAAuB,WACjB,AAAW,cAA5B,AAAO,AAAM,0BAAC,CAAC,cAAsB,UACxB,AAAW,cAA5B,AAAO,AAAM,0BAAC,eAAuB,UAChB,AAAW,cAA5B,AAAO,AAAM,0BAAC,CAAC,cAAsB;AACW,UAAvD,AAAO,AAAa,AAAc,8CAAI,AAAO,AAAM,0BAAC,CAAC;AACrD,yBAAK,AAAO,AAAY,qDACpB,AAAO,AAAY,AAAkB,6DACrC,AAAE,CAAD,gBAAG,AAAO,AAAa,AAAc;AACxC,gBAAI,AAAE,CAAD,gBAAG,AAAO,AAAa,AAAc,qDACtC,AAAE,CAAD,gBAAG,AAAO,AAAY,AAAkB;AAEM,cADjD,AAAO,AAAY,AAAiB,mDAAC,CAAC,EAClC,AAAO,AAAa,AAAa,AAAI,+CAAH,CAAC;;;AAG3C,cAAI,YAAY;AACJ,wBAAiD,aAAzC,AAAO,AAAa,AAAc,oDAAS;AAChD,iCACT,AAAO,AAAa,AAAa,AAAQ,+CAAP,KAAK;AAC9B,6BACT,AAAO,AAAa,AAAa,AAAQ,+CAAP,KAAK;AAWC,YAV5C,AACS,AACA,AAAa,AACb,+CADuD,aAAzC,AAAO,AAAa,AAAc,oDAAS,eAE9D,kCAC6C,aAAzC,AAAO,AAAa,AAAc,oDAAS,GAC3C,AAAO,AAAa,AAAa,+CACY,aAAzC,AAAO,AAAa,AAAc,oDAAS,IAC/C,AAAe,cAAD,IAAI,OACZ,cAAc,IACH,OAAX,UAAU,UAAV,OAAc,AAAe,qBAAN,KAAK;;AAEJ,sDAEhC,0BAF0C,AAAO,AAC5C,AAAa,+CAA0C,aAAzC,AAAO,AAAa,AAAc,oDAAS,MAEhE,AAAO,AACJ,AAAa,+CAA0C,aAAzC,AAAO,AAAa,AAAc,oDAAS,KAC5D;AACN,cAAI,OAAO,IAAI,QAAQ,AAAQ,OAAD,eAAe;AAC3C,qBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAQ,AAAW,OAAZ,uBAAoB,IAAA,AAAC,CAAA;AAC9B,8BAAY,AAAQ,AAAU,OAAX,mBAAY,CAAC;AAO5B,cANpB,AAAU,SAAD,aAKgB,UALJ,2CAC4B,aAAzC,AAAO,AAAa,AAAc,oDAAS,GAC3C,OAAO,EACP,CAAC,EACD,SAAS,EACT,AAAU,SAAD,wBACb,AAAQ,OAAD;;AAEa,YAA1B,0BAAqB;;;AAGL,QAApB,eAAe;;AAIjB,oBAAI,AAAO,AAAW;AACpB,iBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,AAAW,kCAAQ,IAAA,AAAC,CAAA;AAC7C,wBAAI,AAAO,AAAY;AACyC,YAA9D,AAAO,AAAU,AAAI,8BAAH,CAAC,cAAa,AAAO,AAAU,AAAI,8BAAH,CAAC;;AAIiB,YAFpE,AAAO,AAAU,AAAI,8BAAH,CAAC,cAAa,uCACa,aAAzC,AAAO,AAAa,AAAc,oDAAS,CAAC,GACd,OAA9B,AAAO,AAAU,AAAI,8BAAH,CAAC,qBAAE,OAAY,AAAO,AAAU,AAAI,8BAAH,CAAC;;;;IAIhE;uCAE0C,aAAkB;;AACrD;AACL,UAAI,AAAO,AAAO,wCAAqB;AACH,4BAC9B,AAAO,AAAY;AACvB,sBAAI,AAAc,aAAD;AACf,mBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAc,aAAD,YAAS,IAAA,AAAC,CAAA;AACb,uBAAO,AAAa,aAAA,QAAC,CAAC;AAClD,gBAAI,AAAY,WAAD,IAAI,AAAK,IAAD;AACD,cAApB,eAAe;AACf;;;;;AAKN,sBAAI,AAAO,AAAY,AAAmB;AACxC,mBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,AAAY,AAAmB,uDAAQ,IAAA,AAAC,CAAA;AACtC,sCACvB,AAAO,AAAY,AAAkB,mDAAC,CAAC;AAC3C,gBAAI,AAAY,WAAD,IAAI,AAAoB,mBAAD;AAChB,cAApB,eAAe;AACf;;;;;AAKR,WAAO,YAAY;mBAAZ,OAAgB;IACzB;2CAGQ,aAC8B,QAC9B,gBACM,WACH;;AACJ;AACL,oBAAI,AAAO,AAAY,AAAmB;AACxC,iBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,AAAY,AAAmB,uDAAQ,IAAA,AAAC,CAAA;AACtC,oCACvB,AAAO,AAAY,AAAkB,mDAAC,CAAC;AAC3C,cAAK,AAAoB,AAAK,mBAAN,SAAS,IAAI,IAC7B,AAAoB,AAAY,mBAAb,gBAAgB,WAAW,IAC9C,AAAoB,AAAe,mBAAhB,mBAAmB,cAAc,cACxD;AACkB,YAApB,eAAe;AACf;;;;AAIN,WAAO,YAAY;mBAAZ,OAAgB;IACzB;kCAGQ,aAA2C,QAAe;;AAC3D;AACL,UAAI,AAAO,AAAO,wCAAqB;AACH,4BAC9B,AAAO,AAAY;AACvB,sBAAI,AAAc,aAAD;AACf,mBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAc,aAAD,YAAS,IAAA,AAAC,CAAA;AACb,uBAAO,AAAa,aAAA,QAAC,CAAC;AAClD,gBAAI,AAAY,WAAD,IAAI,AAAK,IAAD;AACD,cAApB,eAAe;AACf;;;;;AAKN,sBAAI,AAAO,AAAY,AAAmB;AACxC,mBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,AAAY,AAAmB,uDAAQ,IAAA,AAAC,CAAA;AACtC,sCACvB,AAAO,AAAY,AAAkB,mDAAC,CAAC;AAC3C,gBAAI,AAAY,WAAD,IAAI,AAAoB,mBAAD,gBAClC,AAAoB,AAAK,mBAAN,SAAS,IAAI;AAClC,kBAAW,0BAAP,MAAM;AACgC,8BAAU,MAAM;AACxD,oBAAI,AAAQ,OAAD,eAAe;AACC,kBAAzB,0BAAqB;;;AAGL,cAApB,eAAe;AACf;;;;;AAKR,WAAO,YAAY;mBAAZ,OAAgB;IACzB;;;IA1jBoB;IAGM;IAGP;IAGA;IAGA;IAGA;IAGA;IAGA;IAGS;IAGH;IACT;IAEA;IAGX;IAGY;IACZ;IACgB;IAChB;IACsB;IACR;IACA;IACS;IACjB;IACC;IACD;IACA;IACN;IACA;IACc;IACI;IACa;IAC/B;IACc;IACR;IACN;IACa;IACC;IACA;IACd;IACO;IACP;IACS;IACA;IACT,0BAAqB;IACR;IACb;IACA,2BAAsB;IACtB,8BAAyB;IACzB;IACA;IACA,6BAAwB;IACxB,6BAAwB;;;EAkf/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAc4B;AACxB,YAAO,gDACM,SAAc,SAAwB,gBAC1C,+DAEI,uBAAiB,WAAW,EAAE,OAAO;IAEpD;uBAGuC,aAA0B;AACpC,MAA3B,qBAAe,WAAW;AACR,MAAlB;AACA,YAAO,gEAEI,qBAAe,WAAW,EAAE,OAAO;IAChD;qBAEmC;AACpB,kBAAQ,AAAY,WAAD;AACnB,mBAAS,AAAY,WAAD;AACmC,MAApE,AAAM,AAAY,wCAAqB,qBAAS,KAAG,KAAG,KAAK,EAAE,MAAM;IACrE;;;AAGkC,MAAhC,AAAM,AAAa,iCAAQ;AACU,MAArC,AAAM,AAAW,uCAAe;AACE,WAAlC,AAAM;mBAAA,OAAc;AACkB,YAAtC,AAAM;oBAAA,OAAY;AAC2B,MAA7C,AAAM,AAAY,8CAAsB;IAC1C;gCAGqB,OAAyC;AAC5D,UAAI,AAAO,MAAD,eAAe;AACvB,iBAAe,YAAa,AAAO,OAAD;AAChC,wBAAI,AAAU,SAAD,kBACX,AAAU,AAAuC,SAAxC,0BAA0B,MAAM,EAAE,KAAK;;;IAGxD;qBAEqC,OAAW;AACN,sDACpC,AAAM,AAAa,AAAa,KAA3B,oCAA4B,KAAK;AACL,MAArC,AAAY,WAAD;IACb;qBAEqC,aAA0B;AACnC,MAA1B,sBAAwB;AAC2B,MAAnD,AAAM,AAAY,iDAA+B;AACX,MAAtC,AAAM,AAAgB,sCAAU;AACL,MAA3B,uBAAiB;AACS,MAA1B,2BAAqB;AACD,MAApB;AAC2B,MAA3B,2BAAqB;AACE,MAAvB;AACsB,MAAtB;AAC0B,MAA1B,uBAAiB;AACC,MAAlB;AAC6C,MAA7C,8BAAwB,WAAW,EAAE,OAAO;AACN,uBAAtC,qBAAY,AAAQ,OAAD;AACQ,MAA3B,AAAM,6BAAiB;AACvB,YAAO,qCAAiB,+BAAgB;IAC1C;2BAE+B;AAC3B,YAAA,AAAc,2BAAI,oCACL,wCACE,qCAAgC,uBAAuB;IAAG;;AAGzD;AAClB,eAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAM,AAAa,AAAc,kDAAQ,IAAA,AAAC,CAAA;AACpB,oDACpC,AAAM,AAAa,AAAa,8CAAC,CAAC;AACtC,YAAI,OAAO,IAAI,kBAAQ,AAAQ,OAAD,eAAa,AAAQ,OAAD,eAAe;AAC/D,mBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAQ,AAAW,OAAZ,uBAAoB,IAAA,AAAC,CAAA;AAC9C,gBAA4C,aAAxC,AAAQ,AAAU,AAAI,OAAf,mBAAY,CAAC,uBAAsB,KAC1C,AAAM,2BAAe,qBACrB,AAAM,AAAY,qCAAe,oBAChC,AAAM,AAAY,oDACf,AAAM,AAAY,uDAClB,AAAM,AAAY;AAE0C,cADlE,AAAM,AAAY,AAAoB,uDAAW,qCAC/B,AAAQ,AAAU,AAAI,AAAkB,OAAjC,mBAAY,CAAC;AAKpC,cAJF,qBACI,AAAoC,kCAAf,UAAU,cAAa,4CACtC,AAAM,AAAY;AAG4B,cAAxD,AAAM,AAAY,AAAoB,2DAAc;;;;AAUzD,QAND,AAAc,0BACZ,oCACa,yCACE,gCACa,kBAAkB,YAC5B,AAAM,AAAY;;IAG1C;;AAIsE,MADpE,AAAM,AAAY,0CAAkB,mDAChB,kBAAa,AAAM,AAAY;AACC,MAApD,AAAc,0BAAI,AAAM,AAAY;IACtC;;AAGgD,MAA9C,AAAM,AAAY,4CAA0B;AACQ,MAApD,AAAM,AAAY,oCAAgC;AACvB,MAA3B;AACA,UAAI,AAAM,0BAAe,kBAAQ,AAAM,AAAY;AACjD,iBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAM,AAAY,kCAAQ,IAAA,AAAC,CAAA;AACd,2BAAa,AAAM,AAAW,8BAAC,CAAC;AAC1C,yBACjB,8BAAuB,UAAU,EAAE;AACd,kCAAoB,wCACpC,6DACc,aACX,AAAW,UAAD,uBACJ,2BACD,kBACD,CAAC,qBACM,AAAW,UAAD,yCACR,AAAW,UAAD,gCACH,YAAlB,AAAW,UAAD,SAA4B,iCAC1C,AAAM,AAAY,wCAClB,AAAM,AAAW,iDACb,kBAAO,AAAS,AAAE,QAAH,iBAAe,AAAS,AAAE,QAAH;AACF,UAAlD,AAAM,AAAY,AAAU,wCAAI,iBAAiB;;;AAIrD,oBAAI,AAAM,AAAY,AAAU;AACpB,6BAAiB,AAAM,AAAY,AAAU;AACvD,iBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAM,AAAY,AAAU,6CAAQ,IAAA,AAAC,CAAA;AAC9B,6BAAe,AAAM,AAAY,AAAS,yCAAC,CAAC;AAKnD,UAJlB,AAAc,0BAAI,0CACJ,YAAY,iBACP,CAAC,kBACA,cAAc,SACvB;;;IAGjB;;AAGS;AACsB;AACwB,MAArD,AAAM,AAAY,mDAAiC;AACnD,eAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAM,AAAa,AAAc,kDAAQ,IAAA,AAAC,CAAA;AACpB,mDACpC,AAAM,AAAa,AAAa,8CAAC,CAAC;AACtC,sBAAI,AAAO,AAAkB,MAAnB,2CAAgC,AAAO,MAAD;AAC9C,mBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,AAAY,MAAb,0BAAqB,IAAA,AAAC,CAAA;AACjB,YAA7B,QAAQ,AAAO,AAAW,MAAZ,sBAAa,CAAC;AAC5B,0BAAI,AAAM,KAAD,0BAAe,AAAM,KAAD;AAIjB,cAHV,cAAe,AAAO,AAAkB,AAAQ,MAA3B,8BAA8B,OAC7C,AAAO,AACJ,MADG,2BACK,AAAO,AAAU,MAAX,mBAAY,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,IACpD;AACN,kBAAI,WAAW,IAAI;AACI,+BAAW,uCAC5B,AAAM,KAAD,UAED,gBADJ,AAAO,AAAY,MAAb,0BAAsB,WACtB,AAAM,KAAD,QACL,AAAM,KAAD,UACX,AAAO,MAAD,WACN,AAAO,MAAD,WACN,AAAM,kCACN,MAAM,EACN,AAAM,AAAW;AACI,mCAAe,wCAC/B,wDACS,yBACF,CAAC,eACA,CAAC,eACD,gBACH,AAAM,AAAW,0DAEa,CAAV,aAAzB,AAAO,MAAD,sBAAqB,2BACxB,WAAW,YACT,kBAAO,AAAS,QAAD,IAAI,AAAS,QAAD;AACI,gBAA7C,AAAM,AAAY,AAAU,wCAAI,YAAY;AAC5C,oBAAI,AAAO,AAAY,MAAb,0BAAsB;AACT,sCAAgB,uCACjC,AAAM,KAAD,0BACL,AAAM,KAAD,OACL,AAAO,MAAD,WACN,AAAO,MAAD,WACN,AAAM,kCACN,MAAM,EACN,AAAM,AAAW;AACI,sCAAgB,wCAChC,wDACS,yBACF,CAAC,eACA,CAAC,eACD,gBACH,AAAM,AAAW,0DAEa,CAAV,aAAzB,AAAO,MAAD,sBAAqB,2BACxB,WAAW,YACT,kBAAO,AAAc,aAAD,IAAI,AAAc,aAAD;AACL,kBAA9C,AAAM,AAAY,AAAU,wCAAI,aAAa;;;;;;;IAO3D;;;AAGoB;AAC6B,MAA/C,AAAM,AAAY,sCAA2B;AAC7C,eAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAM,AAAa,AAAc,kDAAQ,IAAA,AAAC,CAAA;AACf,wBAA7C,8BAAU,AAAM,AAAa,AAAa,8CAAC,CAAC;AAC5C,YAAI,iBAAW,kBAAQ,AAAQ;AACY,UAAzC,gCAA0B,YAAO;AACjC,gBAAc,qBAAR,kBACM,yBAAR,kBACQ,uBAAR,kBACQ,oBAAR,kBACQ,qBAAR,kBACQ,uBAAR,kBACQ,wBAAR;AAC6B,YAA/B,AAAQ,6BAAc,YAAO,CAAC;AACN,YAAxB,qBAAe,YAAO,CAAC;;AAEzB,cAAI,AAAQ,mCAAqB;AACsC,iBAArE,AAAQ;YAAkB,AAAmB,0BAAA,OAAnB,yBAAuB,sCAAJ;AACa,YAA1D,AAAQ,AAAkB,AAAmB,4DAAQ;AACQ,YAA7D,AAAQ,AAAkB,AAAmB,6DAAS;AACtD,gBAAI,AAAQ,AAAkB,uDAAuB;AACZ,cAAvC,AAAQ,AAAkB;;AAGU,YADtC,AAAQ,AAAkB,AAAmB,uEACzC,AAAM,AAAY;AAEkB,YADxC,AAAQ,AAAkB,AAAmB,yEACzC,AAAM,AAAY;AAEtB,gBAA6C,YAAzC,AAAM,AAAY,gDAA0B,oBAC5C,AAAQ,AAAkB,qDAC1B,AAAQ,AAA2B;AACrC,uBAAS,IAAI,GACT,AAAE,CAAD,gBAAG,AAAQ,AAA2B,oDACvC,IAAA,AAAC,CAAA;AACgB,8BAAU;AAEY,gBADzC,AAAQ,OAAD,uBACH,AAAQ,AAA0B,gDAAC,CAAC;AAChB,gBAAxB,AAAQ,OAAD,iBAAgB,CAAC;AACxB,8BAAI,AAAQ,AACP,oDAAS,AAAQ,OAAD,wBACnB,AAAQ,AAAkB,AAAmB,AACxC,AAAY,2EAAR,OAAO;;;;AAIkB,UAA1C,AAAM,AAAY,2CAAmB;AACrC,cAAI,AAAM,AAAY,+CAAuB,QACf,aAA1B,AAAQ,mCAAoB,MAC3B,AAAQ,AAAY,gCAAG,YACpB,AAAQ,AAAY,gCAAG,oBACtB,AAAM,AAAY,+CACvB,AAAM,2BAAe,qBACrB,AAAM,AAAY,qCAAe,oBAChC,AAAM,AAAY,oDACf,AAAM,AAAY;AAEqC,YAD7D,AAAM,AAAY,AAAoB,uDAClC,qCAAuB,AAAQ,AAAkB;AAKnD,YAJF,kBACI,AAAoC,kCAAf,UAAU,cAAa,4CACtC,AAAM,AAAY;AAQ1B,YAJF,AAAM,AAAY,gDACd,AAAoC,kCAAf,UAAU,cAAa,4CACtC,AAAM,AAAY;AAW1B,YARF,AAAM,AAAY,AACb,8DAAkB,QAAiB;AACtC,kBAAW,YAAP,MAAM,EAAoB;AACa,gBAAzC,AAAM,AAAY,2CAAmB;AACrC,oBAAI,AAAM,AAAY,2CAAmB;AACS,kBAAhD,AAAM,AAAY,AAAgB,AAAM;;;;AAIU,YAAxD,AAAM,AAAY,AAAoB,2DAAc;;AAEX,YAAzC,AAAM,AAAY,2CAAmB;;;AAQrC,QALJ,AAAc,0BAAI,oCACP,sCACI,oCACJ,wBAAkB,CAAC,EAAE,AAAM,AAAY,6CAC5C,eAAe,EAAE,AAAM,AAAY;;AAUyB,MAPpE,AAAc,0BAAI,oCACA,2BACP,sCACI,oCACM,4CACM,aACJ,sBACG,AAAM,AAAY;AACH,MAAzC,AAAM,AAAY,2CAAkB;IACtC;uBAE6B;AAC3B,UAAI,AAAM,AAAW,4CAAoB,kBACrC,AAAM,AAAW,AAAiB,0DACO,aAAzC,AAAM,AAAW,AAAiB,qDAAS;AAEmB,QADhE,AAAM,AAAY,qCACd,8CAA8B,wBAAmB,UAAU;AAChB,QAA/C,AAAc,0BAAI,AAAM,AAAY;;IAExC;kBAEqD;AACjB;AAElC;iBAAS,IAA4C,aAAxC,AAAM,AAAa,AAAc,mDAAS,GAAG,AAAE,CAAD,IAAI,GAAG,IAAA,AAAC,CAAA;AACrB,mBAA5C,8BAAS,AAAM,AAAa,AAAa,8CAAC,CAAC;AAC3C,cAAI,AAAO,AAAY,MAAb,mBAAgB,YACtB,AAAO,AAAY,MAAb,mBAAgB,SACtB,AAAO,AAAY,MAAb,mBAAgB,aACtB,AAAO,AAAY,MAAb,mBAAgB,YACtB,AAAO,AAAY,MAAb,mBAAgB,cACtB,AAAO,AAAY,MAAb,0BAAsB,WAC5B,AAAO,AAAY,MAAb,0BAAsB,oBAC5B,AAAO,AAAY,MAAb,0BAAsB,iBAC5B,AAAO,AAAY,MAAb,0BAAsB;AAC9B,qBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,AAAY,MAAb,0BAAqB,IAAA,AAAC,CAAA;AAC9C,kBAAI,AAAO,AAAW,AAAI,MAAhB,sBAAa,CAAC,YAAY,kBAChC,AAAO,AAAW,AAAI,AAAO,MAAvB,sBAAa,CAAC,kBAAkB,QAAQ;AACnB,gBAA7B,AAAO,MAAD,mBAAkB;AACxB;;AAE4B,gBAA5B,AAAO,MAAD,mBAAkB;;;;AAIvB,2BAAW;AAC4B,qBAA5C,8BAAS,AAAM,AAAa,AAAa,8CAAC,CAAC;AAC3C,qBAAS,IAA4C,aAAxC,AAAM,AAAa,AAAc,mDAAS,GAAG,AAAE,CAAD,IAAI,GAAG,IAAA,AAAC,CAAA;AAKtD,cAJX,qBAAW,AAAO,AAAkB,MAAnB,6BACX,AAAO,AAAkB,AACtB,MADG,+DAEA,AAAM,AAAa,AAAa,8CAAC,CAAC,GAAG,QAAQ,IACnD;AACN,4BAAI,QAAQ;AACV,qDAAO,AAAM,AAAa,AAAa,8CAAC,CAAC;;;;;AAKjD,YAAO,OAAM;IACf;0BAE0C;AACC,MAAzC,AAAM,AAAgB,0CAAc;AACJ,MAAhC,wBAAkB,AAAM,KAAD;AACvB,UAAyC,YAArC,AAAM,AAAgB,2CAAkB;AAC9B;AACZ,YAAkD,aAA9C,AAAM,AAAY,AAAqB,0DAAS;AACD,UAAjD,AAAM,AAAY,AAAqB,oDAAI,KAAK;;AAElD,YAAI,AAAM,AAAY,AAAqB,AAAO,2DAAG;AACnD,mBAAS,YAAY,GACjB,AAAU,SAAD,gBAAG,AAAM,AAAW,AAAiB,oDAC9C,YAAA,AAAS,SAAA;AACG,uBAAO,AAAM,AAAW,AAAgB,gDAAC,SAAS;AAChE,gBAAI,AAAM,0BAAe;AAEsC,cAD7D,gBACI,kBAAW,YAAO,IAAI,EAAE,aAAa,EAAE,AAAM;AACC,cAA7C,UAAL,IAAI,eAAe,AAAc,aAAD;AACsB,cAAjD,UAAL,IAAI,iBAAiB,AAAc,aAAD;;AAQf,YANrB,AAAM,AAAgB,gEAClB,IAAI,GACJ,AAAM,AAAY,AAAoB,AAAI,AAAS,qDAAZ,gBACvC,AAAM,AAAY,AAAoB,AAAI,AAAS,qDAAZ,gBACvC,AAAM,AAAY,AAAoB,AAAI,AAAS,qDAAZ,gBACvC,AAAM,AAAY,AAAoB,AAAI,AAAS,qDAAZ,mCAClC,WAAL,IAAI;;;;AAID,qBAAW,AAAU,6BAAc,AAAM,KAAD;AAC5B,MAAzB,uBAAiB,QAAQ;AACzB,UAAI,AAAM,AAAa,0CAAiB,kBACpC,AAAM,AAAa,AAAc,wDACV,YAAvB,AAAM,6BAAmC,iDACzC,AAAM,AAAgB,yCAAe;AACC,8BACpC,kBAAY,QAAQ;AACxB,uBAAK,AAAgB,eAAD,qBAChB,AAAgB,AAAkB,eAAnB,0CAAyC;AAEvC,UADnB,AAAgB,AAAkB,AAAmB,eAAtC,gDACX,eAAe;AACoD,UAAvE,AAAgB,AAAkB,eAAnB,+BAA+B,AAAS,QAAD,KAAK,AAAS,QAAD;;;AAGvE,UAAI,AAAM,gCAAqB,kBAC3B,AAAM,AAAkB,wCACe,YAAvC,AAAM,AAAkB,6CAAiC;AACE,QAA7D,AAAM,AAAkB,yCAAY,AAAS,QAAD,KAAK,AAAS,QAAD;;AAE3D,UAAI,AAAM,gCAAqB,kBAC3B,AAAM,AAAkB,wCACe,YAAvC,AAAM,AAAkB,6CAAiC;AACE,QAA7D,AAAM,AAAkB,yCAAY,AAAS,QAAD,KAAK,AAAS,QAAD;;IAE7D;0BAE0C;AACC,MAAzC,AAAM,AAAgB,0CAAc;AACxB;AACZ,eAAS,QAAQ,GACb,AAAM,KAAD,gBAAG,AAAM,AAAW,AAAiB,oDAC1C,QAAA,AAAK,KAAA;AACO,mBAAO,AAAM,AAAW,AAAgB,gDAAC,KAAK;AAC5D,YAAI,AAAM,wBAAa;AACgC,UAArD,kBAAW,YAAO,IAAI,EAAE,WAAW,EAAE,AAAM;;;AAG/C,UAAyC,YAArC,AAAM,AAAgB,2CAAkB,SACxC,AAAM,AAAY,AAAqB,AAAO,2DAAG;AACX,QAAxC,AAAM,AAAgB,0CAAc;AAC1B,wBAAY,AAAM,KAAD;AACtB,yBAAa;AAClB,iBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAM,AAAY,AAAoB,wDAAQ,IAAA,AAAC,CAAA;AACjE,cAAI,AAAM,AAAY,AAAmB,AAAI,AAAQ,oDAAX,CAAC,aAAa,SAAS;AAC7C,YAAlB,aAAa;;;AAGjB,YAAiD,aAA7C,AAAM,AAAY,AAAoB,yDAAS,KAAK,UAAU;AAChB,UAAhD,AAAM,AAAY,AAAoB,mDAAI,KAAK;;AAGjD,YAAI,AAAM,AAAY,AAAoB,AAAO,0DAAG,KAChD,AAAM,AAAY,AAAqB,AAAO,2DAAG;AACnD,cAAI,AAAM,AAAY,AAAmB,AAAI,AAAQ,oDAAX,cAAc,AAAM,KAAD;AACX,YAAhD,AAAM,AAAY,AAAmB,oDAAC,GAAK,KAAK;;AAElD,cAAI,AAAM,AAAY,AAAmB,AAAI,AAAQ,oDAAX,cAAc,AAAM,KAAD;AACX,YAAhD,AAAM,AAAY,AAAmB,oDAAC,GAAK,KAAK;;AAKR,UAF1C,AAAM,AAAgB,iDAClB,AAAM,AAAY,+CAClB,AAAM,AAAY;;;IAG5B;wBAEsC;AACpC,UAAI,AAAM,AAAY,AAAqB,AAAO,2DAAG,KACjD,AAAM,AAAY,AAAoB,AAAO,0DAAG,eAChD,AAAM,AAAgB;AACI,QAA5B;;AAEuD,MAAzD,AAAM,AAAY,gDAAqC;AACC,MAAxD,AAAM,AAAY,+CAAoC;AACb,MAAzC,AAAM,AAAgB,0CAAc;AACM,MAA1C,AAAM,AAAgB,2CAAe;AACI,MAAzC,AAAM,AAAgB,0CAAc;AACvB,qBAAW,AAAU,6BAAc,AAAM,KAAD;AACrD,UAAK,AAAM,gCAAqB,kBACxB,AAAM,AAAkB,mDACvB,AAAM,AAAkB,+DACzB,AAAM,AAAkB,6CACL,iDACnB,AAAM,AAAgB,yCAAe,SACxC,AAAM,8BAAmB,mBACpB,AAAM,AAAgB,gEAChB,AAAM,AAAgB,uDACtB,AAAM,AAAgB,wDACtB,AAAM,AAAgB,kEACzB,AAAM,AAAkB;AACT;AACiC,QAA3D,AAAM,AAAkB,uCAAU,AAAS,QAAD,KAAK,AAAS,QAAD;AACF,QAArD,AAAM,AAAkB,sDAAwB;AAChD,YAAI,AAAM,wCAA6B;AACI,UAAzC,cAAc;AACiB,UAA/B,AAAY,WAAD,YAAY,QAAQ;AACa,UAA5C,AAAM,qCAA0B,WAAW;;;AAG/C,UAAK,AAAM,gCAAqB,kBACxB,AAAM,AAAkB,mDACvB,AAAM,AAAkB,+DACzB,AAAM,AAAkB,6CACL,iDACnB,AAAM,AAAgB,yCAAe,SACxC,AAAM,8BAAmB,mBACpB,AAAM,AAAgB,gEAChB,AAAM,AAAgB,uDACtB,AAAM,AAAgB,wDACtB,AAAM,AAAgB,kEACzB,AAAM,AAAkB;AACT;AACiC,QAA3D,AAAM,AAAkB,uCAAU,AAAS,QAAD,KAAK,AAAS,QAAD;AACH,QAApD,AAAM,AAAkB,sDAAwB;AAChD,YAAI,AAAM,wCAA6B;AACI,UAAzC,cAAc;AACiB,UAA/B,AAAY,WAAD,YAAY,QAAQ;AACa,UAA5C,AAAM,qCAA0B,WAAW;;;AAG/C,oBAAI,AAAM,AAAgB,sCACe,YAArC,AAAM,AAAgB,2CAAiC;AACzD,YAAI,AAAM,AAAgB,sCAAW;AACnC,wBAAI,AAAM,AAAW,AAAc,+CAAS,QAAQ;AAC7C,kCAAkB;AACvB,qBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAM,AAAa,AAAc,kDAAQ,IAAA,AAAC,CAAA;AACpB,yDACpC,AAAM,AAAa,AAAa,8CAAC,CAAC;AAClC,sBAAI;AACK,4BACW,AAAW,AAAgB,cAAvC,iBAAP,MAAM,cAAiC,UACb,AAAW,cAAvB,iBAAP,MAAM,cAAiC,YACzC,MACA;AACV,4BAAI,AAAO,MAAD,yBACN,AAAO,MAAD,mBACN,AAAO,MAAD,mBAAkB;AA8BxB,gBA7BF,AAAO,AACF,MADC,0BACO,SAAS,YAAoB;;AAC7B,8CAAmB,WAAV,UAAU,WAAC;AAClB,6BAAmB,aAAZ,AAAO,MAAD,SAAQ,OAAO;AAC5B,8BAAqB,aAAb,AAAO,MAAD,UAAS,OAAO;AAC9B,4BAAiB,aAAX,AAAO,MAAD,QAAO,OAAO;AAC1B,+BAAuB,aAAd,AAAO,MAAD,WAAU,OAAO;AAClC,qCACF,qBAAS,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM;AAC1C,gCAAI,AAAa,YAAD,UAAU,QAAQ;AACnB,2DAA4B,WAAV,UAAU,WAAC;AAKxB,oBAJlB,AAAM,AAAgB,AAAiB,oDAAY,qBAC/C,AAAgB,eAAD,KACI,aAAnB,AAAgB,eAAD,OAAM,AAAQ,OAAD,GAAG,GAC/B,AAAO,MAAD,QACN,AAAO,MAAD;AAOA,oBANV,AAAM,AAAgB,AAAiB,wDACnC,AAAM,AAAgB,mCAClB,AAAO,AAAU,MAAX,mBAAY,CAAC,GACT,WAAV,UAAU,WAAC,KACX,MAAM,EACN,AAAO,AAAY,MAAb,2DAA+B,WAAV,UAAU,WAAC,OACtC,CAAC;AACa,oBAAtB,kBAAkB;AAC2C,oBAA7D,AAAM,AAAgB,AAAiB,oDAAO,eAAe;AAEtC,gCADvB,AAAM,AAAgB,2DAAA,OAAkB;kCAAlB,OAChB;;AAEL,kBAAH,IAAA,AAAC,CAAA;;;;;;AAMkC,UAA3C,AAAM,AAAgB,6CAAiB;AACkB,UAAzD,AAAM,AAAgB,qCAAU,AAAS,QAAD,KAAK,AAAS,QAAD;;;IAG3D;4BAE8C;AACP,MAArC,6BAAuB,AAAM,KAAD;AAC5B,UAAI,8BAAwB;AACb,uBAAW,AAAU,6BAAc,AAAM,KAAD;AACrD,sBAAI,AAAM,AAAgB,iEACtB,AAAM,AAAW,AAAc,+CAAS,QAAQ;AAEa,UAD/D,AAAM,AACD,sDAA0B,KAAK,EAAE,AAAS,QAAD,KAAK,AAAS,QAAD;;;IAGjE;;AAGc;AAAa;AACpB,sBAAY;AACb;AACJ,oBAAK,YAAY,GACH,aAAV,SAAS,iBAAG,AAAM,AAAW,AAAiB,oDAC9C,YAAS,aAAT,SAAS;AACK,mBAAO,AAAM,AAAW,AAAgB,gDAAC,SAAS;AAClE,YAAI,AAAM,wBAAa;AAC8C,UAAnE,cAAc,kBAAW,YAAO,IAAI,EAAE,WAAW,EAAE,AAAM;AACT,UAAhD,AAAK,IAAD,gBAAe,AAAY,WAAD;AACsB,UAApD,AAAK,IAAD,kBAAiB,AAAY,WAAD;;AAElC,YAAI,AAAK,AAAY,AAAQ,IAArB,4BAAwB,KAC5B,AAAK,AAAc,AAAQ,IAAvB,8BAA0B,KAC9B,AAAM,0BAAe;AACP,UAAhB,YAAY;;AAEiC,QAA/C,AAAM,AAAY,mCAA2B;AAOxB,QANrB,AAAM,AAAgB,sCAClB,IAAI,EACJ,AAAM,AAAY,AAAmB,AAAI,AAAS,oDAAZ,gBACtC,AAAM,AAAY,AAAmB,AAAI,AAAS,oDAAZ,gBACtC,AAAM,AAAY,AAAmB,AAAI,AAAS,oDAAZ,gBACtC,AAAM,AAAY,AAAmB,AAAI,AAAS,oDAAZ,gBACtC,AAAK,IAAD;;AAEV,UAAI,SAAS;AACX,iBAAS,QAAQ,GACb,AAAM,KAAD,gBAAG,AAAM,AAAW,AAAiB,oDAC1C,QAAA,AAAK,KAAA;AACO,qBAAO,AAAM,AAAW,AAAgB,gDAAC,KAAK;AACH,UAAzD,kBAAW,YAAO,IAAI,EAAE,aAAa,EAAE,AAAM;;;IAGnD;kCAE4D;AAC7C,qBAAW,AAAU,6BAAc,AAAQ,OAAD;AACvD,uBAAI,AAAM,AAAgB,yCAAe;AACvC,sBAAI,AAAM,AAAgB,sDACtB,QAAQ,IAAI,QACZ,4BAAsB;AACyB,UAAjD,AAAM,AAAgB,mDAAuB;AAEI,UADjD,AAAM,AAAgB,mDAAwB,AAAS,QAAD,KAAK,AAAS,QAAD,KAC/D,AAAmB,6BAAI,AAAmB;;;AAGlD,UAAI,AAAM,gCAAqB,kBAC3B,AAAM,AAAkB,wCACxB,AAAM,2BAAe,qBACrB,AAAM,AAAkB,6CAAiC,oCACzD,QAAQ,IAAI;AACd,YAA2C,YAAvC,AAAM,AAAkB,6CAAiC;AACE,UAA7D,AAAM,AAAkB,yCAAY,AAAS,QAAD,KAAK,AAAS,QAAD;cACpD,KAA2C,YAAvC,AAAM,AAAkB,6CACZ,8CACnB,AAAM,AAAkB;AACmC,UAA7D,AAAM,AAAkB,yCAAY,AAAS,QAAD,KAAK,AAAS,QAAD;;;AAG7D,UAAI,AAAM,gCAAqB,kBAC3B,AAAM,AAAkB,qDACxB,AAAM,AAAkB,6CAAiC,oCACzD,QAAQ,IAAI;AACd,YAA2C,YAAvC,AAAM,AAAkB,6CAAiC;AACE,UAA7D,AAAM,AAAkB,yCAAY,AAAS,QAAD,KAAK,AAAS,QAAD;cACpD,KAAK,AAAM,gCAAqB,QACQ,YAAvC,AAAM,AAAkB,6CACL,8CACnB,AAAM,AAAkB,mEAC3B,AAAM,AAAgB;AACoC,UAA7D,AAAM,AAAkB,yCAAY,AAAS,QAAD,KAAK,AAAS,QAAD;;;IAG/D;;AAGE,uBAAI,AAAM,AAAgB,yCAAe;AACW,QAAlD,AAAM,AAAgB,mDAAuB;AAC7C,sBAAI,AAAM,AAAgB,sDACtB,AAAM,AAAgB,AAAa,mDAAS;AAEc,UAD5D,AAAM,AACD,gDAAoB,AAAM,AAAgB;AAC/C,2BAAI,AAAM,AAAgB,kDAAwB;AACoB,YAApE,AAAM,AAAgB;;;;IAI9B;sBAEqC;AACnC,uBAAI,AAAM,AAAgB,yCAAe;AAC6B,QAApE,2BAAqB,AAAU,6BAAc,AAAQ,OAAD;AACpD,YAAwC,YAApC,AAAM,AAAgB,0CAAiB;AACF,UAAvC,AAAM,AAAgB,yCAAa;AACgB,UAAnD,AAAM,AAAgB,qDAAyB;;;IAGrD;;AAGS;AACP,UAAI,yBAAmB;AAC8B,QAAnD,WAAW,AAAU,6BAAc;AACnC,sBAAI,AAAM,AAAgB,sCACe,YAArC,AAAM,AAAgB,2CAAiC;AACd,UAA3C,AAAM,AAAgB,6CAAiB;AACoB,UAA3D,AAAM,AAAgB,uCAAY,AAAS,QAAD,KAAK,AAAS,QAAD;;;AAG3D,UAAI,AAAM,AAAa,0CAAiB,QACb,YAAvB,AAAM,6BAAmC;AACH,8BACpC,kBAAY,QAAQ;AAEL,QADnB,AAAgB,AAAkB,AAAmB,eAAtC,gDACX,eAAe;AACoD,QAAvE,AAAgB,AAAkB,eAAnB,+BAA+B,AAAS,QAAD,KAAK,AAAS,QAAD;;AAGrE,UAAK,AAAM,gCAAqB,QACO,YAA/B,AAAM,AAAkB,qCAAU,SACK,YAAvC,AAAM,AAAkB,6CACL,iDACvB,AAAM,AAAgB,yCAAe;AACa,QAApD,AAAM,AAAkB,sDAAwB;AACa,QAA7D,AAAM,AAAkB,yCAAY,AAAS,QAAD,KAAK,AAAS,QAAD;;AAE3D,UAAK,AAAM,gCAAqB,QACO,YAA/B,AAAM,AAAkB,qCAAU,SACK,YAAvC,AAAM,AAAkB,6CACL,+CACtB,AAAM,AAAgB,mEACvB,AAAM,AAAgB,yCAAe,SACrC,QAAQ,IAAI;AACsC,QAApD,AAAM,AAAkB,sDAAwB;AACa,QAA7D,AAAM,AAAkB,yCAAY,AAAS,QAAD,KAAK,AAAS,QAAD;;IAE7D;;AAGE,UAAI,yBAAmB;AACR,uBAAW,AAAU,6BAAc;AAChD,YAAI,AAAM,gCAAqB,kBAC3B,AAAM,AAAkB,wCACe,YAAvC,AAAM,AAAkB,6CAAiC;AACE,UAA7D,AAAM,AAAkB,yCAAY,AAAS,QAAD,KAAK,AAAS,QAAD;AAChB,UAAzC,AAAM,AAAY,4CAAmB;AACsB,UAA3D,AAAM,AAAkB,uCAAU,AAAS,QAAD,KAAK,AAAS,QAAD;AACb,UAA1C,AAAM,AAAY,4CAAmB;;AAEvC,YAAI,AAAM,gCAAqB,kBAC3B,AAAM,AAAkB,wCACe,YAAvC,AAAM,AAAkB,6CAAiC;AACE,UAA7D,AAAM,AAAkB,yCAAY,AAAS,QAAD,KAAK,AAAS,QAAD;AAChB,UAAzC,AAAM,AAAY,4CAAmB;AACsB,UAA3D,AAAM,AAAkB,uCAAU,AAAS,QAAD,KAAK,AAAS,QAAD;AACb,UAA1C,AAAM,AAAY,4CAAmB;;AAEvC,sBAAI,AAAM,AAAgB,sCACe,YAArC,AAAM,AAAgB,2CAAiC;AACd,UAA3C,AAAM,AAAgB,6CAAiB;AACoB,UAA3D,AAAM,AAAgB,uCAAY,AAAS,QAAD,KAAK,AAAS,QAAD;;AAEzD,YAAI,AAAM,AAAa,0CAAiB,QACb,YAAvB,AAAM,6BAAmC;AACH,gCACpC,kBAAY,QAAQ;AAEL,UADnB,AAAgB,AAAkB,AAAmB,eAAtC,gDACX,eAAe;AACoD,UAAvE,AAAgB,AAAkB,eAAnB,+BAA+B,AAAS,QAAD,KAAK,AAAS,QAAD;;;AAIvE,UAAiD,YAA7C,AAAM,AAAgB,mDAA0B;AACrC,gCAAoB;AACpB,uBAAW,iBAAiB;AACzC,YAAI,QAAQ,IAAI,MACd,AAAM,AAAgB,AAC0C,uCAA5D,AAAS,QAAD,KAAK,AAAS,QAAD,KAAK,AAAM,AAAgB;;IAE1D;wBAEyC;AAChC;AACP,uBAAI,AAAM,AAAgB,yCAAe;AACmB,QAA1D,WAAW,AAAU,6BAAc,AAAQ,OAAD;AAC1C,YAAqC,YAAjC,AAAM,AAAgB,wCAAc,mBACpC,AAAM,AAAgB,6CACtB,AAAM,AAAgB,sDAA0B;AACG,UAArD,AAAM,AAAgB,iCAAM,AAAS,QAAD,KAAK,AAAS,QAAD;;AAEI,QAAvD,AAAM,AAAgB,qDAAyB,QAAQ;;AAEzD,UAAI,AAAM,gCAAqB,kBAC3B,AAAM,AAAkB,wCACxB,QAAQ,IAAI,qBACZ,AAAM,AAAkB,6CAAiC;AAC3D,YAA2C,YAAvC,AAAM,AAAkB,6CAAiC;AACE,UAA7D,AAAM,AAAkB,yCAAY,AAAS,QAAD,KAAK,AAAS,QAAD;cACpD,KAAI,AAAM,gCAAqB,QACK,YAAvC,AAAM,AAAkB,6CAAiC,oCACX,YAA9C,AAAM,AAAkB,qDAAyB;AACU,UAA7D,AAAM,AAAkB,yCAAY,AAAS,QAAD,KAAK,AAAS,QAAD;;;AAG7D,UAAI,AAAM,gCAAqB,kBAC3B,AAAM,AAAkB,qDACxB,AAAM,AAAkB,6CAAiC,oCACzD,QAAQ,IAAI;AACd,YAA2C,YAAvC,AAAM,AAAkB,6CAAiC;AACE,UAA7D,AAAM,AAAkB,yCAAY,AAAS,QAAD,KAAK,AAAS,QAAD;cACpD,KAAI,AAAM,gCAAqB,QACK,YAAvC,AAAM,AAAkB,6CAAiC,8CACzD,AAAM,AAAkB;AACmC,UAA7D,AAAM,AAAkB,yCAAY,AAAS,QAAD,KAAK,AAAS,QAAD;;;IAG/D;qBAEmC;;AACjC,uBAAI,AAAM,AAAgB,yCAAe;AACC,QAAxC,AAAM,AAAgB,yCAAa;AACgB,QAAnD,AAAM,AAAgB,qDAAyB;;AAEjD,oBAAI,AAAM,AAAkB,mDACvB,AAAM,AAAkB,+DACzB,AAAM,AAAkB,6CAAiC,oCACzD,wBAAkB;AACmD,QAAvE,AAAM,AAAkB,uCAAU,AAAe,yBAAI,AAAe;AACf,QAArD,AAAM,AAAkB,sDAAwB;;AAElD,oBAAI,AAAM,AAAkB,mDACvB,AAAM,AAAkB,+DACzB,AAAM,AAAkB,6CAAiC;AACc,QAAzE,AAAM,AAAkB,gFAAU,OAAgB,mDAAI,OAAgB;;IAE1E;yBAEqC;AACK,MAAxC,AAAM,AAAgB,0CAAc;AACvB,qBAAW,AAAU,6BAAc,AAAM,KAAD;AACrD,oBAAI,AAAM,AAAgB;AACxB,YAAI,AAAM,AAAgB,sCAAW;AACnC,wBAAI,AAAM,AAAW,AAAc,+CAAS,QAAQ;AAC7C,kCAAkB;AACvB,qBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAM,AAAa,AAAc,kDAAQ,IAAA,AAAC,CAAA;AACpB,yDACpC,AAAM,AAAa,AAAa,8CAAC,CAAC;AAClC,sBAAI;AACK,4BACW,AAAW,AAAgB,cAAvC,iBAAP,MAAM,cAAiC,UACb,AAAW,cAAvB,iBAAP,MAAM,cAAiC,YACzC,MACA;AACV,4BAAI,AAAO,MAAD,yBACN,AAAO,MAAD,mBACN,AAAO,MAAD,mBAAkB;AA8BxB,gBA7BF,AAAO,AACF,MADC,0BACO,SAAS,YAAoB;;AAC7B,8CAAmB,WAAV,UAAU,WAAC;AAClB,6BAAmB,aAAZ,AAAO,MAAD,SAAQ,OAAO;AAC5B,8BAAqB,aAAb,AAAO,MAAD,UAAS,OAAO;AAC9B,4BAAiB,aAAX,AAAO,MAAD,QAAO,OAAO;AAC1B,+BAAuB,aAAd,AAAO,MAAD,WAAU,OAAO;AAClC,qCACF,qBAAS,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM;AAC1C,gCAAI,AAAa,YAAD,UAAU,QAAQ;AACnB,2DAA4B,WAAV,UAAU,WAAC;AAKxB,oBAJlB,AAAM,AAAgB,AAAiB,oDAAY,qBAC/C,AAAgB,eAAD,KACI,aAAnB,AAAgB,eAAD,OAAM,AAAQ,OAAD,GAAG,GAC/B,AAAO,MAAD,QACN,AAAO,MAAD;AAOA,oBANV,AAAM,AAAgB,AAAiB,wDACnC,AAAM,AAAgB,mCAClB,AAAO,AAAU,MAAX,mBAAY,CAAC,GACT,WAAV,UAAU,WAAC,KACX,MAAM,EACN,AAAO,AAAY,MAAb,2DAA+B,WAAV,UAAU,WAAC,OACtC,CAAC;AACa,oBAAtB,kBAAkB;AAC2C,oBAA7D,AAAM,AAAgB,AAAiB,oDAAO,eAAe;AAEtC,gCADvB,AAAM,AAAgB,2DAAA,OAAkB;kCAAlB,OAChB;;AAEL,kBAAH,IAAA,AAAC,CAAA;;;;;;AAMkC,UAA3C,AAAM,AAAgB,6CAAiB;AACgB,UAAvD,AAAM,AAAgB,mCAAQ,AAAS,QAAD,KAAK,AAAS,QAAD;;;AAGvD,oBAAI,AAAM,AAAkB;AAC+B,QAAzD,AAAM,AAAkB,qCAAQ,AAAS,QAAD,KAAK,AAAS,QAAD;;AAEvD,oBAAI,AAAM,AAAkB;AAC+B,QAAzD,AAAM,AAAkB,qCAAQ,AAAS,QAAD,KAAK,AAAS,QAAD;;IAEzD;wBAEoC;AACO,MAAzC,AAAM,AAAgB,0CAAc;AACvB,qBAAW,AAAU,6BAAc,AAAM,KAAD;AACrD,oBAAI,AAAM,AAAgB;AAC8B,QAAtD,AAAM,AAAgB,kCAAO,AAAS,QAAD,KAAK,AAAS,QAAD;;AAEpD,oBAAI,AAAM,AAAkB;AAC8B,QAAxD,AAAM,AAAkB,oCAAO,AAAS,QAAD,KAAK,AAAS,QAAD;;AAEtD,oBAAI,AAAM,AAAkB;AAC8B,QAAxD,AAAM,AAAkB,oCAAO,AAAS,QAAD,KAAK,AAAS,QAAD;;IAExD;8BAGmB,aAA0B;AAC3B,2CAAY,AAAQ,OAAD;AACjB;AACA;AACK,4BAAkB,wCAAwB;AACjB,MAAhD,AAAM,AAAgB,uCAAW,eAAe;AAEhD,UAAI,AAAM,gCAAqB,kBAAQ,AAAM,AAAkB;AAGC,QAF9D,mBAAmB,yCACR,2BACQ,AAAM,AAAY;AACuB,QAA5D,AAAM,AAAkB,kDAAoB,gBAAgB;AAKT,QAJnD,AAAc,0BAAI,qCACN,AAAY,WAAD,mBACZ,AAAY,WAAD,6CAEX,oCAAqB,gBAAgB;;AAElD,UAAI,AAAM,gCAAqB,kBAAQ,AAAM,AAAkB;AAGC,QAF9D,mBAAmB,yCACR,2BACQ,AAAM,AAAY;AACuB,QAA5D,AAAM,AAAkB,kDAAoB,gBAAgB;AAKT,QAJnD,AAAc,0BAAI,qCACN,AAAY,WAAD,mBACZ,AAAY,WAAD,6CAEX,oCAAqB,gBAAgB;;AAEQ,MAA1D,AAAc,0BAAI,sBAAgB,SAAS,EAAE,WAAW;AACD,MAAvD,AAAc,0BAAI,mBAAa,SAAS,EAAE,WAAW;AACrD,oBAAI,AAAM,AAAgB;AACxB,YAAI,AAAM,AAAgB,sCAAW;AAEuB,UAD1D,AAAM,AAAgB,+CAAmB,uCAC/B,iBAAiB,AAAM,AAAW;AACa,UAAzD,AAAc,0BAAI,AAAM,AAAgB;;AAGK,UAD7C,AAAM,AAAgB,0CAClB,mDAAmC;AACc,UAArD,AAAc,0BAAI,AAAM,AAAgB;;;IAG9C;mBAE8B,WAA0B;AACtD,YAAO,wCACY,QAAkB;AACL,UAA1B,0BAAoB,KAAK;qDAEZ,QAAkB;AACL,UAA1B,0BAAoB,KAAK;mDAEd,QAAgB;AACH,UAAxB,wBAAkB,KAAK;AACG;AAC1B,cAAI,AAAM,wCAA6B;AACE,YAAvC,YAAY;AACgD,YAA5D,AAAU,SAAD,YAAY,AAAU,SAAD,eAAe,AAAM,KAAD;AACR,YAA1C,AAAM,qCAA0B,SAAS;;qDAG5B,QAAoB;AACnC,cAAU,6BAAN,KAAK;AACqB,YAA5B,4BAAsB,KAAK;;+CAGxB,qDACQ,QAAgB;AACZ,2BACT,AAAU,SAAD,eAAe,AAAQ,OAAD;AACV,YAAzB,uBAAiB,QAAQ;AACzB,gBAAI,AAAM,4BAAiB;AACkB,cAA3C,iCAA2B,YAAO,QAAQ;;AAE5C,gBAAI,AAAM,gCAAqB;AACG,cAAhC,6BAAuB,QAAQ;;mDAGtB;AACQ,YAAnB;mDAEqB,QAA4B;AACb,YAApC,kCAA4B,OAAO;+DAExB;AACQ,YAAnB;4CAEc,QAAqB;AACb,YAAtB;wDAEW,QAAmB;AACJ,YAA1B,wBAAkB,OAAO;mDAEjB,QAAgB;AACD,YAAvB,qBAAe,OAAO;iDAEb,QAAiB;AACF,YAAxB,sBAAgB,OAAO;8CAElB,qCACK,AAAY,WAAD,mBACZ,AAAY,WAAD;IAEhC;sBAEiC,WAA0B;AACzD,YAAO,mCACI,qCACK,AAAY,WAAD,mBACZ,AAAY,WAAD,0GAEb,QAAc,SAAU,yBAAmB,KAAK,kCACjD,QAAc,SAAU,wBAAkB,KAAK;IAC7D;iCAGiD,OAAc;AAC7D,eAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAM,AAAa,AAAc,KAA5B,wCAAoC,IAAA,AAAC,CAAA;AACpB,mDACpC,AAAM,AAAa,AAAa,KAA3B,oCAA4B,CAAC;AAElC;AACA,oBAAQ;AACC,sBAAW,AAAO,AAAY,AAEL,MAFR,mBAAgB,YACrC,AAAO,AAAY,MAAb,mBAAgB,aACtB,AAAO,AAAY,MAAb,mBAAgB,SACtB,AAAO,AAAY,MAAb,mBAAgB,YACnB,AAAO,AAAY,MAAb,mBAAgB,iBACtB,AAAO,AAAY,MAAb,0BAAsB,oBAC5B,AAAO,AAAY,MAAb,0BAAsB,gBAClC,MACA;AAcJ,QAXF,AAAO,AAAc,MAAf,0BAAuB,SAAS,YAAoB;AAC7C,sCAAmB,WAAV,UAAU,WAAC;AAClB,qBAAmB,aAAZ,AAAO,MAAD,SAAQ,OAAO;AAC5B,sBAAqB,aAAb,AAAO,MAAD,UAAS,OAAO;AAC9B,oBAAiB,aAAX,AAAO,MAAD,QAAO,OAAO;AAC1B,uBAAuB,aAAd,AAAO,MAAD,WAAU,OAAO;AAClC,6BAAoB,qBAAS,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM;AAChE,wBAAI,AAAa,YAAD,UAAU,QAAQ;AACd,YAAlB,aAAa,KAAK;;AAEb,UAAP,QAAA,AAAK,KAAA;;AAGP,YAAI,UAAU,IAAI;AACH;AACgB,UAA7B,eAAe;AACqB,UAApC,AAAa,YAAD,cAAC,WAAa,UAAU;AACR,UAA5B,AAAa,YAAD,eAAe,CAAC;AACgB,UAA5C,AAAa,YAAD,cAAc,AAAO,MAAD;AACC,UAAjC,AAAM,KAAD,eAAe,YAAY;;;IAGtC;6BAGmC;AACjC,eAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAM,AAAW,AAAiB,oDAAQ,IAAA,AAAC,CAAA;AACvC,qBAClB,AAAM,AAAW,AAAgB,AAAI,gDAAH,CAAC;AACvC,iBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,MAAD,YAAS,IAAA,AAAC,CAAA;AAClC,wBAAI,AAAM,AAAW,AAAgB,AAAI,gDAAH,CAAC,0BACnC,AAAM,AAAI,AAAa,MAAjB,QAAC,CAAC,yBAAwB,QAAQ;AACzB;AACa,YAA9B,YAAY;AACmB,YAA/B,AAAU,SAAD,QAAQ,AAAM,AAAI,MAAJ,QAAC,CAAC;AAC4B,YAArD,AAAU,SAAD,QAAQ,AAAM,AAAW,AAAgB,gDAAC,CAAC;AACW,YAA/D,AAAU,SAAD,YAAY,AAAM,AAAW,AAAgB,AAAI,gDAAH,CAAC;AACvB,YAAjC,AAAU,SAAD,SAAS,AAAM,AAAI,MAAJ,QAAC,CAAC;AACQ,YAAlC,AAAM,6BAAkB,SAAS;;;;IAIzC;wBAGQ,OACgB,YACF,iBACA;AACN;AAC0B,iDACpC,AAAM,AAAa,AAAa,8CAAC,KAAK;AACxB,uBAAa,mCACpB,KAAK,QAAQ,AAAe,qBAAN,KAAK,sBAAsB;AACf,MAA7C,AAAM,AAAY,AAAY,0CAAI,UAAU;AAC5C,cAAQ,AAAO,MAAD;;;AAc4C,UAZtD,gBAAgB,yCACL,6CACC,MAAM,cACH,AAAM,AAAY,AAAY,uCAAG,OACtC,AAAM,AAAY,gDACjB,AAAM,AAAY,4CACf,OACA,AAAO,MAAD,6BACJ,UAAU,uBACD,UAAU,mBACd,eAAe,yBACT,qBAAqB,YAClC,AAAM,AAAY;AAChC;;;;AAasD,UAXtD,gBAAgB,2CACL,+CACC,MAAM,cACH,AAAM,AAAY,AAAY,uCAAG,OACtC,AAAM,AAAY,gDACjB,AAAM,AAAY,4CACf,OACA,AAAO,MAAD,sCACK,UAAU,mBACd,eAAe,yBACT,qBAAqB,YAClC,AAAM,AAAY;AAChC;;;;AAYsD,UAVtD,gBAAgB,2CACL,+CACC,MAAM,cACH,AAAM,AAAY,AAAY,uCAAG,OACtC,AAAM,AAAY,sCAClB,kBACM,UAAU,uBACD,UAAU,mBACd,eAAe,yBACT,qBAAqB,YAClC,AAAM,AAAY;AAChC;;;;AAcsD,UAZtD,gBAAgB,4CACL,gDACC,MAAM,cACH,AAAM,AAAY,AAAY,uCAAG,OACtC,AAAM,AAAY,gDACjB,AAAM,AAAY,4CACf,OACA,AAAO,MAAD,6BACJ,UAAU,uBACD,UAAU,mBACd,eAAe,yBACT,qBAAqB,YAClC,AAAM,AAAY;AAChC;;;;AAasD,UAXtD,gBAAgB,6CACL,+CACC,MAAM,cACH,AAAM,AAAY,AAAY,uCAAG,OACtC,AAAM,AAAY,gDACjB,AAAM,AAAY,4CACf,OACA,AAAO,MAAD,sCACK,UAAU,mBACd,eAAe,yBACT,qBAAqB,YAClC,AAAM,AAAY;AAChC;;;;AAcsD,UAZtD,gBAAgB,yCACL,6CACC,MAAM,cACH,AAAM,AAAY,AAAY,uCAAG,OACtC,AAAM,AAAY,gDACjB,AAAM,AAAY,4CACf,OACA,AAAO,MAAD,6BACJ,UAAU,uBACD,UAAU,mBACd,eAAe,yBACT,qBAAqB,YAClC,AAAM,AAAY;AAChC;;;;AAcsD,UAZtD,gBAAgB,2CACL,+CACC,MAAM,cACH,AAAM,AAAY,AAAY,uCAAG,OACtC,AAAM,AAAY,gDACjB,AAAM,AAAY,4CACf,OACA,AAAO,MAAD,6BACJ,UAAU,uBACD,UAAU,mBACd,eAAe,yBACT,qBAAqB,YAClC,AAAM,AAAY;AAChC;;;;AAYsD,UAVtD,gBAAgB,wCACL,4CACC,MAAM,cACH,AAAM,AAAY,AAAY,uCAAG,OACtC,AAAM,AAAY,sCAClB,kBACM,UAAU,uBACD,UAAU,mBACd,eAAe,yBACT,qBAAqB,YAClC,AAAM,AAAY;AAChC;;;;AAcsD,UAZtD,gBAAgB,6CACL,iDACC,MAAM,cACH,AAAM,AAAY,AAAY,uCAAG,OACtC,AAAM,AAAY,gDACjB,AAAM,AAAY,4CACf,OACA,AAAO,MAAD,6BACJ,UAAU,uBACD,UAAU,mBACd,eAAe,yBACT,qBAAqB,YAClC,AAAM,AAAY;AAChC;;;;AAasD,UAXtD,gBAAgB,gDACL,+CACC,MAAM,cACH,AAAM,AAAY,AAAY,uCAAG,OACtC,AAAM,AAAY,gDACjB,AAAM,AAAY,4CACf,OACA,AAAO,MAAD,sCACK,UAAU,mBACd,eAAe,yBACT,qBAAqB,YAClC,AAAM,AAAY;AAChC;;;;AAasD,UAXtD,gBAAgB,8CACL,+CACC,MAAM,cACH,AAAM,AAAY,AAAY,uCAAG,OACtC,AAAM,AAAY,gDACjB,AAAM,AAAY,4CACf,OACA,AAAO,MAAD,sCACK,UAAU,mBACd,eAAe,yBACT,qBAAqB,YAClC,AAAM,AAAY;AAChC;;;;AAasD,UAXtD,gBAAgB,6CACL,+CACC,MAAM,cACH,AAAM,AAAY,AAAY,uCAAG,OACtC,AAAM,AAAY,gDACjB,AAAM,AAAY,4CACf,OACA,AAAO,MAAD,sCACK,UAAU,mBACd,eAAe,yBACT,qBAAqB,YAClC,AAAM,AAAY;AAChC;;;;AAasD,UAXtD,gBAAgB,+CACL,+CACC,MAAM,cACH,AAAM,AAAY,AAAY,uCAAG,OACtC,AAAM,AAAY,gDACjB,AAAM,AAAY,4CACf,OACA,AAAO,MAAD,sCACK,UAAU,mBACd,eAAe,yBACT,qBAAqB,YAClC,AAAM,AAAY;AAChC;;;;AAasD,UAXtD,gBAAgB,gDACL,+CACC,MAAM,cACH,AAAM,AAAY,AAAY,uCAAG,OACtC,AAAM,AAAY,gDACjB,AAAM,AAAY,4CACf,OACA,AAAO,MAAD,sCACK,UAAU,mBACd,eAAe,yBACT,qBAAqB,YAClC,AAAM,AAAY;AAChC;;;;AAasD,UAXtD,gBAAgB,+CACL,mDACC,MAAM,cACH,AAAM,AAAY,AAAY,uCAAG,OACtC,AAAM,AAAY,gDACjB,AAAM,AAAY,4CACf,OACA,AAAO,MAAD,sCACK,UAAU,mBACd,eAAe,yBACT,qBAAqB,YAClC,AAAM,AAAY;AAChC;;;;AAasD,UAXtD,gBAAgB,mDACL,sDACC,MAAM,cACH,AAAM,AAAY,AAAY,uCAAG,OACtC,AAAM,AAAY,gDACjB,AAAM,AAAY,4CACf,OACA,AAAO,MAAD,sCACK,UAAU,mBACd,eAAe,yBACT,qBAAqB,YAClC,AAAM,AAAY;AAChC;;;;AAasD,UAXtD,gBAAgB,gDACL,+CACC,MAAM,cACH,AAAM,AAAY,AAAY,uCAAG,OACtC,AAAM,AAAY,gDACjB,AAAM,AAAY,4CACf,OACA,AAAO,MAAD,sCACK,UAAU,mBACd,eAAe,yBACT,qBAAqB,YAClC,AAAM,AAAY;AAChC;;;;AAasD,UAXtD,gBAAgB,mDACL,+CACC,MAAM,cACH,AAAM,AAAY,AAAY,uCAAG,OACtC,AAAM,AAAY,gDACjB,AAAM,AAAY,4CACf,OACA,AAAO,MAAD,sCACK,UAAU,mBACd,eAAe,yBACT,qBAAqB,YAClC,AAAM,AAAY;AAChC;;;;AAasD,UAXtD,gBAAgB,kDACL,sDACC,MAAM,cACH,AAAM,AAAY,AAAY,uCAAG,OACtC,AAAM,AAAY,gDACjB,AAAM,AAAY,4CACf,OACA,AAAO,MAAD,sCACK,UAAU,mBACd,eAAe,yBACT,qBAAqB,YAClC,AAAM,AAAY;AAChC;;;;AAasD,UAXtD,gBAAgB,qDACL,yDACC,MAAM,cACH,AAAM,AAAY,AAAY,uCAAG,OACtC,AAAM,AAAY,gDACjB,AAAM,AAAY,4CACf,OACA,AAAO,MAAD,sCACK,UAAU,mBACd,eAAe,yBACT,qBAAqB,YAClC,AAAM,AAAY;AAChC;;;;AAasD,UAXtD,gBAAgB,mDACL,+CACC,MAAM,cACH,AAAM,AAAY,AAAY,uCAAG,OACtC,AAAM,AAAY,gDACjB,AAAM,AAAY,4CACf,OACA,AAAO,MAAD,sCACK,UAAU,mBACd,eAAe,yBACT,qBAAqB,YAClC,AAAM,AAAY;AAChC;;;;AAasD,UAXtD,gBAAgB,oCACL,+CACC,MAAM,cACH,AAAM,AAAY,AAAY,uCAAG,OACtC,AAAM,AAAY,gDACjB,AAAM,AAAY,4CACf,OACA,AAAO,MAAD,sCACK,UAAU,mBACd,eAAe,yBACT,qBAAqB,YAClC,AAAM,AAAY;AAChC;;;;AAcsD,UAXtD,gBAAgB,6CACL,+CACC,MAAM,cACH,AAAM,AAAY,AAAY,uCAAG,OACtC,AAAM,AAAY,gDACjB,AAAM,AAAY,4CACf,OACA,AAAO,MAAD,sCACK,UAAU,mBACd,eAAe,yBACT,qBAAqB,YAClC,AAAM,AAAY;AAChC;;;;AAcsD,UAXtD,gBAAgB,sCACL,+CACC,MAAM,cACH,AAAM,AAAY,AAAY,uCAAG,OACtC,AAAM,AAAY,gDACjB,AAAM,AAAY,4CACf,OACA,AAAO,MAAD,sCACK,UAAU,mBACd,eAAe,yBACT,qBAAqB,YAClC,AAAM,AAAY;AAChC;;;;AAGA;;;AAEJ,YAAO,cAAa;IACtB;;;QA76CqB;;IAER;IACH;IACH;IACA;IACA;IAC2B;IAW3B;IAlBc;AAArB;;EAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC79CgB,uBAAa;AACnC,MAApB,oBAAe;AACC,MAAhB,oBAAe;AACU,MAAzB,mDAAc,UAAU;AACxB,oBAAI,AAAM,AAAW;AACY,QAA/B,yDAAoB,UAAU;AACR,QAAtB;AACyC,aAAzC,AAAM;qBAAA,OAAY;AACK,QAAvB,iDAAY,UAAU;AACJ,QAAlB;;AAEyC,cAAzC,AAAM;sBAAA,OAAY;AACa,QAA/B,yDAAoB,UAAU;;AAEqB,MAArD,8BAAwB,6BAAsB;AAC5B,MAAlB;IACF;0BAGiE;;AAC/D,eAAuC,SAAU,WAAU;AAC3C,qBAAS,AAAO,MAAD;AACf,qBAAS,AAAO,MAAD;AACf,wBAAY,AAAO,MAAD;AAClB,0BAAc,AAAO,MAAD;AACpB,0BAAc,AAAO,MAAD;AACpB,yBAAa,AAAO,MAAD;AACnB,yBAAa,AAAO,MAAD;AACnB,wBAAY,AAAO,MAAD;AACH;AACwB,QAArD,AAAO,MAAD,iBAA6C;AACtB,QAA7B,AAAO,MAAD,aAAqB;AAC3B,uBAAK,sBAAgB,AAAO,AAAY,MAAb,0BAAsB;AAC5B,UAAnB,oBAAe;;AAEN,0BAAuD,aAAzC,AAAO,MAAD,eAA8B,6BACzD,AAAO,MAAD,yBAAyB;AACnC,YAAI,AAAO,MAAD,eAAe;AACvB,mBAAS,aAAa,GAClB,AAAW,UAAD,gBAAG,AAAO,AAAW,MAAZ,uBACnB,aAAA,AAAU,UAAA;AACE,uBAAa,WAAN,MAAM,GAAC,UAAU;AACxB,uBAAe,AAGS,4BAHhB,MAAM,KACb,0BAAP,MAAM,KACC,qBAAP,MAAM,KACC,8BAAP,MAAM,KACC,uBAAP,MAAM,IACR,OACM,WAAN,MAAM,GAAC,UAAU;AACvB,gBAAI,IAAI,IAAI;AACF;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACJ,kBAAI,AAAO,MAAD,yBAAyB;AACF,gBAA/B,UAAmB,WAAT,SAAS,GAAC,UAAU;;AAEgC,cAAhE,AAAO,AAAY,MAAb,qBAAiB,mCAA6B,IAAI,EAAE,IAAI;AACrC,cAAzB,AAAO,AAAS,MAAV,iBAAc,IAAI;AACwC,cAAhE,eAAe,AAAO,AAAW,MAAZ,sBAAuC,aAA1B,AAAO,AAAY,MAAb,2BAAsB;AAC9D,kBAAW,uBAAP,MAAM;AAG0B,gBAFlC,aAAa,AAAO,AAAgB,MAAjB,oBAAoB,OACjC,KACwB,KAAb,WAAX,WAAW,GAAC,UAAU,UAAX,OAAgB;AACc,gBAA/C,AAAa,YAAD,cAAC,mBAAwB,WAAX,UAAU;AACO,sBAA3C,MAAM;gBAAC,AAAS,iBAAA,OAAT,gBAAa,AAAa,YAAD,cAAhB;AAC2B,uBAA3C,MAAM;gBAAC,AAAS,kBAAA,OAAT,iBAAa,AAAa,YAAD,cAAhB;AAEsC,gBADtD,AAAO,MAAD,aACF,mBAAS,AAAO,MAAD,YAAW,AAAa,YAAD;AAEY,gBADtD,AAAO,MAAD,aACF,mBAAS,AAAO,MAAD,YAAW,AAAa,YAAD;;AAE5C,kBAAI,AAAO,MAAD,oBAAoB;AACQ,gBAApC,aAAwB,WAAX,WAAW,GAAC,UAAU;AAE0B,gBAD7D,AAAO,AAAW,AAAgC,MAA5C,sBAAuC,aAA1B,AAAO,AAAY,MAAb,2BAAsB,gBAAG,mBAC7C,AAAW,UAAD,IAAI,OAAmB,WAAX,UAAU,oBAAc,UAAU;;AAE/D,kBAAI,AAAO,MAAD,qBAAqB;AACO,gBAApC,aAAwB,WAAX,WAAW,GAAC,UAAU;AAED,gBADlC,AAAO,AAAW,AACb,MADC,sBAAuC,aAA1B,AAAO,AAAY,MAAb,2BAAsB,sBAC1C,gBAAmB,UAAU;;AAEpC,kBAAI,AAAO,MAAD,oBAAoB;AACM,gBAAlC,YAAsB,WAAV,UAAU,GAAC,UAAU;AAED,gBADhC,AAAO,AAAW,AACb,MADC,sBAAuC,aAA1B,AAAO,AAAY,MAAb,2BAAsB,qBAC1C,mBAAkB,SAAS;;AAIlC,kBAAI,AAAO,MAAD,oBAAoB;AACM,gBAAlC,YAAsB,WAAV,UAAU,GAAC,UAAU;AAEpB,gBADb,AAAO,AAAW,AAAgC,MAA5C,sBAAuC,aAA1B,AAAO,AAAY,MAAb,2BAAsB,UAC3C,SAAS;;AAEf,kBAAI,AAAO,MAAD,mBAAmB;AACK,gBAAhC,WAAoB,WAAT,SAAS,GAAC,UAAU;AACiC,gBAAhE,AAAO,AAAW,AAAgC,MAA5C,sBAAuC,aAA1B,AAAO,AAAY,MAAb,2BAAsB,SAAS,QAAQ;;AAGlE,kBAAW,+BAAP,MAAM;AACM,iCAAa,AAAO,MAAD;AACnB,kCAAc,AAAO,MAAD;AAClC,oBAAI,AAAO,MAAD,oBAAoB;AACM,kBAAlC,YAAsB,WAAV,UAAU,GAAC,UAAU;AAEpB,kBADb,AAAO,AAAW,AAAgC,MAA5C,sBAAuC,aAA1B,AAAO,AAAY,MAAb,2BAAsB,UAC3C,SAAS;;AAEf,oBAAW,8BAAP,MAAM;AACM,qCAAe,AAAO,MAAD;AACnC,sBAAI,AAAO,MAAD,sBAAsB;AACQ,oBAAtC,cAA0B,WAAZ,YAAY,GAAC,UAAU;AAEtB,oBADf,AAAO,AAAW,AAAgC,MAA5C,sBAAuC,aAA1B,AAAO,AAAY,MAAb,2BAAsB,YAAG,gBAC9C,WAAW;;;AAGnB,oBAAI,AAAO,MAAD,qBAAqB;AACO,kBAApC,aAAwB,WAAX,WAAW,GAAC,UAAU;AAErB,kBADd,AAAO,AAAW,AAAgC,MAA5C,sBAAuC,aAA1B,AAAO,AAAY,MAAb,2BAAsB,WAC3C,UAAU;;;AAIlB,+BAAI,AAAO,MAAD,eAA8B,6BAAQ,OAAO,IAAI,MACzD,AAAO,AAAW,AAAgC,AACvC,MADL,sBAAuC,aAA1B,AAAO,AAAY,MAAb,2BAAsB,eAC3C,OAAO;AAEb,kBAAI,AAAO,AAAY,AACqB,MADlC,0BAAsB,YACxB,AAAO,AAAY,MAAb,0BAAsB,WAC5B,AAAO,AAAY,MAAb,0BAAsB,YAC9B,AAAO,AAAY,AAAmB,MAAhC,mBAAgB,mBAChB,AAAO,AAAY,MAAb,0BAAsB,YAC7B,AAAa,AAAI,AAEU,YAFf,QAAQ,QACnB,AAAa,AAAK,YAAN,SAAS,QACrB,AAAa,AAAK,YAAN,SAAS,QACrB,AAAa,AAAM,YAAP,UAAU,OACvB,AAAa,AAAI,AAAQ,YAAb,QAAQ,QAAQ,AAAa,AAAK,YAAN,SAAS,OACtD,AAAa,AAAE,YAAH,MAAM;AACtB,oBAAW,uBAAP,MAAM,GACR,AAAO,AAAkD,MAAnD,0BAA0B,UAAU,EAAE,YAAY;;AAI5D,mBAAK,AAAO,AAAY,MAAb,0BAAsB,YACzB,AAAO,AAAY,MAAb,0BAAsB,WAC5B,AAAO,AAAY,MAAb,0BAAsB,wBAChC,AAAa,YAAD;AACJ,2CAAO,AAAa,YAAD;AACnB,0CAAM,AAAa,YAAD;AACgB,gBAA5C,AAAa,YAAD,QAAQ,mBAAc,IAAI,EAAE,GAAG;AACA,gBAA3C,AAAa,YAAD,OAAO,mBAAc,IAAI,EAAE,GAAG;;AAE5C,kBAAI,AAAO,MAAD,aAAW,QACjB,AAAO,MAAD,aAAW,SAChB,WAAW,cACZ,AAAM,AAAW;AAEU,gBAD7B,uBAAiB,AAAO,MAAD,WAAS,MAAM,EAAE,YAAY,EAAE,UAAU,EAC5D,AAAO,AAAW,MAAZ;;;;AAIhB,cAAI,WAAW;AACU,YAAvB,sBAAgB,MAAM;AACtB,0BAAI,AAAM,AAAW;AACM,cAAzB,wBAAkB,MAAM;;;;;IAKlC;uBAGc,MACwB,QACL,cACzB,YACA;AACN,oBAAI,AAAO,MAAD;AACR,YAAS,sBAAL,IAAI;AAC4D,UAAlE,AAAK,IAAD,kBAAiB,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU;cAC5D,KAAS,uBAAL,IAAI;AACqD,UAAlE,AAAK,IAAD,kBAAiB,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU;cAC5D,KAAS,uBAAL,IAAI;AACqD,UAAlE,AAAK,IAAD,kBAAiB,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU;cAC5D,KAAS,0BAAL,IAAI;AACqD,UAAlE,AAAK,IAAD,kBAAiB,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU;;;IAGvE;wBAEyD;AACzC,iBAAO,AAAO,MAAD;AAC3B,oBAAI,AAAO,MAAD;AACR,iBAAS,aAAa,GAClB,AAAW,UAAD,gBAAG,AAAO,AAAY,MAAb,0BACnB,aAAA,AAAU,UAAA;AAE8B,UAD1C,+CAAiB,IAAI,GAAE,MAAM,EAAE,AAAO,AAAW,MAAZ,sBAAa,UAAU,GACxD,UAAU,EAAE,AAAO,AAAY,MAAb;;;IAG5B;kBAEyD;AACvD,eAAS,cAAc,GACnB,AAAY,WAAD,gBAAG,AAAiB,gBAAD,YAC9B,cAAA,AAAW,WAAA;AACmC,QAAhD,wBAAkB,AAAgB,gBAAA,QAAC,WAAW;;IAElD;;AAGE,oBAAiD;AAAV,qBAAvC;AACE,YAAI,AAAO,MAAD,eAAe;AACvB,mBAAe,YAAa,AAAO,OAAD;AASb,YARnB,AAAU,SAAD,kBAAoC,AACzB,YADM,AAAU,SAAD,YAAa,mBAC5C,AAAO,MAAD,gBACU,YAAf,AAAU,SAAD,OAAuB,mCACA,AAAK,aAA/B,AAAU,SAAD,qBAAoB,KACF,aAA1B,AAAU,SAAD,qBAAoB,IAChB,YAAf,AAAU,SAAD,OAAuB,sCACV,AAAK,aAAtB,AAAU,SAAD,YAAW,KACF,aAAjB,AAAU,SAAD,YAAoC,aAAzB,AAAO,AAAW,MAAZ,wBAAqB,IACjD;AACd,0BAAI,AAAU,SAAD;AAC4B,cAAvC,AAAU,SAAD,iBAAgB,MAAM,EAAE;;;;;IAK3C;sBAGuD;AA0BnD,MAzBF,AAAO,AAAY,MAAb,sBAEF,SAA8B,YACG;AACnC,YAAwB,YAApB,AAAO,MAAD,eAA8B;AACtC,iCAAQ,AAAW,AAAU,UAAX,cAAc,OAC1B,CAAC,IACA,AAAY,AAAU,WAAX,cAAc,OACtB,IACsB,OAArB,AAAW,UAAD,yBAGJ,WADA,WADH,AAAW,UAAD,8CAEyB,WAAtB,AAAY,WAAD,mCACH,WAArB,AAAW,UAAD,0BAAqB,AAAY,WAAD;cACnD,KAAwB,YAApB,AAAO,MAAD,eAA8B;AAC7C,iCAAQ,AAAW,AAAU,UAAX,cAAc,OAC1B,IACC,AAAY,AAAU,WAAX,cAAc,OACtB,CAAC,IACqB,OAArB,AAAW,UAAD,yBAGJ,WADA,WADH,AAAY,WAAD,8CAEuB,WAArB,AAAW,UAAD,mCACD,WAAtB,AAAY,WAAD,0BAAqB,AAAW,UAAD;;;IAG9D;8BAG4C;;AACnC,sBAAY;AACC;AACA;AACpB,oBAAI;AAC4C,QAA9C,mCAA6B,gBAAgB;;AAGwB,MAAvE,AAAM,AAAa,kDAAkD;AACrE,eAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAiB,gBAAD,YAAS,IAAA,AAAC,CAAA;AACJ,qBAAS,AAAgB,gBAAA,QAAC,CAAC;AACnE,YAAW,6BAAP,MAAM;AACR,wBAAI,AAAO,AAAY,MAAb;AAG4C,YAFpD,YAAa,AAAO,AAAY,MAAb,0BAAsB,iBACnC,sBACkB,KAAjB,AAAO,MAAD,kBAAC,OAAa,AAAU,YAAE,AAAE,CAAD;AACjB,kCAAkB,gCAAiB,CAAC,EAAE,MAAM;AACnE,0BAAI,AAAM,AAAa,AAAuB;AAC5C,uBAAS,IAAI,GACT,AAAE,CAAD,gBAAG,AAAM,AAAa,AAAuB,2DAC9C,IAAA,AAAC,CAAA;AAC2B,6CAC1B,AAAM,AAAa,AAAsB,uDAAC,CAAC;AAC/C,oBAAI,AAAuB,AAAU,sBAAX,cAAc,SAAS;AACY,kBAA3D,AAAuB,AAAgB,sBAAjB,uBAAqB,eAAe;AAC1D;sBACK,KAAI,AAAE,CAAD,KACyC,aAAjD,AAAM,AAAa,AAAuB,4DAAS;AAGG,kBAFxD,AAAM,AAAa,AAAuB,sDACtC,uCACI,SAAS,EAAoB,gCAAC,eAAe;AACrD;;;;AAMoD,cAFxD,AAAM,AAAa,AAAuB,sDACtC,uCACI,SAAS,EAAoB,gCAAC,eAAe;;AAGZ,YAA3C,AAAO,MAAD,qBAAmC;AAC3B;AAEd,gBAAI,AAAe,cAAD,IAAI,QAAQ,AAAe,cAAD,IAAI;AACZ,cAAlC,iBAAgC;AAC+B,cAA/D,2BAA2B,6BAAc,SAAS,EAAU;AAChB,cAA5C,AAAe,cAAD,OAAK,wBAAwB;AACT,cAAlC,iBAAgC;AACwB,cAAxD,AAAe,cAAD,OAAK,6BAAc,SAAS,EAAU;;AAGE,YADxD,yBAAmB,MAAM,EAAE,mBAAc,cAAc,EACnD,cAAc,EAAE,wBAAwB,EAAE,SAAS;;;;IAI/D;yBAGyC,QAChC,cACe,gBACA,gBACN,0BACP;AACL;AAAW;AACc;AACf;AACK,wBAAsB;AACtB,sBAAoB;AACvC,eAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,AAAY,MAAb,0BAAqB,IAAA,AAAC,CAAA;AACjB,QAA7B,QAAQ,AAAO,AAAW,MAAZ,sBAAa,CAAC;AACb,gBAAf,gBAAQ,AAAM,KAAD;AACb,sBAAI,AAAe,cAAD;AAChB,mBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAe,cAAD,YAAS,IAAA,AAAC,CAAA;AAC1C,gBAAI,AAAU,SAAD,IAAI,AAAc,AAAI,cAAJ,QAAC,CAAC;AACa,cAA5C,2BAA2B,AAAc,cAAA,QAAC,CAAC;AAC3C;kBACK,KAAI,AAAE,CAAD,KAA0B,aAAtB,AAAe,cAAD,aAAU;AACyB,cAA/D,2BAA2B,6BAAc,SAAS,EAAU;AAChB,cAA5C,AAAe,cAAD,OAAK,wBAAwB;;;;AAIjD,sBAAI,AAAe,cAAD;AAChB,mBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAe,cAAD,YAAS,IAAA,AAAC,CAAA;AAC1C,gBAAI,AAAU,SAAD,IAAI,AAAc,AAAI,cAAJ,QAAC,CAAC;AACa,cAA5C,2BAA2B,AAAc,cAAA,QAAC,CAAC;AAC3C;kBACK,KAAI,AAAE,CAAD,KAA0B,aAAtB,AAAe,cAAD,aAAU;AACyB,cAA/D,2BAA2B,6BAAc,SAAS,EAAU;AAChB,cAA5C,AAAe,cAAD,OAAK,wBAAwB;;;;AAIjD,YAAI,AAAyB,wBAAD,sBAAoB;AACpC,uBAAS,AAAyB,AAAgB,wBAAjB;AAC3C,cAAI,AAAO,MAAD,KAAI,KAAK,AAAE,CAAD,GAAU,aAAP,MAAM,IAAG;AACiB,YAA/C,AAAyB,AAAgB,wBAAjB,yBAAqB;;;AAGjD,YAAI,AAAyB,wBAAD,sBAAoB;AACpC,uBAAS,AAAyB,AAAgB,wBAAjB;AAC3C,cAAI,AAAO,MAAD,KAAI,KAAK,AAAE,CAAD,GAAU,aAAP,MAAM,IAAG;AACiB,YAA/C,AAAyB,AAAgB,wBAAjB,yBAAqB;;;AAGjD,sBAAI,YAAY;AACmC,UAAjD,QAAc,AAA8B,aAApC,KAAK,iBAAG,AAAO,AAAiB,MAAlB,2BAAmB,CAAC,KAAI;AACf,UAA/B,QAAQ,AAAM,KAAD,WAAS,IAAI,KAAK;;AAEjC,YAAU,aAAN,KAAK,IAAG;AAC6C,UAAvD,YAAY,AAAyB,AAAe,wBAAhB,0BAAiB,CAAC;AACS,UAA/D,AAAyB,AAAe,wBAAhB,0BAAiB,CAAC,EAAc,aAAV,SAAS,iBAAG,KAAK;;AAER,UAAvD,YAAY,AAAyB,AAAe,wBAAhB,0BAAiB,CAAC;AACS,UAA/D,AAAyB,AAAe,wBAAhB,0BAAiB,CAAC,EAAc,aAAV,SAAS,iBAAG,KAAK;;AAE5B,QAArC,AAAY,WAAD,OAAK,AAAU,SAAD;AACO,QAAhC,AAAU,SAAD,OAAW,aAAN,KAAK,iBAAG,SAAS;AAC/B,sBAAI,YAAY,KAAiB,aAAb,AAAS,SAAA,QAAC,CAAC,KAAI;AACf,UAAlB,AAAS,SAAA,QAAC,CAAC,EAAI;;AAIoB,QAFrC,AAAM,KAAD,mBAAmB,CAAC,AAAO,AAAY,MAAb,0BAAsB,SAC/C,AAAS,SAAA,QAAC,CAAC,IACX,AAAS,AAAI,SAAJ,QAAC,CAAC;;AAE+C,MAAlE,AAAO,AAAgB,MAAjB,yBAAqB,8BAAe,WAAW,EAAE,SAAS;AACtB,MAA1C,AAAO,MAAD,cAAa,AAAY,WAAD,UAAQ;AACE,MAAxC,AAAO,MAAD,cAAa,AAAU,SAAD,UAAQ;AAEpC,UAAqB,aAAjB,AAAO,MAAD,4BAAa,AAAU,SAAD,UAAQ;AACwB,QAA9D,AAAO,MAAD,wBAAa,YAAY,IAAG,CAAC,MAAM,AAAU,SAAD,UAAQ;;AAE5D,UAAqB,aAAjB,AAAO,MAAD,4BAAa,AAAY,WAAD,UAAQ;AACpB,QAApB,AAAO,MAAD,cAAa;;IAEvB;mCAG4C;;AACtB;AACb;AACO;AACV;AAAW;AACc;AAC7B,eAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAiB,gBAAD,YAAS,IAAA,AAAC,CAAA;AACJ,qBAAS,AAAgB,gBAAA,QAAC,CAAC;AACpC,QAA/B,AAAO,AAAO,MAAR,uBAAqB;AAC3B,YAAW,6BAAP,MAAM;AACR,wBAAI,AAAO,AAAY,MAAb;AAG4C,YAFpD,YAAa,AAAO,AAAY,MAAb,mBAAgB,mBAC7B,sBACkB,KAAjB,AAAO,MAAD,kBAAC,OAAa,AAAU,YAAE,AAAE,CAAD;AAExC,gBAAI,AAAiB,gBAAD,IAAI;AACc,cAApC,mBAAkC;AACiB,cAAnD,eAAe,6BAAc,SAAS,EAAU;;AAElD,qBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,AAAY,MAAb,0BAAqB,IAAA,AAAC,CAAA;AACjB,cAA7B,QAAQ,AAAO,AAAW,MAAZ,sBAAa,CAAC;AACb,sBAAf,gBAAQ,AAAM,KAAD;AACb,4BAAI,AAAiB,gBAAD;AAClB,yBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAiB,gBAAD,YAAS,IAAA,AAAC,CAAA;AAC5C,sBAAI,AAAU,SAAD,IAAI,AAAgB,AAAI,gBAAJ,QAAC,CAAC;AACC,oBAAlC,eAAe,AAAgB,gBAAA,QAAC,CAAC;AACjC;wBACK,KAAI,AAAE,CAAD,KAA4B,aAAxB,AAAiB,gBAAD,aAAU;AACW,oBAAnD,eAAe,6BAAc,SAAS,EAAU;AACd,oBAAlC,AAAiB,gBAAD,OAAK,YAAY;;;;AAIvC,kBAAI,AAAa,YAAD,sBAAoB;AACxB,6BAAS,AAAa,AAAgB,YAAjB;AAC/B,oBAAI,AAAO,MAAD,KAAI,KAAK,AAAE,CAAD,GAAU,aAAP,MAAM,IAAG;AACK,kBAAnC,AAAa,AAAgB,YAAjB,yBAAqB;;;AAGrC,kBAAU,aAAN,KAAK,KAAI;AACgC,gBAA3C,YAAY,AAAa,AAAe,YAAhB,0BAAiB,CAAC;AACS,gBAAnD,AAAa,AAAe,YAAhB,0BAAiB,CAAC,EAAc,aAAV,SAAS,iBAAG,KAAK;;AAER,gBAA3C,YAAY,AAAa,AAAe,YAAhB,0BAAiB,CAAC;AACS,gBAAnD,AAAa,AAAe,YAAhB,0BAAiB,CAAC,EAAc,aAAV,SAAS,iBAAG,KAAK;;AAErD,kBAAI,AAAE,CAAD,KAA8B,aAA1B,AAAO,AAAY,MAAb,2BAAsB,GACnC,AAAiB,AAAiB,gBAAlB,OAAK,YAAY;;;AAGvC,cAAI,gBAAgB,IAAI;AACtB,qBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAiB,gBAAD,YAAS,IAAA,AAAC,CAAA;AAC5C,kBAAI,AAAO,AAAY,MAAb,mBAAgB;AACsC,gBAA9D,AAAO,MAAD,sBAAqB,AAAgB,AAAI,gBAAJ,QAAC,CAAC;;AAE7C,oBAAI,AAAO,AAAU,MAAX,cAAc,AAAgB,AAAI,gBAAJ,QAAC,CAAC,aACxC,AAAO,AAAuD,MAAxD,sBAAqB,AAAgB,AAAI,gBAAJ,QAAC,CAAC;;;;;;IAM3D;oBAG2D;AACzD,oBAAI,AAAc;AACZ,oBAAQ,CAAC;AACb,iBAAuC,SAAU,WAAU;AACvB,UAAlC,qBAAe,MAAM,EAAE,QAAA,AAAM,KAAD,GAAI;;;IAGtC;qBAEsD,QAAY;AAChE,UAAI,AAAO,AAAM,MAAP,UAAU;AACsD,QAAxE,AAAO,MAAD,iBAAgB,AAAM,AAAO,0BAAC,AAAa,2BAAE,AAAM,AAAQ;AACnD,QAAd,oBAAY,aAAZ,qBAAY;;AAEsB,QAAlC,AAAO,MAAD,iBAAgB,AAAO,MAAD;;AAE9B,UAAW,qBAAP,MAAM;AACmB,QAA3B,AAAO,MAAD,iBAAe;UAClB,KAAW,oBAAP,MAAM;AACa,QAA1B,AAAO,MAAD,iBAAe;UAClB,KAAW,uBAAP,MAAM;AACgB,QAA7B,AAAO,MAAD,iBAAe;UAClB,KAAW,uBAAP,MAAM;AACgB,QAA7B,AAAO,MAAD,iBAAe;UAClB,KAAW,yBAAP,MAAM;AACkB,QAA/B,AAAO,MAAD,iBAAe;UAClB,KAAW,qBAAP,MAAM;AACc,QAA3B,AAAO,MAAD,iBAAe;UAClB,KAAW,wBAAP,MAAM;AACiB,QAA9B,AAAO,MAAD,iBAAe;UAClB,KAAW,uBAAP,MAAM;AACgB,QAA7B,AAAO,MAAD,iBAAe;UAClB,KAAW,yBAAP,MAAM;AACkB,QAA/B,AAAO,MAAD,iBAAe;UAClB,KAAW,8BAAP,MAAM;AACuB,QAApC,AAAO,MAAD,iBAAe;UAClB,KAAW,2BAAP,MAAM;AACoB,QAAjC,AAAO,MAAD,iBAAe;UAClB,KAAW,4BAAP,MAAM;AACqB,QAAlC,AAAO,MAAD,iBAAe;UAClB,KAAW,+BAAP,MAAM;AACwB,QAArC,AAAO,MAAD,iBAAe;UAClB,KAAW,4BAAP,MAAM;AACqB,QAAlC,AAAO,MAAD,iBAAe;UAClB,KAAW,+BAAP,MAAM;AACwB,QAArC,AAAO,MAAD,iBAAe;UAClB,KAAW,4BAAP,MAAM;AACqB,QAAlC,AAAO,MAAD,iBAAe;UAClB,KAAW,0BAAP,MAAM;AACmB,QAAhC,AAAO,MAAD,iBAAe;UAClB,KAAW,iCAAP,MAAM;AAC0B,QAAvC,AAAO,MAAD,iBAAe;UAClB,KAAW,8BAAP,MAAM;AACuB,QAApC,AAAO,MAAD,iBAAe;UAClB,KAAW,2BAAP,MAAM;AACoB,QAAjC,AAAO,MAAD,iBAAe;UAClB,KAAW,yBAAP,MAAM;AACkB,QAA/B,AAAO,MAAD,iBAAe;YAChB,KAAW,qBAAP,MAAM;AACY,QAA3B,AAAO,MAAD,iBAAe;YAChB,KAAW,8BAAP,MAAM;AACqB,QAApC,AAAO,MAAD,iBAAe;YAChB,KAAW,uBAAP,MAAM;AACc,QAA7B,AAAO,MAAD,iBAAe;;AAEvB,UAAI,AAAM,KAAD,KAAI,GACX,AAAM,AAGoD,mCAFA,WAD3B,AAAM,4BAC7B,AAAO,AAAY,AAAc,MAA3B,0CAAoC,oBAC7C,AAAM,6BACF,AAAO,AAAY,AAAc,MAA3B,0CAAoC;IACvD;;;AAIE,UAAI,AAAM,yBAAc,kBAAQ,AAAM,AAAW;AACvC;AACH;AACY;AACjB,uBAAK,AAAM,AAAO;AACG,+BAAyB;AAC5C,mBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAM,AAAW,iCAAQ,IAAA,AAAC,CAAA;AAC9B,4BAAY,AAAM,AAAU,6BAAC,CAAC;AAChB,YAA5B,0DAAkB,SAAS;AACiB,YAA5C,AAAe,cAAD,0BAAe,WAAV,SAAS;;AAGL,UAAzB,OAAO;AAGwD,UAD/D,AAAe,cAAD,WAAS,QAAS;;AAC5B,qBAAI;oCAAC,GAAG;iBAAI,WAAC,AAAK,IAAD,eAAa,GAAG,KAAK,IAAgB,aAAV,AAAI,IAAA,QAAC,GAAG,KAAI;YAApD;;;;AAGS,sCAAkC;AACrD,iBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAM,AAAW,iCAAQ,IAAA,AAAC,CAAA;AACb,UAA/B,YAAY,AAAM,AAAU,6BAAC,CAAC;AACV,UAAV,UAAV,SAAS,UAAU,CAAC;AACpB,yBAAK,AAAM,AAAO;AACN,kCACN,AAAwB,uBAAD,YAAoB,WAAV,SAAS,sBACpC,sBACE,uBAAuB,qBAAY,WAAV,SAAS,sBACpC;AAC2C,YAArD,AAAwB,uBAAD,0BAAe,WAAV,SAAS;AAKC,YAJ5B,UAAV,SAAS,WAAwB,KAAL,WAAV,SAAS,iBAAC,OACE,WAAf,WAAV,SAAS,yBACL,AAAI,AAA2B,IAA3B,QAAW,WAAV,SAAS,uBAAoB,IAC7B,KACA,AAAI,MAAQ,cAAN,KAAK;;AAE3B,cAAI,SAAS,IAAI,mBACH,WAAV,SAAS,oBACE,WAAV,SAAS,mBAAe,QAAkB,WAAV,SAAS,mBAAe;AAC3D,gBAAc,WAAV,SAAS,mBAAe,mBAA6B,WAAX,WAAV,SAAS;AAGN,cAFrC,aAAsC,AACA,YADf,WAAV,SAAS,mBAAmB,UACZ,YAAf,WAAV,SAAS,mBAAmB,UACH,YAAf,WAAV,SAAS,mBAAmB;AACnB,yCACT,UAAU,IAAG,AAAyB,sDAAX,SAAS,qBAAkB;AAC7B;AAC7B,uBAAS,aAAa,GAClB,AAAW,UAAD,gCAAwB,WAAX,WAAV,SAAS,8BACtB,aAAA,AAAU,UAAA;AACZ,oBAAc,WAAV,SAAS,qBAAiB;AACd,6BAAiB,WAAV,SAAS,mBAAc,UAAU;AAClD;AAAW;AAAU;AAAW;AAAY;AAEE,kBAA7C,WADK,WAAV,SAAS,yBACA,mCAA6B,IAAI,EAAE;AAEe,iCAD3D,kCACyB,WAAX,WAAV,SAAS,0BAA0C,WAAP,WAAZ,WAAV,SAAS,kCAAsB;AACzD,sBAAc,WAAV,SAAS,wBAAoB;AACkB,gCAAjD,gBAAsB,WAAV,SAAS,sBAAiB,UAAU;AAEnC,oBAD2C,UAAnC,WAAX,WAAV,SAAS,0BAA0C,WAAP,WAAZ,WAAV,SAAS,kCAAsB,eACjD,SAAS;;AAEf,sBAAc,WAAV,SAAS,uBAAmB;AACiB,+BAA/C,gBAAqB,WAAV,SAAS,qBAAgB,UAAU;AAElC,oBAD4C,UAAnC,WAAX,WAAV,SAAS,0BAA0C,WAAP,WAAZ,WAAV,SAAS,kCAAsB,cACjD,QAAQ;;AAId,sBAAI,AAAa,YAAD,SAAS,QAAQ,AAAa,YAAD,QAAQ;AACzC,+CAAO,AAAa,YAAD;AACnB,8CAAM,AAAa,YAAD;AACgB,oBAA5C,AAAa,YAAD,QAAQ,mBAAc,IAAI,EAAE,GAAG;AACA,oBAA3C,AAAa,YAAD,OAAO,mBAAc,IAAI,EAAE,GAAG;;AAE5C,sBAAc,WAAV,SAAS,wBAAoB;AACkB,gCAAjD,gBAAsB,WAAV,SAAS,sBAAiB,UAAU;AAEnC,oBAD2C,UAAnC,WAAX,WAAV,SAAS,0BAA0C,WAAP,WAAZ,WAAV,SAAS,kCAAsB,eACjD,SAAS;;AAEf,sBAAc,WAAV,SAAS,yBAAqB;AACmB,iCAAnD,gBAAuB,WAAV,SAAS,uBAAkB,UAAU;AAE3B,oBAAlB,UADgB,WAAX,WAAV,SAAS,0BAA0C,WAAP,WAAZ,WAAV,SAAS,kCAAsB,gBACxC,UAAU;;AAEzB,sBAAc,4CAAV,SAAS,KACT,AAAU,SAAD,sBAAsB;AACoB,oBAArD,cAAc,AAAU,SAAD,mBAAmB,UAAU;AAE3B,oBADzB,AAAU,AAAW,AAChB,SADI,sBAA0C,aAA7B,AAAU,AAAY,SAAb,2BAAsB,YACvC,WAAW;;AAG3B,sBAAK,AAAW,UAAD,IAAI,oBACT,UAAU,KAAI,AAAW,UAAD,KAAI,YACjC,AAAU,SAAD,IAAI,SACT,AAAW,UAAD,KAAI,UACc,YAAf,WAAV,SAAS,mBAAmB,SACH,YAAf,WAAV,SAAS,mBAAmB,UACH,YAAf,WAAV,SAAS,mBAAmB,UACH,YAAf,WAAV,SAAS,mBAAmB,kBACnC,AAAS,QAAD,IAAI,SACR,AAAW,UAAD,KAAI,SACc,YAAf,WAAV,SAAS,mBAAmB,SACH,YAAf,WAAV,SAAS,mBAAmB,UACH,YAAf,WAAV,SAAS,mBAAmB,UACH,YAAf,WAAV,SAAS,mBAAmB,kBACnC,AAAU,SAAD,IAAI,QAAQ,AAAW,UAAD,KAAI,UACnC,AAAY,WAAD,IAAI,QAAiC,YAAf,WAAV,SAAS,mBAAmB;AAEP,oBAA1C,WADK,WAAV,SAAS,8BACkC,WAAP,WAAZ,WAAV,SAAS,kCAAsB;;;;kBAI9C,KAAc,WAAV,SAAS,mBAAe;AACzB;AACR,uBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAM,AAAO,6BAAQ,IAAA,AAAC,CAAA;AACxC,oBAAyB,YAAX,WAAV,SAAS,iBAAe,AAAM,AAAM,AAAI,yBAAH,CAAC;AAChB,kBAAxB,SAAS,AAAM,AAAM,yBAAC,CAAC;AACvB;;;AAOM,cAJA,UAAV,SAAS,gBAAgB,AAAe,MAAT,IAAI,SACP,YAAZ,WAAP,MAAM,iBAAgB,oBACA,YAAZ,WAAP,MAAM,iBAAgB,aACrB,WAAP,MAAM,kBACN;;AAER,gBAAc,WAAV,SAAS,mBAAgB,mBACH,WAAZ,WAAV,SAAS;AACsC,cAAvC,WAAV,SAAS,0BAAuB,SAAS,EAAE;AACP,cAA1B,WAAV,SAAS,oBAAiB,SAAS;AACnC,6BAA4B,WAAd,WAAV,SAAS,kCACX,AAAM,AAAa,AAAc,AAA+B,+EAAd,WAAV,SAAS;;;;;IAK7D;oBAE2D;AAClD;AACP,UAAc,uBAAV,SAAS;AACsB,QAAjC,aAAa,AAAU,SAAD;UACnB,KAAc,uBAAV,SAAS;AACiB,QAAjC,aAAa,AAAU,SAAD;UACnB,KAAc,uBAAV,SAAS;AACiB,QAAjC,aAAa,AAAU,SAAD;;AAExB,YAAO,WAAU;IACnB;sBAEiC,MAAa;AACxC,kBAAQ;AACZ,eAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAK,IAAD,YAAS,IAAA,AAAC,CAAA;AAChC,YAAI,AAAI,AAAI,IAAJ,QAAC,CAAC,KAAK,GAAG;AACT,UAAP,QAAA,AAAK,KAAA;;;AAGT,YAAO,MAAK;IACd;wBAG6D;AAC3D,UAAc,uBAAV,SAAS;AACqB,QAAhC,AAAU,SAAD,mBAAkB;UACxB,KAAc,4CAAV,SAAS;AACe,QAA/B,AAAU,SAAD,mBAAkB;UACxB,KAAc,iCAAV,SAAS;AACsB,QAAtC,AAAU,SAAD,mBAAkB;UACxB,KAAc,uBAAV,SAAS;AACgB,QAAhC,AAAU,SAAD,mBAAkB;UACxB,KAAc,wBAAV,SAAS;AACiB,QAAjC,AAAU,SAAD,mBAAkB;UACxB,KAAc,4BAAV,SAAS;AACqB,QAArC,AAAU,SAAD,mBAAkB;UACxB,KAAc,uBAAV,SAAS;AACgB,QAAhC,AAAU,SAAD,mBAAkB;UACxB,KAAc,uBAAV,SAAS;AACgB,QAAhC,AAAU,SAAD,mBAAkB;UACxB,KAAc,8BAAV,SAAS;AACuB,QAAvC,AAAU,SAAD,mBAAkB;UACxB,KAAc,uBAAV,SAAS;AACgB,QAAhC,AAAU,SAAD,mBAAkB;;IAE/B;;;IA/tBiB;IACZ;IACD,oBAAe;IAGiB;IACN;;EAPhB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EC2DhB;;;;;;EC8CA;;;;;;ECnDA;;;;;;;;;;;;;;;;;;;;;;;;;;;;IChCQ;;;;;;IAGA;;;;;;IAGC;;;;;;IAGD;;;;;;IAGA;;;;;;IAGyB;;;;;;IAGA;;;;;;IAGxB;;;;;;IAGD;;;;;;IASF;;;;;;IAGyB;;;;;;IASA;;;;;;IASZ;;;;;;;;IAtDX;IAGA;IAGC;IAGD;IAGA;IAGyB;IAGA;IAGxB;IAGD;IAGA;IAGA;IAGF;IAAqB;IAGI;IAGA;IAGA;IAGA;IAGxB;IAGA;IAGY;;EACnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;IClEiC;;;;;;;AAKV,MAAnB,iBAAY;AACZ,UAAI,AAAO,AAAS,wBAAG;AACrB,YAAI,cAAS;AACY,UAAvB,AAAU,uBAAQ;AACkB,UAApC,AAAU,uBAAsB;;;AAMnB,QAHf,iBAAa,AAAU,oBAAG,OACpB,+BACE,AAAO,sBAAU,kBAAW,AAAO,AAAO,6CAC5C;;AAER,UAAI,AAAU,wBAAS,MACrB,AAAU,AAGe,uBAFL,AAAI,aAAnB,AAAO,uBAAU,kBAAK,AAAU,sBAAgB,8BAC3C,AAAU,AAAM,iCAAY,AAAO,uBACnC,AAAU;AACO,MAA7B,0BAAoB;AACpB,YAAO;IACT;;;AAKc,wBAAc;AAC1B,UAAI,oBAAe;AAImB,aAHpC,WAAW;QACP,WAAQ,AAAO;QACf,WAAsB;QACtB,iBAAc,AAAO;;AAGF,QAFvB,AAAO,AAAY,4BAAG,IAChB,AAAY,WAAD,SAAgB,6BAC3B,AAAY,WAAD;;AAEoB,MAAvC,AAAY,WAAD,aAAuB;AACD,MAAjC,4BAAsB,WAAW;AACjC,YAAO,YAAW;IACpB;;IAI+B;YAIX;AACW,MAA7B,mBAAY,AAAM;AAEgC,MADlD,AAAO,AAAkB,AACpB,4EAAyB,MAAM,AAAO;AAEuB,MADlE,AAAO,MAAD,UACF,cAAQ,AAAO,AAAS,wBAAG,OAAQ,iBAAY;AACnD,uBAAI,AAAY,wBAAgB,6BAC9B,AAAmE,uBAAnD,MAAM,EAAE,AAAO,uBAAW,kBAAa;IAC3D;;;IA9DK;IAAO;IACP;IAG0B;;;EA2DjC;;;;;;;;;;;;;;;;;;;IC7DiC;;;;;;;AAKV,MAAnB,iBAAY;AACZ,UAAI,AAAO,AAAS,wBAAG;AACrB,YAAI,cAAS;AACY,UAAvB,AAAU,uBAAQ;AACkB,UAApC,AAAU,uBAAsB;;;AAMnB,QAHf,iBAAa,AAAU,oBAAG,OACpB,+BACE,AAAO,sBAAU,kBAAW,AAAO,AAAO,6CAC5C;;AAER,UAAI,AAAU,wBAAS,MACrB,AAAU,AAGe,uBAFL,AAAI,aAAnB,AAAO,uBAAU,kBAAK,AAAU,sBAAgB,8BAC3C,AAAU,AAAM,iCAAY,AAAO,uBACnC,AAAU;AACO,MAA7B,0BAAoB;AACpB,YAAO;IACT;;;AAKc,wBAAc;AAC1B,UAAI,oBAAe;AAImB,aAHpC,WAAW;QACP,WAAQ,AAAO;QACf,WAAsB;QACtB,iBAAc,AAAO;;AAGF,QAFvB,AAAO,AAAY,4BAAG,IAChB,AAAY,WAAD,SAAgB,6BAC3B,AAAY,WAAD;;AAEoB,MAAvC,AAAY,WAAD,aAAuB;AACD,MAAjC,4BAAsB,WAAW;AACjC,YAAO,YAAW;IACpB;;IAI+B;YAIX;AAEqD,MADvE,iEACI,cAAQ,gBAAW,kBAAa,MAAM,EAAE,8BAAc;IAC5D;;;IAxDK;IAG0B;;;EAsDjC;;;;;;;;;;;;;;;;;ICtDiC;;;;;;;AAKV,MAAnB,iBAAY;AACZ,UAAI,AAAO,AAAS,wBAAG;AACrB,YAAI,cAAS;AACY,UAAvB,AAAU,uBAAQ;AACkB,UAApC,AAAU,uBAAsB;;;AAMnB,QAHf,iBAAa,AAAU,oBAAG,OACpB,+BACE,AAAO,sBAAU,kBAAW,AAAO,AAAO,6CAC5C;;AAER,UAAI,AAAU,wBAAS,MACrB,AAAU,AAGe,uBAFL,AAAI,aAAnB,AAAO,uBAAU,kBAAK,AAAU,sBAAgB,8BAC3C,AAAU,AAAM,iCAAY,AAAO,uBACnC,AAAU;AACO,MAA7B,0BAAoB;AACpB,YAAO;IACT;;;AAKc,wBAAc;AAC1B,UAAI,oBAAe;AAImB,aAHpC,WAAW;QACP,WAAQ,AAAO;QACf,WAAsB;QACtB,iBAAc,AAAO;;AAGF,QAFvB,AAAO,AAAY,4BAAG,IAChB,AAAY,WAAD,SAAgB,6BAC3B,AAAY,WAAD;;AAEoB,MAAvC,AAAY,WAAD,aAAuB;AACD,MAAjC,4BAAsB,WAAW;AACjC,YAAO,YAAW;IACpB;;IAI+B;YAIX;AAEqD,MADvE,iEACI,cAAQ,gBAAW,kBAAa,MAAM,EAAE,8BAAc;IAC5D;;;IAxDK;IAG0B;;;EAsDjC;;;;;;;;;;;;;;;;;;;;;;;;;;;ICvDM;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAEyB;;;;;;IAKxB;;;;;;;;AAKQ,0BAAgB,AAAO,AAAiB,gCAAG,OAAO,OAAO;AACpE,UAAI,AAAO,AAAS,wBAAG;AACrB,YAAI,cAAS;AAOmB,UAN9B,uBAAY,gBACR,WAA8B,YAAtB,AAAc,6BAAW,QAC7B,AAAO,AAAmB,uCACxB,AAAc,aAAD,IAAI,AAAc,wCAAoB,OACjD,AAAc,uCACd,YACR,WAAsB;;;AAIW,QADvC,iBAAY,+BAAwB,AAAO,sBAAU,AAAc,4BAC/D,AAAO,AAAO;;AAEpB,UAAI,AAAU,wBAAS,MACrB,AAAU,AAGe,uBAFL,AAAI,aAAnB,AAAO,uBAAU,kBAAK,AAAU,sBAAgB,8BAC3C,AAAU,AAAM,iCAAY,AAAO,uBACnC,AAAU;AACO,MAA7B,0BAAoB;AACpB,YAAO;IACT;;;AAYqB,MAPnB,yBAAc,gBACV,WAA8B,YAAtB,AAAc,6BAAW,QAC7B,AAAO,AAAmB,6CAC1B,kBACJ,WAAsB,yBACtB,iBAAoC,YAAtB,AAAc,6BAAW,QACnC,AAAO,AAAmB,6CAC1B;AAGe,MAFvB,AAAO,AAAY,4BAAG,IAChB,AAAY,yBAAe,6BAC3B,AAAY;AACe,MAAjC,4BAAsB;AACtB,YAAO;IACT;;;AAIoC,8CAAY;AAC9C,UAAI,cAAS;AAGmB,QAF9B,gCAAoB,gBAChB,WAAQ,AAAU,SAAD,aACjB,WAAsB;;AAE5B,YAAO;IACT;;;AAIoC,8CAAY;AAId,MAHhC,kCAAsB,gBAClB,WAAQ,AAAU,SAAD,mBACjB,iBAAc,AAAU,SAAD,mBACvB,WAAsB;AAGK,MAF/B,AAAU,AAAiB,SAAlB,sBAAqB,IACxB,AAAoB,kCAAe,6BACnC,AAAoB;AAC1B,YAAO;IACT;;IAI+B;YAIX;;AACgB,8CAAY;AAEU,MADxD,AAAO,AAAkB,AAAmB,4EACxC,AAAO,AAAQ,4BAAC,2BAAsB,AAAO;AACjD,UAAI,2BAAqB,kBAAQ,AAAU,SAAD;AAYgB,QAX/B,aAAzB,AAAO,iCAAoB,IACrB,0BACE,MAAM,EACN,aACA,yBACA,qCACA,AAAc,6BACd,sBACA,AAAU,mBAAG,OAAO,AAAU,yBAAS,sEACvC,OAAW,aACX,2BACF,AAAO,MAAD,WAAW,qBAAe;;AAExC,UAAI,6BAAuB,kBAAQ,AAAU,SAAD;AAYgB,QAXjC,aAAzB,AAAO,iCAAoB,IACrB,0BACE,MAAM,EACN,aACA,2BACA,qCACA,AAAc,6BACd,sBACA,AAAU,mBAAG,OAAO,AAAU,yBAAS,wEACvC,OAAW,cACX,2BACF,AAAO,MAAD,WAAW,qBAAe;;AAGxC,UAAI,kBAAa;AAY+B,QAXrB,aAAzB,AAAO,iCAAoB,IACrB,0BACE,MAAM,EACN,aACA,gBACA,kCACA,AAAc,6BACd,sBACA,AAAU,mBAAG,OAAO,AAAU,yBAAS,0EACvC,OAAW,eACX,2BACF,AAAO,MAAD,WAAW,kBAAa;;AAEtC,UAAI,oBAAe;AACjB,YAAI,AAAO,AAAS,6BAAC,OAAM,KAAK,AAAO,AAAS,6BAAC,OAAM;AACO,UAA5D,uBAAgB,MAAM,EAAE,AAAO,uBAAW,kBAAa;;AAaP,UAXvB,aAAzB,AAAO,iCAAoB,IACrB,0BACE,MAAM,EACN,aACA,kBACA,kCACA,AAAc,6BACd,sBACA,AAAU,mBAAG,OAAO,AAAU,yBAAS,0EACvC,OAAW,eACX,2BACF,AAAO,MAAD,WAAW,kBAAa;;;IAG1C;;;IA9JI;IAGA;IAGA;IAGA;IACE;IACuB;IACvB;IACA;IAGD;;;EA+IP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IC9JM;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAG2B;;;;;;IAEF;;;;;;;;AAKhB,0BAAgB,AAAO,AAAiB,gCAAG,OAAO,OAAO;AACpE,UAAI,AAAO,AAAS,wBAAG;AACrB,YAAI,cAAS;AAOmB,UAN9B,uBAAY,gBACR,WAA8B,YAAtB,AAAc,6BAAW,QAC7B,AAAO,AAAmB,uCACxB,AAAc,aAAD,IAAI,AAAc,wCAAoB,OACjD,AAAc,uCACd,YACR,WAAsB;;;AAIW,QADvC,iBAAY,+BAAwB,AAAO,sBAAU,AAAc,4BAC/D,AAAO,AAAO;;AAEpB,UAAI,AAAU,wBAAS,MACrB,AAAU,AAGe,uBAFL,AAAI,aAAnB,AAAO,uBAAU,kBAAK,AAAU,sBAAgB,8BAC3C,AAAU,AAAM,iCAAY,AAAO,uBACnC,AAAU;AACO,MAA7B,0BAAoB;AACpB,YAAO;IACT;;;AAKc,8BAAc,gBACtB,WAA8B,YAAtB,AAAc,6BAAW,QAC7B,AAAO,AAAmB,6CAC1B,kBACJ,WAAsB,yBACtB,iBAAoC,YAAtB,AAAc,6BAAW,QACnC,AAAO,AAAmB,6CAC1B;AAGe,MAFvB,AAAO,AAAY,4BAAG,IAChB,AAAY,WAAD,SAAgB,6BAC3B,AAAY,WAAD;AACjB,YAAO,YAAW;IACpB;;AAKgC,MAA9B,eAAU;AACC,iBAAO,4BACd,AAAO,AAAO,AAAW,gDACzB,kBAAO,AAAO,AAAO,iCAAY,AAAO,AAAO;AAC9B,sBAAY,uCAC7B,AAAc,6CACd,AAAc,6BACd,AAAO,sBACP,AAAO,sBACP,AAAO,AAAO,2CACd,aACA,IAAI;AACa,MAArB,eAAU,AAAU,SAAD;AACE,MAArB,eAAU,AAAU,SAAD;AACa,MAAhC,cAAS;AAKoB,MAJ7B,AAAc,6BAAc,qBACZ,aAAZ,AAAU,SAAD,MAAK,AAAE,iBAAE,cACN,aAAZ,AAAU,SAAD,MAAK,AAAE,iBAAE,cACN,aAAZ,AAAU,SAAD,MAAK,AAAE,iBAAE,cACN,aAAZ,AAAU,SAAD,MAAK,AAAE,iBAAE;AACwB,MAA9C,YAAO,cAAoC,aAA3B,AAAc,AAAO,oCAAQ;IAC/C;;;AAGuC,oDAAe;AAChD;AAAc;AAAW;AAAa;AAAS;AACpB,MAA/B,UAAU,AAAa,YAAD;AACS,MAA/B,UAAU,AAAa,YAAD;AACO,MAA7B,YAAoB,aAAR,OAAO,iBAAG,OAAO;AACnB,uBAA+C,CAAN,KAA1B,AAAc,sCAAA,OAAe;AACtD,UAAI,AAAa,AAAgB,YAAjB,oBAAoB;AAGa,QAF/C,AAAa,AAAc,YAAf,kBAAkB,OACxB,eAAe,AAAa,YAAD,iBAC3B,eAAe,AAAa,YAAD;;AAEjC,YAAK,AAAa,YAAD,kBAAkB,QAC9B,AAAa,YAAD,kBAAkB;AACjC,cAAI,AAAU,SAAD,KAAI;AAC0B,YAAzC,eAAe,AAAa,YAAD;;AAGsC,YADjE,cAC8D,CAA9B,aAA3B,AAAa,YAAD,+BAAiB,AAAa,YAAD,mBAAkB;AAG9B,YAFlC,eACmC,AAAe,AAAa,CAAxD,AAAW,AAAM,UAAP,wBAAS,OAAO,kBAAI,WAAW,iBAAI,SAAS,iBACrD,AAAa,YAAD;;;;AAI1B,YAAO,aAAY;IACrB;YAIoB;;AAEsC,MADxD,AAAO,AAAkB,AAAmB,4EACxC,AAAO,AAAQ,4BAAC,2BAAsB,AAAO;AACuB,MAAxE,mBAAoB,+BAAkB,AAAc,4BAAe;AACnE,oBAAI,AAAO,AAAO,AAAY,iEACzB,AAAO,AAAO,AAAY,uDAC3B,AAAO,AAAO,AAAY,qDAAoB,kBAC9C,AAAO,AAAO,AAAY,AAAiB,mEAC3C,kBAAa,kBACb,AAAU,AAAS,yCACG,wBAAtB,AAAU,AAAQ,+BAAC,OACM,aAAzB,AAAO,iCAAoB,KAC3B,mBAAa;AACK,yDAAiB,AAAO,AAAQ,4BAAC;AACjC,qDAC0B,AAAI,aAA7C,AAAe,AAAU,AAAS,cAApB,gCAA6B,kBAAK,4BAC3C,AAAe,AAAU,AAAQ,cAAnB,2BAAoB,4BAClC;AAYqB,QAX/B,4BACI,MAAM,EACN,cACA,oBACA,UAAU,eAAV,OAAY,oBACZ,UAAU,gBAAV,OAAY,sBACZ,UAAU,iBAAV,OAAY,YACZ,sBACA,aACA,kBACA,gBACA,AAAO,AAAO;;AAGgD,QADlE,AAAO,MAAD,YACF,kBAAO,cAAS,eAAiB,aAAP,4BAAS,uBAAiB;AAEY,QADpE,AAAO,MAAD,YACF,kBAAO,cAAS,eAAiB,aAAP,4BAAS,uBAAiB;;IAE5D;;;IA9JI;IAGA;IAGA;IAGA;IAGA;IAGA;IAG2B;IAEF;;;EA2I/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IChKM;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAGC;;;;;;IAEwB;;;;;;;;AAU3B,UAAI,AAAO,AAAS,wBAAG;AACrB,YAAI,cAAS;AAOmB,UAN9B,uBAAY,gBACR,WAA8B,YAAtB,AAAc,6BAAW,QAC7B,AAAO,AAAmB,uCACxB,AAAc,AAAiB,wCAAG,OAChC,AAAc,uCACd,YACR,WAAsB;;;AAIW,QADvC,iBAAY,+BAAwB,AAAO,sBAAU,AAAc,4BAC/D,AAAO,AAAO;;AAEpB,UAAI,AAAU,wBAAS,MACrB,AAAU,AAGe,uBAFL,AAAI,aAAnB,AAAO,uBAAU,kBAAK,AAAU,sBAAgB,8BAC3C,AAAU,AAAM,iCAAY,AAAO,uBACnC,AAAU;AACO,MAA7B,0BAAoB;AACpB,YAAO;IACT;;;AAKE,UAAI,oBAAe;AAQE,QAPnB,yBAAc,gBACV,WAA8B,YAAtB,AAAc,6BAAW,QAC7B,AAAO,AAAmB,6CAC1B,kBACJ,WAAsB,yBACtB,iBAAoC,YAAtB,AAAc,6BAAW,QACnC,AAAO,AAAmB,6CAC1B;AACyB,QAAjC,4BAAsB;;AAID,MAFvB,AAAO,AAAY,4BAAG,IAChB,AAAY,yBAAe,6BAC3B,AAAY;AAClB,YAAO;IACT;;;AAIuC,oDAAe;AACpD,UAAI,cAAS;AAGmB,QAF9B,gCAAoB,gBAChB,WAAQ,AAAa,YAAD,aACpB,WAAsB;;AAE5B,YAAO;IACT;;;AAIuC,oDAAe;AAIpB,MAHhC,kCAAsB,gBAClB,WAAQ,AAAa,YAAD,mBACpB,iBAAc,AAAa,YAAD,mBAC1B,WAAsB;AAGK,MAF/B,AAAa,AAAiB,YAAlB,sBAAqB,IAC3B,AAAoB,kCAAe,6BACnC,AAAoB;AAC1B,YAAO;IACT;;IAI+B;YAIX;;AACmB,oDAAe;AAGI,MADxD,AAAO,AAAkB,AAAmB,4EACxC,AAAO,AAAQ,4BAAC,2BAAsB,AAAO;AAEjD,UAAI,2BAAqB,kBAAQ,AAAa,YAAD;AAYU,QAX5B,aAAzB,AAAO,iCAAoB,IACrB,0BACE,MAAM,EACN,aACA,yBACA,kCACA,AAAc,6BACd,sBACA,AAAU,mBAAG,OAAO,AAAU,yBAAS,sEACvC,OAAW,aACX,2BACF,AAAO,MAAD,WAAW,kBAAY;;AAGrC,UAAI,6BAAuB,kBAAQ,AAAa,YAAD;AAYU,QAX9B,aAAzB,AAAO,iCAAoB,IACrB,0BACE,MAAM,EACN,aACA,2BACA,kCACA,AAAc,6BACd,sBACA,AAAU,mBAAG,OAAO,AAAU,yBAAS,wEACvC,OAAW,cACX,2BACF,AAAO,MAAD,WAAW,kBAAY;;AAGrC,UAAI,kBAAa;AAY+B,QAXrB,aAAzB,AAAO,iCAAoB,IACrB,0BACE,MAAM,EACN,aACA,gBACA,kCACA,AAAc,6BACd,sBACA,AAAU,mBAAG,OAAO,AAAU,yBAAS,0EACvC,OAAW,eACX,2BACF,AAAO,MAAD,WAAW,kBAAa;;AAEtC,UAAI,oBAAe;AACjB,YAAI,AAAO,AAAS,6BAAC,OAAM,KAAK,AAAO,AAAS,6BAAC,OAAM;AACO,UAA5D,uBAAgB,MAAM,EAAE,AAAO,uBAAW,kBAAa;;AAaP,UAXvB,aAAzB,AAAO,iCAAoB,IACrB,0BACE,MAAM,EACN,aACA,kBACA,kCACA,AAAc,6BACd,sBACA,AAAU,mBAAG,OAAO,AAAU,yBAAS,0EACvC,OAAW,eACX,2BACF,AAAO,MAAD,WAAW,kBAAa;;;IAG1C;;;IArKI;IAGA;IAGA;IAGA;IAGC;IACC;IACuB;IACvB;IACA;;;EAsJR;;;;;;;;;;;;;;;;;;;;;;;;;;ACrKgB,sBAAY;AACxB,UAAI,cAAS;AACwC,QAAnD,AAAU,SAAD,SAAS,AAAM,uBAAY,AAAO;;AAET,MAApC,AAAU,SAAD,SAAuB;AACH,MAA7B,0BAAoB,SAAS;AAC7B,YAAO,UAAS;IAClB;;AAKc,wBAAc;AAC1B,UAAI,AAAO,AAAS,wBAAG;AACrB,YAAI,oBAAe;AAII,UAHrB,AAAY,WAAD,SACS,AAAI,aAAnB,AAAO,uBAAU,kBAAK,kBAAsB,8BACvC,AAAY,6BAAY,AAAO,uBAC/B;;;AAGiC,QAA7C,AAAY,WAAD,SAAS,AAAO,AAAS,AAAM,mCAAC;;AAER,MAArC,AAAY,WAAD,eAAe;AACc,MAAxC,AAAY,WAAD,SAAuB;AACK,MAAvC,AAAY,WAAD,aAAuB;AACD,MAAjC,4BAAsB,WAAW;AACjC,YAAO,YAAW;IACpB;YAIoB;AAE8C,MADhE,AAAO,AAAkB,AACpB,4EAAyB,AAAO,AAAQ,4BAAC,IAAI,AAAO;AAIH,MAHtD,AAAO,AAAU,yBAAG,OACd,uBACE,MAAM,EAAE,AAAO,uBAAW,kBAAa,AAAO,2BAChD,AAAO,MAAD,UAAU,AAAO,yBAAa;IAC5C;;IAI+B;;;;;EACjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MCqDgB;;;;;;MA+BmB;;;;;;MA+BE;;;;;;MAgCE;;;;;;MA8BC;;;;;;MAmCH;;;;;;MA6BA;;;;;;MA6BA;;;;;;MAkCtB;;;;;;MAkCA;;;;;;MAqBD;;;;;;MAwBC;;;;;;MAmBQ;;;;;;MAiBI;;;;;;MAiBD;;;;;;MAoBF;;;;;;MA8BD;;;;;;MAoBR;;;;;;MAkBF;;;;;;MAuBQ;;;;;;MAsBN;;;;;;MAoBD;;;;;;MAoBC;;;;;;MAsBQ;;;;;;MAoBV;;;;;;MAoBE;;;;;;MAGM;;;;;;MAqBK;;;;;;MAoBX;;;;;;MAGN;;;;;;MAgCgC;;;;;;MAsBpB;;;;;;MAkBR;;;;;;MAEU;;;;;;MAGc;;;;;;MAG5B;;;;;;MAsCF;;;;;;MAEK;;;;;;sBAU0B,OAAW;AAC3C,6CAAuB,KAAK,EAAE,KAAK;MAAC;;;AAItC,sBAAI,AAAS;AACM,eAAjB;8BAAU;;AAEI,QAAhB;MACF;cAGkB,QAAgB;AAChC,iBAAkB,eAAgB;AACc,UAA9C,AAAa,YAAD,mBAAmB,eAAe;AAClB,UAA5B,AAAa,YAAD,SAAS,MAAM;;MAE/B;2BAsB2C,OAAc,QACnC;;AACpB,iBAAS,aAAa,GAAG,AAAW,UAAD,gBAAG,AAAY,8BAAQ,aAAA,AAAU,UAAA;AAC/B,sBAAQ,AAAW,0BAAC,UAAU;AACjE,wBAAI,AAAe,kCACT,wBAAL,SACwB,YAArB,AAAe,2BAAwB;AAEY,iBADzD;gCAAgB,gBACZ,MAAM,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,UAAU;;;MAG9D;;;;UA96BU;UACD;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACU;UACV;UACA;UACc;UACD;UACX;UACM;UACH;UACJ;UACC;UACW;UACb;UACU;UACR;UACY;UACN;MA0tBV;MA0Ec;MAGc;MAG5B;MAGG;MAGA;MAGN;MAGA;MAGA;MAGA;MAGkB;MAGhB;MACQ;MAGG;MAGb;MAGO;MAEA;MAEN;MAKA,uBAAiB;MAIjB,qBAAe;MAz3BV;MACD;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MAiBO,qBAAY,KAAV,SAAS,QAAT,OAAa;MACV,yBAAiB,MAAf,cAAc,SAAd,OAAkB;MACjB,6BAAoB,OAAlB,iBAAiB,UAAjB,OAAqB;MAC3B,yBAAgB,OAAd,aAAa,UAAb,OAAiB;MACd,8BAAqB,OAAnB,kBAAkB,UAAlB,OAAsB;MACjC,qBAAY,OAAV,SAAS,UAAT,OAAqB,sBAAC,KAAG;MACV,sCAA6B,OAA3B,0BAA0B,UAA1B,OAAmC;MAC9C,6BAAoB,OAAlB,iBAAiB,UAAjB,OAAqB;MAC7B,uBAAc,OAAZ,WAAW,UAAX,OAAsB;MAClB,6BAAoB,OAAlB,iBAAiB,UAAjB,OAAqB;MAC1B,0BAAiB,OAAf,cAAc,UAAd,OAAiC;MAChC,4BAAoB,OAAlB,iBAAiB,UAAjB,OAAqB;MAC7B,uBAAc,QAAZ,WAAW,WAAX,OAAe;MACrB,mBAAU,QAAR,OAAO,WAAP,OAAW;MACR,wBAAe,QAAb,YAAY,WAAZ,OAA6B;MACnC,mBAAW,QAAT,QAAQ,WAAR,OAA0B;AACrC,sDACU,IAAI,gBACI,YAAY,gBACZ,YAAY,wBACJ,oBAAoB,oBACxB,gBAAgB,mBACjB,eAAe,cACpB,UAAU,sBACF,kBAAkB,qBACnB,iBAAiB,iBACrB,aAAa,qBACT,iBAAiB,qBACjB,iBAAiB,kBACpB,cAAc,gBAChB,YAAY,WACjB,OAAO;;IAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MCapB;;;;;;MAG4B;;;;;;MAKV;;;;;;MAEpB;;;;;;4BAEuC,OAAW;;AACvC,QAAd,eAAS,KAAK;AAEmD,QADjE,sBACI,AAAY,AAAmB,8BAAV,aAAa,AAAY,8BAAS;AACvB,QAApC,sBAAkC;AACd,QAApB,mBAAc;AACa,QAA3B,gBAAyB;AAC0C,QAAnE,sBAAqB,uBAAN,OAAS,AAAM,AAAO,KAAR,gBAAS,AAAM,KAAD,UAAG,AAAM,AAAQ,KAAT;MACrD;0BAGqB,OACc,QAC3B,aACyB,OACzB,YACW;;AACI,UAArB,AAAO,MAAD,WAAU,KAAK;AACL,sBAAQ,AAAO,MAAD;AACd,sBAAQ,AAAO,MAAD;AACnB,qBAAO,4BAAqB,AAAM,AAAW,KAAZ,6BACxC,kBAAO,AAAM,KAAD,aAAa,AAAM,KAAD;AAKK,UAJvC,AAAO,MAAD,kBAAiB,AAAO,AAAY,AAGI,MAHjB,mBAAgB,YACzC,AAAO,AAAY,MAAb,mBAAgB,SACtB,AAAO,AAAY,MAAb,0BAAsB,oBAC5B,AAAO,AAAY,MAAb,0BAAsB,iBAC5B,AAAO,AAAY,MAAb,mBAAgB;AACG;AACnB,6BAAe,AAAO,AAAe,MAAhB;AAC3B,4BAAc,AAAO,AAAe,MAAhB;AACb,8BACP,AAAO,AAAY,AAAa,MAA1B,mBAAgB,aAAa,AAAO,AAAY,MAAb,mBAAgB;AAClD,2BAAa,AAAO,AAAY,MAAb,mBAAgB;AAC9C,gBAAM,UAAU,IACP,UAAU,eACN,AAAO,AAAe,MAAhB,wCACH,AAAO,AAAkB,MAAnB,2CACN,AAAO,MAAD,+BAClB,AAAO,MAAD;AAC8B,YAAtC,QAAQ,AAAO,AAAW,MAAZ,sBAAa,UAAU;AACrC,0BAAI,AAAO,MAAD;AACoD,cAA5D,kCAA2B,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK;kBACtD,KAAI,aAAa;AAC6C,cAAnE,mCAA4B,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI;;AAGI,cADtE,kCACI,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW;;AAEb,YAA1D,+BAAwB,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK;AAE5B;AAC7B,gBAAI,AAAO,MAAD,eAAe;AACvB,uBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,AAAW,MAAZ,uBAAoB,IAAA,AAAC,CAAA;AAC7C,8BAAI,AAAO,AAAU,AAAI,MAAf,mBAAY,CAAC;AACrB,sBAAI,AAAO,AAAU,AAAI,MAAf,mBAAY,CAAC,kBAAiB;AACtC,6BAAS,IAAI,GACT,AAAE,CAAD,gBAAG,AAAO,AAAU,AAAI,AAAY,MAA3B,mBAAY,CAAC,0BACvB,IAAA,AAAC,CAAA;AACiD,sBAApD,iBAAiB,AAAO,AAAU,AAAI,AAAW,MAA1B,mBAAY,CAAC,sBAAc,CAAC;AAEhB,sBADnC,+BAAwB,cAAc,EAAE,WAAW,EAAE,MAAM,EACvD,KAAK,EAAE,AAAO,AAAU,MAAX,mBAAY,CAAC,GAAG,CAAC;;;;;;;;MAOhD;6BAE6C,OAAW,aACvB,OAAW;;AAE1C,YAAI,sBAAiB,kBACjB,uBACA,KAAK,IAAI,mBACR,AAAM,KAAD,sBACL,AAAM,KAAD;AACW,2BAAqB;AACjC;AACa,2BAAsB;AAC5B,4BAAc;AAC5B,cAAgB,uBAAZ,WAAW;AACI,8BACU,KAAvB,AAAY,WAAD,mBAAC,OAAc,AAAY,WAAD,6CAAiB;AAEI,YAD9D,OAAO,AACF,UADY,QACI,6DAA2B,AAAM,KAAD;;AAQ/B,UANjB,uBAAP,iBACM,AAAW,UAAD,OAAa,cAAR,AAAM,KAAD,OACb,uBAAP,iBACI,AAAW,UAAD,OAAU,cAAL,IAAI,KACnB,AAAW,UAAD,OAEP,cAFY,sBACT,AAAM,KAAD,SAAS,eAAQ,AAAM,AAAgB,KAAjB;AAE3C,cAAI,AAAY,8BAAS;AAGP,YAFhB,AAAW,UAAD,OAEL,cAFU,sBACP,AAAM,KAAD,OAAO,eAAQ,AAAM,AAAgB,KAAjB;AAIjB,YAFhB,AAAW,UAAD,OAEL,cAFU,sBACP,AAAM,KAAD,MAAM,eAAQ,AAAM,AAAgB,KAAjB;;AAKhB,YAFhB,AAAW,UAAD,OAEL,cAFU,sBACP,AAAM,KAAD,SAAS,eAAQ,AAAM,AAAgB,KAAjB;;AAGQ,UAA7C,AAAW,UAAD,QAAU,wBAAL,OAAQ,AAAqB,qBAAZ,WAAW;AACf,UAA5B,AAAW,UAAD,OAAK,AAAM,KAAD;AAUW,UAT/B,AAAW,UAAD,iBAAK,uBACT,AAAY,AAAY,uBAAT,YAAY,AAAY,8BAAS,8BAC/B,WAAb,AAAM,KAAD,eAAU,OACX,AAAM,AAAO,KAAR,oBACL,AAAM,AAAO,KAAR,uBACT,AAAM,AAAO,KAAR,oBACR,AAAY,uBAAG,cACZ,kBAAO,AAAM,AAAY,KAAb,gBACmC,CAAxB,aAApB,AAAM,AAAY,KAAb,+BAAiB,AAAM,AAAa,KAAd,oBAAmB,KACjD,AAAM,AAAO,KAAR;AACuB,UAAtC,AAAW,UAAD,OAAK,AAAM,KAAD;AACY,UAAhC,AAAW,UAAD,OAAK,AAAM,KAAD;AACpB,cAAI,AAAY,8BAAS;AAC2B,YAAlD,AAAW,UAAD,OAA6B,cAAvB,AAAM,KAAD;;AAEe,UAAtC,AAAa,2BAAC,UAAU,EAAI,UAAU;;MAE1C;+BAIQ,YAAyC;AACrC,0BAAiC,aAAnB,AAAY,+BAAS;AACV,wBAC/B,AAAW,0BAAoB,aAAnB,AAAY,gCAAU,IAAI,AAAY,WAAD,GAAG,IAAI,WAAW;AACvE,YAAI,AAAY,AACqB,8BADZ,YACjB,AAAY,8BAAS,WACrB,AAAY,uBAAG,WACjB,AAAY,AAAmB,uBAAhB,mBAAmB,AAAY,uBAAG,WAC5C,AAAa,AAAI,AAEU,YAFf,QAAQ,QACnB,AAAa,AAAK,YAAN,SAAS,QACrB,AAAa,AAAK,YAAN,SAAS,QACrB,AAAa,AAAM,YAAP,UAAU,OACvB,AAAa,AAAI,AAAQ,YAAb,QAAQ,QAAQ,AAAa,AAAK,YAAN,SAAS,OACtD,AAAa,AAAE,YAAH,MAAM;AACtB,kBAAQ,AAAmB;;;AAEI,cAA3B,AAAa,YAAD,WAAW;AACvB,kBAAI,AAAY,8BAAS,YACrB,AAAY,8BAAS,WACrB,AAAY,8BAAS;AACF,gBAArB,AAAa,YAAD,QAAQ;AACA,gBAApB,AAAa,YAAD,OAAO;AACnB,oBAAI,AAAY,uBAAG,mBAAmB,AAAY,uBAAG;AAC9B,kBAArB,AAAa,YAAD,QAAQ;AACE,kBAAtB,AAAa,YAAD,SAAS;;;AAGL,gBAAlB,AAAa,YAAD,KAAK;AACnB;;;;AAIqD,cADrD,iCACI,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS;AACzB,cAA3B,AAAa,YAAD,WAAW;AACvB;;;;AAGA,kBAAI,AAAY,uBAAG,aACf,AAAY,uBAAG,YACf,AAAY,uBAAG,SACf,AAAY,uBAAG,YACf,AAAY,uBAAG,gBACf,AAAY,8BAAS,cACrB,AAAY,uBAAG,iBACf,AAAY,8BAAS,WACrB,AAAY,8BAAS,aACrB,AAAY,uBAAG;AAKV,gBAJP,AAAa,YAAD,KAAK,AAAgB,UAAN,KAAI,MACrB,AAAY,8BAAS,qBAClB,AAAY,8BAAS,gBAC5B,AAAU,SAAD,KACT;AACe,gBAArB,AAAa,YAAD,QAAQ;AACE,gBAAtB,AAAa,YAAD,SAAS;AACS,gBAA9B,AAAa,YAAD,aAAa;oBACpB,KAAI,AAAY,8BAAS,WAC5B,AAAY,uBAAG,UACf,AAAY,uBAAG;AACiC,gBAAlD,AAAa,YAAD,KAAK,AAAW,UAAD,KAAI,IAAI,AAAU,SAAD,KAAK;;AAE1B,cAAzB,AAAa,YAAD,SAAS;AACrB;;;;AASO,cAPP,AAAa,YAAD,KAAK,AAAgB,UAAN,KAAI,KACtB,uBAAe,UACZ,uBAAe,gBACf,uBAAe,eACd,AAAY,8BAAS,qBACrB,AAAY,8BAAS,gBAC5B,AAAU,SAAD,KACT;AACoB,cAA1B,AAAa,YAAD,UAAU;AACQ,cAA9B,AAAa,YAAD,aAAa;AACzB;;;;AAEkB,cAAlB,AAAa,YAAD,KAAK;AACjB;;;;MAGR;mCAGQ,YACA,aACyB,cACA;;AACI,wBAAY,yBAC3C,MACY,aAAZ,WAAW,IAAqB,aAAlB,AAAW,4BAAS,IAC5B,AAAW,0BAAQ,AAAU,uBAAa,aAAZ,WAAW,IAAG,MAC5C,AAAW,0BAAQ,AAAU,uBAAC,WAAW;AACnD,YAAI,AAAY,8BAAS,YACrB,AAAY,8BAAS,WACrB,AAAY,8BAAS;AACvB,cAAI,AAAW,UAAD,KAAI;AAChB,gBAAI,AAAa,AAAI,YAAL,QAAQ;AAG6B,cAFnD,AAAW,UAAD,KAAsB,aAAlB,AAAW,4BAAS,IAC5B,AAAa,YAAD,OAAO,IACnB,AAAa,YAAD,OAA8B,YAAN,KAAf,AAAU,SAAD,YAAC,OAAQ,eAAK;;AAEpD,gBAAI,AAAa,AAAK,YAAN,SAAS;AAG8B,cAFrD,AAAW,UAAD,KAAsB,aAAlB,AAAW,4BAAS,IAC5B,AAAa,YAAD,QAAQ,IACpB,AAAa,YAAD,QAAgC,YAAN,MAAhB,AAAU,SAAD,cAAC,OAAS,gBAAK;;AAEtD,gBAAI,AAAY,uBAAG,mBAAmB,AAAY,uBAAG;AACnD,kBAAI,AAAa,AAAK,YAAN,SAAS;AAG8B,gBAFrD,AAAW,UAAD,KAAsB,aAAlB,AAAW,4BAAS,IAC5B,AAAa,YAAD,QAAQ,IACpB,AAAa,YAAD,QAAgC,YAAN,OAAhB,AAAU,SAAD,eAAC,OAAS,iBAAK;;AAEtD,kBAAI,AAAa,AAAM,YAAP,UAAU;AAG+B,gBAFvD,AAAW,UAAD,KAAsB,aAAlB,AAAW,4BAAS,IAC5B,AAAa,YAAD,SAAS,IACrB,AAAa,YAAD,SAAkC,YAAN,OAAjB,AAAU,SAAD,gBAAC,OAAU,iBAAK;;;gBAGrD,KAAI,AAAW,UAAD,KAAsB,aAAlB,AAAW,4BAAS;AAGrB,YAFtB,AAAa,YAAD,OAAO,AAAa,AAAI,YAAL,QAAQ,OACV,YAAN,OAAf,AAAU,SAAD,cAAC,OAAQ,iBAAK,MACzB,AAAa,YAAD;AAGK,YAFvB,AAAa,YAAD,QAAQ,AAAa,AAAK,YAAN,SAAS,OACX,YAAN,OAAhB,AAAU,SAAD,eAAC,OAAS,iBAAK,MAC1B,AAAa,YAAD;AAElB,gBAAI,AAAY,uBAAG,mBAAmB,AAAY,uBAAG;AAG5B,cAFvB,AAAa,YAAD,QAAQ,AAAa,AAAK,YAAN,SAAS,OACX,YAAN,OAAhB,AAAU,SAAD,eAAC,OAAS,iBAAK,MAC1B,AAAa,YAAD;AAGM,cAFxB,AAAa,YAAD,SAAS,AAAa,AAAM,YAAP,UAAU,OACZ,YAAN,OAAjB,AAAU,SAAD,gBAAC,OAAU,iBAAK,MAC3B,AAAa,YAAD;;;AAKE,YAFtB,AAAa,YAAD,OAAO,AAAa,AAAI,YAAL,QAAQ,OACiB,WAA1B,YAAN,OAAf,AAAU,SAAD,cAAC,OAAQ,kBAAsB,OAAf,AAAU,SAAD,cAAC,OAAQ,mBAAM,MACpD,AAAa,YAAD;AAGK,YAFvB,AAAa,YAAD,QAAQ,AAAa,AAAK,YAAN,SAAS,OACiB,WAA3B,YAAN,OAAhB,AAAU,SAAD,eAAC,OAAS,kBAAuB,OAAhB,AAAU,SAAD,eAAC,OAAS,mBAAM,MACtD,AAAa,YAAD;AAElB,gBAAI,AAAY,uBAAG,mBAAmB,AAAY,uBAAG;AAG5B,cAFvB,AAAa,YAAD,QAAQ,AAAa,AAAK,YAAN,SAAS,OACiB,WAA3B,YAAN,QAAhB,AAAU,SAAD,gBAAC,OAAS,mBAAuB,QAAhB,AAAU,SAAD,gBAAC,OAAS,oBAAM,MACtD,AAAa,YAAD;AAGM,cAFxB,AAAa,YAAD,SAAS,AAAa,AAAM,YAAP,UAAU,OACiB,WAA5B,YAAN,QAAjB,AAAU,SAAD,iBAAC,OAAU,mBAAwB,QAAjB,AAAU,SAAD,iBAAC,OAAU,oBAAM,MACxD,AAAa,YAAD;;;;AAItB,cAAI,AAAW,UAAD,KAAI;AAO+B,YAL/C,AAAW,UAAD,KAAsB,aAAlB,AAAW,4BAAS,IAI9B,AAAa,YAAD,KAAK,IACf,AAAa,YAAD,KAA0B,YAAN,QAAb,AAAU,SAAD,aAAC,OAAM,kBAAK;gBACzC,KAAI,AAAW,UAAD,KAAsB,aAAlB,AAAW,4BAAS;AAEF,YAAzC,AAAa,YAAD,KAA0B,YAAN,QAAb,AAAU,SAAD,aAAC,OAAM,kBAAK;;AAE0B,YAAlE,AAAa,YAAD,KAAmD,WAAxB,YAAN,QAAb,AAAU,SAAD,aAAC,OAAM,mBAAoB,QAAb,AAAU,SAAD,aAAC,OAAM,oBAAM;;;MAGvE;;;UArY4B;UACC;UACG;UACrB;UACW;UACX;UACA;UACoB;UACpB;UACsB;UACd;UACU;UACA;UACA;UACT;UACT;UACQ;UACV;UACA;UACc;UACD;UACX;UACM;UACP;UACC;UACW;UACb;UACU;UACR;UACY;UACb;UACI;UACG;MAkDV;MAG4B;MAG9B;MAIA;MA3DmB,0BAAsB;AACxC,wDACe,SAAS,kBACJ,cAAc,aACnB,SAAS,aACT,SAAS,YACV,QAAQ,qBACC,iBAAiB,eACvB,WAAW,cACZ,UAAU,eACT,WAAW,aACb,SAAS,SACb,KAAK,QACN,IAAI,SACH,KAAK,gBACE,QAAK,SAAU,AAAY,YAAA,CAAC,AAAU,UAAA,QAAC,KAAK,GAAG,KAAK,4BACpD,QAAK,SAAU,AAAY,YAAA,CAAC,AAAU,UAAA,QAAC,KAAK,GAAG,KAAK,sCAC5C,AAAqB,oBAAD,IAAI,OACxC,QAAK,SAAU,AAAoB,oBAAA,CAAC,AAAU,UAAA,QAAC,KAAK,GAAG,KAAK,qBAC5D,wBACY,AAAiB,gBAAD,IAAI,OAChC,QAAK,SAAU,AAAgB,gBAAA,CAAC,AAAU,UAAA,QAAC,KAAK,GAAG,KAAK,mBACxD,uBACW,AAAgB,eAAD,IAAI,OAC9B,QAAK,SAAU,AAAe,eAAA,CAAC,AAAU,UAAA,QAAC,KAAK,GAAG,KAAK,oBACvD,uBACW,AAAgB,eAAD,IAAI,OAC9B,QAAK,SAAU,AAAe,eAAA,CAAC,AAAU,UAAA,QAAC,KAAK,GAAG,KAAK,iBACvD,uBACW,AAAgB,eAAD,IAAI,OAC9B,QAAK,SAAU,AAAe,eAAA,CAAC,AAAU,UAAA,QAAC,KAAK,GAAG,KAAK,iBACvD,sBACU,AAAe,cAAD,IAAI,OAC5B,QAAK,SAAU,AAAc,cAAA,CAAC,AAAU,UAAA,QAAC,KAAK,GAAG,KAAK,iBACtD,kBACM,UAAU,sBACF,kBAAkB,qBACnB,iBAAiB,iBACrB,aAAa,qBACT,iBAAiB,qBACjB,iBAAiB,kBACpB,cAAc,gBAChB,YAAY,WACjB,OAAO,YACN,QAAQ,kBACF,cAAc,8BACF,0BAA0B;;IAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MCd9B;;;;;;MACA;;;;;;MACA;;;;;;MACvB;;;;;;MACA;;;;;;MACD;;;;;;MACQ;;;;;;MAsBN;;;;;;MAGT;;;;;;MAEA;;;;;;;;;UArGmB;UACc;UACR;UACA;UACpB;UACA;UACA;UACwB;UACF;UACC;UACf;UACA;UACN;UACA;UACA;UACD;UACC;UACA;UACQ;UACI;UACD;UACb;UACU;UACV;UACE;UACA;UACW;UACR;UACL;UACU;UACR;UACF;UACA;UACA;UACE;UACS;MAgEhB;MAEA;MAjGK;MACA;MACA;MAyBA;MACA;MACA;MAGO,qBAAY,KAAV,SAAS,QAAT,OAAqB,sBAAC,KAAG;MAC7B,kBAAU,MAAR,OAAO,SAAP,OAAW;AACrB,2DACU,IAAI,gBACI,YAAY,kBACV,cAAc,mBACb,eAAe,wBACV,oBAAoB,oBACxB,gBAAgB,mBACjB,eAAe,cACpB,UAAU,aACX,SAAS,aACT,SAAS,SACb,KAAK,UACC,OAAN,KAAK,UAAL,OAAS,6BACA,cAAc,qBACX,iBAAiB,aACzB,SAAS,YACV,QAAQ,sBACE,kBAAkB,iBACvB,aAAa,qBACT,iBAAiB,eACvB,WAAW,qBACL,iBAAiB,8BACR,0BAA0B,kBACtC,cAAc,qBACX,iBAAiB,kBACpB,cAAc,gBAChB,YAAY,WACjB,OAAO,cACJ,UAAU;;IAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IC5D7B;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAIW;;;;;;IAGA;;;;;;IAGV;;;;;;;;AAKS,sBAAY;AACxB,UAAI,cAAS;AAC6D,QAAxE,AAAU,SAAD,UAA2B,oCAAlB,OAAqB,AAAM,uBAAY,AAAO;;AAE/B,MAAnC,AAAU,SAAD,eAAe;AACY,MAApC,AAAU,SAAD,SAAuB;AACH,MAA7B,0BAAoB,SAAS;AAC7B,YAAO,UAAS;IAClB;;;AAKc,wBAAc;AAC1B,UAAI,AAAO,AAAS,wBAAG;AACrB,YAAI,oBAAe;AACmC,UAApD,AAAY,WAAD,UAA2B,oCAAlB,OAAqB;AAId,UAH3B,AAAY,WAAD,SACS,AAAI,aAAnB,AAAO,uBAAU,kBAAK,AAAY,WAAD,QAAiB,8BAC7C,AAAY,AAAM,WAAP,mBAAmB,AAAO,uBACrC,AAAY,WAAD;;;AAGsB,QAA7C,AAAY,WAAD,SAAS,AAAO,AAAS,AAAM,mCAAC;;AAER,MAArC,AAAY,WAAD,eAAe;AACc,MAAxC,AAAY,WAAD,SAAuB;AACK,MAAvC,AAAY,WAAD,aAAuB;AACD,MAAjC,4BAAsB,WAAW;AACjC,YAAO,YAAW;IACpB;;AAK6B,MAA3B,SAAI,YAAO;AACA,iBAAO,4BACd,AAAO,AAAO,AAAW,gDACzB,kBAAO,AAAO,AAAO,iCAAY,AAAO,AAAO;AACnD,UAAI,aAAQ,QAAQ,aAAQ,QAAQ,eAAU;AAES,QADrD,gBAAW,uBAAgB,WAAM,aAAQ,AAAO,sBAAQ,AAAO,sBAC3D,AAAO,AAAO,2CAAsB,aAAQ,IAAI;AAEC,QADrD,iBAAY,uBAAgB,WAAM,cAAS,AAAO,sBAAQ,AAAO,sBAC7D,AAAO,AAAO,2CAAsB,aAAQ,IAAI;AAEtC,QAAd,SAAI,AAAS;AACG,QAAhB,WAAM,AAAS;AACG,QAAlB,YAAO,AAAU;;IAErB;YAIoB;;AAEsC,MADxD,AAAO,AAAkB,AAAmB,4EACxC,AAAO,AAAQ,4BAAC,2BAAsB,AAAO;AACjD,UAA6B,aAAzB,AAAO,iCAAoB,gBAC1B,AAAO,AAAO,AAAY;AAC7B,uBAAK,AAAO,AAAO,AAAY;AAC7B,wBAAI,AAAO,AAAO;AACC,YAAjB,YAAO,AAAS;AACG,YAAnB,aAAQ,AAAU;AACoB,YAAtC,eAAgB,aAAN,cAAwB,CAAT,aAAL,0BAAO,eAAS;AACyB,YAA7D,aAAgB,aAAR,gBAA6B,AAAM,CAAf,aAAR,6BAAU,oCAAe;AACc,YAA3D,YAAe,aAAR,gBAA4B,AAAM,CAAjB,aAAL,0BAAO,sCAAiB;AAE3B,YADhB,AAAO,MAAD,UAAU,kBAAO,WAAM,AAAS,kBAAI,kBAAO,YAAO,AAAU,mBAC9D;;AAE+B,YAAnC,eAAe,aAAL,aAAqB,CAAR,aAAJ,yBAAM,cAAQ;AACqB,YAAtD,aAAgB,aAAR,gBAA4B,CAAR,aAAR,6BAAU,2BAAQ;AACc,YAApD,YAAe,aAAR,gBAA2B,CAAX,aAAJ,yBAAM,8BAAW;AAEpB,YADhB,AAAO,MAAD,UAAU,kBAAO,AAAS,iBAAG,aAAQ,kBAAO,AAAU,kBAAG,YAC3D;;;AAGY,yDAAiB,AAAO,AAAQ,4BAAC;AACjC,qDACwB,AAAe,sBAApD,AAAe,AAAU,AAAQ,cAAnB,2BAAoB,OACc,AAAI,aAA7C,AAAe,AAAU,AAAS,cAApB,gCAA6B,kBACvC,4BACN,AAAe,AAAU,AAAQ,cAAnB,2BAAoB,4BAClC;AASC,UARX,0BACI,AAAO,AAAO,2CACd,eACA,sBACA,UAAU,eAAV,OAAY,qBACZ,UAAU,gBAAV,OAAY,gBACZ,sBACA,kBACA,MAAM;;;AAGZ,YAAI,AAAO,AAAS,6BAAC,OAAM,KAAK,AAAO,AAAS,6BAAC,OAAM;AACxC,UAAb,YAAO;AACsB,UAA7B,AAAK,iBAAO,AAAS,iBAAG;AACK,UAA7B,AAAK,iBAAO,AAAU,kBAAG;AACmC,UAA5D,uBAAgB,MAAM,EAAE,AAAO,uBAAW,kBAAa;;AAGa,UADpE,AAAO,MAAD,UACF,kBAAO,AAAS,iBAAG,YAAO,kBAAO,AAAU,kBAAG,WAAM;;;IAG9D;eAGwB;AACK,MAA3B,YAAO,AAAM,AAAI,MAAJ,QAAC;AACe,MAA7B,cAAS,AAAM,AAAI,MAAJ,QAAC;AACc,MAA9B,eAAU,AAAM,AAAI,MAAJ,QAAC;IACnB;;;IApKI;IAGA;IAGA;IAGA;IAGA;IAGA;IAGA;IAGA;IAGA;IAGA;IAGA;IAGA;IAGA;IAGA;IACE;IAGS;IAGA;IAGV;;;EAoHP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICtKM;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAGC;;;;;;IACwB;;;;;;IACxB;;;;;;IACU;;;;;;IAAgB;;;;;;IAAiB;;;;;;IAAU;;;;;;;;AAK5C,sBAAY;AACxB,UAAI,cAAS;AAC6D,QAAxE,AAAU,SAAD,UAA2B,oCAAlB,OAAqB,AAAM,uBAAY,AAAO;;AAE/B,MAAnC,AAAU,SAAD,eAAe;AACY,MAApC,AAAU,SAAD,SAAuB;AACH,MAA7B,0BAAoB,SAAS;AAC7B,YAAO,UAAS;IAClB;;;AAKc,wBAAc;AAC1B,UAAI,AAAO,AAAS,wBAAG;AACrB,YAAI,oBAAe;AACmC,UAApD,AAAY,WAAD,UAA2B,oCAAlB,OAAqB;AAId,UAH3B,AAAY,WAAD,SACS,AAAI,aAAnB,AAAO,uBAAU,kBAAK,AAAY,WAAD,QAAiB,8BAC7C,AAAY,AAAM,WAAP,mBAAmB,AAAO,uBACrC,AAAY,WAAD;;;AAGsB,QAA7C,AAAY,WAAD,SAAS,AAAO,AAAS,AAAM,mCAAC;;AAER,MAArC,AAAY,WAAD,eAAe;AACc,MAAxC,AAAY,WAAD,SAAuB;AACK,MAAvC,AAAY,WAAD,aAAuB;AACD,MAAjC,4BAAsB,WAAW;AACjC,YAAO,YAAW;IACpB;;AAKsB,2BAChB,gCAAyB,aAAQ,AAAO;AAClC,qBAAgB,aAAL,0CAAO,AAAe,cAAD;AAChC,mBAAc,aAAL,0CAAO,AAAe,cAAD;AAC1B,mBAAS,AAAS,QAAD,GAAwB,CAAnB,AAAO,MAAD,GAAG,QAAQ,IAAI;AAEpC,MAArB,cAAc,aAAL,0BAAO;AACW,MAA3B,SAAI,YAAO;AACA,iBAAO,4BACd,AAAO,AAAO,AAAW,gDACzB,kBAAO,AAAO,AAAO,iCAAY,AAAO,AAAO;AACnD,UAAI,aAAQ,QACR,aAAQ,QACR,eAAU,QACV,aAAQ,QACR,cAAS;AAE0C,QADrD,gBAAW,uBAAgB,QAAQ,EAAE,aAAQ,AAAO,sBAAQ,AAAO,sBAC/D,AAAO,AAAO,2CAAsB,aAAQ,IAAI;AAEC,QADrD,iBAAY,uBAAgB,MAAM,EAAE,cAAS,AAAO,sBAAQ,AAAO,sBAC/D,AAAO,AAAO,2CAAsB,aAAQ,IAAI;AAGgB,QADpE,uBAAkB,uCAAgB,MAAM,GAAE,cAAS,AAAO,sBACtD,AAAO,sBAAQ,AAAO,AAAO,2CAAsB,aAAQ,IAAI;AAGC,QADpE,sBAAiB,uCAAgB,MAAM,GAAE,aAAQ,AAAO,sBACpD,AAAO,sBAAQ,AAAO,AAAO,2CAAsB,aAAQ,IAAI;AAErD,QAAd,SAAI,AAAS;AACG,QAAhB,WAAM,AAAS;AACG,QAAlB,YAAO,AAAU;AACa,QAA9B,kBAAa,AAAgB;AACJ,QAAzB,aAAQ,AAAgB;AACI,QAA5B,iBAAY,AAAe;AACJ,QAAvB,YAAO,AAAe;AACW,QAAjC,aAAQ,AAAc,AAAU;AACC,QAAjC,aAAQ,AAAc,AAAU;AACG,QAAnC,cAAS,AAAc,AAAW;AACC,QAAnC,cAAS,AAAc,AAAW;;IAEtC;YAIoB;;AAEsC,MADxD,AAAO,AAAkB,AAAmB,4EACxC,AAAO,AAAQ,4BAAC,2BAAsB,AAAO;AAEjD,UAAI,oBAAe;AACJ,QAAb,YAAO;AACP,YAA6B,aAAzB,AAAO,iCAAoB,gBAC1B,AAAO,AAAO,AAAY;AAC7B,yBAAK,AAAO,AAAO,AAAY;AAC7B,0BAAI,AAAO,AAAO;AACC,cAAjB,YAAO,AAAS;AACG,cAAnB,aAAQ,AAAU;AACoB,cAAtC,eAAgB,aAAN,cAAwB,CAAT,aAAL,0BAAO,eAAS;AAEyB,cAD7D,aAAgB,aAAR,gBACmC,CAA7B,aAAR,6BAAU,AAAc,AAAU,iDAAK;AAEiB,cAD9D,cAAiB,aAAR,gBACmC,CAAX,aAA3B,AAAc,AAAW,iDAAI,8BAAW;AACe,cAA7D,aAAgB,aAAR,gBAA6B,AAAM,CAAf,aAAR,6BAAU,oCAAe;AACc,cAA3D,YAAe,aAAR,gBAA4B,AAAM,CAAjB,aAAL,0BAAO,sCAAiB;AAEO,cADlD,AAAO,MAAD,UAAU,kBAAO,WAAM,AAAe,wBACxC,kBAAO,YAAO,AAAgB,yBAAI;AAEsB,cAD5D,AAAO,MAAD,UACF,kBAAO,YAAO,aAAQ,kBAAO,YAAO,aAAQ;AAEc,cAD9D,AAAO,MAAD,UACF,kBAAO,aAAQ,YAAO,kBAAO,aAAQ,cAAS;;AAEf,cAAnC,eAAe,aAAL,aAAqB,CAAR,aAAJ,yBAAM,cAAQ;AAE4B,cAD7D,aAAgB,aAAR,gBACmC,CAA7B,aAAR,6BAAU,AAAc,AAAU,iDAAK;AAEiB,cAD9D,cAAiB,aAAR,gBACmC,CAAX,aAA3B,AAAc,AAAW,iDAAI,8BAAW;AACQ,cAAtD,aAAgB,aAAR,gBAA4B,CAAR,aAAR,6BAAU,2BAAQ;AACc,cAApD,YAAe,aAAR,gBAA2B,CAAX,aAAJ,yBAAM,8BAAW;AAEpB,cADhB,AAAO,MAAD,UAAU,kBAAO,iBAAY,aAAQ,kBAAO,gBAAW,YACzD;AAE6D,cADjE,AAAO,MAAD,UACF,kBAAO,YAAO,aAAQ,kBAAO,iBAAY,aAAQ;AAEc,cADnE,AAAO,MAAD,UACF,kBAAO,gBAAW,cAAS,kBAAO,aAAQ,cAAS;;;AAG9B,oEACvB,AAAO,AAAQ,4BAAC;AACO,gEACe,AAAwB,+BAA7D,AAAe,AAAU,AAAQ,cAAnB,2BAAoB,OACc,AAAI,aAA7C,AAAe,AAAU,AAAS,cAApB,gCAA6B,kBACvC,4BACN,AAAe,AAAU,AAAQ,cAAnB,2BAAoB,4BAClC;AA+BC,YA9BX,mCACI,AAAO,AAAO,qDACd,AAAO,AAAO,6CAAuB,AAAS,kBAAI,oBAClD,AAAO,AAAO,6CAAuB,AAAU,mBAAI,qBACnD,AAAO,AAAO,6CACP,AAAW,UAAD,IAAI,OAAO,AAAW,AAAS,UAAV,cAAc,aAC9C,UAAU,eAAV,OAAY,mBAClB,AAAO,AAAO,6CACP,AAAW,UAAD,IAAI,OAAO,AAAW,AAAU,UAAX,eAAe,cAC/C,UAAU,gBAAV,OAAY,WAClB,YACA,YACA,aACA,uBACA,AAAO,AAAO,6CAAuB,AAAe,wBAAI,0BACxD,AAAO,AAAO,6CACR,AAAgB,yBAChB,yBACN,UAAU,iBAAV,OAAY,qBACZ,UAAU,iBAAV,OAAY,qBACZ,UAAU,iBAAV,OAAY,sBACZ,UAAU,iBAAV,OAAY,wBACZ,AAAO,AAAO,6CACP,AAAW,UAAD,IAAI,OAAO,AAAW,AAAe,UAAhB,oBAAoB,eACpD,UAAU,iBAAV,OAAY,2BAClB,AAAO,AAAO,6CACP,AAAW,UAAD,IAAI,OAAO,AAAW,AAAgB,UAAjB,qBAAqB,eACrD,UAAU,iBAAV,OAAY,kBAClB,sBACA,kBACA,MAAM;;;AAGC,UAAb,YAAO;AACuB,UAA9B,AAAK,iBAAO,iBAAY;AACI,UAA5B,AAAK,iBAAO,gBAAW;AACvB,cAAI,AAAO,AAAS,6BAAC,OAAM,KAAK,AAAO,AAAS,6BAAC,OAAM;AAMc,YALnE,uBACI,MAAM,EACN,AAAO,uBACP,kBACA,uBAAkB,WAAM,YAAO,YAAO,aAAQ,aAAQ,YAClD,iBAAY,gBAAW,AAAO,AAAO;;AAK7B,YAHhB,AAAO,MAAD,UACF,uBAAkB,WAAM,YAAO,YAAO,aAAQ,aAAQ,YAClD,iBAAY,gBAAW,AAAO,AAAO,4CACzC;;;;IAIZ;sBAG4B,MAAU,OAAW,OAAW,QACpD,QAAY,OAAW,YAAgB,WAAgB;AACpC,MAAzB,AAAK,IAAD,QAAQ,KAAK,EAAE,KAAK;AAE4C,MADpE,AAAK,IAAD,kBACA,YAAY,IAAG,KAAK,GAAG,UAAU,YAAE,YAAY,IAAG,KAAK,GAAG,KAAK;AAEE,MADrE,AAAK,IAAD,kBACA,YAAY,IAAG,MAAM,GAAG,SAAS,YAAE,YAAY,IAAG,KAAK,GAAG,MAAM;AACzC,MAA3B,AAAK,IAAD,QAAQ,MAAM,EAAE,MAAM;AAC1B,YAAO,KAAI;IACb;eAGwB;AACN,MAAhB,YAAO,AAAM,MAAA,QAAC;AACI,MAAlB,cAAS,AAAM,MAAA,QAAC;AACG,MAAnB,eAAU,AAAM,MAAA,QAAC;AACD,MAAhB,YAAO,AAAM,MAAA,QAAC;AACG,MAAjB,aAAQ,AAAM,MAAA,QAAC;IACjB;;;IAjRI;IAGA;IAGA;IAGA;IAGA;IAGA;IAGA;IAGA;IAGA;IAGA;IAGA;IAGA;IAGA;IAGA;IAGA;IAGA;IAGA;IAGA;IAGA;IAGA;IAGA;IAGA;IAEE;IACD,eAAS;IACe;IACxB;IACU;IAAgB;IAAiB;IAAU;;;EA6M5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IChRM;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAEC;;;;;;IACwB;;;;;;IACtB;;;;;;IACF;;;;;;IACA;;;;;;IACU;;;;;;IACX;;;;;;IACA;;;;;;IACA;;;;;;IACA;;;;;;IACA;;;;;;IACA;;;;;;;;AAKU,sBAAY;AACxB,UAAI,cAAS;AACiC,QAA5C,AAAU,SAAD,UAA2B,oCAAlB,OAAqB;AAId,QAHzB,AAAU,SAAD,SACW,AAAI,aAAnB,AAAO,uBAAU,kBAAK,AAAU,SAAD,QAAiB,8BAC3C,AAAU,AAAM,SAAP,mBAAmB,AAAO,uBACnC,AAAU,SAAD;;AAEc,MAAnC,AAAU,SAAD,eAAe;AACxB,oBAAI;AACkC,QAApC,AAAU,SAAD,SAAuB;;AAEM,QAAtC,AAAU,SAAD,SAAuB;;AAEL,MAA7B,0BAAoB,SAAS;AAC7B,YAAO,UAAS;IAClB;;;AAKc,wBAAc;AAC1B,UAAI,AAAO,AAAS,wBAAG;AACrB,YAAI,oBAAe;AACmC,UAApD,AAAY,WAAD,UAA2B,oCAAlB,OAAqB;AAId,UAH3B,AAAY,WAAD,SACS,AAAI,aAAnB,AAAO,uBAAU,kBAAK,AAAY,WAAD,QAAiB,8BAC7C,AAAY,AAAM,WAAP,mBAAmB,AAAO,uBACrC,AAAY,WAAD;;;AAGsB,QAA7C,AAAY,WAAD,SAAS,AAAO,AAAS,AAAM,mCAAC;;AAER,MAArC,AAAY,WAAD,eAAe;AACc,MAAxC,AAAY,WAAD,SAAuB;AACK,MAAvC,AAAY,WAAD,aAAuB;AACD,MAAjC,4BAAsB,WAAW;AACjC,YAAO,YAAW;IACpB;;AAKsB,2BAChB,gCAAyB,aAAQ,AAAO;AAClC,qBAAgB,aAAL,0CAAO,AAAe,cAAD;AAChC,mBAAc,aAAL,0CAAO,AAAe,cAAD;AAC1B,mBAAS,AAAS,QAAD,GAAwB,CAAnB,AAAO,MAAD,GAAG,QAAQ,IAAI;AACZ,MAAxC,aAAL,0BAAO,cAAQ,cAAS,OAAO,cAAS;AACb,MAA3B,SAAI,YAAO;AACA,iBAAO,4BACd,AAAO,AAAO,AAAW,gDACzB,kBAAO,AAAO,AAAO,iCAAY,AAAO,AAAO;AACnD,UAAI,aAAQ,QAAQ,eAAU;AAEwC,QADpE,yBAAoB,uBAAgB,QAAQ,EAAE,aAAQ,AAAO,sBACzD,AAAO,sBAAQ,AAAO,AAAO,2CAAsB,aAAQ,IAAI;AAGC,QADpE,uBAAkB,uCAAgB,MAAM,GAAE,cAAS,AAAO,sBACtD,AAAO,sBAAQ,AAAO,AAAO,2CAAsB,aAAQ,IAAI;AAGC,QADpE,sBAAiB,uCAAgB,MAAM,GAAE,aAAQ,AAAO,sBACpD,AAAO,sBAAQ,AAAO,AAAO,2CAAsB,aAAQ,IAAI;AAGd,QADrD,iBAAY,uBAAgB,QAAQ,EAAE,WAAM,AAAO,sBAAQ,AAAO,sBAC9D,AAAO,AAAO,2CAAsB,aAAQ,IAAI;AAGC,QADrD,kBAAa,uBAAgB,MAAM,EAAE,YAAO,AAAO,sBAAQ,AAAO,sBAC9D,AAAO,AAAO,2CAAsB,aAAQ,IAAI;AAEC,QADrD,gBAAW,uBAAgB,QAAQ,EAAE,aAAQ,AAAO,sBAAQ,AAAO,sBAC/D,AAAO,AAAO,2CAAsB,aAAQ,IAAI;AAEC,QADrD,iBAAY,uBAAgB,MAAM,EAAE,cAAS,AAAO,sBAAQ,AAAO,sBAC/D,AAAO,AAAO,2CAAsB,aAAQ,IAAI;AAEtC,QAAd,SAAI,AAAS;AACG,QAAhB,WAAM,AAAS;AACG,QAAlB,YAAO,AAAU;AACa,QAA9B,kBAAa,AAAgB;AACJ,QAAzB,aAAQ,AAAgB;AACI,QAA5B,iBAAY,AAAe;AACJ,QAAvB,YAAO,AAAe;AACH,QAAnB,aAAQ,AAAU;AACC,QAAnB,aAAQ,AAAU;AACG,QAArB,cAAS,AAAW;AACC,QAArB,cAAS,AAAW;;IAExB;YAIoB;;AAEsC,MADxD,AAAO,AAAkB,AAAmB,4EACxC,AAAO,AAAQ,4BAAC,2BAAsB,AAAO;AACjD,UAAI,kBAAa,oBACX,AAAO,AAAO,AAAY,iEACvB,AAAO,AAAO,AAAY;AACpB,QAAb,YAAO;AACP,uBAAK,AAAO,AAAO,8CAA6B,aAAL,0BAAO;AACtC,qBAAO;AACH,UAAd,cAAS;AACG,UAAZ,aAAQ,IAAI;;AAEd,sBAAI,AAAO,AAAO,AAAY;AACT,UAAnB,uBAAkB;;AAEhB,uBAAkB,aAAP,eAA2B,AAAM,CAAf,aAAP,4BAAS,uBAAe;AAC9C,uBAAW,AAAS,QAAD,GAAwB,AAAM,CAAzB,AAAS,QAAD,gBAAG,qCAAgB;AACnD,uBAAW,AAAS,QAAD,GAAuB,AAAM,CAAxB,AAAS,QAAD,gBAAG,oCAAe;AAClD,0BAAc,AAAS,QAAD,GAAuB,AAAM,CAAxB,AAAS,QAAD,gBAAG,oCAAe;AACrD,0BACA,AAAY,WAAD,GAAyB,AAAM,CAA1B,AAAY,WAAD,gBAAG,mCAAc;AAEhD,YAAS,aAAL,0BAAO;AAC2D,UAApE,cAAc,AAAY,WAAD,GAAmB,AAAM,CAAd,aAAN,2BAAQ,mCAAc;;AAEtD,YAAU,aAAN,2BAAQ;AACsD,UAAhE,WAAW,AAAS,QAAD,GAAqB,AAAM,CAAf,aAAP,4BAAS,oCAAe;;AAElD,sBAAI,AAAO,AAAO;AAChB,cAAS,aAAL,0BAAO;AACuC,YAAhD,WAAkB,aAAP,eAA2B,AAAM,CAAhB,aAAN,2BAAQ,wBAAgB;AACoB,YAAlE,WAAW,AAAS,QAAD,GAAuB,AAAM,CAAxB,AAAS,QAAD,gBAAG,oCAAe;AAEU,YAD5D,cACI,AAAS,QAAD,GAAwB,AAAM,CAAzB,AAAS,QAAD,gBAAG,qCAAgB;;AAEC,YAA7C,WAAiB,aAAN,cAAyB,AAAM,CAAf,aAAP,4BAAS,uBAAe;AACuB,YAAnE,WAAW,AAAS,QAAD,GAAwB,AAAM,CAAzB,AAAS,QAAD,gBAAG,qCAAgB;AACkB,YAArE,cAAc,AAAS,QAAD,GAAuB,AAAM,CAAxB,AAAS,QAAD,gBAAG,oCAAe;;;AAGzD,sBAAI,AAAO,AAAO;AACY,UAA5B,AAAK,iBAAO,QAAQ,EAAE;AACtB,cAAe,aAAX,gCAAa;AAGL,YAFV,AAAK,iBACD,AAAS,QAAD,GAA0B,AAAM,CAApB,aAAP,4BAAS,yCAAoB,uBAC1C;;AAIM,YAFV,AAAK,iBACD,AAAS,QAAD,GAA0B,AAAM,CAApB,aAAP,4BAAS,yCAAoB,uBAC1C;AACyB,UAA/B,AAAK,iBAAO,WAAW,EAAE;AACzB,cAAc,aAAV,+BAAY;AAGJ,YAFV,AAAK,iBACD,AAAY,WAAD,GAAwB,AAAM,CAAnB,aAAN,2BAAQ,wCAAmB,uBAC3C;;AAIM,YAFV,AAAK,iBACD,AAAY,WAAD,GAAwB,AAAM,CAAnB,aAAN,2BAAQ,wCAAmB,uBAC3C;AACuB,UAA7B,AAAK,iBAAO,QAAQ,EAAE;AACM,UAA5B,AAAK,iBAAO,QAAQ,EAAE;AACS,UAA/B,AAAK,iBAAO,WAAW,EAAE;AACO,UAAhC,AAAK,iBAAO,WAAW,EAAE;AACI,UAA7B,AAAK,iBAAO,QAAQ,EAAE;AACV,UAAZ,AAAK;;AAEL,cAAS,aAAL,0BAAO;AACC,uBAAO;AACH,YAAd,cAAS;AACG,YAAZ,aAAQ,IAAI;;AAEmB,UAAjC,AAAK,iBAAO,iBAAY,QAAQ;AACC,UAAjC,AAAK,iBAAO,iBAAY,QAAQ;AACG,UAAnC,AAAK,iBAAO,gBAAW,WAAW;AACC,UAAnC,AAAK,iBAAO,gBAAW,WAAW;AACN,UAA5B,AAAK,iBAAO,YAAO,QAAQ;AACE,UAA7B,AAAK,iBAAO,aAAQ,QAAQ;AACI,UAAhC,AAAK,iBAAO,aAAQ,WAAW;AACA,UAA/B,AAAK,iBAAO,YAAO,WAAW;AACF,UAA5B,AAAK,iBAAO,YAAO,QAAQ;AACf,UAAZ,AAAK;;AAEP,YAAI,AAAO,AAAS,6BAAC,OAAM,KACvB,AAAO,AAAS,6BAAC,OAAM,kBACvB,AAAU,sBAAuB,0BACR,aAAzB,AAAO,kCAAqB;AAC4B,UAA1D,uBAAgB,MAAM,EAAE,AAAO,uBAAW,gBAAW;;AAErB,UAAhC,AAAO,MAAD,UAAU,WAAM;AACtB,cAAoB,YAAhB,AAAU,sBAAuB;AACnC,0BAAI,AAAO,AAAO;AAChB,kBAAS,aAAL,0BAAO;AAMK,gBALd,AAAO,MAAD,UACF,kBAAO,QAAQ,EAAE,aACjB,kBACI,AAAS,QAAD,GAAyB,AAAM,CAApB,aAAN,2BAAQ,yCAAoB,uBACzC,aACJ;AAOU,gBANd,AAAO,MAAD,UACF,kBAAO,WAAW,EAAE,aACpB,kBACI,AAAY,WAAD,GACe,AAAM,CAAnB,aAAP,4BAAS,wCAAmB,uBAClC,aACJ;;AAQU,gBANd,AAAO,MAAD,UACF,kBAAO,QAAQ,EAAE,aACjB,kBACI,AAAS,QAAD,GACmB,AAAM,CAApB,aAAP,4BAAS,yCAAoB,uBACnC,aACJ;AAOU,gBANd,AAAO,MAAD,UACF,kBAAO,WAAW,EAAE,aACpB,kBACI,AAAY,WAAD,GACc,AAAM,CAAnB,aAAN,2BAAQ,wCAAmB,uBACjC,aACJ;;;AAIsC,cAD5C,AAAO,MAAD,UAAU,kBAAO,iBAAY,QAAQ,GACvC,kBAAO,iBAAY,QAAQ,GAAG;AAEa,cAD/C,AAAO,MAAD,UAAU,kBAAO,iBAAY,WAAW,GAC1C,kBAAO,iBAAY,WAAW,GAAG;;;;YAItC,gBAAK,AAAO,AAAO,AAAY;AAChB,yDAAiB,AAAO,AAAQ,4BAAC;AACjC,qDAE8C,UAD7D,AAAe,AAAU,AAAS,cAApB,qCAC8B,wBAArC,AAAe,AAAU,AAAQ,cAAnB,2BAAoB,OACO,AAAI,aAA7C,AAAe,AAAU,AAAS,cAApB,gCAA6B,kBACvC,4BACN,AAAe,AAAU,AAAQ,cAAnB,2BAAoB,4BAClC;AAuBC,QAtBX,4BACI,AAAO,AAAO,2CACd,WACA,YACA,WACA,kBACA,UAAU,eAAV,OAAY,iBACZ,UAAU,gBAAV,OAAY,YACZ,YACA,YACA,aACA,aACA,gBACA,yBACA,UAAU,iBAAV,OAAY,qBACZ,UAAU,iBAAV,OAAY,qBACZ,UAAU,iBAAV,OAAY,sBACZ,UAAU,iBAAV,OAAY,sBACZ,UAAU,iBAAV,OAAY,yBACZ,UAAU,iBAAV,OAAY,kBACZ,sBACA,gBACA,MAAM;;IAEd;eAGwB;AACN,MAAhB,YAAO,AAAM,MAAA,QAAC;AACI,MAAlB,cAAS,AAAM,MAAA,QAAC;AACG,MAAnB,eAAU,AAAM,MAAA,QAAC;AACD,MAAhB,YAAO,AAAM,MAAA,QAAC;AACG,MAAjB,aAAQ,AAAM,MAAA,QAAC;IACjB;;;IA5UI;IAGA;IAGA;IAGA;IAGA;IAGA;IAGA;IAGA;IAGA;IAGA;IAGA;IAGA;IAGA;IAGA;IAGA;IAGA;IAGA;IAGA;IAGA;IACE;IACD,gBAAS;IACe;IACtB,cAAQ;IACV,gBAAU;IACV;IACU;IACX;IACA;IACA;IACA;IACA;IACA;;;EA0QN;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IC3UM;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;;;AAMU,sBAAY;AACxB,UAAI,cAAS;AAC6D,QAAxE,AAAU,SAAD,UAA2B,oCAAlB,OAAqB,AAAM,uBAAY,AAAO;;AAE/B,MAAnC,AAAU,SAAD,eAAe;AACY,MAApC,AAAU,SAAD,SAAuB;AACH,MAA7B,0BAAoB,SAAS;AAC7B,YAAO,UAAS;IAClB;;;AAKc,wBAAc;AAC1B,UAAI,AAAO,AAAS,wBAAG;AACrB,YAAI,oBAAe;AACmC,UAApD,AAAY,WAAD,UAA2B,oCAAlB,OAAqB;AAId,UAH3B,AAAY,WAAD,SACS,AAAI,aAAnB,AAAO,uBAAU,kBAAK,AAAY,WAAD,QAAiB,8BAC7C,AAAY,AAAM,WAAP,mBAAmB,AAAO,uBACrC,AAAY,WAAD;;;AAGsB,QAA7C,AAAY,WAAD,SAAS,AAAO,AAAS,AAAM,mCAAC;;AAER,MAArC,AAAY,WAAD,eAAe;AACc,MAAxC,AAAY,WAAD,SAAuB;AACK,MAAvC,AAAY,WAAD,aAAuB;AACD,MAAjC,4BAAsB,WAAW;AACjC,YAAO,YAAW;IACpB;;AAKkB,mBAAS,AAAO;AAChB,mBAAS,AAAO;AACrB,yBAAe,4BACtB,AAAM,AAAW,uCACjB,kBAAO,AAAO,AAAO,iCAAY,AAAO,AAAO;AAC9B,iCAAuB,uCACxC,AAAc,6CACd,AAAc,6BACd,MAAM,EACN,MAAM,EACN,AAAM,kCACN,aACA,YAAY;AACW,MAA3B,UAAK,AAAqB,oBAAD;AACE,MAA3B,UAAK,AAAqB,oBAAD;AACJ,8BAAoB,uCACrC,AAAW,0CACX,AAAW,0BACX,MAAM,EACN,MAAM,EACN,AAAM,kCACN,aACA,YAAY;AACQ,MAAxB,UAAK,AAAkB,iBAAD;AACE,MAAxB,UAAK,AAAkB,iBAAD;IACxB;YAIoB;;AACP,iBAAO,4BACd,AAAO,AAAO,AAAW,gDACzB,kBAAO,AAAO,AAAO,iCAAY,AAAO,AAAO;AAEK,MADxD,AAAO,AAAkB,AAAmB,4EACxC,AAAO,AAAQ,4BAAC,2BAAsB,AAAO;AACjD,UAA6B,aAAzB,AAAO,iCAAoB,KAC3B,kBAAa,kBACb,AAAU,AAAS,yCACG,sBAAtB,AAAU,AAAQ,+BAAC,OAC+B,AAAI,aAAtD,AAAO,AAAO,AAAY,AAAiB,8DAAS,kBAChD,AAAO,AAAQ,AAAsB,4BAArB,sDACpB,AAAO,AAAQ,AAAsB,AAAU,AAAS,4BAAxC;AACA,uDAAiB,AAAO,AAAQ,4BAAC;AACjC,mDAC4B,AAAI,aAA7C,AAAe,AAAU,AAAS,cAApB,gCAA6B,kBAAK,4BAC3C,AAAe,AAAU,AAAQ,cAAnB,2BAAoB,4BAClC;AACN;AAAO;AAAO;AAAO;AACH,QAAtB,cAAQ,UAAU,eAAV,OAAY;AACE,QAAtB,eAAQ,UAAU,gBAAV,OAAY;AACE,QAAtB,gBAAQ,UAAU,iBAAV,OAAY;AACE,QAAtB,gBAAQ,UAAU,iBAAV,OAAY;AAEpB,YAAI,UAAU,IAAI,SACb,AAAM,KAAD,YAAU,AAAM,KAAD,aACrB,AAAO,AAAO,AAAY,4CAAW;AAC7B;AAAU;AACf;AACU;AAAO;AAE2C,UADjE,WACI,mBAAY,AAAO,sBAAQ,AAAO,AAAO,AAAY;AAEQ,UADjE,WACI,mBAAY,AAAO,sBAAQ,AAAO,AAAO,AAAY;AACzD,cAAI,QAAQ,IAAI,QAAQ,QAAQ,IAAI;AAQS,YAP3C,cAK4C,aAL9B,AAAS,AAAc,QAAf,yBACd,AAAO,AAAO,AAAc,6DAChC,AAAS,AAAc,QAAf,yBACJ,AAAO,AAAO,AAAc,6DAChC,AAAS,AAAc,QAAf,yBACJ,AAAO,AAAO,AAAc,6DAChC,AAAS,AAAc,QAAf,yBACJ,AAAO,AAAO,AAAc;;AAEtC,wBAAI,WAAW;AAQJ,YAPT,QAAQ,uCACJ,AAAc,6CACd,AAAc,6BACd,QAAQ,EACR,QAAQ,EACR,AAAO,AAAO,2CACd,aACA,IAAI;AAQC,YAPT,SAAS,uCACL,AAAW,0CACX,AAAW,0BACX,QAAQ,EACR,QAAQ,EACR,AAAO,AAAO,2CACd,aACA,IAAI;AACO,YAAf,QAAQ,AAAM,KAAD;AACG,YAAhB,QAAQ,AAAO,MAAD;AACC,YAAf,QAAQ,AAAM,KAAD;AACG,YAAhB,QAAQ,AAAO,MAAD;;;AAgBjB,QAbD,8BACE,MAAM,EACN,aACA,kBACA,sBACA,AAAe,cAAD,KACd,AAAe,cAAD,KACd,AAAe,cAAD,KACd,AAAe,cAAD,KACd,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK;;AAGI,mBAAO;AACC,QAAnB,AAAK,IAAD,QAAQ,SAAI;AACG,QAAnB,AAAK,IAAD,QAAQ,SAAI;AAC4C,QAA5D,uBAAgB,MAAM,EAAE,AAAO,uBAAW,kBAAa,IAAI;;IAE/D;;;IAtKI;IAGA;IAGA;IAGA;IACE;;;EA6JR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IC1KM;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IASA;;;;;;IAGA;;;;;;;;AAOU,sBAAY;AACxB,UAAI,cAAS;AAC6D,QAAxE,AAAU,SAAD,UAA2B,oCAAlB,OAAqB,AAAM,uBAAY,AAAO;;AAE/B,MAAnC,AAAU,SAAD,eAAe;AACY,MAApC,AAAU,SAAD,SAAuB;AACH,MAA7B,0BAAoB,SAAS;AAC7B,YAAO,UAAS;IAClB;;;AAKc,wBAAc;AAC1B,UAAI,AAAO,AAAS,wBAAG;AACrB,YAAI,oBAAe;AACmC,UAApD,AAAY,WAAD,UAA2B,oCAAlB,OAAqB;AAId,UAH3B,AAAY,WAAD,SACS,AAAI,aAAnB,AAAO,uBAAU,kBAAK,AAAY,WAAD,QAAiB,8BAC7C,AAAY,AAAM,WAAP,mBAAmB,AAAO,uBACrC,AAAY,WAAD;;;AAGsB,QAA7C,AAAY,WAAD,SAAS,AAAO,AAAS,AAAM,mCAAC;;AAER,MAArC,AAAY,WAAD,eAAe;AACc,MAAxC,AAAY,WAAD,SAAuB;AACK,MAAvC,AAAY,WAAD,aAAuB;AACD,MAAjC,4BAAsB,WAAW;AACjC,YAAO,YAAW;IACpB;;AAKgB,kBAAQ,AAAO,AAAO,AAAc;AACpC,gBAAM,AAAO,AAAO,AAAc;AAClB,MAA9B,UAAK,UAAK,UAAK;AACJ,iBAAO,4BACd,AAAO,AAAO,AAAW,gDACzB,kBAAO,AAAO,AAAO,iCAAY,AAAO,AAAO;AACnD,UAAK,gBAAU,QACP,gBAAU,QACV,gBAAU,QACV,gBAAU,QACV,gCAA0B,QAC1B,6BAAuB,SAClB,aAAP,8CAAU,KAAK,MAAW,aAAP,8CAAU,GAAG,MACtB,aAAP,8CAAU,KAAK,MAAW,aAAP,8CAAU,GAAG,iBAC1B,WAAN,KAAK,SAAI,8BAAgB,WAAN,KAAK,SAAI;AACd,gCAAoB,uBACrC,cACA,cACA,AAAO,sBACP,AAAO,sBACP,AAAO,AAAO,2CACd,aACA,IAAI;AACa,wBAAY,uBAC7B,cACA,cACA,AAAO,sBACP,AAAO,sBACP,AAAO,AAAO,2CACd,aACA,IAAI;AAEa,sCAA0B,uBAC3C,cACA,8BACA,AAAO,sBACP,AAAO,sBACP,AAAO,AAAO,2CACd,aACA,IAAI;AAEa,mCAAuB,uBACxC,cACA,2BACA,AAAO,sBACP,AAAO,sBACP,AAAO,AAAO,2CACd,aACA,IAAI;AAEgB,QAAxB,UAAK,AAAkB,iBAAD;AACE,QAAxB,UAAK,AAAkB,iBAAD;AACN,QAAhB,UAAK,AAAU,SAAD;AACE,QAAhB,UAAK,AAAU,SAAD;AACqC,QAAnD,+BAA0B,AAAwB,uBAAD;AACJ,QAA7C,4BAAuB,AAAqB,oBAAD;;IAE/C;YAIoB;AAEsC,MADxD,AAAO,AAAkB,AAAmB,4EACxC,AAAO,AAAQ,4BAAC,2BAAsB,AAAO;AACI,MAArD,iEAAyB,cAAQ,MAAM,EAAE;IAC3C;eAGwB;AACJ,MAAlB,eAAS,AAAM,MAAA,QAAC;AACE,MAAlB,eAAS,AAAM,MAAA,QAAC;AACE,MAAlB,eAAS,AAAM,MAAA,QAAC;AACE,MAAlB,eAAS,AAAM,MAAA,QAAC;AACkB,MAAlC,+BAAyB,AAAM,MAAA,QAAC;AACD,MAA/B,4BAAsB,AAAM,MAAA,QAAC;IAC/B;;;IA1II;IAGA;IAGA;IAGA;IACA;IACA;IACA;IACA;IACA;IACA;IAGA;IAGA;IAEE;;;EAoHR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICrIiC;;;;;;;AAKV,MAAnB,iBAAY;AACZ,UAAI,AAAO,AAAS,wBAAG;AACrB,YAAI,cAAS;AACY,UAAvB,AAAU,uBAAQ;AACkB,UAApC,AAAU,uBAAsB;;;AAMnB,QAHf,iBAAa,AAAU,oBAAG,OACpB,+BACE,AAAO,sBAAU,kBAAW,AAAO,AAAO,6CAC5C;;AAER,UAAI,AAAU,wBAAS,MACrB,AAAU,AAGe,uBAFL,AAAI,aAAnB,AAAO,uBAAU,kBAAK,AAAU,sBAAgB,8BAC3C,AAAU,AAAM,iCAAY,AAAO,uBACnC,AAAU;AACO,MAA7B,0BAAoB;AACpB,YAAO;IACT;;;AAKc,wBAAc;AAC1B,UAAI,oBAAe;AAImB,aAHpC,WAAW;QACP,WAAQ,AAAO;QACf,WAAsB;QACtB,iBAAc,AAAO;;AAGF,QAFvB,AAAO,AAAY,4BAAG,IAChB,AAAY,WAAD,SAAgB,6BAC3B,AAAY,WAAD;;AAEoB,MAAvC,AAAY,WAAD,aAAuB;AACD,MAAjC,4BAAsB,WAAW;AACjC,YAAO,YAAW;IACpB;;IAI+B;YAIX;AACP,iBAAO,AAAO,AAAO,AAAW;AACd;AACd;AAAiB;AAChB,kBAAQ,AAAO;AACf,kBAAQ,AAAO;AACF;AACf,MAAd,eAAQ;AACY,MAApB,oBAAc;AACd,eAAS,aAAa,GAClB,AAAW,UAAD,gBAAG,AAAO,AAAY,qCAChC,aAAA,AAAU,UAAA;AAC0B,QAAtC,QAAQ,AAAO,AAAW,iCAAC,UAAU;AACrC,sBAAI,AAAM,KAAD,0BAAe,AAAM,KAAD;AAE0B,UADrD,kBAAkB,uCAAgB,AAAM,KAAD,0BAAS,AAAM,KAAD,OAAM,KAAK,EAAE,KAAK,EACnE,AAAO,AAAO,2CAAsB,aAAQ,IAAI;AAEQ,UAD5D,mBAAmB,uCAAgB,AAAM,KAAD,0BAAS,AAAM,KAAD,QAAO,KAAK,EAC9D,KAAK,EAAE,AAAO,AAAO,2CAAsB,aAAQ,IAAI;AAE3D,cAAI,AAAU,SAAD,IAAI,QAC4B,YAAzC,AAAO,AAAW,AAAiB,iCAAhB,AAAW,UAAD,GAAG,UAAY,SACN,YAArC,AAAO,AAAW,AAAa,iCAAZ,UAAU,SAAW,SACK,YAA7C,AAAO,AAAW,AAAiB,iCAAhB,AAAW,UAAD,GAAG,cAAgB,UACd,YAA/B,AAAO,AAAmB,qCAAuB;AACL,YAAlD,AAAM,oBAAO,AAAgB,eAAD,IAAI,AAAgB,eAAD;AACK,YAApD,AAAM,oBAAO,AAAiB,gBAAD,IAAI,AAAiB,gBAAD;AACS,YAA1D,AAAY,yBAAO,AAAiB,gBAAD,IAAI,AAAiB,gBAAD;gBAClD,KAAI,AAAW,UAAD,KAA8B,aAA1B,AAAO,AAAY,sCAAS,KACR,YAAzC,AAAO,AAAW,AAAiB,iCAAhB,AAAW,UAAD,GAAG,UAAY;AACM,YAApD,AAAM,oBAAO,AAAiB,gBAAD,IAAI,AAAiB,gBAAD;AACC,YAAlD,AAAM,oBAAO,AAAgB,eAAD,IAAI,AAAgB,eAAD;AACW,YAA1D,AAAY,yBAAO,AAAiB,gBAAD,IAAI,AAAiB,gBAAD;AACC,YAAxD,AAAY,yBAAO,AAAgB,eAAD,IAAI,AAAgB,eAAD;;AAEK,YAA1D,AAAY,yBAAO,AAAiB,gBAAD,IAAI,AAAiB,gBAAD;AACH,YAApD,AAAM,oBAAO,AAAiB,gBAAD,IAAI,AAAiB,gBAAD;;AAElC,UAAjB,YAAY,KAAK;;;AAGrB,eAAS,aAAuC,aAA1B,AAAO,AAAY,sCAAS,GAC9C,AAAW,UAAD,IAAI,GACd,aAAA,AAAU,UAAA;AAC0B,QAAtC,QAAQ,AAAO,AAAW,iCAAC,UAAU;AACrC,sBAAI,AAAM,KAAD,0BAAe,AAAM,KAAD;AAE0B,UADrD,kBAAkB,uCAAgB,AAAM,KAAD,0BAAS,AAAM,KAAD,OAAM,KAAK,EAAE,KAAK,EACnE,AAAO,AAAO,2CAAsB,aAAQ,IAAI;AAEQ,UAD5D,mBAAmB,uCAAgB,AAAM,KAAD,0BAAS,AAAM,KAAD,QAAO,KAAK,EAC9D,KAAK,EAAE,AAAO,AAAO,2CAAsB,aAAQ,IAAI;AAE3D,cAA6C,YAAzC,AAAO,AAAW,AAAiB,iCAAhB,AAAW,UAAD,GAAG,UAAY;AACU,YAAxD,AAAY,yBAAO,AAAgB,eAAD,IAAI,AAAgB,eAAD;AACH,YAAlD,AAAM,oBAAO,AAAgB,eAAD,IAAI,AAAgB,eAAD;gBAC1C,kBAAI,AAAO,AAAW,AAAa,iCAAZ,UAAU,SAAW;AACjD,gBAAI,AAAW,AAAI,UAAL,GAAG,MAA+B,aAA1B,AAAO,AAAY,sCAAS,eAC9C,AAAO,AAAW,AAAiB,iCAAhB,AAAW,UAAD,GAAG;AACsB,cAAxD,AAAY,yBAAO,AAAgB,eAAD,IAAI,AAAgB,eAAD;;AAEG,cAAxD,AAAY,yBAAO,AAAgB,eAAD,IAAI,AAAgB,eAAD;;AAEL,YAAlD,AAAM,oBAAO,AAAgB,eAAD,IAAI,AAAgB,eAAD;;AAGhC,UAAjB,YAAY,KAAK;;;AAGQ,MAA7B,mBAAY,AAAM;AAE8C,MADhE,AAAO,AAAkB,AACpB,4EAAyB,AAAO,AAAQ,4BAAC,IAAI,AAAO;AAES,MADlE,AAAO,MAAD,UACF,cAAQ,AAAO,AAAS,wBAAG,OAAQ,iBAAY;AAEnD,uBAAI,AAAY,wBAAgB;AACU,oDAAU;AAO5B,QANtB,uBACI,MAAM,EACN,AAAO,uBACP,kBACuB,YAAvB,AAAQ,OAAD,iBAAuC,kCACxC,eACA;;IAEd;;;IA3IK;IAGA;IACA;IAG0B;;;EAqIjC;;;;;;;;;;;;;;;;;;;;;;;;IC3IM;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAKA;;;;;;IAGA;;;;;;;;AAWU,sBAAY;AACxB,UAAI,cAAS;AAC6D,QAAxE,AAAU,SAAD,UAA2B,oCAAlB,OAAqB,AAAM,uBAAY,AAAO;;AAE/B,MAAnC,AAAU,SAAD,eAAe;AACY,MAApC,AAAU,SAAD,SAAuB;AACH,MAA7B,0BAAoB,SAAS;AAC7B,YAAO,UAAS;IAClB;;;AAKc,wBAAc;AAC1B,UAAI,AAAO,AAAS,wBAAG;AACrB,YAAI,oBAAe;AACmC,UAApD,AAAY,WAAD,UAA2B,oCAAlB,OAAqB;AAId,UAH3B,AAAY,WAAD,SACS,AAAI,aAAnB,AAAO,uBAAU,kBAAK,AAAY,WAAD,QAAiB,8BAC7C,AAAY,AAAM,WAAP,mBAAmB,AAAO,uBACrC,AAAY,WAAD;;;AAGsB,QAA7C,AAAY,WAAD,SAAS,AAAO,AAAS,AAAM,mCAAC;;AAER,MAArC,AAAY,WAAD,eAAe;AACc,MAAxC,AAAY,WAAD,SAAuB;AACK,MAAvC,AAAY,WAAD,aAAuB;AACD,MAAjC,4BAAsB,WAAW;AACjC,YAAO,YAAW;IACpB;;AAKgB,kBAAQ,AAAO,AAAO,AAAc;AACpC,gBAAM,AAAO,AAAO,AAAc;AAClB,MAA9B,UAAK,UAAK,UAAK;AACJ,iBAAO,4BACd,AAAO,AAAO,AAAW,gDACzB,kBAAO,AAAO,AAAO,iCAAY,AAAO,AAAO;AACnD,UAAK,gBAAU,QACP,gBAAU,QACV,gBAAU,QACV,gBAAU,QACV,gCAA0B,QAC1B,6BAAuB,SAClB,aAAP,8CAAU,KAAK,MAAW,aAAP,8CAAU,GAAG,MACtB,aAAP,8CAAU,KAAK,MAAW,aAAP,8CAAU,GAAG,iBAC1B,WAAN,KAAK,SAAI,8BAAgB,WAAN,KAAK,SAAI;AACd,gCAAoB,uBACrC,cACA,cACA,AAAO,sBACP,AAAO,sBACP,AAAO,AAAO,2CACd,aACA,IAAI;AACa,wBAAY,uBAC7B,cACA,cACA,AAAO,sBACP,AAAO,sBACP,AAAO,AAAO,2CACd,aACA,IAAI;AAEa,sCAA0B,uBAC3C,cACA,8BACA,AAAO,sBACP,AAAO,sBACP,AAAO,AAAO,2CACd,aACA,IAAI;AAEa,mCAAuB,uBACxC,cACA,2BACA,AAAO,sBACP,AAAO,sBACP,AAAO,AAAO,2CACd,aACA,IAAI;AAEgB,QAAxB,UAAK,AAAkB,iBAAD;AACE,QAAxB,UAAK,AAAkB,iBAAD;AACN,QAAhB,UAAK,AAAU,SAAD;AACE,QAAhB,UAAK,AAAU,SAAD;AACqC,QAAnD,+BAA0B,AAAwB,uBAAD;AACJ,QAA7C,4BAAuB,AAAqB,oBAAD;;IAE/C;YAIoB;AACmC,MAArD,iEAAyB,cAAQ,MAAM,EAAE;IAC3C;eAGwB;AACJ,MAAlB,eAAS,AAAM,MAAA,QAAC;AACE,MAAlB,eAAS,AAAM,MAAA,QAAC;AACE,MAAlB,eAAS,AAAM,MAAA,QAAC;AACE,MAAlB,eAAS,AAAM,MAAA,QAAC;AACkB,MAAlC,+BAAyB,AAAM,MAAA,QAAC;AACD,MAA/B,4BAAsB,AAAM,MAAA,QAAC;IAC/B;;;IAxII;IAGA;IAGA;IAGA;IACA;IACA;IAGA;IAGA;IACA;IACA;IACA;IACA;IAEE;;;EAkHR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICzIM;;;;;;IAGI;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAGH;;;;;;IAGD;;;;;;IAGA;;;;;;IAGyB;;;;;;;;AAOhB,0BAAgB,AAAO,AAAiB,gCAAG,OAAO,OAAO;AAGpE,UAAI,AAAO,AAAS,wBAAG;AACrB,YAAI,cAAS;AAOmB,UAN9B,uBAAY,gBACR,WAA8B,YAAtB,AAAc,6BAAW,QAC7B,AAAO,AAAmB,uCACxB,AAAc,aAAD,IAAI,AAAc,wCAAoB,OACjD,AAAc,uCACd,YACR,WAAsB;;;AAIW,QADvC,iBAAY,+BAAwB,AAAO,sBAAU,AAAc,4BAC/D,AAAO,AAAO;;AAEpB,UAAI,AAAU,wBAAS,MACrB,AAAU,AAGe,uBAFL,AAAI,aAAnB,AAAO,uBAAU,kBAAK,AAAU,sBAAgB,8BAC3C,AAAU,AAAM,iCAAY,AAAO,uBACnC,AAAU;AACO,MAA7B,0BAAoB;AACpB,YAAO;IACT;;;AAKE,UAAI,oBAAe;AAQE,QAPnB,yBAAc,gBACV,WAA8B,YAAtB,AAAc,6BAAW,QAC7B,AAAO,AAAmB,6CAC1B,kBACJ,WAAsB,yBACtB,iBAAoC,YAAtB,AAAc,6BAAW,QACnC,AAAO,AAAmB,6CAC1B;AACyB,QAAjC,4BAAsB;;AAID,MAFvB,AAAO,AAAY,4BAAG,IAChB,AAAY,yBAAe,6BAC3B,AAAY;AAClB,YAAO;IACT;;;AAI4C,oDAAU;AACpD,UAAI,cAAS;AAGmB,QAF9B,gCAAoB,gBAChB,WAAQ,AAAQ,OAAD,aACf,WAAsB;;AAE5B,YAAO;IACT;;;AAI4C,oDAAU;AAIpB,MAHhC,kCAAsB,gBAClB,WAAQ,AAAQ,OAAD,mBACf,iBAAc,AAAQ,OAAD,mBACrB,WAAsB;AAGK,MAF/B,AAAQ,AAAiB,OAAlB,sBAAqB,IACtB,AAAoB,kCAAe,6BACnC,AAAoB;AAC1B,YAAO;IACT;;AAK4C,oDAAU;AAChB,MAApC,sBAAgB,AAAQ,OAAD;AACvB,UAAI,AAAc,8BAAU;AAOzB,QAND,mBAAoB,gCAClB,AAAc,yCACF,AAAc,6CACb,AAAc,0CAClB,AAAc,uCACb,AAAc;AAG1B,sBAAI,AAAQ,OAAD;AAOR,UAND,mBAAmB,gCACjB,AAAc,oDACF,AAAc,6CACb,AAAc,0CAClB,AAAc,uCACb,AAAc;;;AAIyB,MAAvD,YAAO,qBAAc,qBAAe,AAAO;IAC7C;YAIoB;AACwB,oDAAU;AAGI,MADxD,AAAO,AAAkB,AAAmB,4EACxC,AAAO,AAAQ,4BAAC,2BAAsB,AAAO;AAEjD,UAAI,2BAAqB,kBAAQ,AAAQ,OAAD;AACS,QAA/C,AAAO,MAAD,WAAW,kBAAY;;AAG/B,UAAI,6BAAuB,kBAAQ,AAAQ,OAAD;AACS,QAAjD,AAAO,MAAD,WAAW,kBAAY;;AAG/B,UAAI,kBAAa;AAM+B,QALpB,AAAI,aAA7B,AAAO,iCAAoB,iBAClB,AAAO,AAAO,AAAY,gEACxB,AAAO,AAAO,AAAY,uDAChC,2BACE,MAAM,EAAE,aAAQ,gBAAW,kBAAa,wBAC1C,AAAO,MAAD,WAAW,kBAAa;;AAEtC,UAAI,oBAAe;AACjB,YAAI,AAAO,AAAS,6BAAC,OAAM,KAAK,AAAO,AAAS,6BAAC,OAAM;AACO,UAA5D,uBAAgB,MAAM,EAAE,AAAO,uBAAW,kBAAa;;AAOP,UALtB,AAAI,aAA7B,AAAO,iCAAoB,iBAClB,AAAO,AAAO,AAAY,gEACxB,AAAO,AAAO,AAAY,uDAChC,2BACE,MAAM,EAAE,aAAQ,kBAAa,kBAAa,wBAC5C,AAAO,MAAD,WAAW,kBAAa;;;IAG1C;eAGwB;AACR,MAAd,UAAK,AAAM,MAAA,QAAC;AACI,MAAhB,YAAO,AAAM,MAAA,QAAC;AACG,MAAjB,aAAQ,AAAM,MAAA,QAAC;IACjB;;;IA9KI;IAGI;IAGA;IAGA;IAGA;IAGA;IAGH;IAGD;IAGA;IACS;IACP;IACuB;IACvB;IACA;;;EAkJR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IC/KM;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IACyB;;;;;;;;AAKhB,0BAAgB,AAAO,AAAiB,gCAAG,OAAO,OAAO;AACpE,UAAI,AAAO,AAAS,wBAAG;AACrB,YAAI,cAAS;AAOmB,UAN9B,uBAAY,gBACR,WAA8B,YAAtB,AAAc,6BAAW,QAC7B,AAAO,AAAmB,uCACxB,AAAc,aAAD,IAAI,AAAc,wCAAoB,OACjD,AAAc,uCACd,YACR,WAAsB;;;AAIW,QADvC,iBAAY,+BAAwB,AAAO,sBAAU,AAAc,4BAC/D,AAAO,AAAO;;AAES,MAA7B,0BAAoB;AACpB,UAAI,AAAU,wBAAS,MACrB,AAAU,AAGe,uBAFL,AAAI,aAAnB,AAAO,uBAAU,kBAAK,AAAU,sBAAgB,8BAC3C,AAAU,AAAM,iCAAY,AAAO,uBACnC,AAAU;AACtB,YAAO;IACT;;;AAKwC,gDAAU;AACpC,8BAAc,gBACtB,WAA8B,YAAtB,AAAc,6BAAW,QAC7B,AAAO,AAAmB,uDAC1B,AAAO,AAAe,yCACgB,KAAlC,AAAO,AAAe,8CAAA,OAAe,AAAO,kCAC5C,kBACR,WAAsB,yBACtB,iBAAoC,YAAtB,AAAc,6BAAW,QACnC,AAAO,AAAmB,6CAC1B;AAGe,MAFtB,AAAO,AAAY,AAAK,4BAAF,gBAAM,AAAQ,OAAD,iBAC9B,AAAY,WAAD,SAAgB,6BAC3B,AAAY,WAAD;AACgB,MAAjC,4BAAsB,WAAW;AACjC,YAAO,YAAW;IACpB;;IAI+B;YAIX;AAEsC,MADxD,AAAO,AAAkB,AAAmB,4EACxC,AAAO,AAAQ,4BAAC,2BAAsB,AAAO;AACjD,UAAI,kBAAa;AAMiD,QALvC,AAAI,aAA7B,AAAO,iCAAoB,gBAClB,AAAO,AAAO,AAAY,sDAC7B,6BAAsB,aAAQ,cAAQ,iBAAW,sBAC/C,MAAM,EAAE,gBAAW,oBACrB,AAAO,2BAAe,0BAAqB,MAAM,EAAE,gBACjD,kBAAa,AAAO,AAAY,4BAAG,AAAO,AAAY;;IAElE;;;IAnFI;IAGA;IAGA;IAGA;IAGA;IAGA;IACyB;;;EAoE/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICpFM;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAeG;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IACsB;;;;;;IACA;;;;;;;AAMf,sBAAY;AACxB,UAAI,oBAAe;AACwC,QAAzD,AAAU,SAAD,SAAS,AAAY,6BAAY,AAAO;;AAEhB,MAAnC,AAAU,SAAD,eAAe;AACc,MAAtC,AAAU,SAAD,SAAuB;AACH,MAA7B,0BAAoB,SAAS;AAC7B,YAAO,UAAS;IAClB;;;AAKc,wBAAc;AAC1B,UAAI,AAAO,AAAS,wBAAG;AACrB,YAAI,oBAAe;AAE+C,UADhE,AAAY,WAAD,UACW,oCAAlB,OAAqB,AAAY,6BAAY,AAAO;AAI7B,UAH3B,AAAY,WAAD,SACS,AAAI,aAAnB,AAAO,uBAAU,kBAAK,AAAY,WAAD,QAAiB,8BAC7C,AAAY,AAAM,WAAP,mBAAmB,AAAO,uBACrC,AAAY,WAAD;;;AAGsB,QAA7C,AAAY,WAAD,SAAS,AAAO,AAAS,AAAM,mCAAC;;AAER,MAArC,AAAY,WAAD,eAAe;AACc,MAAxC,AAAY,WAAD,SAAuB;AACK,MAAvC,AAAY,WAAD,aAAuB;AACD,MAAjC,4BAAsB,WAAW;AACjC,YAAO,YAAW;IACpB;;AAKa,MAAX,UAAK;AACM,MAAX,UAAK;AACM,MAAX,UAAK;AACM,MAAX,UAAK;IACP;YAIoB;;AACP,iBAAO,4BACd,AAAO,AAAO,AAAW,gDACzB,kBAAO,AAAO,AAAO,iCAAY,AAAO,AAAO;AAEK,MADxD,AAAO,AAAkB,AAAmB,4EACxC,AAAO,AAAQ,4BAAC,2BAAsB,AAAO;AAGjD,UAA6B,aAAzB,AAAO,iCAAoB,eAC3B,AAAO,AAAO,AAAY,iEACzB,AAAO,AAAO,AAAY,uDAC3B,AAAO,AAAO,AAAY,qDAAoB,kBAC9C,AAAO,AAAO,AAAY,AAAiB,mEAC3C,kBAAa,kBACb,AAAU,AAAS,yCACG,wBAAtB,AAAU,AAAQ,+BAAC,OAC+B,AAAI,aAAtD,AAAO,AAAO,AAAY,AAAiB,8DAAS,kBAChD,AAAO,AAAQ,AAAsB,4BAArB,sDACpB,AAAO,AAAQ,AAAsB,AAAU,AAAS,4BAAxC,2EAChB,AAAc,2BAAS,sBACvB,AAAW,wBAAS;AACF,yDAAiB,AAAO,AAAQ,4BAAC;AACjC,qDAC0B,AAAI,aAA7C,AAAe,AAAU,AAAS,cAApB,gCAA6B,kBAAK,4BAC3C,AAAe,AAAU,AAAQ,cAAnB,2BAAoB,4BAClC;AACN;AAAO;AAAO;AAAO;AAAO;AAAO;AAAO;AAAO;AAC/B,QAAtB,cAAQ,UAAU,eAAV,OAAY;AACE,QAAtB,eAAQ,UAAU,gBAAV,OAAY;AACE,QAAtB,gBAAQ,UAAU,iBAAV,OAAY;AACE,QAAtB,gBAAQ,UAAU,iBAAV,OAAY;AACa,QAAjC,gBAAQ,UAAU,iBAAV,OAAY;AACa,QAAjC,gBAAQ,UAAU,iBAAV,OAAY;AACW,QAA/B,gBAAQ,UAAU,iBAAV,OAAY;AACW,QAA/B,gBAAQ,UAAU,iBAAV,OAAY;AAEpB,YAAI,UAAU,IAAI,SACb,AAAM,KAAD,YAAU,AAAM,KAAD,aACrB,AAAO,AAAO,AAAY,4CAAW;AAC7B;AAAU;AACf;AACU;AAEkD,UADjE,WACI,mBAAY,AAAO,sBAAQ,AAAO,AAAO,AAAY;AAEQ,UADjE,WACI,mBAAY,AAAO,sBAAQ,AAAO,AAAO,AAAY;AACzD,cAAI,QAAQ,IAAI,QAAQ,QAAQ,IAAI;AAQS,YAP3C,cAK4C,aAL9B,AAAS,AAAc,QAAf,yBACd,AAAO,AAAO,AAAc,6DAChC,AAAS,AAAc,QAAf,yBACJ,AAAO,AAAO,AAAc,6DAChC,AAAS,AAAc,QAAf,yBACJ,AAAO,AAAO,AAAc,6DAChC,AAAS,AAAc,QAAf,yBACJ,AAAO,AAAO,AAAc;;AAEtC,wBAAI,WAAW;AAEwC,YADrD,WAAW,uBAAgB,cAAQ,cAAQ,QAAQ,EAAE,QAAQ,EACzD,AAAO,AAAO,2CAAsB,aAAQ,IAAI;AAClC,YAAlB,QAAQ,AAAS,QAAD;AACE,YAAlB,QAAQ,AAAS,QAAD;AAEqC,YADrD,WAAW,uBAAgB,cAAQ,cAAQ,QAAQ,EAAE,QAAQ,EACzD,AAAO,AAAO,2CAAsB,aAAQ,IAAI;AAClC,YAAlB,QAAQ,AAAS,QAAD;AACE,YAAlB,QAAQ,AAAS,QAAD;AAE+C,YAD/D,WAAW,uBAAgB,oBAAe,oBAAe,QAAQ,EAC7D,QAAQ,EAAE,AAAO,AAAO,2CAAsB,aAAQ,IAAI;AAC5C,YAAlB,QAAQ,AAAS,QAAD;AACE,YAAlB,QAAQ,AAAS,QAAD;AAE+C,YAD/D,WAAW,uBAAgB,kBAAa,kBAAa,QAAQ,EACzD,QAAQ,EAAE,AAAO,AAAO,2CAAsB,aAAQ,IAAI;AAC5C,YAAlB,QAAQ,AAAS,QAAD;AACE,YAAlB,QAAQ,AAAS,QAAD;;;AAwBnB,QArBD,8BACE,MAAM,EACN,aACA,kBACA,sBACA,AAAe,cAAD,KACd,AAAe,cAAD,KACd,AAAe,cAAD,KACd,AAAe,cAAD,KACd,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,UACL,cAAc,iBAAd,OAAgB,6BAChB,cAAc,iBAAd,OAAgB,qBAChB,KAAK,EACL,KAAK,EACL,AAAe,cAAD,cACd,AAAe,cAAD,cACd,KAAK,EACL,KAAK;;AAGI,mBAAO;AACC,QAAnB,AAAK,IAAD,QAAQ,SAAI;AAChB,yBAAI,AAAc,2BAAS,sBAAQ,AAAW,wBAAS;AAEc,UADnE,AAAK,IAAD,SACA,oBAAe,oBAAe,kBAAa,kBAAa,SAAI;AACJ,UAA5D,uBAAgB,MAAM,EAAE,AAAO,uBAAW,kBAAa,IAAI;;;IAGjE;eAGwB;AACJ,MAAlB,eAAS,AAAM,MAAA,QAAC;AACE,MAAlB,eAAS,AAAM,MAAA,QAAC;AACE,MAAlB,eAAS,AAAM,MAAA,QAAC;AACE,MAAlB,eAAS,AAAM,MAAA,QAAC;AACS,MAAzB,qBAAgB,AAAM,MAAA,QAAC;AACE,MAAzB,qBAAgB,AAAM,MAAA,QAAC;AACA,MAAvB,mBAAc,AAAM,MAAA,QAAC;AACE,MAAvB,mBAAc,AAAM,MAAA,QAAC;IACvB;;;IA3MI;IAGA;IAGA;IAGA;IAGA;IAGA;IAGA;IAGA;IAGG;IAGA;IAGA;IAGA;IACsB;IACA;IACvB;;;EAwKR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICzMqC;;;;;;IAGJ;;;;;;;AAKV,MAAnB,iBAAY;AACZ,UAAI,AAAO,AAAS,wBAAG;AACrB,YAAI,cAAS;AACY,UAAvB,AAAU,uBAAQ;AACkB,UAApC,AAAU,uBAAsB;;;AAMnB,QAHf,iBAAa,AAAU,oBAAG,OACpB,+BACE,AAAO,sBAAU,kBAAW,AAAO,AAAO,6CAC5C;;AAER,UAAI,AAAU,wBAAS,MACrB,AAAU,AAGe,uBAFL,AAAI,aAAnB,AAAO,uBAAU,kBAAK,AAAU,sBAAgB,8BAC3C,AAAU,AAAM,iCAAY,AAAO,uBACnC,AAAU;AACO,MAA7B,0BAAoB;AACpB,YAAO;IACT;;;AAKc,wBAAc;AAC1B,UAAI,oBAAe;AAImB,aAHpC,WAAW;QACP,WAAQ,AAAO,AAAY,oCAAY,AAAO;QAC9C,WAAsB;QACtB,iBAAc,AAAO;;AAGF,QAFvB,AAAO,AAAY,4BAAG,IAChB,AAAY,WAAD,SAAgB,6BAC3B,AAAY,WAAD;;AAEoB,MAAvC,AAAY,WAAD,aAAuB;AACD,MAAjC,4BAAsB,WAAW;AACjC,YAAO,YAAW;IACpB;;IAI+B;YAIX;AACP,iBAAO,AAAO,AAAO,AAAW;AAC7B,MAAd,eAAQ;AACY,MAApB,qBAAc;AACE,kBAAQ,AAAO;AACf,kBAAQ,AAAO;AACU,4DAAmB;AAC7C;AAAY;AACjB,yBAAe,AAAO,AAAY;AACf;AAAY;AACzC,eAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,YAAY,GAAE,IAAA,AAAC,CAAA;AACJ,QAA7B,QAAQ,AAAO,AAAW,iCAAC,CAAC;AAC5B,sBAAI,AAAM,KAAD;AACoB,sBAAQ,8BAC/B,CAAC,EACD,UAAU,EACV,KAAK,EACL,UAAU,EACV,WAAW,EACX,IAAI,EACJ,KAAK,EACL,KAAK,EACL,gBAAgB;AACE,UAAtB,cAAc,AAAK,KAAA,QAAC;AACC,UAArB,aAAa,AAAK,KAAA,QAAC;AACD,UAAlB,aAAa,KAAK;;AAE0C,UAA5D,aAAc,AAAO,CAAN,KAAI,KAAkB,YAAb,AAAM,KAAD,SAAW,QAAQ,KAAK,GAAG;;AAE1D,aAAM,AAAE,AAAI,CAAL,GAAG,iBAAI,YAAY,gBAAK,AAAO,AAAW,AAAQ,iCAAP,AAAE,CAAD,GAAG,iBAC9C,AAAE,CAAD,KAAiB,aAAb,YAAY,IAAG,MACxB,WAAW,IAAI,QACf,UAAU,IAAI;AAcP,UAbT,aAAa,uBAEL,gBADJ,AAAE,AAAI,AAAe,CAApB,GAAG,iBAAI,YAAY,eAAI,AAAO,AAAW,AAAQ,iCAAP,AAAE,CAAD,GAAG,aACzC,AAAO,AAAW,AAAI,iCAAH,CAAC,WACpB,AAAE,AAAoB,CAArB,KAAiB,aAAb,YAAY,IAAG,eAAK,AAAO,AAAW,AAAI,iCAAH,CAAC,YACzC,AAAO,AAAW,AAAQ,iCAAP,AAAE,CAAD,GAAG,YACvB,AAAO,AAAW,AAAI,iCAAH,CAAC,WAE1B,gBADJ,AAAE,AAAI,AAAe,CAApB,GAAG,iBAAI,YAAY,eAAI,AAAO,AAAW,AAAQ,iCAAP,AAAE,CAAD,GAAG,aACzC,AAAO,AAAW,AAAI,iCAAH,CAAC,WACpB,mCAAa,AAAM,AAAc,KAAf,0BAAwB,KAChD,KAAK,EACL,KAAK,EACL,AAAO,AAAO,2CACd,aACA,IAAI;AACgC,UAAxC,AAAM,oBAAO,AAAW,UAAD,IAAI,AAAW,UAAD;AACrC,2BAAI,AAAiB,gBAAD,iBAAkC,4BACpD,AAAY,AAAkC,0BAA3B,AAAW,UAAD,IAAI,AAAW,UAAD;;;AAGjD,UAAoC,YAAhC,AAAiB,gBAAD,iBAAkC;AACjC,QAAnB,AAAY;;AAGe,MAA7B,mBAAY,AAAM;AAEgD,MADlE,AAAO,MAAD,UACF,cAAQ,AAAO,AAAS,wBAAG,OAAQ,iBAAY;AACgB,MAAnE,uBAAgB,MAAM,EAAE,AAAO,uBAAW,kBAAa;IACzD;8BAGQ,GACyB,YACA,OACd,YACA,aACV,MACK,OACA,OACyB;AAChB;AACN;AAAqB;AAAa;AACjD,UAAI,UAAU,IAAI;AAGO,QAFvB,eAAe,AACV,AAAiB,AACjB,qCADoD,aAAlC,AAAO,AAAY,oCAAQ,KAAK,KAAI;AAGN,QADrD,cAAc,uCAAgB,AAAM,KAAD,0BAAS,AAAM,KAAD,UAAS,KAAK,EAAE,KAAK,EAClE,AAAO,AAAO,2CAAsB,aAAQ,IAAI;AAQ3C,QAPT,sBAAsB,uBAClB,AAAY,AAAI,YAAJ,QAAC,kBACb,AAAY,AAAI,YAAJ,QAAC,kBACb,KAAK,EACL,KAAK,EACL,AAAO,AAAO,2CACd,aACA,IAAI;AAQC,QAPT,sBAAsB,uBAClB,AAAY,AAAI,YAAJ,QAAC,kBACb,AAAY,AAAI,YAAJ,QAAC,kBACb,KAAK,EACL,KAAK,EACL,AAAO,AAAO,2CACd,aACA,IAAI;AAOU,QANlB,AAAM,qBACF,AAAoB,mBAAD,IACnB,AAAoB,mBAAD,IACnB,AAAoB,mBAAD,IACnB,AAAoB,mBAAD,IACnB,AAAY,WAAD,IACX,AAAY,WAAD;AAOG,QANlB,AAAY,2BACR,AAAoB,mBAAD,IACnB,AAAoB,mBAAD,IACnB,AAAoB,mBAAD,IACnB,AAAoB,mBAAD,IACnB,AAAY,WAAD,IACX,AAAY,WAAD;;AASN,QAPT,aAAa,uCACT,AAAO,AAAW,AAAI,iCAAH,CAAC,WACpB,mCAAa,AAAM,AAAc,KAAf,0BAAwB,IAC1C,KAAK,EACL,KAAK,EACL,AAAO,AAAO,2CACd,aACA,IAAI;AACgC,QAAxC,AAAM,oBAAO,AAAW,UAAD,IAAI,AAAW,UAAD;AACrC,yBAAI,AAAiB,gBAAD,iBAAkC,4BACpD,AAAY,AAAkC,0BAA3B,AAAW,UAAD,IAAI,AAAW,UAAD;AAQpC,QAPT,cAAc,uCACV,AAAO,AAAW,AAAI,iCAAH,CAAC,2BACpB,AAAO,AAAW,AAAI,iCAAH,CAAC,WACpB,KAAK,EACL,KAAK,EACL,AAAO,AAAO,2CACd,aACA,IAAI;AACkC,QAA1C,AAAM,oBAAO,AAAY,WAAD,IAAI,AAAY,WAAD;AACvC,YAAoC,YAAhC,AAAiB,gBAAD,iBAAkC,4BACpD,AAAY,AAAoC,0BAA7B,AAAY,WAAD,IAAI,AAAY,WAAD;AACC,QAAhD,AAAY,0BAAO,AAAY,WAAD,IAAI,AAAY,WAAD;;AAE/C,YAAuB,+BAAC,WAAW,EAAE,UAAU;IACjD;;;IAjMK;IAAO;IACP;IAG8B,eAAuC;IAG3C;;;EA2LjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MC3HuB;;;;;;MAEd;;;;;;MACM;;;;;;MAmBM;;;;;;MAsBN;;;;;;MAmBF;;;;;;MAGP;;;;;;MAEA;;;;;;MAoBQ;;;;;;MAoBA;;;;;;MAqBC;;;;;;MAoBA;;;;;;;;;UAjOU;UACc;UACE;UACN;UACF;UACC;UACf;UACA;UACN;UACA;UACA;UACD;UACC;UACA;UACQ;UACI;UACD;UACb;UACU;UACF;UACN;UACF;UACW;UACX;UACE;UACD;UACA;UACC;UACA;UACD;UACC;UACW;UACR;UACL;UACU;UACR;UACA;MAwCU;MACR;MAiET;MAEA;MA3Ge,uBAAe,KAAb,YAAY,QAAZ;MACJ,sBAAa,MAAX,UAAU,SAAV,OAAqB;MACjB,4BAAmB,OAAjB,gBAAgB,UAAhB,OAA2B;MAC7B,4BAAmB,OAAjB,gBAAgB,UAAhB,OAAoB;MAC1B,uBAAe,OAAb,YAAY,UAAZ,OAAgB;MACrB,oBAAY,OAAV,SAAS,UAAT,OAAa;MACV,yBAAiB,OAAf,cAAc,UAAd,OAAkB;MACzB,qBAAY,OAAV,SAAS,UAAT,OAAqB,sBAAC,KAAG;MAC7B,mBAAU,OAAR,OAAO,UAAP,OAAW;AACrB,yDACU,IAAI,gBACI,YAAY,gBACZ,YAAY,wBACJ,oBAAoB,oBACxB,gBAAgB,mBACjB,eAAe,cACpB,UAAU,cACV,UAAU,aACX,SAAS,aACT,SAAS,SACb,KAAK,UACC,OAAN,KAAK,UAAL,OAAS,6BACA,cAAc,qBACX,iBAAiB,aACzB,SAAS,YACV,QAAQ,sBACE,kBAAkB,iBACvB,aAAa,qBACT,iBAAiB,eACvB,WAAW,eACX,WAAW,qBACL,iBAAiB,8BACR,0BAA0B,kBACtC,cAAc,qBACX,iBAAiB,kBACpB,cAAc,gBAChB,YAAY,WACjB,OAAO;;IAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICpEvB;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAGG;;;;;;IAEsB;;;;;;IAGxB;;;;;;IAGC;;;;;;;;AAQO,0BAAgB,AAAO,AAAiB,gCAAG,OAAO,OAAO;AAGpE,UAAI,AAAO,AAAS,wBAAG;AACrB,YAAI,cAAS;AAOmB,UAN9B,uBAAY,gBACR,WAA8B,YAAtB,AAAc,6BAAW,QAC7B,AAAO,AAAmB,uCACxB,AAAc,aAAD,IAAI,AAAc,wCAAoB,OACjD,AAAc,uCACd,YACR,WAAsB;;;AAIW,QADvC,iBAAY,+BAAwB,AAAO,sBAAU,AAAc,4BAC/D,AAAO,AAAO;;AAES,MAA7B,0BAAoB;AACpB,UAAI,AAAU,wBAAS,MACrB,AAAU,AAGe,uBAFL,AAAI,aAAnB,AAAO,uBAAU,kBAAK,AAAU,sBAAgB,8BAC3C,AAAU,AAAM,iCAAY,AAAO,uBACnC,AAAU;AACtB,YAAO;IACT;;;AAKE,UAAI,oBAAe;AAQE,QAPnB,yBAAc,gBACV,WAA8B,YAAtB,AAAc,6BAAW,QAC7B,AAAO,AAAmB,6CAC1B,kBACJ,WAAsB,yBACtB,iBAAoC,YAAtB,AAAc,6BAAW,QACnC,AAAO,AAAmB,6CAC1B;AACyB,QAAjC,4BAAsB;;AAID,MAFvB,AAAO,AAAY,4BAAG,IAChB,AAAY,yBAAe,6BAC3B,AAAY;AAClB,YAAO;IACT;;;AAI2C,wDAAe;AACxD,UAAI,cAAS;AAGmB,QAF9B,gCAAoB,gBAChB,WAAQ,AAAa,YAAD,aACpB,WAAsB;;AAE5B,YAAO;IACT;;;AAI2C,wDAAe;AAIxB,MAHhC,kCAAsB,gBAClB,WAAQ,AAAa,YAAD,mBACpB,iBAAc,AAAa,YAAD,mBAC1B,WAAsB;AAGK,MAF/B,AAAa,AAAiB,YAAlB,sBAAqB,IAC3B,AAAoB,kCAAe,6BACnC,AAAoB;AAC1B,YAAO;IACT;;AAK2C,4DAAmB;AACf,MAA7C,sBAAgB,AAAiB,gBAAD;AAChC,UAAI,AAAc,8BAAU;AAOzB,QAND,mBAAoB,gCAClB,AAAc,yCACF,AAAc,6CACb,AAAc,0CAClB,AAAc,uCACb,AAAc;AAE1B,sBAAI,AAAiB,gBAAD;AAOjB,UAND,mBAAmB,gCACjB,AAAc,oDACF,AAAc,6CACb,AAAc,0CAClB,AAAc,uCACb,AAAc;;;AAIyB,MAAvD,YAAO,qBAAc,qBAAe,AAAO;IAC7C;YAIoB;AACuB,4DAAmB;AAGJ,MADxD,AAAO,AAAkB,AAAmB,4EACxC,AAAO,AAAQ,4BAAC,2BAAsB,AAAO;AAEjD,UAAI,2BAAqB,kBAAQ,AAAiB,gBAAD;AACA,QAA/C,AAAO,MAAD,WAAW,kBAAY;;AAG/B,UAAI,6BAAuB,kBAAQ,AAAiB,gBAAD;AACA,QAAjD,AAAO,MAAD,WAAW,kBAAY;;AAIgB,MAD/C,iCAA0B,gBAAW,kBAAa,WAAM,uDACpD,cAAQ,MAAM,EAAE,kBAAa;IACnC;eAGwB;AACR,MAAd,UAAK,AAAM,MAAA,QAAC;AACE,MAAd,UAAK,AAAM,MAAA,QAAC;IACd;;;IApJI;IAGA;IAGA;IAGA;IAGG;IACM;IACgB;IAGxB;IAGC;IACA;IACA;IACA;;;EA8HR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICrJM;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IACG;;;;;;IAEsB;;;;;;IAGxB;;;;;;IAGC;;;;;;;;AAKO,0BAAgB,AAAO,AAAiB,gCAAG,OAAO,OAAO;AAGpE,UAAI,AAAO,AAAS,wBAAG;AACrB,YAAI,cAAS;AAOmB,UAN9B,uBAAY,gBACR,WAA8B,YAAtB,AAAc,6BAAW,QAC7B,AAAO,AAAmB,uCACxB,AAAc,aAAD,IAAI,AAAc,wCAAoB,OACjD,AAAc,uCACd,YACR,WAAsB;;;AAIW,QADvC,iBAAY,+BAAwB,AAAO,sBAAU,AAAc,4BAC/D,AAAO,AAAO;;AAES,MAA7B,0BAAoB;AACpB,UAAI,AAAU,wBAAS,MACrB,AAAU,AAGe,uBAFL,AAAI,aAAnB,AAAO,uBAAU,kBAAK,AAAU,sBAAgB,8BAC3C,AAAU,AAAM,iCAAY,AAAO,uBACnC,AAAU;AACtB,YAAO;IACT;;;AAKE,UAAI,oBAAe;AAQE,QAPnB,yBAAc,gBACV,WAA8B,YAAtB,AAAc,6BAAW,QAC7B,AAAO,AAAmB,6CAC1B,kBACJ,WAAsB,yBACtB,iBAAoC,YAAtB,AAAc,6BAAW,QACnC,AAAO,AAAmB,6CAC1B;AACyB,QAAjC,4BAAsB;;AAID,MAFvB,AAAO,AAAY,4BAAG,IAChB,AAAY,yBAAe,6BAC3B,AAAY;AAClB,YAAO;IACT;;AAK8C,kEAAsB;AAClB,MAAhD,sBAAgB,AAAoB,mBAAD;AACnC,UAAI,AAAc,8BAAU;AAOzB,QAND,mBAAoB,gCAClB,AAAc,yCACF,AAAc,6CACb,AAAc,0CAClB,AAAc,uCACb,AAAc;;AAG2B,MAAvD,YAAO,qBAAc,qBAAe,AAAO;IAC7C;YAIoB;AAE6B,MAD/C,iCAA0B,gBAAW,kBAAa,WAAM,uDACpD,cAAQ,MAAM,EAAE,kBAAa;IACnC;eAGwB;AACR,MAAd,UAAK,AAAM,MAAA,QAAC;AACE,MAAd,UAAK,AAAM,MAAA,QAAC;IACd;;;IAjGI;IAGA;IAGA;IAGA;IACG;IACM;IACgB;IAGxB;IAGC;;;EAgFR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IClGM;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAGG;;;;;;IAEsB;;;;;;IAGxB;;;;;;IAIG;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;;;AAOK,0BAAgB,AAAO,AAAiB,gCAAG,OAAO,OAAO;AAGpE,UAAI,AAAO,AAAS,wBAAG;AACrB,YAAI,cAAS;AAOmB,UAN9B,uBAAY,gBACR,WAA8B,YAAtB,AAAc,6BAAW,QAC7B,AAAO,AAAmB,uCACxB,AAAc,aAAD,IAAI,AAAc,wCAAoB,OACjD,AAAc,uCACd,YACR,WAAsB;;;AAIW,QADvC,iBAAY,+BAAwB,AAAO,sBAAU,AAAc,4BAC/D,AAAO,AAAO;;AAEpB,UAAI,AAAU,wBAAS,MACrB,AAAU,AAGe,uBAFL,AAAI,aAAnB,AAAO,uBAAU,kBAAK,AAAU,sBAAgB,8BAC3C,AAAU,AAAM,iCAAY,AAAO,uBACnC,AAAU;AACO,MAA7B,0BAAoB;AACpB,YAAO;IACT;;;AAKE,UAAI,oBAAe;AAQE,QAPnB,yBAAc,gBACV,WAA8B,YAAtB,AAAc,6BAAW,QAC7B,AAAO,AAAmB,6CAC1B,kBACJ,WAAsB,yBACtB,iBAAoC,YAAtB,AAAc,6BAAW,QACnC,AAAO,AAAmB,6CAC1B;AACyB,QAAjC,4BAAsB;;AAID,MAFvB,AAAO,AAAY,4BAAG,IAChB,AAAY,yBAAe,6BAC3B,AAAY;AAClB,YAAO;IACT;;;AAI8C,2DAAe;AAC3D,UAAI,cAAS;AAGmB,QAF9B,gCAAoB,gBAChB,WAAQ,AAAa,YAAD,aACpB,WAAsB;;AAE5B,YAAO;IACT;;;AAI8C,2DAAe;AAI3B,MAHhC,kCAAsB,gBAClB,WAAQ,AAAa,YAAD,mBACpB,iBAAc,AAAa,YAAD,mBAC1B,WAAsB;AAGK,MAF/B,AAAa,AAAiB,YAAlB,sBAAqB,IAC3B,AAAoB,kCAAe,6BACnC,AAAoB;AAC1B,YAAO;IACT;;AAK8C,kEAAsB;AAClB,MAAhD,sBAAgB,AAAoB,mBAAD;AACnC,UAAI,AAAc,8BAAU;AAOzB,QAND,mBAAoB,gCAClB,AAAc,yCACF,AAAc,6CACb,AAAc,0CAClB,AAAc,uCACb,AAAc;AAE1B,sBAAI,AAAoB,mBAAD;AAOpB,UAND,mBAAmB,gCACjB,AAAc,oDACF,AAAc,6CACb,AAAc,0CAClB,AAAc,uCACb,AAAc;;;AAIyB,MAAvD,YAAO,qBAAc,qBAAe,AAAO;IAC7C;YAIoB;AAC0B,kEAAsB;AAElE,UAAI,2BAAqB,kBAAQ,AAAoB,mBAAD;AACH,QAA/C,AAAO,MAAD,WAAW,kBAAY;;AAG/B,UAAI,6BAAuB,kBAAQ,AAAoB,mBAAD;AACH,QAAjD,AAAO,MAAD,WAAW,kBAAY;;AAGgB,MAD/C,iCAA0B,gBAAW,kBAAa,WAAM,uDACpD,cAAQ,MAAM,EAAE,kBAAa;IACnC;eAGwB;AACR,MAAd,UAAK,AAAM,MAAA,QAAC;AACE,MAAd,UAAK,AAAM,MAAA,QAAC;IACd;;;IAzJI;IAGA;IAGA;IAGA;IAGG;IACM;IACgB;IAGxB;IACC;IAGE;IAGA;IAGA;IAGA;IACF;IACA;;;EA0HR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IC1JM;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAGG;;;;;;IAEsB;;;;;;IAGxB;;;;;;;;AAKQ,0BAAgB,AAAO,AAAiB,gCAAG,OAAO,OAAO;AAGpE,UAAI,AAAO,AAAS,wBAAG;AACrB,YAAI,cAAS;AAOmB,UAN9B,uBAAY,gBACR,WAA8B,YAAtB,AAAc,6BAAW,QAC7B,AAAO,AAAmB,uCACxB,AAAc,aAAD,IAAI,AAAc,wCAAoB,OACjD,AAAc,uCACd,YACR,WAAsB;;;AAIW,QADvC,iBAAY,+BAAwB,AAAO,sBAAU,AAAc,4BAC/D,AAAO,AAAO;;AAEpB,UAAI,AAAU,wBAAS,MACrB,AAAU,AAGe,uBAFL,AAAI,aAAnB,AAAO,uBAAU,kBAAK,AAAU,sBAAgB,8BAC3C,AAAU,AAAM,iCAAY,AAAO,uBACnC,AAAU;AACO,MAA7B,0BAAoB;AACpB,YAAO;IACT;;;AAKE,UAAI,oBAAe;AAQE,QAPnB,yBAAc,gBACV,WAA8B,YAAtB,AAAc,6BAAW,QAC7B,AAAO,AAAmB,6CAC1B,kBACJ,WAAsB,yBACtB,iBAAoC,YAAtB,AAAc,6BAAW,QACnC,AAAO,AAAmB,6CAC1B;AACyB,QAAjC,4BAAsB;;AAID,MAFvB,AAAO,AAAY,4BAAG,IAChB,AAAY,yBAAe,6BAC3B,AAAY;AAClB,YAAO;IACT;;AAKiD,wEAC3C;AAC+C,MAAnD,sBAAgB,AAAuB,sBAAD;AACtC,UAAI,AAAc,8BAAU;AAOzB,QAND,mBAAoB,gCAClB,AAAc,yCACF,AAAc,6CACb,AAAc,0CAClB,AAAc,uCACb,AAAc;;AAI2B,MAAvD,YAAO,qBAAc,qBAAe,AAAO;IAC7C;YAIoB;AAE6B,MAD/C,iCAA0B,gBAAW,kBAAa,WAAM,uDACpD,cAAQ,MAAM,EAAE,kBAAa;IACnC;eAGwB;AACR,MAAd,UAAK,AAAM,MAAA,QAAC;AACE,MAAd,UAAK,AAAM,MAAA,QAAC;IACd;;;IAlGI;IAGA;IAGA;IAGA;IAGG;IACM;IACgB;IAGxB;;;EAkFP;;;;;;;;;;;;;;;;;;;;;;;;;;IChGiC;;;;;;;AAKV,MAAnB,iBAAY;AACZ,UAAI,AAAO,AAAS,wBAAG;AACrB,YAAI,cAAS;AACY,UAAvB,AAAU,uBAAQ;AACkB,UAApC,AAAU,uBAAsB;;;AAMnB,QAHf,iBAAa,AAAU,oBAAG,OACpB,+BACE,AAAO,sBAAU,kBAAW,AAAO,AAAO,6CAC5C;;AAER,UAAI,AAAU,wBAAS,MACrB,AAAU,AAGe,uBAFL,AAAI,aAAnB,AAAO,uBAAU,kBAAK,AAAU,sBAAgB,8BAC3C,AAAU,AAAM,iCAAY,AAAO,uBACnC,AAAU;AACO,MAA7B,0BAAoB;AACpB,YAAO;IACT;;;AAKc,wBAAc;AAC1B,UAAI,oBAAe;AAImB,aAHpC,WAAW;QACP,WAAQ,AAAO;QACf,WAAsB;QACtB,iBAAc,AAAO;;AAGF,QAFvB,AAAO,AAAY,4BAAG,IAChB,AAAY,WAAD,SAAgB,6BAC3B,AAAY,WAAD;;AAEoB,MAAvC,AAAY,WAAD,aAAuB;AACD,MAAjC,4BAAsB,WAAW;AACjC,YAAO,YAAW;IACpB;;IAI+B;YAIX;;AACP,iBAAO,AAAO,AAAO,AAAW;AACd;AAAW;AACzB;AAAc;AAAa;AAC1B,kBAAQ,AAAO;AACf,kBAAQ,AAAO;AACQ,iDAAU;AACnC,MAAd,eAAQ;AACY,MAApB,qBAAc;AACd,eAAS,aAAa,GAClB,AAAW,UAAD,gBAAG,AAAO,AAAY,qCAChC,aAAA,AAAU,UAAA;AAC0B,QAAtC,QAAQ,AAAO,AAAW,iCAAC,UAAU;AACrC,sBAAI,AAAM,KAAD;AAE8C,UADrD,eAAe,uCAAgB,AAAM,KAAD,0BAAS,AAAM,KAAD,UAAS,KAAK,EAAE,KAAK,EACnE,AAAO,AAAO,2CAAsB,aAAQ,IAAI;AAIrC,0BAHf,6BAAgB,AAAU,SAAD,IAAI,OACvB,6CAAgB,SAAS,eAAT,OAAW,oCAAQ,SAAS,gBAAT,OAAW,cAAQ,KAAK,EACzD,KAAK,EAAE,AAAO,AAAO,2CAAsB,aAAQ,IAAI,IACzD,SAAS;AAQN,UAPT,cAAc,uCACV,AAAM,KAAD,UACL,mCAAa,AAAM,AAAc,KAAf,0BAAwB,IAC1C,KAAK,EACL,KAAK,EACL,AAAO,AAAO,2CACd,aACA,IAAI;AAEgB,UADxB,wBAAkB,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EACjE,UAAU,EAAE,OAAO;AACN,UAAjB,YAAY,KAAK;;;AAGQ,MAA7B,mBAAY,AAAM;AAE8C,MADhE,AAAO,AAAkB,AACpB,4EAAyB,AAAO,AAAQ,4BAAC,IAAI,AAAO;AAES,MADlE,AAAO,MAAD,UACF,cAAQ,AAAO,AAAS,wBAAG,OAAQ,iBAAY;AAEnD,uBAAI,AAAY,wBAAgB,6BAC9B,AAAmE,uBAAnD,MAAM,EAAE,AAAO,uBAAW,kBAAa;IAC3D;wBAGiC,WACd,cACA,aACA,eACX,YAC6B;AACzB,cAAI,AAAa,YAAD;AAChB,cAAI,AAAa,YAAD;AACf,mBAAwC,YAA/B,AAAO,AAAmB,qCAAuB,8BAC/D,qBAAe,AAAO,2BAAa,UAAU,IAC7C;AACN,UAAI,AAAU,SAAD,IAAI,QAC4B,YAAzC,AAAO,AAAW,AAAiB,iCAAL,aAAX,UAAU,IAAG,UAAY,SACN,YAArC,AAAO,AAAW,AAAa,iCAAZ,UAAU,SAAW,SACK,YAA7C,AAAO,AAAW,AAAiB,iCAAL,aAAX,UAAU,IAAG,cAAgB,UACd,YAA/B,AAAO,AAAmB,qCAAuB;AACb,QAA1C,AAAM,oBAAO,AAAY,WAAD,IAAI,AAAY,WAAD;AACvC,YAAkC,YAA9B,AAAe,cAAD,iBAAkC;AAClD,2BAAI,AAAO,AAAW,AAAa,iCAAZ,UAAU,SAAW;AACM,YAAhD,AAAY,0BAAO,AAAY,WAAD,IAAI,AAAY,WAAD;AACrB,YAAxB,AAAY,0BAAO,CAAC,EAAE,CAAC;;cAEpB,KAAkC,YAA9B,AAAe,cAAD,iBAAkC;AACzD,2BAAI,AAAO,AAAW,AAAa,iCAAZ,UAAU,SAAW;AACM,YAAhD,AAAY,0BAAO,AAAY,WAAD,IAAI,AAAY,WAAD;AACrB,YAAxB,AAAY,0BAAO,CAAC,EAAE,CAAC;;cAEpB,KAAkC,YAA9B,AAAe,cAAD,iBAAkC;AACjC,UAAxB,AAAY,0BAAO,CAAC,EAAE,CAAC;;AAEP,QAAlB,AAAM,oBAAO,CAAC,EAAE,CAAC;YACZ,KAAI,AAAW,UAAD,KAA8B,aAA1B,AAAO,AAAY,sCAAS,KACR,YAAzC,AAAO,AAAW,AAAiB,iCAAL,aAAX,UAAU,IAAG,UAAY;AACR,QAAtC,AAAY,0BAAO,CAAC,EAAE,AAAc,aAAD;AACX,QAAxB,AAAY,0BAAO,CAAC,EAAE,CAAC;AACvB,YAAkC,YAA9B,AAAe,cAAD,iBAAkC;AACF,UAAhD,AAAY,0BAAO,AAAY,WAAD,IAAI,AAAY,WAAD;YAC1C,KAAkC,YAA9B,AAAe,cAAD,iBAAkC;AACP,UAAhD,AAAY,0BAAO,AAAY,WAAD,IAAI,AAAY,WAAD;AAC1B,UAAnB,AAAY;;AAEkB,QAAhC,AAAM,oBAAO,CAAC,EAAE,AAAc,aAAD;AACX,QAAlB,AAAM,oBAAO,CAAC,EAAE,CAAC;AACyB,QAA1C,AAAM,oBAAO,AAAY,WAAD,IAAI,AAAY,WAAD;;AAEP,QAAhC,AAAM,oBAAO,CAAC,EAAE,AAAc,aAAD;AACS,QAAtC,AAAY,0BAAO,CAAC,EAAE,AAAc,aAAD;AACX,QAAxB,AAAY,0BAAO,CAAC,EAAE,CAAC;AACL,QAAlB,AAAM,oBAAO,CAAC,EAAE,CAAC;AACjB,sBAAI,MAAM;AACkC,UAA1C,AAAM,oBAAO,AAAY,WAAD,IAAI,AAAY,WAAD;AACvC,cAAkC,YAA9B,AAAe,cAAD,iBAAkC;AACF,YAAhD,AAAY,0BAAO,AAAY,WAAD,IAAI,AAAY,WAAD;gBACxC,KAAkC,YAA9B,AAAe,cAAD,iBAAkC;AACT,YAAhD,AAAY,0BAAO,AAAY,WAAD,IAAI,AAAY,WAAD;AAC1B,YAAnB,AAAY;;;;IAIpB;qBAEuD,QAAY;AACjE,eAAS,IAAI,KAAK,EAAI,aAAF,CAAC,IAAiB,aAAd,AAAO,MAAD,aAAU,GAAG,IAAC,aAAD,CAAC;AAC1C,uBAAK,AAAM,AAAQ,MAAR,QAAG,aAAF,CAAC,IAAG;AACd,gBAAO;;;AAGX,YAAO;IACT;;;IAtKK;IAAO;IACP;IAG0B;;;EAmKjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICtKM;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;;AAQU,sBAAY;AACxB,UAAI,cAAS;AACwC,QAAnD,AAAU,SAAD,SAAS,AAAM,uBAAY,AAAO;;AAEV,MAAnC,AAAU,SAAD,eAAe;AACc,MAAtC,AAAU,SAAD,SAAuB;AACH,MAA7B,0BAAoB,SAAS;AAC7B,YAAO,UAAS;IAClB;;;AAKc,wBAAc;AAC1B,UAAI,AAAO,AAAS,wBAAG;AACrB,YAAI,oBAAe;AACmC,UAApD,AAAY,WAAD,UAA2B,oCAAlB,OAAqB;AAId,UAH3B,AAAY,WAAD,SACS,AAAI,aAAnB,AAAO,uBAAU,kBAAK,AAAY,WAAD,QAAiB,8BAC7C,AAAY,AAAM,WAAP,mBAAmB,AAAO,uBACrC,AAAY,WAAD;;;AAGsB,QAA7C,AAAY,WAAD,SAAS,AAAO,AAAS,AAAM,mCAAC;;AAER,MAArC,AAAY,WAAD,eAAe;AACc,MAAxC,AAAY,WAAD,SAAuB;AACM,MAAxC,AAAY,WAAD,aAAuB;AACD,MAAjC,4BAAsB,WAAW;AACjC,YAAO,YAAW;IACpB;;AAKgB,kBAAQ,AAAO,AAAO,AAAc;AACpC,gBAAM,AAAO,AAAO,AAAc;AAClB,MAA9B,UAAK,UAAK,UAAK;AACJ,iBAAO,4BACd,AAAO,AAAO,AAAW,gDACzB,kBAAO,AAAO,AAAO,iCAAY,AAAO,AAAO;AACnD,UAAK,gBAAU,QACP,gBAAU,QACV,gBAAU,QACV,gBAAU,SACL,aAAP,8CAAU,KAAK,MAAW,aAAP,8CAAU,GAAG,MACtB,aAAP,8CAAU,KAAK,MAAW,aAAP,8CAAU,GAAG,iBAC1B,WAAN,KAAK,SAAI,8BAAgB,WAAN,KAAK,SAAI;AACd,2BAAe,uBAChC,cACA,cACA,AAAO,sBACP,AAAO,sBACP,AAAO,AAAO,2CACd,aACA,IAAI;AACa,wBAAY,uBAC7B,cACA,cACA,AAAO,sBACP,AAAO,sBACP,AAAO,AAAO,2CACd,aACA,IAAI;AACa,uBAAW,uBAC5B,aACA,aACA,AAAO,sBACP,AAAO,sBACP,AAAO,AAAO,2CACd,aACA,IAAI;AACW,QAAnB,UAAK,AAAa,YAAD;AACE,QAAnB,UAAK,AAAa,YAAD;AACD,QAAhB,UAAK,AAAU,SAAD;AACE,QAAhB,UAAK,AAAU,SAAD;AACC,QAAf,UAAK,AAAS,QAAD;AACE,QAAf,UAAK,AAAS,QAAD;AAC2D,QAAxE,mBAAoB,+BAAkB,AAAc,4BAAe;;IAEvE;YAIoB;;AACP,iBAAO,4BACd,AAAO,AAAO,AAAW,gDACzB,kBAAO,AAAO,AAAO,iCAAY,AAAO,AAAO;AACxC,iBAAO;AAEsC,MADxD,AAAO,AAAkB,AAAmB,4EACxC,AAAO,AAAQ,4BAAC,2BAAsB,AAAO;AACjD,UAA6B,aAAzB,AAAO,iCAAoB,eAC3B,AAAO,AAAO,AAAY,iEACzB,AAAO,AAAO,AAAY,uDAC3B,AAAO,AAAO,AAAY,qDAAoB,kBAC9C,AAAO,AAAO,AAAY,AAAiB,mEAC3C,kBAAa,kBACb,AAAU,AAAS,yCACG,0BAAtB,AAAU,AAAQ,+BAAC,OAC+B,AAAI,aAAtD,AAAO,AAAO,AAAY,AAAiB,8DAAS,kBAChD,AAAO,AAAQ,AAAsB,4BAArB,sDACpB,AAAO,AAAQ,AAAsB,AAAU,AAAS,4BAAxC;AACI,2DAClB,AAAO,AAAQ,4BAAC;AACE,uDACwB,AAAI,aAA7C,AAAe,AAAU,AAAS,cAApB,gCAA6B,kBAAK,4BAC3C,AAAe,AAAU,AAAQ,cAAnB,2BAAoB,4BAClC;AACN;AAAO;AAAO;AAAO;AAAO;AAAO;AACjB,QAAtB,cAAQ,UAAU,eAAV,OAAY;AACE,QAAtB,eAAQ,UAAU,gBAAV,OAAY;AACE,QAAtB,gBAAQ,UAAU,iBAAV,OAAY;AACE,QAAtB,gBAAQ,UAAU,iBAAV,OAAY;AACE,QAAtB,gBAAQ,UAAU,iBAAV,OAAY;AACE,QAAtB,gBAAQ,UAAU,iBAAV,OAAY;AAEpB,YAAI,UAAU,IAAI,SACb,AAAM,KAAD,YAAU,AAAM,KAAD,aACrB,AAAO,AAAO,AAAY,4CAAW;AAC7B;AAAU;AACf;AACU;AAEkD,UADjE,WACI,mBAAY,AAAO,sBAAQ,AAAO,AAAO,AAAY;AAEQ,UADjE,WACI,mBAAY,AAAO,sBAAQ,AAAO,AAAO,AAAY;AACzD,cAAI,QAAQ,IAAI,QAAQ,QAAQ,IAAI;AAQS,YAP3C,cAK4C,aAL9B,AAAS,AAAc,QAAf,yBACd,AAAO,AAAO,AAAc,6DAChC,AAAS,AAAc,QAAf,yBACJ,AAAO,AAAO,AAAc,6DAChC,AAAS,AAAc,QAAf,yBACJ,AAAO,AAAO,AAAc,6DAChC,AAAS,AAAc,QAAf,yBACJ,AAAO,AAAO,AAAc;;AAEtC,wBAAI,WAAW;AAEwC,YADrD,WAAW,uBAAgB,cAAQ,cAAQ,QAAQ,EAAE,QAAQ,EACzD,AAAO,AAAO,2CAAsB,aAAQ,IAAI;AAClC,YAAlB,QAAQ,AAAS,QAAD;AACE,YAAlB,QAAQ,AAAS,QAAD;AAGqC,YADrD,WAAW,uBAAgB,cAAQ,cAAQ,QAAQ,EAAE,QAAQ,EACzD,AAAO,AAAO,2CAAsB,aAAQ,IAAI;AAClC,YAAlB,QAAQ,AAAS,QAAD;AACE,YAAlB,QAAQ,AAAS,QAAD;AAEqC,YADrD,WAAW,uBAAgB,aAAO,aAAO,QAAQ,EAAE,QAAQ,EACvD,AAAO,AAAO,2CAAsB,aAAQ,IAAI;AAClC,YAAlB,QAAQ,AAAS,QAAD;AACE,YAAlB,QAAQ,AAAS,QAAD;;;AAoBnB,QAjBD,8BACE,MAAM,EACN,aACA,kBACA,sBACA,AAAe,cAAD,KACd,AAAe,cAAD,KACd,AAAe,cAAD,KACd,AAAe,cAAD,KACd,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,AAAe,cAAD,KACd,AAAe,cAAD,KACd,KAAK,EACL,KAAK;;AAGY,QAAnB,AAAK,IAAD,QAAQ,SAAI;AACG,QAAnB,AAAK,IAAD,QAAQ,SAAI;AACG,QAAnB,AAAK,IAAD,QAAQ,SAAI;AAC4C,QAA5D,uBAAgB,MAAM,EAAE,AAAO,uBAAW,kBAAa,IAAI;;IAE/D;YAGuB;AACH,MAAlB,eAAS,AAAM,MAAA,QAAC;AACE,MAAlB,eAAS,AAAM,MAAA,QAAC;AACE,MAAlB,eAAS,AAAM,MAAA,QAAC;AACE,MAAlB,eAAS,AAAM,MAAA,QAAC;AACF,MAAd,cAAQ;AACM,MAAd,cAAQ;IACV;;;IAjNI;IAGA;IAGA;IAGA;IAGA;IAGA;IACA;IAAQ;IAAQ;IAAQ;IAAQ;IAAO;IACd;IACvB;;;EAgMR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MC3HuB;;;;;;;AAIW;MAAa;;MAItB;iBAGf,aAA8B,OAAW;AAC7B,gDAAU;AACP,QAArB,AAAQ,OAAD,UAAU;AACiB,QAAlC,AAAQ,OAAD,iBAAgB,WAAW;AACK,QAAvC,AAAQ,OAAD,mBAAmB,aAAa;AACvC,sBAAI,AAAO,AAAY,+CACnB,AAAO,AAAY,8CAAoB,kBACvC,AAAO,AAAY,AAAiB,4DACO,AAAI,aAA/C,AAAO,AAAY,AAAiB,uDAAS,kBACzC,AAAQ,OAAD,mBACX,AAAO,AAAY,AAAgB,AAAuB,AAAY,kDAAlC,AAAQ,OAAD,gCACvC,AAAQ,AAAO,OAAR;AAEgD,UAD7D,AAAQ,OAAD,aAAC,2BACJ,AAAO,AAAY,AAAgB,kDAAC,AAAQ,OAAD;;AAExB,QAAzB,sBAAiB,OAAO;AACH,QAArB,AAAQ,OAAD,SAAS,KAAK;AACA,QAArB,AAAS,oBAAI,OAAO;AACpB,cAAO,QAAO;MAChB;kBAEwB,QAAqB;AACpB,QAAvB,AAAQ,OAAD,SAAS,MAAM;MACxB;uBAImC;AACf,oDAAc,OAAO;AACY,QAAnD,AAAY,WAAD,SAAS,AAAY,AAAO,WAAR;AAC0B,QAAzD,AAAY,WAAD,eAAe,AAAY,AAAO,WAAR;AACa,QAAlD,AAAY,WAAD,eAAe,AAAY,AAAO,WAAR;AACiB,QAAtD,AAAY,WAAD,eAAe,AAAY,WAAD;AACa,QAAlD,AAAY,WAAD,aAAa,AAAY,WAAD;MACrC;qBAIwB,OAAc,QAAc,WAC1C,aAAoB,QAAe;AAChC,mBAAO,gBAAK,AAAe,2BAAO,AAAe;AACjD,yBAAa,wBACpB,AAAe,2BAAO,kBAAO,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE;AAClB,QAAtC,AAAO,MAAD,UAAU,UAAU,EAAE,SAAS;AACG,QAAxC,AAAO,MAAD,UAAU,UAAU,EAAE,WAAW;MACzC;oBAIuB,OAAc,QAAe,WAAkB,QACvD,QAAY,OAAsB;AAC7C,gCAAU,MAAM,EAAE,SAAS,EAAE,kBAAO,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,KAAK;MAAC;;;;UAnJ/C;UACc;UACE;UACN;UACF;UACC;UACf;UACN;UACA;UACA;UACD;UACS;UACI;UACD;UACF;UACX;UACA;UACQ;UACN;UACD;UACC;UACQ;UACG;UACb;UACU;UACR;UACA;UACQ;MACE,yBAAiB,KAAf,cAAc,QAAd,OAAiC;AAClD,yDACkB,YAAY,gBACZ,YAAY,wBACJ,oBAAoB,oBACxB,gBAAgB,mBACjB,eAAe,cACpB,UAAU,aACX,SAAS,aACT,SAAS,QACd,IAAI,SACH,KAAK,cACA,UAAU,kBACN,cAAc,qBACX,iBAAiB,aACzB,SAAS,sBACA,kBAAkB,iBACvB,aAAa,aACjB,SAAS,qBACD,iBAAiB,eACvB,WAAW,eACX,WAAW,YACd,QAAQ,qBACC,iBAAiB,kBACpB,cAAc,qBACX,iBAAiB,kBACpB,cAAc,gBAChB,YAAY,WACjB,OAAO;;IAAC;;;;;;;;;;;;;;;;;;;;;;;;;;MCwBN;;;;;;;AAIW;MAAoB;;AAKvB,QAA3B,qBAAe;MACjB;uBAGuD;AAC5B,uDAAU;AACd,QAArB,sBAAgB;AAChB,YAAI,OAAO,IAAI;AACyD,UAAtE,AAAQ,OAAD,iBAAgB,AAAO,AAAa,AAAc,mDAAQ;AAC5C,UAArB,AAAQ,OAAD,UAAU;AACjB,wBAAI,AAAO,AAAY,+CACnB,AAAO,AAAY,+BAAG,KACtB,AAAO,AAAY,+BAAG,KACtB,AAAO,AAAY,8CAAoB,kBACvC,AAAO,AAAY,AAAiB,4DACO,AAAI,aAA/C,AAAO,AAAY,AAAiB,uDAAS,kBACzC,AAAQ,OAAD,mBACX,AAAO,AAAY,AAAgB,AAC1B,AAAY,kDADe,AAAQ,OAAD,gCAEvC,AAAQ,AAAO,OAAR;AAEgD,YAD7D,AAAQ,OAAD,aAAC,2BACJ,AAAO,AAAY,AAAgB,kDAAC,AAAQ,OAAD;;AAExB,UAAzB,sBAAiB,OAAO;AACsB,UAA9C,AAAQ,OAAD,eAAe,AAAQ,OAAD;AACa,UAA1C,AAAQ,OAAD,aAAa,AAAQ,OAAD;AACN,UAArB,AAAS,oBAAI,OAAO;;MAExB;uBAImC;AACU,QAA3C,AAAQ,OAAD,SAAS,AAAQ,AAAO,OAAR;AACyB,QAAhD,AAAQ,OAAD,eAAe,AAAQ,AAAO,OAAR;AACmB,QAAhD,AAAQ,OAAD,eAAe,AAAQ,AAAO,OAAR;MAC/B;qBAIwB,OAAc,QAAc,WAC1C,aAAoB,QAAe;AACO,QAAlD,AAAO,MAAD,UAAU,AAAa,2BAAC,KAAK,GAAG,WAAW;AACD,QAAhD,AAAO,MAAD,UAAU,AAAa,2BAAC,KAAK,GAAG,SAAS;MACjD;oBAIuB,OAAc,QAAe,WAAkB,QACvD,QAAY,OAAsB;AAC7C,gCAAU,MAAM,EAAE,SAAS,EAAE,kBAAO,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,KAAK;MAAC;;;;UAzI/C;UACc;UACE;UACN;UACF;UACC;UACf;UACN;UACA;UACA;UACA;UACS;UACV;UACS;UACI;UACD;UACb;UACA;UACQ;UACN;UACD;UACC;UACQ;UACG;UACb;UACU;UACR;UACA;UACQ;MACE,0BAAiB,KAAf,cAAc,QAAd,OAAiC;AAClD,gEACkB,YAAY,gBACZ,YAAY,wBACJ,oBAAoB,oBACxB,gBAAgB,mBACjB,eAAe,cACpB,UAAU,aACX,SAAS,aACT,SAAS,QACd,IAAI,SACH,KAAK,cACA,UAAU,kBACN,cAAc,qBACX,iBAAiB,aACzB,SAAS,sBACA,kBAAkB,iBACvB,aAAa,aACjB,SAAS,qBACD,iBAAiB,eACvB,WAAW,eACX,WAAW,YACd,QAAQ,qBACC,iBAAiB,kBACpB,cAAc,qBACX,iBAAiB,kBACpB,cAAc,gBAChB,YAAY,aACf,SAAS,WACX,OAAO;;IAAC;;;;;;;;;;;;;;;;;;;;;;;;;MCsBN;;;;;;;AAIW;MAAuB;;AAK1B,QAA3B,qBAAe;MACjB;uBAGuD;AACzB,0DAAU;AACjB,QAArB,sBAAgB;AAChB,YAAI,OAAO,IAAI;AACyD,UAAtE,AAAQ,OAAD,iBAAgB,AAAO,AAAa,AAAc,mDAAQ;AAC5C,UAArB,AAAQ,OAAD,UAAU;AACjB,wBAAI,AAAO,AAAY,+CACnB,AAAO,AAAY,+BAAG,KACtB,AAAO,AAAY,+BAAG,KACtB,AAAO,AAAY,8CAAoB,kBACvC,AAAO,AAAY,AAAiB,4DACO,AAAI,aAA/C,AAAO,AAAY,AAAiB,uDAAS,kBACzC,AAAQ,OAAD,mBACX,AAAO,AAAY,AAAgB,AAC1B,AAAY,kDADe,AAAQ,OAAD,gCAEvC,AAAQ,AAAO,OAAR;AAEgD,YAD7D,AAAQ,OAAD,aAAC,2BACJ,AAAO,AAAY,AAAgB,kDAAC,AAAQ,OAAD;;AAExB,UAAzB,sBAAiB,OAAO;AACsB,UAA9C,AAAQ,OAAD,eAAe,AAAQ,OAAD;AACa,UAA1C,AAAQ,OAAD,aAAa,AAAQ,OAAD;AACN,UAArB,AAAS,oBAAI,OAAO;;MAExB;uBAImC;AACU,QAA3C,AAAQ,OAAD,SAAS,AAAQ,AAAO,OAAR;AACyB,QAAhD,AAAQ,OAAD,eAAe,AAAQ,AAAO,OAAR;AACmB,QAAhD,AAAQ,OAAD,eAAe,AAAQ,AAAO,OAAR;MAC/B;qBAIwB,OAAc,QAAc,WAC1C,aAAoB,QAAe;AACO,QAAlD,AAAO,MAAD,UAAU,AAAa,2BAAC,KAAK,GAAG,WAAW;AACD,QAAhD,AAAO,MAAD,UAAU,AAAa,2BAAC,KAAK,GAAG,SAAS;MACjD;oBAIuB,OAAc,QAAe,WAAkB,QACvD,QAAY,OAAsB;AAC7C,gCAAU,MAAM,EAAE,SAAS,EAAE,kBAAO,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,KAAK;MAAC;;;;UAzI/C;UACc;UACE;UACN;UACF;UACC;UACf;UACN;UACA;UACA;UACA;UACD;UACS;UACC;UACG;UACD;UACb;UACA;UACQ;UACN;UACD;UACC;UACQ;UACG;UACb;UACU;UACR;UACA;UACQ;MACE,0BAAiB,KAAf,cAAc,QAAd,OAAiC;AAClD,mEACkB,YAAY,gBACZ,YAAY,wBACJ,oBAAoB,oBACxB,gBAAgB,mBACjB,eAAe,cACpB,UAAU,aACX,SAAS,aACT,SAAS,QACd,IAAI,SACH,KAAK,cACA,UAAU,kBACN,cAAc,qBACX,iBAAiB,aACzB,SAAS,sBACA,kBAAkB,iBACvB,aAAa,aACjB,SAAS,qBACD,iBAAiB,eACvB,WAAW,eACX,WAAW,YACd,QAAQ,qBACC,iBAAiB,kBACpB,cAAc,qBACX,iBAAiB,kBACpB,cAAc,gBAChB,YAAY,aACf,SAAS,WACX,OAAO;;IAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MC+Bf;;;;;;MAoBA;;;;;;MAqBC;;;;;;MAoBA;;;;;;MAyBA;;;;;;MAsBM;;;;;;MAuBR;;;;;;;AAIqB;MAAY;;MAIrB;iBAGU,cACzB,YACA,aACU,gBACG,OACb,QACA;AACW,+CAAU;AACN,QAArB,AAAQ,OAAD,UAAU;AACI,QAArB,AAAQ,OAAD,SAAS,KAAK;AACa,QAAlC,AAAQ,OAAD,iBAAgB,WAAW;AACM,QAAxC,AAAQ,OAAD,uBAAuB,UAAU;AACD,QAAvC,AAAQ,OAAD,mBAAmB,aAAa;AACH,QAApC,AAAQ,OAAD,kBAAiB,YAAY;AACpC,sBAAI,AAAO,AAAY,0DAClB,AAAO,AAAY,gDACpB,AAAO,AAAY,8CAAoB,kBACvC,AAAO,AAAY,AAAiB,4DACO,AAAI,aAA/C,AAAO,AAAY,AAAiB,uDAAS,kBACzC,AAAQ,OAAD,mBACX,AAAO,AAAY,AAAgB,AAAuB,AAAY,kDAAlC,AAAQ,OAAD,gCACvC,AAAQ,AAAO,OAAR;AAEgD,UAD7D,AAAQ,OAAD,aAAC,2BACJ,AAAO,AAAY,AAAgB,kDAAC,AAAQ,OAAD;AAKrC,UAJV,AAAQ,OAAD,cAC6C,UAD/B,AAAQ,AAAU,AAAS,OAApB,qCACU,qBAA9B,AAAQ,AAAU,AAAQ,OAAnB,2BAAoB,OACU,AAAI,aAAzC,AAAQ,AAAU,AAAY,OAAvB,qCAAgC,kBAAK,UAAU,IACxD,AAAQ,AAAU,AAAW,OAAtB,gCAAuB,UAAU,IACxC;cACD,eAAI,AAAO,AAAY,gDAC1B,AAAO,AAAY,sCAAY,kBAC/B,AAAO,AAAY,AAAS;AAEgC,UAD9D,AAAQ,OAAD,sBACH,AAAO,AAAY,AAAiB,oDAAC,AAAQ,OAAD;AAChD,mBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,AAAY,AAAS,8CAAQ,IAAA,AAAC,CAAA;AACpC,6BAAa,AAAO,AAAY,AAAQ,0CAAC,CAAC;AAC7D,gBAAI,AAAW,AAAoB,UAArB,wBAAwB,AAAQ,OAAD,wBACzC,AAAW,AAAa,UAAd,kBAAiB,AAAQ,OAAD;AACiB,cAArD,AAAQ,OAAD,eAAc,AAAW,AAAY,UAAb;;;;AAIkB,QAAvD,AAAQ,OAAD,QAAQ,qBAAc,YAAY,EAAE;AAC3C,YAAI,qBAAgB;AACuD,UAAzE,AAAQ,OAAD,eAAe,wBAAiB,AAAa,YAAD,SAAS;;AAG9D,sBAAI;AACF,cAAI,qBAAgB;AAEgD,YADlE,AAAQ,OAAD,kBACH,wBAAiB,AAAa,YAAD,oBAAoB;;;AAGhC,QAAzB,sBAAiB,OAAO;AACH,QAArB,AAAS,oBAAI,OAAO;AACpB,cAAO,QAAO;MAChB;kBAEwB,QAAqB;AACpB,QAAvB,AAAQ,OAAD,SAAS,MAAM;MACxB;uBAImC;AAChB,kDAAa,OAAO;AACS,QAA9C,AAAW,UAAD,SAAS,AAAQ,AAAO,OAAR;AACyB,QAAnD,AAAW,UAAD,eAAe,AAAQ,AAAO,OAAR;AACmB,QAAnD,AAAW,UAAD,eAAe,AAAQ,AAAO,OAAR;AACoB,QAApD,AAAW,UAAD,eAAe,AAAW,UAAD;AACa,QAAhD,AAAW,UAAD,aAAa,AAAW,UAAD;AAC+B,QAAhE,AAAW,UAAD,sBAAqB,AAAW,UAAD;AAC2B,QAApE,AAAW,UAAD,wBAAuB,AAAW,UAAD;MAC7C;qBAIwB,OAAc,QAAc,WAC1C,aAAoB,QAAe;AAChC,mBAAO,gBAAK,AAAe,2BAAO,AAAe;AACjD,yBAAa,wBACpB,AAAe,2BAAO,kBAAO,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE;AAClB,QAAtC,AAAO,MAAD,UAAU,UAAU,EAAE,SAAS;AACG,QAAxC,AAAO,MAAD,UAAU,UAAU,EAAE,WAAW;MACzC;oBAIuB,OAAc,QAAe,WAAkB,QACvD,QAAY,OAAsB;AAC7C,gCAAU,MAAM,EAAE,SAAS,EAAE,kBAAO,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,KAAK;MAAC;;;;UArU/C;UACc;UACE;UACN;UACF;UACC;UACf;UACR;UACE;UACA;UACA;UACD;UACC;UACA;UACQ;UACI;UACD;UACb;UACU;UACF;UACR;UACE;UACD;UACA;UACC;UACA;UACS;UACV;UACC;UACW;UACb;UACU;UACR;UACA;UACM;UACH;MAqCV;MACA;MAlEK;MA6BQ,sBAAa,KAAX,UAAU,QAAV,OAAqB;MACjB,4BAAmB,MAAjB,gBAAgB,SAAhB,OAA2B;MAC7B,4BAAmB,OAAjB,gBAAgB,UAAhB,OAAoB;MAC1B,wBAAe,OAAb,YAAY,UAAZ,OAAgB;MACvB,mBAAU,OAAR,OAAO,UAAP,OAAW;MACR,wBAAe,OAAb,YAAY,UAAZ;AACf,gDACU,IAAI,gBACI,YAAY,gBACZ,YAAY,wBACJ,oBAAoB,oBACxB,gBAAgB,mBACjB,eAAe,cACpB,UAAU,aACX,SAAS,aACT,SAAS,SACb,KAAK,cACA,UAAU,UACT,OAAN,KAAK,UAAL,OAAS,6BACA,cAAc,qBACX,iBAAiB,sBAChB,kBAAkB,aAC3B,SAAS,YACV,QAAQ,iBACH,aAAa,qBACT,iBAAiB,eACvB,WAAW,eACX,WAAW,qBACL,iBAAiB,kBACpB,cAAc,qBACX,iBAAiB,kBACpB,cAAc,gBAChB,YAAY,WACjB,OAAO,8BACY,0BAA0B,aAC3C,SAAS;;IAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MCSrB;;;;;;MAmBA;;;;;;;AAMsB;MAAe;;MAIxB;kBAEC,QAAqB;AACpB,QAAvB,AAAQ,OAAD,SAAS,MAAM;MACxB;iBAEqD,cAC7C,YAAgB,aAAiB;AACnB,kDAAU;AACT,QAArB,sBAAgB;AAChB,YAAI,OAAO,IAAI;AACqB,UAAlC,AAAQ,OAAD,iBAAgB,WAAW;AACM,UAAxC,AAAQ,OAAD,uBAAuB,UAAU;AACN,UAAlC,AAAQ,OAAD,iBAAgB,WAAW;AACb,UAArB,AAAQ,OAAD,UAAU;AACsB,UAAvC,AAAQ,OAAD,mBAAmB,aAAa;AACH,UAApC,AAAQ,OAAD,kBAAiB,YAAY;AACpC,wBAAI,AAAO,AAAY,+CACnB,AAAO,AAAY,8CAAoB,kBACvC,AAAO,AAAY,AAAiB,4DACO,AAAI,aAA/C,AAAO,AAAY,AAAiB,uDAAS,kBACzC,AAAQ,OAAD,mBACX,AAAO,AAAY,AAAgB,AAC1B,AAAY,kDADe,AAAQ,OAAD,gCAEvC,AAAQ,AAAO,OAAR;AAEgD,YAD7D,AAAQ,OAAD,aAAC,2BACJ,AAAO,AAAY,AAAgB,kDAAC,AAAQ,OAAD;AAIjC,YAHd,AAAQ,OAAD,cACmC,AAAI,aAAzC,AAAQ,AAAU,AAAY,OAAvB,qCAAgC,kBAAK,UAAU,IACjD,AAAQ,AAAU,AAAW,OAAtB,gCAAuB,UAAU,IACxC;;AAEoB,UAAhC,AAAQ,OAAD;AACkB,UAAzB,sBAAiB,OAAO;AACsB,UAA9C,AAAQ,OAAD,eAAe,AAAQ,OAAD;AACa,UAA1C,AAAQ,OAAD,aAAa,AAAQ,OAAD;AACN,UAArB,AAAS,oBAAI,OAAO;;AAEtB,cAAO,QAAO;MAChB;uBAImC;;AACb,wDAAgB,OAAO;AACY,QAAvD,AAAc,aAAD,SAAS,AAAc,AAAO,aAAR;AAEsC,QADzE,AAAc,aAAD,gBACwB,KAAjC,AAAc,AAAO,aAAR,2BAAQ,OAAe,AAAc,AAAO,aAAR;AACO,QAA5D,AAAc,aAAD,eAAe,AAAc,AAAO,aAAR;AACiB,QAA1D,AAAc,aAAD,eAAe,AAAc,aAAD;AACa,QAAtD,AAAc,aAAD,aAAa,AAAc,aAAD;MACzC;qBAIwB,OAAc,QAAc,WAC1C,aAAoB,QAAe;AAChC,mBAAO,gBAAK,AAAe,2BAAO,AAAe;AACjD,yBAAa,wBACpB,AAAe,2BAAO,kBAAO,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE;AAClB,QAAtC,AAAO,MAAD,UAAU,UAAU,EAAE,SAAS;AACG,QAAxC,AAAO,MAAD,UAAU,UAAU,EAAE,WAAW;MACzC;oBAIuB,OAAc,QAAe,WAAkB,QACvD,QAAY,OAAsB;AAC7C,gCAAU,MAAM,EAAE,SAAS,EAAE,kBAAO,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,KAAK;MAAC;;;;UAlL/C;UACc;UACE;UACN;UACJ;UACE;UACC;UACrB;UACA;UACD;UACS;UACC;UACZ;UACA;UACe;UACD;UACb;UACE;UACF;UACQ;UACN;UACD;UACC;UACQ;UACG;UACb;UACU;UACF;UACN;UACA;UACG;MAwEV;MAAU;MAvEM,wBAAgB,KAAd,aAAa,QAAb,OAAiB;MACnB,wBAAgB,MAAd,aAAa,SAAb,OAAiB;AACjC,mDACU,IAAI,gBACI,YAAY,gBACZ,YAAY,wBACJ,oBAAoB,oBACxB,gBAAgB,mBACjB,eAAe,mBACf,eAAe,cACpB,UAAU,cACV,UAAU,aACX,SAAS,aACT,SAAS,SACb,KAAK,kBACI,cAAc,sBACV,kBAAkB,qBACnB,iBAAiB,aACzB,SAAS,iBACL,aAAa,aACjB,SAAS,qBACD,iBAAiB,eACvB,WAAW,eACX,WAAW,YACd,QAAQ,qBACC,iBAAiB,kBACpB,cAAc,qBACX,iBAAiB,kBACpB,cAAc,gBAChB,YAAY,WACjB,OAAO,8BACY,0BAA0B;;IAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MCgCrD;;;;;;MAoBA;;;;;;MAqBC;;;;;;MAoBA;;;;;;MAuBA;;;;;;MAqBF;;;;;;MAqBQ;;;;;;;AAIa;MAAe;;MAIxB;iBAGU,cACzB,YACU,gBACV,aACA;;AACc,kDAAU;AACT,QAArB,AAAQ,OAAD,UAAU;AACK,QAAtB,AAAQ,OAAD,SAAS;AACkB,QAAlC,AAAQ,OAAD,iBAAgB,WAAW;AACM,QAAxC,AAAQ,OAAD,uBAAuB,UAAU;AACD,QAAvC,AAAQ,OAAD,mBAAmB,aAAa;AAC7B,qBAAS,mCAAS,AAAO,AAAc,uCAAS;AAO/C,QANX,AAAa,YAAD,UAAU,2CACE,WAApB,AAAa,YAAD,eAAU,AAAe,cAAD,6BACpC,AAAa,YAAD,0BACQ,WAApB,AAAa,YAAD,eAAU,AAAe,cAAD,aACpC,mCAAS,AAAO,AAAc,uCAAS,IACvC,MACA;AACgC,QAApC,AAAQ,OAAD,kBAAiB,YAAY;AACpC,sBAAI,AAAO,AAAY,0DAClB,AAAO,AAAY,gDACpB,AAAO,AAAY,8CAAoB,kBACvC,AAAO,AAAY,AAAiB,4DACO,AAAI,aAA/C,AAAO,AAAY,AAAiB,uDAAS,kBACzC,AAAQ,OAAD,mBACX,AAAO,AAAY,AAAgB,AAAuB,AAAY,kDAAlC,AAAQ,OAAD,gCACvC,AAAQ,AAAO,OAAR;AAEgD,UAD7D,AAAQ,OAAD,aAAC,2BACJ,AAAO,AAAY,AAAgB,kDAAC,AAAQ,OAAD;AAKrC,UAJV,AAAQ,OAAD,cACgD,UADlC,AAAQ,AAAU,AAAS,OAApB,qCACU,wBAA9B,AAAQ,AAAU,AAAQ,OAAnB,2BAAoB,OACU,AAAI,aAAzC,AAAQ,AAAU,AAAY,OAAvB,qCAAgC,kBAAK,UAAU,IACxD,AAAQ,AAAU,AAAW,OAAtB,gCAAuB,UAAU,IACxC;cACD,eAAI,AAAO,AAAY,gDAC1B,AAAO,AAAY,sCAAY,kBAC/B,AAAO,AAAY,AAAS;AAEgC,UAD9D,AAAQ,OAAD,sBACH,AAAO,AAAY,AAAiB,oDAAC,AAAQ,OAAD;AAChD,mBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,AAAY,AAAS,8CAAQ,IAAA,AAAC,CAAA;AACpC,6BAAa,AAAO,AAAY,AAAQ,0CAAC,CAAC;AAC7D,gBAAI,AAAW,AAAoB,UAArB,wBAAwB,AAAQ,OAAD,wBACzC,AAAW,AAAa,UAAd,kBAAiB,AAAQ,OAAD;AACiB,cAArD,AAAQ,OAAD,eAAc,AAAW,AAAY,UAAb;;;;AAIkB,QAAvD,AAAQ,OAAD,QAAQ,qBAAc,YAAY,EAAE;AAC3C,YAAI,qBAAgB;AACuD,UAAzE,AAAQ,OAAD,eAAe,wBAAiB,AAAa,YAAD,SAAS;;AAG9D,sBAAI;AASyC,UAR3C,AAAa,YAAD,qBAAqB,iDACT,WAApB,AAAa,YAAD,eAAU,AAAe,cAAD,6BACpC,AAAa,YAAD,0BACQ,WAApB,AAAa,YAAD,eAAU,AAAe,cAAD,aACpC,MAAM,EACN,MACA,cACA,wBAAO,AAAQ,AAAO,OAAR,+BAAQ,OAAQ,uBAC1B,AAAQ,AAAO,OAAR,gCAAQ,OAAQ;AAC/B,cAAI,qBAAgB;AAEgD,YADlE,AAAQ,OAAD,eACH,wBAAiB,AAAa,YAAD,oBAAoB;;;AAGhC,QAAzB,sBAAiB,OAAO;AACH,QAArB,AAAS,oBAAI,OAAO;AACpB,cAAO,QAAO;MAChB;kBAEwB,QAAqB;AACpB,QAAvB,AAAQ,OAAD,SAAS,MAAM;MACxB;uBAImC;;AACb,wDAAgB,OAAO;AAEZ,QAD/B,AAAc,aAAD,UAAsD,KAA7C,AAAc,AAAc,aAAf,wCAAe,OAC9C,AAAQ,AAAO,OAAR;AAC2C,QAAtD,AAAc,aAAD,eAAe,AAAQ,AAAO,OAAR;AACmB,QAAtD,AAAc,aAAD,eAAe,AAAQ,AAAO,OAAR;AACuB,QAA1D,AAAc,aAAD,eAAe,AAAc,aAAD;AACa,QAAtD,AAAc,aAAD,aAAa,AAAc,aAAD;AAC+B,QAAtE,AAAc,aAAD,sBAAqB,AAAc,aAAD;AAC2B,QAA1E,AAAc,aAAD,wBAAuB,AAAc,aAAD;MACnD;qBAIwB,OAAc,QAAc,WAC1C,aAAoB,QAAe;AAChC,mBAAO,gBAAK,AAAe,2BAAO,AAAe;AACjD,yBAAa,wBACpB,AAAe,2BAAO,kBAAO,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE;AAClB,QAAtC,AAAO,MAAD,UAAU,UAAU,EAAE,SAAS;AACG,QAAxC,AAAO,MAAD,UAAU,UAAU,EAAE,WAAW;MACzC;oBAIuB,OAAc,QAAe,WAAkB,QACvD,QAAY,OAAsB;AAC7C,gCAAU,MAAM,EAAE,SAAS,EAAE,kBAAO,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,KAAK;MAAC;;;;UAhV/C;UACc;UACE;UACN;UACF;UACC;UACf;UACR;UACE;UACA;UACA;UACD;UACC;UACA;UACQ;UACC;UACG;UACD;UACb;UACU;UACF;UACR;UACE;UACD;UACA;UACC;UACA;UACD;UACC;UACW;UACb;UACU;UACR;UACA;UACM;UACH;MAqCV;MACA;MAlEK;MA6BQ,sBAAa,KAAX,UAAU,QAAV,OAAqB;MACjB,4BAAmB,MAAjB,gBAAgB,SAAhB,OAA2B;MAC7B,4BAAmB,OAAjB,gBAAgB,UAAhB,OAAoB;MAC1B,wBAAe,OAAb,YAAY,UAAZ,OAAgB;MACvB,mBAAU,OAAR,OAAO,UAAP,OAAW;MACR,wBAAe,OAAb,YAAY,UAAZ;AACf,mDACU,IAAI,gBACI,YAAY,gBACZ,YAAY,wBACJ,oBAAoB,oBACxB,gBAAgB,mBACjB,eAAe,cACpB,UAAU,aACX,SAAS,aACT,SAAS,cACR,UAAU,SACf,KAAK,UACC,OAAN,KAAK,UAAL,OAAS,6BACA,cAAc,qBACX,iBAAiB,aACzB,SAAS,YACV,QAAQ,sBACE,kBAAkB,iBACvB,aAAa,qBACT,iBAAiB,eACvB,WAAW,eACX,WAAW,qBACL,iBAAiB,kBACpB,cAAc,qBACX,iBAAiB,kBACpB,cAAc,gBAChB,YAAY,WACjB,OAAO,aACL,SAAS,8BACQ,0BAA0B;;IAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACbjC;MAAiB;;MAI1B;iBAIf,aAA8B,OAAW;AACzB,oDAAU;AACX,QAArB,AAAQ,OAAD,UAAU;AACiB,QAAlC,AAAQ,OAAD,iBAAgB,WAAW;AACK,QAAvC,AAAQ,OAAD,mBAAmB,aAAa;AACd,QAAzB,sBAAiB,OAAO;AACH,QAArB,AAAQ,OAAD,SAAS,KAAK;AACA,QAArB,AAAS,oBAAI,OAAO;AACpB,cAAO,QAAO;MAChB;kBAGwB,QAAqB;AACpB,QAAvB,AAAQ,OAAD,SAAS,MAAM;MACxB;uBAImC;AACX,4DAAkB,OAAO;AACY,QAA3D,AAAgB,eAAD,SAAS,AAAgB,AAAO,eAAR;AAC0B,QAAjE,AAAgB,eAAD,eAAe,AAAgB,AAAO,eAAR;AACa,QAA1D,AAAgB,eAAD,eAAe,AAAgB,AAAO,eAAR;AACiB,QAA9D,AAAgB,eAAD,eAAe,AAAgB,eAAD;AACa,QAA1D,AAAgB,eAAD,aAAa,AAAgB,eAAD;MAC7C;qBAIwB,OAAc,QAAc,WAC1C,aAAoB,QAAe;AAChC,mBAAO,gBAAK,AAAe,2BAAO,AAAe;AACjD,yBAAa,wBACpB,AAAe,2BAAO,kBAAO,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE;AAClB,QAAtC,AAAO,MAAD,UAAU,UAAU,EAAE,SAAS;AACG,QAAxC,AAAO,MAAD,UAAU,UAAU,EAAE,WAAW;MACzC;oBAIuB,OAAc,QAAe,WAAkB,QACvD,QAAY,OAAsB;AAC7C,gCAAU,MAAM,EAAE,SAAS,EAAE,kBAAO,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,KAAK;MAAC;;;;UAxG/C;UACc;UACE;UACN;UACD;UACrB;UACA;UACD;UACC;UACM;UACE;UACA;UACI;UACH;UACE;UACL;UACR;UACE;UACF;UACE;UACW;UACb;UACU;UACR;UACA;AACL,qDACU,IAAI,gBACI,YAAY,gBACZ,YAAY,wBACJ,oBAAoB,mBACzB,eAAe,cACpB,UAAU,aACX,SAAS,aACT,SAAS,cACR,UAAU,SACf,KAAK,UACC,KAAN,KAAK,QAAL,OAAS,qBACN,QAAQ,aACP,SAAS,kBACJ,cAAc,sBACV,kBAAkB,qBACnB,iBAAiB,aACzB,SAAS,iBACL,aAAa,qBACT,iBAAiB,qBACjB,iBAAiB,kBACpB,cAAc,qBACX,iBAAiB,kBACpB,cAAc,gBAChB,YAAY,WACjB,OAAO;;IAAC;;;;;;;;;;;;;;;;;;;;;;;MCEvB;;;;;;MACA;;;;;;;AAG4B;MAAa;;AAKvC,2BAAe;AACnB,iBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAY,8BAAQ,IAAA,AAAC,CAAA;AACvC,wBAAI,AAAW,AAAI,0BAAH,CAAC,6BACb,AAAW,AAAI,0BAAH,CAAC,SAAW,sBACvB,AAAW,AAAI,0BAAH,CAAC,QAAU,AAAW,AAAI,0BAAH,CAAC;AACvB,yBAAc;AACG,YAAjC,AAAO,MAAD,uBAAK,AAAW,AAAI,0BAAH,CAAC;AACM,YAA9B,AAAO,MAAD,uBAAK,AAAW,AAAI,0BAAH,CAAC;AACO,YAA/B,AAAO,MAAD,uBAAK,AAAW,AAAI,0BAAH,CAAC;AAC4B,YAApD,qBAAe,MAAM,EAAE,AAAW,0BAAC,CAAC,GAAG,YAAY;AACrC,YAAd,eAAA,AAAY,YAAA;;;MAGlB;uBAG8B,QACG,cAAkB;AAC5B,QAArB,sBAAgB;AACE,gDAAU;AAC5B,YAAI,OAAO,IAAI;AACyD,UAAtE,AAAQ,OAAD,iBAAgB,AAAO,AAAa,AAAc,mDAAQ;AACvB,UAA1C,AAAQ,OAAD,uBAAuB,YAAY;AACrB,UAArB,AAAQ,OAAD,UAAU;AACmB,UAApC,AAAQ,OAAD,kBAAiB,YAAY;AACpC,wBAAI,AAAO,AAAY,0DAClB,AAAO,AAAY,gDACpB,AAAO,AAAY,8CAAoB,kBACvC,AAAO,AAAY,AAAiB,4DACO,AAAI,aAA/C,AAAO,AAAY,AAAiB,uDAAS,kBACzC,AAAQ,OAAD,mBACX,AAAO,AAAY,AAAgB,AAC1B,AAAY,kDADe,AAAQ,OAAD,gCAEvC,AAAQ,AAAO,OAAR;AAEgD,YAD7D,AAAQ,OAAD,aAAC,2BACJ,AAAO,AAAY,AAAgB,kDAAC,AAAQ,OAAD;;AAEQ,UAAzD,AAAQ,OAAD,sBAAqB,AAAa,YAAD;AAChB,UAAxB,AAAQ,OAAD,WAAU,MAAM;AACS,UAAhC,AAAQ,OAAD;AACkB,UAAzB,sBAAiB,OAAO;AACsB,UAA9C,AAAQ,OAAD,eAAe,AAAQ,OAAD;AACa,UAA1C,AAAQ,OAAD,aAAa,AAAQ,OAAD;AACN,UAArB,AAAS,oBAAI,OAAO;;MAExB;uBAImC;AACU,QAA3C,AAAQ,OAAD,SAAS,AAAQ,AAAO,OAAR;AAC0B,QAAjD,AAAQ,OAAD,eAAe,AAAQ,AAAO,OAAR;AACmB,QAAhD,AAAQ,OAAD,eAAe,AAAQ,AAAO,OAAR;MAC/B;qBAIwB,OAAc,QAAc,WAC1C,aAAoB,QAAe;MAAS;oBAI/B,OAAc,QAAe,WAAkB,QACvD,QAAY,OAAsB;AAC7C,gCAAU,MAAM,EAAE,SAAS,EAAE,kBAAO,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,KAAK;MAAC;;;;UApI/C;UACc;UACE;UACA;UACN;UACF;UACC;UACf;UACN;UACA;UACA;UACD;UACS;UACI;UACD;UACb;UACU;UACV;UACE;UACA;UACW;UACb;UACU;UACR;UACM;UACN;UACA;UACG;UACM;MA+BhB;MACA;AA/BE,iDACU,IAAI,aACC,SAAS,WACX,OAAO,gBACF,YAAY,kBACV,cAAc,mBACb,eAAe,wBACV,oBAAoB,oBACxB,gBAAgB,mBACjB,eAAe,SACzB,KAAK,cACA,UAAU,aACX,SAAS,aACT,SAAS,kBACJ,cAAc,qBACX,iBAAiB,aACzB,SAAS,YACV,QAAQ,sBACE,kBAAkB,iBACvB,aAAa,qBACT,iBAAiB,gBACX,KAAZ,WAAW,QAAX,OAAe,8BACT,iBAAiB,kBACpB,cAAc,qBACX,iBAAiB,kBACpB,cAAc,gBAChB,YAAY,WACjB,OAAO,8BACY,0BAA0B,cAC1C,UAAU;;IAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;MCc7B;;;;;;MACA;;;;;;;AAG4B;MAAsB;;AAKhD,2BAAe;AACnB,iBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAY,8BAAQ,IAAA,AAAC,CAAA;AACvC,wBAAI,AAAW,AAAI,0BAAH,CAAC,6BACb,AAAW,AAAI,0BAAH,CAAC,SAAW,sBACvB,AAAW,AAAI,0BAAH,CAAC,QAAU,AAAW,AAAI,0BAAH,CAAC;AACvB,yBAAc;AACG,YAAjC,AAAO,MAAD,uBAAK,AAAW,AAAI,0BAAH,CAAC;AACM,YAA9B,AAAO,MAAD,uBAAK,AAAW,AAAI,0BAAH,CAAC;AACO,YAA/B,AAAO,MAAD,uBAAK,AAAW,AAAI,0BAAH,CAAC;AACO,YAA/B,AAAO,MAAD,uBAAK,AAAW,AAAI,0BAAH,CAAC;AACQ,YAAhC,AAAO,MAAD,uBAAK,AAAW,AAAI,0BAAH,CAAC;AAC4B,YAApD,qBAAe,MAAM,EAAE,AAAW,0BAAC,CAAC,GAAG,YAAY;AACrC,YAAd,eAAA,AAAY,YAAA;;;MAGlB;uBAG8B,QACG,cAAkB;AACtB,yDAAU;AACrC,YAAI,OAAO,IAAI;AACyD,UAAtE,AAAQ,OAAD,iBAAgB,AAAO,AAAa,AAAc,mDAAQ;AACvB,UAA1C,AAAQ,OAAD,uBAAuB,YAAY;AACrB,UAArB,AAAQ,OAAD,UAAU;AACmB,UAApC,AAAQ,OAAD,kBAAiB,YAAY;AACpC,wBAAI,AAAO,AAAY,0DAClB,AAAO,AAAY,gDACpB,AAAO,AAAY,8CAAoB,kBACvC,AAAO,AAAY,AAAiB,4DACO,AAAI,aAA/C,AAAO,AAAY,AAAiB,uDAAS,kBACzC,AAAQ,OAAD,mBACX,AAAO,AAAY,AAAgB,AAC1B,AAAY,kDADe,AAAQ,OAAD,gCAEvC,AAAQ,AAAO,OAAR;AAEgD,YAD7D,AAAQ,OAAD,aAAC,2BACJ,AAAO,AAAY,AAAgB,kDAAC,AAAQ,OAAD;;AAEQ,UAAzD,AAAQ,OAAD,sBAAqB,AAAa,YAAD;AAChB,UAAxB,AAAQ,OAAD,WAAU,MAAM;AACS,UAAhC,AAAQ,OAAD;AACkB,UAAzB,sBAAiB,OAAO;AACsB,UAA9C,AAAQ,OAAD,eAAe,AAAQ,OAAD;AACa,UAA1C,AAAQ,OAAD,aAAa,AAAQ,OAAD;AACN,UAArB,AAAS,oBAAI,OAAO;;MAExB;uBAImC;AACU,QAA3C,AAAQ,OAAD,SAAS,AAAQ,AAAO,OAAR;AAGR,QAFf,AAAQ,OAAD,eAAuB,AAAwB,+BAAhC,OAAO,eAA4B,AAAQ,OAAD,WAC1D,iBACA;AAC0C,QAAhD,AAAQ,OAAD,eAAe,AAAQ,AAAO,OAAR;MAC/B;qBAIwB,OAAc,QAAc,WAC1C,aAAoB,QAAe;MAAS;oBAI/B,OAAc,QAAe,WAAkB,QACvD,QAAY,OAAsB;AAC7C,gCAAU,MAAM,EAAE,SAAS,EAAE,kBAAO,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,KAAK;MAAC;;;;UAnJ/C;UACc;UACE;UACA;UACA;UACA;UACV;UACI;UACF;UACC;UACf;UACN;UACA;UACA;UACD;UACA;UACa;UACD;UACb;UACU;UACV;UACE;UACA;UACW;UACb;UACU;UACR;UACM;UACN;UACA;UACG;UACM;MAwChB;MACA;AAxCE,0DACU,IAAI,aACC,SAAS,WACX,OAAO,gBACF,YAAY,kBACV,cAAc,mBACb,eAAe,mBACf,AAAgB,eAAD,IAAI,OAC9B,QAAK,SAAU,AAAe,eAAA,CAAC,AAAU,UAAA,QAAC,KAAK,GAAG,KAAK,iBACvD,wBACY,AAAiB,gBAAD,IAAI,OAChC,QAAK,SAAU,AAAgB,gBAAA,CAAC,AAAU,UAAA,QAAC,KAAK,GAAG,KAAK,iBACxD,yBACa,AAAkB,iBAAD,IAAI,OAClC,QAAK,SAAU,AAAiB,iBAAA,CAAC,AAAU,UAAA,QAAC,KAAK,GAAG,KAAK,iBACzD,4BACgB,oBAAoB,oBACxB,gBAAgB,mBACjB,eAAe,cACpB,UAAU,aACX,SAAS,aACT,SAAS,qBACD,iBAAiB,aACzB,SAAS,YACV,QAAQ,sBACE,kBAAkB,iBACvB,aAAa,qBACT,iBAAiB,gBACX,KAAZ,WAAW,QAAX,OAAe,8BACT,iBAAiB,kBACpB,cAAc,qBACX,iBAAiB,kBACpB,cAAc,gBAChB,YAAY,WACjB,OAAO,cACK,MAAV,SAAS,SAAT,OAAoB,uCACV,OAAV,SAAS,UAAT,OAAoB,0DACH,0BAA0B,cAC1C,UAAU;;IAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;MCE7B;;;;;;MACA;;;;;;;AAG4B;MAAe;;AAKzC,2BAAe;AACnB,iBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAY,8BAAQ,IAAA,AAAC,CAAA;AACvC,wBAAI,AAAW,AAAI,0BAAH,CAAC,6BAAe,AAAW,AAAI,0BAAH,CAAC,SAAW;AACtC,yBAAc;AACG,YAAjC,AAAO,MAAD,uBAAK,AAAW,AAAI,0BAAH,CAAC;AACM,YAA9B,AAAO,MAAD,uBAAK,AAAW,AAAI,0BAAH,CAAC;AACO,YAA/B,AAAO,MAAD,uBAAK,AAAW,AAAI,0BAAH,CAAC;AACO,YAA/B,AAAO,MAAD,uBAAK,AAAW,AAAI,0BAAH,CAAC;AACQ,YAAhC,AAAO,MAAD,uBAAK,AAAW,AAAI,0BAAH,CAAC;AAC4B,YAApD,qBAAe,MAAM,EAAE,AAAW,0BAAC,CAAC,GAAG,YAAY;AACrC,YAAd,eAAA,AAAY,YAAA;;;MAGlB;uBAG8B,QACG,cAAkB;AAC7B,kDAAU;AAC9B,YAAI,OAAO,IAAI;AACyD,UAAtE,AAAQ,OAAD,iBAAgB,AAAO,AAAa,AAAc,mDAAQ;AACvB,UAA1C,AAAQ,OAAD,uBAAuB,YAAY;AACrB,UAArB,AAAQ,OAAD,UAAU;AACmB,UAApC,AAAQ,OAAD,kBAAiB,YAAY;AACpC,wBAAI,AAAO,AAAY,0DAClB,AAAO,AAAY,gDACpB,AAAO,AAAY,8CAAoB,kBACvC,AAAO,AAAY,AAAiB,4DACO,AAAI,aAA/C,AAAO,AAAY,AAAiB,uDAAS,kBACzC,AAAQ,OAAD,mBACX,AAAO,AAAY,AAAgB,AAC1B,AAAY,kDADe,AAAQ,OAAD,gCAEvC,AAAQ,AAAO,OAAR;AAEgD,YAD7D,AAAQ,OAAD,aAAC,2BACJ,AAAO,AAAY,AAAgB,kDAAC,AAAQ,OAAD;;AAEQ,UAAzD,AAAQ,OAAD,sBAAqB,AAAa,YAAD;AAChB,UAAxB,AAAQ,OAAD,WAAU,MAAM;AACS,UAAhC,AAAQ,OAAD;AACkB,UAAzB,sBAAiB,OAAO;AACsB,UAA9C,AAAQ,OAAD,eAAe,AAAQ,OAAD;AACa,UAA1C,AAAQ,OAAD,aAAa,AAAQ,OAAD;AACN,UAArB,AAAS,oBAAI,OAAO;;MAExB;uBAImC;AACjC,sBAAI;AACF,cAAY,wBAAR,OAAO;AACa,YAAtB,AAAQ,OAAD,WAAW;;AAGkD,UADtE,AAAQ,OAAD,SACK,AAAiB,wBAAzB,OAAO,eAAqB,AAAQ,OAAD,WAAU,iBAAY;;AAE7D,cAAY,wBAAR,OAAO,KACqB,AAAI,aAAhC,AAAQ,OAAD,wBAAuB,KAAK,gBAC+B,WAAlE,AAAQ,AAAO,AAAW,AAAkC,OAArD,6BAAgD,aAA5B,AAAQ,OAAD,wBAAuB,gBACrD,AAAQ,AAAO,AAAW,AAA8B,OAAjD,6BAAoB,AAAQ,OAAD;AACxC,2BAAK,AAAQ,OAAD;AACY,cAAtB,AAAQ,OAAD,WAAW;;AAEK,YAAzB,AAAQ,OAAD,SAAS;;AAEhB,gBAAY,wBAAR,OAAO,gBAAsB,AAAQ,OAAD;AAChB,cAAtB,AAAQ,OAAD,WAAW;;AAEK,YAAzB,AAAQ,OAAD,SAAS;;;AAI4B,QAAhD,AAAQ,OAAD,eAAe,AAAQ,AAAO,OAAR;MAC/B;qBAIwB,OAAc,QAAc,WAC1C,aAAoB,QAAe;MAAS;oBAI/B,OAAc,QAAe,WAAkB,QACvD,QAAY,OAAsB;AAC7C,gCAAU,MAAM,EAAE,SAAS,EAAE,kBAAO,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,KAAK;MAAC;;;;UAjKlD;UACe;UACE;UACA;UACA;UACA;UACN;UACF;UACC;UACf;UACN;UACA;UACA;UACD;UACA;UACD;UACc;UACD;UACb;UACU;UACV;UACE;UAEA;UACW;UACb;UACU;UACR;UACM;UACN;UACG;UACM;MAqCd;MACA;AArCC,mDACW,IAAI,aACC,SAAS,gBACN,YAAY,kBACV,cAAc,mBACb,eAAe,mBACf,AAAgB,eAAD,IAAI,OAC9B,QAAK,SAAU,AAAe,eAAA,CAAC,AAAU,UAAA,QAAC,KAAK,GAAG,KAAK,iBACvD,wBACY,AAAiB,gBAAD,IAAI,OAChC,QAAK,SAAU,AAAgB,gBAAA,CAAC,AAAU,UAAA,QAAC,KAAK,GAAG,KAAK,iBACxD,4BACgB,oBAAoB,oBACxB,gBAAgB,mBACjB,eAAe,cACpB,UAAU,aACX,SAAS,aACT,SAAS,qBACD,iBAAiB,aACzB,SAAS,YACV,QAAQ,sBACE,kBAAkB,iBACvB,aAAa,qBACT,iBAAiB,gBACX,KAAZ,WAAW,QAAX,OAAe,8BACT,iBAAiB,kBACpB,cAAc,qBACX,iBAAiB,kBACpB,cAAc,gBAChB,YAAY,WACjB,OAAO,cACK,MAAV,SAAS,SAAT,OAAoB,uCACV,OAAV,SAAS,UAAT,OAAoB,mDACQ,OAAnB,kBAAkB,UAAlB,OAAsB,2CACd,0BAA0B,cAC1C,UAAU;;IAAC;;;;;;;;;;;;;;;;;;;;;;;;;;ACXD;MAAa;;MAItB;iBAGU,cACA,WACzB,YACA,aACA;AACY,gDAAU;AACP,QAArB,AAAQ,OAAD,UAAU;AACiB,QAAlC,AAAQ,OAAD,iBAAgB,WAAW;AACE,QAApC,AAAQ,OAAD,kBAAiB,YAAY;AACI,QAAxC,AAAQ,OAAD,uBAAuB,UAAU;AACV,QAA9B,AAAQ,OAAD,eAAc,SAAS;AACR,QAAtB,AAAQ,OAAD,SAAS;AACuB,QAAvC,AAAQ,OAAD,mBAAmB,aAAa;AACkB,QAAzD,AAAQ,OAAD,sBAAqB,AAAa,YAAD;AACxC,sBAAI,AAAO,AAAY,+CACnB,AAAO,AAAY,8CAAoB,kBACvC,AAAO,AAAY,AAAiB,4DACO,AAAI,aAA/C,AAAO,AAAY,AAAiB,uDAAS,kBACzC,AAAQ,OAAD,mBACX,AAAO,AAAY,AAAgB,AAAuB,AAAY,kDAAlC,AAAQ,OAAD,gCACvC,AAAQ,AAAO,OAAR;AAEgD,UAD7D,AAAQ,OAAD,aAAC,2BACJ,AAAO,AAAY,AAAgB,kDAAC,AAAQ,OAAD;;AAEjB,QAAhC,AAAQ,OAAD;AACkB,QAAzB,sBAAiB,OAAO;AACH,QAArB,AAAS,oBAAI,OAAO;AACpB,cAAO,QAAO;MAChB;kBAEwB,QAAqB;AACpB,QAAvB,AAAQ,OAAD,SAAS,MAAM;MACxB;uBAImC;;AACf,oDAAc,OAAO;AAGJ,QAFnC,AAAY,WAAD,UACkB,OADqB,KAA9B,AAAY,WAAD,2BAAC,OAC5B,AAAY,AAAO,WAAR,4BADmC,OAE9C,AAAY,AAAO,WAAR;AAGoB,QAFnC,AAAY,WAAD,gBACkB,QAD2B,OAA9B,AAAY,WAAD,6BAAC,OAClC,AAAY,AAAO,WAAR,+BADyC,OAEpD,AAAY,AAAO,WAAR;AACmC,QAAlD,AAAY,WAAD,eAAe,AAAY,AAAO,WAAR;AACiB,QAAtD,AAAY,WAAD,eAAe,AAAY,WAAD;AACa,QAAlD,AAAY,WAAD,aAAa,AAAY,WAAD;MACrC;qBAIwB,OAAc,QAAc,WAC1C,aAAoB,QAAe;AAChC,mBAAO,gBAAK,AAAe,2BAAO,AAAe;AACjD,yBAAa,wBACpB,AAAe,2BAAO,kBAAO,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE;AAClB,QAAtC,AAAO,MAAD,UAAU,UAAU,EAAE,SAAS;AACG,QAAxC,AAAO,MAAD,UAAU,UAAU,EAAE,WAAW;MACzC;oBAIuB,OAAc,QAAe,WAAkB,QACvD,QAAY,OAAsB;AAC7C,gCAAU,MAAM,EAAE,SAAS,EAAE,kBAAO,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,KAAK;MAAC;;;;UAjI/C;UACc;UACE;UACN;UACF;UACC;UACrB;UACA;UACD;UACC;UACQ;UACA;UACI;UACD;UACF;UACX;UACE;UACF;UACQ;UACN;UACW;UACb;UACU;UACF;UACN;UACA;UACG;AACR,iDACU,IAAI,gBACI,YAAY,gBACZ,YAAY,wBACJ,oBAAoB,oBACxB,gBAAgB,mBACjB,eAAe,cACpB,UAAU,aACX,SAAS,aACT,SAAS,SACb,KAAK,UACC,KAAN,KAAK,QAAL,OAAS,qBACN,QAAQ,kBACF,cAAc,sBACV,kBAAkB,cAC1B,UAAU,qBACH,iBAAiB,aACzB,SAAS,iBACL,aAAa,aACjB,SAAS,qBACD,iBAAiB,qBACjB,iBAAiB,kBACpB,cAAc,qBACX,iBAAiB,kBACpB,cAAc,gBAChB,YAAY,WACjB,OAAO,8BACY,0BAA0B;;IAAC;;;;;;;;;;;;;;;;;;;;;;ACMjC;MAAoB;;AAKxC,qBAAc;AACpB,2BAAe;AACnB,iBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAY,8BAAQ,IAAA,AAAC,CAAA;AACvC,cAAuB,aAAnB,AAAY,+BAAS;AACvB,gBAAI,MAAM,KAAI,kBAAQ,AAAO,MAAD,kBAA6B,aAAd,AAAO,MAAD,aAAU;AACpC,cAArB,AAAM,MAAA,QAAC,GAAK,AAAM,MAAA,QAAC;AACE,cAArB,AAAM,MAAA,QAAC,GAAK,AAAM,MAAA,QAAC;AACE,cAArB,AAAM,MAAA,QAAC,GAAK,AAAM,MAAA,QAAC;AACK,cAAxB,AAAO,MAAD,eAAa,GAAG;;AAExB,0BAAI,AAAW,AAAI,0BAAH,CAAC;AACf,+BAAI,AAAW,AAAI,0BAAH,CAAC,SAAW;AAC1B,8BAAI,AAAO,MAAD,yBACL,AAAO,MAAD,oBACS,eAAV,AAAM,MAAA,QAAC,IAAM,AAAW,AAAI,0BAAH,CAAC,aACd,eAAV,AAAM,MAAA,QAAC,IAAM,AAAW,AAAI,0BAAH,CAAC;AACH,kBAAjC,AAAO,MAAD,uBAAK,AAAW,AAAI,0BAAH,CAAC;AACS,kBAAjC,AAAO,MAAD,uBAAK,AAAW,AAAI,0BAAH,CAAC;AACkB,kBAA1C,AAAO,MAAD,OAAK,AAAW,AAAI,0BAAH,CAAC;;;AAG5B,mBAAK,AAAE,CAAD,KAAI,KAA8B,YAAzB,AAAW,AAAQ,0BAAP,AAAE,CAAD,GAAG,UAAY,uBACvC,AAAW,AAAI,0BAAH,CAAC,SAAW,SACxB,CAAC,KAAuB,aAAnB,AAAY,+BAAS,kBAC1B,AAAW,AAAQ,0BAAP,AAAE,CAAD,GAAG,UAAY,mBAC5B,AAAW,AAAQ,0BAAP,AAAE,CAAD,GAAG;AACmB,gBAArC,AAAO,MAAD,uBAAK,AAAW,AAAQ,0BAAP,AAAE,CAAD,GAAG;AACU,gBAArC,AAAO,MAAD,uBAAK,AAAW,AAAQ,0BAAP,AAAE,CAAD,GAAG;AACmB,gBAA9C,AAAO,MAAD,OAAK,AAAW,AAAQ,0BAAP,AAAE,CAAD,GAAG;oBACtB,KAAyB,YAArB,AAAW,AAAI,0BAAH,CAAC,SAAW;AACjB,gBAAhB,SAAc;;;;AAKpB,cAAI,MAAM,KAAI,kBAAQ,AAAO,MAAD,kBAA6B,aAAd,AAAO,MAAD,aAAU;AAEV,YAD/C,qBAAe,MAAM,EAAE,AAAW,0BAAC,CAAC,GAAG,YAAY,EAC/C,AAAW,AAAe,0BAAd,YAAY;AACd,YAAd,eAAA,AAAY,YAAA;;;MAGlB;uBAIc,QACmB,cACzB,cACE;AACiB,uDAAU;AACd,QAArB,sBAAgB;AAChB,YAAI,OAAO,IAAI;AAC6B,UAA1C,AAAQ,OAAD,uBAAuB,YAAY;AAC4B,UAAtE,AAAQ,OAAD,iBAAgB,AAAO,AAAa,AAAc,mDAAQ;AAC5C,UAArB,AAAQ,OAAD,UAAU;AACmB,UAApC,AAAQ,OAAD,kBAAiB,YAAY;AACpC,wBAAI,AAAO,AAAY,+CACnB,AAAO,AAAY,+BAAG,KACtB,AAAO,AAAY,+BAAG,KACtB,AAAO,AAAY,8CAAoB,kBACvC,AAAO,AAAY,AAAiB,4DACO,AAAI,aAA/C,AAAO,AAAY,AAAiB,uDAAS,kBACzC,AAAQ,OAAD,mBACX,AAAO,AAAY,AAAgB,AAC1B,AAAY,kDADe,AAAQ,OAAD,gCAEvC,AAAQ,AAAO,OAAR;AAEgD,YAD7D,AAAQ,OAAD,aAAC,2BACJ,AAAO,AAAY,AAAgB,kDAAC,AAAQ,OAAD;;AAEL,UAA5C,AAAQ,OAAD,sBAAqB,gBAAgB;AACpB,UAAxB,AAAQ,OAAD,WAAU,MAAM;AACS,UAAhC,AAAQ,OAAD;AACkB,UAAzB,sBAAiB,OAAO;AACsB,UAA9C,AAAQ,OAAD,eAAe,AAAQ,OAAD;AACa,UAA1C,AAAQ,OAAD,aAAa,AAAQ,OAAD;AACN,UAArB,AAAS,oBAAI,OAAO;;MAExB;uBAImC;AACU,QAA3C,AAAQ,OAAD,SAAS,AAAQ,AAAO,OAAR;AAC0B,QAAjD,AAAQ,OAAD,eAAe,AAAQ,AAAO,OAAR;AACa,QAA1C,AAAQ,OAAD,eAAe,AAAQ,AAAO,OAAR;MAC/B;qBAIwB,OAAc,QAAc,WAC1C,aAAoB,QAAe;AACO,QAAlD,AAAO,MAAD,UAAU,AAAa,2BAAC,KAAK,GAAG,WAAW;AACD,QAAhD,AAAO,MAAD,UAAU,AAAa,2BAAC,KAAK,GAAG,SAAS;MACjD;oBAIuB,OAAc,QAAe,WAAkB,QACvD,QAAY,OAAsB;AAC7C,gCAAU,MAAM,EAAE,SAAS,EAAE,kBAAO,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,KAAK;MAAC;;;;UApK/C;UACc;UACE;UACN;UACF;UACC;UACrB;UACA;UACD;UACC;UACQ;UACA;UACI;UACD;UACb;UACE;UACF;UACQ;UACN;UACA;UACS;UACE;UACb;UACU;UACF;UACN;UACA;UACG;AACR,wDACU,IAAI,gBACI,YAAY,gBACZ,YAAY,wBACJ,oBAAoB,oBACxB,gBAAgB,mBACjB,eAAe,cACpB,UAAU,aACX,SAAS,cACR,UAAU,aACX,SAAS,SACb,KAAK,UACC,KAAN,KAAK,QAAL,OAAS,qBACN,QAAQ,kBACF,cAAc,sBACV,kBAAkB,qBACnB,iBAAiB,aACzB,SAAS,iBACL,aAAa,aACjB,SAAS,qBACD,iBAAiB,qBACjB,iBAAiB,kBACpB,cAAc,qBACX,iBAAiB,kBACpB,cAAc,gBAChB,YAAY,aACf,SAAS,WACX,OAAO,8BACY,0BAA0B;;IAAC;;;;;;;;;;;;;;;;;;;;;MCuBvC;;;;;;;AAIM;MAAkB;;AAIzB,oCAAe;MAAY;uBAGG;AAC9B,qDAAU;AACZ,QAArB,sBAAgB;AAChB,YAAI,OAAO,IAAI;AACyD,UAAtE,AAAQ,OAAD,iBAAgB,AAAO,AAAa,AAAc,mDAAQ;AAC5C,UAArB,AAAQ,OAAD,UAAU;AACQ,UAAzB,sBAAiB,OAAO;AACsB,UAA9C,AAAQ,OAAD,eAAe,AAAQ,OAAD;AACa,UAA1C,AAAQ,OAAD,aAAa,AAAQ,OAAD;AACN,UAArB,AAAS,oBAAI,OAAO;;MAExB;uBAImC;AACU,QAA3C,AAAQ,OAAD,SAAS,AAAQ,AAAO,OAAR;AACyB,QAAhD,AAAQ,OAAD,eAAe,AAAQ,AAAO,OAAR;AACmB,QAAhD,AAAQ,OAAD,eAAe,AAAQ,AAAO,OAAR;MAC/B;qBAIwB,OAAc,QAAc,WAC1C,aAAoB,QAAe;AACO,QAAlD,AAAO,MAAD,UAAU,AAAa,2BAAC,KAAK,GAAG,WAAW;AACD,QAAhD,AAAO,MAAD,UAAU,AAAa,2BAAC,KAAK,GAAG,SAAS;AACI,QAAnD,AAAO,MAAD,UAAU,AAAc,4BAAC,KAAK,GAAG,WAAW;AACD,QAAjD,AAAO,MAAD,UAAU,AAAc,4BAAC,KAAK,GAAG,SAAS;MAClD;oBAIuB,OAAc,QAAe,WAAkB,QACvD,QAAY,OAAsB;AAC7C,gCAAU,MAAM,EAAE,SAAS,EAAE,kBAAO,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,KAAK;MAAC;;;;UA5H/C;UACc;UACE;UACA;UACN;UACF;UACC;UACf;UACN;UACS;UACT;UACA;UACD;UACS;UACI;UACD;UACb;UACA;UACQ;UACN;UACD;UACC;UACQ;UACG;UACb;UACU;UACR;UACA;UACa;MACH,0BAAiB,KAAf,cAAc,QAAd,OAAsC;AACvD,8DACkB,YAAY,mBACT,eAAe,kBAChB,cAAc,wBACR,oBAAoB,oBACxB,gBAAgB,mBACjB,eAAe,cACpB,UAAU,cACV,UAAU,aACX,SAAS,aACT,SAAS,QACd,IAAI,SACH,KAAK,kBACI,cAAc,qBACX,iBAAiB,aACzB,SAAS,sBACA,kBAAkB,iBACvB,aAAa,aACjB,SAAS,qBACD,iBAAiB,eACvB,WAAW,eACX,WAAW,YACd,QAAQ,qBACC,iBAAiB,kBACpB,cAAc,qBACX,iBAAiB,kBACpB,cAAc,gBAChB,YAAY,WACjB,OAAO;;IAAC;;;;;;;;;;;;;;;;;;;;;;;;;ACAK;MAAuB;;AAK3C,qBAAc;AACpB,2BAAe;AACnB,iBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAY,8BAAQ,IAAA,AAAC,CAAA;AACvC,cAAuB,aAAnB,AAAY,+BAAS;AACvB,gBAAI,MAAM,KAAI,kBAAQ,AAAO,MAAD,kBAA6B,aAAd,AAAO,MAAD,aAAU;AACpC,cAArB,AAAM,MAAA,QAAC,GAAK,AAAM,MAAA,QAAC;AACE,cAArB,AAAM,MAAA,QAAC,GAAK,AAAM,MAAA,QAAC;AACE,cAArB,AAAM,MAAA,QAAC,GAAK,AAAM,MAAA,QAAC;AACK,cAAxB,AAAO,MAAD,eAAa,GAAG;;AAExB,0BAAI,AAAW,AAAI,0BAAH,CAAC;AACf,+BAAI,AAAW,AAAI,0BAAH,CAAC,SAAW;AAC1B,8BAAI,AAAO,MAAD,yBACL,AAAO,MAAD,oBACS,eAAV,AAAM,MAAA,QAAC,IAAM,AAAW,AAAI,0BAAH,CAAC,aACd,eAAV,AAAM,MAAA,QAAC,IAAM,AAAW,AAAI,0BAAH,CAAC;AACH,kBAAjC,AAAO,MAAD,uBAAK,AAAW,AAAI,0BAAH,CAAC;AACS,kBAAjC,AAAO,MAAD,uBAAK,AAAW,AAAI,0BAAH,CAAC;AACkB,kBAA1C,AAAO,MAAD,OAAK,AAAW,AAAI,0BAAH,CAAC;;;AAG5B,mBAAK,AAAE,CAAD,KAAI,KAA8B,YAAzB,AAAW,AAAQ,0BAAP,AAAE,CAAD,GAAG,UAAY,uBACvC,AAAW,AAAI,0BAAH,CAAC,SAAW,SACxB,CAAC,KAAuB,aAAnB,AAAY,+BAAS,kBAC1B,AAAW,AAAQ,0BAAP,AAAE,CAAD,GAAG,UAAY,mBAC5B,AAAW,AAAQ,0BAAP,AAAE,CAAD,GAAG;AACmB,gBAArC,AAAO,MAAD,uBAAK,AAAW,AAAQ,0BAAP,AAAE,CAAD,GAAG;AACU,gBAArC,AAAO,MAAD,uBAAK,AAAW,AAAQ,0BAAP,AAAE,CAAD,GAAG;AACmB,gBAA9C,AAAO,MAAD,OAAK,AAAW,AAAQ,0BAAP,AAAE,CAAD,GAAG;oBACtB,KAAyB,YAArB,AAAW,AAAI,0BAAH,CAAC,SAAW;AACjB,gBAAhB,SAAc;;;;AAKpB,cAAI,MAAM,KAAI,kBAAQ,AAAO,MAAD,kBAA6B,aAAd,AAAO,MAAD,aAAU;AAEV,YAD/C,qBAAe,MAAM,EAAE,AAAW,0BAAC,CAAC,GAAG,YAAY,EAC/C,AAAW,AAAe,0BAAd,YAAY;AACd,YAAd,eAAA,AAAY,YAAA;;;MAGlB;uBAIc,QACmB,cACzB,cACE;AACoB,0DAAU;AACjB,QAArB,sBAAgB;AAChB,YAAI,OAAO,IAAI;AAC6B,UAA1C,AAAQ,OAAD,uBAAuB,YAAY;AAC4B,UAAtE,AAAQ,OAAD,iBAAgB,AAAO,AAAa,AAAc,mDAAQ;AAC5C,UAArB,AAAQ,OAAD,UAAU;AACmB,UAApC,AAAQ,OAAD,kBAAiB,YAAY;AACpC,wBAAI,AAAO,AAAY,+CACnB,AAAO,AAAY,+BAAG,KACtB,AAAO,AAAY,+BAAG,KACtB,AAAO,AAAY,8CAAoB,kBACvC,AAAO,AAAY,AAAiB,4DACO,AAAI,aAA/C,AAAO,AAAY,AAAiB,uDAAS,kBACzC,AAAQ,OAAD,mBACX,AAAO,AAAY,AAAgB,AAC1B,AAAY,kDADe,AAAQ,OAAD,gCAEvC,AAAQ,AAAO,OAAR;AAEgD,YAD7D,AAAQ,OAAD,aAAC,2BACJ,AAAO,AAAY,AAAgB,kDAAC,AAAQ,OAAD;;AAEL,UAA5C,AAAQ,OAAD,sBAAqB,gBAAgB;AACpB,UAAxB,AAAQ,OAAD,WAAU,MAAM;AACS,UAAhC,AAAQ,OAAD;AACkB,UAAzB,sBAAiB,OAAO;AACsB,UAA9C,AAAQ,OAAD,eAAe,AAAQ,OAAD;AACa,UAA1C,AAAQ,OAAD,aAAa,AAAQ,OAAD;AACN,UAArB,AAAS,oBAAI,OAAO;;MAExB;uBAImC;AACU,QAA3C,AAAQ,OAAD,SAAS,AAAQ,AAAO,OAAR;AAC0B,QAAjD,AAAQ,OAAD,eAAe,AAAQ,AAAO,OAAR;AACa,QAA1C,AAAQ,OAAD,eAAe,AAAQ,AAAO,OAAR;MAC/B;qBAIwB,OAAc,QAAc,WAC1C,aAAoB,QAAe;AACO,QAAlD,AAAO,MAAD,UAAU,AAAa,2BAAC,KAAK,GAAG,WAAW;AACD,QAAhD,AAAO,MAAD,UAAU,AAAa,2BAAC,KAAK,GAAG,SAAS;MACjD;oBAIuB,OAAc,QAAe,WAAkB,QACvD,QAAY,OAAsB;AAC7C,gCAAU,MAAM,EAAE,SAAS,EAAE,kBAAO,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,KAAK;MAAC;;;;UApK/C;UACc;UACE;UACN;UACF;UACC;UACrB;UACA;UACD;UACC;UACQ;UACA;UACI;UACD;UACb;UACE;UACF;UACQ;UACN;UACS;UACT;UACW;UACb;UACU;UACF;UACN;UACA;UACG;AACR,2DACU,IAAI,gBACI,YAAY,gBACZ,YAAY,wBACJ,oBAAoB,oBACxB,gBAAgB,mBACjB,eAAe,cACpB,UAAU,aACX,SAAS,aACT,SAAS,SACb,KAAK,UACC,KAAN,KAAK,QAAL,OAAS,uBACJ,UAAU,YACZ,QAAQ,kBACF,cAAc,sBACV,kBAAkB,qBACnB,iBAAiB,aACzB,SAAS,iBACL,aAAa,aACjB,SAAS,qBACD,iBAAiB,qBACjB,iBAAiB,kBACpB,cAAc,qBACX,iBAAiB,kBACpB,cAAc,gBAChB,YAAY,aACf,SAAS,WACX,OAAO,8BACY,0BAA0B;;IAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;MCyCrD;;;;;;MAmBA;;;;;;MAoBC;;;;;;MAoBA;;;;;;MAuBA;;;;;;MAqBF;;;;;;MAoBQ;;;;;;;AAIa;MAAoB;;AAK9C,2BAAe;AACnB,iBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAY,8BAAQ,IAAA,AAAC,CAAA;AACvC,wBAAI,AAAW,AAAI,0BAAH,CAAC,6BACb,AAAW,AAAI,0BAAH,CAAC,SAAW,sBACvB,AAAW,AAAI,0BAAH,CAAC,QAAU,AAAW,AAAI,0BAAH,CAAC;AACvB,yBAAc;AACG,YAAjC,AAAO,MAAD,uBAAK,AAAW,AAAI,0BAAH,CAAC;AACO,YAA/B,AAAO,MAAD,uBAAK,AAAW,AAAI,0BAAH,CAAC;AACM,YAA9B,AAAO,MAAD,uBAAK,AAAW,AAAI,0BAAH,CAAC;AAC4B,YAApD,qBAAe,MAAM,EAAE,AAAW,0BAAC,CAAC,GAAG,YAAY;AACrC,YAAd,eAAA,AAAY,YAAA;;;MAGlB;uBAG8B,QACG,cAAkB;AACxB,uDAAU;AACf,QAApB,sBAAgB;AAChB,YAAI,OAAO,IAAI;AACyD,UAAtE,AAAQ,OAAD,iBAAgB,AAAO,AAAa,AAAc,mDAAQ;AACvB,UAA1C,AAAQ,OAAD,uBAAuB,YAAY;AACrB,UAArB,AAAQ,OAAD,UAAU;AACmB,UAApC,AAAQ,OAAD,kBAAiB,YAAY;AACZ,UAAxB,AAAQ,OAAD,WAAU,MAAM;AACS,UAAhC,AAAQ,OAAD;AACkB,UAAzB,sBAAiB,OAAO;AACsB,UAA9C,AAAQ,OAAD,eAAe,AAAQ,OAAD;AACa,UAA1C,AAAQ,OAAD,aAAa,AAAQ,OAAD;AAC+B,UAA1D,AAAQ,OAAD,sBAAqB,AAAQ,OAAD;AAC2B,UAA9D,AAAQ,OAAD,wBAAuB,AAAQ,OAAD;AAChB,UAArB,AAAS,oBAAI,OAAO;;MAExB;uBAImC;AACU,QAA3C,AAAQ,OAAD,SAAS,AAAQ,AAAO,OAAR;AACyB,QAAhD,AAAQ,OAAD,eAAe,AAAQ,AAAO,OAAR;AACmB,QAAhD,AAAQ,OAAD,eAAe,AAAQ,AAAO,OAAR;MAC/B;qBAIwB,OAAc,QAAc,WAC1C,aAAoB,QAAe;AACO,QAAlD,AAAO,MAAD,UAAU,AAAa,2BAAC,KAAK,GAAG,WAAW;AACD,QAAhD,AAAO,MAAD,UAAU,AAAa,2BAAC,KAAK,GAAG,SAAS;AACI,QAAnD,AAAO,MAAD,UAAU,AAAc,4BAAC,KAAK,GAAG,WAAW;AACD,QAAjD,AAAO,MAAD,UAAU,AAAc,4BAAC,KAAK,GAAG,SAAS;MAClD;oBAIuB,OAAc,QAAe,WAAkB,QACvD,QAAY,OAAsB;AAC7C,gCAAU,MAAM,EAAE,SAAS,EAAE,kBAAO,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,KAAK;MAAC;;;;UA5R/C;UACc;UACE;UACA;UACN;UACF;UACC;UACf;UACR;UACE;UACA;UACA;UACD;UACC;UACA;UACQ;UACI;UACD;UACb;UACU;UACF;UACR;UACE;UACD;UACA;UACC;UACA;UACD;UACU;UACT;UACW;UACb;UACU;UACR;UACA;UACM;UACH;MAsCV;MACA;MAnEK;MA6BQ,sBAAa,KAAX,UAAU,QAAV,OAAqB;MACjB,4BAAmB,MAAjB,gBAAgB,SAAhB,OAA2B;MAC7B,4BAAmB,OAAjB,gBAAgB,UAAhB,OAAoB;MAC1B,wBAAe,OAAb,YAAY,UAAZ,OAAgB;MACvB,mBAAU,OAAR,OAAO,UAAP,OAAW;MACR,wBAAe,OAAb,YAAY,UAAZ;AACf,wDACU,IAAI,gBACI,YAAY,mBACT,eAAe,kBAChB,cAAc,wBACR,oBAAoB,oBACxB,gBAAgB,mBACjB,eAAe,cACpB,UAAU,cACV,UAAU,aACX,SAAS,aACT,SAAS,SACb,KAAK,UACC,OAAN,KAAK,UAAL,OAAS,6BACA,cAAc,qBACX,iBAAiB,aACzB,SAAS,YACV,QAAQ,sBACE,kBAAkB,iBACvB,aAAa,qBACT,iBAAiB,eACvB,WAAW,eACX,WAAW,qBACL,iBAAiB,kBACpB,cAAc,qBACX,iBAAiB,kBACpB,cAAc,gBAChB,YAAY,WACjB,OAAO,aACL,SAAS,8BACQ,0BAA0B;;IAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnBjC;MAAgB;;MAQzB;kBAEC,QAAqB;AACpB,QAAvB,AAAQ,OAAD,SAAS,MAAM;MACxB;iBAGqD,cAC7C,YAAgB,aAAiB;AAClB,mDAAU;AACV,QAArB,sBAAgB;AAChB,YAAI,OAAO,IAAI;AACqB,UAAlC,AAAQ,OAAD,iBAAgB,WAAW;AACM,UAAxC,AAAQ,OAAD,uBAAuB,UAAU;AACnB,UAArB,AAAQ,OAAD,UAAU;AACsB,UAAvC,AAAQ,OAAD,mBAAmB,aAAa;AACV,UAA7B,AAAQ,OAAD,WAAU,YAAY;AACO,UAApC,AAAQ,OAAD,kBAAiB,YAAY;AACpC,wBAAI,AAAO,AAAY,0DAClB,AAAO,AAAY,gDACpB,AAAO,AAAY,8CAAoB,kBACvC,AAAO,AAAY,AAAiB,4DACO,AAAI,aAA/C,AAAO,AAAY,AAAiB,uDAAS,kBACzC,AAAQ,OAAD,mBACX,AAAO,AAAY,AAAgB,AAC1B,AAAY,kDADe,AAAQ,OAAD,gCAEvC,AAAQ,AAAO,OAAR;AAEgD,YAD7D,AAAQ,OAAD,aAAC,2BACJ,AAAO,AAAY,AAAgB,kDAAC,AAAQ,OAAD;AAKrC,YAJV,AAAQ,OAAD,cACiD,UADnC,AAAQ,AAAU,AAAS,OAApB,qCACU,yBAA9B,AAAQ,AAAU,AAAQ,OAAnB,2BAAoB,OACU,AAAI,aAAzC,AAAQ,AAAU,AAAY,OAAvB,qCAAgC,kBAAK,UAAU,IACxD,AAAQ,AAAU,AAAW,OAAtB,gCAAuB,UAAU,IACxC;;AAEa,yBAAW,uCAC5B,AAAa,YAAD,0BACZ,AAAa,YAAD,UACZ,eACA,eACA,AAAO,oCACP,MACA,AAAO,AAAW;AACM,UAA5B,AAAQ,OAAD,WAAW,AAAS,QAAD;AACE,UAA5B,AAAQ,OAAD,WAAW,AAAS,QAAD;AACW,UAArC,AAAQ,OAAD,UAAU,AAAe;AAE6B,UAD7D,AAAQ,OAAD,eACG,+BAAkB,AAAa,YAAD,SAAgB;AAC/B,UAAzB,sBAAiB,OAAO;AACH,UAArB,AAAS,oBAAI,OAAO;;AAEtB,cAAO,QAAO;MAChB;uBAImC;;AACZ,0DAAiB,OAAO;AACY,QAAzD,AAAe,cAAD,SAAS,AAAe,AAAO,cAAR;AAEsC,QAD3E,AAAe,cAAD,gBACwB,KAAlC,AAAe,AAAO,cAAR,2BAAQ,OAAe,AAAe,AAAO,cAAR;AACO,QAA9D,AAAe,cAAD,eAAe,AAAe,AAAO,cAAR;AACiB,QAA5D,AAAe,cAAD,eAAe,AAAe,cAAD;AACa,QAAxD,AAAe,cAAD,aAAa,AAAe,cAAD;MAC3C;qBAIwB,OAAc,QAAc,WAC1C,aAAoB,QAAe;AAChC,mBAAO,gBAAK,AAAe,2BAAO,AAAe;AACjD,yBAAa,wBACpB,AAAe,2BAAO,kBAAO,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE;AAClB,QAAtC,AAAO,MAAD,UAAU,UAAU,EAAE,SAAS;AACG,QAAxC,AAAO,MAAD,UAAU,UAAU,EAAE,WAAW;MACzC;oBAIuB,OAAc,QAAe,WAAkB,QACvD,QAAY,OAAsB;AAC7C,gCAAU,MAAM,EAAE,SAAS,EAAE,kBAAO,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,KAAK;MAAC;;;UAnJ/C;UACc;UACE;UACN;UACF;UACC;UACrB;UACA;UACA;UACD;UACS;UACI;UACd;UACa;UACb;UACW;UACT;UACD;UACC;UACQ;UACG;UACb;UACU;UACF;UACN;UACA;UACG;MAkCe;MAElB,oBAAc;AAnCnB,4DACkB,YAAY,gBACZ,YAAY,wBACJ,oBAAoB,oBACxB,gBAAgB,mBACjB,eAAe,cACpB,UAAU,aACX,SAAS,aACT,SAAS,QACd,IAAI,SACH,KAAK,kBACI,cAAc,qBACX,iBAAiB,sBAChB,kBAAkB,iBACvB,aAAa,aACjB,SAAS,qBACD,iBAAiB,eACvB,WAAW,eACX,WAAW,cACZ,UAAU,YACZ,QAAQ,qBACC,iBAAiB,kBACpB,cAAc,qBACX,iBAAiB,kBACpB,cAAc,gBAChB,YAAY,WACjB,OAAO,8BACY,0BAA0B;;IAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;MC0B7D;;;;;;MACA;;;;;;;AAG4B;MAAmB;;AAI7C,2BAAe;AACnB,iBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAY,8BAAQ,IAAA,AAAC,CAAA;AACvC,wBAAI,AAAW,AAAI,0BAAH,CAAC,6BAAe,AAAW,AAAI,0BAAH,CAAC,SAAW;AACtC,yBAAc;AACG,YAAjC,AAAO,MAAD,uBAAK,AAAW,AAAI,0BAAH,CAAC;AACS,YAAjC,AAAO,MAAD,uBAAK,AAAW,AAAI,0BAAH,CAAC;AAC4B,YAApD,qBAAe,MAAM,EAAE,AAAW,0BAAC,CAAC,GAAG,YAAY;AACrC,YAAd,eAAA,AAAY,YAAA;;;MAGlB;uBAG8B,QACG,cAAkB;AACzB,sDAAU;AACd,QAApB,sBAAgB;AAChB,YAAI,OAAO,IAAI;AACyD,UAAtE,AAAQ,OAAD,iBAAgB,AAAO,AAAa,AAAc,mDAAQ;AACvB,UAA1C,AAAQ,OAAD,uBAAuB,YAAY;AACrB,UAArB,AAAQ,OAAD,UAAU;AACmB,UAApC,AAAQ,OAAD,kBAAiB,YAAY;AACZ,UAAxB,AAAQ,OAAD,WAAU,MAAM;AACS,UAAhC,AAAQ,OAAD;AACkB,UAAzB,sBAAiB,OAAO;AACsB,UAA9C,AAAQ,OAAD,eAAe,AAAQ,OAAD;AACa,UAA1C,AAAQ,OAAD,aAAa,AAAQ,OAAD;AAC+B,UAA1D,AAAQ,OAAD,sBAAqB,AAAQ,OAAD;AAC2B,UAA9D,AAAQ,OAAD,wBAAuB,AAAQ,OAAD;AAChB,UAArB,AAAS,oBAAI,OAAO;;MAExB;uBAGmC;AACU,QAA3C,AAAQ,OAAD,SAAS,AAAQ,AAAO,OAAR;AACyB,QAAhD,AAAQ,OAAD,eAAe,AAAQ,AAAO,OAAR;AACmB,QAAhD,AAAQ,OAAD,eAAe,AAAQ,AAAO,OAAR;MAC/B;oBAGuB,OAAc,QAAe,WAAkB,QACvD,QAAY,OAAsB;AAC7C,gCAAU,MAAM,EAAE,SAAS,EAAE,kBAAO,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,KAAK;MAAC;qBAG9C,OAAc,QAAc,WAC1C,aAAoB,QAAe;AACO,QAAlD,AAAO,MAAD,UAAU,AAAa,2BAAC,KAAK,GAAG,WAAW;AACD,QAAhD,AAAO,MAAD,UAAU,AAAa,2BAAC,KAAK,GAAG,SAAS;MACjD;;;;UArIuB;UACc;UACE;UACN;UACF;UACC;UACf;UACR;UACE;UACA;UACA;UACA;UACD;UACC;UACA;UACQ;UACI;UACD;UACb;UACU;UACF;UACR;UACE;UACD;UACA;UACC;UACA;UACS;UACV;UACC;UACW;UACb;UACU;UACR;UACM;UACN;UACG;MAuCV;MACA;AAvCE,uDACU,IAAI,aACC,SAAS,aACT,SAAS,WACX,OAAO,gBACF,YAAY,gBACZ,YAAY,wBACJ,oBAAoB,oBACxB,gBAAgB,mBACjB,eAAe,cACpB,UAAU,cACV,UAAU,aACX,SAAS,kBACJ,cAAc,cAClB,UAAU,oBACJ,gBAAgB,oBAChB,gBAAgB,gBACpB,YAAY,aACf,SAAS,SACb,KAAK,UACC,KAAN,KAAK,QAAL,OAAS,2BACA,cAAc,qBACX,iBAAiB,aACzB,SAAS,YACV,QAAQ,sBACE,kBAAkB,iBACvB,aAAa,qBACT,iBAAiB,eACvB,WAAW,eACX,WAAW,gBACV,YAAY,qBACP,iBAAiB,kBACpB,cAAc,qBACX,iBAAiB,kBACpB,cAAc,gBAChB,YAAY,WACjB,OAAO,8BACY,0BAA0B;;IAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;MCV7D;;;;;;MACA;;;;;;;AAG4B;MAAsB;;AAIhD,2BAAe;AACnB,iBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAY,8BAAQ,IAAA,AAAC,CAAA;AACvC,wBAAI,AAAW,AAAI,0BAAH,CAAC,6BAAe,AAAW,AAAI,0BAAH,CAAC,SAAW;AACtC,yBAAc;AACG,YAAjC,AAAO,MAAD,uBAAK,AAAW,AAAI,0BAAH,CAAC;AACS,YAAjC,AAAO,MAAD,uBAAK,AAAW,AAAI,0BAAH,CAAC;AAC4B,YAApD,qBAAe,MAAM,EAAE,AAAW,0BAAC,CAAC,GAAG,YAAY;AACrC,YAAd,eAAA,AAAY,YAAA;;;MAGlB;uBAG8B,QACG,cAAkB;AACtB,yDAAU;AACjB,QAApB,sBAAgB;AAChB,YAAI,OAAO,IAAI;AACyD,UAAtE,AAAQ,OAAD,iBAAgB,AAAO,AAAa,AAAc,mDAAQ;AACvB,UAA1C,AAAQ,OAAD,uBAAuB,YAAY;AACrB,UAArB,AAAQ,OAAD,UAAU;AACmB,UAApC,AAAQ,OAAD,kBAAiB,YAAY;AACZ,UAAxB,AAAQ,OAAD,WAAU,MAAM;AACS,UAAhC,AAAQ,OAAD;AACkB,UAAzB,sBAAiB,OAAO;AACsB,UAA9C,AAAQ,OAAD,eAAe,AAAQ,OAAD;AACa,UAA1C,AAAQ,OAAD,aAAa,AAAQ,OAAD;AACN,UAArB,AAAS,oBAAI,OAAO;;MAExB;uBAGmC;AACU,QAA3C,AAAQ,OAAD,SAAS,AAAQ,AAAO,OAAR;AACyB,QAAhD,AAAQ,OAAD,eAAe,AAAQ,AAAO,OAAR;AACmB,QAAhD,AAAQ,OAAD,eAAe,AAAQ,AAAO,OAAR;MAC/B;oBAGuB,OAAc,QAAe,WAAkB,QACvD,QAAY,OAAsB;AAC7C,gCAAU,MAAM,EAAE,SAAS,EAAE,kBAAO,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,KAAK;MAAC;qBAG9C,OAAc,QAAc,WAC1C,aAAoB,QAAe;AACO,QAAlD,AAAO,MAAD,UAAU,AAAa,2BAAC,KAAK,GAAG,WAAW;AACD,QAAhD,AAAO,MAAD,UAAU,AAAa,2BAAC,KAAK,GAAG,SAAS;MACjD;;;;UAzHuB;UACc;UACE;UACN;UACF;UACC;UACf;UACN;UACA;UACA;UACA;UACD;UACC;UACA;UACQ;UACI;UACD;UACb;UACU;UACF;UACR;UACE;UACS;UACV;UACC;UACW;UACb;UACU;UACR;UACM;UACN;UACG;MAkCV;MACA;AAlCE,0DACU,IAAI,aACC,SAAS,aACT,SAAS,WACX,OAAO,gBACF,YAAY,gBACZ,YAAY,wBACJ,oBAAoB,oBACxB,gBAAgB,mBACjB,eAAe,cACpB,UAAU,aACX,SAAS,aACT,SAAS,cACR,UAAU,SACf,KAAK,UACC,KAAN,KAAK,QAAL,OAAS,2BACA,cAAc,qBACX,iBAAiB,aACzB,SAAS,YACV,QAAQ,sBACE,kBAAkB,iBACvB,aAAa,qBACT,iBAAiB,eACvB,WAAW,eACX,WAAW,gBACV,YAAY,qBACP,iBAAiB,kBACpB,cAAc,qBACX,iBAAiB,kBACpB,cAAc,gBAChB,YAAY,WACjB,OAAO,8BACY,0BAA0B;;IAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;MCU7D;;;;;;MACA;;;;;;;AAG4B;MAAsB;;AAIhD,2BAAe;AACnB,iBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAY,8BAAQ,IAAA,AAAC,CAAA;AACvC,wBAAI,AAAW,AAAI,0BAAH,CAAC,6BAAe,AAAW,AAAI,0BAAH,CAAC,SAAW;AACtC,yBAAc;AACG,YAAjC,AAAO,MAAD,uBAAK,AAAW,AAAI,0BAAH,CAAC;AACS,YAAjC,AAAO,MAAD,uBAAK,AAAW,AAAI,0BAAH,CAAC;AAC4B,YAApD,qBAAe,MAAM,EAAE,AAAW,0BAAC,CAAC,GAAG,YAAY;AACrC,YAAd,eAAA,AAAY,YAAA;;;MAGlB;uBAG8B,QACG,cAAkB;AACtB,yDAAU;AACjB,QAApB,sBAAgB;AAChB,YAAI,OAAO,IAAI;AACyD,UAAtE,AAAQ,OAAD,iBAAgB,AAAO,AAAa,AAAc,mDAAQ;AACvB,UAA1C,AAAQ,OAAD,uBAAuB,YAAY;AACrB,UAArB,AAAQ,OAAD,UAAU;AACmB,UAApC,AAAQ,OAAD,kBAAiB,YAAY;AACZ,UAAxB,AAAQ,OAAD,WAAU,MAAM;AACS,UAAhC,AAAQ,OAAD;AACkB,UAAzB,sBAAiB,OAAO;AACsB,UAA9C,AAAQ,OAAD,eAAe,AAAQ,OAAD;AACa,UAA1C,AAAQ,OAAD,aAAa,AAAQ,OAAD;AAC+B,UAA1D,AAAQ,OAAD,sBAAqB,AAAQ,OAAD;AAC2B,UAA9D,AAAQ,OAAD,wBAAuB,AAAQ,OAAD;AAChB,UAArB,AAAS,oBAAI,OAAO;;MAExB;uBAGmC;AACU,QAA3C,AAAQ,OAAD,SAAS,AAAQ,AAAO,OAAR;AACyB,QAAhD,AAAQ,OAAD,eAAe,AAAQ,AAAO,OAAR;AACmB,QAAhD,AAAQ,OAAD,eAAe,AAAQ,AAAO,OAAR;MAC/B;oBAGuB,OAAc,QAAe,WAAkB,QACvD,QAAY,OAAsB;AAC7C,gCAAU,MAAM,EAAE,SAAS,EAAE,kBAAO,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,KAAK;MAAC;qBAG9C,OAAc,QAAc,WAC1C,aAAoB,QAAe;AACO,QAAlD,AAAO,MAAD,UAAU,AAAa,2BAAC,KAAK,GAAG,WAAW;AACD,QAAhD,AAAO,MAAD,UAAU,AAAa,2BAAC,KAAK,GAAG,SAAS;MACjD;;;;UArIuB;UACc;UACE;UACN;UACF;UACC;UACf;UACR;UACE;UACA;UACA;UACS;UACT;UACD;UACC;UACA;UACQ;UACI;UACD;UACb;UACU;UACF;UACR;UACE;UACD;UACA;UACC;UACA;UACD;UACC;UACW;UACb;UACU;UACR;UACM;UACN;UACG;MAuCV;MACA;AAvCE,0DACU,IAAI,aACC,SAAS,aACT,SAAS,WACX,OAAO,gBACF,YAAY,gBACZ,YAAY,wBACJ,oBAAoB,oBACxB,gBAAgB,cACtB,UAAU,mBACL,eAAe,cACpB,UAAU,aACX,SAAS,kBACJ,cAAc,cAClB,UAAU,oBACJ,gBAAgB,oBAChB,gBAAgB,gBACpB,YAAY,aACf,SAAS,SACb,KAAK,UACC,KAAN,KAAK,QAAL,OAAS,2BACA,cAAc,qBACX,iBAAiB,aACzB,SAAS,YACV,QAAQ,sBACE,kBAAkB,iBACvB,aAAa,qBACT,iBAAiB,eACvB,WAAW,eACX,WAAW,gBACV,YAAY,qBACP,iBAAiB,kBACpB,cAAc,qBACX,iBAAiB,kBACpB,cAAc,gBAChB,YAAY,WACjB,OAAO,8BACY,0BAA0B;;IAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;MCR7D;;;;;;MACA;;;;;;;AAG4B;MAAyB;;AAInD,2BAAe;AACnB,iBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAY,8BAAQ,IAAA,AAAC,CAAA;AACvC,wBAAI,AAAW,AAAI,0BAAH,CAAC,6BAAe,AAAW,AAAI,0BAAH,CAAC,SAAW;AACtC,yBAAc;AACG,YAAjC,AAAO,MAAD,uBAAK,AAAW,AAAI,0BAAH,CAAC;AACS,YAAjC,AAAO,MAAD,uBAAK,AAAW,AAAI,0BAAH,CAAC;AAC4B,YAApD,qBAAe,MAAM,EAAE,AAAW,0BAAC,CAAC,GAAG,YAAY;AACrC,YAAd,eAAA,AAAY,YAAA;;;MAGlB;uBAG8B,QACG,cAAkB;AACnB,4DAAU;AACpB,QAApB,sBAAgB;AAChB,YAAI,OAAO,IAAI;AACyD,UAAtE,AAAQ,OAAD,iBAAgB,AAAO,AAAa,AAAc,mDAAQ;AACvB,UAA1C,AAAQ,OAAD,uBAAuB,YAAY;AACrB,UAArB,AAAQ,OAAD,UAAU;AACmB,UAApC,AAAQ,OAAD,kBAAiB,YAAY;AACZ,UAAxB,AAAQ,OAAD,WAAU,MAAM;AACS,UAAhC,AAAQ,OAAD;AACkB,UAAzB,sBAAiB,OAAO;AACsB,UAA9C,AAAQ,OAAD,eAAe,AAAQ,OAAD;AACa,UAA1C,AAAQ,OAAD,aAAa,AAAQ,OAAD;AACN,UAArB,AAAS,oBAAI,OAAO;;MAExB;uBAGmC;AACU,QAA3C,AAAQ,OAAD,SAAS,AAAQ,AAAO,OAAR;AACyB,QAAhD,AAAQ,OAAD,eAAe,AAAQ,AAAO,OAAR;AACmB,QAAhD,AAAQ,OAAD,eAAe,AAAQ,AAAO,OAAR;MAC/B;oBAGuB,OAAc,QAAe,WAAkB,QACvD,QAAY,OAAsB;AAC7C,gCAAU,MAAM,EAAE,SAAS,EAAE,kBAAO,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,KAAK;MAAC;qBAG9C,OAAc,QAAc,WAC1C,aAAoB,QAAe;AACO,QAAlD,AAAO,MAAD,UAAU,AAAa,2BAAC,KAAK,GAAG,WAAW;AACD,QAAhD,AAAO,MAAD,UAAU,AAAa,2BAAC,KAAK,GAAG,SAAS;MACjD;;;;UAzHuB;UACc;UACE;UACN;UACF;UACC;UACf;UACN;UACA;UACA;UACA;UACD;UACC;UACA;UACQ;UACC;UACG;UACD;UACb;UACU;UACF;UACR;UACE;UACD;UACC;UACW;UACb;UACU;UACR;UACM;UACN;UACG;MAkCV;MACA;AAlCE,6DACU,IAAI,aACC,SAAS,aACT,SAAS,WACX,OAAO,gBACF,YAAY,gBACZ,YAAY,wBACJ,oBAAoB,oBACxB,gBAAgB,mBACjB,eAAe,cACpB,UAAU,cACV,UAAU,aACX,SAAS,aACT,SAAS,SACb,KAAK,UACC,KAAN,KAAK,QAAL,OAAS,2BACA,cAAc,qBACX,iBAAiB,aACzB,SAAS,YACV,QAAQ,sBACE,kBAAkB,iBACvB,aAAa,qBACT,iBAAiB,eACvB,WAAW,eACX,WAAW,gBACV,YAAY,qBACP,iBAAiB,kBACpB,cAAc,qBACX,iBAAiB,kBACpB,cAAc,gBAChB,YAAY,WACjB,OAAO,8BACY,0BAA0B;;IAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;MCWhD;;;;;;MAoBJ;;;;;;;AAImB;MAAe;;AAKnC,oBAAa;AACP,sBAAe;AACf,sBAAe;AACvB;AAER,YAAS,uBAAL;AAC0B,UAA5B,aAAkB;;AAGpB,iBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAY,8BAAQ,IAAA,AAAC,CAAA;AACvC,2BAAI,AAAW,AAAI,0BAAH,CAAC,UAAY;AACO,YAAlC,AAAQ,OAAD,uBAAK,AAAW,AAAI,0BAAH,CAAC;AACS,YAAlC,AAAQ,OAAD,uBAAK,AAAW,AAAI,0BAAH,CAAC;;;AAI7B,sBAAI,AAAQ,OAAD;AACO,mBAAK,gBAAyB,aAAf,AAAQ,OAAD,aAAU;AAGhD,cAAe,YAAX,UAAU,EAAe;AAEyC,YADpE,QACI,2BAAoB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,AAAQ,OAAD,WAAS,EAAE;gBAC9D,KAAe,YAAX,UAAU,EAAe;AAClC,gBAAS,uBAAL;AAEiE,cADnE,QAAQ,0BACJ,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,AAAQ,OAAD,WAAS;;;AAIwB,YADvE,QACI,sBAAe,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,AAAQ,OAAD,oCAAS,UAAU;;AAE1B,UAA9C,wBAAkB,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK;;MAEjD;0BAGc,SAAmB,SAAmB,IAAc;AACnD,4BAAwB;AAC9B;AAAI;AAAI;AAAI;AACR,mBAAO,4BAAqB,AAAO,AAAW,yCACrD,kBAAO,AAAO,0BAAY,AAAO;AAC9B;AAAe;AAAe;AAAa;AAClD,iBAAS,aAAa,GAAG,AAAW,UAAD,GAAkB,aAAf,AAAQ,OAAD,aAAU,GAAG,aAAA,AAAU,UAAA;AAClE,cAAI,AAAO,OAAA,QAAC,UAAU,KAAK,QACvB,AAAO,OAAA,QAAC,UAAU,KAAK,QACvB,AAAO,OAAA,QAAC,AAAW,UAAD,GAAG,MAAM,QAC3B,AAAO,OAAA,QAAC,AAAW,UAAD,GAAG,MAAM;AAChB,oBAAI,AAAO,AAAa,OAAb,QAAC,UAAU;AACtB,oBAAI,AAAO,AAAa,OAAb,QAAC,UAAU;AACtB,wBAAQ,AAAO,AAAiB,OAAjB,QAAC,AAAW,UAAD,GAAG;AAC7B,wBAAQ,AAAO,AAAiB,OAAjB,QAAC,AAAW,UAAD,GAAG;AAC1C,gBAAe,YAAX,iBAAyB;AAQG,cAP9B,gBAAgB,wCACZ,CAAC,EACD,CAAC,EACD,KAAK,EACL,KAAK,EACL,AAAK,AAAa,KAAb,QAAC,UAAU,gBAChB,AAAK,AAAiB,KAAjB,QAAC,AAAW,UAAD,GAAG,iBACnB,AAAE,AAAa,EAAb,QAAC,UAAU;kBACZ,KAAe,YAAX,iBAAyB;AAEiC,cADnE,gBAAgB,uCAAgC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAC9D,AAAK,AAAa,KAAb,QAAC,UAAU,gBAAc,AAAK,AAAiB,KAAjB,QAAC,AAAW,UAAD,GAAG;;AAOtC,cALf,gBAAgB,+BACZ,OAAO,EACP,OAAO,EACP,AAAK,AAAa,KAAb,QAAC,UAAU,gBAChB,AAAK,AAAiB,KAAjB,QAAC,AAAW,UAAD,GAAG,iBACnB,UAAU;;AAGN,qCAAqB,AAAO,OAAA,QAAC,UAAU;AACvC,qCAAqB,AAAO,OAAA,QAAC,UAAU;AACvC,kCAAkB,AAAO,OAAA,QAAC,AAAW,UAAD,GAAG;AACvC,kCAAkB,AAAO,OAAA,QAAC,AAAW,UAAD,GAAG;AAI3C,YAFN,KAAK,AAEA,uBAFgB,kBAAkB,EAAE,kBAAkB,EAAE,eACrD,eAAQ,AAAO,oCAAsB,MAAM,IAAI;AAIjD,YAFN,KAAK,AAEA,uBAFgB,kBAAkB,EAAE,kBAAkB,EAAE,eACrD,eAAQ,AAAO,oCAAsB,MAAM,IAAI;AAIjD,YAFN,KAAK,AAEA,uBAFgB,eAAe,EAAE,eAAe,EAAE,eAAQ,eACvD,AAAO,oCAAsB,MAAM,IAAI;AAIzC,YAFN,KAAK,AAEA,uBAFgB,eAAe,EAAE,eAAe,EAAE,eAAQ,eACvD,AAAO,oCAAsB,MAAM,IAAI;AAIzC,YAFN,gBAAgB,AAEX,uBAF2B,AAAa,aAAA,QAAC,IAAI,AAAa,aAAA,QAAC,IACxD,eAAQ,eAAQ,AAAO,oCAAsB,MAAM,IAAI;AAIzD,YAFN,gBAAgB,AAEX,uBAF2B,AAAa,aAAA,QAAC,IAAI,AAAa,aAAA,QAAC,IACxD,eAAQ,eAAQ,AAAO,oCAAsB,MAAM,IAAI;AAIzD,YAFN,cAAc,AAET,uBAFyB,AAAa,aAAA,QAAC,IAAI,AAAa,aAAA,QAAC,IACtD,eAAQ,eAAQ,AAAO,oCAAsB,MAAM,IAAI;AAIzD,YAFN,cAAc,AAET,uBAFyB,AAAa,aAAA,QAAC,IAAI,AAAa,aAAA,QAAC,IACtD,eAAQ,eAAQ,AAAO,oCAAsB,MAAM,IAAI;AAE/C,yBAAc;AAChB,YAAd,AAAO,MAAD,OAAK,EAAE;AACC,YAAd,AAAO,MAAD,OAAK,EAAE;AACC,YAAd,AAAO,MAAD,OAAK,EAAE;AACC,YAAd,AAAO,MAAD,OAAK,EAAE;AACY,YAAzB,AAAO,MAAD,OAAK,aAAa;AACC,YAAzB,AAAO,MAAD,OAAK,aAAa;AACD,YAAvB,AAAO,MAAD,OAAK,WAAW;AACC,YAAvB,AAAO,MAAD,OAAK,WAAW;AAE2C,YADjE,qBACI,MAAM,EAAE,AAAW,0BAAC,UAAU,GAAG,AAAW,0BAAC,AAAW,UAAD,GAAG;;;MAGpE;uBAG8B,QAAqC,WAClC;AACX,kDAAU;AACT,QAArB,sBAAgB;AAChB,YAAI,OAAO,IAAI;AACoB,UAAjC,AAAQ,OAAD,kBAAiB,SAAS;AACqB,UAAtD,AAAQ,OAAD,sBAAqB,AAAU,SAAD;AACV,UAA3B,AAAQ,OAAD,eAAc,MAAM;AACiC,UAA5D,AAAQ,OAAD,uBAAuB,AAAY,6BAAQ,SAAS;AACW,UAAtE,AAAQ,OAAD,iBAAgB,AAAO,AAAa,AAAc,mDAAQ;AAC5C,UAArB,AAAQ,OAAD,UAAU;AACjB,wBAAI,AAAO,AAAY,+CACnB,AAAO,AAAY,8CAAoB,kBACvC,AAAO,AAAY,AAAiB,4DACO,AAAI,aAA/C,AAAO,AAAY,AAAiB,uDAAS,kBACzC,AAAQ,OAAD,mBACX,AAAO,AAAY,AAAgB,AAC1B,AAAY,kDADe,AAAQ,OAAD,gCAEvC,AAAQ,AAAO,OAAR;AAEgD,YAD7D,AAAQ,OAAD,aAAC,2BACJ,AAAO,AAAY,AAAgB,kDAAC,AAAQ,OAAD;;AAEzB,UAAxB,AAAQ,OAAD,WAAU,MAAM;AACS,UAAhC,AAAQ,OAAD;AACkB,UAAzB,sBAAiB,OAAO;AACsB,UAA9C,AAAQ,OAAD,eAAe,AAAQ,OAAD;AACa,UAA1C,AAAQ,OAAD,aAAa,AAAQ,OAAD;AACN,UAArB,AAAS,oBAAI,OAAO;;MAExB;uBAImC;AACU,QAA3C,AAAQ,OAAD,SAAS,AAAQ,AAAO,OAAR;AAC0B,QAAjD,AAAQ,OAAD,eAAe,AAAQ,AAAO,OAAR;AACa,QAA1C,AAAQ,OAAD,eAAe,AAAQ,AAAO,OAAR;MAC/B;qBAIwB,OAAc,QAAc,WAC1C,aAAoB,QAAe;AACO,QAAlD,AAAO,MAAD,UAAU,AAAa,2BAAC,KAAK,GAAG,WAAW;AACD,QAAhD,AAAO,MAAD,UAAU,AAAa,2BAAC,KAAK,GAAG,SAAS;MACjD;oBAIuB,OAAc,QAAe,WAAkB,QACvD,QAAY,OAAsB;AAC7C,gCAAU,MAAM,EAAE,SAAS,EAAE,kBAAO,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,KAAK;MAAC;;;;UArR/C;UACc;UACE;UACN;UACF;UACC;UACrB;UACA;UACA;UACD;UACC;UACQ;UACA;UACV;UACE;UACY;UACD;UACb;UACW;UACX;UACQ;UACN;UACW;UACb;UACU;UACF;UACN;UACA;UACG;MAfL;MAgBmB,gCAAwB,KAAtB,qBAAqB,QAArB,OAAyB;AACjD,2DACkB,YAAY,gBACZ,YAAY,wBACJ,oBAAoB,oBACxB,gBAAgB,mBACjB,eAAe,cACpB,UAAU,aACX,SAAS,aACT,SAAS,QACd,IAAI,SACH,KAAK,UACC,MAAN,KAAK,SAAL,OAAS,sBACN,QAAQ,cACN,UAAU,kBACN,cAAc,qBACX,iBAAiB,sBAChB,kBAAkB,iBACvB,aAAa,aACjB,SAAS,aACT,SAAS,qBACD,iBAAiB,qBACjB,iBAAiB,kBACpB,cAAc,qBACX,iBAAiB,kBACpB,cAAc,gBAChB,YAAY,WACjB,OAAO,8BACY,0BAA0B;;IAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MCmB5C;;;;;;MAsBJ;;;;;;MAuBJ;;;;;;;AAImB;MAAmB;;AAI1B,oCAAe;MAAY;uBAGG;AAC7B,sDAAU;AACb,QAArB,sBAAgB;AAChB,YAAI,OAAO,IAAI;AACyD,UAAtE,AAAQ,OAAD,iBAAgB,AAAO,AAAa,AAAc,mDAAQ;AAC5C,UAArB,AAAQ,OAAD,UAAU;AACgC,UAAjD,yCAAkC,AAAQ,OAAD;AAChB,UAAzB,sBAAiB,OAAO;AACsB,UAA9C,AAAQ,OAAD,eAAe,AAAQ,OAAD;AACa,UAA1C,AAAQ,OAAD,aAAa,AAAQ,OAAD;AACN,UAArB,AAAS,oBAAI,OAAO;;MAExB;uBAImC;AACU,QAA3C,AAAQ,OAAD,SAAS,AAAQ,AAAO,OAAR;AAC0B,QAAjD,AAAQ,OAAD,eAAe,AAAQ,AAAO,OAAR;AACa,QAA1C,AAAQ,OAAD,eAAe,AAAQ,AAAO,OAAR;MAC/B;qBAIwB,OAAc,QAAc,WAC1C,aAAoB,QAAe;AACO,QAAlD,AAAO,MAAD,UAAU,AAAa,2BAAC,KAAK,GAAG,WAAW;AACD,QAAhD,AAAO,MAAD,UAAU,AAAa,2BAAC,KAAK,GAAG,SAAS;MACjD;oBAIuB,OAAc,QAAe,WAAkB,QACvD,QAAY,OAAsB;AAC7C,gCAAU,MAAM,EAAE,SAAS,EAAE,kBAAO,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,KAAK;MAAC;;;;UAxK/C;UACc;UACE;UACN;UACD;UACf;UACN;UACA;UACA;UACD;UACS;UACV;UACW;UACT;UACY;UACD;UACb;UACA;UACQ;UACN;UACD;UACC;UACQ;UACG;UACb;UACU;UACR;UACA;UACQ;MAjBV;MAkBS,oBAAkB;MACf,0BAAiB,KAAf,cAAc,QAAd,OAAiC;MAC5B,iCAAwB,MAAtB,qBAAqB,SAArB,OAAyB;AACjD,+DACkB,YAAY,gBACZ,YAAY,wBACJ,oBAAoB,mBACzB,eAAe,cACpB,UAAU,aACX,SAAS,aACT,SAAS,QACd,IAAI,SACH,KAAK,cACA,UAAU,kBACN,cAAc,qBACX,iBAAiB,aACzB,SAAS,sBACA,kBAAkB,iBACvB,aAAa,aACjB,SAAS,qBACD,iBAAiB,eACvB,WAAW,eACX,WAAW,YACd,QAAQ,qBACC,iBAAiB,kBACpB,cAAc,qBACX,iBAAiB,kBACpB,cAAc,gBAChB,YAAY,WACjB,OAAO;;IAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;MC2BN;;;;;;;AAIW;MAAiB;;AAIxB,oCAAe;MAAY;uBAGG;AAC/B,oDAAU;AACX,QAArB,sBAAgB;AAChB,YAAI,OAAO,IAAI;AACyD,UAAtE,AAAQ,OAAD,iBAAgB,AAAO,AAAa,AAAc,mDAAQ;AAC5C,UAArB,AAAQ,OAAD,UAAU;AACQ,UAAzB,sBAAiB,OAAO;AACsB,UAA9C,AAAQ,OAAD,eAAe,AAAQ,OAAD;AACa,UAA1C,AAAQ,OAAD,aAAa,AAAQ,OAAD;AACN,UAArB,AAAS,oBAAI,OAAO;;MAExB;uBAImC;AACU,QAA3C,AAAQ,OAAD,SAAS,AAAQ,AAAO,OAAR;AACyB,QAAhD,AAAQ,OAAD,eAAe,AAAQ,AAAO,OAAR;AACmB,QAAhD,AAAQ,OAAD,eAAe,AAAQ,AAAO,OAAR;MAC/B;qBAIwB,OAAc,QAAc,WAC1C,aAAoB,QAAe;AACO,QAAlD,AAAO,MAAD,UAAU,AAAa,2BAAC,KAAK,GAAG,WAAW;AACD,QAAhD,AAAO,MAAD,UAAU,AAAa,2BAAC,KAAK,GAAG,SAAS;MACjD;oBAIuB,OAAc,QAAe,WAAkB,QACvD,QAAY,OAAsB;AAC7C,gCAAU,MAAM,EAAE,SAAS,EAAE,kBAAO,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,KAAK;MAAC;;;;UAxH/C;UACc;UACE;UACN;UACF;UACC;UACf;UACN;UACA;UACA;UACD;UACS;UACC;UACG;UACD;UACb;UACA;UACQ;UACN;UACD;UACC;UACQ;UACG;UACb;UACU;UACR;UACA;UACQ;MACE,0BAAiB,KAAf,cAAc,QAAd,OAAiC;AAClD,6DACkB,YAAY,gBACZ,YAAY,wBACJ,oBAAoB,oBACxB,gBAAgB,mBACjB,eAAe,cACpB,UAAU,aACX,SAAS,aACT,SAAS,QACd,IAAI,cACE,UAAU,SACf,KAAK,kBACI,cAAc,qBACX,iBAAiB,aACzB,SAAS,sBACA,kBAAkB,iBACvB,aAAa,aACjB,SAAS,qBACD,iBAAiB,eACvB,WAAW,eACX,WAAW,YACd,QAAQ,qBACC,iBAAiB,kBACpB,cAAc,qBACX,iBAAiB,kBACpB,cAAc,gBAChB,YAAY,WACjB,OAAO;;IAAC;;;;;;;;;;;;;;;;;;;;;;;;;ACNK;MAAiB;;AAKrC,qBAAc;AACpB,2BAAe;AACnB,iBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAY,8BAAQ,IAAA,AAAC,CAAA;AACvC,cAAuB,aAAnB,AAAY,+BAAS;AACvB,gBAAI,MAAM,KAAI,kBAAQ,AAAO,MAAD,kBAA6B,aAAd,AAAO,MAAD,aAAU;AACpC,cAArB,AAAM,MAAA,QAAC,GAAK,AAAM,MAAA,QAAC;AACE,cAArB,AAAM,MAAA,QAAC,GAAK,AAAM,MAAA,QAAC;AACK,cAAxB,AAAO,MAAD,eAAa,GAAG;;AAExB,0BAAI,AAAW,AAAI,0BAAH,CAAC;AACf,+BAAI,AAAW,AAAI,0BAAH,CAAC,SAAW;AAC1B,8BAAI,AAAO,MAAD,yBACL,AAAO,MAAD,oBACS,eAAV,AAAM,MAAA,QAAC,IAAM,AAAW,AAAI,0BAAH,CAAC,aACd,eAAV,AAAM,MAAA,QAAC,IAAM,AAAW,AAAI,0BAAH,CAAC;AACH,kBAAjC,AAAO,MAAD,uBAAK,AAAW,AAAI,0BAAH,CAAC;AACS,kBAAjC,AAAO,MAAD,uBAAK,AAAW,AAAI,0BAAH,CAAC;;;AAG5B,mBAAK,AAAE,CAAD,KAAI,KAA8B,YAAzB,AAAW,AAAQ,0BAAP,AAAE,CAAD,GAAG,UAAY,uBACvC,AAAW,AAAI,0BAAH,CAAC,SAAW,sBACxB,AAAW,AAAQ,0BAAP,AAAE,CAAD,GAAG,UAAY,mBAC5B,AAAW,AAAQ,0BAAP,AAAE,CAAD,GAAG;AACmB,gBAArC,AAAO,MAAD,uBAAK,AAAW,AAAQ,0BAAP,AAAE,CAAD,GAAG;AACU,gBAArC,AAAO,MAAD,uBAAK,AAAW,AAAQ,0BAAP,AAAE,CAAD,GAAG;oBACtB,KAAyB,YAArB,AAAW,AAAI,0BAAH,CAAC,SAAW;AACjB,gBAAhB,SAAc;;;;AAKpB,cAAI,MAAM,KAAI,kBAAQ,AAAO,MAAD,kBAA6B,aAAd,AAAO,MAAD,aAAU;AAEV,YAD/C,qBAAe,MAAM,EAAE,AAAW,0BAAC,CAAC,GAAG,YAAY,EAC/C,AAAW,AAAe,0BAAd,YAAY;AACd,YAAd,eAAA,AAAY,YAAA;;;MAGlB;uBAIc,QACmB,cACzB,cACE;AACc,oDAAU;AACX,QAArB,sBAAgB;AAChB,YAAI,OAAO,IAAI;AAC6B,UAA1C,AAAQ,OAAD,uBAAuB,YAAY;AAC4B,UAAtE,AAAQ,OAAD,iBAAgB,AAAO,AAAa,AAAc,mDAAQ;AAC5C,UAArB,AAAQ,OAAD,UAAU;AACmB,UAApC,AAAQ,OAAD,kBAAiB,YAAY;AACpC,wBAAI,AAAO,AAAY,+CACnB,AAAO,AAAY,8CAAoB,kBACvC,AAAO,AAAY,AAAiB,4DACO,AAAI,aAA/C,AAAO,AAAY,AAAiB,uDAAS,kBACzC,AAAQ,OAAD,mBACX,AAAO,AAAY,AAAgB,AAC1B,AAAY,kDADe,AAAQ,OAAD,gCAEvC,AAAQ,AAAO,OAAR;AAEgD,YAD7D,AAAQ,OAAD,aAAC,2BACJ,AAAO,AAAY,AAAgB,kDAAC,AAAQ,OAAD;;AAEL,UAA5C,AAAQ,OAAD,sBAAqB,gBAAgB;AACrB,UAAvB,AAAQ,OAAD,SAAS,MAAM;AACU,UAAhC,AAAQ,OAAD;AACkB,UAAzB,sBAAiB,OAAO;AACsB,UAA9C,AAAQ,OAAD,eAAe,AAAQ,OAAD;AACa,UAA1C,AAAQ,OAAD,aAAa,AAAQ,OAAD;AACN,UAArB,AAAS,oBAAI,OAAO;;MAExB;uBAImC;AACU,QAA3C,AAAQ,OAAD,SAAS,AAAQ,AAAO,OAAR;AAC0B,QAAjD,AAAQ,OAAD,eAAe,AAAQ,AAAO,OAAR;AACa,QAA1C,AAAQ,OAAD,eAAe,AAAQ,AAAO,OAAR;MAC/B;qBAIwB,OAAc,QAAc,WAC1C,aAAoB,QAAe;AACO,QAAlD,AAAO,MAAD,UAAU,AAAa,2BAAC,KAAK,GAAG,WAAW;AACD,QAAhD,AAAO,MAAD,UAAU,AAAa,2BAAC,KAAK,GAAG,SAAS;MACjD;oBAIuB,OAAc,QAAe,WAAkB,QACvD,QAAY,OAAsB;AAC7C,gCAAU,MAAM,EAAE,SAAS,EAAE,kBAAO,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,KAAK;MAAC;;;;UA1J/C;UACc;UACE;UACN;UACF;UACC;UACrB;UACA;UACA;UACD;UACC;UACQ;UACA;UACC;UACG;UACD;UACb;UACA;UACQ;UACN;UACW;UACL;UACR;UACU;UACR;UACA;AACL,6DACkB,YAAY,gBACZ,YAAY,wBACJ,oBAAoB,oBACxB,gBAAgB,mBACjB,eAAe,cACpB,UAAU,aACX,SAAS,aACT,SAAS,cACR,UAAU,QAChB,IAAI,SACH,KAAK,UACC,KAAN,KAAK,QAAL,OAAS,qBACN,QAAQ,kBACF,cAAc,qBACX,iBAAiB,sBAChB,kBAAkB,iBACvB,aAAa,aACjB,SAAS,aACT,SAAS,qBACD,iBAAiB,qBACjB,iBAAiB,kBACpB,cAAc,qBACX,iBAAiB,kBACpB,cAAc,gBAChB,YAAY,WACjB,OAAO;;IAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;M3CyXzB;;;;;;MAGA;;;;;;MAGA;;;;;;MAGA;;;;;;MAGA;;;;;;MAGA;;;;;;MAGA;;;;;;MAGA;;;;;;MAGA;;;;;;MAGE;;;;;;MAGW;;;;;;MAGA;;;;;;MAGR;;;;;;MAGF;;;;;;MAGA;;;;;;MAGA;;;;;;MAGA;;;;;;MAGC;;;;;;MAGC;;;;;;MAGF;;;;;;MAGU;;;;;;MAAW;;;;;;MAAY;;;;;;MAAiB;;;;;;MAGzC;;;;;;MAGH;;;;;;MAGJ;;;;;;MAGF;;;;;;MAGE;;;;;;MAGA;;;;;;MAGA;;;;;;MAGA;;;;;;MAGD;;;;;;MAGA;;;;;;MAGA;;;;;;MAGA;;;;;;MAGS;;;;;;MAGA;;;;;;MAGA;;;;;;MAGA;;;;;;MAGV;;;;;;MAGA;;;;;;MAGA;;;;;;MAGA;;;;;;MAGA;;;;;;MAGD;;;;;;MAGS;;;;;;;wCA9JH,UACD,UACA,wBACA,yBACA,mBACA,aACA,YACA,aACA,cACA;MA0BP;MAGA;MAGA;MAkBa;MAGA;MAMV;MAGA,cAAQ;MAGR,eAAS;MAGT,oBAAY;MASZ;MAGU;MAAW;MAAY;MAAiB;MAGzC;MAGH;MAGJ;MAGF;MAGE;MAGA;MAGA;MAGA;MAGD;MAGA;MAGA;MAGA;MAGS;MAGA;MAGA;MAGA;MAGV,wCAAkC;MAGlC;MAGA;MAGA;MAGA;MAGD;MAGS;MA9JH;MACD;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;AACF,MAAL,SAAI;AACC,MAAL,SAAI;AACiB,MAArB,iBAAY;AACa,MAAzB,mBAAc;AACG,MAAjB,eAAU;AACG,MAAb,aAAQ;AACa,MAArB,iBAAY;AACW,MAAvB,kBAAa;AACsB,MAAnC,wBAAmB;AACc,MAAjC,uBAAkB;AACP,MAAX,YAAO;AACE,MAAT,WAAM;AACK,MAAX,YAAO;AACM,MAAb,aAAQ;AACmB,MAA3B,oBAAe;AACA,MAAf,cAAS;IACX;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wCAwIoB,GAAQ;IAAR;IAAQ;;EAAE;;;;;;;;;;;;;;AAqC5B,YAAW,aAAP,8BAAU,AAAQ;AACV,UAAV,eAAS;;AAEX,cAAO,AAAO,wBAAO,mBAAN,kCAAM;MACvB;;0CAR2B;MAEvB,eAAS;MAFc;;IAAQ;;;;;;;;;;;;;;;;;;2C4C3lBZ,aAAkB,OAAY;IAA9B;IAAkB;IAAY;;EAAW;;;;;;;;;;mCAOjD,MAAW;IAAX;IAAW;;EAAK;;;;;;;;;;QAMb;QAAY;QAAW;IAAvB;IAAY;IAAW;;EAAmB;;;;;;;;;;;;;;;;;;;;;;;IA+CjD;;;;;;IAiBC;;;;;;IAkBA;;;;;;IAkBC;;;;;;IAeQ;;;;;;IAmBR;;;;;;IAeA;;;;;;IAeA;;;;;;IAgBA;;;;;;IAcA;;;;;;IAaD;;;;;;IAaO;;;;;;IAaT;;;;;;;;;QAxNA;QACD;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACU;IAZT;IACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEO,qBAAY,KAAV,SAAS,QAAT,OAAa;;EAAgB;;;;;;;;;;;;;;;;;;;;wCA+M3B,aAAkB;IAAlB;IAAkB;;EAAU;;;;;;;;;iDAMnB,WAAgB;IAAhB;IAAgB;;EAAgB;;;;;;;;;0CAMvC,aAAkB;IAAlB;IAAkB;;EAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;IC/M1B;;;;;;IAeT;;;;;;IAgBS;;;;;;IAoBJ;;;;;;IAsBJ;;;;;;IAkBF;;;;;;IAsBmB;;;;;;IAqBjB;;;;;;IAkBF;;;;;;IAkBD;;;;;;IAoBE;;;;;;IAoBC;;;;;;IAsBgB;;;;;;IAsBD;;;;;;IAuBD;;;;;;IAuBO;;;;;;IAEvB;;;;;;oBAGU,OACiB,QACL,OACX,qBACX,QACH;AACuD,MAA7D,8DAA4B,MAAM,GAAE,KAAK,EAAE,UAAU,EAAE,KAAK;AAExB,MADpC,sBAAe,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,AAAO,MAAD,oBAAoB,KAAK,EACjE,UAAU,EAAE,mBAAmB;IACrC;;;;QAzWU;QACD;QACU;QACJ;QACN;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACC;QACC;QACc;QACC;QACC;IAhBjB;IACD;IAGA;IACA;IACA;IACA;IACA;IACA;IAEA;IAMS,wBAAc,KAAZ,WAAW,QAAX,OAAsB;IACrB,0BAAiB,MAAf,cAAc,SAAd,OAAkB;IACrB,yBAAgB,OAAd,aAAa,UAAb,OAAwC;IAC5C,wBAAc,OAAZ,WAAW,UAAX,OAAe;IACtB,kBAAS,OAAP,MAAM,UAAN;IACa,gCACI,OAAtB,qBAAqB,UAArB,OAAyB;IACR,gCACI,OAArB,oBAAoB,UAApB,OAA6C;IACvC,qBAAY,OAAV,SAAS,UAAT,OAAa;;EAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICDpC;;;;;;IAmBE;;;;;;IAmBA;;;;;;IAmBD;;;;;;IAsBS;;;;;;IAoBT;;;;;;IAoBC;;;;;;IAoBO;;;;;;iBAKkB,QACL,OACX,qBACX,QACH;;;AACA;AAAa;AACR,mBACP,gBAAK,AAAO,AAAe,MAAhB,uBAAuB,AAAO,AAAe,MAAhB;AACvB,yBAAa,AAAO,AAAe,MAAhB;AACX;AACvB;AACK,4BAAiB,AAAO,AAAiB,MAAlB,qBAAqB,OAAQ,OAAO;AACzD,sBACR,AAAoB,mBAAD,IAAI,OAAQ,AAAoB,mBAAD,SAAS;AACzB,QAAvC,QAAQ,AAAO,AAAW,MAAZ,sBAAa,WAAW;AACiC,QAAvE,gBAAiD,KAAlC,AAAO,AAAe,MAAhB,mCAAgB,OAAe,AAAO,MAAD;AAcjB,QAbzC,qBAAc,gBACV,YAAsB,YAAd,AAAM,KAAD,UAAY,QACpB,AAAO,AAAmB,AAAY,MAAhC,oCAAmC,IAC/B,6BACP,AAAO,AAAmB,AAAY,MAAhC,4CAA4C,OAAO,IAC5D,AAAO,AAAe,AAAY,MAA5B,gCAA+B,IAC3B,6BACL,AAAc,aAAD,IAAI,AAAM,KAAD,qBAAqB,OACzC,AAAM,AAAiB,KAAlB,8BAA8B,OAAO,IAC1C,AAAa,YAAD,aAAa,OAAO,GAC5C,YAAsB,yBACtB,kBAA4B,YAAd,AAAM,KAAD,UAAY,QAC3B,AAAO,AAAmB,MAApB,kCACN,AAAO,AAAe,MAAhB;AAEd,YAAI,AAAO,MAAD,aAAa,QAAQ,AAAO,AAAe,AAAY,MAA5B,+BAA+B;AAS3B,UARvC,cAAc,+BACV,AAAO,MAAD,WACN,AAKK,wBAJG,UAAU,EACV,kBAAO,AAAM,AAAY,KAAb,gBAAgB,AAAM,AAAY,KAAb,iBACjC,IAAI,EACJ,MAAM,eAEd,AAAO,AAAO,MAAR;AAC8B,UAAxC,AAAY,WAAD,SAAuB;AAGK,UAFvC,AAAY,WAAD,eAA6B,YAAd,AAAM,KAAD,UAAY,QACrC,AAAO,AAAmB,MAApB,kCACN,AAAO,AAAe,MAAhB;;AAcgB,QAX9B,oBAAY,gBACR,aAAsB,YAAd,AAAM,KAAD,UAAY,QACrB,AAAO,AAAmB,MAApB,4BACsB,aAA5B,AAAO,AAAe,MAAhB,uBAAgC,8BAM/B,CAL0B,KAA5B,AAAO,AAAe,MAAhB,6BAAgB,OACiC,YAAjD,AAAO,AAAO,AAAY,AAAY,MAAhC,+CACY,uBACN,uBACA,uCACJ,OAAO,IACtB,AAAO,AAAe,MAAhB,uBACd,aAAsB;AACf,wBAAY,AAAO,AAAY,MAAb,mBAAgB;AAG7C,uBAAK,AAAO,AAAe,MAAhB,8BAA6B,SAAS,eAC7C,AAAM,KAAD,eACL,AAAM,KAAD,gBAAgB,qBACrB,AAAM,KAAD,QAAU,WACb,SAAS,IAAgC,YAA5B,AAAO,AAAe,MAAhB,uBAAwC;AAElB,UAD7C,AAAO,MAAD,gBAAgB,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAC7D,AAAM,AAAY,KAAb,gBAAgB,AAAM,AAAY,KAAb;AAC9B,cAAgC,YAA5B,AAAO,AAAe,MAAhB,uBAAwC;AAEa,YAD7D,uBACI,MAAM,EAAE,MAAM,EAAE,AAAM,AAAY,KAAb,gBAAgB,AAAM,AAAY,KAAb;AAC9C,gBAAI,AAAO,AAAY,MAAb,0BAAsB,UAC9B,AAC+D,uBAA3D,MAAM,EAAE,MAAM,EAAE,AAAM,AAAa,KAAd,iBAAiB,AAAM,AAAa,KAAd;;;;IAGvD;uBAGwD,QAAe,QAC5D,QAAe;AACxB,UAAI,AAAO,AAAe,MAAhB,2BAA0B;AACrB,yBAAa,AAAE,iBAAE,AAAO,AAAe,MAAhB;AACvB,0BAAc,AAAE,iBAAE,AAAO,AAAe,MAAhB;AAC1B,2BAAoB,qBAAgB,aAAP,MAAM,IAAG,AAAW,UAAD,GAAG,GACnD,aAAP,MAAM,IAAG,AAAY,WAAD,GAAG,GAAG,UAAU,EAAE,WAAW;AAKhC,QAJrB,qCACY,MAAM,QACR,YAAY,SACX,AAAO,AAAe,MAAhB,8BACD;;IAEpB;;;QAtQU;QACD;QACA;QACA;QACA;QACA;QACA;QACA;IA+JK;IAtKJ;IACD;IACA;IACA;IACA;IACA;IACA;IACA;;EAAO;;;;;;;;;;;;;;;;;;;;;;ACJuB;IAAyB;;;QATvC;QAAqB;;IAMtB;IANC;IAAqB;AAA9C;;EAAoD;;;;;;;;;;;;;;;;;;;;;;;;;AAwBF,MAAhD,gCAA2B,+BAAmB;AAEL,MADzC,iCAAsB,yDAA2B,QAC7C,yBAAY;AACC,MAAX;IACR;;AAIE,UAAI,4BAAuB;AACmC,QAA5D,AAAoB,kDAAe;AACN,QAA7B,AAAoB;AACM,QAA1B,2BAAsB;;AAET,MAAT;IACR;;;AAGkC,WAAhC;MAAyB,WAAK,aAAL,YAAK;IAChC;;AAKI,MAFF,cAAS;AACW,QAAlB,AAAO,mBAAO;;IAElB;UAG0B;AACL,MAAnB,AAAO,oBAAQ;AAGmD,MAFlE,AAAoB,oCAAW,+CAEvB,AAAO,AAAe,AAAY,yDAAgB,MAAM;AACxC,+BACpB,AAAoC,kCAAf,UAAU,cAAa,4CACtC;AAG4B,MAAtC,AAAoB,wCAAc;AAClC,YAAO,YAAC,AAAO,oBACT,yFACA,oCACS,oCACM,kDACW,AAAO,uCACZ,kBAAkB,SACtB,2BACc,oCACX;IAC5B;;;IA1D0B;IAGN;IAGD;;;EAqDrB;;;;;;;;;;;;;;;;UAoBoB,QAAa;;AAC2B,MAAxD,AAAO,MAAD,UAAU,AAAe,AAAW;AACkB,MAA5D,AAAe,AAAY,0DAA+B;AAC1D,eAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAe,AAAa,AAAc,2DAAQ,IAAA,AAAC,CAAA;AAChC,gDACjC,AAAe,AAAa,AAAa,uDAAC,CAAC;AAC/C,sBAAI,AAAO,AAAkB,MAAnB,iCACN,AAAO,AAAkB,AAAQ,MAA3B,8BAA8B;AACtC,mBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,AAAY,MAAb,0BAAqB,IAAA,AAAC,CAAA;AAC9C,0BAAI,AAAO,MAAD,eAAa,AAAO,MAAD,sBAAsB;AAED,mBADhD,AAAO,MAAD;2BAAC,OAAmB,mBAAgB,qBAAgB,MAAM,EAC5D,AAAO,AAAW,MAAZ,sBAAa,CAAC,GAAG,gBAAW,MAAM,EAAE,CAAC;;;;;IAKzD;;sCAGqC;AAAgB;IAAI;;;QAnC/C;QACD;QACA;QACA;QACc;IAJb;IACD;IACA;IACA;AAEH,gEAAe,QAAQ;;EAAC;;;;;;;;;;;;;;;;UCjEZ,QAAa;;AACnB,wBAAc,AAAW;AAC9B;AAC2C,MAAhD,AAAO,kCAAsB,YAAO,WAAW;AACxC;AACsB;AAAW;AAAO;AAChC;AAAc;AAAa;AAC1B,kBAAQ,AAAO;AACf,kBAAQ,AAAO;AACA;AACpB,kBAAQ;AACR,wBAAc;AACzB,oBAAI,AAAO;AACI,QAAb,AAAO,MAAD;AAC+D,QAArE,kBAAkB,AAAgB,wBAAG,OAAO,AAAgB,6BAAQ;AACzD,2BAAe,4BACtB,AAAM,AAAW,uCACjB,kBAAO,AAAO,AAAO,iCAAY,AAAO,AAAO;AACtB,QAA7B,AAAO,MAAD,UAAU,YAAY;AAC5B,sBAAI,AAAM,AAAY,6CAClB,AAAM,AAAY,KAAb,kBAAgB,KACrB,AAAM,AAAY,KAAb,kBAAgB,KACrB,AAAM,AAAY,4CAAoB,kBACtC,AAAM,AAAY,AAAiB,0DACO,AAAI,aAA9C,AAAM,AAAY,AAAiB,qDAAS,kBAAK,WAAW,KAC5D,AAAM,AAAY,AAAgB,AAAc,AAAY,gDAAzB,WAAW,kBAC1C,AAAO;AAC8C,sBAA3D,2BAAY,AAAM,AAAY,AAAgB,gDAAC,WAAW;;AAE5D,uBAAK,AAAO,AAAO,AAAY,sDACF,aAAzB,AAAO,iCAAoB,gBAC1B,AAAO,AAAO,AAAY;AAE6B,UAD1D,+BACI,AAAO,qBAAQ,AAAO,sBAAQ,MAAM,EAAE,eAAe;;AAE3D,iBAAS,aAAa,GAClB,AAAW,UAAD,gBAAG,AAAO,AAAY,qCAChC,aAAA,AAAU,UAAA;AAC0B,UAAtC,QAAQ,AAAO,AAAW,iCAAC,UAAU;AAEkB,UADvD,AAAO,gCACH,YAAO,aAAQ,AAAW,uBAAO,KAAK,EAAE,UAAU;AACtD,wBAAI,AAAM,KAAD,0BAAe,AAAM,KAAD;AAajB,YAZV,SAAmC,AASX,aATd,AAAO,iCAAoB,eAC7B,AAAO,AAAO,AAAY,iEACzB,AAAO,AAAO,AAAY,uDAC3B,AAAO,AAAO,AAAY,qDAAoB,kBAC9C,AAAO,AAAO,AAAY,AAAiB,mEAC3C,SAAS,IAAI,kBACb,AAAU,AAAS,SAAV,2BACa,sBAAtB,AAAU,AAAQ,SAAT,iBAAU,OAC+B,AAAI,aAAtD,AAAO,AAAO,AAAY,AAAiB,8DAAS,kBAChD,WAAW,KACc,AAAI,aAAjC,AAAU,AAAY,SAAb,2BAAsB,KAAK,UAAU,GAChD,AAAU,AAAW,SAAZ,sBAAa,UAAU,IAChC;AAUI,YATV,WAAW,AAAO,MAAD,IAAI,OACf,uCACE,AAAO,MAAD,0BACN,AAAO,MAAD,UACN,AAAU,SAAD,WACT,AAAU,SAAD,WACT,AAAO,AAAO,2CACd,SAAS,EACT,YAAY,IACd;AAE8D,YADpE,eAAe,uCAAgB,AAAM,KAAD,0BAAS,AAAM,KAAD,UAAS,KAAK,EAC5D,KAAK,EAAE,AAAO,AAAO,2CAAsB,aAAQ,YAAY;AAQlD,YAPjB,cAAc,uCACV,AAAM,KAAD,UACL,mCAAa,AAAM,AAAc,KAAf,0BAAwB,IAC1C,KAAK,EACL,KAAK,EACL,AAAO,AAAO,2CACd,aACA,YAAY;AACZ,oBAAI,AAAa,YAAD;AAChB,oBAAI,AAAa,YAAD;AACT,yBACwB,YAA/B,AAAO,AAAmB,qCAAuB,8BAC3C,qBAAe,AAAO,2BAAa,UAAU,IAC7C;AACV,gBAAI,QAAQ,IAAI;AACd,4BAAI,AAAO,AAAO;AAC6C,gBAA7D,IAAI,iBAAU,eAAe,EAAE,CAAC,EAAE,AAAS,QAAD,IAAI,AAAa,YAAD;;AAEG,gBAA7D,IAAI,iBAAU,eAAe,EAAE,CAAC,EAAE,AAAS,QAAD,IAAI,AAAa,YAAD;;;AAG9D,gBAAI,AAAU,SAAD,IAAI,QAC4B,YAAzC,AAAO,AAAW,AAAiB,iCAAhB,AAAW,UAAD,GAAG,UAAY,SACN,YAArC,AAAO,AAAW,AAAa,iCAAZ,UAAU,SAAW,SACK,YAA7C,AAAO,AAAW,AAAiB,iCAAhB,AAAW,UAAD,GAAG,cAAgB,UACd,YAA/B,AAAO,AAAmB,qCAAuB;AACb,cAA1C,AAAM,KAAD,QAAQ,AAAY,WAAD,IAAI,AAAY,WAAD;AACvC,kBAA0B,YAAtB,AAAO,4BAAiC;AAC1C,iCAAI,AAAO,AAAW,AAAa,iCAAZ,UAAU,SAAW;AACM,kBAAhD,AAAY,WAAD,QAAQ,AAAY,WAAD,IAAI,AAAY,WAAD;AACrB,kBAAxB,AAAY,WAAD,QAAQ,CAAC,EAAE,CAAC;;oBAEpB,KAA0B,YAAtB,AAAO,4BAAiC;AACjD,iCAAI,AAAO,AAAW,AAAa,iCAAZ,UAAU,SAAW;AACM,kBAAhD,AAAY,WAAD,QAAQ,AAAY,WAAD,IAAI,AAAY,WAAD;AACrB,kBAAxB,AAAY,WAAD,QAAQ,CAAC,EAAE,CAAC;;oBAEpB,KAA0B,YAAtB,AAAO,4BAAiC;AACzB,gBAAxB,AAAY,WAAD,QAAQ,CAAC,EAAE,CAAC;;AAEP,cAAlB,AAAM,KAAD,QAAQ,CAAC,EAAE,CAAC;kBACZ,KAAI,AAAW,UAAD,KAA8B,aAA1B,AAAO,AAAY,sCAAS,KACR,YAAzC,AAAO,AAAW,AAAiB,iCAAhB,AAAW,UAAD,GAAG,UAAY;AACtB,cAAxB,AAAY,WAAD,QAAQ,CAAC,EAAE,CAAC;AACvB,kBAA0B,YAAtB,AAAO,4BAAiC;AACM,gBAAhD,AAAY,WAAD,QAAQ,AAAY,WAAD,IAAI,AAAY,WAAD;kBAC1C,KAA0B,YAAtB,AAAO,4BAAiC;AACC,gBAAhD,AAAY,WAAD,QAAQ,AAAY,WAAD,IAAI,AAAY,WAAD;AAC1B,gBAAnB,AAAY,WAAD;;AAEK,cAAlB,AAAM,KAAD,QAAQ,CAAC,EAAE,CAAC;AACyB,cAA1C,AAAM,KAAD,QAAQ,AAAY,WAAD,IAAI,AAAY,WAAD;;AAEf,cAAxB,AAAY,WAAD,QAAQ,CAAC,EAAE,CAAC;AACL,cAAlB,AAAM,KAAD,QAAQ,CAAC,EAAE,CAAC;AAEjB,4BAAI,MAAM;AACkC,gBAA1C,AAAM,KAAD,QAAQ,AAAY,WAAD,IAAI,AAAY,WAAD;AACvC,oBAA0B,YAAtB,AAAO,4BAAiC;AACM,kBAAhD,AAAY,WAAD,QAAQ,AAAY,WAAD,IAAI,AAAY,WAAD;sBACxC,KAA0B,YAAtB,AAAO,4BAAiC;AACD,kBAAhD,AAAY,WAAD,QAAQ,AAAY,WAAD,IAAI,AAAY,WAAD;AAC1B,kBAAnB,AAAY,WAAD;;;;AAIA,YAAjB,YAAY,KAAK;;AAEnB,cAAI,AAAW,UAAD,IAA8B,aAA1B,AAAO,AAAY,sCAAS;AACe,YAA3D,AAAO,uBAAW,AAAW,uBAAO,YAAO,eAAe;;;AAI9D,YAAI,KAAK,IAAI,QACT,AAAO,wBAAY,kBACnB,AAAO,AAAS;AACA,sDAAc,AAAO,AAAQ,4BAAC;AAKd,UAJlC,AAAO,wBACH,MAAM,QACN,WAAW,EACP,aAAQ,KAAK,EACb,mBAAc,WAAW;;AAU4B,QAR/D,WAAW,4BACF,qBACmC,aAApC,AAAM,AAAW,AAAc,2DAAO,AAAO,AAAe,mCACzB,aAAnC,AAAM,AAAW,AAAc,0DAAM,AAAO,AAAe,oCACtB,aAArC,AAAM,AAAW,AAAc,4DAC3B,AAAO,AAAe,mCACY,aAAtC,AAAM,AAAW,AAAc,6DAC3B,AAAO,AAAe,qCAC9B,kBAAO,AAAO,AAAO,iCAAY,AAAO,AAAO;AACnC,QAAhB,AAAO,MAAD;AACN,aAA8B,aAAzB,AAAO,kCAAqB,KACT,aAAhB,eAAe,kBAAI,AAAM,kDAC5B,AAAO,AAAe,mDACnB,AAAO,AAAkB;AACN,UAAzB,AAAO,MAAD,UAAU,QAAQ;AACyC,UAAjE,AAAO,iCAAqB,YAAO,MAAM,EAAE;;AAE7C,YAAoB,aAAhB,eAAe,KAAI;AAEsC,UAD3D,AAAM,AACD,sCAAc,AAAW,uBAAO,AAAW,sBAAM;;;IAG5D;qBAEuD,QAAY;AACjE,eAAS,IAAI,KAAK,EAAI,aAAF,CAAC,IAAiB,aAAd,AAAO,MAAD,aAAU,GAAG,IAAC,aAAD,CAAC;AAC1C,uBAAK,AAAM,AAAQ,MAAR,QAAG,aAAF,CAAC,IAAG;AACd,gBAAO;;;AAGX,YAAO;IACT;;sCAGqC;AAAgB;IAAS;;;QA1MpD;QACD;QACA;QACA;QACA;QACA;QACc;QACd;IAPC;IACD;IACA;IACA;IACA;IACA;IAEA;AACH,gEAAe,QAAQ;;EAAC;;;;;;;;;;;;;;;;;;;;UCQZ,QAAa;AAC8C,MAA3E,2BAAoB,MAAM,mCAAE,cAAQ,sBAAiB;IACvD;;6CAG4C;AAAgB;IAAS;;;QArB3D;QACD;QACA;QACA;QACA;QACA;QACc;IANb;IACD;IACA;IACA;IACA;IACA;AAEH,uEAAe,QAAQ;;EAAC;;;;;;;;;;;;;;;;;;UCSZ,QAAa;AAC8C,MAA3E,2BAAoB,MAAM,mCAAE,cAAQ,sBAAiB;IACvD;;gDAG+C;AAAgB;IAAS;;;QArB9D;QACD;QACA;QACA;QACA;QACA;QACc;IANb;IACD;IACA;IACA;IACA;IACA;AAEH,0EAAe,QAAQ;;EAAC;;;;;;;;;;;;;;;;;;UCWZ,QAAa;AACxB;AAAc;AACZ;AACsB;AAE7B,oBAAI,AAAO;AACI,QAAb,AAAO,MAAD;AACI,0BAAc,AAAW;AACa,QAAhD,AAAO,kCAAsB,YAAO,WAAW;AAEgB,QAD/D,eAAe,4BAAqB,AAAM,AAAW,uCACjD,kBAAO,AAAO,AAAO,iCAAY,AAAO,AAAO;AACtB,QAA7B,AAAO,MAAD,UAAU,YAAY;AACyC,QAArE,kBAAkB,AAAgB,wBAAG,OAAO,AAAgB,6BAAQ;AAGhD,6BAChB,gCAAyB,aAAQ;AAE3B,qBAAS,mCAAS,AAAO,AAAO,AAAc,8CAAS;AAC7D,2BAAe,CAAC;AACpB,iBAAS,aAAa,GAClB,AAAW,UAAD,gBAAG,AAAO,AAAY,qCAChC,aAAA,AAAU,UAAA;AAC0B,UAAtC,QAAQ,AAAO,AAAW,iCAAC,UAAU;AAEkC,UADvE,AAAO,gCACH,YAAO,aAAQ,AAAW,uBAAO,KAAK,EAAE,UAAU,EAAE,cAAc;AACtE,wBAAI,AAAM,KAAD,0BAAe,AAAM,KAAD;AAI6B,YAHxD,AAAO,wBACH,MAAM,EACN,AAAO,uBAAW,KAAK,EAAE,eAAA,AAAa,YAAD,GAAI,GAAG,AAAW,uBACnD,cAAc,EAAE,YAAO,MAAM,EAAE,eAAe;;;AAWK,QAR/D,WAAW,4BACF,qBACmC,aAApC,AAAM,AAAW,AAAc,2DAAO,AAAO,AAAe,mCACzB,aAAnC,AAAM,AAAW,AAAc,0DAAM,AAAO,AAAe,oCACtB,aAArC,AAAM,AAAW,AAAc,4DAC3B,AAAO,AAAe,mCACY,aAAtC,AAAM,AAAW,AAAc,6DAC3B,AAAO,AAAe,qCAC9B,kBAAO,AAAO,AAAO,iCAAY,AAAO,AAAO;AACnC,QAAhB,AAAO,MAAD;AACN,aAA8B,aAAzB,AAAO,kCAAqB,KACT,aAAhB,eAAe,kBAAI,AAAM,kDAC5B,AAAO,AAAe,mDACnB,AAAO,AAAkB;AACN,UAAzB,AAAO,MAAD,UAAU,QAAQ;AACyC,UAAjE,AAAO,iCAAqB,YAAO,MAAM,EAAE;;AAE7C,YAAoB,aAAhB,eAAe,KAAI;AAEsC,UAD3D,AAAM,AACD,sCAAc,AAAW,uBAAO,AAAW,sBAAM;;;IAG5D;;qCAGoC;AAAgB;IAAS;;;QA5EnD;QACD;QACA;QACA;QACA;QACA;QACc;QACd;IAPC;IACD;IACA;IACA;IACA;IACA;IAEA;AACH,+DAAe,QAAQ;;EAAC;;;;;;;;;;;;;;;;;;;UCWZ,QAAa;AAChB,MAAb,AAAO,MAAD;AACC;AACP,oBAAI,AAAO;AACC,0BAAc,AAAW;AACa,QAAhD,AAAO,kCAAsB,YAAO,WAAW;AACsB,QAArE,kBAAkB,AAAgB,wBAAG,OAAO,AAAgB,6BAAQ;AACzD,2BAAe,4BACtB,AAAM,AAAW,uCACjB,kBAAO,AAAO,AAAO,iCAAY,AAAO,AAAO;AACtB,QAA7B,AAAO,MAAD,UAAU,YAAY;AACxB,2BAAe,CAAC;AACpB,iBAAS,aAAa,GAClB,AAAW,UAAD,gBAAG,AAAO,AAAY,qCAChC,aAAA,AAAU,UAAA;AACuB,6BAC/B,AAAO,AAAW,iCAAC,UAAU;AAE6B,UAD9D,AAAO,gCACH,YAAO,aAAQ,AAAW,uBAAO,YAAY,EAAE,UAAU;AAC7D,wBAAI,AAAa,YAAD,0BAAe,AAAa,YAAD;AAIhB,YAHzB,AAAO,wBACH,MAAM,EACN,AAAO,uBAAW,YAAY,EAAE,eAAA,AAAa,YAAD,GAAI,GAAG,WAAW,EAC1D,eAAe;;;AAG3B,aAA8B,aAAzB,AAAO,kCAAqB,KACT,aAAhB,eAAe,kBAAI,AAAM,kDAC5B,AAAO,AAAe,mDACnB,AAAO,AAAkB;AACkC,UAAjE,AAAO,iCAAqB,YAAO,MAAM,EAAE;;AAE7C,YAAoB,aAAhB,eAAe,KAAI;AAEsC,UAD3D,AAAM,AACD,sCAAc,AAAW,uBAAO,AAAW,sBAAM;;;AAG1C,MAAhB,AAAO,MAAD;IACR;;wCAGuC;AAAgB;IAAS;;;QA5DtD;QACD;QACA;QACA;QACA;QACA;QACc;QACd;IAPC;IACD;IACA;IACA;IACA;IACA;IAEA;AACH,kEAAe,QAAQ;;EAAC;;;;;;;;;;;;;;;;;;;UCYZ,QAAa;AACxB;AAAc;AACZ;AACsB;AAG7B,oBAAI,AAAO;AACI,QAAb,AAAO,MAAD;AACI,0BAAc,AAAW;AACa,QAAhD,AAAO,kCAAsB,YAAO,WAAW;AAEgB,QAD/D,eAAe,4BAAqB,AAAM,AAAW,uCACjD,kBAAO,AAAO,AAAO,iCAAY,AAAO,AAAO;AACtB,QAA7B,AAAO,MAAD,UAAU,YAAY;AACyC,QAArE,kBAAkB,AAAgB,wBAAG,OAAO,AAAgB,6BAAQ;AAGhD,6BAChB,gCAAyB,aAAQ;AAEjC,2BAAe,CAAC;AACpB,iBAAS,aAAa,GAClB,AAAW,UAAD,gBAAG,AAAO,AAAY,qCAChC,aAAA,AAAU,UAAA;AAC0B,UAAtC,QAAQ,AAAO,AAAW,iCAAC,UAAU;AAEkC,UADvE,AAAO,gCACH,YAAO,aAAQ,AAAW,uBAAO,KAAK,EAAE,UAAU,EAAE,cAAc;AACtE,wBAAI,AAAM,KAAD,0BAAe,AAAM,KAAD;AAIgB,YAH3C,AAAO,wBACH,MAAM,EACN,AAAO,uBAAW,KAAK,EAAE,eAAA,AAAa,YAAD,GAAI,GAAG,cAAc,EACtD,AAAW,uBAAO,eAAe;;;AAWkB,QAR/D,WAAW,4BACF,qBACmC,aAApC,AAAM,AAAW,AAAc,2DAAO,AAAO,AAAe,mCACzB,aAAnC,AAAM,AAAW,AAAc,0DAAM,AAAO,AAAe,oCACtB,aAArC,AAAM,AAAW,AAAc,4DAC3B,AAAO,AAAe,mCACY,aAAtC,AAAM,AAAW,AAAc,6DAC3B,AAAO,AAAe,qCAC9B,kBAAO,AAAO,AAAO,iCAAY,AAAO,AAAO;AACnC,QAAhB,AAAO,MAAD;AACN,aAA8B,aAAzB,AAAO,kCAAqB,KACT,aAAhB,eAAe,kBAAI,AAAM,kDAC5B,AAAO,AAAe,mDACnB,AAAO,AAAkB;AACN,UAAzB,AAAO,MAAD,UAAU,QAAQ;AACyC,UAAjE,AAAO,iCAAqB,YAAO,MAAM,EAAE;;AAE7C,YAAoB,aAAhB,eAAe,KAAI;AAEsC,UAD3D,AAAM,AACD,sCAAc,AAAW,uBAAO,AAAW,sBAAM;;;IAG5D;;wCAGuC;AAAgB;IAAS;;;QA9EtD;QACD;QACA;QACA;QACA;QACA;QACc;QACd;IAQY,6BAAwC;IAfnD;IACD;IACA;IACA;IACA;IACA;IAEA;AACH,kEAAe,QAAQ;;EAAC;;;;;;;;;;;;;;;;;;;;UCaZ,QAAa;AACxB;AACE;AACP,oBAAI,AAAO;AACI,QAAb,AAAO,MAAD;AACI,0BAAc,AAAW;AACa,QAAhD,AAAO,kCAAsB,YAAO,WAAW;AACsB,QAArE,kBAAkB,AAAgB,wBAAG,OAAO,AAAgB,6BAAQ;AACzD,2BAAe,4BACtB,AAAM,AAAW,uCACjB,kBAAO,AAAO,AAAO,iCAAY,AAAO,AAAO;AACtB,QAA7B,AAAO,MAAD,UAAU,YAAY;AAC5B,YAA6B,aAAzB,AAAO,iCAAoB,gBAC1B,AAAO,AAAO,AAAY;AAE6B,UAD1D,+BACI,AAAO,qBAAQ,AAAO,sBAAQ,MAAM,EAAE,eAAe;;AAE9B;AAAW;AACzB;AACK,4BAAgB,AAAO,AAAO;AAC9B,4BAAgB,AAAO,AAAO;AACT,2BACrC,AAAO;AACA,yBAAa,AAAO,AAAO,AAAW;AACvC,yBAAsD,CAApB,aAApB,AAAc,aAAD,uBAAS,AAAW,UAAD;AAC9C,yBAAuD,CAArB,aAApB,AAAc,aAAD,uBAAS,AAAW,UAAD;AACpD,yBAC4B,UADd,AAAa,YAAD,kBACtB,AAAY,YAAA,QAAC,MAAM,mBACI,WAAvB,AAAY,AAAI,YAAJ,QAAC,iBAAY,UAAU,MACrC,IACA,UAAU;AACZ,yBAC4B,UADd,AAAa,YAAD,kBACtB,AAAY,YAAA,QAAC,MAAM,mBACI,WAAvB,AAAY,AAAI,YAAJ,QAAC,iBAAY,UAAU,MACrC,IACA,UAAU;AACZ,mBAAO;AACP,mBAAO;AAE8B,yBACP;AAG1B;AACR,iBAAS,aAAa,GAClB,AAAW,UAAD,gBAAG,AAAO,AAAY,qCAChC,aAAA,AAAU,UAAA;AACiC,UAA7C,eAAe,AAAO,AAAW,iCAAC,UAAU;AAGjB,iBAF3B,gBAAoB,AAAO,WAApB,YAAY,eAAW,OACX,WAAb,YAAY,cACZ,AAAc,aAAD;AAGQ,iBAF3B,gBAAoB,AAAO,WAApB,YAAY,eAAW,OACX,WAAb,YAAY,cACZ,AAAc,aAAD;AACnB,cAAwB,AAAM,CAAd,aAAX,UAAU,iBAAG,IAAI,cAAW,UAAU,IACnB,AAAM,CAAd,aAAX,UAAU,iBAAG,IAAI,cAAW,UAAU;AACrB,oBAApB,kCAAQ,YAAY;AACQ,YAA5B,AAAW,UAAD,yCAAK,YAAY;AAE4B,YADvD,AAAO,gCACH,YAAO,aAAQ,AAAW,uBAAO,KAAK,EAAE,UAAU;AACtD,0BAAI,AAAM,KAAD;AAQoC,cAP3C,kBAAkB,uBACd,IAAI,EACJ,IAAI,EACJ,AAAO,sBACP,AAAO,sBACP,AAAO,AAAO,2CACd,aACA,AAAO,AAAO,AAAW;AAC7B,kBAAI,AAAU,SAAD,IAAI;AACgD,gBAA/D,AAAO,AAAY,+BAAO,AAAgB,eAAD,IAAI,AAAgB,eAAD;kBACzD,KAAiD,YAA7C,AAAO,AAAW,AAAiB,iCAAhB,AAAW,UAAD,GAAG,cAAgB,UACtB,YAA/B,AAAO,AAAmB,qCAAuB;AACY,gBAA/D,AAAO,AAAY,+BAAO,AAAgB,eAAD,IAAI,AAAgB,eAAD;kBACzD,kBAAI,AAAM,KAAD,QAAU,sBACpB,AAAO,AAAW,AAAiB,iCAAhB,AAAW,UAAD,GAAG,UAAY,SACH,YAAzC,AAAO,AAAW,AAAa,iCAAZ,UAAU,aAAe;AACiB,gBAA/D,AAAO,AAAY,+BAAO,AAAgB,eAAD,IAAI,AAAgB,eAAD;;AAEG,gBAA/D,AAAO,AAAY,+BAAO,AAAgB,eAAD,IAAI,AAAgB,eAAD;AAC7C,cAAjB,YAAY,KAAK;;AAEF,YAAjB,aAAa,IAAI;AACA,YAAjB,aAAa,IAAI;;;AAIrB,YAAI,AAAO,2BAAe;AACO,UAA/B,AAAO,4BAAc,UAAU;AAEiC,UADhE,AAAO,wBAAY,MAAM,EACrB,AAAO,uBAAW,AAAW,uBAAO,YAAO,eAAe;;AAUD,QAR/D,WAAW,4BACF,qBACmC,aAApC,AAAM,AAAW,AAAc,2DAAO,AAAO,AAAe,mCACzB,aAAnC,AAAM,AAAW,AAAc,0DAAM,AAAO,AAAe,oCACtB,aAArC,AAAM,AAAW,AAAc,4DAC3B,AAAO,AAAe,mCACY,aAAtC,AAAM,AAAW,AAAc,6DAC3B,AAAO,AAAe,qCAC9B,kBAAO,AAAO,AAAO,iCAAY,AAAO,AAAO;AACnC,QAAhB,AAAO,MAAD;AAEN,aAA8B,aAAzB,AAAO,kCAAqB,KACT,aAAhB,eAAe,kBAAI,AAAM,kDAC5B,AAAO,AAAe,mDACnB,AAAO,AAAkB;AACN,UAAzB,AAAO,MAAD,UAAU,QAAQ;AACyC,UAAjE,AAAO,iCAAqB,YAAO,MAAM,EAAE;;AAE7C,YAAoB,aAAhB,eAAe,KAAI;AAEsC,UAD3D,AAAM,AACD,sCAAc,AAAW,uBAAO,AAAW,sBAAM;;;IAG5D;;0CAGyC;AAAgB;IAAS;;;QA3IxD;QACD;QACA;QACA;QACA;QACA;QACc;QACd;IASJ;IACC;IAjBI;IACD;IACA;IACA;IACA;IACA;IAEA;AACH,oEAAe,QAAQ;;EAAC;;;;;;;;;;;;;;;;;;;;;UCUZ,QAAa;AAChB,MAAb,AAAO,MAAD;AACD;AACE;AAGP,oBAAI,AAAO;AACE,2BAAe,4BACtB,AAAM,AAAW,uCACjB,kBAAO,AAAO,AAAO,iCAAY,AAAO,AAAO;AACtB,QAA7B,AAAO,MAAD,UAAU,YAAY;AACyC,QAArE,kBAAkB,AAAgB,wBAAG,OAAO,AAAgB,6BAAQ;AAG/B,QAArC,AAAO,mBAAM,MAAM,EAAE,eAAe;AAS2B,QAR/D,WAAW,4BACF,qBACmC,aAApC,AAAM,AAAW,AAAc,2DAAO,AAAO,AAAe,mCACzB,aAAnC,AAAM,AAAW,AAAc,0DAAM,AAAO,AAAe,oCACtB,aAArC,AAAM,AAAW,AAAc,4DAC3B,AAAO,AAAe,mCACY,aAAtC,AAAM,AAAW,AAAc,6DAC3B,AAAO,AAAe,qCAC9B,kBAAO,AAAO,AAAO,iCAAY,AAAO,AAAO;;AAErC,MAAhB,AAAO,MAAD;AAEN,oBAAI,AAAO,0BAA6B,aAAhB,eAAe,iBAAG,AAAM;AACrB,QAAzB,AAAO,MAAD,UAAU,QAAQ;AAGoC,QAA5D,6BAAsB,MAAM,EAAE,aAAQ;;IAE1C;;iCAGgC;AAAgB;IAAS;;;QAtDlD;QACA;QACA;QACA;QACA;QACA;QACc;IAQA,6BAAwC;IAdtD;IACA;IACA;IACA;IACA;IACA;AAEF,2DAAe,QAAQ;;EAAC;;;;;;;;;;;;;;;;;;;UCWX,QAAa;AAChB,MAAb,AAAO,MAAD;AACD;AACE;AAGP,oBAAI,AAAO;AACE,2BAAe,4BACtB,AAAM,AAAW,uCACjB,kBAAO,AAAO,AAAO,iCAAY,AAAO,AAAO;AACtB,QAA7B,AAAO,MAAD,UAAU,YAAY;AACyC,QAArE,kBAAkB,AAAgB,wBAAG,OAAO,AAAgB,6BAAQ;AAG/B,QAArC,AAAO,mBAAM,MAAM,EAAE,eAAe;AAS2B,QAR/D,WAAW,4BACF,qBACmC,aAApC,AAAM,AAAW,AAAc,2DAAO,AAAO,AAAe,mCACzB,aAAnC,AAAM,AAAW,AAAc,0DAAM,AAAO,AAAe,oCACtB,aAArC,AAAM,AAAW,AAAc,4DAC3B,AAAO,AAAe,mCACY,aAAtC,AAAM,AAAW,AAAc,6DAC3B,AAAO,AAAe,qCAC9B,kBAAO,AAAO,AAAO,iCAAY,AAAO,AAAO;;AAErC,MAAhB,AAAO,MAAD;AAEN,oBAAI,AAAO,0BAA6B,aAAhB,eAAe,iBAAG,AAAM;AACrB,QAAzB,AAAO,MAAD,UAAU,QAAQ;AAGoC,QAA5D,6BAAsB,MAAM,EAAE,aAAQ;;IAE1C;;0CAGyC;AAAgB;IAAS;;;QAtD3D;QACA;QACA;QACA;QACA;QACA;QACc;IAQA,6BAAwC;IAdtD;IACA;IACA;IACA;IACA;IACA;AAEF,oEAAe,QAAQ;;EAAC;;;;;;;;;;;;;;;;;;;UCWX,QAAa;AAChB,MAAb,AAAO,MAAD;AACD;AACE;AAGP,oBAAI,AAAO;AACE,2BAAe,4BACtB,AAAM,AAAW,uCACjB,kBAAO,AAAO,AAAO,iCAAY,AAAO,AAAO;AACtB,QAA7B,AAAO,MAAD,UAAU,YAAY;AACyC,QAArE,kBAAkB,AAAgB,wBAAG,OAAO,AAAgB,6BAAQ;AAG/B,QAArC,AAAO,mBAAM,MAAM,EAAE,eAAe;AAS2B,QAR/D,WAAW,4BACF,qBACmC,aAApC,AAAM,AAAW,AAAc,2DAAO,AAAO,AAAe,mCACzB,aAAnC,AAAM,AAAW,AAAc,0DAAM,AAAO,AAAe,oCACtB,aAArC,AAAM,AAAW,AAAc,4DAC3B,AAAO,AAAe,mCACY,aAAtC,AAAM,AAAW,AAAc,6DAC3B,AAAO,AAAe,qCAC9B,kBAAO,AAAO,AAAO,iCAAY,AAAO,AAAO;;AAErC,MAAhB,AAAO,MAAD;AAEN,oBAAI,AAAO,0BAA6B,aAAhB,eAAe,iBAAG,AAAM;AACrB,QAAzB,AAAO,MAAD,UAAU,QAAQ;AAGoC,QAA5D,6BAAsB,MAAM,EAAE,aAAQ;;IAE1C;;mCAGkC;AAAgB;IAAS;;;QAtDpD;QACA;QACA;QACA;QACA;QACA;QACc;IAQA,6BAAwC;IAdtD;IACA;IACA;IACA;IACA;IACA;AAEF,6DAAe,QAAQ;;EAAC;;;;;;;;;;;;;;;;;;;UCWX,QAAa;AACtB;AACF;AACL,oBAAI,AAAO;AACI,QAAb,AAAO,MAAD;AACI,0BAAc,AAAW;AACa,QAAhD,AAAO,kCAAsB,YAAO,WAAW;AACsB,QAArE,kBAAkB,AAAgB,wBAAG,OAAO,AAAgB,6BAAQ;AACzD,2BAAe,4BACtB,AAAM,AAAW,uCACjB,kBAAO,AAAO,AAAO,iCAAY,AAAO,AAAO;AACtB,QAA7B,AAAO,MAAD,UAAU,YAAY;AAC5B,wBAAM,AAAM,AAAY,uDAChB,AAAM,AAAY,+CACG,aAAzB,AAAO,iCAAoB;AAE6B,UAD1D,+BACI,AAAO,qBAAQ,AAAO,sBAAQ,MAAM,EAAE,eAAe;;AAEvD,2BAAe,CAAC;AACS;AAAY;AAEzC,iBAAS,aAAa,GAClB,AAAW,UAAD,gBAAG,AAAO,AAAY,qCAChC,aAAA,AAAU,UAAA;AACuB,6BAC/B,AAAO,AAAW,iCAAC,UAAU;AAEwB,UADzD,AAAO,gCACH,YAAO,aAAQ,WAAW,EAAE,YAAY,EAAE,UAAU;AACxD,wBAAK,AAAa,YAAD,0BAAe,AAAa,YAAD,WACxC,AAAW,UAAD,IAAI;AACS,YAAzB,aAAa,YAAY;;AAE3B,cAAI,AAAW,AAAI,UAAL,GAAG,iBAAI,AAAO,AAAY;AACH,4BAC/B,AAAO,AAAW,iCAAC,AAAW,UAAD,GAAG;AACpC,gBAAI,UAAU,IAAI,kBAAQ,AAAU,SAAD,yBAAc,AAAU,SAAD;AACvC,cAAjB,aAAa;kBACR,eAAI,AAAU,SAAD,0BAAe,AAAU,SAAD;AACtB,cAApB,WAAW,SAAS;;;AAIxB,cAAI,UAAU,IAAI,QAAQ,QAAQ,IAAI;AAIE,YAHtC,AAAO,wBACH,MAAM,EACN,AAAO,uBAAW,UAAU,EAAE,QAAQ,EAAE,eAAA,AAAa,YAAD,GAAI,GACpD,WAAW,EAAE,eAAe;AACR,YAA5B,WAAW,aAAa;;;AAWmC,QAR/D,WAAW,4BACF,qBACmC,aAApC,AAAM,AAAW,AAAc,2DAAO,AAAO,AAAe,mCACzB,aAAnC,AAAM,AAAW,AAAc,0DAAM,AAAO,AAAe,oCACtB,aAArC,AAAM,AAAW,AAAc,4DAC3B,AAAO,AAAe,mCACY,aAAtC,AAAM,AAAW,AAAc,6DAC3B,AAAO,AAAe,qCAC9B,kBAAO,AAAO,AAAO,iCAAY,AAAO,AAAO;AAEnC,QAAhB,AAAO,MAAD;AACN,aAA8B,aAAzB,AAAO,kCAAqB,KACT,aAAhB,eAAe,kBAAI,AAAM,kDAC5B,AAAO,AAAe,mDACnB,AAAO,AAAkB;AACN,UAAzB,AAAO,MAAD,UAAU,QAAQ;AACyC,UAAjE,AAAO,iCAAqB,YAAO,MAAM,EAAE;;AAE7C,YAAoB,aAAhB,eAAe,KAAI;AAC8C,UAAnE,AAAM,AAAY,sCAAc,WAAW,EAAE,AAAW,sBAAM;;;IAGpE;;sCAGqC;AAAgB;IAAS;;;QA7FpD;QACD;QACA;QACA;QACA;QACA;QACc;QACd;IAPC;IACD;IACA;IACA;IACA;IACA;IAEA;AACH,gEAAe,QAAQ;;EAAC;;;;;;;;;;;;;;;;;;;UCQZ,QAAa;AAC8C,MAA3E,2BAAoB,MAAM,mCAAE,cAAQ,sBAAiB;IACvD;;6CAG4C;AAAgB;IAAS;;;QArB9D;QACA;QACA;QACA;QACA;QACA;QACc;IANd;IACA;IACA;IACA;IACA;IACA;AAEF,uEAAe,QAAQ;;EAAC;;;;;;;;;;;;;;;;;;UCSX,QAAa;AAChB,MAAb,AAAO,MAAD;AACD;AACE;AAGP,oBAAI,AAAO;AACE,2BAAe,4BACtB,AAAM,AAAW,uCACjB,kBAAO,AAAO,AAAO,iCAAY,AAAO,AAAO;AACtB,QAA7B,AAAO,MAAD,UAAU,YAAY;AACyC,QAArE,kBAAkB,AAAgB,wBAAG,OAAO,AAAgB,6BAAQ;AACpE,uBAAK,AAAO,AAAO,AAAY,sDACF,aAAzB,AAAO,iCAAoB,gBAC1B,AAAO,AAAO,AAAY;AAE6B,UAD1D,+BACI,AAAO,qBAAQ,AAAO,sBAAQ,MAAM,EAAE,eAAe;;AAItB,QAArC,AAAO,mBAAM,MAAM,EAAE,eAAe;AAS2B,QAR/D,WAAW,4BACF,qBACmC,aAApC,AAAM,AAAW,AAAc,2DAAO,AAAO,AAAe,mCACzB,aAAnC,AAAM,AAAW,AAAc,0DAAM,AAAO,AAAe,oCACtB,aAArC,AAAM,AAAW,AAAc,4DAC3B,AAAO,AAAe,mCACY,aAAtC,AAAM,AAAW,AAAc,6DAC3B,AAAO,AAAe,qCAC9B,kBAAO,AAAO,AAAO,iCAAY,AAAO,AAAO;;AAErC,MAAhB,AAAO,MAAD;AAEN,oBAAI,AAAO,0BAA6B,aAAhB,eAAe,iBAAG,AAAM;AACrB,QAAzB,AAAO,MAAD,UAAU,QAAQ;AAGoC,QAA5D,6BAAsB,MAAM,EAAE,aAAQ;;IAE1C;;2CAG0C;AAAgB;IAAS;;;QA1DzD;QACD;QACA;QACA;QACA;QACA;QACc;IANb;IACD;IACA;IACA;IACA;IACA;AAEH,qEAAe,QAAQ;;EAAC;;;;;;;;;;;;;;;;;;UCSZ,QAAa;AAC8C,MAA3E,2BAAoB,MAAM,mCAAE,cAAQ,sBAAiB;IACvD;;gDAG+C;AAAgB;IAAS;;;QArBjE;QACA;QACA;QACA;QACA;QACA;QACc;IANd;IACA;IACA;IACA;IACA;IACA;AAEF,0EAAe,QAAQ;;EAAC;;;;;;;;;;;;;;;;;;UCWX,QAAa;AAChB,MAAb,AAAO,MAAD;AACD;AACE;AAGP,oBAAI,AAAO;AACE,2BAAe,4BACtB,AAAM,AAAW,uCACjB,kBAAO,AAAO,AAAO,iCAAY,AAAO,AAAO;AACtB,QAA7B,AAAO,MAAD,UAAU,YAAY;AACyC,QAArE,kBAAkB,AAAgB,wBAAG,OAAO,AAAgB,6BAAQ;AAG/B,QAArC,AAAO,mBAAM,MAAM,EAAE,eAAe;AAS2B,QAR/D,WAAW,4BACF,qBACmC,aAApC,AAAM,AAAW,AAAc,2DAAO,AAAO,AAAe,mCACzB,aAAnC,AAAM,AAAW,AAAc,0DAAM,AAAO,AAAe,oCACtB,aAArC,AAAM,AAAW,AAAc,4DAC3B,AAAO,AAAe,mCACY,aAAtC,AAAM,AAAW,AAAc,6DAC3B,AAAO,AAAe,qCAC9B,kBAAO,AAAO,AAAO,iCAAY,AAAO,AAAO;;AAErC,MAAhB,AAAO,MAAD;AAEN,oBAAI,AAAO,0BAA6B,aAAhB,eAAe,iBAAG,AAAM;AACrB,QAAzB,AAAO,MAAD,UAAU,QAAQ;AAGoC,QAA5D,6BAAsB,MAAM,EAAE,aAAQ;;IAE1C;;6CAG4C;AAAgB;IAAS;;;QAtD9D;QACA;QACA;QACA;QACA;QACA;QACc;IAQA,6BAAwC;IAdtD;IACA;IACA;IACA;IACA;IACA;AAEF,uEAAe,QAAQ;;EAAC;;;;;;;;;;;;;;;;;;;UCWX,QAAa;AAChB,MAAb,AAAO,MAAD;AACC;AACP,oBAAI,AAAO;AAC4D,QAArE,kBAAkB,AAAgB,wBAAG,OAAO,AAAgB,6BAAQ;AACzD,2BAAe,4BACtB,AAAM,AAAW,uCACjB,kBAAO,AAAO,AAAO,iCAAY,AAAO,AAAO;AACtB,QAA7B,AAAO,MAAD,UAAU,YAAY;AAClB,0BAAc,AAAW;AACa,QAAhD,AAAO,kCAAsB,YAAO,WAAW;AAC3C,2BAAe,CAAC;AACpB,iBAAS,aAAa,GAClB,AAAW,UAAD,gBAAG,AAAO,AAAY,qCAChC,aAAA,AAAU,UAAA;AACuB,6BAC/B,AAAO,AAAW,iCAAC,UAAU;AAE6B,UAD9D,AAAO,gCACH,YAAO,aAAQ,AAAW,uBAAO,YAAY,EAAE,UAAU;AAC7D,wBAAI,AAAa,YAAD,0BAAe,AAAa,YAAD;AAIhB,YAHzB,AAAO,wBACH,MAAM,EACN,AAAO,uBAAW,YAAY,EAAE,eAAA,AAAa,YAAD,GAAI,GAAG,WAAW,EAC1D,eAAe;;;AAG3B,YAA6B,aAAzB,AAAO,kCAAqB,KACZ,aAAhB,eAAe,kBAAI,AAAM;AACsC,UAAjE,AAAO,iCAAqB,YAAO,MAAM,EAAE;;AAE7C,YAAoB,aAAhB,eAAe,KAAI;AAEsC,UAD3D,AAAM,AACD,sCAAc,AAAW,uBAAO,AAAW,sBAAM;;;AAG1C,MAAhB,AAAO,MAAD;IACR;;yCAGwC;AAAgB;IAAS;;;QAzDvD;QACD;QACA;QACA;QACA;QACA;QACc;QACd;IAPC;IACD;IACA;IACA;IACA;IACA;IAEA;AACH,mEAAe,QAAQ;;EAAC;;;;;;;;;;;;;;;;;;;UCQZ,QAAa;AAChB,MAAb,AAAO,MAAD;AACD;AACE;AAGP,oBAAI,AAAO;AACE,2BAAe,4BACtB,AAAM,AAAW,uCACjB,kBAAO,AAAO,AAAO,iCAAY,AAAO,AAAO;AACtB,QAA7B,AAAO,MAAD,UAAU,YAAY;AACyC,QAArE,kBAAkB,AAAgB,wBAAG,OAAO,AAAgB,6BAAQ;AACpE,wBAAM,AAAM,AAAY,uDAChB,AAAM,AAAY,+CACG,aAAzB,AAAO,iCAAoB;AAE6B,UAD1D,+BACI,AAAO,qBAAQ,AAAO,sBAAQ,MAAM,EAAE,eAAe;;AAItB,QAArC,AAAO,mBAAM,MAAM,EAAE,eAAe;AAS2B,QAR/D,WAAW,4BACF,qBACmC,aAApC,AAAM,AAAW,AAAc,2DAAO,AAAO,AAAe,mCACzB,aAAnC,AAAM,AAAW,AAAc,0DAAM,AAAO,AAAe,oCACtB,aAArC,AAAM,AAAW,AAAc,4DAC3B,AAAO,AAAe,mCACY,aAAtC,AAAM,AAAW,AAAc,6DAC3B,AAAO,AAAe,qCAC9B,kBAAO,AAAO,AAAO,iCAAY,AAAO,AAAO;;AAErC,MAAhB,AAAO,MAAD;AAEN,oBAAI,AAAO,0BAA6B,aAAhB,eAAe,iBAAG,AAAM;AACrB,QAAzB,AAAO,MAAD,UAAU,QAAQ;AAGoC,QAA5D,6BAAsB,MAAM,EAAE,aAAQ;;IAE1C;;wCAGuC;AAAgB;IAAS;;;QA1DzD;QACA;QACA;QACA;QACA;QACA;QACc;IANd;IACA;IACA;IACA;IACA;IACA;AAEF,kEAAe,QAAQ;;EAAC;;;;;;;;;;;;;;;;;;UCSX,QAAa;AAChB,MAAb,AAAO,MAAD;AACD;AACE;AAGP,oBAAI,AAAO;AACE,2BAAe,4BACtB,AAAM,AAAW,uCACjB,kBAAO,AAAO,AAAO,iCAAY,AAAO,AAAO;AACtB,QAA7B,AAAO,MAAD,UAAU,YAAY;AACyC,QAArE,kBAAkB,AAAgB,wBAAG,OAAO,AAAgB,6BAAQ;AACpE,uBAAK,AAAO,AAAO,AAAY,sDACF,aAAzB,AAAO,iCAAoB,gBAC1B,AAAO,AAAO,AAAY;AAE6B,UAD1D,+BACI,AAAO,qBAAQ,AAAO,sBAAQ,MAAM,EAAE,eAAe;;AAItB,QAArC,AAAO,mBAAM,MAAM,EAAE,eAAe;AAS2B,QAR/D,WAAW,4BACF,qBACmC,aAApC,AAAM,AAAW,AAAc,2DAAO,AAAO,AAAe,mCACzB,aAAnC,AAAM,AAAW,AAAc,0DAAM,AAAO,AAAe,oCACtB,aAArC,AAAM,AAAW,AAAc,4DAC3B,AAAO,AAAe,mCACY,aAAtC,AAAM,AAAW,AAAc,6DAC3B,AAAO,AAAe,qCAC9B,kBAAO,AAAO,AAAO,iCAAY,AAAO,AAAO;;AAErC,MAAhB,AAAO,MAAD;AAEN,oBAAI,AAAO,0BAA6B,aAAhB,eAAe,iBAAG,AAAM;AACrB,QAAzB,AAAO,MAAD,UAAU,QAAQ;AAGoC,QAA5D,6BAAsB,MAAM,EAAE,aAAQ;;IAE1C;;4CAG2C;AAAgB;IAAS;;;QA1D7D;QACA;QACA;QACA;QACA;QACA;QACc;IANd;IACA;IACA;IACA;IACA;IACA;AAEF,sEAAe,QAAQ;;EAAC;;;;;;;;;;;;;;;;;;UCcX,QAAa;AAC8C,MAA3E,2BAAoB,MAAM,EAAE,aAAQ,sBAAiB;IACvD;;4CAG2C;AAAgB;IAAS;;;QA1B7D;QACA;QACA;QACA;QACA;QACA;QACc;IAIQ;IAKR,6BAAwC;IAftD;IACA;IACA;IACA;IACA;IACA;AAEF,sEAAe,QAAQ;;EAAC;;;;;;;;;;;;;;;;;;;;MAWf,wCAAS;;;;;;UCGL,QAAa;AAC8C,MAA3E,2BAAoB,MAAM,EAAE,aAAQ,sBAAiB;IACvD;;+CAG8C;AAAgB;IAAS;;;QA1BhE;QACA;QACA;QACA;QACA;QACA;QACc;IAIQ;IAKR,6BAAwC;IAftD;IACA;IACA;IACA;IACA;IACA;AAEF,yEAAe,QAAQ;;EAAC;;;;;;;;;;;;;;;;;;;;MAWf,2CAAS;;;;;;UCCL,QAAa;AAC8C,MAA3E,2BAAoB,MAAM,EAAE,aAAQ,sBAAiB;IACvD;;gDAG+C;AAAgB;IAAS;;;QAxBjE;QACA;QACA;QACA;QACA;QACA;QACc;IAIQ;IAKR,6BAAwC;IAftD;IACA;IACA;IACA;IACA;IACA;AAEF,0EAAe,QAAQ;;EAAC;;;;;;;;;;;;;;;;;;;;UCYX,QAAa;AAC8C,MAA3E,2BAAoB,MAAM,EAAE,aAAQ,sBAAiB;IACvD;;kDAGiD;AAAgB;IAAS;;;QAxBnE;QACA;QACA;QACA;QACA;QACA;QACc;IAIQ;IAKR,6BAAwC;IAftD;IACA;IACA;IACA;IACA;IACA;AAEF,4EAAe,QAAQ;;EAAC;;;;;;;;;;;;;;;;;;;;UCSX,QAAa;AAChB,MAAb,AAAO,MAAD;AACD;AACE;AAGP,oBAAI,AAAO;AACE,2BAAe,4BACtB,AAAM,AAAW,uCACjB,kBAAO,AAAO,AAAO,iCAAY,AAAO,AAAO;AACtB,QAA7B,AAAO,MAAD,UAAU,YAAY;AACyC,QAArE,kBAAkB,AAAgB,wBAAG,OAAO,AAAgB,6BAAQ;AACpE,uBAAK,AAAO,AAAO,AAAY,sDACF,aAAzB,AAAO,iCAAoB,gBAC1B,AAAO,AAAO,AAAY;AAE6B,UAD1D,+BACI,AAAO,qBAAQ,AAAO,sBAAQ,MAAM,EAAE,eAAe;;AAItB,QAArC,AAAO,mBAAM,MAAM,EAAE,eAAe;AAS2B,QAR/D,WAAW,4BACF,qBACmC,aAApC,AAAM,AAAW,AAAc,2DAAO,AAAO,AAAe,mCACzB,aAAnC,AAAM,AAAW,AAAc,0DAAM,AAAO,AAAe,oCACtB,aAArC,AAAM,AAAW,AAAc,4DAC3B,AAAO,AAAe,mCACY,aAAtC,AAAM,AAAW,AAAc,6DAC3B,AAAO,AAAe,qCAC9B,kBAAO,AAAO,AAAO,iCAAY,AAAO,AAAO;;AAErC,MAAhB,AAAO,MAAD;AAEN,oBAAI,AAAO,0BAA6B,aAAhB,eAAe,iBAAG,AAAM;AACrB,QAAzB,AAAO,MAAD,UAAU,QAAQ;AAGoC,QAA5D,6BAAsB,MAAM,EAAE,aAAQ;;IAE1C;;0CAGyC;AAAgB;IAAS;;;QA1DxD;QACD;QACA;QACA;QACA;QACA;QACc;IANb;IACD;IACA;IACA;IACA;IACA;AAEH,oEAAe,QAAQ;;EAAC;;;;;;;;;;;;;;;;;;UCSZ,QAAa;AAChB,MAAb,AAAO,MAAD;AACD;AACE;AACP,oBAAI,AAAO;AAC4D,QAArE,kBAAkB,AAAgB,wBAAG,OAAO,AAAgB,6BAAQ;AAGzD,2BAAe,4BACtB,AAAM,AAAW,uCACjB,kBAAO,AAAO,AAAO,iCAAY,AAAO,AAAO;AACtB,QAA7B,AAAO,MAAD,UAAU,YAAY;AACS,QAArC,AAAO,mBAAM,MAAM,EAAE,eAAe;AAS2B,QAR/D,WAAW,4BACF,qBACmC,aAApC,AAAM,AAAW,AAAc,2DAAO,AAAO,AAAe,mCACzB,aAAnC,AAAM,AAAW,AAAc,0DAAM,AAAO,AAAe,oCACtB,aAArC,AAAM,AAAW,AAAc,4DAC3B,AAAO,AAAe,mCACY,aAAtC,AAAM,AAAW,AAAc,6DAC3B,AAAO,AAAe,qCAC9B,kBAAO,AAAO,AAAO,iCAAY,AAAO,AAAO;;AAErC,MAAhB,AAAO,MAAD;AAEN,oBAAI,AAAO,0BAA6B,aAAhB,eAAe,iBAAG,AAAM;AACrB,QAAzB,AAAO,MAAD,UAAU,QAAQ;AAGoC,QAA5D,6BAAsB,MAAM,EAAE,aAAQ;;IAE1C;;0CAGyC;AAAgB;IAAS;;;QAlD3D;QACA;QACA;QACA;QACA;QACA;QACc;IANd;IACA;IACA;IACA;IACA;IACA;AAEF,oEAAe,QAAQ;;EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MC2DlB;;;;;;MAgBE;;;;;;MAgBA;;;;;;MAgBA;;;;;;MAiBM;;;;;;MAiBN;;;;;;MAgBC;;;;;;MAgBmB;;;;;;MAgBE;;;;;;MAgBA;;;;;;MAgBA;;;;;;MAgBA;;;;;;MAgBtB;;;;;;MAiBF;;;;;;MAiBU;;;;;;MAgBR;;;;;;MAiBD;;;;;;MAiBC;;;;;;MAiBH;;;;;;sBAuBE,GACA,GACqB,aACK,QAC9B,OACmC;AACN,oBAC/B,mCAA6B,CAAC,EAAE,CAAC;AACJ,QAAjC,AAAM,KAAD,UAAU,AAAY,WAAD;AACP,QAAnB,AAAM,KAAD,SAAC,WAAQ,KAAK;AACH,QAAhB,AAAM,KAAD,UAAU,CAAC;AACM,QAAtB,AAAM,KAAD,aAAa;AAClB,YAAc,wBAAV,SAAS,KAAqB,AAAO,AAAY,MAAb,mBAAgB;AAChB,2BAAa,SAAS;AAGrB,UAFvC,AAAM,KAAD,+BAAiC,WAAb,AAAM,KAAD,gBAAW,OACnC,AAAW,UAAD,0BACV,AAAW,UAAD;;AAElB,cAAO,MAAK;MACd;uBAGY,GACJ,MACA,KACyB,aACK,QAC9B,OACmC;AACN,oBAC/B,mCAA6B,CAAC,EAAE;AACnB,QAAjB,AAAM,KAAD,QAAQ,IAAI;AACF,QAAf,AAAM,KAAD,OAAO,GAAG;AACkB,QAAjC,AAAM,KAAD,UAAU,AAAY,WAAD;AACP,QAAnB,AAAM,KAAD,SAAS,KAAK;AACG,QAAtB,AAAM,KAAD,aAAa;AAClB,cAAO,MAAK;MACd;6BAEgE,WACrD,MAAY,OAAc,OAAwB;;AAC9C;AACb,YAAI,AAAM,KAAD,sBAAsB,QAC3B,IAAI,KAAI,eACR,IAAI,KAAI,gBACP,AAAK,IAAD,YAAU;AACS,8BAAgB;AACd,UAA5B,AAAc,aAAD,SAAS;AACY,UAAlC,AAAc,aAAD,iBAAiB,IAAI;AACG,UAArC,AAAc,aAAD,mBAAmB,KAAK;AACA,UAArC,AAAc,aAAD,mBAAmB,KAAK;AACY,UAAjD,AAAc,aAAD,iBAAiB,AAAU,SAAD;AACJ,UAAnC,AAAc,aAAD,aAAa,SAAS;AACa,UAAhD,AAAc,aAAD,cAAc,AAAU,SAAD;AAC0B,UAA9D,AAAc,aAAD,cAAc,AAAM,AAAU,AAAS,KAApB,mBAAY;AACN,UAAtC,AAAM,KAAD,mBAAmB,aAAa;AACA,UAArC,QAAQ,AAAc,aAAD;AACgB,UAArC,QAAQ,AAAc,aAAD;AACa,UAAlC,OAAO,AAAc,aAAD;AACoB,UAAxC,aAAa,AAAc,aAAD;;AAEY,qBAAS,AAAK,IAAD,KAAI,cACnD,sCACQ,IAAI,SACH,KAAK,aACD,AAAU,SAAD,yBACP,KAAK,aACP,AAAU,SAAD,+BACD,AAAU,SAAD,+BACjB,AAAU,SAAD,2BACL,qBACD,uBACG,sBACD,kBACJ,SACb,AAAK,IAAD,KAAI,cACL,mCACQ,IAAI,SACH,KAAK,SACL,KAAK,aACD,AAAU,SAAD,+BACD,AAAU,SAAD,+BACjB,AAAU,SAAD,0BACN,oBACA,kBACF,SACd,iCACQ,IAAI,SACH,KAAK,cACU,KAAX,UAAU,QAAV,OAAc,AAAU,SAAD,yBAC3B,KAAK,aACD,AAAU,SAAD,+BACD,AAAU,SAAD,+BACjB,AAAU,SAAD,0BACN,oBACA,kBACF;AACY,QAApC,AAAO,MAAD,aAAY,AAAU,SAAD;AACN,QAArB,AAAO,MAAD,WAAU,KAAK;AAG0B,QAF/C,AAAO,MAAD,iBAAe,AAAK,IAAD,KAAI,cACvB,cACC,AAAK,IAAD,KAAI,cAAc,WAAW;AACd,QAA1B,AAAO,MAAD,iBAAgB;AACc,QAApC,AAAO,MAAD,gBAAe,AAAU,SAAD;AACK,QAAnC,AAAU,AAAc,SAAf,sBAAmB,MAAM;MACpC;wBAEwD,QACd,WAAyB,SAC5B;AACrC,YAAI,AAAO,MAAD,IAAI;AACmC,UAA/C,AAAU,AAAa,AAAI,SAAlB,uBAAe,mBAAiB,MAAM;AACF,UAA7C,AAAU,AAAa,AAAI,SAAlB,uBAAe,eAAc,OAAO;;AAElB,UAA3B,AAAO,MAAD,iBAAe,MAAM;AACF,UAAzB,AAAO,MAAD,aAAY,OAAO;;MAE7B;uBAGuC,OAAW,KAAY;;AACxD;AACJ,YAAI,AAAW,UAAD,KAAI;AACK,gBAArB,sBAAM,AAAK,KAAA,QAAC,GAAG,gBAAJ,OAAO;YACf,KAAI,AAAW,UAAD,KAAI;AACC,gBAAtB,uBAAM,AAAK,KAAA,QAAC,GAAG,iBAAJ,OAAO;YACf,KAAI,AAAW,UAAD,KAAI;AACC,gBAAtB,wBAAM,AAAK,KAAA,QAAC,GAAG,kBAAJ,OAAO;YACf,KAAI,AAAW,UAAD,KAAI;AACF,gBAAnB,wBAAM,AAAK,KAAA,QAAC,GAAG,kBAAJ,OAAO;;AAEK,gBAAvB,wBAAM,AAAK,KAAA,QAAC,GAAG,kBAAJ,OAAO;;AAIO,QAA3B,AAAI,GAAD,IAAI,OAAO,MAAM,IAAI,GAAG;AAC3B,cAAO,IAAG;MACZ;;;;UAjgBU;UACD;UACA;UACA;UACQ;UACN;UACF;UACkB;UACE;UACA;UACA;UACA;UACpB;UACA;UACU;UACV;UACC;UACC;UACH;MAiVD;MACF;MAEA,qBAAe;MACP,qBAAc;MACpB;MACH;MAGoC,sBACD;MAEJ,qBACD;MAIC,sBACD;MApXzB;MACA;MACA;MAGA;MAMA;MAGA;MAIO,qBAAY,KAAV,SAAS,QAAT,OAAa;MACf,qBAAY,MAAV,SAAS,SAAT,OAAqB,sBAAC,KAAG;MACnB,6BAAoB,OAAlB,iBAAiB,UAAjB,OAAqB;MACvB,6BAAoB,OAAlB,iBAAiB,UAAjB,OAAqB;MAC1B,0BAAiB,OAAf,cAAc,UAAd,OAAiC;MAClC,0BAAkB,OAAhB,eAAe,UAAf,OAA0B;MAC5B,0BAAkB,OAAhB,eAAe,UAAf,OAAmB;MAC9B,iBAAS,OAAP,MAAM,UAAN,OAAU;MACN,uBAAG,AAAa,YAAD,IAAI,OACzB,QAAK,SAAU,AAAY,YAAA,CAAC,AAAU,UAAA,QAAC,KAAK,GAAG,KAAK,eACrD;MACS,yBAAG,AAAe,cAAD,IAAI,OAC7B,QAAK,SAAU,AAAc,cAAA,CAAC,AAAU,UAAA,QAAC,KAAK,GAAG,KAAK,iBACvD;MACU,0BAAG,AAAgB,eAAD,IAAI,OAC/B,QAAK,SAAU,AAAe,eAAA,CAAC,AAAU,UAAA,QAAC,KAAK,GAAG,KAAK,iBACxD;MACU,0BAAG,AAAgB,eAAD,IAAI,OAC/B,QAAK,SAAU,AAAe,eAAA,CAAC,AAAU,UAAA,QAAC,KAAK,GAAG,KAAK,iBACxD;MACW,2BAAG,AAAiB,gBAAD,IAAI,OACjC,QAAK,SAAU,AAAgB,gBAAA,CAAC,AAAU,UAAA,QAAC,KAAK,GAAG,KAAK,iBACzD;;IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MCyBmB;;;;;;8BAIO,WAA4B;AACL,QAA/D,AAAU,SAAD,kBAAoD;AAExB,QADrC,AAAU,SAAD,uBAAsB,SAAS,EAAE,MAAM,AAAU,SAAD,kBACrD,AAAU,SAAD,kBAAkB,KAAK;MACtC;wBAG2D;AAChB,wBAAY,AAAU,SAAD;AAC9D,sBAAI,AAAU,SAAD;AAC6B,UAAxC,yEAAmB,SAAS,GAAE,SAAS;;MAE3C;2BAGwD,WACjB;AACI,qBACP;AACd,sBAAmB;AACV;AACW,2BACpC,AAAU,AAAa,SAAd,uBAAe;AACxB,kBAAM;AACN,gBAAI;AACJ,oBAAQ;AACR,mBAAO;AACP,kBAAM;AACN,oBAAQ;AACZ,sBAAK,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAU,SAAD,YAAS,IAAA,AAAC,CAAA;AACuB,iBAAxD,gBAAO,AAAS,AAAI,AAAK,SAAT,mBAAC,CAAC,WAAU,OAAO,IAAI,AAAS,AAAI,SAAJ,mBAAC,CAAC;AACG,gBAArD,gBAAM,AAAS,AAAI,AAAI,SAAR,mBAAC,CAAC,UAAS,OAAO,IAAI,AAAS,AAAI,SAAJ,mBAAC,CAAC;AACW,kBAA3D,gBAAQ,AAAS,AAAI,AAAM,SAAV,mBAAC,CAAC,YAAW,OAAO,IAAI,AAAS,AAAI,SAAJ,mBAAC,CAAC;AACG,UAAvD,QAAyC,CAAzB,AAAO,aAAb,KAAK,iBAAG,GAAG,KAAU,aAAL,IAAI,iBAAG,KAAK,OAAW,aAAL,IAAI,iBAAG,GAAG;AACf,UAAvC,MAAM,AAAI,GAAD,GAAG,AAAM,KAAD,gBAAG,AAAS,AAAI,SAAJ,mBAAC,CAAC;AAEoC,UADnE,SAAS,oBACL,AAAS,AAAI,SAAJ,mBAAC,CAAC,MAAK,GAAG,EAAE,AAAS,SAAA,mBAAC,CAAC,IAAG,YAAY,EAAE,AAAO,MAAD;AACzC,UAAlB,AAAO,MAAD,OAAK,MAAM;AACI,UAArB,AAAQ,OAAD,OAAK,AAAO,MAAD;;AAEY,QAAhC,AAAU,SAAD,kBAAiB,MAAM;AACW,QAA3C,sBAAgB,MAAM,EAAE,SAAS,EAAE,OAAO;MAC5C;;;UA9GU;UACC;UACA;UACA;UACM;UACN;UACC;UACe;UACE;UACA;UACA;UACA;UAClB;UACF;UACU;UACR;UACD;UACC;MACa,4BAAG,AAAkB,iBAAD,IAAI,OACnC,QAAK,SAAU,AAAiB,iBAAA,CAAC,AAAU,UAAA,QAAC,KAAK,GAAG,KAAK,iBAC1D;AACN,6EACe,SAAS,aACT,SAAS,aACT,SAAS,cACR,UAAU,aACX,SAAS,qBACD,iBAAiB,cACxB,UAAU,gBACR,YAAY,mBACT,eAAe,kBAChB,cAAc,oBACZ,gBAAgB,QAC5B,IAAI,qBACS,iBAAiB,kBACpB,cAAc,kBACd,cAAc,mBACb,eAAe,mBACf,eAAe;;IAAC;;;;;;;;;;;;;;;;;;;;;;8BCED,WAA4B;AACL,QAA/D,AAAU,SAAD,kBAAoD;AAExB,QADrC,AAAU,SAAD,uBAAsB,SAAS,EAAE,OAAO,AAAU,SAAD,kBACtD,AAAU,SAAD,kBAAkB,KAAK;MACtC;wBAG2D;AAChB,wBAAY,AAAU,SAAD;AAC9D,sBAAI,AAAU,SAAD,kBAAgC,aAAjB,AAAU,SAAD,0BAAU,AAAU,SAAD;AACb,UAAzC,qDAAoB,SAAS,GAAE,SAAS;;MAE5C;4BAEwD,WACjB;;AACjC,sBAAU;AACV,sBAAU;AACV,wBAAY;AACZ,uBAAW;AACX,wBAAY;AACZ,wBAAY;AACyB,qBACP;AACd,sBAAmB;AACV;AACP,mBAAkB;AAC9B,qBAAS,AAAU,SAAD;AACxB,kBAAM;AAC8B,2BACpC,AAAU,AAAa,SAAd,uBAAe;AAC5B,iBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAU,SAAD,YAAS,IAAA,AAAC,CAAA;AACrC,yBAAK,AAAS,AAAI,SAAJ,QAAC,CAAC,wBAAa,AAAS,AAAI,SAAJ,QAAC,CAAC;AACQ,sBAA9C,gBAA4B,WAAlB,AAAS,AAAI,SAAJ,QAAC,CAAC,cAAS,AAAS,AAAI,SAAJ,QAAC,CAAC;AACzC,gBAAI,AAAE,CAAD,GAAG;AAC+D,0BAArE,gBAAgE,WAAjC,WAAlB,AAAS,AAAI,SAAJ,QAAC,CAAC,eAAiC,KAAvB,AAAS,AAAQ,SAAR,QAAC,AAAE,CAAD,GAAG,gBAAG,OAAS;AACO,yBAAnE,gBAA8D,WAAjC,WAAjB,AAAS,AAAI,SAAJ,QAAC,CAAC,cAAgC,MAAvB,AAAS,AAAQ,SAAR,QAAC,AAAE,CAAD,GAAG,iBAAG,OAAS;;AAEpB,YAAxC,YAAY,mBAAS,OAAO,EAAE,SAAS;AACE,YAAzC,YAAY,mBAAS,SAAS,EAAE,QAAQ;AACnB,YAArB,MAAM,AAAI,GAAD,GAAG,SAAS;AACrB,gBAAI,AAAE,CAAD,iBAAI,MAAM,KAAW,aAAP,MAAM,IAAG;AAEuC,wBADjE,gBACyD,WAAb,WAAf,WAAxB,AAAI,AAAkB,IAAlB,QAAa,aAAZ,AAAK,IAAD,aAAU,YAAe,aAAP,MAAM,IAAG,WAAK,SAAS,UAAI,MAAM;AAEjC,cADhC,SAAS,oBAAc,AAAS,AAAI,SAAJ,QAAC,CAAC,KAAK,OAAO,EAAE,AAAS,SAAA,QAAC,CAAC,GACvD,YAAY,EAAE,AAAO,MAAD;AACN,cAAlB,AAAO,MAAD,OAAK,MAAM;AACI,cAArB,AAAQ,OAAD,OAAK,AAAO,MAAD;;AAEI,cAAtB,UAAU,AAAI,GAAD,gBAAG,MAAM;AACtB,kBAAI,AAAE,CAAD,KAAW,aAAP,MAAM,IAAG;AAEgB,gBADhC,SAAS,oBAAc,AAAS,AAAI,SAAJ,QAAC,CAAC,KAAK,OAAO,EAAE,AAAS,SAAA,QAAC,CAAC,GACvD,YAAY,EAAE,AAAO,MAAD;AACN,gBAAlB,AAAO,MAAD,OAAK,MAAM;AACI,gBAArB,AAAQ,OAAD,OAAK,AAAO,MAAD;;;AAGsB,YAA5C,AAAK,IAAD,OAAK,yBAAU,AAAS,AAAI,SAAJ,QAAC,CAAC,KAAK,OAAO;;;AAGd,QAAhC,AAAU,SAAD,kBAAiB,MAAM;AACW,QAA3C,sBAAgB,MAAM,EAAE,SAAS,EAAE,OAAO;MAC5C;;;UAtGU;UACC;UACA;UACA;UACM;UACN;UACC;UACe;UACE;UACA;UACA;UAClB;UACF;UACU;UACR;UACD;UACC;UACH;AACF,wDACe,SAAS,aACT,SAAS,aACT,SAAS,cACR,UAAU,aACX,SAAS,qBACD,iBAAiB,cACxB,UAAU,gBACR,YAAY,mBACT,eAAe,kBAChB,cAAc,oBACZ,gBAAgB,QAC5B,IAAI,qBACS,iBAAiB,kBACpB,cAAc,kBACd,cAAc,mBACb,eAAe,mBACf,eAAe,UACxB,MAAM;;IAAC;;;;;;;;;;;;;;;mCAsEV,GAAQ;IAAR;IAAQ;;EAAE;;;;;;;;;;;;;;;;;MC/Cf;;;;;;MAiBE;;;;;;MAiBC;;;;;;MAiBD;;;;;;MAiBC;;;;;;MAiBD;;;;;;8BAGwD,WAC/C;AAC4C,QAA/D,AAAU,SAAD,kBAAoD;AAC7D,yBAAI,AAAU,SAAD,YAAqB,+BAC9B,AAAU,SAAD,cAAc;AAEiC,UAD1D,2BACI,SAAS,EAAE,aAAa,AAAU,SAAD,YAAY,KAAG,KAAK;;AAGtB,QADrC,2BAAqB,SAAS,EAAE,iBAAiB,AAAU,SAAD,kBACtD,AAAU,SAAD,kBAAkB,KAAK;AAEA,QADpC,2BAAqB,SAAS,EAAE,aAAa,AAAU,SAAD,iBAClD,AAAU,SAAD,iBAAiB,KAAK;AAEC,QADpC,2BAAqB,SAAS,EAAE,aAAa,AAAU,SAAD,iBAClD,AAAU,SAAD,iBAAiB,KAAK;MACrC;wBAG8D;AACjD,yBAAuD,aAA1C,AAAU,SAAD,YAAqB,+BAClD,AAAU,SAAD,cAAc;AACjB,oBAAQ,UAAU,GAAG,IAAI;AACM,+BACP;AACO,8BACP;AACO,8BACP;AACO,6BACP;AACM,0BACpC,AAAU,AAAa,SAAd,kCAAe,AAAM,KAAD,GAAG;AACI,0BACpC,AAAU,AAAa,SAAd,kCAAe,AAAM,KAAD,GAAG;AACI,2BACpC,AAAU,AAAa,SAAd,kCAAe,KAAK;AACO,8BACpC,UAAU,GAAG,AAAU,AAAa,SAAd,uBAAe,KAAK;AAC1B,sBAAmB;AAGE,wBAAY,AAAU,SAAD;AAC9D,sBAAI,AAAU,SAAD,kBACQ,aAAjB,AAAU,SAAD,2BAAW,AAAU,SAAD,YACZ,aAAjB,AAAU,SAAD,WAAU;AACjB,oBAAM;AACN,6BAAe;AACT,2BAAa,AAAU,SAAD;AACtB,sBAAQ,AAAU,SAAD;AACjB,uBAAS,AAAU,AAAO,SAAR;AACZ,0BAAY,2BAAU,KAAK;AAC3B,2BAAa,2BAAU,KAAK;AACjB,gCAAkB,sCAAqB,KAAK;AAEvE,mBAAS,IAAI,GAAG,AAAE,CAAD,GAAG,MAAM,EAAE,IAAA,AAAC,CAAA;AAC+B,YAA1D,MAAA,AAAI,GAAD,gBAA+B,gBAA3B,AAAS,AAAI,AAAM,SAAV,QAAC,CAAC,WAAW,OAAO,IAAI,AAAS,AAAI,SAAJ,QAAC,CAAC;;AAEjD,oBAAM,AAAI,GAAD,gBAAG,AAAU,SAAD;AACzB,mBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,KAAK,GAAE,IAAA,AAAC,CAAA;AAChB,oCAAI,AAAS,AAAI,AAAM,SAAV,QAAC,CAAC,WAAW,OAAO,IAAI,AAAS,AAAI,SAAJ,QAAC,CAAC;AAC1D,gBAAI,AAAE,CAAD,IAAI,AAAO,MAAD,GAAG,KAAK,AAAE,CAAD,gBAAG,KAAK;AAC9B,kBAAI,AAAE,AAAmB,CAApB,gBAAG,AAAU,SAAD,YAAW;AAChB,2BAAS,aAAF,CAAC,iCAAG,AAAS,AAAa,SAAb,mBAAC,AAAE,CAAD,GAAG,MAAM;AACzB,gBAAhB,MAAM,AAAI,GAAD,GAAG,IAAI;AACc,gBAA9B,MAAM,AAAI,GAAD,gBAAI,AAAU,SAAD;AACJ,gBAAlB,AAAS,SAAA,QAAC,CAAC,EAAI,GAAG;AACkB,gBAApC,AAAU,UAAA,QAAC,CAAC,EAAI,SAAW,aAAF,CAAC,IAAG,GAAG,EAAE;AACoB,gBAAtD,eAAA,AAAa,YAAD,IAAkB,aAAd,AAAU,UAAA,QAAC,CAAC,kBAAI,AAAU,UAAA,mBAAC,AAAE,CAAD,GAAG,MAAM;;AAEnC,gBAAlB,AAAS,SAAA,QAAC,CAAC,EAAI,GAAG;AACkB,gBAApC,AAAU,UAAA,QAAC,CAAC,EAAI,SAAW,aAAF,CAAC,IAAG,GAAG,EAAE;AACL,gBAA7B,eAAA,AAAa,YAAD,gBAAI,AAAU,UAAA,QAAC,CAAC;;AAEpB,0BAAQ,UAAU,AAAa,YAAD,gBAAI,AAAU,SAAD;AAC3C,8BAAyB,aAAb,AAAS,SAAA,QAAC,CAAC,KAAgB,aAAX,UAAU,IAAG,KAAK;AAC9C,8BAAyB,aAAb,AAAS,SAAA,QAAC,CAAC,KAAgB,aAAX,UAAU,IAAG,KAAK;AACxD,kBAAI,AAAE,AAAI,CAAL,GAAG,MAAK,MAAM;AACjB,yBAAS,IAAI,GAAG,AAAE,CAAD,GAAG,AAAO,MAAD,GAAG,GAAG,IAAA,AAAC,CAAA;AAMb,kBALlB,AAAe,eAAA,QAAC,CAAC,EAAI,kDACd,AAAS,AAAI,SAAJ,QAAC,CAAC,oBACL,AAAS,SAAA,QAAC,CAAC,YACX,SAAS,UACV,SAAS,WACR;;;AAQC,cALlB,AAAe,eAAA,QAAC,CAAC,EAAI,kDACd,AAAS,AAAI,SAAJ,QAAC,CAAC,oBACL,AAAS,SAAA,QAAC,CAAC,YACX,SAAS,UACV,SAAS,WACR;;AAEb,kBAAI,AAAE,CAAD,GAAoB,aAAjB,AAAU,SAAD,WAAU;AACP,gBAAlB,AAAS,SAAA,QAAC,CAAC,EAAI,GAAG;AACkB,gBAApC,AAAU,UAAA,QAAC,CAAC,EAAI,SAAW,aAAF,CAAC,IAAG,GAAG,EAAE;AACL,gBAA7B,eAAA,AAAa,YAAD,gBAAI,AAAU,UAAA,QAAC,CAAC;;;;AAI9B,kBAAI,CAAC;AACL,kBAAI,CAAC;AACT,mBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,KAAK,GAAE,IAAA,AAAC,CAAA;AAC1B,gBAAI,AAAE,CAAD,IAAK,AAAO,MAAD,GAAG;AACU,cAA3B,AAAQ,OAAD,OAAK,AAAS,AAAI,SAAJ,QAAC,CAAC;AAMK,cAL5B,AAAgB,eAAD,OAAK,oBAChB,AAAS,AAAI,SAAJ,QAAC,CAAC,KACX,AAAe,AAAI,eAAJ,QAAC,CAAC,UACjB,AAAS,SAAA,QAAC,CAAC,GACX,WAAW,EACX,AAAgB,eAAD;AAMS,cAL5B,AAAgB,eAAD,OAAK,oBAChB,AAAS,AAAI,SAAJ,QAAC,CAAC,KACX,AAAe,AAAI,eAAJ,QAAC,CAAC,WACjB,AAAS,SAAA,QAAC,CAAC,GACX,WAAW,EACX,AAAgB,eAAD;AAMU,cAL7B,AAAiB,gBAAD,OAAK,oBACjB,AAAS,AAAI,SAAJ,QAAC,CAAC,KACX,AAAe,AAAI,eAAJ,QAAC,CAAC,WACjB,AAAS,SAAA,QAAC,CAAC,GACX,YAAY,EACZ,AAAiB,gBAAD;AACpB,kBAAI,UAAU;AAOe,gBAN3B,AAAe,cAAD,OAAK,qBACf,AAAS,AAAI,SAAJ,QAAC,CAAC,qBACX,AAAe,AAAM,eAAN,QAAG,IAAF,AAAE,CAAC,GAAH,uBAChB,AAAe,AAAM,eAAN,QAAG,IAAF,AAAE,CAAC,GAAH,OAChB,AAAS,SAAA,QAAC,CAAC,GACX,eAAe,EACf,AAAe,cAAD;;;;;AAKgB,QAA1C,AAAU,SAAD,kBAAiB,gBAAgB;AAC1C,YAAI,UAAU;AAEuD,UADnE,sBACI,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,AAAU,AAAa,SAAd,uBAAe;;AAGO,QADzE,sBACI,gBAAgB,EAAE,SAAS,EAAE,OAAO,EAAE,AAAU,AAAa,SAAd,kCAAe,KAAK;AAEhC,QADvC,sBAAgB,eAAe,EAAE,SAAS,EAAE,OAAO,EAC/C,AAAU,AAAa,SAAd,kCAAe,AAAM,KAAD,GAAG;AAEG,QADvC,sBAAgB,eAAe,EAAE,SAAS,EAAE,OAAO,EAC/C,AAAU,AAAa,SAAd,kCAAe,AAAM,KAAD,GAAG;MACtC;;;;UAtSU;UACC;UACA;UACA;UACM;UACN;UACC;UACe;UACE;UAClB;UACF;UACU;UACR;UACD;UACC;UACH;UACA;UACE;UACC;UACD;UACC;UACD;MACc,4BAAoB,KAAlB,iBAAiB,QAAjB,OAAqB;MAC1B,yBAAiB,MAAf,cAAc,SAAd,OAAyB;MAC3B,yBAAiB,OAAf,cAAc,UAAd,OAAkB;MACpB,yBAAiB,OAAf,cAAc,UAAd,OAAyB;MAC3B,yBAAiB,OAAf,cAAc,UAAd,OAAkB;MACzB,oBAAY,OAAV,SAAS,UAAT,OAAoB,AAAK,gCAAY;AACjD,kEACe,SAAS,aACT,SAAS,aACT,SAAS,cACR,UAAU,aACX,SAAS,qBACD,iBAAiB,cACxB,UAAU,gBACR,YAAY,oBACR,gBAAgB,QAC5B,IAAI,qBACS,iBAAiB,kBACpB,cAAc,kBACd,cAAc,mBACb,eAAe,mBACf,eAAe,UACxB,MAAM;;IAAC;;;;;;;;;;;;;;;;;;;;;;;;QA+Pf;QAAQ;QAAc;QAAc;QAAa;IAAjD;IAAQ;IAAc;IAAc;IAAa;;EAAS;;;;;;;;;;;;;;;;MClPvD;;;;;;8BAI6B,WAA4B;AACL,QAA/D,AAAU,SAAD,kBAAoD;AAExB,QADrC,AAAU,SAAD,uBAAsB,SAAS,EAAE,OAAO,AAAU,SAAD,kBACtD,AAAU,SAAD,kBAAkB,KAAK;MACtC;wBAG2D;AAChB,wBAAY,AAAU,SAAD;AAC9D,sBAAI,AAAU,SAAD,kBACQ,aAAjB,AAAU,SAAD,0BAAU,AAAU,SAAD,YACX,aAAjB,AAAU,SAAD,WAAU;AACoB,UAAzC,qDAAoB,SAAS,GAAE,SAAS;;MAE5C;4BAEwD,WACjB;AACG,2BACpC,AAAU,AAAa,SAAd,uBAAe;AAClB,qBAAS,AAAU,SAAD;AACa,qBACP;AACd,sBAAmB;AACV;AAC7B,YAAqB,aAAjB,AAAU,SAAD,2BAAW,MAAM,KAAW,aAAP,MAAM,IAAG;AACrC,oBAAM;AACN,wBAAU;AACJ,kBAAI,AAAE,KAAU,aAAP,MAAM,IAAG;AAC5B,mBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,MAAM,GAAE,IAAA,AAAC,CAAA;AACoB,YAA/C,MAAA,AAAI,GAAD,gBAAI,qBAAe,SAAS,EAAE,CAAC,EAAE;;AAEhB,UAAtB,UAAU,AAAI,GAAD,gBAAG,MAAM;AAEiC,UADvD,SAAS,oBAAc,AAAS,AAAa,SAAb,mBAAQ,aAAP,MAAM,IAAG,OAAM,OAAO,EACnD,AAAS,SAAA,mBAAQ,aAAP,MAAM,IAAG,KAAI,YAAY,EAAE,AAAO,MAAD;AAC7B,UAAlB,AAAO,MAAD,OAAK,MAAM;AACI,UAArB,AAAQ,OAAD,OAAK,AAAO,MAAD;AACd,sBAAQ,MAAM;AAClB,iBAAa,aAAN,KAAK,iBAAG,AAAU,SAAD;AACtB,0BAAI,AAAS,AAAQ,SAAR,mBAAC,KAAK,iBACQ,YAAvB,AAAS,AAAQ,SAAR,mBAAC,KAAK,UAAW,SACF,YAAxB,AAAS,AAAQ,SAAR,mBAAC,KAAK,WAAY;AACnB,gDAAc,AAAM,AAAiB,MAAjB,mBAAO,aAAN,KAAK,iBAAG,MAAM;AACnC,2BACuD,AAAI,CAAnB,aAA7C,qBAAe,SAAS,aAAE,KAAK,GAAE,iCAAc,WAAW,KAAI,CAAC,gBAC5D,WAAW;AAEa,cADhC,SAAS,oBAAc,AAAS,AAAQ,SAAR,mBAAC,KAAK,MAAK,MAAM,EAAE,AAAS,SAAA,mBAAC,KAAK,IAC9D,YAAY,EAAE,AAAO,MAAD;AACN,cAAlB,AAAO,MAAD,OAAK,MAAM;AACI,cAArB,AAAQ,OAAD,OAAK,AAAO,MAAD;;AAEb,YAAP,QAAK,aAAL,KAAK;;;AAGuB,QAAhC,AAAU,SAAD,kBAAiB,MAAM;AACW,QAA3C,sBAAgB,MAAM,EAAE,SAAS,EAAE,OAAO;MAC5C;;;;UAvHO;UACE;UACA;UACA;UACM;UACN;UACC;UACe;UACE;UACA;UACA;UACA;UAClB;UACF;UACU;UACR;UACD;UACC;UACH;UACG;MACQ,oBAA0B,CAAZ,KAAX,UAAU,QAAV,OAAc;AAC5B,wDACe,SAAS,aACT,SAAS,aACT,SAAS,cACR,UAAU,aACX,SAAS,qBACD,iBAAiB,cACxB,UAAU,gBACR,YAAY,mBACT,eAAe,kBAChB,cAAc,mBACb,eAAe,oBACd,gBAAgB,QAC5B,IAAI,qBACS,iBAAiB,kBACpB,cAAc,kBACd,cAAc,mBACb,eAAe,mBACf,eAAe,UACxB,MAAM;;IAAC;;;;;;;;;;;;;;;;;;;;;;;;MCmBZ;;;;;;8BAI6B,WAA4B;AACL,QAA/D,AAAU,SAAD,kBAAoD;AAExB,QADrC,AAAU,SAAD,uBAAsB,SAAS,EAAE,OAAO,AAAU,SAAD,kBACtD,AAAU,SAAD,kBAAkB,KAAK;MACtC;wBAG2D;AAChB,wBAAY,AAAU,SAAD;AAC9D,sBAAI,AAAU,SAAD,kBAAgC,aAAjB,AAAU,SAAD,0BAAU,AAAU,SAAD;AACb,UAAzC,qDAAoB,SAAS,GAAE,SAAS;;MAE5C;4BAEwD,WACjB;AAC3B,qBAAS,AAAU,SAAD;AACa,qBACP;AACd,sBAAmB;AACV;AAC7B,sBAAI,AAAU,SAAD,kBACQ,aAAjB,AAAU,SAAD,2BAAW,AAAU,SAAD,YACtB,aAAP,MAAM,IAAG;AAC6B,6BACpC,AAAU,AAAa,SAAd,uBAAe;AAE5B,wBAAI,AAAU,SAAD,kBAAgC,aAAjB,AAAU,SAAD,2BAAW,MAAM;AAChD,sBAAM;AACN,wBAAQ;AACF,4BAAiB;AACvB,yBAAS,AAAU,SAAD;AAEtB,mBAAc,aAAP,MAAM,kBAAI,MAAM;AACd,cAAP,MAAM;AAC2B,cAAjC,QAAyB,aAAjB,AAAU,SAAD,0BAAU,MAAM;AACjC,uBAAS,IAAI,KAAK,EAAI,aAAF,CAAC,IAAS,aAAN,KAAK,iBAAG,MAAM,GAAE,IAAC,aAAD,CAAC;AACQ,gBAA/C,MAAA,AAAI,GAAD,gBAAI,qBAAe,SAAS,aAAE,CAAC,GAAE;;AAEpB,cAAlB,MAAM,AAAI,GAAD,gBAAG,MAAM;AACA,cAAlB,AAAU,SAAD,OAAK,GAAG;AACT,cAAR,SAAM,aAAN,MAAM;;AAGR,qBAAS,IAAI,GAAG,AAAE,CAAD,GAAU,aAAP,MAAM,IAAG,GAAG,IAAA,AAAC,CAAA;AACxB,cAAP,MAAM;AACN,uBAAS,IAAI,GAAG,AAAE,CAAD,GAAG,AAAE,CAAD,GAAG,GAAG,IAAA,AAAC,CAAA;AACqB,gBAA/C,MAAA,AAAI,GAAD,gBAAI,qBAAe,SAAS,aAAE,CAAC,GAAE;;AAEnB,cAAnB,MAAM,AAAI,GAAD,IAAI,AAAE,CAAD,GAAG;AACwB,cAAzC,YAAY,wBAAQ,SAAS,aAAE,CAAC,GAAE,GAAG,GAAG;;AAGlB,YAAxB,QAAQ,AAAU,SAAD;AACjB,mBAAa,aAAN,KAAK,kBAAI,AAAU,SAAD;AAChB,cAAP,MAAM;AACN,uBAAS,IAAU,aAAN,KAAK,iBAAG,AAAU,SAAD,UAAS,AAAE,CAAD,gBAAG,KAAK,GAAE,IAAA,AAAC,CAAA;AACzB,gBAAxB,MAAM,AAAI,GAAD,gBAAG,AAAS,SAAA,mBAAC,CAAC;;AAEG,cAA5B,MAAM,AAAI,GAAD,gBAAG,AAAU,SAAD;AAEiC,cADtD,SAAS,oBAAc,AAAS,AAAY,SAAZ,mBAAO,aAAN,KAAK,IAAG,OAAM,GAAG,EAC9C,AAAS,SAAA,mBAAO,aAAN,KAAK,IAAG,KAAI,YAAY,EAAE,AAAO,MAAD;AAC5B,cAAlB,AAAO,MAAD,OAAK,MAAM;AACI,cAArB,AAAQ,OAAD,OAAK,AAAO,MAAD;AACX,cAAP,QAAK,aAAL,KAAK;;;;AAIqB,QAAhC,AAAU,SAAD,kBAAiB,MAAM;AACW,QAA3C,sBAAgB,MAAM,EAAE,SAAS,EAAE,OAAO;MAC5C;qBAEiC,MAAU,OAClC,gBAAa;AACpB,YAAI,QAAQ,IAAI;AACwB,UAAtC,AAAK,IAAD,aAAW,KAAK,EAAO,gCAAC,QAAQ;;AAEtC,cAAO,KAAI;MACb;;;;UA7IU;UACC;UACA;UACA;UACM;UACN;UACC;UACe;UACE;UACA;UACA;UACA;UAClB;UACF;UACU;UACR;UACD;UACC;UACH;UACG;MACM,qBAA0B,CAAZ,KAAX,UAAU,QAAV,OAAc;AAC5B,wDACe,SAAS,aACT,SAAS,aACT,SAAS,cACR,UAAU,aACX,SAAS,qBACD,iBAAiB,cACxB,UAAU,gBACR,YAAY,mBACT,eAAe,kBAChB,cAAc,mBACb,eAAe,oBACd,gBAAgB,QAC5B,IAAI,qBACS,iBAAiB,kBACpB,cAAc,kBACd,cAAc,mBACb,eAAe,mBACf,eAAe,UACxB,MAAM;;IAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MC8Bd;;;;;;MAiBE;;;;;;MAiBA;;;;;;MAiBD;;;;;;MAiBC;;;;;;MAiBD;;;;;;MAiBC;;;;;;8BAIsB,WAA4B;AACE,QAA/D,AAAU,SAAD,kBAAoD;AAExB,QADrC,AAAU,SAAD,uBAAsB,SAAS,EAAE,OAAO,AAAU,SAAD,kBACtD,AAAU,SAAD,kBAAkB,KAAK;AACpC,YAAwB,YAApB,AAAU,SAAD,YAAc;AAEW,UADpC,2BAAqB,SAAS,EAAE,aAAa,AAAU,SAAD,iBAClD,AAAU,SAAD,iBAAiB,KAAK;AAEC,UADpC,2BAAqB,SAAS,EAAE,aAAa,AAAU,SAAD,iBAClD,AAAU,SAAD,iBAAiB,KAAK;;MAEvC;wBAGoD;AACT,+BACP;AACO,8BACP;AACO,8BACP;AACM,2BACpC,AAAU,AAAa,SAAd,uBAAe;AACa,wBAAY,AAAU,SAAD;AAC1C,sBAAmB;AACnB,4BAAyB;AAE7C,sBAAI,AAAU,SAAD,kBACQ,aAAjB,AAAU,SAAD,2BAAW,AAAU,SAAD,YACZ,aAAjB,AAAU,SAAD,WAAU;AACrB,wBAAI,AAAU,SAAD;AACX,qBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAU,SAAD,YAAS,IAAA,AAAC,CAAA;AAMT,cAL5B,AAAgB,eAAD,OAAK,oBAChB,AAAS,AAAI,SAAJ,QAAC,CAAC,KACX,AAAU,SAAD,aACT,AAAS,SAAA,QAAC,CAAC,GACX,AAAU,AAAa,SAAd,uBAAe,IACxB,AAAgB,eAAD;AAMS,cAL5B,AAAgB,eAAD,OAAK,oBAChB,AAAS,AAAI,SAAJ,QAAC,CAAC,KACX,AAAU,SAAD,WACT,AAAS,SAAA,QAAC,CAAC,GACX,AAAU,AAAa,SAAd,uBAAe,IACxB,AAAgB,eAAD;AACQ,cAA3B,AAAQ,OAAD,OAAK,AAAS,AAAI,SAAJ,QAAC,CAAC;;;AAGvB,0CAAY,AAAS,AAAI,AAAM,SAAV,QAAC,YAAY,OAAO,IAAI,AAAS,AAAI,SAAJ,QAAC;AACvD,qBAAO;AACP,qBAAO;AACX,mBAAS,IAAI,GAAG,AAAE,CAAD,iBAAI,AAAU,SAAD,UAAS,IAAA,AAAC,CAAA;AAC5B,wCAAQ,AAAS,AAAI,AAAM,SAAV,QAAC,CAAC,WAAW,OAAO,MAAM,AAAS,AAAI,SAAJ,QAAC,CAAC;AAChE,gBAAU,aAAN,KAAK,iBAAG,SAAS;AACM,cAAzB,OAAA,AAAK,IAAD,IAAU,aAAN,KAAK,iBAAG,SAAS;;AAEA,cAAzB,OAAA,AAAK,IAAD,IAAc,aAAV,SAAS,iBAAG,KAAK;;AAEV,YAAjB,YAAY,KAAK;;AAEW,UAA9B,OAAO,AAAK,IAAD,gBAAG,AAAU,SAAD;AACO,UAA9B,OAAO,AAAK,IAAD,gBAAG,AAAU,SAAD;AAOM,UAL7B,AAAiB,gBAAD,OAAK,oBACjB,AAAS,AAAmB,SAAnB,QAAC,AAAU,SAAD,YACnB,AAAI,MAAG,AAAI,OAAG,AAAE,IAAG,AAAK,IAAD,GAAG,IAAI,GAC9B,AAAS,SAAA,QAAC,AAAU,SAAD,UACnB,YAAY,EACZ,AAAiB,gBAAD;AAC4B,UAAhD,AAAc,aAAD,OAAK,AAAS,AAAmB,SAAnB,QAAC,AAAU,SAAD;AAErC,mBAAS,IAAqB,aAAjB,AAAU,SAAD,WAAU,GAAG,AAAE,CAAD,gBAAG,AAAU,SAAD,YAAS,IAAA,AAAC,CAAA;AACxD,2BAAK,AAAS,AAAI,SAAJ,QAAC,CAAC,uBAAY,AAAS,AAAI,SAAJ,QAAC,CAAC;AAC3B,0CAAQ,AAAS,AAAI,SAAJ,QAAC,CAAC;AAC7B,kBAAU,aAAN,KAAK,iBAAG,SAAS;AAEC,gBADpB,OAA6D,CAArD,AAAK,AAAyB,IAA1B,IAAqB,aAAjB,AAAU,SAAD,WAAU,MAAY,aAAN,KAAK,iBAAG,SAAS,mBACtD,AAAU,SAAD;AAC4C,gBAAzD,OAAQ,AAAK,AAA0B,IAA3B,IAAqB,aAAjB,AAAU,SAAD,WAAU,kBAAM,AAAU,SAAD;oBAC7C,KAAU,aAAN,KAAK,iBAAG,SAAS;AAEN,gBADpB,OAA6D,CAArD,AAAK,AAAyB,IAA1B,IAAqB,aAAjB,AAAU,SAAD,WAAU,MAAgB,aAAV,SAAS,iBAAG,KAAK,mBACtD,AAAU,SAAD;AAC4C,gBAAzD,OAAQ,AAAK,AAA0B,IAA3B,IAAqB,aAAjB,AAAU,SAAD,WAAU,kBAAM,AAAU,SAAD;;AAEnC,cAAjB,YAAY,KAAK;AAMY,cAL7B,AAAiB,gBAAD,OAAK,oBACjB,AAAS,AAAI,SAAJ,QAAC,CAAC,KACX,AAAI,MAAG,AAAI,OAAG,AAAE,IAAG,AAAK,IAAD,GAAG,IAAI,GAC9B,AAAS,SAAA,QAAC,CAAC,GACX,YAAY,EACZ,AAAiB,gBAAD;AACa,cAAjC,AAAc,aAAD,OAAK,AAAS,AAAI,SAAJ,QAAC,CAAC;;;;AAIO,QAA1C,AAAU,SAAD,kBAAiB,gBAAgB;AAEiC,QAD3E,sBACI,gBAAgB,EAAE,SAAS,EAAE,aAAa,EAAE,AAAU,AAAa,SAAd,uBAAe;AACxE,sBAAI,AAAU,SAAD;AAEyD,UADpE,sBACI,eAAe,EAAE,SAAS,EAAE,OAAO,EAAE,AAAU,AAAa,SAAd,uBAAe;AAEG,UADpE,sBACI,eAAe,EAAE,SAAS,EAAE,OAAO,EAAE,AAAU,AAAa,SAAd,uBAAe;;MAErE;;;;UAlRU;UACC;UACA;UACA;UACM;UACN;UACC;UACe;UACE;UACA;UACA;UAClB;UACF;UACU;UACR;UACD;UACC;UACH;UACC;UACE;UACA;UACK;UACC;UACD;UACC;MACD,oBAAY,KAAV,SAAS,QAAT,OAAa;MACd,qBAAa,MAAX,UAAU,SAAV,OAAc;MAClB,mBAAW,OAAT,QAAQ,UAAR,OAAY;MACR,0BAAiB,OAAf,cAAc,UAAd,OAAyB;MAC3B,0BAAiB,OAAf,cAAc,UAAd,OAAkB;MACpB,0BAAiB,OAAf,cAAc,UAAd,OAAyB;MAC3B,0BAAiB,OAAf,cAAc,UAAd,OAAkB;AACnC,wDACe,SAAS,aACT,SAAS,aACT,SAAS,cACR,UAAU,aACX,SAAS,qBACD,iBAAiB,cACxB,UAAU,gBACR,YAAY,mBACT,eAAe,kBAChB,cAAc,oBACZ,gBAAgB,QAC5B,IAAI,qBACS,iBAAiB,kBACpB,cAAc,kBACd,cAAc,mBACb,eAAe,mBACf,eAAe,UACxB,MAAM;;IAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;MCMZ;;;;;;8BAI6B,WAA4B;AACL,QAA/D,AAAU,SAAD,kBAAoD;AAExB,QADrC,AAAU,SAAD,uBAAsB,SAAS,EAAE,OAAO,AAAU,SAAD,kBACtD,AAAU,SAAD,kBAAkB,KAAK;MACtC;wBAGoD;AACT,wBACP;AACO,sBAAU,AAAU,SAAD;AACxC,sBAAmB;AACV;AAC7B,sBAAI,AAAQ,OAAD;AACgC,0BAAY,OAAO;AACpB,6BACpC,AAAU,AAAa,SAAd,uBAAe;AAE5B,cAAqB,aAAjB,AAAU,SAAD,2BAAW,AAAU,SAAD,YAA4B,aAAjB,AAAU,SAAD,WAAU;AACzD,0BAAU;AACV,sBAAM;AAEV,qBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAU,SAAD,UAAS,IAAA,AAAC,CAAA;AACU,cAA/C,MAAA,AAAI,GAAD,gBAAI,qBAAe,SAAS,EAAE,CAAC,EAAE;;AAGN,YAAhC,UAAU,AAAI,GAAD,gBAAG,AAAU,SAAD;AAE2C,YADpE,SAAS,oBAAc,AAAS,AAAuB,SAAvB,QAAkB,aAAjB,AAAU,SAAD,WAAU,MAAM,OAAO,EAC7D,AAAS,SAAA,QAAkB,aAAjB,AAAU,SAAD,WAAU,IAAI,YAAY,EAAE,AAAU,SAAD;AACvC,YAArB,AAAU,SAAD,OAAK,MAAM;AACC,YAArB,AAAQ,OAAD,OAAK,AAAO,MAAD;AAEd,wBAAQ,AAAU,SAAD;AACrB,mBAAa,aAAN,KAAK,iBAAG,AAAU,SAAD;AAE6C,cADnE,MAAA,AAAI,GAAD,gBACC,qBAAe,SAAS,aAAQ,aAAN,KAAK,iBAAG,AAAU,SAAD,WAAS;AACL,cAAnD,MAAA,AAAI,GAAD,gBAAI,qBAAe,SAAS,aAAE,KAAK,GAAE;AACR,cAAhC,UAAU,AAAI,GAAD,gBAAG,AAAU,SAAD;AAEU,cADnC,SAAS,oBAAc,AAAS,AAAQ,SAAR,mBAAC,KAAK,MAAK,OAAO,EAAE,AAAS,SAAA,mBAAC,KAAK,IAC/D,YAAY,EAAE,AAAU,SAAD;AACN,cAArB,AAAU,SAAD,OAAK,MAAM;AACC,cAArB,AAAQ,OAAD,OAAK,AAAO,MAAD;AACX,cAAP,QAAK,aAAL,KAAK;;;AAG0B,UAAnC,AAAU,SAAD,kBAAiB,SAAS;AACW,UAA9C,sBAAgB,SAAS,EAAE,SAAS,EAAE,OAAO;;MAEjD;;;;UA/GO;UACE;UACA;UACA;UACM;UACN;UACC;UACe;UACE;UACA;UACA;UACA;UAClB;UACF;UACU;UACR;UACD;UACC;UACH;UACG;MACQ,qBAA0B,CAAZ,KAAX,UAAU,QAAV,OAAc;AAC5B,wDACe,SAAS,aACT,SAAS,aACT,SAAS,cACR,UAAU,aACX,SAAS,qBACD,iBAAiB,cACxB,UAAU,gBACR,YAAY,mBACT,eAAe,kBAChB,cAAc,mBACb,eAAe,oBACd,gBAAgB,QAC5B,IAAI,qBACS,iBAAiB,kBACpB,cAAc,kBACd,cAAc,mBACb,eAAe,mBACf,eAAe,UACxB,MAAM;;IAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MC2Bf;;;;;;MAiBA;;;;;;MAiBE;;;;;;MAiBC;;;;;;MAiBE;;;;;;MAiBH;;;;;;MAiBA;;;;;;8BAIwB,WAA4B;AACC,QAA/D,AAAU,SAAD,kBAAoD;AAExB,QADrC,AAAU,SAAD,uBAAsB,SAAS,EAAE,QAAQ,AAAU,SAAD,kBACvD,AAAU,SAAD,kBAAkB,KAAK;AAEpC,YAAuB,YAAnB,AAAU,SAAD,WAAsB,yBACZ,YAAnB,AAAU,SAAD,WAAsB;AAE2B,UAD5D,AAAU,SAAD,uBAAsB,SAAS,EAAE,YACtC,AAAU,SAAD,gBAAgB,AAAU,SAAD,gBAAgB,KAAK;;AAE7D,YAAuB,YAAnB,AAAU,SAAD,WAAsB,8BACZ,YAAnB,AAAU,SAAD,WAAsB;AAMvB,UALV,AAAU,SAAD,uBACL,SAAS,EACT,aACA,AAAU,SAAD,yBACiB,aAA1B,AAAU,SAAD,oBAAmB,GAC5B,KAAK;;MAEb;wBAGqD;;AAChB,+BACD;AACxB,yBAAa,AAAU,SAAD;AACtB,yBAAa,AAAU,SAAD;AACtB,sBAAU,AAAU,SAAD;AACnB,qBAAoB,aAAX,UAAU,iBAAG,OAAO;AACJ,6BACD;AACC,kCACD;AACO,wBAAY,AAAU,SAAD;AACtB,2BACpC,AAAU,AAAa,SAAd,uBAAe;AACd;AAAS;AAAY;AAAO;AACR;AAAiB;AAEnD,YAAuB,YAAnB,AAAU,SAAD,WAAsB;AACW,UAA5C,kBAAkB,AAAU,AAAa,SAAd,uBAAe;;AAEC,UAA3C,iBAAiB,AAAU,AAAa,SAAd,uBAAe;AACzC,cAAuB,YAAnB,AAAU,SAAD,WAAsB;AACW,YAA5C,kBAAkB,AAAU,AAAa,SAAd,uBAAe;;;AAI9C,sBAAI,AAAU,SAAD,kBACT,AAAO,MAAD,gBAAG,AAAU,SAAD,cACP,aAAX,UAAU,kBAAI,UAAU,KACb,aAAX,UAAU,IAAG,KACI,aAAjB,AAAU,SAAD,WAAU,KAClB,AAAO,AAAK,MAAN,GAAG,KAAM;AACF,yBACZ,0BAAoB,UAAU,EAAE,SAAS,EAAE;AAC/B,wBACZ,0BAAoB,UAAU,EAAE,SAAS,EAAE;AAC/B,2BAAa,oBAAc,SAAS,EAAE,QAAQ,EAAE,OAAO;AAEF,UADrE,aAAa,qBACT,SAAS,EAAE,UAAU,EAAE,SAAS,GAAiB,KAAf,cAAc,QAAd,OAAkB,YAAY;AACtC,2BAA9B,mCAAiB,AAAU,UAAA,QAAC;AACP,kBAArB,iBAAQ,AAAU,UAAA,QAAC;AACH,0BACZ,0BAAoB,OAAO,EAAE,cAAc,EAAE;AAEkB,UADnE,aACI,uBAAiB,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY;AAClC,6BAAhC,mCAAmB,AAAU,UAAA,QAAC;AACP,oBAAvB,iBAAU,AAAU,UAAA,QAAC;AACrB,cAAI,eAAe,IAAI;AAE4C,YADjE,aAAa,0BACT,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe;AAC7B,kCAAnC,mCAAsB,AAAU,UAAA,QAAC;AACP,yBAA1B,iBAAa,AAAU,UAAA,QAAC;;;AAGc,QAA1C,AAAU,SAAD,kBAAiB,gBAAgB;AAE2B,QADrE,sBACI,gBAAgB,EAAE,SAAS,EAAE,OAAO,EAAE,AAAU,AAAa,SAAd,uBAAe;AAClE,YAAI,eAAe,IAAI;AAE2C,UADhE,sBACI,mBAAmB,EAAE,SAAS,EAAE,UAAU,EAAE,eAAe;;AAEjE,YAAI,cAAc,IAAI;AAC6C,UAAjE,sBAAgB,cAAc,EAAE,SAAS,EAAE,KAAK,EAAE,cAAc;;MAEpE;4BAGkC,QACK,WAAkB;AACnD,kBAAM;AACN,yBAAa;AACD,wBAAiB;AACvB,yBAAa,AAAE,KAAU,aAAP,MAAM,IAAG;AACrC,iBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,MAAM,GAAE,IAAA,AAAC,CAAA;AACoB,UAA/C,MAAA,AAAI,GAAD,gBAAI,qBAAe,SAAS,EAAE,CAAC,EAAE,UAAU;;AAEvB,QAAzB,aAAa,AAAI,GAAD,gBAAG,MAAM;AACA,QAAzB,AAAU,SAAD,OAAK,UAAU;AACpB,qBAAS,UAAU;AACvB,qBAAS,WAAI,MAAM,GAAI,aAAF,CAAC,iBAAG,AAAU,SAAD,YAAS,IAAC,aAAD,CAAC;AAG5B,UAFd,SACwD,AAAa,CAAvB,aAAzC,qBAAe,SAAS,EAAE,CAAC,EAAE,UAAU,KAAI,MAAM,IAAI,UAAU,GAC5D,MAAM;AACO,UAArB,AAAU,SAAD,OAAK,MAAM;;AAEtB,cAAO,UAAS;MAClB;uBAIoC,WACtB,YACyB,WACD;AACK,6BACP;AACd,sBAAmB;AACnC,4BAAqC,aAArB,AAAU,SAAD,eAAc;AACvC,wBAAY;AAChB,eAAO,AAAc,aAAD,gBAAG,AAAU,SAAD;AAMH,UAL3B,AAAe,cAAD,OAAK,oBACf,AAAS,AAAgB,SAAhB,mBAAC,aAAa,MACvB,AAAU,UAAA,mBAAC,SAAS,IACpB,AAAS,SAAA,mBAAC,aAAa,IACvB,MAAM,EACN,AAAe,cAAD;AACqB,UAAvC,AAAQ,OAAD,OAAK,AAAS,AAAgB,SAAhB,mBAAC,aAAa;AACpB,UAAf,gBAAA,AAAa,aAAA;AACF,UAAX,YAAA,AAAS,SAAA;;AAEX,cAAgB,EAAC,cAAc,EAAE,OAAO;MAC1C;yBAIoC,WACtB,WACyB,WACD;AAChC,8BAAuC,AAAmB,aAAxC,AAAU,SAAD,4BAAc,AAAU,SAAD,WAAU;AAC5D,0BAAc;AACE,sBAAmB;AACE,+BACP;AAClC,eAAO,AAAgB,eAAD,gBAAG,AAAU,SAAD;AAMH,UAL7B,AAAiB,gBAAD,OAAK,oBACjB,AAAS,AAAkB,SAAlB,mBAAC,eAAe,MACzB,AAAS,SAAA,mBAAC,WAAW,IACrB,AAAS,SAAA,mBAAC,eAAe,IACzB,MAAM,EACN,AAAiB,gBAAD;AACqB,UAAzC,AAAQ,OAAD,OAAK,AAAS,AAAkB,SAAlB,mBAAC,eAAe;AACpB,UAAjB,kBAAA,AAAe,eAAA;AACF,UAAb,cAAA,AAAW,WAAA;;AAEb,cAAgB,EAAC,gBAAgB,EAAE,OAAO;MAC5C;sBAGwD,WAC1C,UAAoB;AAChB,yBAAkB;AACxB,mBAA4B,aAArB,AAAU,SAAD,4BAAc,AAAU,SAAD;AACjD,iBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAQ,OAAD,YAAS,IAAA,AAAC,CAAA;AACY,UAA/C,AAAW,UAAD,OAAwB,aAAnB,AAAQ,QAAA,mBAAC,AAAE,CAAD,GAAG,IAAI,mBAAI,AAAO,OAAA,QAAC,CAAC;;AAE/C,cAAO,WAAU;MACnB;4BAIoC,WACtB,YACA,WACyB,WACD;AAChC,iCAA0C,AAAmB,aAAxC,AAAU,SAAD,4BAAc,AAAU,SAAD,WAAU;AAC/D,6BAAiB;AACoB,kCACP;AACd,sBAAmB;AACvC,eAAO,AAAmB,kBAAD,gBAAG,AAAU,SAAD;AAQpB,UAPf,AAAoB,mBAAD,OAAK,oBACpB,AAAS,AAAqB,SAArB,mBAAC,kBAAkB,MACwB,aAApD,AAAU,UAAA,mBAAC,AAAe,cAAD,IAAqB,aAAjB,AAAU,SAAD,WAAU,qBAC5C,AAAS,SAAA,mBAAC,cAAc,KAC5B,AAAS,SAAA,mBAAC,kBAAkB,IAC5B,MAAM,EACN,AAAoB,mBAAD,WACnB,SAAS;AAC+B,UAA5C,AAAQ,OAAD,OAAK,AAAS,AAAqB,SAArB,mBAAC,kBAAkB;AACpB,UAApB,qBAAA,AAAkB,kBAAA;AACF,UAAhB,iBAAA,AAAc,cAAA;;AAEhB,cAAgB,EAAC,mBAAmB,EAAE,OAAO;MAC/C;;;;UA9WU;UACC;UACA;UACA;UACM;UACN;UACC;UACe;UACE;UAClB;UACF;UACU;UACR;UACD;UACC;UACH;UACA;UACA;UACE;UACC;UACE;UACH;UACA;MACQ,sBAAc,KAAZ,WAAW,QAAX,OAAe;MAClB,qBAAa,MAAX,UAAU,SAAV,OAAc;MACb,wBAAgB,OAAd,aAAa,UAAb,OAAwB;MAC1B,wBAAgB,OAAd,aAAa,UAAb,OAAiB;MACxB,mBAAW,OAAT,QAAQ,UAAR,OAAqB;MACT,iCAAyB,OAAvB,sBAAsB,UAAtB,OAAiC;MACnC,iCAAyB,OAAvB,sBAAsB,UAAtB,OAAiC;AAC1D,yDACe,SAAS,aACT,SAAS,aACT,SAAS,cACR,UAAU,aACX,SAAS,qBACD,iBAAiB,cACxB,UAAU,gBACR,YAAY,oBACR,gBAAgB,QAC5B,IAAI,qBACS,iBAAiB,kBACpB,cAAc,kBACd,cAAc,mBACb,eAAe,mBACf,eAAe,UACxB,MAAM;;IAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MCUb;;;;;;MAiBC;;;;;;8BAI2B,WAA4B;AACH,QAA/D,AAAU,SAAD,kBAAoD;AAEG,QADhE,AAAU,SAAD,uBAAsB,SAAS,EAAE,YACtC,AAAU,SAAD,kBAAkB,AAAU,SAAD,kBAAkB,KAAK;AAE1B,QADrC,2BAAqB,SAAS,EAAE,cAAc,AAAU,SAAD,kBACnD,AAAU,SAAD,kBAAkB,KAAK;MACtC;wBAGyD;AACd,+BACP;AACO,mCACP;AACO,wBAAY,AAAU,SAAD;AAC1C,4BAAyB;AACzB,sBAAmB;AACnC;AAEJ,sBAAI,AAAU,SAAD;AAC6B,6BACpC,AAAU,AAAa,SAAd,uBAAe;AACY,4BACpC,AAAU,AAAa,SAAd,uBAAe;AAClB,uBAAS,AAAU,SAAD;AAC5B,cAAqB,aAAjB,AAAU,SAAD,2BAAW,AAAU,SAAD,YAA4B,aAAjB,AAAU,SAAD,WAAU;AAC7D,qBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAU,SAAD,YAAS,IAAA,AAAC,CAAA;AAEuB,cAD5D,AAAqB,oBAAD,OAAK,oBAAc,AAAS,AAAI,SAAJ,QAAC,CAAC,KAAK,KACnD,AAAS,SAAA,QAAC,CAAC,GAAG,WAAW,EAAE,AAAqB,oBAAD;AAClB,cAAjC,AAAc,aAAD,OAAK,AAAS,AAAI,SAAJ,QAAC,CAAC;AAC7B,oBAAM,AAAE,CAAD,gBAAG,MAAM;AAKP,wBAJP,gBAGuC,WAHuB,WAArD,AAAS,AAAI,AAAM,SAAV,QAAC,CAAC,WAAW,OAAO,IAAI,AAAS,AAAI,SAAJ,QAAC,CAAC,eAChD,AAAS,AAAa,AAAM,SAAnB,mBAAC,AAAE,CAAD,gBAAG,MAAM,aAAW,OAC1B,IACA,AAAS,AAAa,SAAb,mBAAC,AAAE,CAAD,gBAAG,MAAM,mBAC1B;AAEqD,gBADzD,AAAiB,gBAAD,OAAK,oBAAc,AAAS,AAAI,SAAJ,QAAC,CAAC,KAAK,KAAK,EACpD,AAAS,SAAA,QAAC,CAAC,GAAG,YAAY,EAAE,AAAiB,gBAAD;AACrB,gBAA3B,AAAQ,OAAD,OAAK,AAAS,AAAI,SAAJ,QAAC,CAAC;;;;AAIa,UAA1C,AAAU,SAAD,kBAAiB,gBAAgB;AAE2B,UADrE,sBACI,gBAAgB,EAAE,SAAS,EAAE,OAAO,EAAE,AAAU,AAAa,SAAd,uBAAe;AAEnC,UAD/B,sBAAgB,oBAAoB,EAAE,SAAS,EAAE,aAAa,EAC1D,AAAU,AAAa,SAAd,uBAAe;;MAEhC;;;;UAhIO;UACE;UACA;UACA;UACM;UACN;UACC;UACe;UACE;UACA;UACA;UACA;UAClB;UACF;UACU;UACR;UACD;UACC;UACH;UACQ;UACC;MACO,0BAAkB,KAAhB,eAAe,QAAf,OAA0B;MAC5B,0BAAkB,MAAhB,eAAe,SAAf,OAAmB;AACrC,6DACe,SAAS,aACT,SAAS,aACT,SAAS,cACR,UAAU,aACX,SAAS,qBACD,iBAAiB,cACxB,UAAU,gBACR,YAAY,mBACT,eAAe,kBAChB,cAAc,mBACb,eAAe,oBACd,gBAAgB,QAC5B,IAAI,qBACS,iBAAiB,kBACpB,cAAc,kBACd,cAAc,mBACb,eAAe,mBACf,eAAe,UACxB,MAAM;;IAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MCmCd;;;;;;MAiBE;;;;;;MAiBA;;;;;;MAiBD;;;;;;MAiBC;;;;;;MAiBD;;;;;;MAiBC;;;;;;MAiBD;;;;;;MAiBC;;;;;;MAiBH;;;;;;MAiBA;;;;;;8BAIgC,WAA4B;AACL,QAA/D,AAAU,SAAD,kBAAoD;AAEG,QADhE,AAAU,SAAD,uBAAsB,SAAS,EAAE,aACtC,AAAU,SAAD,kBAAkB,AAAU,SAAD,kBAAkB,KAAK;AAE1B,QADrC,2BAAqB,SAAS,EAAE,cAAc,AAAU,SAAD,kBACnD,AAAU,SAAD,kBAAkB,KAAK;AACpC,sBAAI;AAEkC,UADpC,2BAAqB,SAAS,EAAE,aAAa,AAAU,SAAD,iBAClD,AAAU,SAAD,iBAAiB,KAAK;AAEC,UADpC,2BAAqB,SAAS,EAAE,aAAa,AAAU,SAAD,iBAClD,AAAU,SAAD,iBAAiB,KAAK;;MAEvC;wBAG2D;AACtB,+BACD;AACO,8BACP;AACO,8BACP;AACC,qBACD;AACC,+BACD;AACO,wBAAY,AAAU,SAAD;AAC1C,sBAAmB;AACzB;AAAY;AAAS;AACnC,sBAAI,AAAU,SAAD,kBACQ,aAAjB,AAAU,SAAD,2BAAW,AAAU,SAAD,YACZ,aAAjB,AAAU,SAAD,WAAU;AACrB,wBAAI,AAAU,SAAD;AACX,qBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAU,SAAD,YAAS,IAAA,AAAC,CAAA;AAMT,cAL5B,AAAgB,eAAD,OAAK,oBAChB,AAAS,AAAI,SAAJ,QAAC,CAAC,KACX,AAAU,SAAD,aACT,AAAS,SAAA,QAAC,CAAC,GACX,AAAU,AAAa,SAAd,uBAAe,IACxB,AAAgB,eAAD;AAMS,cAL5B,AAAgB,eAAD,OAAK,oBAChB,AAAS,AAAI,SAAJ,QAAC,CAAC,KACX,AAAU,SAAD,WACT,AAAS,SAAA,QAAC,CAAC,GACX,AAAU,AAAa,SAAd,uBAAe,IACxB,AAAgB,eAAD;AACQ,cAA3B,AAAQ,OAAD,OAAK,AAAS,AAAI,SAAJ,QAAC,CAAC;;;AAII,UAD/B,SAAS,uBAAiB,AAAU,SAAD,SAAS,AAAU,SAAD,UAAU,SAAS,EACpE,AAAU,AAAa,SAAd,uBAAe;AAEW,UADvC,aAAa,6BAAuB,AAAU,SAAD,SAAS,AAAU,SAAD,UAC3D,MAAM,EAAE,AAAU,AAAa,SAAd,uBAAe;AACJ,6BAAhC,mCAAmB,AAAU,UAAA,QAAC;AACP,oBAAvB,iBAAU,AAAU,UAAA,QAAC;AAKU,UAJ/B,aAAa,6BACQ,AAAoB,aAArC,AAAU,SAAD,wBAAU,AAAU,SAAD,YAAW,GACvC,AAAU,SAAD,UACT,MAAM,EACN,AAAU,AAAa,SAAd,uBAAe;AACI,6BAAhC,mCAAmB,AAAU,UAAA,QAAC;AACP,oBAAvB,iBAAU,AAAU,UAAA,QAAC;;AAEmB,QAA1C,AAAU,SAAD,kBAAiB,gBAAgB;AAE2B,QADrE,sBACI,gBAAgB,EAAE,SAAS,EAAE,OAAO,EAAE,AAAU,AAAa,SAAd,uBAAe;AAEG,QADrE,sBACI,gBAAgB,EAAE,SAAS,EAAE,OAAO,EAAE,AAAU,AAAa,SAAd,uBAAe;AAClE,sBAAI,AAAU,SAAD;AAEyD,UADpE,sBACI,eAAe,EAAE,SAAS,EAAE,OAAO,EAAE,AAAU,AAAa,SAAd,uBAAe;AAEG,UADpE,sBACI,eAAe,EAAE,SAAS,EAAE,OAAO,EAAE,AAAU,AAAa,SAAd,uBAAe;;MAErE;+BAGQ,QACA,SAC+B,MACD;AACK,8BACP;AACd,sBAAmB;AACvC,YAAgB,aAAZ,AAAK,IAAD,cAAkB,aAAP,MAAM,iBAAG,OAAO,KAAY,aAAR,OAAO,IAAG;AACrC,sBAAe,aAAP,MAAM,KAAY,aAAR,OAAO,IAAG;AACtB,qBAAY;AACZ,uBAAc;AAC9B,mBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAK,IAAD,YAAS,IAAA,AAAC,CAAA;AACtB,wCAAQ,AAAI,AAAI,IAAJ,QAAC,CAAC;AACT,YAAf,AAAK,IAAD,OAAK,KAAK;;AAEZ,uBAAS,AAAK,IAAD;AACjB,iBAAc,aAAP,MAAM,KAAI,KAAK;AAChB,sBAAM;AACV,yBAAS,WAAW,aAAP,MAAM,IAAG,IAAG,AAAE,CAAD,GAAW,AAAU,aAAjB,MAAM,iBAAG,OAAO,IAAG,GAAI,IAAA,AAAC,CAAA;AACjC,cAAnB,MAAM,AAAI,GAAD,gBAAG,AAAI,IAAA,QAAC,CAAC;;AAED,YAAnB,MAAM,AAAI,GAAD,gBAAG,OAAO;AACN,uBAAO,AAAI,GAAD,mBAAiB;AACV,YAA9B,AAAO,MAAD,OAAY,kBAAM,IAAI;AACN,YAAtB,AAAK,IAAD,eAAa,GAAG;AACA,YAApB,SAAS,AAAK,IAAD;;AAEL,oBAAM,AAAM,KAAD,GAAG;AACxB,mBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAK,IAAD,YAAS,IAAA,AAAC,CAAA;AAChC,kBAAM,AAAE,CAAD,GAAG,GAAG;AAE+B,cAD1C,AAAgB,eAAD,OAAK,oBAAc,AAAI,AAAI,IAAJ,QAAC,CAAC,KAAK,AAAM,MAAA,mBAAC,AAAE,CAAD,GAAG,GAAG,IAAG,AAAI,IAAA,QAAC,CAAC,GAChE,YAAY,EAAE,AAAgB,eAAD;AACX,cAAtB,AAAQ,OAAD,OAAK,AAAI,AAAI,IAAJ,QAAC,CAAC;AACS,cAA3B,AAAI,AAAI,IAAJ,QAAC,CAAC,MAAM,AAAM,MAAA,mBAAC,AAAE,CAAD,GAAG,GAAG;;;;AAKhC,cAAgB,EAAC,eAAe,EAAE,OAAO;MAC3C;yBAGQ,QACA,SAC+B,MACD;AACpB,uBAAW,gBAAU,AAAK,IAAD;AACzB,wBAAY,gBAAU,AAAK,IAAD;AAC1B,yBAAa,gBAAU,AAAK,IAAD;AACF,6BACP;AAElC,iBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAK,IAAD,YAAS,IAAA,AAAC,CAAA;AACmB,UAAnD,AAAQ,QAAA,QAAC,CAAC,EAAwB,gBAApB,AAAI,AAAI,AAAI,IAAR,QAAC,CAAC,SAAS,OAAO,IAAI,AAAI,AAAI,IAAJ,QAAC,CAAC;AACQ,UAAtD,AAAS,SAAA,QAAC,CAAC,EAAyB,gBAArB,AAAI,AAAI,AAAK,IAAT,QAAC,CAAC,UAAU,OAAO,IAAI,AAAI,AAAI,IAAJ,QAAC,CAAC;AACS,UAAzD,AAAU,UAAA,QAAC,CAAC,EAA0B,gBAAtB,AAAI,AAAI,AAAM,IAAV,QAAC,CAAC,WAAW,OAAO,IAAI,AAAI,AAAI,IAAJ,QAAC,CAAC;;AAEpD,YAAgB,aAAZ,AAAK,IAAD,0BAAU,MAAM;AACN,qBAAY;AACZ,qBAAY;AAC5B,mBAAS,IAAI,GAAG,AAAE,CAAD,GAAU,aAAP,MAAM,IAAG,GAAK,IAAF,AAAE,CAAC,GAAH;AACnB,YAAX,AAAK,IAAD,OAAK;AACE,YAAX,AAAK,IAAD,OAAK;AAE6D,YADtE,AAAe,cAAD,OAAK,oBACf,AAAI,AAAI,IAAJ,QAAC,CAAC,KAAK,AAAI,AAAI,IAAJ,QAAC,CAAC,SAAS,AAAI,IAAA,QAAC,CAAC,GAAG,MAAM,EAAE,AAAe,cAAD;;AAE3D;AAAK;AACT,uBAAS,WAAW,aAAP,MAAM,IAAG,IAAG,AAAE,CAAD,gBAAG,AAAK,IAAD,YAAW,IAAF,AAAE,CAAC,GAAH;AACxC,qBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,MAAM,GAAI,IAAF,AAAE,CAAC,GAAH;AACH,cAAvB,AAAI,GAAD,IAAC,OAAJ,MAAQ,AAAQ,QAAA,QAAC,AAAE,CAAD,GAAG,CAAC,IAAlB;AACoB,cAAxB,AAAI,GAAD,IAAC,OAAJ,MAAQ,AAAS,SAAA,QAAC,AAAE,CAAD,GAAG,CAAC,IAAnB;AACgC,cAApC,MAAM,mBAAS,GAAG,EAAE,AAAQ,QAAA,QAAC,AAAE,CAAD,GAAG,CAAC;AACG,cAArC,MAAM,mBAAS,GAAG,EAAE,AAAS,SAAA,QAAC,AAAE,CAAD,GAAG,CAAC;;AAExB,YAAb,AAAK,IAAD,OAAK,GAAG;AACC,YAAb,AAAK,IAAD,OAAK,GAAG;AACF,YAAV,MAAM;AACI,YAAV,MAAM;;AAGR,uBAAS,WAAW,aAAP,MAAM,IAAG,IAAG,AAAE,CAAD,gBAAG,AAAK,IAAD,YAAW,IAAF,AAAE,CAAC,GAAH;AACpC,sBAAM;AACN,yBAAS;AACiB,YAA9B,MAAA,AAAI,GAAD,IAAkB,aAAd,AAAU,UAAA,QAAC,CAAC,kBAAI,AAAI,IAAA,QAAC,CAAC;AACF,YAA3B,SAAA,AAAO,MAAD,IAAY,aAAR,AAAI,IAAA,QAAC,CAAC,kBAAI,AAAI,IAAA,QAAC,CAAC;AAEkB,YAD5C,AAAe,cAAD,OAAK,oBAAc,AAAI,AAAI,IAAJ,QAAC,CAAC,KAAM,AAAI,AAAU,GAAX,GAAG,MAAM,GAAI,KACzD,AAAI,IAAA,QAAC,CAAC,GAAG,MAAM,EAAE,AAAe,cAAD;;;AAGvC,cAAO,eAAc;MACvB;;;;UAlaU;UACC;UACA;UACA;UACM;UACN;UACC;UACe;UACE;UACA;UACA;UACA;UAClB;UACF;UACU;UACR;UACD;UACC;UACH;UACC;UACE;UACA;UACK;UACC;UACD;UACC;UACD;UACC;UACT;UACA;MACQ,qBAAY,KAAV,SAAS,QAAT,OAAa;MACd,sBAAa,MAAX,UAAU,SAAV,OAAc;MAClB,oBAAW,OAAT,QAAQ,UAAR,OAAY;MACf,kBAAU,OAAR,OAAO,UAAP,OAAW;MACb,kBAAU,OAAR,OAAO,UAAP,OAAW;MACN,0BAAiB,OAAf,cAAc,UAAd,OAAyB;MAC3B,0BAAiB,OAAf,cAAc,UAAd,OAAkB;MACpB,0BAAiB,OAAf,cAAc,UAAd,OAAyB;MAC3B,0BAAiB,OAAf,cAAc,UAAd,OAAkB;MACnB,0BAAkB,OAAhB,eAAe,UAAf,OAA0B;MAC5B,0BAAkB,OAAhB,eAAe,UAAf,OAAmB;AACrC,+DACe,SAAS,aACT,SAAS,aACT,SAAS,cACR,UAAU,aACX,SAAS,qBACD,iBAAiB,cACxB,UAAU,gBACR,YAAY,mBACT,eAAe,kBAChB,cAAc,mBACb,eAAe,oBACd,gBAAgB,QAC5B,IAAI,qBACS,iBAAiB,kBACpB,cAAc,kBACd,cAAc,mBACb,eAAe,mBACf,eAAe,UACxB,MAAM;;IAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICJZ;;;;;;IAmBA;;;;;;IAmBA;;;;;;IAmBA;;;;;;IAmBA;;;;;;IAmBM;;;;;;IAmBR;;;;;;IAmBC;;;;;;IAmBC;;;;;;IAmBA;;;;;;IAmBF;;;;;;IAmBU;;;;;;IAmBD;;;;;;IAmBP;;;;;;IAmBQ;;;;;;IAmBV;;;;;;IAqBD;;;;;;IAqBA;;;;;;IAKM;;;;;;IACF;;;;;;IAED;;;;;;iBAeD,GACA,GACqB,aACK,QAC9B;AAC6B,uBAC/B,mCAA6B,CAAC,EAAE,CAAC;AAG9B,MAFP,AAAW,UAAD,KAAoB,uBAAd,AAAO,MAAD,aACP,6DAA6B,WAAF,CAAC,mBACrC,CAAC;AACS,MAAhB,AAAW,UAAD,KAAK,CAAC;AACK,MAArB,AAAW,UAAD,UAAU,CAAC;AACsB,MAA3C,AAAW,UAAD,oBAAoB,AAAQ;AAEjB,MAArB,AAAW,UAAD,UAAU,CAAC;AACM,MAA3B,AAAW,UAAD,aAAa;AACyC,MAAhE,AAAO,MAAD,cAAa,mBAAS,AAAO,MAAD,6BAAY,AAAW,UAAD;AACQ,MAAhE,AAAO,MAAD,cAAa,mBAAS,AAAO,MAAD,6BAAY,AAAW,UAAD;AACQ,MAAhE,AAAO,MAAD,cAAa,mBAAS,AAAO,MAAD,6BAAY,AAAW,UAAD;AACQ,MAAhE,AAAO,MAAD,cAAa,mBAAS,AAAO,MAAD,6BAAY,AAAW,UAAD;AACxD,YAAO,WAAU;IACnB;oBAIuC,QAC3B,SACA,SAC0B,QAClB;AACd;AAAU;AAC2B,gBACP;AAClC,UAAkB,uBAAd,AAAO,MAAD;AAEyC,QADjD,WAAW,2DACP,AAAO,MAAD,4BAAgB,WAAP,OAAO,WAAC,MAAI,cAAC;AAEgC,QADhE,WAAW,2DACP,AAAO,MAAD,4BAAgB,WAAP,OAAO,WAAgB,WAAP,WAAR,OAAO,mBAAU,QAAI;;AAER,mBAAxC,gBAAsB,WAAJ,WAAP,OAAO,WAAC,WAAK;AACgC,mBAAxD,gBAAuC,WAArB,WAAP,OAAO,WAAgB,WAAP,WAAR,OAAO,mBAAU,aAAK;;AAEjC,qBACqB,AAAW,aAAtC,AAAqB,oBAAD,uBAAS,QAAQ,iBAAG,AAAqB,oBAAD;AACtD,qBACqB,AAAW,aAAtC,AAAqB,oBAAD,uBAAS,QAAQ,iBAAG,AAAqB,oBAAD;AACQ,MAAxE,AAAI,GAAD,OAAK,kBAAa,QAAQ,EAAE,QAAQ,EAAE,AAAM,MAAA,QAAC,IAAI,MAAM,EAAE,AAAI,GAAD;AAEQ,MADvE,AAAI,GAAD,OAAK,kBACJ,QAAQ,EAAE,QAAQ,EAAE,AAAM,MAAA,QAAe,aAAd,AAAO,MAAD,aAAU,IAAI,MAAM,EAAE,AAAI,GAAD;AAC9D,YAAO,IAAG;IACZ;sBAEwD,QAClB;;AAChB,oBAAmB;AACnB,oBAAmB;AACnC,kBAAQ;AACZ,aAAO,AAAM,KAAD,gBAAG,AAAO,MAAD;AACgB,oBAAQ,AAAM,MAAA,QAAC,KAAK;AACnB,QAApC,AAAQ,OAAD,QAAkB,KAAb,AAAM,KAAD,eAAC,OAAU,AAAM,KAAD;AACjC,cAAa,0BAAP,MAAM,KACD,4BAAP,MAAM,KACC,qBAAP,MAAM,KACC,8BAAP,MAAM,KACC,uBAAP,MAAM;AAC4B,UAApC,AAAQ,OAAD,QAAkB,MAAb,AAAM,KAAD,gBAAC,OAAU,AAAM,KAAD;;AAEsC,UAAvE,AAAQ,OAAD,OAAK,AAAW,AAAc,oCAAG,QAAQ,AAAM,KAAD,OAAO,AAAM,KAAD;;AAE5D,QAAP,QAAA,AAAK,KAAA;;AAEuD,MAA9D,sBAAiB,0BAAoB,OAAO,EAAE,OAAO,EAAE,MAAM;AAEQ,MADrE,oBACI,qBAAgB,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE;IACxD;yBAIuC,QAC3B,SACA,SAC0B,QAClB;AACd;AAAI;AAAI;AACF,qBAA+B,CAAL,aAAd,AAAO,MAAD,aAAU;AACG,oBACP;AAClC,UAAkB,uBAAd,AAAO,MAAD;AAEyC,QADjD,KAAK,2DACD,AAAO,MAAD,4BAAgB,WAAP,OAAO,WAAC,MAAI,cAAC;AACN,aAA1B,gBAAY,WAAP,OAAO,WAAC,AAAS,QAAD,GAAG;AAEwC,QADhE,KAAK,2DACD,AAAO,MAAD,4BAAgB,WAAP,OAAO,WAAgB,WAAP,WAAR,OAAO,mBAAU,QAAI;;AAEd,aAAlC,gBAAgB,WAAJ,WAAP,OAAO,WAAC,WAAK;AACQ,aAA1B,gBAAY,WAAP,OAAO,WAAC,AAAS,QAAD,GAAG;AAC0B,aAAlD,gBAAiC,WAArB,WAAP,OAAO,WAAgB,WAAP,WAAR,OAAO,mBAAU,aAAK;;AAE3B,eACuB,aAA7B,AAAmB,kBAAD,cAAa,SAAkC,aAAzB,AAAmB,kBAAD,uBAAS,EAAE;AAE/D,eACuB,aAA7B,AAAmB,kBAAD,cAAa,SAAkC,aAAzB,AAAmB,kBAAD,uBAAS,EAAE;AAE/D,eACuB,aAA7B,AAAmB,kBAAD,cAAa,SAAkC,aAAzB,AAAmB,kBAAD,uBAAS,EAAE;AACL,MAApE,AAAQ,OAAD,OAAK,kBAAa,EAAE,EAAE,EAAE,EAAE,AAAM,MAAA,QAAC,IAAI,MAAM,EAAE,AAAQ,OAAD;AAEY,MADvE,AAAQ,OAAD,OACH,kBAAa,EAAE,EAAE,EAAE,EAAE,AAAM,MAAA,mBAAC,AAAS,QAAD,GAAG,KAAI,MAAM,EAAE,AAAQ,OAAD;AAEC,MAD/D,AAAQ,OAAD,OAAK,kBACR,EAAE,EAAE,EAAE,EAAE,AAAM,MAAA,QAAe,aAAd,AAAO,MAAD,aAAU,IAAI,MAAM,EAAE,AAAQ,OAAD;AACtD,YAAO,QAAO;IAChB;2BAE6D,QACvB;;AAChB,oBAAmB;AACnB,oBAAmB;AACnC,kBAAQ;AACZ,aAAO,AAAM,KAAD,gBAAG,AAAO,MAAD;AACgB,oBAAQ,AAAM,MAAA,QAAC,KAAK;AACnB,QAApC,AAAQ,OAAD,QAAkB,KAAb,AAAM,KAAD,eAAC,OAAU,AAAM,KAAD;AACjC,cAAa,0BAAP,MAAM,KACD,4BAAP,MAAM,KACC,qBAAP,MAAM,KACC,8BAAP,MAAM,KACC,uBAAP,MAAM;AACsC,UAA9C,AAAQ,OAAD,OAAK,0BAAsB,MAAb,AAAM,KAAD,gBAAC,OAAU,AAAM,KAAD;;AAIf,UAF3B,AAAQ,OAAD,OAAK,AAAW,AAAc,oCAAG,QAClC,yBAAS,AAAM,KAAD,SACd,yBAAS,AAAM,KAAD;AACf,QAAP,QAAA,AAAK,KAAA;;AAEuD,MAA9D,sBAAiB,0BAAoB,OAAO,EAAE,OAAO,EAAE,MAAM;AAEa,MAD1E,oBACI,0BAAqB,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE;IAC7D;mBAIuC,QAC3B,SACA,SAC0B,QAClB;AACd;AAAI;AAAI;AACF,qBAA+B,CAAL,aAAd,AAAO,MAAD,aAAU;AACG,mBACP;AAClC,UAAkB,uBAAd,AAAO,MAAD;AAEyC,QADjD,KAAK,2DACD,AAAO,MAAD,4BAAgB,WAAP,OAAO,WAAC,MAAI,cAAC;AACN,aAA1B,gBAAY,WAAP,OAAO,WAAC,AAAS,QAAD,GAAG;AAEwC,QADhE,KAAK,2DACD,AAAO,MAAD,4BAAgB,WAAP,OAAO,WAAgB,WAAP,WAAR,OAAO,mBAAU,QAAI;;AAEd,aAAlC,gBAAgB,WAAJ,WAAP,OAAO,WAAC,WAAK;AACG,QAArB,KAAQ,aAAH,EAAE,IAAG,CAAC,IAAI,EAAE,GAAG;AACM,aAA1B,gBAAY,WAAP,OAAO,WAAC,AAAS,QAAD,GAAG;AAC0B,aAAlD,gBAAiC,WAArB,WAAP,OAAO,WAAgB,WAAP,WAAR,OAAO,mBAAU,aAAK;;AAE3B,eAAK,AAAG,EAAD,KAAI,IACf,IAC4B,aAA5B,AAAkB,iBAAD,cAAa,SAAS,EAAE,EAAE,AAAkB,iBAAD;AACxD,eACsB,aAA5B,AAAkB,iBAAD,cAAa,SAAS,EAAE,EAAE,AAAkB,iBAAD;AACtD,eACsB,aAA5B,AAAkB,iBAAD,cAAa,SAAS,EAAE,EAAE,AAAkB,iBAAD;AACE,MAAlE,AAAO,MAAD,OAAK,kBAAa,EAAE,EAAE,EAAE,EAAE,AAAM,MAAA,QAAC,IAAI,MAAM,EAAE,AAAO,MAAD;AAEkB,MAD3E,AACK,MADC,OACG,kBAAa,EAAE,EAAE,EAAE,EAAE,AAAM,MAAA,mBAAC,AAAS,QAAD,GAAG,KAAI,MAAM,EAAE,AAAO,MAAD;AAES,MAD3E,AAAO,MAAD,OACF,kBAAa,EAAE,EAAE,EAAE,EAAE,AAAM,MAAA,QAAe,aAAd,AAAO,MAAD,aAAU,IAAI,MAAM,EAAE,AAAO,MAAD;AAClE,YAAO,OAAM;IACf;qBAEuD,QACjB;;AAChB,oBAAmB;AACnB,oBAAmB;AACnB,wBAAuB;AACvC,kBAAQ;AACZ,aAAO,AAAM,KAAD,gBAAG,AAAO,MAAD;AACgB,oBAAQ,AAAM,MAAA,QAAC,KAAK;AACf,QAAxC,AAAY,WAAD,QAAkB,KAAb,AAAM,KAAD,eAAC,OAAU,AAAM,KAAD;AACvB,mBACV,AAAM,AAAe,KAAhB,WAAW,QAAS,AAAwB,yBAAf,AAAM,KAAD,uBACjC,yBAAS,AAAM,KAAD,YACL,OAAR,AAAM,KAAD,iBAAgB,AAAM,KAAD,UAAU,AAAM,KAAD;AACnC,QAAjB,AAAQ,OAAD,OAAK,IAAI;AAChB,cAAa,0BAAP,MAAM,KACD,4BAAP,MAAM,KACC,qBAAP,MAAM,KACC,8BAAP,MAAM,KACC,uBAAP,MAAM;AACsC,UAA9C,AAAQ,OAAD,OAAK,0BAAsB,MAAb,AAAM,KAAD,gBAAC,OAAU,AAAM,KAAD;;AAIf,UAF3B,AAAQ,OAAD,OAAK,AAAW,AAAc,oCAAG,QAClC,yBAAS,AAAM,KAAD,SACd,yBAAS,AAAM,KAAD;AACf,QAAP,QAAA,AAAK,KAAA;;AAEuD,MAA9D,sBAAiB,0BAAoB,OAAO,EAAE,OAAO,EAAE,MAAM;AAEW,MADxE,oBACI,oBAAe,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE;IAC3D;yBAIuC,QAC3B,SACA,SAC0B,QAClB;AACd;AAAI;AAAI;AACF,qBAA+B,CAAL,aAAd,AAAO,MAAD,aAAU;AACG,mBACP;AAClC,UAAkB,uBAAd,AAAO,MAAD;AAEyC,QADjD,KAAK,2DACD,AAAO,MAAD,4BAAgB,WAAP,OAAO,WAAC,MAAI,cAAC;AACN,aAA1B,gBAAY,WAAP,OAAO,WAAC,AAAS,QAAD,GAAG;AAEwC,QADhE,KAAK,2DACD,AAAO,MAAD,4BAAgB,WAAP,OAAO,WAAgB,WAAP,WAAR,OAAO,mBAAU,QAAI;;AAEd,aAAlC,gBAAgB,WAAJ,WAAP,OAAO,WAAC,WAAK;AACQ,aAA1B,gBAAY,WAAP,OAAO,WAAC,AAAS,QAAD,GAAG;AAC0B,aAAlD,gBAAiC,WAArB,WAAP,OAAO,WAAgB,WAAP,WAAR,OAAO,mBAAU,aAAK;;AAE3B,eAAiC,aAA5B,AAAkB,iBAAD,cACH,aAAxB,AAAkB,iBAAD,uBACZ,AAAc,SAAL,EAAE,eAAc,SAAS,EAAE,IAAI,EAAE;AAC1C,eAAiC,aAA5B,AAAkB,iBAAD,cACH,aAAxB,AAAkB,iBAAD,uBACZ,AAAc,SAAL,EAAE,eAAc,SAAS,EAAE,IAAI,EAAE;AAC1C,eAAiC,aAA5B,AAAkB,iBAAD,cACH,aAAxB,AAAkB,iBAAD,uBACZ,AAAc,SAAL,EAAE,eAAc,SAAS,EAAE,IAAI,EAAE;AACc,MAAlE,AAAO,MAAD,OAAK,kBAAa,EAAE,EAAE,EAAE,EAAE,AAAM,MAAA,QAAC,IAAI,MAAM,EAAE,AAAO,MAAD;AAEkB,MAD3E,AACK,MADC,OACG,kBAAa,EAAE,EAAE,EAAE,EAAE,AAAM,MAAA,mBAAC,AAAS,QAAD,GAAG,KAAI,MAAM,EAAE,AAAO,MAAD;AAES,MAD3E,AAAO,MAAD,OACF,kBAAa,EAAE,EAAE,EAAE,EAAE,AAAM,MAAA,QAAe,aAAd,AAAO,MAAD,aAAU,IAAI,MAAM,EAAE,AAAO,MAAD;AAClE,YAAO,OAAM;IACf;2BAE6D,QACvB;;AAChB,sBAAqB;AACrB,sBAAqB;AACrB,uBAAsB;AACtC,kBAAQ;AACZ,aAAO,AAAM,KAAD,gBAAG,AAAO,MAAD;AACgB,oBAAQ,AAAM,MAAA,QAAC,KAAK;AAChB,QAAvC,AAAW,UAAD,QAAkB,KAAb,AAAM,KAAD,eAAC,OAAU,AAAM,KAAD;AACtB,mBACT,AAAM,AAAe,KAAhB,WAAW,QAAS,AAAwB,yBAAf,AAAM,KAAD,uBAClC,yBAAS,AAAM,KAAD,YACL,OAAR,AAAM,KAAD,iBAAgB,AAAM,KAAD,UAAU,AAAM,KAAD;AACjC,QAAnB,AAAU,SAAD,OAAK,IAAI;AAElB,cAAa,0BAAP,MAAM,KACD,4BAAP,MAAM,KACC,qBAAP,MAAM,KACC,8BAAP,MAAM,KACC,uBAAP,MAAM;AAC8B,UAAtC,AAAU,SAAD,QAAkB,MAAb,AAAM,KAAD,gBAAC,OAAU,AAAM,KAAD;;AAGiC,UADpE,AACK,SADI,OACA,AAAW,AAAc,oCAAG,QAAQ,AAAM,KAAD,OAAO,AAAM,KAAD;;AAEzD,QAAP,QAAA,AAAK,KAAA;;AAE2D,MAAlE,sBAAiB,0BAAoB,SAAS,EAAE,SAAS,EAAE,MAAM;AAEP,MAD1D,oBAAc,0BACV,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE;IAC7C;2BAIuC,QAC3B,SACA,SAC0B;;AAE1B,qBAA+B,CAAL,aAAd,AAAO,MAAD,aAAU;AACxB,gBAAe;AACwB,MAArD,wBAAmB,cAA8B,aAAhB,wBAAkB;AAEnD,eAAS,IAAI,GAAG,AAAE,CAAD,gCAAW,WAAR,OAAO,eAAS,IAAA,AAAC,CAAA;AACrB,mBAAc,WAAP,OAAO,WAAC,CAAC;AAChB,mBAAc,WAAP,OAAO,WAAC,CAAC;AAC9B,iBAAS,IAAI,GAAG,AAAE,CAAD,iBAAI,uBAAiB,IAAA,AAAC,CAAA;AACZ,eAAzB;eAAiB,CAAC;UAAF,AAAI,iBAAA,OAAJ,cAAQ,KAAJ;AACiC,gBAArD;gBAAiB,CAAC;UAAF,gBAAI,WAAJ,uBAAO,AAAwB,yBAAf,WAAL,IAAI,oBAAa,CAAC,iCAAI,IAAI;;;AAIrC,qBAAW,cAAc,AAAE,AAAkB,iBAAhB,wBAAkB;AAC/C,mBAAS,cAA8B,aAAhB,wBAAkB;AAE7D,eAAS,IAAI,GAAG,AAAE,CAAD,iBAAI,uBAAiB,IAAA,AAAC,CAAA;AACS,QAA9C,AAAM,MAAA,QAAC,CAAC,EAAI,cAA8B,aAAhB,wBAAkB;AAE1C,iBAAO;AACX,eAAS,SAAS,GAAG,AAAO,MAAD,gCAAW,WAAR,OAAO,eAAS,SAAA,AAAM,MAAA;AACxC,gCAAW,WAAP,OAAO,WAAC,MAAM;AACxB,mBAAO;AACX,iBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAS,QAAD,YAAS,IAAA,AAAC,CAAA,MAAI,OAAA,AAAI,IAAA;AAC3B,iBAAjB,QAAQ;iBAAC,CAAC;UAAF,AAAI,qBAAA,OAAJ,kBAAQ,KAAJ;AACO,iBAAnB,QAAQ;iBAAC,CAAC;UAAF,kBAAI,WAAJ,yBAAO,IAAI;AACV,UAAT,OAAA,AAAK,IAAD,gBAAI,CAAC;;;AAIb,eAAS,IAAI,GAAG,AAAE,CAAD,iBAAI,uBAAiB,IAAA,AAAC,CAAA;AACrC,iBAAS,IAAI,GAAG,AAAE,CAAD,iBAAI,uBAAiB,IAAA,AAAC,CAAA;AACP,UAArB,WAAT,AAAM,MAAA,QAAC,CAAC,YAAE,CAAC,EAAI,AAAQ,QAAA,QAAC,AAAE,CAAD,GAAG,CAAC;;AAEjC,qBAAK,4BAAuB,MAAM,EAAE,yBAClC,AAAuB,wBAAJ;AAC4B,MAAjD,MAAM,eAAU,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM;AAChD,gDAAO,GAAG;IACZ;0BAE4D,QACtB;;AAChB,wBAAuB;AACvB,wBAAuB;AACvC,kBAAQ;AACZ,aAAO,AAAM,KAAD,gBAAG,AAAO,MAAD;AACgB,oBAAQ,AAAM,MAAA,QAAC,KAAK;AACf,QAAxC,AAAY,WAAD,QAAkB,KAAb,AAAM,KAAD,eAAC,OAAU,AAAM,KAAD;AACrC,cAAa,0BAAP,MAAM,KACD,4BAAP,MAAM,KACC,qBAAP,MAAM,KACC,8BAAP,MAAM,KACC,uBAAP,MAAM;AACgC,UAAxC,AAAY,WAAD,QAAkB,MAAb,AAAM,KAAD,gBAAC,OAAU,AAAM,KAAD;;AAG+B,UADpE,AACK,WADM,OACF,AAAW,AAAc,oCAAG,QAAQ,AAAM,KAAD,OAAO,AAAM,KAAD;AACzD,QAAP,QAAA,AAAK,KAAA;;AAG2D,MADlE,oBACI,2BAAqB,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM;IACnE;cAGuC,QAC3B,SACA,SAC0B;AAE1B,qBAA+B,CAAL,aAAd,AAAO,MAAD,aAAU;AAClB,8BAAoB;AACC,gBACP;AAE9B,eAAK;AACD;AACA;AACM,8BAAkC,uBAAd,AAAO,MAAD,aAClC,uBAAiB,AAAO,MAAD,WAAS,SAChC;AACQ,6BAAiC,uBAAd,AAAO,MAAD,aACjC,uBAAiB,AAAO,MAAD,WAAS,QAChC;AAEN,eAAS,QAAQ,GAAG,AAAM,KAAD,iBAAI,AAAkB,iBAAD,YAAS,QAAA,AAAK,KAAA;AAC1D,YAAI,AAAM,KAAD,KAAI;AACqC,UAAhD,OAAkB,WAAJ,WAAP,OAAO,WAAC,WAAuB,WAAlB,iBAAiB;AACc,UAAnD,OAAO,yBAAoB,iBAAiB,EAAE,IAAI;AACc,UAAhE,AAAI,GAAD,OAAK,kBAAa,IAAI,EAAE,IAAI,EAAE,AAAM,MAAA,QAAC,IAAI,MAAM,EAAE,AAAI,GAAD;cAClD,KAAI,AAAM,KAAD,KAAI,AAAkB,iBAAD;AAC4B,UAA/D,OAAkC,WAApB,WAAP,OAAO,WAAe,aAAd,AAAO,MAAD,aAAU,WAAsB,WAAjB,gBAAgB;AACD,UAAnD,OAAO,yBAAoB,iBAAiB,EAAE,IAAI;AAEa,UAD/D,AAAI,GAAD,OAAK,kBACJ,IAAI,EAAE,IAAI,EAAE,AAAM,MAAA,QAAe,aAAd,AAAO,MAAD,aAAU,IAAI,MAAM,EAAE,AAAI,GAAD;;AAEY,UAAlE,KAAA,AAAG,EAAD,GAAsC,CAAnB,aAAd,AAAO,MAAD,0BAAU,sCAAmB,AAAkB,iBAAD;AACvB,UAApC,OAA+B,WAAjB,WAAP,OAAO,WAAC,AAAG,AAAQ,EAAT,aAAW,WAAK;AACkB,UAAnD,OAAO,yBAAoB,iBAAiB,EAAE,IAAI;AAEU,UAD5D,AAAI,GAAD,OAAK,kBACJ,IAAI,EAAE,IAAI,EAAE,AAAM,MAAA,QAAC,AAAG,AAAQ,EAAT,aAAW,IAAI,MAAM,EAAE,AAAI,GAAD;;;AAGvD,YAAO,IAAG;IACZ;wBAEyC,QAAgB;AAChD,gBAAM;AACb,eAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,MAAD,YAAS,IAAA,AAAC,CAAA;AACN,QAA5B,MAAA,AAAI,GAAD,gCAAc,WAAV,AAAM,MAAA,QAAC,CAAC,SAAI,yBAAI,CAAC,GAAE,CAAC;;AAE7B,YAAO,IAAG;IACZ;2BAIuC,QACrB,SACA,SACoB;AACK,gBACP;AAC9B,oBAAiB,aAAP,6BAAU,AAAO,MAAD,aAAwB,aAAd,AAAO,MAAD,aAAU,IAAI;AACnC,MAAzB,UAAU,mBAAI,GAAG,OAAO;AACpB;AACI;AACJ;AACA;AACJ,eAAS,QAAQ,GAAG,AAAM,KAAD,GAAiB,aAAd,AAAO,MAAD,aAAU,GAAG,QAAA,AAAK,KAAA;AACzB,QAAzB,IAAI,QAAQ,YAAY;AACxB,iBAAS,IAAI,KAAK,EAAQ,aAAN,KAAK,iBAAG,OAAO,GAAE,IAAA,AAAC,CAAA;AAC7B,UAAP,QAAK,aAAL,KAAK;AACL,cAAI,AAAE,CAAD,iBAAI,AAAQ,OAAD,cAAW,AAAO,AAAI,OAAJ,QAAC,CAAC,KAAK;AAC5B,YAAX,YAAS,aAAT,SAAS;;AAE8B,UAAzC,IAAE,aAAF,CAAC,iBAAwB,gBAApB,AAAE,CAAD,iBAAI,AAAQ,OAAD,aAAU,IAAI,AAAO,OAAA,QAAC,CAAC;;AAEqB,QAA/D,IAAY,AAAY,aAApB,OAAO,iBAAG,SAAS,KAAI,IAAI,OAAS,aAAF,CAAC,KAAY,aAAR,OAAO,iBAAG,SAAS;AAC9D,YAAI,CAAC,IAAI,SAAS,AAAE,CAAD,YAAU,AAAM,AAAS,KAAV,gBAAG,eAAwB,aAAf,AAAQ,OAAD,aAAU;AAC7B,UAAhC,IAAI,AAAO,OAAA,QAAS,AAAI,aAAZ,OAAO,IAAG,IAAI,KAAK;AAE4B,UAD3D,AAAI,GAAD,OAAK,kBACJ,CAAC,EAAE,CAAC,EAAE,AAAM,MAAA,QAAS,AAAI,aAAZ,OAAO,IAAG,IAAI,KAAK,GAAG,MAAM,EAAE,AAAI,GAAD;;;AAGtD,YAAO,IAAG;IACZ;6BAE+D,QACzB;;AAChB,oBAAmB;AACnB,oBAAmB;AACnB,uBAAsB;AAE1C,eAAS,QAAQ,GAAG,AAAM,KAAD,gBAAG,AAAO,MAAD,YAAS,QAAA,AAAK,KAAA;AAChC,oBAAQ,AAAM,MAAA,QAAC,KAAK;AACK,QAAvC,AAAW,UAAD,QAAkB,KAAP,WAAN,KAAK,mBAAC,OAAgB,WAAN,KAAK;AACd,QAAtB,AAAQ,OAAD,OAAK,AAAM,KAAD,GAAG;AACpB,cAAa,0BAAP,MAAM,KACD,4BAAP,MAAM,KACC,qBAAP,MAAM,KACC,8BAAP,MAAM,KACC,uBAAP,MAAM;AAC4B,UAApC,AAAQ,OAAD,QAAkB,MAAP,WAAN,KAAK,oBAAC,OAAgB,WAAN,KAAK;;AAEsC,UAAvE,AAAQ,OAAD,OAAK,AAAW,AAAc,oCAAG,QAAc,WAAN,KAAK,WAAa,WAAN,KAAK;;;AAGI,MAAzE,oBAAc,4BAAuB,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM;IAC1E;0BAE4C,SAAiB,SACtB;AAC9B,iBAAO;AACP,iBAAO;AACP,kBAAQ;AACR,kBAAQ;AAEX,kBAAQ;AACL,kBAAQ;AACR,sBAAY;AACnB,aAAO,AAAM,KAAD,gBAAG,AAAO,MAAD;AACnB,uBAAqB,WAAT,WAAP,OAAO,WAAC,KAAK;AAC8C,UAAvD,WAAP,OAAO,WAAC,KAAK,EAA8C,WAAtB,WAAZ,WAAP,OAAO,WAAC,AAAM,KAAD,GAAG,WAAY,WAAP,OAAO,WAAC,AAAM,KAAD,GAAG,aAAM;;AAEzC,QAAtB,OAAA,AAAK,IAAD,gCAAW,WAAP,OAAO,WAAC,KAAK;AACC,QAAtB,OAAA,AAAK,IAAD,gCAAW,WAAP,OAAO,WAAC,KAAK;AACyC,QAA9D,QAAA,AAAM,KAAD,gCAA8B,WAAX,WAAR,WAAP,OAAO,WAAC,KAAK,2BAA8B,WAAR,WAAP,OAAO,WAAC,KAAK;AACY,QAA9D,QAAA,AAAM,KAAD,gCAA8B,WAAX,WAAR,WAAP,OAAO,WAAC,KAAK,2BAA8B,WAAR,WAAP,OAAO,WAAC,KAAK;AAE3C,QAAP,QAAA,AAAK,KAAA;;AAEP,UAAS,kBAAa,QACb,mBAAa,MACZ,YAAL,WAAsB,gCAAe,YAAL,WAAsB;AACpB,QAArC,YAAiB,AAAU;AAC3B,gBAAQ;;;AAEwC,YAA5C,QAAqC,CAA5B,AAAM,KAAD,GAAI,AAAU,SAAD,GAAG,IAAI,IAAK,KAAK;AAC5C;;;;AAE4D,YAA5D,QAAqD,CAA5C,AAAM,KAAD,GAAI,AAA0B,SAAjB,AAAU,SAAD,YAAU,IAAI,IAAK,KAAK;AAC5D;;;;AAEA;;;;AAIyC,QAD7C,QAAkD,CAA1B,AAAS,aAAvB,AAAO,MAAD,aAAU,KAAK,GAAK,AAAK,IAAD,GAAG,IAAI,KAC3B,AAAS,aAAvB,AAAO,MAAD,aAAU,KAAK,GAAK,AAAK,IAAD,GAAG,IAAI;AAC3C,YAAS,YAAL,WAAsB,qCAAoB,YAAL,WAAsB;AACA,UAA7D,YAAY,SAAiC,CAAvB,AAAK,IAAD,GAAI,AAAM,KAAD,GAAG,IAAI,iBAAK,AAAO,MAAD;;AAEF,UAAnD,YAAoC,CAAvB,AAAK,IAAD,GAAI,AAAM,KAAD,GAAG,IAAI,iBAAK,AAAO,MAAD;;;AAGhC;AACkB,MAAlC,iBAAiB;AACW,MAA5B,AAAe,cAAD,SAAS,KAAK;AACQ,MAApC,AAAe,cAAD,aAAa,SAAS;AACpC,YAAO,eAAc;IACvB;sBAGqB,OAAyC;AAC5D,oBAAI,AAAY;AACd,gBAAQ;;;AAEgC,YAApC,sBAAgB,mBAAa,MAAM;AACnC;;;;AAEyC,YAAzC,2BAAqB,mBAAa,MAAM;AACxC;;;;AAEmC,YAAnC,qBAAe,mBAAa,MAAM;AAClC;;;;AAEyC,YAAzC,2BAAqB,mBAAa,MAAM;AACxC;;;;AAEwC,YAAxC,0BAAoB,mBAAa,MAAM;AACvC;;;;AAE2C,YAA3C,6BAAuB,mBAAa,MAAM;AAC1C;;;;AAEA;;;;IAGR;6BAGsC,QAAyB;AAClD,iBAAO,4BAAqB,AAAM,AAAW,KAAZ,6BACxC,kBAAO,AAAO,AAAO,MAAR,sBAAoB,AAAO,AAAO,MAAR;AACxB,MAAnB,cAAiB;AACjB,UAAI,AAAO,MAAD,eAAe,QAAQ,qBAAe;AAC9C,iBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAY,6BAAQ,IAAA,AAAC,CAAA;AACvC,cAAI,AAAW,AAAI,yBAAH,CAAC,OAAO,QAAQ,AAAW,AAAI,yBAAH,CAAC,OAAO;AAC7B,oCAAoB,AAAW,AAAI,yBAAH,CAAC,gBAClD,uBAEQ,gBADW,uBAAd,AAAO,MAAD,aACD,AAAW,AAAI,yBAAH,CAAC,WACb,AAAW,AAAI,yBAAH,CAAC,sBACnB,AAAW,AAAI,yBAAH,CAAC,MACb,AAAO,MAAD,WACN,AAAO,MAAD,WACN,AAAM,KAAD,wBACL,MAAM,EACN,IAAI;AACgD,YAA5D,AAAO,kBAAI,kBAAO,AAAkB,iBAAD,IAAI,AAAkB,iBAAD;AAEG,YAD3D,AAAW,AAAI,yBAAH,CAAC,WAAgB,qBACzB,AAAM,AAAI,mBAAH,CAAC,MAAM,AAAM,AAAI,mBAAH,CAAC,MAAM,AAAM,AAAI,mBAAH,CAAC,MAAM,AAAM,AAAI,mBAAH,CAAC;;;AAGvB,QAAnC,kCAA4B,MAAM;;IAEtC;kCAEmE;AACzC,MAAxB,sBAAsB;AACtB,eAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAY,6BAAQ,IAAA,AAAC,CAAA;AACJ,oBAAQ,AAAW,yBAAC,CAAC;AACnC,yBAAa,AAAe;AACtC,mBAAO,gBAAK,AAAe,2BAAO,AAAe;AAEQ,QADpE,AAAc,0BAAI,wBAAiB,UAAU,EACzC,kBAAO,AAAM,AAAY,KAAb,gBAAgB,AAAM,AAAY,KAAb,iBAAiB,IAAI,EAAE,MAAM;;IAEtE;qBAGsC,QAAyB;AAC7D,UAAI,MAAM,IAAI;AACI,QAAhB,gBAAU,MAAM;AACgB,QAAhC,oBAAc,AAAO,MAAD;AACpB,YAAW,6BAAP,MAAM,GACR,SAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAY,6BAAQ,IAAA,AAAC,CAAA;AACkB,UAAzD,AAAW,AAAI,yBAAH,CAAC,MAAM,AAAO,AAAe,AAAI,AAAS,MAA7B,0BAAiB,oBAAa,CAAC;AACM,UAA9D,AAAW,AAAI,yBAAH,CAAC,WAAW,AAAO,AAAe,AAAI,AAAS,MAA7B,0BAAiB,oBAAa,CAAC;;AAElC,QAA/B,sBAAgB,KAAK,EAAE;;IAE3B;wBAE4C,aAAiB;AACjD,kBAAa;AACP,oBAAe;AACf,oBAAe;AAC/B,eAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAY,WAAD,YAAS,IAAA,AAAC,CAAA;AACT,QAA9B,AAAQ,OAAD,OAAK,AAAW,AAAI,WAAJ,QAAC,CAAC;AACK,QAA9B,AAAQ,OAAD,OAAK,AAAW,AAAI,WAAJ,QAAC,CAAC;;AAGqC,MADhE,QAAQ,sBACJ,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,AAAQ,OAAD,WAAoB;AACxD,YAAO,gCAAwB,OAAO,EAAE,OAAO,EAAE,AAAK,AAAQ,KAAR,QAAC,KAAK,gBACxD,AAAK,AAAY,KAAZ,QAAO,aAAN,KAAK,IAAG,iBAAe,KAAK;IACxC;gCAE2C,MAAU,OAAW;AACrD,qBAAoB,6CAA2B,KAAK;AAC7D,cAAQ,AAAK,IAAD;;;AAGkB,UAD1B,WAAW,sBAAuB,aAAd,AAAS,QAAD,SAAQ,AAAS,QAAD,YAAU,AAAS,QAAD,QAC1D,AAAS,QAAD,MAAM,GAAG,GAAG;AACxB;;;;AAG0B,UAD1B,WAAW,sBAAS,AAAS,QAAD,OAAsB,aAAf,AAAS,QAAD,UAAS,AAAS,QAAD,YACxD,AAAS,QAAD,MAAM,GAAG,GAAG;AACxB;;;;AAG6C,UAD7C,WAAW,sBAAS,AAAS,QAAD,OAAO,AAAS,QAAD,QAC1B,aAAb,AAAS,QAAD,QAAO,AAAS,QAAD,YAAU,GAAG,GAAG;AAC3C;;;;AAG2C,UAD3C,WAAW,sBAAS,AAAS,QAAD,OAAO,AAAS,QAAD,QAAQ,AAAS,QAAD,MACzC,aAAd,AAAS,QAAD,SAAQ,AAAS,QAAD,YAAU,GAAG;AACzC;;;;AAGyD,UADzD,WAAW,sBAAS,AAAS,QAAD,OAAO,AAAS,QAAD,QAAQ,AAAS,QAAD,MACvD,AAAS,QAAD,OAAuB,aAAhB,AAAS,QAAD,WAAU,AAAS,QAAD,YAAU;AACvD;;;;AAGuE,UADvE,WAAW,sBAAS,AAAS,QAAD,OAAO,AAAS,QAAD,QAAQ,AAAS,QAAD,MACvD,AAAS,QAAD,OAAO,AAAS,QAAD,SAAyB,aAAhB,AAAS,QAAD,WAAU,AAAS,QAAD;AAC9D;;;;AAEA;;;AAEJ,YAAO,AAAS,SAAD;IACjB;2BAGkB,QAAsB;;AAC5B,mBAAS,AAAO,MAAD;AACL,sBAAY,cAAc,MAAM;AAChC,sBAAY,cAAc,MAAM;AAChC,sBAAY,cAAc,MAAM;AAEpD,eAAS,QAAQ,GAAG,AAAM,KAAD,gBAAG,MAAM,GAAE,QAAA,AAAK,KAAA;AACnB,QAApB,AAAS,SAAA,QAAC,KAAK,EAAI;;AAEjB,mBAAS;AACb,aAAO,AAAO,MAAD,gBAAG,MAAM;AACZ,mBAAO;AACX,qBAAS;AACT,qBAAS;AACT,qBAAS;AACb,eAAO,AAAO,MAAD,gBAAG,MAAM;AACpB,2BAAI,AAAS,SAAA,QAAC,MAAM,GAAK;AACnB,yBAAS;AACb,mBAAO,AAAO,MAAD,gBAAG,MAAM;AACpB,kBAAsB,YAAlB,AAAS,SAAA,QAAC,MAAM,GAAK,iBACU,WAAN,WAAV,WAAd,AAAM,MAAA,QAAC,MAAM,YAAE,MAAM,uBAAY,IAAI;AACH,gBAArC,OAAgC,WAAV,WAAd,AAAM,MAAA,QAAC,MAAM,YAAE,MAAM;AACd,gBAAf,SAAS,MAAM;AACA,gBAAf,SAAS,MAAM;;AAET,cAAN,SAAF,AAAE,MAAM,GAAR;;;AAGI,UAAN,SAAF,AAAE,MAAM,GAAR;;AAEiB,aAAjB,SAAS;aAAC,MAAM;aAAlB,WAAW,qBAAX;QAAW;;AACX,YAAI,MAAM,KAAI,MAAM;AACd,yBAAW;AACf,iBAAO,AAAS,QAAD,gBAAG,MAAM;AACR,uBAAqB,WAAd,AAAM,MAAA,QAAC,MAAM,YAAE,QAAQ;AACO,YAArC,WAAd,AAAM,MAAA,QAAC,MAAM,YAAE,QAAQ,EAAkB,WAAd,AAAM,MAAA,QAAC,MAAM,YAAE,QAAQ;AACnB,YAAjB,WAAd,AAAM,MAAA,QAAC,MAAM,YAAE,QAAQ,EAAI,IAAI;AACrB,YAAR,WAAF,AAAE,QAAQ,GAAV;;AAEY,qBAAO,AAAgB,6BAAC,MAAM;AACO,UAAnD,AAAgB,6BAAC,MAAM,EAAI,AAAgB,6BAAC,MAAM;AACnB,UAA/B,AAAgB,6BAAC,MAAM,EAAI,IAAI;;AAEP,QAA1B,AAAS,SAAA,QAAC,MAAM,EAAI,MAAM;AACA,QAA1B,AAAS,SAAA,QAAC,MAAM,EAAI,MAAM;AAC1B,YAA2B,YAAT,WAAd,AAAM,MAAA,QAAC,MAAM,YAAE,MAAM,IAAK;AAC5B,gBAAO;;AAEK,mBAAO,AAAI,mCAAgB,WAAd,AAAM,MAAA,QAAC,MAAM,YAAE,MAAM;AACpB,QAAd,WAAd,AAAM,MAAA,QAAC,MAAM,YAAE,MAAM,EAAI;AACrB,sBAAU;AACd,eAAO,AAAQ,OAAD,gBAAG,MAAM;AACU,gBAA/B,AAAM,MAAA,QAAC,MAAM;gBAAE,OAAO;UAAR,8BAAU,WAAV,sCAAa,IAAI;AACtB,UAAP,UAAF,AAAE,OAAO,GAAT;;AAE8B,eAAhC;eAAiB,MAAM;QAAP,kBAAS,WAAT,yBAAY,IAAI;AAC5B,sBAAU;AACd,eAAO,AAAQ,OAAD,gBAAG,MAAM;AACrB,cAAI,OAAO,KAAI,MAAM;AACL,uBAAsB,WAAf,AAAM,MAAA,QAAC,OAAO,YAAE,MAAM;AACd,YAAd,WAAf,AAAM,MAAA,QAAC,OAAO,YAAE,MAAM,EAAI;AACtB,yBAAS;AACb,mBAAO,AAAO,MAAD,gBAAG,MAAM;AACoC,qBAAxD,AAAM,MAAA,QAAC,OAAO;qBAAE,MAAM;cAAP,gCAAS,WAAT,wCAAmC,WAAT,WAAd,AAAM,MAAA,QAAC,MAAM,YAAE,MAAM,UAAI,IAAI;AAChD,cAAN,SAAF,AAAE,MAAM,GAAR;;AAE0D,mBAA5D;mBAAiB,OAAO;YAAR,kBAAU,WAAV,yBAAsC,WAAzB,AAAgB,6BAAC,MAAM,SAAI,IAAI;;AAErD,UAAP,UAAF,AAAE,OAAO,GAAT;;AAEM,QAAN,SAAF,AAAE,MAAM,GAAR;;AAEF,eAAS,UAAiB,aAAP,MAAM,IAAG,GAAG,AAAQ,OAAD,IAAI,GAAG,UAAA,AAAO,OAAA;AAClD,yBAAI,AAAS,SAAA,QAAC,OAAO,GAAK,AAAS,SAAA,QAAC,OAAO,IACzC,SAAS,UAAU,GAAG,AAAQ,OAAD,gBAAG,MAAM,GAAE,UAAA,AAAO,OAAA;AAC/B,uBAAwB,WAAf,AAAM,MAAA,QAAC,OAAO,YAAE,AAAS,SAAA,QAAC,OAAO;AAEjB,UADxB,WAAf,AAAM,MAAA,QAAC,OAAO,YAAE,AAAS,SAAA,QAAC,OAAO,GACd,WAAf,AAAM,MAAA,QAAC,OAAO,YAAE,AAAS,SAAA,QAAC,OAAO;AACO,UAA7B,WAAf,AAAM,MAAA,QAAC,OAAO,YAAE,AAAS,SAAA,QAAC,OAAO,GAAK,MAAM;;AAElD,YAAO;IACT;uBAEmE,QAC7B,QAAyB;AAC1C,uBAAqB;AAC1B,kBACI,uBAAd,AAAO,MAAD,aAA0B,AAAM,AAAI,MAAJ,QAAC,YAAY,AAAM,AAAI,MAAJ,QAAC;AAChD,gBAAoB,uBAAd,AAAO,MAAD,aACpB,AAAM,AAAoB,MAApB,QAAe,aAAd,AAAO,MAAD,aAAU,YACvB,AAAM,AAAoB,MAApB,QAAe,aAAd,AAAO,MAAD,aAAU;AAC7B,eAAa,IAAI,KAAK,EACA,aAAlB,AAAW,UAAD,cAAW,KACrB,IAAE,WAAF,CAAC,QAAkB,WAAT,WAAJ,GAAG,QAAG,KAAK,UAAI;AACT,gBAAI,yBAAoB,uBAAkB,CAAC;AACpC,uBAAW,uCAC5B,CAAC,mBACD,CAAC,GACD,AAAO,MAAD,WACN,AAAO,MAAD,WACN,AAAM,KAAD,wBACL,MAAM,EACN,AAAM,AAAW,KAAZ;AACqC,QAA9C,AAAW,UAAD,OAAK,kBAAO,AAAS,QAAD,IAAI,AAAS,QAAD;;AAE5C,YAAO,WAAU;IACnB;uBAEiC,MAAW;AACjC;AACT,cAAa,WAAL,IAAI;;;AAE6B,UAArC;AACA;;;;AAIiB,UAFjB,WAAW,6BAEF,CADE,AAAO,gCAAG,UAAU,IAAG,uBAAkB;AAEpD;;;;AAIuE,UAFvE,WAAW,6BAEH,AAAG,KAAoD,WAAjD,UAAU,IAAG,uBAAkB;AAC7C;;;;AAGoE,UADpE,WAAW,6BACiD,WAAjD,UAAU,IAAG,uBAAkB;AAC1C;;;;AAGqE,UADrE,WAAW,8BACkD,WAAjD,UAAU,IAAG,uBAAkB;AAC3C;;;;AAGuE,UADvE,WAAW,gCACoD,WAAjD,UAAU,IAAG,uBAAkB;AAC7C;;;;AAGuE,UADvE,WAAW,gCACoD,WAAjD,UAAU,IAAG,uBAAkB;;;AAEjD,YAAO,AAAS,SAAD;IACjB;;;;QA9pCU;QACD;QACA;QACA;QACC;QACQ;QACP;QACA;QACA;QACF;QACE;QACA;QACA;QACF;QACU;QACA;QACX;QACA;IAiX2B;IACD;IAClB;IACF;IACH;IACE;IAWR;IAjZI;IACA;IACA;IAeW,yBAAgB,KAAd,aAAa,QAAb,OAAiB;IAC5B,gBAAO,MAAL,IAAI,SAAJ,OAAsB;IACZ,2BAAmB,OAAjB,gBAAgB,UAAhB,OAAoB;IACvB,0BAAkB,OAAhB,eAAe,UAAf,OAAmB;IAC7B,mBAAU,OAAR,OAAO,UAAP,OAAW;IACV,sBAAa,OAAX,UAAU,UAAV,OAAc;IACrB,kBAAQ,OAAN,KAAK,UAAL,OAAS;IACP,qBAAY,OAAV,SAAS,UAAT,OAAa;IACP,6BAAoB,OAAlB,iBAAiB,UAAjB,OAAqB;IACvB,6BAAoB,OAAlB,iBAAiB,UAAjB,OAAqB;IAC1B,0BAAiB,OAAf,cAAc,UAAd,OAAkB;IACpB,0BAAiB,OAAf,cAAc,UAAd,OAAiC;IAClC,0BAAkB,QAAhB,eAAe,WAAf,OAAmB;IAC9B,kBAAS,QAAP,MAAM,WAAN,OAAU;IACb,kBAAQ,QAAN,KAAK,WAAL,OAAgB;IACb,oBAAQ,QAAN,KAAK,WAAL,OAAgB;IACpB,kBAAU,QAAR,OAAO,WAAP,OAAW;IAChB,eAAE,IAAI;IACH,iBAAE,SAAS;IACT,mBAAE,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA6nCxB;IACA;;EACN;;;;;;;;;UCrqCoB,QAAa;;AACxB;AACE;AACP,oBACO,AAAM,AAAa;AADa,qBAAvC;AAEE,YAAI,AAAO,MAAD,eAAe;AACvB,mBAAe,YAAa,AAAO,OAAD;AAChC,0BAAI,AAAU,SAAD,8BAAkB,AAAU,SAAD;AACzB,cAAb,AAAO,MAAD;AAIC,cAHP,kBAAmB,AAA2B,2BAAL,mBAChC,AAAO,AAAO,AAAY,MAApB,2CACT,AAAmB,gCACnB;AACK,iCAAe,4BACtB,AAAM,AAAW,uCACjB,kBAAO,AAAO,AAAO,MAAR,sBAAoB,AAAO,AAAO,MAAR;AACd,cAA7B,AAAO,MAAD,UAAU,YAAY;AACjB,yBAAO;AACN,0BAAQ;AACe,cAAnC,AAAM,KAAD,eAAe,AAAU,SAAD;AACqC,cAAlE,AAAM,KAAD,SAAS,AAAU,AAAW,SAAZ,yBAAwB,AAAU,SAAD;AACtB,cAAlC,AAAM,KAAD,SAAuB;AAC5B,kBAA6B,aAAzB,AAAO,MAAD,sBAAqB,iBACzB,AAAO,AAAO,AAAY,MAApB,qDACJ,AAAO,AAAO,AAAY,MAApB;AAE8C,gBAD1D,+BACI,AAAO,MAAD,UAAS,AAAO,MAAD,WAAS,MAAM,EAAE,eAAe;;AAMpC,cAJvB,0BACI,SAAS,EACT,AAAO,AAAW,MAAZ,sBAAoB,SAAS,GACnC,AAAM,AAAa,AAAc,iDAAQ,MAAM,GAC/C,AAAO,MAAD;AACV,kBAAmB,YAAf,AAAU,SAAD,OAAuB;AACyB,gBAA3D,AAAK,IAAD,QAAQ,AAAU,AAAM,AAAI,SAAX,eAAQ,OAAO,AAAU,AAAM,AAAI,SAAX,eAAQ;AACM,gBAA3D,AAAK,IAAD,QAAQ,AAAU,AAAM,AAAI,SAAX,eAAQ,OAAO,AAAU,AAAM,AAAI,SAAX,eAAQ;oBAChD,KAAmB,YAAf,AAAU,SAAD,OAAuB,qCACxB,YAAf,AAAU,SAAD,OAAuB,+BACjB,YAAf,AAAU,SAAD,OAAuB;AACyB,gBAA3D,AAAK,IAAD,QAAQ,AAAU,AAAM,AAAI,SAAX,eAAQ,OAAO,AAAU,AAAM,AAAI,SAAX,eAAQ;AACrD,yBAAS,IAAI,GAAG,AAAE,CAAD,GAA2B,aAAxB,AAAU,AAAO,SAAR,oBAAiB,GAAG,IAAA,AAAC,CAAA;AAC7B,sCACf,AAAU,SAAD,oBAAmB,AAAU,SAAD,SAAS,CAAC;AAOpB,kBAN/B,AAAK,IAAD,SACA,AAAa,aAAA,QAAC,IACd,AAAa,aAAA,QAAC,IACd,AAAa,aAAA,QAAC,IACd,AAAa,aAAA,QAAC,IACd,AAAU,AAAM,AAAQ,SAAf,eAAQ,AAAE,CAAD,GAAG,OACrB,AAAU,AAAM,AAAQ,SAAf,eAAQ,AAAE,CAAD,GAAG;;oBAEtB,KAAmB,YAAf,AAAU,SAAD,OAAuB;AACtB,uCAAmB,AACjC,SAD0C,oBACvB,AAAU,SAAD,eAAc,MAAM,EAAE;AACI,gBAA3D,AAAK,IAAD,QAAQ,AAAgB,AAAI,gBAAJ,QAAC,OAAO,AAAgB,AAAI,gBAAJ,QAAC;AACrD,yBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAiB,gBAAD,YAAS,IAAA,AAAC,CAAA;AACe,kBAA3D,AAAK,IAAD,QAAQ,AAAgB,AAAI,gBAAJ,QAAC,CAAC,MAAM,AAAgB,AAAI,gBAAJ,QAAC,CAAC;oBACnD,KAAmB,YAAf,AAAU,SAAD,OAAuB;AACkB,gBAA3D,AAAK,IAAD,QAAQ,AAAU,AAAM,AAAI,SAAX,eAAQ,OAAO,AAAU,AAAM,AAAI,SAAX,eAAQ;AACrD,yBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAU,AAAO,SAAR,mBAAgB,IAAA,AAAC,CAAA;AACe,kBAA3D,AAAK,IAAD,QAAQ,AAAU,AAAM,AAAI,SAAX,eAAQ,CAAC,MAAM,AAAU,AAAM,AAAI,SAAX,eAAQ,CAAC;;AAE1D,kBAAI,AAAU,SAAD,gBAAe;AACgC,gBAA1D,uBAAgB,MAAM,EAAE,AAAU,SAAD,cAAa,KAAK,EAAE,IAAI;;AAE7B,gBAA5B,AAAO,MAAD,UAAU,IAAI,EAAE,KAAK;AAWkC,cAV/D,WAAW,4BACF,qBACmC,aAApC,AAAM,AAAW,AAAc,2DAC3B,AAAU,AAAe,SAAhB,wBACsB,aAAnC,AAAM,AAAW,AAAc,0DAC3B,AAAU,AAAe,SAAhB,yBACwB,aAArC,AAAM,AAAW,AAAc,4DAC3B,AAAU,AAAe,SAAhB,wBACyB,aAAtC,AAAM,AAAW,AAAc,6DAC3B,AAAU,AAAe,SAAhB,0BACjB,kBAAO,AAAO,AAAO,MAAR,sBAAoB,AAAO,AAAO,MAAR;AAC3B,cAAhB,AAAO,MAAD;AACN,4BAAI,AAAU,SAAD,eACQ,aAAhB,eAAe,iBAAG,AAAM;AACF,gBAAzB,AAAO,MAAD,UAAU,QAAQ;AACxB,8BAAI,AAAU,AAAe,SAAhB;AACX,2BAAkC,QAC3B,AAAU,UAAD;AACd,kCAAI,AAAM,KAAD,4BAAc,AAAM,KAAD,QAAU;AACpC,0BAAmC,YAA/B,AAAU,AAAe,SAAhB,uBACM;AAEO,wBADxB,wBAAiB,MAAM,EAAE,MAAM,EAAE,AAAM,AAAY,KAAb,gBAClC,AAAM,AAAY,KAAb;;AAEC,8CAAc,gBACtB,WAAQ,AAAU,AAAe,AAAY,SAA5B,gCAA+B,IACrC,6BACL,AAAM,AAAiB,KAAlB,qBAAqB,OACxB,AAAM,KAAD,qBACgC,KAArC,AAAU,AAAe,SAAhB,mCAAgB,OACvB,AAAU,SAAD,oBACnB,iBAAc,AAAU,AAAe,SAAhB,6BACvB,WAAsB;AAEd,6CAAY,gBACpB,aAAuC,MAA/B,AAAU,AAAe,SAAhB,8BAAgB,OACW,YAAzC,AAAM,AAAY,AAAY,iDACZ,uBACN,uBACA,6BACf,YAAsB;AAChB,kCAAQ,AAAU,AAAY,SAAb,wBAAqB,KAAK;AAEL,sBADhD,AAAO,MAAD,UACF,AAAU,AAAa,SAAd,uBAAe,KAAK,GAAG,WAAW;AACW,sBAA1D,AAAO,MAAD,UAAU,AAAU,AAAa,SAAd,uBAAe,KAAK,GAAG,SAAS;;;;;;;;;IAS3E;yBAEoC,WAAe,gBAC3C,aAAoB;AACN;AACpB,UAAI,AAAM,gCAAqB;AACD,QAA5B,OAAO;AAC6B,QAApC,AAAK,IAAD,aAAa,AAAU,SAAD;AACU,QAApC,AAAK,IAAD,kBAAkB,cAAc;AACA,QAApC,AAAK,IAAD,iBAAiB,AAAU,SAAD;AACF,QAA5B,AAAK,IAAD,cAAc,UAAU;AACK,QAAjC,AAAK,IAAD,SAAS,AAAU,SAAD;AACW,QAAjC,AAAK,IAAD,WAAW,AAAU,SAAD;AACa,QAArC,AAAK,IAAD,aAAa,AAAU,SAAD;AACI,QAA9B,AAAK,IAAD,eAAe,WAAW;AACG,QAAjC,AAAK,IAAD,QAAQ,AAAU,SAAD;AACQ,QAA7B,AAAM,6BAAkB,IAAI;AACK,QAAjC,AAAU,SAAD,eAAc,AAAK,IAAD;AACM,QAAjC,AAAU,SAAD,aAAY,AAAK,IAAD;AACY,QAArC,AAAU,SAAD,eAAc,AAAK,IAAD;;IAE/B;;sCAGqC;AAAgB;IAAI;;;QArJ/C;QAAY;QAAuC;IAAnD;IAAY;AAChB,gEAAe,QAAQ;;EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICgCnB;;;;;;IAcE;;;;;;IAiBD;;;;;;IAiBO;;;;;;IAmBE;;;;;;IAmBG;;;;;;IAgBb;;;;;;IAaE;;;;;;SAkBK,GAAU,GAAW;;AACrC,UAAI,cAAc,KAAI;AAC6C,QAAjE,AAAkB,AAAM,AAAY,mEAAwB;AACpB,mDACpC,AAAkB,AAAM,AAAM,4CAAC;AACd,uBAAW,uBACd,gBAAZ,iBAAF,CAAC,IAAe,AAAE,CAAD,0BAA0B,CAAC,GAC5C,CAAC,EACD,AAAO,MAAD,WACN,AAAO,MAAD,WACN,AAAO,AAAO,MAAR,gCACN,MAAM,EACN,AAAO,AAAO,AAAW,MAAnB;AACI,QAAd,IAAI,AAAS,QAAD;AACE,QAAd,IAAI,AAAS,QAAD;;AAGd,UAAI,2BAAqB,qBACrB,qBAAiC,+BACjC,CAAC,IAAI,QACL,CAAC,IAAI;AACsD,QAA7D,AAAkB,4CAAmB,qCAAS,WAAF,CAAC,oBAAa,CAAC;AACrB,QAAtC,AAAkB,uCAAe;AACjC,sBAAI,AAAkB,AAAM,AAAY,mEAC8B;eAApE,AAAkB,AAAM,AAAY;UAAyB,WAAK,aAAL,YAAK;;;IAExE;gBAMqB;AACnB,oBAAI,mBAAY,UAAU,EAAE,GAAG,AAAkB;AAC/C,YAAI,2BAAqB,qBAAQ,qBAAiC;AACxB,sDACpC,AAAkB,AAAM,AAAM,4CAAC;AAGgB,UAFnD,AAAkB,4CAAmB,kBACjC,AAAQ,AAAW,AAAa,AAAY,OAArC,sBAAa,UAAU,iBAC9B,AAAQ,AAAW,AAAa,AAAY,OAArC,sBAAa,UAAU;AACI,UAAtC,AAAkB,uCAAe;;;IAGvC;;;AAIE,UAAI,2BAAqB;AACe,QAAtC,AAAkB,uCAAe;AAEwC,QADzE,gCACsE,KAAlE,AAAkB,AAAM,AAAY,oFAAyB,8BAAK;AACtE,YAAI,AAAkB,iCAAS;AACG,UAAhC,AAAkB,AAAM;;AAE1B,uBAAK;AACU,yBAAY,AAAU,AAAK,mBAAF,eAC9B,AAAkB,AAAM,AAAY,gEACtC,QACA;AAKJ,UAJF,AAAkB,gCACd,gBAAM,qCAAuB,AAAS,QAAD,cAAW;;AACkB,iBAApE,AAAkB,AAAM,AAAY;YAAyB,WAAK,aAAL,YAAK;AAC7B,YAArC,AAAkB,uCAAe;;;;IAIzC;gBAIwB,MAAa;AAAS,uBAAK,IAAI,EAAE,IAAI,EAAE;IAAQ;gBAI/C,MAAa;AAAS,uBAAK,IAAI,EAAE,IAAI,EAAE;IAAQ;gBAI/C,MAAa;AAAS,uBAAK,IAAI,EAAE,IAAI,EAAE;IAAQ;gBAI/C,MAAa;AAAS,uBAAK,IAAI,EAAE,IAAI,EAAE;IAAQ;cAIjD,MAAa;AAAS;IAAM;YAI9B,MAAa;AAAS,uBAAK,IAAI,EAAE,IAAI,EAAE;IAAQ;WAIhD,MAAa;AAAS;IAAM;YAI3B;AAClB,UAAI,2BAAqB;AACiB,QAAxC,AAAkB,wCAAe,MAAM;;IAE3C;gBAEsB,QAAc,OAAW;AAC7C,UAAI,2BAAqB;AACyC,QAAhE,AAAkB,4CAAmB,MAAM,EAAE,KAAK,EAAE,WAAW;;IAEnE;mBAEyB;;AAAU;iCAAmB,oBAAgB,KAAK;IAAC;;;;QA5Q3D;QACG;QACb;QACA;QACA;QACA;QACA;QACE;IAwIF;IAGW;IAGb;IAnJE;IACA;IACA;IACA;IACA;IAEc,yBAAiB,KAAf,cAAc,QAAd,OAAiC;IACxC,oBAAY,MAAV,SAAS,SAAT,OAAa;IAChB,mBAAW,OAAT,QAAQ,UAAR,OAA8B;AAChB,IAA7B,8BAAwB;EAC1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAqQO;IAGA;IAGA;IAGH;IAG2B;IAGF;IAGtB;IAGA;IAGD;IAGC;;EACT;;;;;;;;;;;;;;;;;;;;;;;;UCxRoB,QAAa;AAC7B,UAAI,qBAAgB,mBAAS;AACY,QAAvC,AAAM,AAAkB,qCAAQ,MAAM;;IAE1C;;wCAGiC;AAAgB;IAAI;yBAGtB;AAClB,yBAAe,AAAM,AAAW;AAC3C,UAAgB,aAAZ,AAAS,QAAD,qBAAO,AAAa,YAAD,UACf,aAAZ,AAAS,QAAD,qBAAO,AAAa,YAAD,WACf,aAAZ,AAAS,QAAD,qBAAO,AAAa,YAAD,SACf,aAAZ,AAAS,QAAD,qBAAO,AAAa,YAAD;AACe,QAA5C,AAAM,AAAkB,0CAAY,QAAQ;;IAEhD;sBAE4B;AAAuB,+BAAkB;;yBAEtC,QAAc,OAAW;AACtD,UAAI,AAAM,AAAkB,2CAAa;AAC5B,4BAAgB;AAC3B,YAAqC,YAAjC,AAAM,AAAkB,uCAA8B;AAC7C,sCAAwB;AAEM,UADzC,AAAsB,qBAAD,QAAQ,AAAM,AAAW,AAAc,4CACxD,AAAM,AAAkB,AAAU;AAEG,UADzC,AAAsB,qBAAD,QAAQ,AAAM,AAAW,AAAc,6CACxD,AAAM,AAAkB,AAAU;AAIa,UAHnD,AAAM,AAAkB,AAAc,8CAAG,OACnC,uBAAgB,MAAM,EAAE,AAAM,AAAkB,4CAC9C,KAAK,EAAE,qBAAqB,IAC9B,AAAO,MAAD,UAAU,qBAAqB,EAAE,KAAK;AACvC,wCAA0B;AAEE,UADvC,AAAwB,uBAAD,QAAQ,AAAM,AAAkB,AAAU,4CAC7D,AAAM,AAAW,AAAc;AAEO,UAD1C,AAAwB,uBAAD,QAAQ,AAAM,AAAkB,AAAU,4CAC7D,AAAM,AAAW,AAAc;AAIkB,UAHrD,AAAM,AAAkB,AAAc,8CAAG,OACnC,uBAAgB,MAAM,EAAE,AAAM,AAAkB,4CAC9C,KAAK,EAAE,uBAAuB,IAChC,AAAO,MAAD,UAAU,uBAAuB,EAAE,KAAK;cAC/C,KAAqC,YAAjC,AAAM,AAAkB,uCACb;AAEqB,UADzC,AAAc,aAAD,QAAQ,AAAM,AAAW,AAAc,4CAChD,AAAM,AAAkB,AAAU;AAEG,UADzC,AAAc,aAAD,QAAQ,AAAM,AAAW,AAAc,6CAChD,AAAM,AAAkB,AAAU;AAIK,UAH3C,AAAM,AAAkB,AAAc,8CAAG,OACnC,uBAAgB,MAAM,EAAE,AAAM,AAAkB,4CAC9C,KAAK,EAAE,aAAa,IACtB,AAAO,MAAD,UAAU,aAAa,EAAE,KAAK;cACrC,KAAqC,YAAjC,AAAM,AAAkB,uCACb;AAEmB,UADvC,AAAc,aAAD,QAAQ,AAAM,AAAkB,AAAU,4CACnD,AAAM,AAAW,AAAc;AAEO,UAD1C,AAAc,aAAD,QAAQ,AAAM,AAAkB,AAAU,4CACnD,AAAM,AAAW,AAAc;AAIQ,UAH3C,AAAM,AAAkB,AAAc,8CAAG,OACnC,uBAAgB,MAAM,EAAE,AAAM,AAAkB,4CAC9C,KAAK,EAAE,aAAa,IACtB,AAAO,MAAD,UAAU,aAAa,EAAE,KAAK;;;IAGhD;qBAE2B;;AACb,4BAAY,gBACpB,WAAQ,AAAM,AAAY,AAAY,+DACtC,eAAsB,mBACtB,iBAAc,OACd,WAAsB;AAEd,+BAAc,gBACtB,YAAQ,AAAM,AAAY,AAAY,+DACtC,gBAAsB,mBACtB,kBAAc,OACd,YAAsB;AAGiB,MAF3C,AAAM,AAAkB,AAAU,2CAAG,IAC/B,AAAY,WAAD,SAAgB,6BAC3B,AAAY,WAAD,SAAS,AAAY,WAAD;AAEzB,+BAAqB;AACjC,UAAI,AAAM,AAAkB,2CAAa;AAC1B,uBAAW,AAAM,AAAkB;AAGI,QADpD,AAAmB,kBAAD,UAA2C,OAAlC,AAAM,AAAkB,gDAAA,OAC/C,AAAM,AAAY,AAAY;AACgC,QAAlE,AAAmB,kBAAD,eAAe,AAAM,AAAkB;AACV,QAA/C,AAAmB,kBAAD,SAAuB;AAE0B,QADnE,AAAM,AAAkB,wCAAU,MAAM,EACpC,AAAM,AAAkB,2CAAa,kBAAkB,GAAG;AAEE,QAAhE,6BAAuB,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS;AACF,QAA7D,0BAAoB,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS;AACE,QAA9D,2BAAqB,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS;AACE,QAA/D,4BAAsB,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS;;IAElE;6BAIW,QAAe,UAAgB,aAAmB;;AACjD;AACF;AACH;AACA;AAAW;AACV;AACA;AAEc;AACpB,eAAS,QAAQ,GACb,AAAM,KAAD,gBAAG,AAAM,AAAW,AAAiB,oDAC1C,QAAA,AAAK,KAAA;AAC6C,QAApD,OAAO,AAAM,AAAW,AAAgB,AAAQ,gDAAP,KAAK;AAC9C,sBAAI,wBAAkB,IAAI;AAGoC,UAF5D,AAAU,SAAD,SAAS,AAAK,AAAmB,AAAM,IAA1B,6BAA6B,aAC7C,AAAK,IAAD,kCAAC,OAAoB,YACzB,AAAM,AAAY,AAAY;AAGwB,UAF5D,AAAY,WAAD,SAAS,AAAK,AAAmB,AAAY,IAAhC,mCAAmC,cACrD,AAAK,IAAD,mCAAC,OAAoB,mBACzB,AAAM,AAAY,AAAY;AACyB,UAA7D,AAAY,WAAD,eAAe,AAAK,AAAmB,IAApB;AACI,UAAlC,QAAQ,iBAAW,IAAI,EAAE,QAAQ;AACjC,cAAI,AAAM,0CAA+B;AACG,YAA1C,qBAAqB;AACS,YAA9B,AAAmB,kBAAD,QAAQ,IAAI;AACoB,YAAlD,AAAmB,kBAAD,eAAe,AAAK,IAAD;AACG,YAAxC,AAAmB,kBAAD,YAAY,AAAK,IAAD;AACQ,YAA1C,AAAmB,kBAAD,QAAc,cAAN,KAAK;AAEqB,YADpD,AAAmB,kBAAD,cAA+C,OAAlC,AAAM,AAAkB,gDAAA,OACnD,AAAM,AAAY,AAAY;AACF,YAAhC,AAAmB,kBAAD,SAAS,KAAK;AACI,YAApC,AAAmB,kBAAD,aAAa,KAAK;AACiB,YAArD,AAAM,uCAA4B,kBAAkB;AACrB,YAA/B,QAAQ,AAAmB,kBAAD;AACU,YAApC,QAAQ,AAAmB,kBAAD;;AAGyC,UADrE,YACI,oBAAmB,cAAN,KAAK,GAAa,AAAK,AAAmB,IAApB;AAKR,UAJ/B,YAAiB,qBACD,aAAZ,AAAS,QAAD,QAAuB,AAAI,aAApB,AAAU,SAAD,UAAS,IAAY,KAAE,IAC9B,aAAjB,AAAK,AAAQ,IAAT,8BAAe,AAAK,AAAmB,IAApB,kCACP,aAAhB,AAAU,SAAD,cACQ,aAAjB,AAAU,SAAD;AAEsD,UADnE,YACI,2BAAoB,SAAS,EAAE,AAAM,AAAY;AACG,UAAxD,gBAAgB,8BAAuB,SAAS,EAAE;AAC5B,UAAtB,AAAe;AAEyC,UADxD,cAAc,6BACV,aAAa,EAAE,AAAK,AAAmB,IAApB;AACa,UAApC,AAAe,6BAAS,WAAW;AAeuB,UAd1D,6BACI,MAAM,EACN,qBACA,SAAS,EACT,WAAW,EACX,AAAS,QAAD,KACQ,aAAhB,AAAY,WAAD,qBAAO,AAAK,AAAmB,IAApB,kCACH,AAAyB,aAA3C,AAAY,WAAD,UAA2B,aAAlB,AAAY,WAAD,UAAS,iBACrC,AAAK,AAAmB,IAApB,iCACR,AAAY,WAAD,MACO,AAAyB,aAA1C,AAAY,WAAD,SAA0B,aAAlB,AAAY,WAAD,UAAS,iBACpC,AAAK,AAAmB,IAApB,iCACR,AAAY,WAAD,MACX,AAAS,QAAD,KACQ,aAAhB,AAAY,WAAD,qBAAO,AAAK,AAAmB,IAApB;AAgBpB,UAfN,iBACI,MAAM,EACA,cAAN,KAAK,GACL,kBACsB,AAAyB,aAA1C,AAAY,WAAD,SAA0B,aAAlB,AAAY,WAAD,UAAS,IACpB,aAAhB,AAAU,SAAD,UAAS,GACL,AAA0B,aAA1C,AAAY,WAAD,QAA0B,aAAnB,AAAY,WAAD,WAAU,IACnB,aAAjB,AAAU,SAAD,WAAU,IAC3B,uCACmD,OAAxC,AAAK,AAAmB,AAAU,IAA9B,6CAA8B,OACrC,AAAM,AAAY,AAAY,0EACxB,AAAK,AAAmB,AAAU,IAA9B,oDACF,AAAK,AAAmB,AAAU,IAA9B,sDACJ,AAAK,AAAmB,AAAU,IAA9B,qDACL,AAAK,AAAmB,AAAU,IAA9B,2CACnB;;;IAGV;0BAIW,QAAe,UAAgB,aAAmB;;AACjD;AACF;AACH;AACA;AAAW;AACV;AAEA;AACc;AACpB,eAAS,QAAQ,GACb,AAAM,KAAD,gBAAG,AAAM,AAAW,AAAc,iDACvC,QAAA,AAAK,KAAA;AAC0C,QAAjD,OAAO,AAAM,AAAW,AAAa,AAAQ,6CAAP,KAAK;AAC3C,sBAAI,wBAAkB,IAAI;AAGoC,UAF5D,AAAU,SAAD,SAAS,AAAK,AAAmB,AAAM,IAA1B,6BAA6B,aAC7C,AAAK,IAAD,kCAAC,OAAoB,YACzB,AAAM,AAAY,AAAY;AAGwB,UAF5D,AAAY,WAAD,SAAS,AAAK,AAAmB,AAAY,IAAhC,mCAAmC,cACrD,AAAK,IAAD,mCAAC,OAAoB,mBACzB,AAAM,AAAY,AAAY;AACyB,UAA7D,AAAY,WAAD,eAAe,AAAK,AAAmB,IAApB;AACI,UAAlC,QAAQ,iBAAW,IAAI,EAAE,QAAQ;AACjC,cAAI,AAAM,0CAA+B;AACG,YAA1C,qBAAqB;AACS,YAA9B,AAAmB,kBAAD,QAAQ,IAAI;AACoB,YAAlD,AAAmB,kBAAD,eAAe,AAAK,IAAD;AACG,YAAxC,AAAmB,kBAAD,YAAY,AAAK,IAAD;AACQ,YAA1C,AAAmB,kBAAD,QAAc,cAAN,KAAK;AAEqB,YADpD,AAAmB,kBAAD,cAA+C,OAAlC,AAAM,AAAkB,gDAAA,OACnD,AAAM,AAAY,AAAY;AACF,YAAhC,AAAmB,kBAAD,SAAS,KAAK;AACI,YAApC,AAAmB,kBAAD,aAAa,KAAK;AACiB,YAArD,AAAM,uCAA4B,kBAAkB;AACrB,YAA/B,QAAQ,AAAmB,kBAAD;AACU,YAApC,QAAQ,AAAmB,kBAAD;;AAGyC,UADrE,YACI,oBAAmB,cAAN,KAAK,GAAa,AAAK,AAAmB,IAApB;AAOR,UAN/B,YAAiB,qBACD,aAAZ,AAAS,QAAD,QAAuB,AAAI,aAApB,AAAU,SAAD,UAAS,IAAY,KAAE,IAC9B,AACgB,aADjC,AAAK,AAAQ,IAAT,kBACkB,aAAjB,AAAU,SAAD,8BACV,AAAK,AAAmB,IAApB,kCACQ,aAAhB,AAAU,SAAD,cACQ,aAAjB,AAAU,SAAD;AAEsD,UADnE,YACI,2BAAoB,SAAS,EAAE,AAAM,AAAY;AACG,UAAxD,gBAAgB,8BAAuB,SAAS,EAAE;AAC5B,UAAtB,AAAe;AAEyC,UADxD,cAAc,6BACV,aAAa,EAAE,AAAK,AAAmB,IAApB;AACa,UAApC,AAAe,6BAAS,WAAW;AAgB0B,UAd7D,6BACI,MAAM,EACN,qBACA,SAAS,EACT,WAAW,EACX,AAAS,QAAD,KACW,aAAnB,AAAY,WAAD,wBAAU,AAAK,AAAmB,IAApB,kCACN,AAAyB,aAA3C,AAAY,WAAD,UAA2B,aAAlB,AAAY,WAAD,UAAS,iBACrC,AAAK,AAAmB,IAApB,iCACR,AAAY,WAAD,SACO,AAAyB,aAA1C,AAAY,WAAD,SAA0B,aAAlB,AAAY,WAAD,UAAS,iBACpC,AAAK,AAAmB,IAApB,iCACR,AAAY,WAAD,SACX,AAAS,QAAD,KACW,aAAnB,AAAY,WAAD,wBAAU,AAAK,AAAmB,IAApB;AAgBvB,UAfN,iBACI,MAAM,EACA,cAAN,KAAK,GACL,kBACsB,AAAyB,aAA1C,AAAY,WAAD,SAA0B,aAAlB,AAAY,WAAD,UAAS,IACpB,aAAhB,AAAU,SAAD,UAAS,GACL,AAA0B,aAA1C,AAAY,WAAD,QAA0B,aAAnB,AAAY,WAAD,WAAU,IACnB,aAAjB,AAAU,SAAD,WAAU,IAC3B,uCACmD,OAAxC,AAAK,AAAmB,AAAU,IAA9B,6CAA8B,OACrC,AAAM,AAAY,AAAY,0EACxB,AAAK,AAAmB,AAAU,IAA9B,oDACF,AAAK,AAAmB,AAAU,IAA9B,sDACJ,AAAK,AAAmB,AAAU,IAA9B,qDACL,AAAK,AAAmB,AAAU,IAA9B,2CACnB;;;IAGV;2BAIW,QAAe,UAAgB,aAAmB;;AACjD;AACF;AACH;AACA;AAAW;AACV;AAEA;AACc;AACpB,eAAS,QAAQ,GACb,AAAM,KAAD,gBAAG,AAAM,AAAW,AAAe,kDACxC,QAAA,AAAK,KAAA;AAC2C,QAAlD,OAAO,AAAM,AAAW,AAAc,AAAQ,8CAAP,KAAK;AAC5C,sBAAI,wBAAkB,IAAI;AAGoC,UAF5D,AAAU,SAAD,SAAS,AAAK,AAAmB,AAAM,IAA1B,6BAA6B,OAC7C,AAAK,AAAmB,IAApB,4BACJ,AAAM,AAAY,AAAY;AAGwB,UAF5D,AAAY,WAAD,SAAS,AAAK,AAAmB,AAAY,IAAhC,mCAAmC,aACrD,AAAK,IAAD,kCAAC,OAAoB,kBACzB,AAAM,AAAY,AAAY;AACyB,UAA7D,AAAY,WAAD,eAAe,AAAK,AAAmB,IAApB;AACI,UAAlC,QAAQ,iBAAW,IAAI,EAAE,QAAQ;AACjC,cAAI,AAAM,0CAA+B;AACG,YAA1C,qBAAqB;AACS,YAA9B,AAAmB,kBAAD,QAAQ,IAAI;AACoB,YAAlD,AAAmB,kBAAD,eAAe,AAAK,IAAD;AACG,YAAxC,AAAmB,kBAAD,YAAY,AAAK,IAAD;AACQ,YAA1C,AAAmB,kBAAD,QAAc,cAAN,KAAK;AAEqB,YADpD,AAAmB,kBAAD,cAA+C,MAAlC,AAAM,AAAkB,+CAAA,OACnD,AAAM,AAAY,AAAY;AACF,YAAhC,AAAmB,kBAAD,SAAS,KAAK;AACI,YAApC,AAAmB,kBAAD,aAAa,KAAK;AACiB,YAArD,AAAM,uCAA4B,kBAAkB;AACrB,YAA/B,QAAQ,AAAmB,kBAAD;AACU,YAApC,QAAQ,AAAmB,kBAAD;;AAGyC,UADrE,YACI,oBAAmB,cAAN,KAAK,GAAa,AAAK,AAAmB,IAApB;AAOR,UAN/B,YAAiB,qBACK,AACc,aADhC,AAAK,AAAQ,IAAT,mBACiB,aAAhB,AAAU,SAAD,6BACV,AAAK,AAAmB,IAApB,kCACI,aAAZ,AAAS,QAAD,OAAmC,CAAX,aAAjB,AAAU,SAAD,iBAAqB,GAC7B,aAAhB,AAAU,SAAD,cACQ,aAAjB,AAAU,SAAD;AAEsD,UADnE,YACI,2BAAoB,SAAS,EAAE,AAAM,AAAY;AACG,UAAxD,gBAAgB,8BAAuB,SAAS,EAAE;AAC5B,UAAtB,AAAe;AAEyC,UADxD,cAAc,6BACV,aAAa,EAAE,AAAK,AAAmB,IAApB;AAEa,UAApC,AAAe,6BAAS,WAAW;AAiBnB,UAhBhB,6BACI,MAAM,EACN,qBACA,SAAS,EACT,WAAW,EACX,AAAY,WAAD,QACK,AACW,aAD3B,AAAY,WAAD,QACY,aAAnB,AAAY,WAAD,WAAU,iBACrB,AAAK,AAAmB,IAApB,iCACR,AAAY,WAAD,QACQ,AACQ,aAD3B,AAAY,WAAD,WACY,aAAnB,AAAY,WAAD,WAAU,iBACrB,AAAK,AAAmB,IAApB,iCACU,aAAlB,AAAY,WAAD,uBAAS,AAAK,AAAmB,IAApB,kCACxB,AAAS,QAAD,KACU,aAAlB,AAAY,WAAD,uBAAS,AAAK,AAAmB,IAApB,kCACxB,AAAS,QAAD;AAgBN,UAfN,iBACI,MAAM,EACA,cAAN,KAAK,GACL,kBACsB,AAAyB,aAA1C,AAAY,WAAD,SAA0B,aAAlB,AAAY,WAAD,UAAS,IACpB,aAAhB,AAAU,SAAD,UAAS,GACL,AAA0B,aAA1C,AAAY,WAAD,QAA0B,aAAnB,AAAY,WAAD,WAAU,IACnB,aAAjB,AAAU,SAAD,WAAU,IAC3B,uCACmD,OAAxC,AAAK,AAAmB,AAAU,IAA9B,6CAA8B,OACrC,AAAM,AAAY,AAAY,0EACxB,AAAK,AAAmB,AAAU,IAA9B,oDACF,AAAK,AAAmB,AAAU,IAA9B,sDACJ,AAAK,AAAmB,AAAU,IAA9B,qDACL,AAAK,AAAmB,AAAU,IAA9B,2CACnB;;;IAGV;4BAIW,QAAe,UAAgB,aAAmB;;AACjD;AACF;AACH;AACA;AAAW;AACI;AACd;AACA;AAEN,eAAS,QAAQ,GACb,AAAM,KAAD,gBAAG,AAAM,AAAW,AAAgB,mDACzC,QAAA,AAAK,KAAA;AAC4C,QAAnD,OAAO,AAAM,AAAW,AAAe,AAAQ,+CAAP,KAAK;AAC7C,sBAAI,wBAAkB,IAAI;AAGoC,UAF5D,AAAU,SAAD,SAAS,AAAK,AAAmB,AAAM,IAA1B,6BAA6B,OAC7C,AAAK,AAAmB,IAApB,4BACJ,AAAM,AAAY,AAAY;AAGwB,UAF5D,AAAY,WAAD,SAAS,AAAK,AAAmB,AAAY,IAAhC,mCAAmC,aACrD,AAAK,IAAD,kCAAC,OAAoB,kBACzB,AAAM,AAAY,AAAY;AACyB,UAA7D,AAAY,WAAD,eAAe,AAAK,AAAmB,IAApB;AACI,UAAlC,QAAQ,iBAAW,IAAI,EAAE,QAAQ;AACjC,cAAI,AAAM,0CAA+B;AACG,YAA1C,qBAAqB;AACS,YAA9B,AAAmB,kBAAD,QAAQ,IAAI;AACoB,YAAlD,AAAmB,kBAAD,eAAe,AAAK,IAAD;AACG,YAAxC,AAAmB,kBAAD,YAAY,AAAK,IAAD;AACQ,YAA1C,AAAmB,kBAAD,QAAc,cAAN,KAAK;AAEqB,YADpD,AAAmB,kBAAD,cAA+C,MAAlC,AAAM,AAAkB,+CAAA,OACnD,AAAM,AAAY,AAAY;AACF,YAAhC,AAAmB,kBAAD,SAAS,KAAK;AACI,YAApC,AAAmB,kBAAD,aAAa,KAAK;AACiB,YAArD,AAAM,uCAA4B,kBAAkB;AACrB,YAA/B,QAAQ,AAAmB,kBAAD;AACU,YAApC,QAAQ,AAAmB,kBAAD;;AAGyC,UADrE,YACI,oBAAmB,cAAN,KAAK,GAAa,AAAK,AAAmB,IAApB;AAKR,UAJ/B,YAAiB,qBACK,aAAlB,AAAK,AAAQ,IAAT,+BAAgB,AAAK,AAAmB,IAApB,kCACZ,aAAZ,AAAS,QAAD,QAAwB,AAAI,aAArB,AAAU,SAAD,WAAU,IAAY,KAAE,IAChC,aAAhB,AAAU,SAAD,cACQ,aAAjB,AAAU,SAAD;AAEsD,UADnE,YACI,2BAAoB,SAAS,EAAE,AAAM,AAAY;AACG,UAAxD,gBAAgB,8BAAuB,SAAS,EAAE;AAC5B,UAAtB,AAAe;AAEyC,UADxD,cAAc,6BACV,aAAa,EAAE,AAAK,AAAmB,IAApB;AACa,UAApC,AAAe,6BAAS,WAAW;AAiBnB,UAhBhB,6BACI,MAAM,EACN,qBACA,SAAS,EACT,WAAW,EACX,AAAY,WAAD,OACK,AACW,aAD3B,AAAY,WAAD,QACY,aAAnB,AAAY,WAAD,WAAU,iBACrB,AAAK,AAAmB,IAApB,iCACR,AAAY,WAAD,OACQ,AACQ,aAD3B,AAAY,WAAD,WACY,aAAnB,AAAY,WAAD,WAAU,iBACrB,AAAK,AAAmB,IAApB,iCACS,aAAjB,AAAY,WAAD,sBAAQ,AAAK,AAAmB,IAApB,kCACvB,AAAS,QAAD,KACS,aAAjB,AAAY,WAAD,sBAAQ,AAAK,AAAmB,IAApB,kCACvB,AAAS,QAAD;AAgBN,UAfN,iBACI,MAAM,EACA,cAAN,KAAK,GACL,kBACsB,AAAyB,aAA1C,AAAY,WAAD,SAA0B,aAAlB,AAAY,WAAD,UAAS,IACpB,aAAhB,AAAU,SAAD,UAAS,GACL,AAA0B,aAA1C,AAAY,WAAD,QAA0B,aAAnB,AAAY,WAAD,WAAU,IACnB,aAAjB,AAAU,SAAD,WAAU,IAC3B,uCACmD,OAAxC,AAAK,AAAmB,AAAU,IAA9B,6CAA8B,OACrC,AAAM,AAAY,AAAY,0EACxB,AAAK,AAAmB,AAAU,IAA9B,oDACF,AAAK,AAAmB,AAAU,IAA9B,sDACJ,AAAK,AAAmB,AAAU,IAA9B,qDACL,AAAK,AAAmB,AAAU,IAA9B,2CACnB;;;IAGV;iBAE6B,MAAa;AAC1B,kBAAQ,sBAClB,YACA,IAAI,EACJ,AAAK,IAAD,WACQ,aAAZ,AAAS,QAAD,QAA2C,aAApC,AAAM,AAAW,AAAc,2DAAO,AAAK,IAAD,eAC7C,aAAZ,AAAS,QAAD,QAA0C,aAAnC,AAAM,AAAW,AAAc,0DAAM,AAAK,IAAD;AAC5D,YAAO,oCAA4B,KAAK,EAAE,IAAI;IAChD;iBAE6B,MAAa;AAC1B,kBAAQ,oBAClB,YACA,IAAI,EACJ,AAAK,IAAD,WACQ,aAAZ,AAAS,QAAD,QAA2C,aAApC,AAAM,AAAW,AAAc,2DAAO,AAAK,IAAD,eAC7C,aAAZ,AAAS,QAAD,QAA0C,aAAnC,AAAM,AAAW,AAAc,0DAAM,AAAK,IAAD;AAC5D,YAAO,oCAA4B,KAAK,EAAE,IAAI;IAChD;wBAEiC;AAC/B,YAAsC,WAA/B,AAAK,AAAmB,IAApB,iCACE,uBAAL,IAAI,eAAqB,AAAK,AAAe,IAAhB,kCACvB,uBAAL,IAAI,gBAAiC,WAAb,AAAK,IAAD;IACvC;;;QAlgBwB;QAAY;IAG9B;IAEC;IACA;IACA,kBAAa;IACb,kBAAa;IACb,kBAAa;IACb;IACA;IACA;IACA;IACF,aAAQ;IACN;IACF,sBAAiB;IACjB,oBAAe;IACf,cAAS;IACT,eAAU;IACV;IACE,eAAU;IACJ,mBAAsB;IAC9B;IACE,mBAAc;IACd,kBAAa;IACf,+BAA0B;IACrB;IA3Bc;IAAY;AAC9B,gEAAe,aAAa;;EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBCwBX,aAAiB,cACtB,uBAAqB;;AACtC,oBAAI,mBAAY,WAAW,EAAE,YAAY,iCAAE;AACN,QAAnC,cAAqB,WAAN,WAAN,gCAAa,YAAY;AAEhB,QAD0B,UAAnB,WAAlB,WAAP,yEACI,cAAc;AACb,qBAAS;AACd,YAAuB,YAAZ,WAAP,4BAAsB,WACH,YAAZ,WAAP,4BAAsB,aACH,YAAZ,WAAP,4BAAsB,eACH,YAAZ,WAAP,4BAAsB,kBACH,YAAZ,WAAP,4BAAsB;AACxB,yBAA6B,WAAlB,WAAP;AAEa,YAD6B,UAAnB,WAAlB,WAAP,+EACI,WAAW;AAEC,YAD4B,UAAnB,WAAlB,WAAP,gFACI,YAAY;AAEmD,qBADnE,iBACK,WAD6B,WAAlB,WAAP,iFACiB,YAAO,aAAQ,WAAW,EAAE,YAAY;;;AAGjB,UAAjC,UAAZ,WAAN,oDAAiD;AACjD,yBAAuB,WAAZ,WAAP,yCAA4B,aACT,YAAZ,WAAP,4BAAsB;AAER,YAD4B,UAAnB,WAAlB,WAAP,uEACI,YAAY;;AAGA,YAD4B,UAAnB,WAAlB,WAAP,uEACI,YAAY;AACoD,YAAxB,UAAnB,WAAlB,WAAP,sEAAyD,WAAW;;AAGL,mBADjE,iBACK,WAD6B,WAAlB,WAAP,iFACiB,YAAO,aAAQ,iBAAY;;AAGvD,sBAAI,MAAM,GACR,AAAmE,gDAAH,KAA3B,WAAZ,WAAN,kFAAwC,4CAAK;AAC9C,QAApB,qBAAgB;;IAEpB;2BAIsC,QAAkB;AACtD,eAAS,OAAO,GAAG,AAAK,IAAD,gBAAG,AAAa,YAAD,YAAS,OAAA,AAAI,IAAA;AACvC,2BAAe,AAAY,YAAA,QAAC,IAAI;AAC1C,YAAU,WAAN,qCAA4B;;AAIhC,iBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,AAAS,MAAV,qBAAkB,IAAA,AAAC,CAAA;AACR,UAAnC,sBAAiB,AAAO,AAAQ,MAAT,iBAAU,CAAC;AAGc,UAFhD,AAAe,AAAoB,2CAAG,YAAY,GAC5C,AAAiB,4BAAI,AAAO,AAAQ,MAAT,iBAAU,CAAC,KACtC,AAAmB,8BAAI,AAAO,AAAQ,MAAT,iBAAU,CAAC;;;AAGT,MAAzC,8BAAwB;AACqB,MAA7C,gCAA0B;IAC5B;wBAkD+B,eAAY,cAAoB;AACjD,8BAAoB;AAChC,UAAW,0BAAP;AAS6D,QAR5C,AAK4B,YALxC,WAAP,4BAAsB,WACK,YAAZ,WAAP,4BAAsB,aACH,YAAZ,WAAP,4BAAsB,eACH,YAAZ,WAAP,4BAAsB,eACH,YAAZ,WAAP,4BAAsB,kBACH,YAAZ,WAAP,4BAAsB,gCACH,WAAZ,WAAP,yCAA4B,YAC9B,AAAkB,iBAAD,SAAS,AAAQ,AAAoB,OAArB,8BACjC,AAAkB,iBAAD,SAAS,AAAQ,AAAkB,OAAnB;AACvC,YAAI,AAAQ,AAAkB,OAAnB,8BAA6B;AACqB,UAA3D,AAAkB,iBAAD,UAAU,AAAQ,AAAkB,OAAnB;;;AAItC,UAAW,uBAAP;AACF,YAAY,wBAAR,OAAO,eAAqB,AAAQ,OAAD;AACO,UAA5C,AAAkB,iBAAD,SAAuB;AACU,UAAlD,AAAkB,iBAAD,eAAC,mBAAqB,WAAP;;AAEc,UAA9C,AAAkB,iBAAD,SAAuB;AACU,UAAlD,AAAkB,iBAAD,eAAC,mBAAqB,WAAP;;;AAGU,QAA5C,AAAkB,iBAAD,SAAuB;;AAE1C,YAAO,kBAAiB;IAC1B;0BAS+B,eAAY,cAAoB;AACjD,gCAAsB;AAClC,UAAW,0BAAP;AAC2D,QAA7D,AAAoB,mBAAD,SAAS,AAAQ,AAAoB,OAArB;AACsC,QAAzE,AAAoB,mBAAD,eAAe,AAAQ,AAAoB,OAArB;;AAQK,MAAhD,AAAoB,mBAAD,SAAuB;AAC1C,YAAO,oBAAmB;IAC5B;iBAGwB,aACN,gBAA6B;AAC/B,gCAA4B,WAAN;AACpC,oBAAI,WAAW;AACb,YAAW,0BAAP;AAO8C,UANhD,iBAAY,AACkB,mBADC,IAAI,QAC3B,sBAAiB,QACjB,AAAc,oCAAiB,OACjC,AAAc,mCACW,AAAc,WAAhC,WAAP,uDAA0C,OACtC,AAAQ,AAAkB,OAAnB,4BACkB,WAAlB,WAAP;;AAiBsC,QANlD,mBAAc,AACgB,mBADG,IAAI,QAC7B,sBAAiB,QACjB,AAAc,oCAAiB,OACjC,AAAc,AAAc,2CACH,AAAgB,WAAlC,WAAP,yDAA4C,OACjC,WAAP,0BACyB,WAAlB,WAAP;;AAEV,YAAW,0BAAP;AAOgD,UANlD,iBAAY,AACkB,mBADC,IAAI,QAC3B,sBAAiB,QACjB,AAAc,sCAAmB,OACnC,AAAc,qCACW,AAAgB,WAAlC,WAAP,yDAA4C,OACxC,AAAQ,AAAkB,OAAnB,4BACkB,WAAlB,WAAP;;AAiBwC,QANpD,mBAAc,AACgB,mBADG,IAAI,QAC7B,sBAAiB,QACjB,AAAc,sCAAmB,OACnC,AAAc,AAAgB,6CACL,AAAkB,WAApC,WAAP,2DAA8C,OACnC,WAAP,0BACyB,WAAlB,WAAP;;AAEA,8BAAoB;AAC4B,MAA5D,AAAkB,iBAAD,SAAC,gBAAkB,WAAV,gCAAsB;AAChD,UAAW,uBAAP;AACF,YAAY,wBAAR,OAAO,eAAqB,AAAQ,OAAD;AACO,UAA5C,AAAkB,iBAAD,SAAuB;AACU,UAAlD,AAAkB,iBAAD,eAAC,mBAAqB,WAAP;;AAEc,UAA9C,AAAkB,iBAAD,SAAuB;AACU,UAAlD,AAAkB,iBAAD,eAAC,mBAAqB,WAAP;;;AAGU,QAA5C,AAAkB,iBAAD,SAAuB;;AAE1C,YAAO,kBAAiB;IAC1B;mBAG0B,aACR,gBAA6B;AAC/B,gCAA4B,WAAN;AACpC,oBAAI,WAAW;AACb,YAAW,0BAAP;AAoBwD,UAnBvC,AAMyB,YANrC,WAAP,4BAAsB,WACK,YAAZ,WAAP,4BAAsB,aACH,YAAZ,WAAP,4BAAsB,eACH,YAAZ,WAAP,4BAAsB,eACH,YAAZ,WAAP,4BAAsB,kBACH,YAAZ,WAAP,4BAAsB,gCACH,WAAZ,WAAP,yCAA4B,aACT,YAAZ,WAAP,4BAAsB,YACxB,mBAAc,AAAoB,mBAAD,IAAI,OACjC,AAAc,mCACW,AAAc,WAAhC,WAAP,uDAA0C,OACtC,AAAQ,AAAkB,OAAnB,4BACkB,WAAlB,WAAP,sDACR,mBAAc,AACc,mBADK,IAAI,QAC/B,sBAAiB,QACjB,AAAc,0CAAuB,OACvC,AAAc,yCACW,AAAoB,WAAtC,WAAP,6DAAgD,OACrC,WAAP,8BACyB,WAAlB,WAAP;;AAkBkC,QANlD,qBAAgB,AACc,mBADK,IAAI,QAC/B,sBAAiB,QACjB,AAAc,0CAAuB,OACvC,AAAc,AAAoB,iDACT,AAAgB,WAAlC,WAAP,yDAA4C,OACjC,WAAP,0BACyB,WAAlB,WAAP;AAQ4C,QANtD,mBAAc,AACgB,mBADG,IAAI,QAC7B,sBAAiB,QACjB,AAAc,0CAAuB,OACvC,AAAc,yCACW,AAAoB,WAAtC,WAAP,6DAAgD,OACrC,WAAP,8BACyB,WAAlB,WAAP;;AAEV,YAAW,0BAAP;AAoB0D,UAnBpD,AAMgC,sBANxC,OAAO,KACS,wBAAR,OAAO,KACC,0BAAR,OAAO,KACC,0BAAR,OAAO,KACC,6BAAR,OAAO,KACC,sBAAR,OAAO,KACC,+BAAR,OAAO,KACC,wBAAR,OAAO,IACT,mBAAc,AAA4B,mBAAT,IAAI,QAAQ,sBAAiB,OAC1D,AAAc,qCACW,AAAgB,WAAlC,WAAP,yDAA4C,OACxC,AAAQ,AAAkB,OAAnB,4BACkB,WAAlB,WAAP,wDACR,mBAAc,AACc,mBADK,IAAI,QAC/B,sBAAiB,QACjB,AAAc,4CAAyB,OACzC,AAAc,2CACW,AAAsB,WAAxC,WAAP,+DAAkD,OACvC,WAAP,8BACyB,WAAlB,WAAP;;AAiBoC,QANpD,qBAAgB,AACc,mBADK,IAAI,QAC/B,sBAAiB,QACjB,AAAc,sCAAmB,OACnC,AAAc,AAAgB,6CACL,AAAkB,WAApC,WAAP,2DAA8C,OACnC,WAAP,0BACyB,WAAlB,WAAP;AAO8C,QANxD,mBAAc,AACgB,mBADG,IAAI,QAC7B,sBAAiB,QACjB,AAAc,4CAAyB,OACzC,AAAc,2CACW,AAAsB,WAAxC,WAAP,+DAAkD,OACvC,WAAP,8BACyB,WAAlB,WAAP;;AAEA,gCAAsB;AACK,MAAvC,AAAoB,mBAAD,SAAC,gBAAQ;AACiB,MAA7C,AAAoB,mBAAD,eAAC,mBAAc;AACmB,MAArD,AAAoB,AAAM,mBAAP,sCAA0B,WAAP;AACU,MAAhD,AAAoB,mBAAD,SAAuB;AAC1C,YAAO,oBAAmB;IAC5B;8BAyDgD;AAC9C,eAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAiB,gBAAD,YAAS,IAAA,AAAC,CAAA;AAE0B,QADtE,cACoC,WAAb,WAAb,WAAN,sDAAiC,AAAgB,AAAI,gBAAJ,QAAC,CAAC;AACvD,wBAAwB,WAAZ,WAAP,yCAA4B,0BACtB,WAAP,4BAAsB;AACL,0DACA,WAAR,WAAP,mCAAgB,AAAgB,AAAI,gBAAJ,QAAC,CAAC;AAC1B,0BAAY,kBAAa,MAAM,cAAc;AAKpC,UAJrB,AAAe,cAAD,aAAC,gBAAqC,WAAlB,WAAP,2DACvB,SAAS,EACT,AAAgB,AAAI,gBAAJ,QAAC,CAAC,iBAClB,AAAgB,AAAI,gBAAJ,QAAC,CAAC,uBAClB,gBAAgB;AACR,4BAAc,oBAAe,MAAM,cAAc;AAMpC,UALzB,AAAe,cAAD,eAAC,gBACV,WAD+B,WAAP,6DAErB,WAAW,EACX,AAAgB,AAAI,gBAAJ,QAAC,CAAC,iBAClB,AAAgB,AAAI,gBAAJ,QAAC,CAAC,uBAClB,gBAAgB;;AAEL,0DAAgC,WAAR,WAAP,mCAAgB;AACxC,0BAAY,kBAAa,MAAM,cAAc;AAKpC,UAJrB,AAAe,cAAD,aAAC,gBAAqC,WAAlB,WAAP,2DACvB,SAAS,EACT,AAAgB,AAAI,gBAAJ,QAAC,CAAC,iBAClB,AAAgB,AAAI,gBAAJ,QAAC,CAAC,uBAClB,gBAAgB;AACR,4BAAc,oBAAe,MAAM,cAAc;AAMpC,UALzB,AAAe,cAAD,eAAC,gBACV,WAD+B,WAAP,6DAErB,WAAW,EACX,AAAgB,AAAI,gBAAJ,QAAC,CAAC,iBAClB,AAAgB,AAAI,gBAAJ,QAAC,CAAC,uBAClB,gBAAgB;;;IAG9B;gCAGkD;AAChD,eAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAmB,kBAAD,YAAS,IAAA,AAAC,CAAA;AAE0B,QADxE,cACoC,WAAb,WAAb,WAAN,sDAAiC,AAAkB,AAAI,kBAAJ,QAAC,CAAC;AACzD,wBAAwB,WAAZ,WAAP,yCAA4B,0BACtB,WAAP,4BAAsB;AACL,0DACA,WAAR,WAAP,mCAAgB,AAAkB,AAAI,kBAAJ,QAAC,CAAC;AAC5B,0BAAY,kBAAa,OAAO,cAAc;AAM/B,UAL3B,AAAe,cAAD,aAAC,gBACV,WAD6B,WAAP,6DAEnB,SAAS,EACT,AAAkB,AAAI,kBAAJ,QAAC,CAAC,iBACpB,AAAkB,AAAI,kBAAJ,QAAC,CAAC,uBACpB,kBAAkB;AACd,4BAAc,oBAAe,OAAO,cAAc;AAMnC,UAL3B,AAAe,cAAD,eAAC,gBACV,WAD+B,WAAP,+DAErB,WAAW,EACX,AAAkB,AAAI,kBAAJ,QAAC,CAAC,iBACpB,AAAkB,AAAI,kBAAJ,QAAC,CAAC,uBACpB,kBAAkB;;AAEP,0DAAgC,WAAR,WAAP,mCAAgB;AACxC,0BAAY,kBAAa,OAAO,cAAc;AAM/B,UAL3B,AAAe,cAAD,aAAC,gBACV,WAD6B,WAAP,6DAEnB,SAAS,EACT,AAAkB,AAAI,kBAAJ,QAAC,CAAC,iBACpB,AAAkB,AAAI,kBAAJ,QAAC,CAAC,uBACpB,kBAAkB;AACd,4BAAc,oBAAe,OAAO,cAAc;AAMnC,UAL3B,AAAe,cAAD,eAAC,gBACV,WAD+B,WAAP,+DAErB,WAAW,EACX,AAAkB,AAAI,kBAAJ,QAAC,CAAC,iBACpB,AAAkB,AAAI,kBAAJ,QAAC,CAAC,uBACpB,kBAAkB;;;IAGhC;wCAIuB;AACjB,cAA8B,aAA1B,AAAmB,kBAAD,aAAU;AACpC,uBAAO,AAAmB,kBAAD;AAEiD,QADxE,cACoC,WAAb,WAAb,WAAN,sDAAiC,AAAkB,AAAI,kBAAJ,QAAC,CAAC;AACzD,wBAAwB,WAAZ,WAAP,yCAA4B,0BACtB,WAAP,4BAAsB;AACL,0DACA,WAAR,WAAP,mCAAgB,AAAkB,AAAI,kBAAJ,QAAC,CAAC;AAC5B,0BAAY,yBAAoB,MAAM,MAAM,cAAc;AAClC,UAApC,AAAe,cAAD,aAAa,SAAS;AACxB,4BACR,2BAAsB,MAAM,MAAM,cAAc;AACZ,UAAxC,AAAe,cAAD,eAAe,WAAW;AACQ,UAAhD,AAAmB,kBAAD,UAAQ,AAAkB,kBAAA,QAAC,CAAC;AAC3C,UAAH,IAAA,AAAC,CAAA;;AAEkB,0DAAgC,WAAR,WAAP,mCAAgB;AACxC,0BAAY,yBAAoB,MAAM,MAAM,cAAc;AAClC,UAApC,AAAe,cAAD,aAAa,SAAS;AACxB,4BACR,2BAAsB,MAAM,MAAM,cAAc;AACZ,UAAxC,AAAe,cAAD,eAAe,WAAW;AACQ,UAAhD,AAAmB,kBAAD,UAAQ,AAAkB,kBAAA,QAAC;AAC1C,UAAH,IAAA,AAAC,CAAA;;;IAGP;sCAIuB,kBAAuB;AACxC,cAA4B,aAAxB,AAAiB,gBAAD,aAAU;AAClC,uBAAO,AAAiB,gBAAD;AAEiD,QADtE,cACoC,WAAb,WAAb,WAAN,sDAAiC,AAAgB,AAAI,gBAAJ,QAAC,CAAC;AACvD,wBAAwB,WAAZ,WAAP,yCAA4B,0BACtB,WAAP,4BAAsB;AACL,0DACA,WAAR,WAAP,mCAAgB,AAAgB,AAAI,gBAAJ,QAAC,CAAC;AAC1B,0BAAY,yBAAoB,MAAM,MAAM,cAAc;AAClC,UAApC,AAAe,cAAD,aAAa,SAAS;AACxB,4BACR,2BAAsB,MAAM,MAAM,cAAc;AACZ,UAAxC,AAAe,cAAD,eAAe,WAAW;AACxC,cAAuB,YAAZ,WAAP,4BAAsB,WACH,YAAZ,WAAP,4BAAsB,aACH,YAAZ,WAAP,4BAAsB,eACH,YAAZ,WAAP,4BAAsB,kBACH,YAAZ,WAAP,4BAAsB,gCACH,WAAZ,WAAP,yCAA4B,aACT,YAAZ,WAAP,4BAAsB;AACxB,gBAAI,AAAgB,AAAI,AAAoB,gBAAxB,QAAC,CAAC,yBAAyB,4BAC3C,AAAgB,AAAI,AAAa,gBAAjB,QAAC,CAAC,mBAAkB,2BACtC,AAAwB,oBAAJ;;AAEtB,gBAAI,AAAgB,AAAI,AAAoB,gBAAxB,QAAC,CAAC,yBAAyB,mBAC3C,AAAgB,AAAI,AAAa,gBAAjB,QAAC,CAAC,mBAAkB,kBACtC,AAAwB,oBAAJ;;AAEoB,UAA5C,AAAiB,gBAAD,UAAQ,AAAgB,gBAAA,QAAC,CAAC;AACvC,UAAH,IAAA,AAAC,CAAA;;AAEkB,0DAAgC,WAAR,WAAP,mCAAgB;AACxC,0BAAY,yBAAoB,MAAM,MAAM,cAAc;AAClC,UAApC,AAAe,cAAD,aAAa,SAAS;AACxB,4BACR,2BAAsB,MAAM,MAAM,cAAc;AACZ,UAAxC,AAAe,cAAD,eAAe,WAAW;AACxC,cAAI,AAAgB,AAAI,AAAa,gBAAjB,QAAC,oBAAmB,kBACtC,AAAwB,oBAAJ;AACsB,UAA5C,AAAiB,gBAAD,UAAQ,AAAgB,gBAAA,QAAC;AACtC,UAAH,IAAA,AAAC,CAAA;;;AAGL,YAAO,kBAAiB;IAC1B;;AAGE,eAAS,IAAI,GAAG,AAAE,CAAD,gCAAoC,WAAd,WAAb,WAAN,0DAAyC,IAAA,AAAC,CAAA;AACpB,mDACJ,WAAb,WAAb,WAAN,sDAAiC,CAAC;AACtC,iBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,AAAS,MAAV,qBAAkB,IAAA,AAAC,CAAA;AAC3C,eAAK,AAAO,AAAY,MAAb,0BAAsB,WAC7B,AAAO,MAAD,mBAAgB;AACW,YAAnC,sBAAiB,AAAO,AAAQ,MAAT,iBAAU,CAAC;AAClC,gBAAI,AAAO,AAAY,MAAb,mBAAgB,UACtB,AAAO,AAAY,MAAb,mBAAgB,YACtB,AAAO,AAAY,MAAb,mBAAgB,cACtB,AAAO,AAAY,MAAb,mBAAgB,iBACtB,AAAO,AAAY,MAAb,mBAAgB,oBACtB,AAAO,AAAY,MAAb,0BAAsB,WAC5B,AAAO,AAAY,MAAb,mBAAgB;AACxB,kBAAI,AAAe,AAAoB,2CAAG,4BACtC,AAAe,AAAa,qCAAG;AACG,gBAApC,uBAAkB,AAAO,AAAQ,MAAT,iBAAU,CAAC;;;AAGrC,kBAAI,AAAe,AAAoB,2CAAG,mBACtC,AAAe,AAAa,qCAAG;AACG,gBAApC,uBAAkB,AAAO,AAAQ,MAAT,iBAAU,CAAC;;;;AAIJ,YAAnC,sBAAiB,AAAO,AAAQ,MAAT,iBAAU;AACjC,gBAAI,AAAe,AAAa,qCAAG;AACG,cAApC,uBAAkB,AAAO,AAAQ,MAAT,iBAAU;AAClC;;;;;AAKR,YAAO;IACT;;AAIE;iBAAS,IAAI,GAAG,AAAE,CAAD,gCAAoC,WAAd,WAAb,WAAN,0DAAyC,IAAA,AAAC,CAAA;AACpB,qDACJ,WAAb,WAAb,WAAN,sDAAiC,CAAC;AACtC,mBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,AAAS,MAAV,qBAAkB,IAAA,AAAC,CAAA;AACR,YAAnC,sBAAiB,AAAO,AAAQ,MAAT,iBAAU,CAAC;AAClC,gBAAI,AAAe,AAAoB,2CAAG,mBACtC,AAAe,AAAa,qCAAG;AAChB,cAAjB,kBAAa;AACb;;AAEkB,cAAlB,kBAAa;;;AAGnB,YAAO;IACT;yBAIqB,aACiB,cAC9B,YACA;;AACa,MAAnB,aAAQ,WAAW;AACE,MAArB,cAAS,YAAY;AAErB,UAAU,WAAN,qCAA4B;AAE6B,QADrD,WAAN,mCACI,2BAAsB,aAAQ,WAAW,EAAE,UAAU;;AAI3D,UAA2C,aAAxB,+BAAd,OAAuB,WAAN,oCAAsC;AACrD,gCAAoB;AAGzB,YAAI,AAAiB,AAAO,mCAAG,GAC7B,AAAuD,yCAAnB;AAGjC,0BAAc;AACnB,uBAAU,WAAN;AACF,wBAAI,AAAiB;AACnB,yBAAS,gBAA4C,WAAP,WAAd,WAAb,WAAN,8DAA0C,MACjD,aAAF,CAAC,KAAI,GACL,IAAC,aAAD,CAAC;AACqC,yDACJ,WAAb,WAAb,WAAN,sDAAiC,CAAC;AAGtC,uBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,AAAS,MAAV,qBAAkB,IAAA,AAAC,CAAA;AACR,gBAAnC,sBAAiB,AAAO,AAAQ,MAAT,iBAAU,CAAC;AAClC,oBAAI,AAAe,AAAoB,2CAAG,UAAU,IAChD,AAAe,AAAa,qCAAG,WAAW;AACR,kBAApC,uBAAkB,AAAO,AAAQ,MAAT,iBAAU,CAAC;AACnC;;;;AAMN,gBAAI,wBAAmB;AACrB,uBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAiB,iCAAQ,IAAA,AAAC,CAAA;AAC5C,oBAAkC,YAA9B,AAAgB,qCAChB,AAAgB,AAAI,6BAAH,CAAC;AACF,kBAAlB,cAAc;AACd;;;;AAMN,gBAAI,WAAW;AACb,uBAAS,IAA4B,aAAxB,AAAiB,kCAAS,GAAG,AAAE,CAAD,IAAI,GAAG,IAAA,AAAC,CAAA;AAEgB,gBADjE,cAC+B,WAAb,WAAb,WADI,sDACuB,AAAgB,AAAI,6BAAH,CAAC;AAC/B,gEACA,WAAR,WAAP,mCAAgB,AAAgB,AAAI,6BAAH,CAAC;AAGtC,oBAAmC,YAA9B,AAAgB,qCACb,AAAgB,AAAI,6BAAH,CAAC,qBACrB,AAAiB,AAAO,mCAAG;AAClB,kCACR,yBAAoB,MAAM,MAAM,cAAc;AACtC,oCACR,2BAAsB,MAAM,MAAM,cAAc;AAChB,kBAApC,AAAe,cAAD,aAAa,SAAS;AACI,kBAAxC,AAAe,cAAD,eAAe,WAAW;AAExC,sBAAI,AAAgB,AAAI,AAAoB,6BAAvB,CAAC,yBAAyB,UAAU,IACrD,AAAgB,AAAI,AAAa,6BAAhB,CAAC,mBAAkB,WAAW,EACjD,AAAwB,oBAAJ;AACsB,kBAA5C,AAAiB,+BAAO,AAAgB,6BAAC,CAAC;sBAIvC,KAAkC,YAA9B,AAAgB,qCACrB,AAAgB,AAAI,6BAAH,CAAC;AACR,kCAAY,kBAAa,OAAO,cAAc;AACtB,kBAApC,AAAe,cAAD,aAAa,SAAS;AACxB,oCAAc,oBAAe,OAAO,cAAc;AACtB,kBAAxC,AAAe,cAAD,eAAe,WAAW;AAExC,sBAAI,AAAgB,AAAI,AAAoB,6BAAvB,CAAC,yBAAyB,UAAU,IACrD,AAAgB,AAAI,AAAa,6BAAhB,CAAC,mBAAkB,WAAW,EACjD,AAAwB,oBAAJ;AACqB,kBAA3C,AAAmB,8BAAI,AAAgB,6BAAC,CAAC;AACG,kBAA5C,AAAiB,+BAAO,AAAgB,6BAAC,CAAC;;;;;;AAOV,UADxC,oBAAoB,uCAChB,uBAAkB,iBAAiB;AAGzC,uBAA6B,WAAlB,WAAP;AACF,yBAAK,iBAAiB;AASG,YARJ,AAK+B,YAL3C,WAAP,4BAAsB,aACK,YAAZ,WAAP,4BAAsB,UACH,YAAZ,WAAP,4BAAsB,cACH,YAAZ,WAAP,4BAAsB,wBACH,WAAZ,WAAP,yCAA4B,iCACT,WAAZ,WAAP,yCAA4B,mBACT,YAAZ,WAAP,4BAAsB,iBACxB,kBAAa,uBACb,kBAAa;AACnB,yBAAS,gBAA4C,WAAP,WAAd,WAAb,WAAN,8DAA0C,MACjD,aAAF,CAAC,KAAI,GACL,IAAC,aAAD,CAAC;AACqC,0DACJ,WAAb,WAAb,WAAN,sDAAiC,CAAC;AACtC,4BAAI;AACF,yBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAQ,AAAS,OAAV,qBAAkB,IAAA,AAAC,CAAA;AACR,kBAApC,sBAAiB,AAAQ,AAAQ,OAAT,iBAAU,CAAC;AACnC,sBAAI,AAAe,AAAoB,2CAAG,QACtC,AAAW,UAAD,IAAI;AAChB;;AAK+C,kBAHjD,AAAe,AAAoB,AAAc,2CAAX,UAAU,IACxC,AAAe,AAAa,qCAAG,WAAW,GAC5C,AAAiB,4BAAI,AAAQ,AAAQ,OAAT,iBAAU,CAAC,KACvC,AAAmB,8BAAI,AAAQ,AAAQ,OAAT,iBAAU,CAAC;;AAIJ,gBAA7C,gCAA0B;AAGe,gBAAzC,8BAAwB;;;;;YAQ7B,KAA2C,aAAxB,iCAAd,OAAuB,WAAN,qCAAsC;AAC1D,gCAAoB;AAEzB,iBAAS,IAAI,GAAG,AAAE,CAAD,gCAAoC,WAAd,WAAb,WAAN,0DAAyC,IAAA,AAAC,CAAA;AACpB,qDACJ,WAAb,WAAb,WAAN,sDAAiC,CAAC;AACtC,mBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,AAAS,MAAV,qBAAkB,IAAA,AAAC,CAAA;AACR,YAAnC,sBAAiB,AAAO,AAAQ,MAAT,iBAAU,CAAC;AACf,iCAAiB,AAAO,AAAQ,MAAT,iBAAU,CAAC;AACrD,6BAAI,AAAe,iCAAe,AAAe,cAAD,eAC9C,AAAkB,kBAAL;;;AAKnB,YAA4B,eAAxB,AAAiB,gCAA0B,WAAT,WAAP,sCAC7B,AAAuD,yCAAnB;AAGjC,0BAAc;AACnB,uBAAU,WAAN;AACF,wBAAI,AAAiB;AACiB,YAApC,uBAAkB;AAGlB,gBAAI,wBAAmB;AACrB,uBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAiB,iCAAQ,IAAA,AAAC,CAAA;AAC5C,oBAAI,AAAY,WAAD,IAAI,AAAgB,AAAI,6BAAH,CAAC;AACjB,kBAAlB,cAAc;AACd;;;;AAMN,gBAAI,WAAW;AACA;AACb,uBAAS,IAA4B,aAAxB,AAAiB,kCAAS,GAAG,AAAE,CAAD,IAAI,GAAG,IAAA,AAAC,CAAA;AAEgB,gBADjE,cAC+B,WAAb,WAAb,WADI,sDACuB,AAAgB,AAAI,6BAAH,CAAC;AAElD,gCAAwB,WAAZ,WAAP,yCAA4B,0BACtB,WAAP,4BAAsB;AAEoC,mCAD5D,2BACmB,WAAR,WAAP,mCAAgB,AAAgB,AAAI,6BAAH,CAAC;;AAEH,mCAAnC,2BAAgC,WAAR,WAAP,mCAAgB;AAGnC,gCAAwB,WAAZ,WAAP,yCAA4B,0BACtB,WAAP,4BAAsB;AACxB,sBAAK,AAAgB,AAAa,sCAC1B,AAAgB,AAAI,6BAAH,CAAC,mBACG,aAAxB,AAAiB,gEAA0B,WAAT,WAAP;AAClB,oCACR,yBAAoB,MAAM,MAAM,cAAc;AACtC,sCACR,2BAAsB,MAAM,MAAM,cAAc;AAChB,oBAApC,AAAe,cAAD,aAAa,SAAS;AACI,oBAAxC,AAAe,cAAD,eAAe,WAAW;AACxC,wBAAI,AAAgB,AAAI,AAAoB,6BAAvB,CAAC,yBAAyB,UAAU,IACrD,AAAgB,AAAI,AAAa,6BAAhB,CAAC,mBAAkB,WAAW,EACjD,AAAwB,oBAAJ;AACsB,oBAA5C,AAAiB,+BAAO,AAAgB,6BAAC,CAAC;wBAIvC,KAAI,AAAgB,AAAa,sCAClC,AAAgB,AAAI,6BAAH,CAAC;AACR,oCAAY,kBAAa,OAAO,cAAc;AAC9C,sCACR,oBAAe,OAAO,cAAc;AACJ,oBAApC,AAAe,cAAD,aAAa,SAAS;AACI,oBAAxC,AAAe,cAAD,eAAe,WAAW;AACxC,wBAAI,AAAgB,AAAI,AAAoB,6BAAvB,CAAC,yBAAyB,UAAU,IACrD,AAAgB,AAAI,AAAa,6BAAhB,CAAC,mBAAkB,WAAW,EACjD,AAAwB,oBAAJ;AACqB,oBAA3C,AAAmB,8BAAI,AAAgB,6BAAC,CAAC;AACG,oBAA5C,AAAiB,+BAAO,AAAgB,6BAAC,CAAC;;;AAG5C,sBAAK,AAAgB,AAAa,sCAC1B,AAAgB,AAAI,6BAAH,CAAC,mBACG,aAAxB,AAAiB,gEAA0B,WAAT,WAAP;AAClB,oCACR,yBAAoB,MAAM,MAAM,cAAc;AACtC,sCACR,2BAAsB,MAAM,MAAM,cAAc;AAChB,oBAApC,AAAe,cAAD,aAAa,SAAS;AACI,oBAAxC,AAAe,cAAD,eAAe,WAAW;AACxC,wBAAI,AAAgB,AAAI,AAAa,6BAAhB,CAAC,mBAAkB,WAAW,EACjD,AAAwB,oBAAJ;AACsB,oBAA5C,AAAiB,+BAAO,AAAgB,6BAAC,CAAC;wBAIvC,KAAI,AAAgB,AAAa,sCAClC,AAAgB,AAAI,6BAAH,CAAC;AACR,oCAAY,kBAAa,OAAO,cAAc;AAC9C,sCACR,oBAAe,OAAO,cAAc;AACJ,oBAApC,AAAe,cAAD,aAAa,SAAS;AACI,oBAAxC,AAAe,cAAD,eAAe,WAAW;AACxC,wBAAI,AAAgB,AAAI,AAAa,6BAAhB,CAAC,mBAAkB,WAAW,EACjD,AAAwB,oBAAJ;AACqB,oBAA3C,AAAmB,8BAAI,AAAgB,6BAAC,CAAC;AACG,oBAA5C,AAAiB,+BAAO,AAAgB,6BAAC,CAAC;;;;;;;AAWZ,UADxC,oBAAoB,uCAChB,uBAAkB,iBAAiB;AAGzC,uBAA6B,WAAlB,WAAP;AACF,yBAAK,iBAAiB;AASG,YARJ,AAK+B,YAL3C,WAAP,4BAAsB,aACK,YAAZ,WAAP,4BAAsB,UACH,YAAZ,WAAP,4BAAsB,cACH,YAAZ,WAAP,4BAAsB,wBACH,WAAZ,WAAP,yCAA4B,iCACT,WAAZ,WAAP,yCAA4B,mBACT,YAAZ,WAAP,4BAAsB,iBACxB,kBAAa,uBACb,kBAAa;AACiB,YAApC,uBAAkB;AAClB,0BAAI;AAEF,uBAAS,IAAI,GAAG,AAAE,CAAD,gCAAoC,WAAd,WAAb,WAAN,0DAAyC,IAAA,AAAC,CAAA;AACpB,2DACJ,WAAb,WAAb,WAAN,sDAAiC,CAAC;AACtC,qBAAK,AAAO,AAAY,MAAb,0BAAsB,WAC7B,AAAO,MAAD,mBAAgB;AACxB,sBAAI,WAAW,IAAI;AACjB,6BAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,AAAS,MAAV,qBAAkB,IAAA,AAAC,CAAA;AACR,sBAAnC,sBAAiB,AAAO,AAAQ,MAAT,iBAAU,CAAC;AAGc,sBAFhD,AAAe,AAAa,qCAAG,WAAW,GACpC,AAAiB,4BAAI,AAAO,AAAQ,MAAT,iBAAU,CAAC,KACtC,AAAmB,8BAAI,AAAO,AAAQ,MAAT,iBAAU,CAAC;;;;AAIf,kBAAnC,sBAAiB,AAAO,AAAQ,MAAT,iBAAU;AAGe,kBAFhD,AAAe,AAAa,qCAAG,WAAW,GACpC,AAAiB,4BAAI,AAAO,AAAQ,MAAT,iBAAU,MACrC,AAAmB,8BAAI,AAAO,AAAQ,MAAT,iBAAU;;AAIF,gBAA7C,gCAA0B;AAGe,gBAAzC,8BAAwB;;;;;YAQ7B,KAA2C,aAAxB,mCAAd,OAAuB,WAAN,sCAAsC;AAC1D,gCAAoB;AAGzB,YAA4B,eAAxB,AAAiB,gCAA2C,WAAd,WAAb,WAAN,yDAC7B,AAAuD,yCAAnB;AAGjC,0BAAc;AACnB,uBAAU,WAAN;AACF,wBAAI,AAAiB;AACiB,YAApC,uBAAkB;AAGlB,gBAAI,wBAAmB;AACrB,uBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAiB,iCAAQ,IAAA,AAAC,CAAA;AAC5C,oBAAI,AAAgB,AAAoB,4CACpC,AAAgB,AAAI,6BAAH,CAAC;AACF,kBAAlB,cAAc;AACd;;;;AAMN,gBAAI,WAAW;AACb,uBAAS,IAA4B,aAAxB,AAAiB,kCAAS,GAAG,AAAE,CAAD,IAAI,GAAG,IAAA,AAAC,CAAA;AAEgB,gBADjE,cAC+B,WAAb,WAAb,WADI,sDACuB,AAAgB,AAAI,6BAAH,CAAC;AAC/B,gEACA,WAAR,WAAP,mCAAgB,AAAgB,AAAI,6BAAH,CAAC;AAGtC,oBAAK,AAAgB,AAAoB,4CACjC,AAAgB,AAAI,6BAAH,CAAC,yBACG,aAAxB,AAAiB,gEACmB,WAAd,WAAb,WAAN;AACM,kCACR,yBAAoB,MAAM,MAAM,cAAc;AACtC,oCACR,2BAAsB,MAAM,MAAM,cAAc;AAChB,kBAApC,AAAe,cAAD,aAAa,SAAS;AACI,kBAAxC,AAAe,cAAD,eAAe,WAAW;AAExC,sBAAI,AAAgB,AAAI,AAAoB,6BAAvB,CAAC,yBAAyB,UAAU,IACrD,AAAgB,AAAI,AAAa,6BAAhB,CAAC,mBAAkB,WAAW,EACjD,AAAwB,oBAAJ;AAEsB,kBAA5C,AAAiB,+BAAO,AAAgB,6BAAC,CAAC;sBAIvC,KAAI,AAAgB,AAAoB,4CACzC,AAAgB,AAAI,6BAAH,CAAC;AACR,kCAAY,kBAAa,OAAO,cAAc;AAC9C,oCAAc,oBAAe,OAAO,cAAc;AAC1B,kBAApC,AAAe,cAAD,aAAa,SAAS;AACI,kBAAxC,AAAe,cAAD,eAAe,WAAW;AAExC,sBAAI,AAAgB,AAAI,AAAoB,6BAAvB,CAAC,yBAAyB,UAAU,IACrD,AAAgB,AAAI,AAAa,6BAAhB,CAAC,mBAAkB,WAAW,EACjD,AAAwB,oBAAJ;AAEqB,kBAA3C,AAAmB,8BAAI,AAAgB,6BAAC,CAAC;AACG,kBAA5C,AAAiB,+BAAO,AAAgB,6BAAC,CAAC;;;;;;AAUV,UADxC,oBAAoB,uCAChB,uBAAkB,iBAAiB;AAGzC,uBAA6B,WAAlB,WAAP;AACF,yBAAK,iBAAiB;AACT,kCAAqC,AAKF,YALV,WAAP,4BAAsB,aAC5B,YAAZ,WAAP,4BAAsB,UACH,YAAZ,WAAP,4BAAsB,cACH,YAAZ,WAAP,4BAAsB,wBACH,WAAZ,WAAP,yCAA4B,iCACT,WAAZ,WAAP,yCAA4B,mBACT,YAAZ,WAAP,4BAAsB;AACU,YAApC,uBAAkB;AACgD,YAAlE,eAAe,GAAG,kBAAa,uBAAkB,kBAAa;AAC9D,0BAAI;AAEF,uBAAS,IAAI,GAAG,AAAE,CAAD,gCAAoC,WAAd,WAAb,WAAN,0DAAyC,IAAA,AAAC,CAAA;AACpB,2DACJ,WAAb,WAAb,WAAN,sDAAiC,CAAC;AACtC,8BAAI,AAAO,AAAkB,MAAnB;AACR,sBAAI,AAAe,AAAoB,2CAAG,QACtC,AAAW,UAAD,IAAI;AAChB;;AAEF,2BAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,AAAS,MAAV,qBAAkB,IAAA,AAAC,CAAA;AACR,oBAAnC,sBAAiB,AAAO,AAAQ,MAAT,iBAAU,CAAC;AAElC,wBAAI,eAAe;AAI+B,sBAHZ,YAApC,AAAe,AAAc,2CACrB,AAAgB,AAAc,8CAChC,AAAiB,4BAAI,AAAO,AAAQ,MAAT,iBAAU,CAAC,KACtC,AAAmB,8BAAI,AAAO,AAAQ,MAAT,iBAAU,CAAC;;AAKE,sBAHhD,AAAe,AAAoB,2CAC3B,AAAgB,2CAClB,AAAiB,4BAAI,AAAO,AAAQ,MAAT,iBAAU,CAAC,KACtC,AAAmB,8BAAI,AAAO,AAAQ,MAAT,iBAAU,CAAC;;;;;AAOT,cAA7C,gCAA0B;AAGe,cAAzC,8BAAwB;;;;;AAKhC,YAAO;IACT;2BAG6C,OAAc,UACrB;AACvB;AAAgB;AAC7B,eAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,AAAS,MAAV,qBAAkB,IAAA,AAAC,CAAA;AACR,QAAnC,iBAAiB,AAAO,AAAQ,MAAT,iBAAU,CAAC;AAClC,sBAAI,AAAe,AAAY,cAAb,sBAAsB,QAAQ;AACV,UAApC,kBAAkB,AAAO,AAAQ,MAAT,iBAAU,CAAC;;;AAGvC,UAAI,AAAgB,eAAD,IAAI;AACwC,QAA7D,AAAO,AAAkB,AAAmB,MAAtC,oDAAmD;AACK,QAA9D,AAAO,AAAkB,AAAmB,MAAtC,qDAAoD;;AAGnB,QADvC,AAAO,AAAkB,AAAmB,MAAtC,oDACF,AAAgB,eAAD;AAEa,QADhC,AAAO,AAAkB,AAAmB,MAAtC,qDACF,AAAgB,eAAD;;IAEvB;oBAIiC,mBACA,iBACA,iBACA;AACrB,mBACN,4CAAkB,iBAAiB,EAAE,eAAe,EAAE,eAAe;AAC/D,mBACN,4CAAkB,iBAAiB,EAAE,eAAe,EAAE,aAAa;AAC7D,oBACN,4CAAkB,eAAe,EAAE,aAAa,EAAE,iBAAiB;AAC7D,qBACN,4CAAkB,eAAe,EAAE,aAAa,EAAE,eAAe;AAErE,YAAO,AAAiB,OAAX,IAAI,MAAM,IAAI,OAAO,IAAI,QAAQ;IAChD;6BAIiC,QACA,QACA;AACrB,kCAEL,WAF8D,WAAzB,WAAZ,WAAT,AAAO,MAAD,UAAK,AAAO,MAAD,YAAgB,WAAT,AAAO,MAAD,UAAK,AAAO,MAAD,cAC/B,WAAZ,WAAT,AAAO,MAAD,UAAK,AAAO,MAAD,YAAgB,WAAT,AAAO,MAAD,UAAK,AAAO,MAAD;AAGnD,UAAI,AAAM,KAAD,KAAI;AACX,cAAO;;AAGT,YAAc,cAAN,KAAK,IAAG,IAAK,IAAI;IAC3B;6BAGoC,QAAe;AACzC;AACK;AACA;AACO,8BAAoB,8BACpC,AAAS,QAAD,KAAK,AAAS,QAAD,6BAAY,WAAP,MAAM,qCAAgB,WAAP,MAAM,wCAAS,MAAM;AAClE,UAAI,AAAkB,iBAAD,IAAI;AACvB,cAAO;;AAET,eAAa,YAAa,kBAAiB;AACa,QAAtD,iBAAoC,WAAZ,WAAP,MAAM,6BAAqB,SAAS;;AAGvD,UAAI,cAAc,IAAI;AACpB,uBAAuB,WAAZ,WAAP,MAAM,8BAAsB,aACT,YAAZ,WAAP,MAAM,iBAAgB;AACsB,yBAA9C,2BAA8B,WAAR,WAAP,MAAM,wBAAU,cAAc;;AAG7C,cAAmB,YAAf,cAAc,EAAI;AAC0B,2BAA9C,2BAA8B,WAAR,WAAP,MAAM,wBAAU,cAAc;cAC1C,KAAmB,YAAf,cAAc,EAA8B,WAAP,WAAZ,WAAP,MAAM,kCAAsB;AACH,2BAAlD,2BAA8B,WAAR,WAAP,MAAM,wBAAyB,WAAf,cAAc,QAAG;;AAEE,2BAAlD,2BAA8B,WAAR,WAAP,MAAM,wBAAyB,WAAf,cAAc,QAAG;AACJ,yBAA5C,2BAA4B,WAAR,WAAP,MAAM,wBAAU,cAAc;;;AAKK,QAFpD,AAAa,YAAD,IAAI,OACV,4BAAuB,AAAa,YAAD,iBACnC,4BAAuB,AAAW,UAAD;AAImB,QAF1D,AAAa,YAAD,IAAI,OACV,2BAAsB,AAAa,YAAD,uBAClC,2BAAsB,AAAW,UAAD;AAEtC,YAAI,YAAY,IAAI;AAClB,wBAAI,0BAAoB,YAAY,EAAE,AAAS,QAAD,KAAK,AAAS,QAAD;AACzD,kBAAO;;;AAIX,YAAI,UAAU,IAAI,MAChB,MAAO,2BAAoB,UAAU,EAAE,AAAS,QAAD,KAAK,AAAS,QAAD;;AAEhE,YAAO;IACT;2BAGkC;AACZ,mCAAkC;AAC9C;AAAe;AACf;AACJ;AACA;AACA;AACgB,8BAAoB,8BACpC,AAAS,QAAD,KAAK,AAAS,QAAD,6BAAY,WAAP,gDAAsB,WAAP,mDAAe;AAE5D,eAAa,YAAa,kBAAiB;AACa,QAAtD,iBAAoC,WAAZ,WAAP,wCAA2B,SAAS;AACI,QAAzD,gBAAsD,WAAnB,WAAZ,WAAP,wCAA2B,SAAS,UAAI;AAGZ,mBAF9B,WAAd,aAAa,QAAG,OACV,yBAAyB,cAAc,GACvC,yBAAyB,aAAa;AACS,QAArD,YAAkD,WAAnB,WAAZ,WAAP,wCAA2B,SAAS,UAAI;AAGhB,mBAF1B,WAAV,SAAS,QAA6B,WAAP,WAAZ,WAAP,6CAA4B,SAClC,qBAAqB,cAAc,GACnC,qBAAqB,SAAS;;AAGgC,MAAtE,AAAuB,sBAAD,OAAuB,WAAX,WAAP,qCAAmB,sBAAsB;AACF,MAAlE,AAAuB,sBAAD,OAAuB,WAAX,WAAP,qCAAmB,kBAAkB;AAC5C,+BAAqB,8BACrC,AAAS,QAAD,KACR,AAAS,QAAD,6BACD,WAAP,gDACO,WAAP,mDACA,cACA,sBAAsB;AAE1B,eAAa,YAAa,mBAAkB;AAC1C,uBAAuB,WAAZ,WAAP,yCAA4B,aACT,YAAZ,WAAP,4BAAsB;AACc,UAAtC,wBAAwB,cAAc;;AAEtC,yBAAmB,WAAf,cAAc,QAAsB,WAAZ,WAAP,wCAA2B,SAAS;AACjB,YAAtC,wBAAwB,cAAc;cACnC,KAAmB,YAAf,cAAc,EAAuB,WAAZ,WAAP,wCAA2B,SAAS;AAIZ,uBAHP,WAAJ,WAAnB,WAAZ,WAAP,wCAA2B,SAAS,UAAI,WAAI,OACtC,wBAA2C,WAAZ,WAAP,wCAA2B,SAAS,KAC5D,wBACwC,WAAnB,WAAZ,WAAP,wCAA2B,SAAS,UAAI;;AAEa,YAA7D,wBAA2C,WAAZ,WAAP,wCAA2B,SAAS;;;AAIzC,MADmB,UAAnB,WAAlB,WAAP,+EACI,qBAAqB;AACzB,6BAAO,qBAAqB;IAC9B;0BAIiB,SAAgB,SAAgB;AACvC;AAAgB;AAAI;AAAI;AAAI;AACpC,UAAY,sBAAR,OAAO,KACC,wBAAR,OAAO,KACC,0BAAR,OAAO,KACC,6BAAR,OAAO,KACC,sBAAR,OAAO,KACC,+BAAR,OAAO,KACC,wBAAR,OAAO,KACC,gCAAR,OAAO;AACe,QAAxB,iBAAiB,OAAO;;AAMH,MAJvB,KAAoB,AAC2B,sBAD1C,cAAc,KACI,+BAAf,cAAc,KACC,wBAAf,cAAc,IACD,WAAf,cAAc,SACC,WAAf,cAAc;AACpB,UAAmB,sBAAf,cAAc,KACC,+BAAf,cAAc,KACC,wBAAf,cAAc;AACO,QAAvB,KAAoB,WAAf,cAAc;AACE,QAArB,KAAoB,WAAf,cAAc;AACK,QAAxB,KAAoB,WAAf,cAAc;;AAKI,QAHvB,KAAoB,AAAsB,6BAArC,cAAc,KACI,gCAAf,cAAc,IACD,WAAf,cAAc,+BACC,WAAf,cAAc;AACE,QAAtB,KAAoB,WAAf,cAAc;AAII,QAHvB,KAAoB,AAAsB,6BAArC,cAAc,KACI,gCAAf,cAAc,IACD,WAAf,cAAc,4BACC,WAAf,cAAc;;AAGR,sBACV,mCAAqC,aAAR,OAAO,IAAG,IAAY,aAAR,OAAO,IAAG;AAC3C,uBACV,mCAAqC,aAAR,OAAO,IAAG,IAAY,aAAR,OAAO,IAAG;AAC3C,qBACV,mCAAqC,aAAR,OAAO,IAAG,IAAY,aAAR,OAAO,IAAG;AAC3C,wBACV,mCAAqC,aAAR,OAAO,IAAG,IAAY,aAAR,OAAO,IAAG;AAEtB,yBAC/B,mCAA6B,EAAE,EAAE,EAAE;AACJ,uBAC/B,mCAA6B,EAAE,EAAE,EAAE;AAEvC,oBAAI,qBAAgB,YAAY,EAAE,UAAU,oCAAE,SAAS,qCAAE,UAAU,iBAC/D,qBAAgB,YAAY,EAAE,UAAU,oCAAE,QAAQ,qCAAE,WAAW;AACjE,cAAO;;AAGT,UAAW,yBAAP;AACY,iBAAoB,WAAf,cAAc;AACnB,iBAAoB,WAAf,cAAc;AACnB,iBAAoB,WAAf,cAAc;AACnB,iBAAoB,WAAf,cAAc;AACE,yBAC/B,mCAA6B,EAAE,EAAE,EAAE;AACJ,yBAC/B,mCAA6B,EAAE,EAAE,EAAE;AACvC,sBAAI,qBAAgB,UAAU,EAAE,UAAU,oCAAE,SAAS,qCAAE,UAAU,iBAC7D,qBAAgB,UAAU,EAAE,UAAU,oCAAE,QAAQ,qCAAE,WAAW;AAC/D,gBAAO;;;AAGX,YAAO;IACT;mBAEqC,OAAc,UACb;AAC/B;AACD;AACyB;AAE7B;iBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAM,AAAa,AAAc,KAA5B,wCAAoC,IAAA,AAAC,CAAA;AACpB,qDACpC,AAAM,AAAa,AAAa,KAA3B,oCAA4B,CAAC;AACtC,mBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,AAAY,MAAb,0BAAqB,IAAA,AAAC,CAAA;AACjB,YAA7B,QAAQ,AAAO,AAAW,MAAZ,sBAAa,CAAC;AACC,YAA7B,iBAAiB,AAAM,KAAD;AACtB,gBAAI,cAAc,IAAI,kBAAQ,AAAe,cAAD,UAAU,QAAQ;AAC7C,cAAf,cAAc,CAAC;AACf;;;;AAI+D,MAArE,AAAO,AAAkB,AAAmB,MAAtC,qDAAoD,WAAW;IACvE;qBAgJ6B;;AACtB,mBAAS;AACT,qBAAW;AACZ;AACJ,UAAuB,YAAZ,WAAP,4BAAsB,WACH,YAAZ,WAAP,4BAAsB,aACH,YAAZ,WAAP,4BAAsB,eACH,YAAZ,WAAP,4BAAsB,6BACH,WAAZ,WAAP,yCAA4B,aACT,YAAZ,WAAP,4BAAsB,aACH,YAAZ,WAAP,4BAAsB;AAGb,QAFX,sBAAoC,WAAlB,WAAP,gDACL,6BAAuB,aAAQ,QAAQ,IACvC;AACN,sBAAI,QAAQ;AAC4C,UAAtD,sBAAsB,4BAAuB,QAAQ;AAGY,mBAFjE,iBACK,WAD6B,WAAlB,WAAP,iFAED,YAAO,aAAQ,mBAAmB,EAAE;;;AAGK,QAAjC,UAAZ,WAAN,oDAAiD;AACjD,uBAAuB,WAAZ,WAAP,yCAA4B,aACT,YAAZ,WAAP,4BAAsB;AACe,UAAvC,mDAAe,aAAO,QAAQ,gCAAE;;AAEe,UAA/C,2DAAuB,aAAO,QAAQ,gCAAE;AAEuB,iBADjE,iBACK,WAD6B,WAAlB,WAAP,iFACiB,YAAO,aAAQ,iBAAY;;AAGvD,oBAAI,MAAM,GACR,AAAmE,gDAAH,KAA3B,WAAZ,WAAN,kFAAwC,4CAAK;IACpE;+BAGiB,gBAAiC;AAC3C,uBAAa;AAClB,oBAAI,AAAiB;AACnB,iBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAiB,iCAAQ,IAAA,AAAC,CAAA;AAC5C,cAAI,AAAgB,AAAI,AAAa,6BAAhB,CAAC,mBAAkB,AAAe,cAAD,kBAClD,AAAgB,AAAI,AAAoB,6BAAvB,CAAC,yBACd,AAAe,cAAD;AACmC,YAAvD,8BAAsC,4BAAC,cAAc;AACpC,YAAjB,aAAa;AACb;;;;AAKN,WAAK,UAAU,cAAI,AAAmB;AACpC,iBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAmB,mCAAQ,IAAA,AAAC,CAAA;AAC9C,cAAI,AAAkB,AAAI,AAAa,+BAAhB,CAAC,mBAAkB,AAAe,cAAD,kBACpD,AAAkB,AAAI,AAAoB,+BAAvB,CAAC,yBAChB,AAAe,cAAD;AACqC,YAAzD,gCAAwC,4BAAC,cAAc;AACtC,YAAjB,aAAa;AACb;;;;IAIR;0BAcY,QAAY,aAAiB;AACvC,UAAI,MAAM,IAAI;AACmB,QAA/B,qBAAgB;AACa,QAA7B,AAAc,4BAAS,MAAM;AAEmB,QADhD,AAAc,yCAAA,gBACe,WAAlB,WAAP,MAAM;AAEsC,QADhD,AAAc,yCAAA,mBACe,WAAlB,WAAP,MAAM;AAC0D,QAApE,AAAc,mCAAA,gBAAyC,WAAlB,WAAP,MAAM;AAEc,QADlD,AAAc,2CAAA,gBACe,WAAlB,WAAP,MAAM;AAEwC,QADlD,AAAc,2CAAA,mBACe,WAAlB,WAAP,MAAM;AAC8D,QAAxE,AAAc,qCAAA,gBAA2C,WAAlB,WAAP,MAAM;AACC,QAAvC,AAAc,iCAAA,WAAc,WAAW;AACF,QAArC,AAAc,gCAAA,WAAa,UAAU;;AAEvC,YAAO;IACT;;;IA3hDI;IACA;IACA;IACA;IACC;IACQ;IAAiB;IACL,+BAAwC;IACxC,iCAA0C;IACzC,0BAA0C;IAC1C,4BAA4C;IACxD,uBAA2B;IAC3B,yBAA6B;IACvB;IACf,kBAAa;IACV;IACA;IACA;IAAW;IAAa;IAAa;IAAe;IACpD;IAAe;IACH;IACN;IACK;IACA;IACL;;EAvBM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACUlB,YAAO;IACT;;;QAT4B;;IAID;IAJC;AAA5B;;EAAyC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2B3B,MAAZ,YAAO;AACuC,MAA9C,8BAAyB,+BAAmB;AAEJ,MADxC,iCAAsB,yDAA2B,QAC7C,yBAAY;AACC,MAAX;IACR;;AAIE,UAAI,4BAAuB;AACkC,QAA3D,AAAoB,kDAAe;AACN,QAA7B,AAAoB;AACM,QAA1B,2BAAsB;;AAET,MAAT;IACR;;;AAGgC,WAA9B;MAAuB,WAAK,aAAL,YAAK;IAC9B;mBAEyB,GAAU;AACjC,UAAI,CAAC,IAAI,QACL,CAAC,IAAI,QAC8B,WAAhB,WAAnB,AAAO,0DAAwC;AACtC,QAAX,YAAO;AAIqD,mBAFnD,WAD0C,WAAP,WAAT,WAAhB,WAAnB,AAAO,qGAE2C,WAAT,WAAhB,WAAnB,AAAO,6EAAsD,CAAC,EAAE,CAAC,KACrB,WAAT,WAAhB,WAAnB,AAAO,iEAA0C,CAAC,EAAE,CAAC;;IAE/D;UAG0B;AACL,MAAnB,AAAO,oBAAQ;AACiD,MAAhE,AAAoB;AACI,6BACpB,AAAoC,kCAAf,UAAU,cAAa,4CACtC;AAG4B,MAAtC,AAAoB,wCAAc;AACZ,2BAAiB,kDACjB,gBAAgB,qBACf,gBACT,kDACW;AACiB,MAA1C,AAAe,cAAD,WAAU,AAAO;AAC4B,MAA3D,AAAe,cAAD,WAA8B,WAAnB,AAAO;AAC2B,MAA3D,AAAe,cAAD,gBAAkC,WAAnB,AAAO;AACwB,MAAzB,UAAhB,WAAnB,AAAO,uDAAuC,cAAc;AAC5D,YAAO,qCAAiB,oCAAqB,cAAc;IAC7D;;;IAjEoB;IAGD;IAEd;IAGA,oBAAc;;;EA0DrB;;;;;;;;;;;;;;;;;;;IASM;;;;;;IAGA;;;;;;;sCANc,aAAkB;IAAlB;IAAkB;;EAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;yBA2DhB;AAC7B,UAA4B,2BAAP,WAAT,WAAR;AACoC,QAAtC,mCAA6B,QAAQ;YAChC,KAA4B,0BAAP,WAAT,WAAR;AAC4B,QAArC,kCAA4B,QAAQ;;AAEG,QAAvC,oCAA8B,QAAQ;;IAE1C;mCAEyC;AAChB,iDAAyB,WAAT,WAAR;AAC+B,MAA7C,UAAT,WAAR,yCAAgC,AAAM,AAAW,KAAZ;AAChC,uBAAa;AAClB,oBAAI,AAAM,AAAW,AAAc,KAA1B,qCAAmC,QAAQ;AAClD,iBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAM,AAAa,AAAc,KAA5B,wCAAoC,IAAA,AAAC,CAAA;AAChB,wBAA5C,2BAAS,AAAM,AAAa,AAAa,KAA3B,oCAA4B,CAAC;AAC3C,wBAAI,AAAO,oCACP,AAAO,8BACP,AAAO,8BAAiB;AACtB,wBAAQ;AA6GV,YA5GF,AAAO,AAAc,qCAAQ,SAAS,YAAoB;;AAC7C,iDAAwC,WAApB,WAAN,MAAM,WAAe,WAAP,WAAP,MAAM,mBAAU,oBAAY;AAC/C,4BAGmC,CAHvB,AAAO,AAAY,8BAAG,YACnC,AAAO,AAAY,8BAAG,aACtB,AAAO,AAAY,qCAAS,aAC5B,AAAO,AAAY,qCAAS,sBAC/B,WAAW,IACd,gBACA,AAAM,AAAgB,KAAjB,iCACD,MACA;AACC,0CAAmB,WAAV,UAAU,WAAC;AAClB,yBAAmB,aAAZ,AAAO,MAAD,SAAQ,OAAO;AAC5B,0BAAqB,aAAb,AAAO,MAAD,UAAS,OAAO;AAC9B,wBAAiB,aAAX,AAAO,MAAD,QAAO,OAAO;AAC1B,2BAAuB,aAAd,AAAO,MAAD,WAAU,OAAO;AAClC,iCAAoB,qBAAS,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM;AAChE,4BAAI,AAAa,YAAD,UAAU,QAAQ,2BAC7B,WAAW,IAAiB,WAAJ,WAAV,UAAU,WAAC,oBAAe;AAC3C,+BAAK,AAAO,MAAD,UAAU,QAAQ;AACoC,kBAA9C,UAAT,WAAR,yCAAgC,AAAM,AAAY,KAAb;;AAEmB,gBAAzC,UAAT,WAAR,6CAAoC,4BAAa,CAAC,EAAE,KAAK;AACzD,oBAAqB,WAAT,WAAR,gDAAqC,QACpB,WAAT,WAAR,mDAAwC,sBACL,WAAjB,WAAT,WAAR,6DAC4C,WAApB,WAAT,WAAR,gFAC8B,WAAjB,WAAT,WAAR,8DACyC,WAApB,WAAT,WAAR;AACiC,kBAA1B,UAAT,WAAR,gDAAuC;;AAEnB,gBAAtB,qBAAgB;AACE,gBAAlB,kBAAa,KAAK;AACsB,gBAAxC,kBAAa,AAAO,AAAe;AAG2B,mCAF9D,gBAAwB,AAAI,WAAd,UAAU,WAAC,OAAM,OACf,WAAV,UAAU,WAAC,OACuB,KAAlC,AAAO,AAAe,8CAAA,OAAe,AAAO;AAC3C,uDAA4B,WAAV,UAAU,WAAC;AAC7B;AACP,oBAAI,AAAO,AAAY,8BAAG,uBAAa,WAAW;AAEC,kBADjD,UAAU,kBAAwB,aAAjB,AAAO,AAAO,MAAR,2BAAa,AAAO,AAAW,MAAZ,iBACtC,AAAE,KAAoB,aAAjB,AAAO,AAAO,MAAR,2BAAa,AAAO,AAAU,MAAX;AAC4B,kBAA9D,kBAAkB,kBAAO,AAAgB,eAAD,KAAK,AAAa,YAAD;sBACpD,KAAI,AAAO,AAAY,8BAAG;AAEM,kBADrC,UAAU,kBAAO,AAAO,AAAe,kCACN,aAA7B,AAAO,AAAe,qCAAS;AAEe,kBADlD,kBACI,kBAAO,AAAgB,eAAD,KAAK,AAAgB,eAAD;sBACzC,KAAI,AAAO,AAAY,8BAAG;AAEM,kBADrC,UAAU,kBAAO,AAAO,AAAe,kCACN,aAA7B,AAAO,AAAe,qCAAS;AAEmB,kBADtD,kBACI,kBAAO,AAAgB,eAAD,KAAwB,aAAnB,AAAgB,eAAD,OAAM;;AAO5B,kBALxB,oBAAW,AAAO,AAAe,wCAC3B,kBAC8B,aAA5B,AAAO,AAAe,oCAAQ,GACD,AAAI,aAAjC,AAAO,AAAe,qCAAS,IACO,aAAlC,AAAO,AAAe,0CAAc;;AAGlD,8BAAI,AAAO,+BACiB,YAAhB,WAAR,kCAA2C;AACnB,kBAA1B,kBAAkB,QAAQ;;AAES,gBAApB,UAAT,WAAR,oCAA2B,AAAQ,OAAD;AAC3B,gDAAiB,WAAR;AAOJ,yBANZ,mBAAU,AAAO,MAAD,IAAI,kBACL,WAAR,2BACS,WAAN,MAAM,WAAC,gBACN,WAAW,IACF,WAAN,MAAM,WAAe,WAAP,WAAP,MAAM,mBAAU,SACX,MAAZ,AAAO,yBAAA,OAAQ,AAAO,kCAC9B,MAAM;AACoB,gBAAf,UAAT,WAAR,mCAA0B,MAAM;AACC,gBAAhB,UAAT,WAAR,wCAA+B;AAC/B,+BAAY,WAAR;AACqB,kBAAvB,kBAAqB;AACgC,kBAArD,wBAAmD;AACnD,2BAAS,IAAI,GACT,AAAE,CAAD,gBAAG,AAAM,AAAa,AAAc,KAA5B,wCACT,IAAA,AAAC,CAAA;AACkC,6DACjC,AAAM,AAAa,AAAa,KAA3B,oCAA4B,CAAC;AACtC,kCAAI,AAAQ,OAAD,yBAAa,AAAQ,OAAD;AACnB,kCAAQ,AAAQ,AAAS,OAAV,qBAAgC,WAAJ,WAAV,UAAU,WAAC;AACtD,0BAAU,aAAN,KAAK,IAAG,CAAC;AACE,mCACwC,CAAnB,aAAZ,WAAT,WAAR,yCAAgC,MAAK,OAAO,mBACzC,qCACI,OAAO,EACP,AAAQ,AAAW,OAAZ,sBAAa,KAAK,GACzB,MAAM,EACN,eAAe;AACS,+BAA5B,WAAR;wBAAiB,+BAAY,WAAZ,uCAAe,IAAI;AAChB,wBAApB,AAAW,sBAAI,IAAI;AACU,wBAA7B,AAAiB,4BAAI,OAAO;;;;;AAMiB,kBADlC,UAAT,WAAR,wCAA+B,qCAC3B,+CAAkB,WAAV,UAAU,WAAC,MAAI,MAAM,EAAE,eAAe;;AAEA,gBAAnC,WAAT,WAAR,8CAAoC,eAAe;AAClC,gBAAjB,aAAa;;AAER,cAAP,QAAA,AAAK,KAAA;;;;;AAKb,WAAK,UAAU;AAEkC,QAD9B,UAAT,WAAR,6CACqB,UAAT,WAAR,gDAAuC;AAC3C,uBAAK,AAAM,AAAgB,KAAjB;AACM,UAAN,WAAR;;;IAGN;qCAGmC,QACF,OACrB,QACD;;AACE,yCAAwC,WAApB,WAAN,MAAM,WAAe,WAAP,WAAP,MAAM,mBAAU,oBAAY;AACrD;AACO,iBAAO,AAAO,MAAD;AACjB,mBAAS,AAAO,AAAO,AAAgB,MAAxB;AACzB,UAAY,WAAR,2BAAkB;AA0BkE,0BAzBtF,mBAAyF,CAAtE,AAAO,AAAY,MAAb,0BAAsB,YAAY,AAAO,AAAY,MAAb,mBAAgB,sBAAY,WAAW,IAM/F,WADA,WAFA,WADA,WADM,WAAR,wCACa,WAAiB,WAAN,MAAM,WAAC,sBAE1B,cAAc,sBAAe,AAAM,KAAD,OAAO,IAAI,EAAE,MAAM,oBAC7C,aAAa,sBAAe,AAAM,KAAD,MAAM,IAAI,EAAE,MAAM,oBACnD,gBAA2B,KAAZ,AAAO,MAAD,aAAC,OAAQ,AAAO,MAAD,wBAED,CADhD,AAAO,AAAY,MAAb,0BAAsB,oBACnB,AAAO,AAAY,MAAb,0BAAsB,yBAC/B,WAAW,IAWX,WAFA,WAFA,WAFA,WAFA,WADA,WADM,WAAR,wCACa,WAAiB,WAAN,MAAM,WAAC,sBAE1B,cAAc,sBAAe,AAAM,KAAD,OAAO,IAAI,EAAE,MAAM,oBAErD,aAAa,sBAAe,AAAM,KAAD,MAAM,IAAI,EAAE,MAAM,oBAEnD,cAAc,sBAAe,AAAM,KAAD,OAAO,IAAI,EAAE,MAAM,oBAErD,eAAe,sBAAe,AAAM,KAAD,QAAQ,IAAI,EAAE,MAAM,oBAC/C,gBAA2B,MAAZ,AAAO,MAAD,cAAC,OAAQ,AAAO,MAAD,yBAK/C,WADA,WADA,WADA,WADM,WAAR,wCACa,WAAiB,WAAN,MAAM,WAAC,sBAClB,WAAW,sBAAe,AAAM,KAAD,IAAI,IAAI,EAAE,MAAM,oBAC/C,gBAA2B,OAAZ,AAAO,MAAD,eAAC,OAAQ,AAAO,MAAD,wCACpC,cAAc,sBAAe,AAAM,KAAD,aAAa,IAAI,EAAE,MAAM;AACnF,YAAI,AAAO,AAAY,MAAb,0BAAsB;AAE0B,UADxD,kBAAkB,AAAgB,eAAD,cAAY,4CACzC,sBAAe,AAAM,KAAD,kBAAkB,IAAI,EAAE,MAAM;;;AAsBS,0BAnBjE,mBACqE,sBAAxD,WAAR,4BAA6B,OAAZ,AAAO,MAAD,eAAC,OAAQ,AAAO,MAAD,wBAAqB,WAAN,MAAM,WAAC,WAEf,CADvC,AAAO,AAAY,MAAb,0BAAsB,YACnB,AAAO,AAAY,MAAb,mBAAgB,sBACzB,WAAW,IACb,AAAW,AAC+B,AAC/B,6CADV,sBAAe,AAAM,KAAD,OAAO,IAAI,EAAE,MAAM,MACvC,4CACA,sBAAe,AAAM,KAAD,MAAM,IAAI,EAAE,MAAM,MACvC,AAAO,AAAY,AAAmB,MAAhC,mBAAgB,mBACjB,AAAO,AAAY,MAAb,mBAAgB,WACvB,AAAW,AAC+B,AAC/B,AAC8B,AAC7B,AAC8B,AAC7B,6CALZ,sBAAe,AAAM,KAAD,OAAO,IAAI,EAAE,MAAM,MACvC,4CACA,sBAAe,AAAM,KAAD,MAAM,IAAI,EAAE,MAAM,MACtC,6CACA,sBAAe,AAAM,KAAD,OAAO,IAAI,EAAE,MAAM,MACvC,8CACA,sBAAe,AAAM,KAAD,QAAQ,IAAI,EAAE,MAAM,MAC1C,AAAM,wCAAE,sBAAe,AAAM,KAAD,IAAI,IAAI,EAAE,MAAM;;AAEhE,YAAO,gBAAe;IACxB;kCAEwC;;AAChB,gDAAyB,WAAT,WAAR;AAEU,MADxC,AAAM,AAAgB,AAAS,KAA1B,0CACD,AAAM,AAAY,KAAb;AACJ,uBAAa;AACJ,wBAAc,uBAAgB,KAAK,EAAE,QAAQ;AAC3D,UAAI,WAAW,IAAI,kBACf,AAAM,AAAa,AAAa,AAC3B,KADA,oCAA4B,AAAY,WAAD;AAGmB,QADhD,UAAT,WAAR,6CACI,4BAAa,AAAY,WAAD,cAAc,AAAY,WAAD;AACrD,YAAqB,WAAT,WAAR,gDAAqC,QACpB,WAAT,WAAR,mDAAwC,qBACN,WAAjB,WAAT,WAAR,6DACyC,WAApB,WAAT,WAAR;AACqC,UAA1B,UAAT,WAAR,gDAAuC;;AAEf,yBAAa,AAClC,AACA,AAAa,AACb,AAAa,KAH0B,oCAEzB,AAAY,WAAD,oCACX,AAAY,WAAD;AACjB,uBAC6B,YAAtC,AAAM,AAAgB,KAAjB,kCAAoD,kCACnD,QAAQ,GACR,sBACE,AAAW,UAAD,WACwC,CAA1B,aAAvB,AAAW,UAAD,6BAAe,AAAW,UAAD,iBAAgB,GACpD,AAAW,UAAD;AACiB,QAAvC,qBAAgB,AAAY,WAAD;AACQ,QAAnC,kBAAa,AAAY,WAAD;AACjB,qBAAS,AAAM,AAAgB,KAAjB;AAMT,QALZ,SAAU,AAAO,MAAD,IAAI,OACd,AAAM,AAAa,AAAa,AAA0B,AAAK,KAA1D,oCAA4B,AAAY,WAAD,sBACtC,OACF,AAAM,AAAa,AAAa,AAA0B,KAArD,oCAA4B,AAAY,WAAD,qBAC5C,OACJ,MAAM;AACkC,QAA9C,AAAM,AAAgB,AAAS,KAA1B,oCAAmC,MAAM;AAC9C,YAAI,AAAM,AAAgB,KAAjB,2BAA2B;AACrB,gCAAkB,AAAM,AAAgB,AAChD,AACA,AACA,KAH+B,qCACpB,WAAwB,cAAb,AAAW,UAAD,kBACrB,WAAwB,cAAb,AAAW,UAAD,kBAE7B,gBAEc,KADd,AAAM,AAAa,AAAa,AACvB,KADJ,oCAA4B,AAAY,WAAD,0BACnC,OACL;AACgD,UAA5D,AAAM,AAAgB,AAAS,KAA1B,yCAAwC,eAAe;AACD,UAA3D,AAAM,AAAgB,AAAS,KAA1B,+CAA6C,QAAQ;;AAGG,UAD7D,AAAM,AAAgB,AAAS,KAA1B,yCACuB,AAAQ,aAAnB,cAAb,AAAW,UAAD,OAAgB,QAAqB,cAAb,AAAW,UAAD;AACW,UAA3D,AAAM,AAAgB,AAAS,KAA1B,+CAA6C,QAAQ;;AAE3C,QAAjB,aAAa;;AAEe,QAA5B,AAAM,AAAgB,KAAjB;AACa,QAAlB,aAAa;;AAEf,WAAK,UAAU;AAEkC,QAD9B,UAAT,WAAR,6CACqB,UAAT,WAAR,gDAAuC;;IAE/C;oCAE0C;;AAC1B,kBAAyB,WAAT,WAAR;AAEkB,MADT,UAAT,WAAhB,WAAN,KAAK,iDACiB,WAAZ,WAAN,KAAK;AACJ,uBAAa;AAG4B,wBAD9C,iBAAkD,KAAnB,WAAZ,WAAN,KAAK,2CAAa,OACK,WAAd,WAAZ,WAAN,KAAK;AACkC,MAAzB,UAAZ,WAAN,KAAK,oCAAkC;AACvC,qBAA0B,WAAhB,WAAN,KAAK;AAEkE,QADxD,UAAT,WAAR,6CACI,4BAAa,+BAA6C,WAAd,WAAZ,WAAN,KAAK;AACnC,YAAqB,WAAT,WAAR,gDAAqC,QACpB,WAAT,WAAR,mDAAwC,qBACN,WAAjB,WAAT,WAAR,6DACyC,WAApB,WAAT,WAAR;AACqC,UAA1B,UAAT,WAAR,gDAAuC;;AAEhB,iDACiC,WAAb,WAAd,WAAb,WAAb,WADiC,KAAK,0EACgB;AAC9C,uBAC6B,YAAhB,WAAhB,WAAN,KAAK,0CAAoD,kCACnD,QAAQ,GACR,AAAW,UAAD;AACO,QAA3B;AACuB,QAAvB,kBAAa;AACN,wCAA+B,WAAhB,WAAN,KAAK;AAKT,iBAJZ,mBAAU,AAAO,MAAD,IAAI,OACgC,AAAK,WAAnB,WAAb,WAAb,WAAN,KAAK,4DAAiD,OACJ,WAAd,WAAb,WAAb,WAAN,KAAK,2DACL,OACJ,MAAM;AACkC,QAAf,UAAT,WAAhB,WAAN,KAAK,2CAAmC,MAAM;AAC9C,YAA0B,WAAhB,WAAN,KAAK,mCAA2B;AACrB,mDAGR,WADA,WADA,WADgD,WAAhB,WAAN,KAAK,gDACpB,WAAwB,cAAb,AAAW,UAAD,sBACrB,WAAwB,cAAb,AAAW,UAAD,sBAE7B,gBACmD,MAAL,WAAd,WAAb,WAAb,WAAN,KAAK,iEAAyC,OAC1C;AACgD,UAA7B,UAAT,WAAhB,WAAN,KAAK,gDAAwC,eAAe;AACD,UAA5B,WAAT,WAAhB,WAAN,KAAK,sDAA6C,QAAQ;;AAGG,UAD9B,UAAT,WAAhB,WAAN,KAAK,gDACuB,AAAQ,aAAnB,cAAb,AAAW,UAAD,OAAgB,QAAqB,cAAb,AAAW,UAAD;AACW,UAA5B,WAAT,WAAhB,WAAN,KAAK,sDAA6C,QAAQ;;AAE3C,QAAjB,aAAa;;AAEe,QAAN,WAAhB,WAAN,KAAK;AACa,QAAlB,aAAa;;AAEf,WAAK,UAAU;AAEkC,QAD9B,UAAT,WAAR,6CACqB,UAAT,WAAR,gDAAuC;;IAE/C;yBAE+B;;AACb,MAAhB,eAAI,QAAQ,eAAR,OAAU;AACE,MAAhB,gBAAI,QAAQ,gBAAR,OAAU;IAChB;UAGkB,QAAa;AAC7B,oBAAI,AAAkB;AACpB,YAAW,2BAAP;AACqB,uDAAU;AACM,UAAvC,AAAQ,AAAgB,OAAjB,yBAAyB,MAAM;cACjC,KAAW,0BAAP;AACa,8DAAkB;AACO,UAA/C,AAAgB,AAAgB,eAAjB,yBAAyB,MAAM;cACzC,KAAW,yBAAP;AACY,4DAAiB;AACQ,UAA9C,AAAe,AAAgB,cAAjB,yBAAyB,MAAM;cACxC,KAAW,wBAAP;AACW,0DAAgB;AACS,UAA7C,AAAc,AAAgB,aAAjB,yBAAyB,MAAM;;;IAGlD;qBAE2B;;AACX,MAAd,cAAS;AACM,MAAf,eAAU;AACH,mBAAS;AAAG,kBAAQ;AAAG,4BAAkB;AAAG,6BAAmB;AAC1D;AACE,MAAd,kBAAa;AAEb,UAAI,UAAK,QACL,UAAK,QACL,oBAAe,QACR,WAAP,oCAA0B;AAED,QAA3B,cAAc;AACgB,QAA9B,AAAY,WAAD,QAAQ;AACQ,QAA3B,AAAY,WAAD,UAAU;AACI,QAAzB,AAAY,WAAD,aAAa;AACC,QAAzB,AAAY,WAAD,aAAa;AACW,QAAnC,AAAY,WAAD,cAAc;AAGN,QAFnB,AAAY,WAAD,eAAsB,2BAAP,gBACU,WAAR,WAAR,WAAd,+DACA;AAE8D,QADpE,AAAY,WAAD,cAAC,iBAC6C,WAA1B,WAAb,WAAb,WADoB,wDACO,AAAY,WAAD;AACR,QAA5B,WAAP,kCAAuB,WAAW;AACJ,QAA9B,mBAAc,AAAY,WAAD;AACE,QAA3B,cAAS,AAAY,WAAD;AACK,QAAzB,SAAI,AAAY,WAAD;AACU,QAAzB,SAAI,AAAY,WAAD;;AAGwD,MAAzE,kBAAa,AAAa,AAAK,AAAW,sCAAE,AAAa,AAAM;AAC1C,sBAAY,uDACE,KAAN,WAAV,WAAR,4CAAkB,OACU,WAAZ,WAAZ,WAAP,oGACwB,WAAV,WAAR,yEACoB,WAAV,WAAR,6EACkB,WAAV,WAAR,2EACiB,WAAV,WAAR;AACmC,MAAlD,QAAQ,AAAqC,oBAAxB,kBAAa,SAAS;AACS,MAApD,SAAS,AAAqC,oBAAxB,kBAAa,SAAS;AAC5C,UAAI,eAAU,QAAQ,AAAO;AACN,8BAAkB,uDACJ,MAAN,WAAV,WAAR,6CAAkB,OACU,WAAZ,WAAZ,WAAP,qGACwB,WAAV,WAAR,yEACoB,WAAV,WAAR,2EACiB,WAAV,WAAR,uDACY;AACkC,QAA7D,kBAAkB,AAAsC,oBAAzB,aAAQ,eAAe;AACc,QAApE,mBAAgE,aAA7C,AAAsC,oBAAzB,aAAQ,eAAe,YAAW;AACT,QAAzD,QAAc,aAAN,KAAK,iBAAG,eAAe,IAAG,KAAK,GAAG,eAAe;;AAG3D,UAAU,aAAN,KAAK,IAAG;AACA,QAAV,QAAQ;AAC0C,QAAlD,oBAA4B,aAAb,qBAAe,IAAI,MAAI;;AAExC,UAAiB,aAAb,qBAAe;AACA,QAAjB,oBAAe;;AAGjB,UAAI,UAAK,QACL,UAAK,QACL,gBAAW,SACV,qBAAe,MAAM,oBAAe,QACjC,gBAAU,MAAM,eAAU;AACiC,QAAjE,+BAAyB,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB;;IAEpE;+BAIW,QAAe,QAAe,OAAc;AAC9C,yBAAe;AACtB,UAAW,2BAAP,iBACQ,WAAR,kCAAyB,mBACjB,WAAR,6CACA,AAAkB;AACN,QAAd,kBAAa;AACI,QAAjB,eAAe;;AAGZ,iBAAY,qBAAS,QAAG,QAAS,AAAmB,aAAzB,KAAK,IAAI,AAAE,iBAAE,mBAAc,YAAY,EAC5D,AAAmB,aAA1B,MAAM,iBAAG,gBAAgB,IAAG;AACrB,oBAAe,qBAA2B,aAAlB,AAAa,0BAAO,IAAI,AAAa,uBACjD,aAAnB,AAAa,2BAAQ,IAAI,AAAa;AAC/B,qBAAgB,qBACL,aAAlB,AAAa,0BAAO,GACH,aAAjB,AAAa,yBAAM,IACN,aAAb,AAAQ,OAAD,UAA2B,aAAlB,AAAa,0BAAO,IAChB,aAApB,AAAa,4BAAS;AACf,sBAAiB,qBAAS,AAAQ,OAAD,QAAyB,aAAjB,AAAa,yBAAM,IAC/C,AAAK,aAAxB,AAAa,2BAAQ,iBAAK,AAAQ,OAAD,SAA4B,aAApB,AAAa,4BAAS;AAEpE,oBAAI,AAAS,QAAD,UAAU,kBAAO,QAAG;AACjB,QAAb,cAAS;AACM,QAAf,eAAU;YACL,eAAI,AAAU,SAAD,UAAU,kBAAO,QAAG;AACxB,QAAd,cAAS;AACK,QAAd,eAAU;;AAGZ,UAAM,aAAF,UAAkB,aAAd,mCAAgB,AAAK,IAAD,YAAa,aAAF,uBAAI,AAAa;AACtD,YAAW,2BAAP;AACF,cAA8B,YAAZ,WAAd,mCAA6B;AACpB,YAAX,eAAU;;;AAGF,QAAZ,aAAQ;AACmB,QAA3B,YAAS,aAAF,UAAgB,aAAX,AAAK,IAAD,UAAS;AACS,QAAlC,YAAU,AAAe,aAAjB,uBAAI,AAAK,IAAD,wBAAW;AACI,QAA/B,kBAAsB,aAAT,AAAK,IAAD,qBAAO;AACF,QAAtB,kBAAa,AAAK,IAAD;AACJ,8BAAoB,aAAF,UAAgB,aAAX,AAAK,IAAD,UAAS;AAGkB,QAFnE,YAAY,aAAL,0BAAO,AAAa,0BACrB,AAAa,yBACb,AAAgB,eAAD,gBAAG,mBAAwB,aAAX,gCAAa,AAAK,IAAD,UAAS;AAC9B,QAAjC,YAAY,aAAL,aAAsB,aAAd,sBAAgB;;AAElB,QAAb,aAAQ;AACmB,QAA3B,YAAS,aAAF,UAAgB,aAAX,AAAK,IAAD,UAAS;AAGV,QAFf,YACoD,AAAqB,aAAjE,aAAF,wBAAK,AAAa,yBAAM,SAAI,AAAa,yBAAqB,aAAd,sBAAgB,iBAC9D;AACc,QAAtB,kBAAa,AAAK,IAAD;AACoD,QAArE,kBAA4D,aAA5C,aAAF,wBAAK,AAAa,yBAAM,SAAI,AAAa,sCAAO;AACjD,8BAAoB,aAAF,UAAgB,aAAX,AAAK,IAAD,UAAS;AAGkB,QAFnE,YAAY,aAAL,0BAAO,AAAa,0BACrB,AAAa,yBACb,AAAgB,eAAD,gBAAG,mBAAwB,aAAX,gCAAa,AAAK,IAAD,UAAS;;AAEjE,UAAS,aAAL,cAA0B,aAAlB,AAAa,0BAAO;AACf,QAAf,YAAY,aAAL,aAAO;YACT,KAAS,AAAa,aAAlB,0BAAO,AAAK,IAAD,WAAqB,aAAX,mBAAa;AAC5B,QAAf,YAAY,aAAL,aAAO;;AAEyC,MAAzD,OAAY,qBAAS,WAAM,WAAM,AAAK,IAAD,QAAQ,AAAK,IAAD;AAEA,MADjD,sBAAgB,MAAM,EAAE,IAAI,EAAE,iBAAY,iBAAY,mBAAc,YAChE,gBAAW,aAAQ,cAAS;IAClC;sBAGW,QACF,OACE,MACA,MACA,cACF,OACA,gBACA,QACA,SACa;AACP,uBAA2B,aAAd,sBAAgB;AAC7B,qBAAyB,aAAd,sBAAgB;AACxC,oBAAI,KAAK;AAec,QAdrB,mBACI,MAAM,EACN,KAAK,EACL,KAAK,EACL,IAAI,EACJ,IAAI,EACC,aAAL,IAAI,IAAG,UAAU,EACZ,aAAL,IAAI,IAAG,UAAU,EACZ,aAAL,IAAI,IAAG,QAAQ,EACV,aAAL,IAAI,IAAG,QAAQ,EACf,YAAY,EACZ,cAAc,EACd,MAAM,EACN,OAAO,EACP,gBAAgB;;AAgBC,QAdrB,mBACI,MAAM,EACN,KAAK,EACL,KAAK,EACL,IAAI,EACJ,IAAI,EACC,aAAL,IAAI,IAAG,UAAU,EACZ,aAAL,IAAI,IAAG,UAAU,EACZ,aAAL,IAAI,IAAG,QAAQ,EACV,aAAL,IAAI,IAAG,QAAQ,EACf,YAAY,EACZ,cAAc,EACd,MAAM,EACN,OAAO,EACP,gBAAgB;;IAExB;mBAGW,QACF,OACA,OACE,MACA,MACA,QACA,QACA,MACA,MACA,cACF,gBACA,QACA,SACa;;AACb,4BAAkB;AACzB,UAAI,AAAiB,gBAAD,IAAI;AACH,QAAnB,kBAAkB;;AAEsB,QAAxC,kBAAkB,AAAiB,gBAAD;;AAEd,MAAtB,AAAe,cAAD;AACd,qBAAK;AACH,sBAAI,MAAM;AACgC,UAAxC,SAAoB,aAAX,AAAM,KAAD,SAAS,AAAE,iBAAE,YAAY;AACV,UAA7B,OAAc,aAAP,MAAM,iBAAG;cACX,eAAI,OAAO;AACa,UAA7B,SAAc,aAAL,IAAI,iBAAG;AACuB,UAAvC,OAAmB,aAAZ,AAAM,KAAD,UAAU,AAAE,iBAAE,YAAY;;AAG7B,mBAAY,qBACP,AAAI,aAAhB,AAAM,KAAD,UAAS,KAAgB,aAAX,AAAM,KAAD,SAAoB,AAAI,aAAhB,AAAM,KAAD,UAAS,iBAAI,eAAe,IACpD,AAAI,aAAjB,AAAM,KAAD,WAAU,KAAe,aAAV,AAAM,KAAD,QAAoB,AAAI,aAAjB,AAAM,KAAD,WAAU,iBAAI,eAAe,IACtD,aAAZ,AAAM,KAAD,uBAAS,eAAe,GAChB,aAAb,AAAM,KAAD,wBAAU,eAAe;AAEtB,0BAAoB,gCAC9B,IAAI,eACe,uBAAS,YAAY,gBACpB,uBAAS,YAAY,YACzB,uBAAS,YAAY,aACpB,uBAAS,YAAY;AAGe,QADvD,uBAAiB,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EACrE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI;AAEjC,wBAAY,uDACgC,YAApC,WAAV,WAAR,mDAAkB,OAAO,+BAAoB,WAAR,oCAAnB,OACU,WAAZ,WAAZ,WAAP,qGACiC,WAAT,WAAV,WAAR,+CAA6B,eAAe,oCACxB,WAAV,WAAR,6EACkB,WAAV,WAAR,2EACiB,WAAV,WAAR;AACJ,qBAAS,oBAAa,kBAAa,SAAS;AACkB,QAAzE,uBAAiB,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe;AACxE,YAAW,2BAAP,4BACQ,WAAR,6CACA,AAAkB;AAC+C,UAAnE,yBAAmB,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,eAAe;;AAEzD,QAAX,OAAO;AACI,QAAX,OAAO;;IAEX;uBAIW,QACD,aACD,MACA,gBACA,OACA,QACA,SACE,QACA,MACA,iBACA,MACA;;AACF,mBAAS;AAChB,oBAAI,KAAK,eAAI,OAAO;AACE,QAApB,SAAS,AAAK,IAAD;AACiC,QAA9C,AAAe,cAAD,QAAmB,aAAX,AAAK,IAAD,UAAS,IAAI,MAAM;AACZ,QAAjC,AAAe,cAAD,QAAQ,IAAI,EAAE,IAAI;AACkC,QAAlE,AAAe,cAAD,QAAmB,aAAX,AAAK,IAAD,UAAS,IAAa,aAAT,AAAK,IAAD,QAAmB,aAAZ,AAAK,IAAD,WAAU;AAClB,QAA9C,AAAe,cAAD,QAAmB,aAAX,AAAK,IAAD,UAAS,IAAI,MAAM;YACxC,gBAAK,KAAK,eAAI,OAAO;AACT,QAAjB,SAAS,AAAK,IAAD;AACiC,QAA9C,AAAe,cAAD,QAAmB,aAAX,AAAK,IAAD,UAAS,IAAI,MAAM;AACZ,QAAjC,AAAe,cAAD,QAAQ,IAAI,EAAE,IAAI;AACkC,QAAlE,AAAe,cAAD,QAAmB,aAAX,AAAK,IAAD,UAAS,IAAa,aAAT,AAAK,IAAD,QAAmB,aAAZ,AAAK,IAAD,WAAU;AAClB,QAA9C,AAAe,cAAD,QAAmB,aAAX,AAAK,IAAD,UAAS,IAAI,MAAM;YACxC,eAAI,KAAK,eAAI,MAAM;AACJ,QAApB,SAAS,AAAK,IAAD;AACgC,QAA7C,AAAe,cAAD,QAAkB,aAAV,AAAK,IAAD,SAAQ,IAAI,MAAM;AACX,QAAjC,AAAe,cAAD,QAAQ,IAAI,EAAE,IAAI;AACiC,QAAjE,AAAe,cAAD,QAAkB,aAAV,AAAK,IAAD,SAAQ,IAAa,aAAT,AAAK,IAAD,QAAmB,aAAZ,AAAK,IAAD,WAAU;AAClB,QAA7C,AAAe,cAAD,QAAkB,aAAV,AAAK,IAAD,SAAQ,IAAI,MAAM;YACvC,gBAAK,KAAK,eAAI,MAAM;AACR,QAAjB,SAAS,AAAK,IAAD;AACgC,QAA7C,AAAe,cAAD,QAAkB,aAAV,AAAK,IAAD,SAAQ,IAAI,MAAM;AACX,QAAjC,AAAe,cAAD,QAAQ,IAAI,EAAE,IAAI;AACiC,QAAjE,AAAe,cAAD,QAAkB,aAAV,AAAK,IAAD,SAAQ,IAAa,aAAT,AAAK,IAAD,QAAmB,aAAZ,AAAK,IAAD,WAAU;AAClB,QAA7C,AAAe,cAAD,QAAkB,aAAV,AAAK,IAAD,SAAQ,IAAI,MAAM;;AAE5C,sBAAI,KAAK;AACoB,UAA3B,SAAS,AAAY,WAAD;;AAEI,UAAxB,SAAS,AAAY,WAAD;;AAEuC,QAA7D,AAAe,cAAD,QAAe,aAAP,MAAM,IAAoB,CAAV,aAAL,IAAI,iBAAG,MAAM,KAAI,GAAI,MAAM;AAC3B,QAAjC,AAAe,cAAD,QAAQ,IAAI,EAAE,IAAI;AAC2B,QAA3D,AAAe,cAAD,QAAa,aAAL,IAAI,IAAoB,CAAV,aAAL,IAAI,iBAAG,MAAM,KAAI,GAAI,MAAM;AACG,QAA7D,AAAe,cAAD,QAAe,aAAP,MAAM,IAAoB,CAAV,aAAL,IAAI,iBAAG,MAAM,KAAI,GAAI,MAAM;;AAElD,4BAAY,2BACpB,gBACG,YADoB,KAAN,WAAR,8BAAQ,OAAwC,WAAZ,WAAZ,WAAP,iFACH,WAAR,6BACf,eAAsB,oBACtB,WAAsB;AAEd,+BAAc,4BACtB,gBAA4B,YAAZ,WAAR,8BAA8B,8BAC3B,6BACa,WAAZ,WAAR,8CAAwC,WAAR,6BACpC,gBAAsB,mBACtB,YAAsB,2CACtB,mBAAsB,WAAR;AAGyB,MAFvB,YAAZ,WAAR,8BAAuB,KACjB,AAAY,WAAD,SAAgB,6BAC3B,AAAY,WAAD,SAAS,AAAY,WAAD;AAE1B,wBAAc;AACQ,MAAjC,AAAY,WAAD,UAAU,WAAW;AAChC,qBAAsB,WAAV,WAAR,kCAAoB;AACtB,YAAsB,AAAkB,aAApC,AAAY,WAAD,uBAAS,eAAe,IAAqB,aAAlB,AAAY,WAAD,UAAS;AAEhC,UAD5B,AAAO,MAAD,YAAY,iCAA+B,OAAZ,WAAR,sCAAQ,OAAe,AAAU,SAAD,oCACjD,WAAR,6BAAmB;;AAGG,QAD5B,AAAO,MAAD,YAAY,WAAW,mBAAsB,OAAZ,WAAR,sCAAQ,OAAe,AAAU,SAAD,oCACnD,WAAR,6BAAmB;;AAGzB,UAAsB,AAAkB,aAApC,AAAY,WAAD,uBAAS,eAAe,IAAqB,aAAlB,AAAY,WAAD,UAAS;AACvB,QAArC,AAAO,MAAD,UAAU,gBAAW,SAAS;AACG,QAAvC,AAAO,MAAD,UAAU,gBAAW,WAAW;;AAED,MAAvC,AAAO,MAAD,UAAU,WAAW,EAAE,SAAS;AACG,MAAzC,AAAO,MAAD,UAAU,WAAW,EAAE,WAAW;IAC1C;yBAG+B,QAAc,aAC1B,WAAkB;AACxB,gCAAsB,oBAAa,kBAAa,SAAS;AACpE,qBAAY,WAAR;AACG;AACE,kBAAM;AACb,iBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAW,2BAAQ,IAAA,AAAC,CAAA;AAClB,UAApB,MAAA,AAAI,GAAD,gBAAI,AAAU,uBAAC,CAAC;AACR,uBAAS,oBAAa,GAAG,EAAE,SAAS;AAClC,4BAAc,kBACN,AACS,aAD1B,AAAY,WAAD,SACW,aAAlB,AAAY,WAAD,UAAS,IACM,aAA1B,AAAoB,mBAAD,UAAS,GAClB,AAAkB,aAA/B,kCAAe,AAAQ,OAAD,wBAAW;AACtB,UAAhB,UAAU,MAAM;AACqB,wBAAU,AAAgB,6BAAC,CAAC;AACL,UAA5D,oBAAc,WAAW,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM;;;AAGhD,0BAAc,kBACN,AACS,aAD1B,AAAY,WAAD,SACW,aAAlB,AAAY,WAAD,UAAS,IACM,aAA1B,AAAoB,mBAAD,UAAS,GACd,AAAsB,AACA,aADtC,AAAY,WAAD,qBAAO,AAAY,WAAD,WACI,aAA3B,AAAoB,mBAAD,WAAU,iBACjC;AACmD,QAA3D,oBAAc,WAAW,EAAE,aAAQ,eAAe,EAAE,MAAM;;IAE9D;oBAE0B,aAA4C,SAC3D,iBAAwB;;AACtB,uBAAa,wBACpB,iBACA,WAAW,EACX,gBAAM,AAAE,AAAc,iBAAZ,gCAAc,eAAe,GAClC,AAAE,AAAc,iBAAZ,gCAAc,eAAe,IACtC,OAAO;AAEX,UAAiC,YAA7B,AAAQ,AAAe,OAAhB,uBAAwC;AACgB,QAAjE,wBAAiB,OAAO,EAAE,MAAM,EAAE,AAAY,WAAD,KAAK,AAAY,WAAD;;AAGzD,wBAAc;AAMa,MALjC,AAAY,WAAD,SAKN,CALgB,YAAS,WAAR,2BACZ,oBAEuB,OADY,KAAnC,AAAQ,AAAe,OAAhB,mCAAgB,OACrB,AAAQ,OAAD,6BAD0B,OAEjC,AAAQ,OAAD,8CACM,WAAR;AACjB,UAAI,AAAQ,OAAD,aAAa;AAUkB,QATxC,cAAc,+BACV,AAAQ,OAAD,WACP,AAMK,wBALG,iBACA,kBAAO,AAAY,WAAD,KAAK,AAAY,WAAD,MAClC,gBAAM,AAAE,AAAc,iBAAZ,gCAAc,eAAe,GAClC,AAAE,AAAc,iBAAZ,gCAAc,eAAe,IACtC,OAAO,eAEf,AAAQ,AAAO,OAAR;;AAE2B,MAAxC,AAAO,MAAD,UAAU,UAAU,EAAE,WAAW;AAC3B,8BAAoB;AACmC,MAAnE,AAAkB,iBAAD,SAAgB,AAAM,oDAAoB,WAAR;AAClB,MAAjC,AAAkB,iBAAD,eAAe;AACc,MAA9C,AAAkB,iBAAD,SAAuB;AACM,MAA9C,AAAO,MAAD,UAAU,UAAU,EAAE,iBAAiB;IAC/C;uBAG6B,QAAc,aACxB,WAAgB,QAAe;;AAEtC,sCAA4B,0BAAmB;AACzD,UAAI,eAAU,QAAQ,AAAO;AACN,8BAAkB,uDAC0B,YAApC,WAAV,WAAR,mDAAkB,OAAO,+BAAoB,WAAR,oCAAnB,OACU,WAAZ,WAAZ,WAAP,qGACiC,WAAT,WAAV,WAAR,+CAA6B,eAAe,oCACxB,WAAV,WAAR,2EACiB,WAAV,WAAR,uDACY;AAChB,2BAAe,oBAAa,aAAQ,eAAe;AAU1C,QARpB,gBACI,cACA,MAAM,EACN,aACA,kBACsB,AAAyB,aAA1C,AAAY,WAAD,SAA0B,aAAlB,AAAY,WAAD,UAAS,IACjB,aAAnB,AAAa,YAAD,UAAS,GACT,aAAhB,AAAY,WAAD,QAAe,KAAE,IAChC,eAAe;AAEP,2BAAe;AAEM,QADjC,AAAa,YAAD,SAAC,gBACR,WAD+C,WAAZ,WAAZ,WAAP,gFACI,WAAR;AAC+B,QAAhD,AAAa,YAAD,eAAe,AAAI,mBAAE,eAAe;AACP,QAAzC,AAAa,YAAD,SAAuB;AAOlB,QALjB,AAAO,MAAD,UACF,kBAAwB,aAAjB,AAAY,WAAD,aACE,AAAsB,aAAtC,AAAY,WAAD,qBAAO,AAAa,YAAD,gBAClC,kBAAyB,aAAlB,AAAY,WAAD,cACE,AAAsB,aAAtC,AAAY,WAAD,qBAAO,AAAa,YAAD,gBAClC,YAAY;AACwD,QAAxE,oBAA+B,AAAsB,AAAgB,aAAtD,AAAY,WAAD,qBAAO,AAAa,YAAD,WAAmB,KAAE,IAAK;AAUzC,QAT9B,gBACI,cACA,MAAM,EACN,kBACA,kBACsB,AAAiB,AAAyB,aAA3D,AAAY,WAAD,SAAQ,AAAE,iBAAE,mBAA+B,aAAlB,AAAY,WAAD,UAAS,IACxC,aAAb,AAAO,MAAD,UAAS,GACF,AAAsB,AAAgB,aAAtD,AAAY,WAAD,qBAAO,AAAY,WAAD,wBAAW,AAAO,MAAD,WAAU,IAC7D,SAAS,aACT,yBAAyB;;AAWC,QAT9B,gBACI,cACA,MAAM,EACN,kBACA,kBACsB,AAAiB,AAAyB,aAA3D,AAAY,WAAD,SAAQ,AAAE,iBAAE,mBAA+B,aAAlB,AAAY,WAAD,UAAS,IACxC,aAAb,AAAO,MAAD,UAAS,GACF,AAA0B,aAA1C,AAAY,WAAD,QAA0B,aAAnB,AAAY,WAAD,WAAU,IAAmB,aAAd,AAAO,MAAD,WAAU,IACjE,SAAS,aACT,yBAAyB;;IAEjC;gBAGuB,SAAgB,QAAe,MAAa,OAChD,OACV,iBAAc;;AACX,6BAA6B;AACvC,UAAI,OAAO,IAAI,QACH,WAAR,OAAO,eAAW,mBACH,WAAP,WAAR,OAAO;AACT,YAA0B,YAAd,WAAR,OAAO,oBAAiC;AACR,UAAlC,mBAA6B;cACxB,KAA0B,YAAd,WAAR,OAAO,oBAAiC;AACd,UAAnC,mBAA6B;cACxB,KAA0B,YAAd,WAAR,OAAO,oBAAiC;AACjB,UAAhC,mBAA6B;;;AAIrB,kBAAQ,AAAM,KAAD;AACZ,qBAAW,AAAM,KAAD;AAChB,uBAAa,AAAM,KAAD;AACf,sBAAY,AAAM,KAAD;AAChB,uBAAa,AAAM,KAAD;AACpB,iBAAO,kCACZ,IAAI,SACH,qCACI,KAAK,YACF,QAAQ,cACN,UAAU,aACX,SAAS,cACR,UAAU;AAEZ,eAAK,wCACb,IAAI,iBACmB,iCAClB,gBAAgB,aACR,KAAT,QAAQ,QAAR,OAAY;AACf,MAAX,AAAG,EAAD;AACW,MAAb,AAAO,MAAD;AAC8B,MAApC,AAAO,MAAD,WAAW,AAAM,KAAD,KAAK,AAAM,KAAD;AAChC,UAAI,QAAQ,IAAI,QAAiB,aAAT,QAAQ,IAAG;AACO,QAAxC,AAAO,MAAD,QAAQ,uBAAgB,QAAQ;;AAEA,MAAxC,AAAG,EAAD,OAAO,MAAM;AACC,MAAhB,AAAO,MAAD;IACR;;wCAGiC;AAAgB;IAAI;SAEpC,GAAU;AACzB,qBAAY,WAAR,4BACQ,WAAR,2BAAoB,mBACgB,WAAZ,WAAP,WAAT,WAAR;AACmC,QAApB,UAAT,WAAR,yCAAgC;AACiB,QAAhC,WAAT,WAAR,8CAAoC,kBAAO,CAAC,EAAE,CAAC;AAC/C,YAAqB,WAAT,WAAR,gDAAqC,QACpB,AAAoB,WAA7B,WAAR,mDAAwC,qBAC9B,WAAR,kCAA2C;AACS,UAAxD,AAAkB,AAAoB,0DAAc;AAEf,UADpB,UAAT,WAAR,gDACqB,WAAT,WAAR;;AAEJ,cAA4B,YAAhB,WAAR,kCAA2C;AACW,YAAxD,AAAkB,AAAoB,0DAAc;AAEf,YADpB,UAAT,WAAR,gDACqB,WAAT,WAAR;;;AAGR,YAAqB,WAAT,WAAR,qCAA0B;AACG,UAAR,WAAN,WAAT,WAAR;;AAEF,wBAAa,WAAR;AAQD,UAPe,UAAT,WAAR,kCACI,gBAAM,qDAAwC,WAAT,WAAR,4CAA2B;;AAC5B,YAA9B,AAAkB,8BAAO;AAEmB,YAD3B,UAAT,WAAR,gDACqB,UAAT,WAAR,6CAAoC;AACQ,iBAAhD,AAAkB;YAAuB,WAAK,aAAL,YAAK;AACV,YAAnB,UAAT,WAAR,yCAAgC;;;;IAIxC;4BAKW,UAAoB,OAAiB;;AAC9C,qBAAY,WAAR,4BACQ,WAAR,2BAAoB,mBACgB,WAAZ,WAAP,WAAT,WAAR;AACsD,QAAxD,AAAkB,AAAoB,0DAAc;AACf,QAApB,UAAT,WAAR,yCAAgC;AAET,mDAAyB,WAAT,WAAR;AAEG,QADlC,AAAM,AAAgB,AAAS,KAA1B,0CACD,AAAM,AAAW,KAAZ;AACT,sBAAI,AAAM,AAAW,AAAc,KAA1B,qCAAmC,QAAQ;AACY,UAA9D,AAAM,AAAgB,AAAS,KAA1B,2CAA0C,AAAM,AAAM,KAAP,eAAQ;AACL,UAAvD,AAAM,AAAgB,AAAS,KAA1B,oCAA0B,2BAAS,AAAM,AAAM,KAAP,eAAQ;AACX,UAA1C,AAAM,AAAgB,AAAS,KAA1B,qCAAoC;AACG,UAA5C,AAAM,AAAgB,AAAS,KAA1B,oCAAmC;AAChC,uBAAS,sBACb,KAAK,EACL,KAAK,EACL,AAAM,KAAD,WACO,aAAZ,AAAS,QAAD,QACiC,aAApC,AAAM,AAAW,AAAc,KAA1B,iDAAiC,AAAM,KAAD,eACpC,aAAZ,AAAS,QAAD,QACgC,aAAnC,AAAM,AAAW,AAAc,KAA1B,gDAAgC,AAAM,KAAD;AAC3C,uBAAS,sBACb,KAAK,EACL,KAAK,EACL,AAAM,KAAD,WACO,aAAZ,AAAS,QAAD,QACiC,aAApC,AAAM,AAAW,AAAc,KAA1B,iDAAiC,AAAM,KAAD,eACpC,aAAZ,AAAS,QAAD,QACgC,aAAnC,AAAM,AAAW,AAAc,KAA1B,gDAAgC,AAAM,KAAD;AACnD,cAAU,uBAAN,KAAK;AAEyD,YADhE,SACK,CADsB,KAAjB,AAAM,KAAD,mBAAC,OAAc,AAAM,KAAD,kBAAiB,KAAK,eACpC,6DAAkC,WAAP,MAAM;cACnD,KAAU,uBAAN,KAAK;AACsC,YAAlD,SAAS,AAAM,AAAc,AAAiB,KAAhC,wCAAuB,WAAP,MAAM;cACjC,KAAU,sBAAN,KAAK,GACZ,AAE+B,oBAFI,WAAnB,WAAP,MAAM,sBAAiB,kBAAY,WAC/B,WAAP,MAAM,iBACC,WAAP,MAAM,sBAAiB;AAE/B,cAAU,uBAAN,KAAK;AAEyD,YADhE,SACK,CADsB,MAAjB,AAAM,KAAD,oBAAC,OAAc,AAAM,KAAD,kBAAiB,KAAK,gBACpC,6DAAkC,WAAP,MAAM;cACnD,KAAU,sBAAN,KAAK,GACZ,AAE+B,oBAFI,WAAnB,WAAP,MAAM,sBAAiB,kBAAY,WAC/B,WAAP,MAAM,iBACC,WAAP,MAAM,sBAAiB;AACoC,UAAnE,AAAM,AAAgB,AAAS,KAA1B,yCAAwC,AAAsB,eAAnB,MAAM,sBAAK,MAAM;AACN,UAA3D,AAAM,AAAgB,AAAS,KAA1B,+CAA6C,QAAQ;;AAE5D,YAAqB,WAAT,WAAR,qCAA0B;AACG,UAAR,WAAN,WAAT,WAAR;;AAEF,wBAAa,WAAR;AAMD,UALe,UAAT,WAAR,kCACI,gBAAM,qDAAwC,WAAT,WAAR,4CAA2B;;AAC5B,YAA9B,AAAkB,8BAAO;AACuB,iBAAhD,AAAkB;YAAuB,WAAK,aAAL,YAAK;AACV,YAAnB,UAAT,WAAR,yCAAgC;;;;IAIxC;;AAGE,UAAqB,WAAT,WAAR,qCAA0B;AACG,QAAR,WAAN,WAAT,WAAR;;AAGF,UAAqB,AAAiB,WAA1B,WAAR,gDAAqC,QACpB,AAAoB,WAA7B,WAAR,mDAAwC;AAQxC,QAPe,UAAT,WAAR,kCACI,gBAAM,qDAAwC,WAAT,WAAR,4CAA2B;;AAC5B,UAA9B,AAAkB,8BAAO;AAEmB,UAD3B,UAAT,WAAR,gDACqB,UAAT,WAAR,6CAAoC;AACQ,eAAhD,AAAkB;UAAuB,WAAK,aAAL,YAAK;AACV,UAAnB,UAAT,WAAR,yCAAgC;;;IAGtC;qBAE6B,GAAU;AACrC,qBAAY,WAAR,4BACQ,WAAR,2BAAoB,mBACgB,WAAZ,WAAP,WAAT,WAAR;AACmC,QAApB,UAAT,WAAR,yCAAgC;AACiB,QAAhC,WAAT,WAAR,8CAAoC,kBAAO,CAAC,EAAE,CAAC;AAC/C,YAAqB,WAAT,WAAR,qCAA0B;AACG,UAAR,WAAN,WAAT,WAAR;;AAEF,YAAqB,WAAT,WAAR,gDAAqC,QACpB,AAAoB,WAA7B,WAAR,mDAAwC;AACc,UAAxD,AAAkB,AAAoB,0DAAc;AAEf,UADpB,UAAT,WAAR,gDACqB,WAAT,WAAR;;AAEN,YAA4B,2BAAP,WAAT,WAAR;AACI,UAAN;;;IAGN;;;QA1iCU;QACD;QACA;QACc;IAEhB,qBAAgB;IAChB,kBAAa;IACb,kBAAa;IACb,kBAAa;IACb;IACA;IACA;IACA;IACY;IACd,aAAQ;IACN,oBAAe;IACjB,iBAAY;IACZ,oBAAe;IACd;IACD,cAAS;IACT,eAAU;IAEP;IACH;IACE,eAAU;IACV;IACH;IACS,kBAAqB;IACG,wBACD;IAC7B;IACF;IACG;IACA;IACA;IACJ;IACW;IACR;IACD;IACyB;IAClB;IACA;IAzCH;IACD;IACA;AAEH,8DAAe,QAAQ;;EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxF5B,YAAO;IACT;;;QAfuB;QAAW;QAAe;QAAW;;IAUtC;IAVC;IAAW;IAAe;IAAW;AAA5D;;EAAsE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiCjD,MAAnB,AAAO,oBAAQ;AAE8C,MAD7D,oBAAc,yDACH;AAEgE,MAD3E,mBAAa,AACR,kCAD6B,UAAU,cAC/B,4CAAwB,0BAA2B;AAC/C,MAAX;IACR;;AAGE,oBAAI;AAGA,QAFF,cAAS;AACY,UAAnB,AAAO,mBAAO;;;IAGpB;;;AAIuB,MAArB,AAAY;AACU,WAAtB;0BAAc;AACC,MAAT;IACR;;qCAGsC;AACjB,MAAnB,AAAO,oBAAQ;AACiB,MAA1B,sBAAgB,SAAS;IACjC;;AAGoB,MAAlB,mBAAc;AACgB,MAA9B;AACA,oBAAI;AACa,QAAf,cAAS;;;IAEb;;AAGkB,2CAAY,AAAe;AACf,MAA5B,mBAAc,AAAU,SAAD;AACJ,MAAnB,mBAAc;AACd,oBAAI;AACa,QAAf,cAAS;;;IAEb;UAG0B;AACjB;AACP,oBAAI,AAAO;AACT,sBAAI;AAEiE,UADnE,gBACI,gCAAiB,YAAY,oCAAiB,AAAO;AACjC,UAAxB,sBAAiB,OAAO;AACwC,UAA/C,AAAS,uDAAqB,QAAC,KAAM;;AAExB,UAA9B,AAAY,iCAAc;AACf,4BAAmB,qBACT,aAAjB,AAAO,AAAK,yBAAyB,aAAlB,AAAY,0BAAQ,GACvB,aAAhB,AAAO,AAAK,wBAAyB,aAAnB,AAAY,2BAAS,GACvC,AAAY,wBACZ,AAAY;AACH,yBACT,0BAAoB,WAAW,EAAE,AAAO;AAQtC,UAPN,gBAAgB,gDACD,yBACJ,qCACgB,oCAAS,AAAS,QAAD,KAAK,AAAS,QAAD,KAAK,KAAG,aAClD,AAAO,0FACT,SAAc,SAAgB,YAC9B,gCAAmC,aAAlB,AAAY,2BAAQ,YAAY,OAAO;;;AAI5C,QAA3B,gBAAgB;;AAElB,UAAI,qBAAgB;AACG,QAArB,AAAa;;AAEf,oBAAI,AAAO;AAC8D,QAAvE,oBAAe,2CAA0C;;AAE3D,YAAO,cAAa;IACtB;0BAEgC,aAAkB;AACzC,iBAAO,AAAY,WAAD;AAAO,gBAAM,AAAY,WAAD;AACjD,UAAqB,aAAjB,AAAY,WAAD,sBAAQ,AAAO,MAAD;AACT,QAAlB,OAAO,AAAO,MAAD;;AAEf,UAAoB,aAAhB,AAAY,WAAD,qBAAO,AAAO,MAAD;AACV,QAAhB,MAAM,AAAO,MAAD;;AAEd,UAAqB,AAAoB,aAArC,AAAY,WAAD,sBAAQ,AAAY,WAAD,UAAqB,aAAZ,AAAO,MAAD,sBAAQ,AAAO,MAAD;AACN,QAAvD,OAAoB,AAAgB,aAA5B,AAAO,MAAD,sBAAQ,AAAO,MAAD,uBAAU,AAAY,WAAD;;AAEnD,UAAoB,AAAqB,aAArC,AAAY,WAAD,qBAAO,AAAY,WAAD,WAAqB,aAAX,AAAO,MAAD,qBAAO,AAAO,MAAD;AACL,QAAvD,MAAkB,AAAiB,aAA5B,AAAO,MAAD,qBAAO,AAAO,MAAD,wBAAW,AAAY,WAAD;;AAElD,YAAO,mBAAO,IAAI,EAAE,GAAG;IACzB;;;IAjHa;IAER;IAEA;IAEe;IACF;IAEZ;;;EAyGR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IChGa;;;;;;IAcE;;;;;;IAcD;;;;;;IAcO;;;;;;IAqBE;;;;;;IAoBA;;;;;;IAqBG;;;;;;IAqBG;;;;;;IAgBhB;;;;;;IAgBQ;;;;;;IAgBN;;;;;;SAoBK,GAAU,GAAW;;AACG,iDACpC,AAAkB,AAAM,AAAM,4CAAC;AACnC,UAAI,2BAAqB,qBAAQ,qBAAiC;AAChE,YAAI,cAAc,KAAI;AAC6C,UAAjE,AAAkB,AAAM,AAAY,mEAAwB;AACvC,yBAAW,uBACd,gBAAZ,iBAAF,CAAC,IAAe,AAAE,CAAD,0BAA0B,CAAC,GAC5C,CAAC,EACD,AAAO,MAAD,WACN,AAAO,MAAD,WACN,AAAO,AAAO,MAAR,gCACN,MAAM,EACN,AAAO,AAAO,AAAW,MAAnB;AACI,UAAd,IAAI,AAAS,QAAD;AACE,UAAd,IAAI,AAAS,QAAD;;AAE+C,QAA7D,AAAkB,4CAAmB,qCAAS,WAAF,CAAC,oBAAa,CAAC;;AAEvB,MAAtC,AAAkB,uCAAe;AACjC,oBAAI,AAAkB,AAAM,AAAY,mEAC8B;aAApE,AAAkB,AAAM,AAAY;QAAyB,WAAK,aAAL,YAAK;;IACtE;gBAKqB;AACnB,UAAI,2BAAqB,qBAAQ,qBAAiC;AAChE,sBAAI,mBAAY,UAAU,EAAE,GAAG,AAAkB;AAEoB,UADnE,AAAkB,qEACd,AAAkB,AAAM,AAAa,4DAAe,UAAU;;AAE9B,QAAtC,AAAkB,uCAAe;;IAErC;;;AAIE,UAAI,2BAAqB,qBAAQ,qBAAiC;AAC1B,QAAtC,AAAkB,uCAAe;AAEwC,QADzE,gCACsE,KAAlE,AAAkB,AAAM,AAAY,oFAAyB,8BAAK;AACtE,YAAI,AAAkB,iCAAS;AACG,UAAhC,AAAkB,AAAM;;AAE1B,uBAAK;AACU,yBAAY,AAAU,AAAK,mBAAF,eAC9B,AAAkB,AAAM,AAAY,gEACtC,QACA;AAKJ,UAJF,AAAkB,gCACd,gBAAM,qCAAuB,AAAS,QAAD,cAAW;;AACkB,iBAApE,AAAkB,AAAM,AAAY;YAAyB,WAAK,aAAL,YAAK;AAC7B,YAArC,AAAkB,uCAAe;;;;IAIzC;gBAQwB,MAAa;AAAS,uBAAK,IAAI,EAAE,IAAI,EAAE;IAAQ;gBAS/C,MAAa;AAAS,uBAAK,IAAI,EAAE,IAAI,EAAE;IAAQ;gBAS/C,MAAa;AAAS,uBAAK,IAAI,EAAE,IAAI,EAAE;IAAQ;gBAS/C,MAAa;AAAS,uBAAK,IAAI,EAAE,IAAI,EAAE;IAAQ;cASjD,MAAa;AAAS;IAAM;YAS9B,MAAa;AAAS,uBAAK,IAAI,EAAE,IAAI,EAAE;IAAQ;WAShD,MAAa;AAAS;IAAM;YAM3B;AAClB,UAAI,2BAAqB,mBAAS,AAAkB;AACV,QAAxC,AAAkB,wCAAe,MAAM;;IAE3C;gBAEsB,QAAc,OAAW;AAC7C,UAAI,2BAAqB;AACyC,QAAhE,AAAkB,4CAAmB,MAAM,EAAE,KAAK,EAAE,WAAW;;IAEnE;mBAEyB;;AAAU;iCAAmB,oBAAgB,KAAK;IAAC;;;;QA5W3D;QACG;QACG;QACN;QACI;QACd;QACA;QACA;QACA;QACA;QACE;IAuMF;IAGW;IAGb;IAlNE;IACA;IACA;IACA;IACA;IAEc,0BAAiB,KAAf,cAAc,QAAd,OAAiC;IACjC,2BAAmB,MAAjB,gBAAgB,SAAhB,OAAmC;IAC5C,qBAAY,OAAV,SAAS,UAAT,OAAa;IACN,6BACI,OAAnB,kBAAkB,UAAlB,OAA2C;IAC/B,0BAAkB,OAAhB,eAAe,UAAf,OAAmB;IAC5B,oBAAW,OAAT,QAAQ,UAAR,OAA8B;AAChB,IAA7B,8BAAwB;EAC1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UCQkB,QAAa;AAC3B,YAAA,AAAM,AAAkB,sCAAQ,MAAM;IAAC;sBAEf;AAAuB,+BAAkB;;qBAE1C;;AAC0C,MAAnE,oBAAe,AAAM,AAAkB,AAAgB;AACY,MAAnE,qBAAgB,AAAM,AAAkB,AAAgB;AACS,MAAjE,oBAAe,AAAM,AAAkB,AAAgB;AACzC,MAAd,cAAS;AACM,MAAf,eAAU;AACH,mBAAS;AAAG,kBAAQ;AACkB,MAA7C,oBAAe,AAAM,AAAW;AACmB,MAAnD,kBAA+B,aAAlB,AAAa,uCAAO,AAAa;AASuB,MARrE,kBAAa,uCACsD,KAAxD,AAAM,AAAkB,AAAgB,AAAU,oEAAA,OACrD,AAAM,AAAY,AAAY,0EACxB,AAAM,AAAkB,AAAgB,AAAU,6EAExD,AAAM,AAAkB,AAAgB,AAAU,8EAC3C,AAAM,AAAkB,AAAgB,AAAU,8EAEzD,AAAM,AAAkB,AAAgB,AAAU;AAE1D,eAAS,QAAQ,GAAG,AAAM,KAAD,gBAAG,AAAe,+BAAQ,QAAA,AAAK,KAAA;AACtD,aAAM,AAAc,AAAQ,AAAO,AAAY,2BAA1B,KAAK,2BAAwB,YACtC,AAAc,AACT,AACA,AACA,2BAHU,KAAK,kCAGN,oBACd,AAAc,AAAQ,AAAO,AAAY,2BAA1B,KAAK,2BAAwB,iBAC5C,AAAc,AAAQ,AAAO,AAAY,2BAA1B,KAAK,2BAAwB,YAC5C,AAAc,AAAQ,AAAO,AAAY,2BAA1B,KAAK,kCAA8B,uBACrD,AAAM,4BACV,AAAc,AAAQ,AAAO,AAAY,2BAA1B,KAAK,2BAAwB,SACzC,AAAc,AAAQ,AAAO,AAAY,2BAA1B,KAAK,kCAA8B,2BAC9C,AAAM;AACc,UAA9B,+BAA0B;;AAER,QAApB,oBAAe;AACf,aAAM,AAAc,AAAQ,AAAO,AAAY,2BAA1B,KAAK,2BAAwB,YACtC,AAAc,AACT,AACA,AACA,2BAHU,KAAK,kCAGN,oBACd,AAAc,AAAQ,AAAO,AAAY,2BAA1B,KAAK,2BAAwB,iBAC5C,AAAc,AAAQ,AAAO,AAAY,2BAA1B,KAAK,2BAAwB,YAC5C,AAAc,AAAQ,AAAO,AAAY,2BAA1B,KAAK,kCAA8B,sBACtD,AAAM,6BACR,AAAc,AAAQ,AAAO,AAAY,2BAA1B,KAAK,2BAAwB,SACtC,AAAc,AACT,AACA,AACA,2BAHU,KAAK,kCAGN,6BACjB,AAAM;AACM,UAAnB,oBAAe;;AAEjB,uBAAK,mCACD,AAAM,AAAkB,uCAA8B;AAC5C,mCAAqB;AAEmB,UADpD,AAAmB,kBAAD,UAA2C,MAAlC,AAAM,AAAkB,+CAAA,OAC/C,AAAM,AAAY,AAAY;AACgC,UAAlE,AAAmB,kBAAD,eAAe,AAAM,AAAkB;AACV,UAA/C,AAAmB,kBAAD,SAAuB;AAGgB,UAFzD,AAAM,AAAkB,AAAU,2CAAG,IAC/B,AAAmB,kBAAD,SAAgB,6BAClC,AAAmB,kBAAD,SAAS,AAAmB,kBAAD;AAEiB,UADpE,AAAM,AAAkB,wCAAU,MAAM,EACpC,AAAM,AAAkB,2CAAa,kBAAkB,GAAG,KAAK;;AAE1D,mBAAO,sBAAgB,MAAM,EAAE,KAAK,EAAE,KAAK;AAClC,QAApB,SAAS,AAAK,IAAD;AACK,QAAlB,QAAQ,AAAK,IAAD;AACZ,YAAU,aAAN,KAAK,IAAG;AACA,UAAV,QAAQ;AAC0C,UAAlD,oBAA4B,aAAb,qBAAe,IAAI,MAAI;;AAExC,YAAiB,aAAb,qBAAe;AACA,UAAjB,oBAAe;;AAEN,QAAX,eAAU;AACV,YAAI,UAAK,QACL,UAAK,kBACL,AAAM,AAAkB,AAAgB;AAC1C,cAA+C,YAA3C,AAAM,AAAkB,iDACC,gDACvB,AAAc,AAAQ,2BAAP,KAAK,YAAY,QAC1B,AAAc,AAAQ,2BAAP,KAAK,aAAY,MACnC,AAAc,AAAQ,2BAAP,KAAK,WAAW,QAC5B,AAAc,AAAQ,2BAAP,KAAK,YAAW;AACY,YAArD,8BAAwB,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK;;AAEpD,gBAAI,AAAc,AAAQ,2BAAP,KAAK,WAAW,QAC/B,AAAc,AAAQ,2BAAP,KAAK,YAAW;AACoB,cAArD,8BAAwB,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK;;;;AAK1D,YAA+C,YAA3C,AAAM,AAAkB,iDACH;AACvB;;;IAGN;sBAK4B,QAAe,OAAW;AACvC,qBAAW,kBACpB,AAAc,AAAQ,2BAAP,KAAK,aAAa,AAAc,AAAQ,2BAAP,KAAK;AACjC,MAAxB,mBAAsB;AACT,mBAAS,AAAc,AAC/B,AACA,AACA,AACA,AACA,2BALgC,KAAK;AAM1C,UAAI,MAAM,IAAI,QACV,AAAO,MAAD,YAAU,eACf,AAAO,MAAD,YAAU;AACL,QAAd,eAAU;;AAEZ,UAAI,MAAM,IAAI,QACV,AAAO,MAAD,YAAU,cAChB,AAAO,MAAD,YAAU,eACf,AAAO,MAAD,YAAU;AACJ,QAAf,eAAU;;AAEZ,UAAI,AAAc,AAAQ,2BAAP,KAAK,YAAY,QAChC,AAAc,AAAQ,2BAAP,KAAK,aAAY;AACW,QAA7C,AAAY,uBAAI,AAAc,AAAQ,2BAAP,KAAK;;AAEtC,UAA+C,YAA3C,AAAM,AAAkB,iDACH;AAChB,mBAAO;AACd,iBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAe,+BAAQ,IAAA,AAAC,CAAA;AAC1C,cAAI,AAAc,AAAI,AAAO,2BAAV,CAAC,oBAAkB;AACnB,YAAjB,kBAAa;;AAEV,yBACD,AAAc,AAAI,AAAe,2BAAlB,CAAC,YAAY,QAAQ,AAAc,AAAI,2BAAH,CAAC,aAAY;AAC/D,wBACD,AAAc,AAAI,AAAc,2BAAjB,CAAC,WAAW,QAAQ,AAAc,AAAI,2BAAH,CAAC,YAAW;AAClE,wBAAI,AAAc,AAAI,AAAO,2BAAV,CAAC;AAEgB,YADlC,WAAW,AAAc,AAAI,AAAe,2BAAlB,aAAa,QACnC,AAAc,AAAI,2BAAH,cAAa;AAEoC,YADpE,UACI,AAAc,AAAI,AAAc,2BAAjB,YAAY,QAAQ,AAAc,AAAI,2BAAH,aAAY;;AAEvD,oBAAO,AAAE,AAAK,CAAN,KAAI,KAAK,QAAQ,GAAI,OAAO;AACpC,2BAAa,AAAc,AAAI,AAAO,2BAAV,CAAC;AAC1C,wBAAI,AAAc,AAAI,AAAO,2BAAV,CAAC,2BAChB,AAAc,AAAI,AAAO,AAAK,2BAAf,CAAC,kBAAiB;AACV,YAAzB,OAAO,AAAE,CAAD,KAAI,IAAI,OAAO;AACvB;gBACK,MAAK,AAAW,UAAD,YAAU,WACxB,AAAW,UAAD,YAAU,aACpB,AAAW,UAAD,YAAU,aACxB,AAAc,AACL,AACA,AACA,AACA,AACA,AAAO,2BALD,CAAC,6DAMZ,QACJ,OAAO;AAK0D,YAJnE,AAAY,uBAGI,CAHE,AAAc,AAAQ,AAAO,AAAQ,2BAAtB,KAAK,YAAY,QACtC,AAAc,AAAQ,AAAO,2BAAd,KAAK,aAAY,KAClC,KACA,SACwD,SAA3D,AAAc,AAAI,AAAO,2BAAV,CAAC,iBAAc,gBAAI,AAAc,AAAI,2BAAH,CAAC;AAC5B,YAA7B,eAAU,AAAS,QAAD,IAAI,OAAO;gBACxB,KAAI,AAAc,AAAI,AAAO,2BAAV,CAAC,iBAAiB;AAC1C,gBAAI,AAAc,AACT,AACA,AACA,AACA,AACA,2BALU,CAAC,6DAMhB;AACF,kBAAI,QAAQ,IAAI,OAAO,IAAI,AAAE,CAAD,KAAI;AACX,gBAAnB,AAAY,uBAAI;;AAElB,kBAAI,OAAO;AAC+B,gBAAxC,AAAY,uBAAI,AAAc,AAAI,2BAAH,CAAC;;AAEL,cAA7B,eAAU,AAAS,QAAD,IAAI,OAAO;kBACxB,KAAI,AAAc,AAAI,AAAM,2BAAT,CAAC,mBAAiB,SACvC,AAAc,AAAI,AAAO,2BAAV,CAAC,YAAY,QACzB,AAAc,AAAI,AAAO,2BAAV,CAAC,aAAY,OAChC,OAAO;AAC+B,cAAxC,AAAY,uBAAI,AAAc,AAAI,2BAAH,CAAC;AACjB,cAAf,eAAU;;AAEV,kBAAI,OAAO;AAKmB,gBAJ5B,AAAY,uBAAI,AAAK,AACb,AAC0B,AACzB,IAHW,GAChB,GAAG,gBACH,AAAc,AAAI,AAAO,2BAAV,CAAC,iBAChB,oBACA,AAAc,AAAI,2BAAH,CAAC;;AAIX,cAFX,eAAW,AAAc,AAAI,AACW,2BADd,aAAa,QAC/B,AAAc,AAAI,2BAAH,cAAa,MAChC,OAAO;;AAEb,gBAAI,IAAI,KAAI;AACD,cAAT,OAAO;;;AAGT,gBAAI,OAAO;AAC+B,cAAxC,AAAY,uBAAI,AAAc,AAAI,2BAAH,CAAC;;;;AAItC,iBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAY,4BAAQ,IAAA,AAAC,CAAA;AAChC,8BAAgB,AAAW,wBAAC,CAAC;AACpC,cAAI,AAAc,aAAD,YAAU,UAAU,AAAc,aAAD,YAAU;AAEI,YAD9D,gBACI,AAAc,AAAsB,aAAvB,cAAY,OAAO,iBAAe,QAAQ;;AAE7D,cAAkD,aAA9C,AAAwC,oBAA3B,aAAa,EAAE,uCAAoB,KAAK;AACF,YAArD,QAAQ,AAAwC,oBAA3B,aAAa,EAAE;;AAEkB,UAAxD,SAAO,aAAP,MAAM,iBAAI,AAAwC,oBAA3B,aAAa,EAAE;;AAEzB,QAAf,SAAI,AAAS,QAAD;AACZ,YAA6C,YAAzC,AAAM,AAAkB,+CAAmC;AACjB,UAA5C,SAAI,AAAM,AAAW,AAAc,AAAO;cACrC,KAA6C,YAAzC,AAAM,AAAkB,+CAChB;AACqB,UAAtC,SAAI,AAAM,AAAW,AAAc;;AAEM,UAAzC,SAAI,AAAM,AAAW,AAAc;;;AAGb,QAAxB,mBAAsB;AACtB,YAAI,AAAc,AAAQ,2BAAP,KAAK,WAAW,QAC/B,AAAc,AAAQ,2BAAP,KAAK,YAAW;AACW,UAA5C,AAAY,uBAAI,AAAc,AAAQ,2BAAP,KAAK;;AAE/B,sCAAgB,AAAY,iCAAa,AAAW,wBAAC,KAAK;AACjE,YAAI,aAAa,IAAI,QACjB,AAAc,aAAD,YAAU,UACvB,AAAc,aAAD,YAAU;AAEqC,UAD9D,gBACI,AAAc,AAAsB,aAAvB,cAAY,OAAO,iBAAe,QAAQ;;AAElD,mBAAO,oBAAa,aAAa,EAAE;AAC5B,QAAlB,QAAQ,AAAK,IAAD;AACQ,QAApB,SAAS,AAAK,IAAD;AAEb,YAAI,AAAc,AAAQ,AAAO,AAAY,2BAA1B,KAAK,2BAAwB,YAC5C,AAAc,AAAQ,AAAO,AAAY,2BAA1B,KAAK,2BAAwB,SAC5C,AAAc,AAAQ,AAAO,AAAY,2BAA1B,KAAK,2BAAwB,iBAC5C,AAAc,AAAQ,AAAO,AAAY,2BAA1B,KAAK,2BAAwB,YAC5C,AAAc,AAAQ,AAAO,AAAY,2BAA1B,KAAK,kCAA8B,WAClD,AAAc,AAAQ,AAAO,AAAY,2BAA1B,KAAK,kCAA8B;AACE,UAAtD,SAAI,AAAc,AAAQ,AAAe,AAAY,2BAAlC,KAAK;AAC8B,UAAtD,SAAI,AAAc,AAAQ,AAAe,AAAY,2BAAlC,KAAK;cACnB,KAAI,AAAc,AAAQ,AAAO,AAAY,2BAA1B,KAAK,2BAAwB;AACC,UAAtD,SAAI,AAAc,AAAQ,AAAe,AAAY,2BAAlC,KAAK;AAGnB,UAFL,SAC6D,CADL,aAAnD,AAAc,AAAQ,AAAe,AAAY,2BAAlC,KAAK,+CACjB,AAAc,AAAQ,AAAe,AAAa,2BAAnC,KAAK,oCACxB;;AAEW,UAAf,SAAI,AAAS,QAAD;AACG,UAAf,SAAI,AAAS,QAAD;;;AAGhB,YAAO,iBAAK,KAAK,EAAE,MAAM;IAC3B;8BAGW,QAAe,OAAc,QAAY;AAC7C,sBAAiB,qBAAS,QAAG,QAAS,aAAN,KAAK,IAAG,IAAW,aAAP,MAAM,IAAG;AAC/C,2BAAsB,qBAA2B,aAAlB,AAAa,0BAAO,IAC1D,AAAa,uBAAwB,aAAnB,AAAa,2BAAQ,IAAI,AAAa;AACjD,qBAAgB,qBAA2B,aAAlB,AAAa,0BAAO,GAAG,AAAa,uBAChD,aAApB,AAAe,cAAD,UAA2B,aAAlB,AAAa,0BAAO,IAAI,AAAa;AACrD,sBAAiB,qBAAS,AAAe,cAAD,QAAQ,AAAa,uBAChD,AAAK,aAAxB,AAAa,2BAAQ,iBAAK,AAAe,cAAD,SAAQ,AAAa;AAClE,oBAAI,AAAS,QAAD,UAAU,kBAAO,QAAG;AACjB,QAAb,cAAS;AACM,QAAf,eAAU;YACL,eAAI,AAAU,SAAD,UAAU,kBAAO,QAAG;AACxB,QAAd,cAAS;AACK,QAAd,eAAU;;AAGZ,UAAM,aAAF,UAAkB,aAAd,mCAAgB,AAAU,SAAD;AACC,QAAhC,4BAAsB,SAAS;;AAElB,QAAb,aAAQ;AACR,sBAAI;AAC8B,UAAhC,YAAS,aAAF,UAAqB,aAAhB,AAAU,SAAD,UAAS;AACM,UAApC,YAAU,AAAiB,aAAnB,uBAAI,mCAAiB;AACF,UAA3B,kBAAa,AAAU,SAAD;AACc,UAApC,kBAA2B,aAAd,AAAU,SAAD,qBAAO;AAChB,gCAAoB,aAAF,UAAqB,aAAhB,AAAU,SAAD,UAAS;AAKxC,UAJd,YAAY,aAAL,0BAAO,AAAa,0BACrB,AAAa,yBACb,AAAgB,eAAD,gBAAG,mBACH,aAAX,gCAAa,AAAU,SAAD,UACtB;;AAEV,cAA+C,YAA3C,AAAM,AAAkB,iDACH;AACO,YAA9B,YAAS,aAAF,UAAoB,aAAhB,AAAU,SAAD,UAAS;AACrB,YAAR,YAAO;;AAE2B,YAAlC,YAAS,AAAU,aAAZ,uBAAI,6BAAU;AACmB,YAAxC,YAAU,AAAqB,aAAvB,UAAkB,aAAd,sBAAgB,iBAAK;;AAER,UAA3B,kBAAa,AAAU,SAAD;AACI,UAA1B,kBAAa,AAAU,SAAD;AACT,gCAAoB,aAAF,uBAAI,AAAU,SAAD;AAC5C,cAAS,aAAL,0BAAO,AAAa;AAIC,YAHvB,YAAmD,YAA3C,AAAM,AAAkB,iDACH,8CACL,aAAlB,AAAa,uCAAO,wBACpB,AAAa;gBACd,KAAI,AAAgB,eAAD,gBAAG;AAIyC,YAHpE,YAAmD,YAA3C,AAAM,AAAkB,iDACH,8CACjB,AAAwB,aAA7B,aAAwB,aAAhB,AAAU,SAAD,UAAS,iBAAK,wBACzB,AAAkB,AAAiB,aAAxC,0BAAO,AAAU,SAAD,UAAU,AAAE,iBAAE,gBAAY,AAAE,iBAAE;AAExC,YAAd,eAAU;;AAOA,YALV,YAAmD,AACH,YADxC,AAAM,AAAkB,iDACC,+CACgB,YAAzC,AAAM,AAAkB,+CACL,8BACnB,AAAU,aAAZ,uBAAI,6BAAU,sBACd;;;;AAIZ,uBAAI,AAAM,AAAkB,iDACH;AACvB,YAAS,aAAL,cAA0B,aAAlB,AAAa,0BAAO;AACd,UAAhB,YAAY,aAAL,aAAO;cACT,KAAS,AAAkB,aAAvB,0BAAO,AAAU,SAAD,WAAqB,aAAX,mBAAa;AAChC,UAAhB,YAAY,aAAL,aAAO;;;AAGsD,MAAxE,YAAiB,qBAAS,WAAM,WAAM,AAAU,SAAD,QAAQ,AAAU,SAAD;AAEd,MADlD,sBAAgB,MAAM,EAAE,SAAS,EAAE,iBAAY,iBAAY,mBACvD,YAAO,qBAAgB,aAAQ,cAAS,KAAK;IACnD;4BAEgC;AAClB,MAAZ,aAAQ;AACR,oBAAI;AAC8B,QAAhC,YAAS,aAAF,UAAqB,aAAhB,AAAU,SAAD,UAAS;AACS,QAAvC,YAAU,AAAoB,aAAtB,uBAAI,AAAU,SAAD,wBAAW;AACI,QAApC,kBAA2B,aAAd,AAAU,SAAD,qBAAO;AACF,QAA3B,kBAAa,AAAU,SAAD;AACT,8BAAoB,aAAF,UAAqB,aAAhB,AAAU,SAAD,UAAS;AAGkB,QAFxE,YAAY,aAAL,0BAAO,AAAa,0BACrB,AAAa,yBACb,AAAgB,eAAD,gBAAG,mBAAwB,aAAX,gCAAa,AAAU,SAAD,UAAS;AACzC,QAA3B,YAAY,aAAL,0BAAO;AACd,YAAS,AAAmB,aAAxB,0BAAO,AAAU,SAAD,yBAAW,AAAa;AACG,UAA7C,YAA2B,aAApB,AAAa,yCAAS,AAAU,SAAD;;;AAGN,QAAlC,YAAS,AAAU,aAAZ,uBAAI,6BAAU;AACU,QAA/B,YAAS,aAAF,UAAqB,aAAjB,AAAU,SAAD,WAAU;AACJ,QAA1B,kBAAa,AAAU,SAAD;AACK,QAA3B,kBAAa,AAAU,SAAD;AACT,8BAAuB,aAAL,0BAAQ,AAAU,SAAD;AAChD,YAAS,aAAL,0BAAO,AAAa;AAKC,UAJvB,YAAmD,AACH,YADxC,AAAM,AAAkB,iDACC,+CACgB,YAAzC,AAAM,AAAkB,+CAAmC,6BAC3C,aAAlB,AAAa,uCAAO,wBACpB,AAAa;cACd,KAAI,AAAgB,eAAD,gBAAG;AAKyC,UAJpE,YAAmD,AACH,YADxC,AAAM,AAAkB,iDACC,+CACgB,YAAzC,AAAM,AAAkB,+CAAmC,6BACxD,AAAsB,aAA3B,aAAuB,aAAhB,AAAU,SAAD,UAAS,iBAAI,wBACtB,AAAkB,AAAiB,aAAxC,0BAAO,AAAU,SAAD,UAAU,AAAE,iBAAE,gBAAY,AAAE,iBAAE;AAExC,UAAd,eAAU;;AAEC,UAAX,YAAO;;AAET,YAAS,AAAmB,aAAxB,0BAAO,AAAU,SAAD,yBAAW,AAAa;AACG,UAA7C,YAA2B,aAApB,AAAa,yCAAS,AAAU,SAAD;;;IAG5C;yBAE+B,QAAc,OAAW;AAC3C,0BAAgB;AAC3B,UAAqC,YAAjC,AAAM,AAAkB,uCAA8B;AACxD,sBAAI;AAEqC,UADvC,AAAc,aAAD,QAAQ,AAAM,AAAkB,AAAU,4CACnD,AAAM,AAAW,AAAc;AAEO,UAD1C,AAAc,aAAD,QAAQ,AAAM,AAAkB,AAAU,4CACnD,AAAM,AAAW,AAAc;AAIQ,UAH3C,AAAM,AAAkB,AAAc,8CAAG,OACnC,uBAAgB,MAAM,EAAE,AAAM,AAAkB,4CAC9C,KAAK,EAAE,aAAa,IACtB,AAAO,MAAD,UAAU,aAAa,EAAE,KAAK;cACrC,eAAI,AAAM;AAEwB,UADvC,AAAc,aAAD,QAAQ,AAAM,AAAkB,AAAU,4CACnD,AAAM,AAAW,AAAc;AAEO,UAD1C,AAAc,aAAD,QAAQ,AAAM,AAAkB,AAAU,4CACnD,AAAM,AAAW,AAAc;AAIQ,UAH3C,AAAM,AAAkB,AAAc,8CAAG,OACnC,uBAAgB,MAAM,EAAE,AAAM,AAAkB,4CAC9C,KAAK,EAAE,aAAa,IACtB,AAAO,MAAD,UAAU,aAAa,EAAE,KAAK;;AAGH,UADvC,AAAc,aAAD,QAAQ,AAAc,AAAQ,2BAAP,KAAK,aACrC,AAAM,AAAW,AAAc;AAEO,UAD1C,AAAc,aAAD,QAAQ,AAAc,AAAQ,2BAAP,KAAK,aACrC,AAAM,AAAW,AAAc;AAIQ,UAH3C,AAAM,AAAkB,AAAc,8CAAG,OACnC,uBAAgB,MAAM,EAAE,AAAM,AAAkB,4CAC9C,KAAK,EAAE,aAAa,IACtB,AAAO,MAAD,UAAU,aAAa,EAAE,KAAK;;;AAG5C,sBAAI;AAEkC,UADpC,AAAc,aAAD,QAAQ,AAAM,AAAW,AAAc,4CAChD,AAAc,AAAQ,2BAAP,KAAK;AAEY,UADpC,AAAc,aAAD,QAAQ,AAAM,AAAW,AAAc,6CAChD,AAAc,AAAQ,2BAAP,KAAK;AAImB,UAH3C,AAAM,AAAkB,AAAc,8CAAG,OACnC,uBAAgB,MAAM,EAAE,AAAM,AAAkB,4CAC9C,KAAK,EAAE,aAAa,IACtB,AAAO,MAAD,UAAU,aAAa,EAAE,KAAK;cACrC,eAAI,AAAM;AAEqB,UADpC,AAAc,aAAD,QAAQ,AAAM,AAAW,AAAc,4CAChD,AAAc,AAAQ,2BAAP,KAAK;AAEY,UADpC,AAAc,aAAD,QAAQ,AAAM,AAAW,AAAc,6CAChD,AAAc,AAAQ,2BAAP,KAAK;AAImB,UAH3C,AAAM,AAAkB,AAAc,8CAAG,OACnC,uBAAgB,MAAM,EAAE,AAAM,AAAkB,4CAC9C,KAAK,EAAE,aAAa,IACtB,AAAO,MAAD,UAAU,aAAa,EAAE,KAAK;;AAGD,UADzC,AAAc,aAAD,QAAQ,AAAM,AAAW,AAAc,4CAChD,AAAM,AAAkB,AAAU;AAEG,UADzC,AAAc,aAAD,QAAQ,AAAM,AAAW,AAAc,6CAChD,AAAM,AAAkB,AAAU;AAIK,UAH3C,AAAM,AAAkB,AAAc,8CAAG,OACnC,uBAAgB,MAAM,EAAE,AAAM,AAAkB,4CAC9C,KAAK,EAAE,aAAa,IACtB,AAAO,MAAD,UAAU,aAAa,EAAE,KAAK;;;IAGhD;sBAGW,QACF,WACE,MACA,MACA,cACF,OACA,gBACA,QACA,SACD;AACO,uBAAa;AACb,qBAAW;AACxB,oBAAI,KAAK;AAcG,QAbV,mBACI,MAAM,EACN,SAAS,EACT,IAAI,EACJ,IAAI,EACC,aAAL,IAAI,iBAAG,UAAU,GACZ,aAAL,IAAI,iBAAG,UAAU,GACZ,aAAL,IAAI,iBAAG,QAAQ,GACV,aAAL,IAAI,iBAAG,QAAQ,GACf,YAAY,EACZ,cAAc,EACd,MAAM,EACN,OAAO,EACP,KAAK;;AAeC,QAbV,mBACI,MAAM,EACN,SAAS,EACT,IAAI,EACJ,IAAI,EACC,aAAL,IAAI,iBAAG,UAAU,GACZ,aAAL,IAAI,iBAAG,UAAU,GACZ,aAAL,IAAI,iBAAG,QAAQ,GACV,aAAL,IAAI,iBAAG,QAAQ,GACf,YAAY,EACZ,cAAc,EACd,MAAM,EACN,OAAO,EACP,KAAK;;IAEb;mBAGW,QACF,OACE,MACA,MACA,QACA,QACA,MACA,MACA,cACF,gBACA,QACA,SACD;AACgB,MAAtB,AAAe,cAAD;AACd,qBAAK,mCACD,AAAM,AAAkB,iDACC;AAC3B,yBAAI,AAAM,AAAkB,iDACH;AACvB,wBAAI;AACF,0BAAI,MAAM;AAC0B,cAAlC,SAAoB,aAAX,AAAM,KAAD,sBAAQ,YAAY;AACN,cAA5B,OAAc,aAAP,MAAM,iBAAG;kBACX,eAAI,OAAO;AACiB,cAAjC,OAAmB,aAAZ,AAAM,KAAD,uBAAS,YAAY;AACL,cAA5B,SAAc,aAAL,IAAI,iBAAG;;AAGwC,YAD1D,AAAe,cAAD,QACE,AAAmB,aAA9B,AAAM,KAAD,SAAoB,aAAZ,AAAM,KAAD,UAAS,iBAAK,oBAAc,MAAM;AACxB,YAAjC,AAAe,cAAD,QAAQ,IAAI,EAAE,IAAI;AAEyB,YADzD,AAAe,cAAD,QACG,AAAmB,aAA/B,AAAM,KAAD,UAAqB,aAAZ,AAAM,KAAD,UAAS,iBAAK,oBAAc,IAAI;;AAExD,0BAAI,OAAO;AAEoD,cAD7D,AAAe,cAAD,QACV,AAAM,KAAD,QAAkB,AAAmB,aAA7B,AAAM,KAAD,QAAoB,aAAb,AAAM,KAAD,WAAU,iBAAI;AAEgB,cADhE,AAAe,cAAD,QACV,AAAM,KAAD,QAAqB,AAAmB,aAAhC,AAAM,KAAD,WAAuB,aAAb,AAAM,KAAD,WAAU,iBAAI;AACK,cAAxD,AAAe,cAAD,QAAoB,aAAZ,AAAM,KAAD,uBAAS,qBAAe,IAAI;AACC,cAAxD,AAAe,cAAD,QAAoB,aAAZ,AAAM,KAAD,uBAAS,qBAAe,IAAI;AAEM,cAD7D,AAAe,cAAD,QACV,AAAM,KAAD,QAAkB,AAAmB,aAA7B,AAAM,KAAD,QAAoB,aAAb,AAAM,KAAD,WAAU,iBAAI;;AAGY,cAD5D,AAAe,cAAD,QACV,AAAM,KAAD,OAAiB,AAAmB,aAA7B,AAAM,KAAD,QAAoB,aAAb,AAAM,KAAD,WAAU,iBAAI;AAEgB,cAD/D,AAAe,cAAD,QACV,AAAM,KAAD,OAAoB,AAAmB,aAAhC,AAAM,KAAD,WAAuB,aAAb,AAAM,KAAD,WAAU,iBAAI;AACK,cAAvD,AAAe,cAAD,QAAmB,aAAX,AAAM,KAAD,sBAAQ,qBAAe,IAAI;AACC,cAAvD,AAAe,cAAD,QAAmB,aAAX,AAAM,KAAD,sBAAQ,qBAAe,IAAI;AAEM,cAD5D,AAAe,cAAD,QACV,AAAM,KAAD,OAAiB,AAAmB,aAA7B,AAAM,KAAD,QAAoB,aAAb,AAAM,KAAD,WAAU,iBAAI;;;;AAIC,QAAtD,uBAAiB,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK;AAC1C,QAAX,OAAO;AACI,QAAX,OAAO;;IAEX;uBAIW,QAAa,gBAAqB,MAAU;;AACzC,wBAAoB,gCAC9B,IAAI,eACe,uBAAS,iCACR,uBAAS,6BACb,uBAAS,8BACR,uBAAS;AAGQ,MAApC,AAAe,cAAD,UAAU,WAAW;AAEvB,4BAAY,gBACpB,WAAQ,AAAM,AAAkB,AAAgB,AAAM,sDAAG,OACrD,AAAM,AAAkB,AAAgB,qDACvC,AAAc,AAAQ,AAAO,AAAM,2BAApB,KAAK,kBAAkB,OACnC,AAAc,AAAQ,AAAO,2BAAd,KAAK,iBACpB,AAAM,AAAY,AAAY,+DACtC,iBAAc,OACd,WAAsB;AAEd,8BAAa,gBACrB,YAAQ,AAAM,AAAkB,AAAgB,AAAY,4DAAG,OAC3D,AAAM,AAAkB,AAAgB,2DACvC,AAAc,AAAQ,AAAO,AAAM,2BAApB,KAAK,kBAAkB,OACnC,AAAc,AAAQ,AAAO,2BAAd,KAAK,iBACpB,AAAM,AAAY,AAAY,+DACtC,kBAAc,AAAM,AAAkB,AAAgB,0DACtD,gBAAsB,mBACtB,kBAAc,OACd,YAAsB;AAEiB,MAA3C,AAAO,MAAD,UAAU,cAAc,EAAE,UAAU;AACA,MAA1C,AAAO,MAAD,UAAU,cAAc,EAAE,SAAS;AAC7B,yBAAe;AACM,MAAjC,AAAa,YAAD,SAAgB;AACA,MAA5B,AAAa,YAAD,eAAe;AACc,MAAzC,AAAa,YAAD,SAAuB;AACnC,UAA+C,YAA3C,AAAM,AAAkB,iDACC,+CACzB,AAAM,AAAM,AAAQ,yBAAP,KAAK,UAAU,kBAC5B;AACS,2BAAe,oBAAa,AAAW,wBAAC,IAAI;AAMtC,QALjB,AAAO,MAAD,UACF,kBAAwB,aAAjB,AAAY,WAAD,aACE,AAAsB,aAAtC,AAAY,WAAD,qBAAO,AAAa,YAAD,gBAClC,kBAAyB,aAAlB,AAAY,WAAD,cACE,AAAsB,aAAtC,AAAY,WAAD,qBAAO,AAAa,YAAD,gBAClC,YAAY;;AAEX,2BAAiB;AACnB;AACE,wBAAc;AAErB,eAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAY,4BAAQ,IAAA,AAAC,CAAA;AACa,QAApD,YAAY,oBAAa,AAAW,wBAAC,CAAC,GAAG;AACV,QAA/B,cAAA,AAAY,WAAD,gBAAI,AAAU,SAAD;;AAIsC,MADhE,iBACqB,AAA0B,aAA1C,AAAY,WAAD,QAA0B,aAAnB,AAAY,WAAD,WAAU,IAAK,AAAY,WAAD,GAAG;AAE/D,eAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAY,4BAAQ,IAAA,AAAC,CAAA;AACE,QAAzC,AAAW,6BAAwB;AACiB,QAApD,YAAY,oBAAa,AAAW,wBAAC,CAAC,GAAG;AACP,QAAlC,iBAAA,AAAe,cAAD,gBAAI,AAAU,SAAD;AAC3B,aAAK,AAAW,AAAI,wBAAH,CAAC,aAAW,SACxB,AAAW,AAAI,wBAAH,CAAC,aAAW,WACxB,AAAW,AAAI,wBAAH,CAAC,aAAW;AACY,UAAvC,AAAW,6BAAwB;AAS7B,UARN,iBACI,MAAM,EACN,AAAW,wBAAC,CAAC,GACb,kBACsB,AAAyB,aAA1C,AAAY,WAAD,SAA0B,aAAlB,AAAY,WAAD,UAAS,IACpB,aAAhB,AAAU,SAAD,UAAS,GACtB,AAAe,cAAD,gBAAG,AAAU,SAAD,WAC9B,iBACA;;AAEJ,cAAI,AAAW,wBAAC,CAAC,KAAK;AACD,sBAAM,AAAW,AAAI,wBAAH,CAAC,UAAQ;AACvC,0BAAU;AACjB,gBAAe,aAAX,AAAI,GAAD,aAAU;AACf,uBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAI,GAAD,YAAS,IAAA,AAAC,CAAA;AACZ,2BAAO,AAAG,AAAI,GAAJ,QAAC,CAAC,UAAQ;AACvC,oBAAgB,aAAZ,AAAK,IAAD,aAAU;AAChB,2BAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAK,IAAD,YAAS,IAAA,AAAC,CAAA;AACnB,gCACT,AAAE,CAAD,GAAG,IAAI,AAAsC,oBAAzB,AAAI,IAAA,QAAC,AAAE,CAAD,GAAG,IAAI,yBAAoB;AAChB,oBAA1C,AAAI,IAAA,QAAC,CAAC,EAAI,AAAE,CAAD,KAAI,IAAI,AAAI,mBAAE,AAAI,IAAA,QAAC,CAAC,KAAI,AAAI,IAAA,QAAC,CAAC;AAEM,oBAD/C,AAAW,6BACP,AAAE,CAAD,GAAG,IAAe,qBAAkB;AAOnC,oBANN,iBACI,MAAM,EACN,AAAI,IAAA,QAAC,CAAC,GACN,kBAAyB,AAAK,aAAtB,AAAY,WAAD,SAAQ,iBAAK,KAAK,GAChC,AAAe,AAAoB,cAArB,gBAAG,AAAU,SAAD,WAAW,OAAO,GACjD,iBACA;AAIS,oBAHb,UAAU,AAAE,CAAD,GAAG,IACR,AAAQ,OAAD,IACgB,aAApB,AAAW,4BAAgC,aAApB,AAAW,4BAAW,QAChD,OAAO;;;AAGwB,kBAAvC,AAAW,6BAAwB;AAO7B,kBANN,iBACI,MAAM,EACN,AAAI,IAAA,QAAa,aAAZ,AAAK,IAAD,aAAU,IACnB,kBAAwB,aAAjB,AAAY,WAAD,SAAQ,GACtB,AAAe,AAAmB,cAApB,gBAAG,AAAU,SAAD,WAAU,OAAO,GAC/C,iBACA;AAEoD,kBADxD,UAAU,AAAQ,OAAD,IACQ,aAApB,AAAW,4BAAgC,aAApB,AAAW,4BAAW;;;;AAIzC,yBAAO,AAAG,AAAiB,GAAjB,QAAY,aAAX,AAAI,GAAD,aAAU,WAAS;AAC3B,+BAAqB;AACxC,kBAAI,AAAG,AAAiB,GAAjB,QAAY,aAAX,AAAI,GAAD,aAAU,cAAY;AACd,gBAAjB,OAAe;AACI,gCAAY,AAAG,AAAiB,GAAjB,QAAY,aAAX,AAAI,GAAD,aAAU,WAAS;AACzD,yBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAU,SAAD,YAAS,IAAA,AAAC,CAAA;AACrC,sBAAI,AAAS,SAAA,QAAC,CAAC,MAAK;AAEwC,oBAD1D,AAAW,UAAD,OAAK,AAAS,AAAI,SAAJ,QAAC,CAAC,cACtB,AAAS,AAAI,AAAe,SAAnB,QAAC,CAAC,YAAU,SAAS,GAAG,AAAS,AAAI,SAAJ,QAAC,CAAC;AAC7B,+BAAO,AAAS,AAAI,SAAJ,QAAC,CAAC,UAAQ;AAC7C,6BAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAK,IAAD,YAAS,IAAA,AAAC,CAAA;AACf,sBAAjB,AAAK,IAAD,OAAK,AAAI,IAAA,QAAC,CAAC;;;;oBAIhB,KAAgB,aAAZ,AAAK,IAAD,aAAU,eAAK,4BAAY;AACvB,gBAAjB,OAAe;AACc,gBAA7B,AAAK,IAAD,OAAK,AAAG,GAAA,QAAY,aAAX,AAAI,GAAD,aAAU;;AAErB,kCAAgB;AACvB,uBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAK,IAAD,YAAS,IAAA,AAAC,CAAA;AAC3B,6BAAS;AACd,yBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAW,UAAD,YAAS,IAAA,AAAC,CAAA;AACtC,sBAAI,AAAI,AAAI,IAAJ,QAAC,CAAC,KAAK,AAAU,UAAA,QAAC,CAAC;AACZ,oBAAb,SAAS;AACT;;;AAGS,4BACT,AAAE,CAAD,GAAG,IAAI,AAAsC,oBAAzB,AAAI,IAAA,QAAC,AAAE,CAAD,GAAG,IAAI,yBAAoB;AACpC,gBAAtB,gBAAA,AAAc,aAAD,gBAAI,KAAK;AACT,sCACT,AAAW,UAAD,iBAAc,KAAK,AAAE,CAAD,GAAG,IAAI,OAAO;AAOrB,gBAN3B,AAAW,6BAAoC,UAAtB,8BAAc,iBAAW,MAAM,GACvC,qBACX,AAAE,CAAD,GAAG,cACA,AAAW,UAAD,iBACK,uBACA,qBACJ;AASf,gBARN,iBACI,MAAM,EACN,AAAM,KAAD,gBAAG,AAAI,IAAA,QAAC,CAAC,IACd,kBACsB,AAAK,aAAtB,AAAY,WAAD,SAAQ,iBACf,AAAc,aAAD,gBAAG,KAAK,IAAG,aAAa,GAAG,KAAK,GAClD,AAAe,cAAD,gBAAG,AAAU,SAAD,WAC9B,iBACA;AACc,gBAAlB,kBAAa;;;;;;IAMzB;;wCAGiC;AAAgB;IAAI;yBAGtB;;AACO,MAApC,sBAAkC;AACvB,yBAAe,AAAM,AAAW;AAC3C,UAAgB,aAAZ,AAAS,QAAD,qBAAO,AAAa,YAAD,UACf,aAAZ,AAAS,QAAD,qBAAO,AAAa,YAAD,WACf,aAAZ,AAAS,QAAD,qBAAO,AAAa,YAAD,SACf,aAAZ,AAAS,QAAD,qBAAO,AAAa,YAAD;AACe,QAA5C,AAAM,AAAkB,0CAAY,QAAQ;AACrC,mBAAO;AAAG,mBAAO;AAAG,qBAAS;AAChC,0BAAc;AACI,yBAAwB;AAC9C,sBACO,AAAM,AAAa;AADU,uBAApC;AACyC;AACvC,0BAAI,AAAO,MAAD;AAC6B,kCAAgB,MAAM;AAC3C,8BAAY,AAAc,aAAD;AACzC,kBAAI,AAAU,SAAD,IAAI;AACf;;AAEF,6BAAK,AAAW,UAAD,YAAU,SAAS;AACP,gBAAzB,AAAW,UAAD,OAAK,SAAS;AACxB,8BACO,AAAU,UAAD;AADoB,mCAApC;AAC0B;AACa,0CAAkB,UAAU;AACjE,wBAAwB,YAApB,AAAW,UAAD,YAAa,oBACtB,AAAW,AAAY,UAAb,wCACN,AAAW,UAAD;AACjB;;AAEF,kCAAI,AAAgB,AAAY,eAAb;AACG,8CAAoB,8BACpC,AAAS,QAAD,KACR,AAAS,QAAD,KACR,SAAS,EACT,AAAc,aAAD,WACb,eAAe;AACnB,0BAAI,AAAkB,iBAAD,IAAI;AACvB;;AAEF,+BAAa,YAAa,kBAAiB;AAC/B,oCAAQ,AAAW,AAAY,UAAb,2DAAqB,SAAS;AAChD,qDAAS,AAAgB,AAAW,AAAQ,eAApB,sBAAa,KAAK;AAC1C,qDAAS,AAAgB,AAAW,AAAQ,eAApB,sBAAa,KAAK;AAC1C,wDAAY,AAAgB,AAAW,AAAQ,eAApB,sBAAa,KAAK;AAC7C,uDAAW,AAAgB,AAAW,AAAQ,eAApB,sBAAa,KAAK;AAC5C,wDAAY,AAAgB,AAAW,AAAQ,eAApB,sBAAa,KAAK;AAC7C,yDACN,AAAgB,AAAW,AAAQ,eAApB,sBAAa,KAAK;AACxB,0CACY,KAArB,AAAgB,eAAD,aAAC,OAAQ,AAAqB,qBAAZ,WAAW;AACtC,yCACN,AAAgB,AAAW,AAAQ,eAApB,sBAAa,KAAK;AACvB,8CACV,AAAgB,AAAW,AAAQ,eAApB,sBAAa,KAAK;AAC1B,2CAAe,4BACtB,AAAgB,AAAO,AAAW,eAAnB,qCACf,kBAAO,AAAgB,AAAO,eAAR,sBAClB,AAAgB,AAAO,eAAR;AASjB,wBARN,OAAO,AAQF,uBAPG,MAAM,EACN,MAAM,EACN,AAAgB,eAAD,WACf,AAAgB,eAAD,WACf,AAAM,kCACN,eAAe,EACf,YAAY;AAEpB,6BAAK,AAAK,AAAW,IAAZ;AACP,8BAAI,AAAY,WAAD,KAAI,KACN,AAAe,aAAtB,MAAM,iBAAG,AAAS,QAAD,OAAe,aAAP,MAAM,iBAAG,IAAI;AAC7B,4BAAb,SAAS,IAAI;;AAEF,2CAAa,6BACtB,eAAe,EACf,MAAM,EACN,MAAM,EACN,QAAQ,EACR,SAAS,EACT,SAAS,EACT,UAAU,EACV,UAAU,EACV,UAAU,EACV,eAAe,EACf,SAAS;AASP,0BARN,OAAO,AAQF,uBAPG,MAAM,EACN,MAAM,EACN,AAAgB,eAAD,WACf,AAAgB,eAAD,WACf,AAAM,kCACN,eAAe,EACf,YAAY;AAGT,qCAAO,AACb,YADyB,WACV,qBAAc,aAAL,IAAI,IAAG,GAAQ,aAAL,IAAI,IAAG,GAAG,KAAG;AACpD,wCAAI,AAAa,YAAD,UAAU,kBAAO,IAAI,EAAE,IAAI,iBACvC,AAAa,YAAD,UAAU,IAAI;AAEuB,4BADnD,yBACI,eAAe,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU;AAC1B,4BAAxB;AACA,gCAA+C,YAA3C,AAAM,AAAkB,iDACC,+CAClB,aAAP,MAAM,kBAAI,AAAa,YAAD;AAGL,wCAFnB,AAAM,oCACA,OAAO,MAAM,GACb,OAAO,MAAM;;;;;AAKd,sBAAb,cAAA,AAAW,WAAA;;AAEmD,oBAAhE,6BAAuB,MAAM,EAAE,MAAM,EAAE,AAAS,QAAD,KAAK,AAAS,QAAD;;;AAE9D,8BAAI,AAAe;AACjB,mCAAI,AAAM,AAAkB,iDACH;AAOwB,8BAN/C,AAAM,oCACA,AAAe,2BACb,SAAiB,GAAmB,MAChC,AAAE,AAAU,CAAX,uBAAqB,AAAE,CAAD,0DAC7B,AAAe,2BACb,SAAiB,GAAmB,MAChC,AAAE,AAAU,CAAX,uBAAqB,AAAE,CAAD;;AAErC,sBAA+C,YAA3C,AAAM,AAAkB,iDACC,uDACxB,AAAO,MAAD,iCACH,AAAM,AAAkB,iDACC;AAEsB,oBADrD,wCACI,MAAM,EAAE,qBAAgB,AAAS,QAAD,KAAK,AAAS,QAAD;;;;;;;;AAOH,4BAA1D,+BAAiB,sBAAgB,qBAAgB,QAAQ;IAC3D;sBAEsC,QAAe;AACvB,wBAA+B;AAC3D,oBAA8B,OAAM;AAAf,oBAArB;AACE,sBAAI,AAAY,WAAD;AACS,UAAtB,AAAY,WAAD,OAAK,KAAK;cAChB,KAAiC,YAA7B,AAAW,AAAI,AAAO,WAAX,QAAC,oBAAoB,AAAM,AAAO,KAAR;AAC9C,yBAAK,AAAM,AAAO,AAAO,KAAf;AACR,gBAA6C,AAAM,CAArB,aAAzB,AAAW,AAAI,WAAJ,QAAC,6BAAe,AAAS,QAAD,kBACJ,CAAf,aAAhB,AAAM,KAAD,2BAAa,AAAS,QAAD;AACP,cAAtB,AAAY,WAAD,OAAK,KAAK;;gBAElB,KAA6C,AAAM,CAArB,aAAzB,AAAW,AAAI,WAAJ,QAAC,6BAAe,AAAS,QAAD,kBACX,CAAf,aAAhB,AAAM,KAAD,2BAAa,AAAS,QAAD;AACP,YAAtB,AAAY,WAAD,OAAK,KAAK;;cAElB,KAA6C,AAAM,CAArB,aAAzB,AAAW,AAAI,WAAJ,QAAC,6BAAe,AAAS,QAAD,gBACX,CAAf,aAAhB,AAAM,KAAD,2BAAa,AAAS,QAAD;AACV,UAAnB,AAAY,WAAD;AACW,UAAtB,AAAY,WAAD,OAAK,KAAK;cAChB,KAA6C,AAAM,CAArB,aAAzB,AAAW,AAAI,WAAJ,QAAC,6BAAe,AAAS,QAAD,kBACX,CAAf,aAAhB,AAAM,KAAD,2BAAa,AAAS,QAAD;AAC7B,cAA6C,AAAM,CAArB,aAAzB,AAAW,AAAI,WAAJ,QAAC,6BAAe,AAAS,QAAD,gBACJ,CAAf,aAAhB,AAAM,KAAD,2BAAa,AAAS,QAAD;AACV,YAAnB,AAAY,WAAD;AACW,YAAtB,AAAY,WAAD,OAAK,KAAK;;;;AAI3B,YAAO,YAAW;IACpB;6BAGmC,iBAC3B,QACA,QACA,UACA,WACA,WACA,YACG,YACH,YACI,iBACA;;AACH;AACG,mBAAS,AAAM,AAAkB,AAAgB;AAC3D,UAAI,AAAM,AAAkB,AAAgB,uDAAU;AAC5C;AACM,mBAAO,AAAgB,eAAD;AACpC,YAAS,uBAAL,IAAI;AACW,4BACG,KAAhB,AAAK,IAAD,mBAAC,OAAc,AAAK,IAAD,kBAAiB,IAAI;AACkB,UAAlE,IAAI,AAAW,UAAD,QAAiB,wDAA2B,MAAM;cAC3D,KAAS,uBAAL,IAAI;AACE,UAAf,IAAc,WAAV,SAAS;;AAcqD,QAZpE,aAAa,AAAM,AAAkB,AAAgB,AAChD,AACA,AAEA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,iEAXW,WAAyB,eAAX,MAAF,CAAC,SAAD,OAAK,MAAM,uBAE/B,8BAAW,sBAAe,MAAM,EAAE,AAAgB,eAAD,WAAS,MAAM,iBACxD,cAAwB,cAAV,SAAS,gBACvB,aAAsB,cAAT,QAAQ,gBACrB,cAAwB,cAAV,SAAS,gBACvB,eAA0B,cAAX,UAAU,gBACzB,KAAK,iBACL,KAAK,iBACL,eAAe,UAAU,eACzB,cAAyB,cAAX,UAAU,gBACxB,yBAAyC,cAAhB,eAAe;;AAuBzB,qBArB/B,mBACwD,CAD1C,AAAgB,AAAY,eAAb,0BAAsB,aAC1C,AAAgB,AAAY,eAAb,0BAAsB,cACrC,AAAgB,AAAY,eAAb,0BAAsB,UACxC,sBAAe,MAAM,EAAE,AAAgB,eAAD,WAAS,MAAM,IACrD,AAAgB,AAAY,AAAmB,eAAhC,mBAAgB,mBACzB,AAAgB,AAAY,eAAb,0BAAsB,YACvC,AAAS,AACc,AAChB,AACG,AACY,AACf,AACI,AACY,AAChB,AACK,WARA,cAAV,SAAS,IACT,OACA,UACS,cAAT,QAAQ,IACR,OACA,WACU,cAAV,SAAS,IACT,OACA,YACW,cAAX,UAAU,IACZ,AAAS,AACc,AAChB,AACG,WAFE,cAAV,SAAS,IACT,OACA,UACS,cAAT,QAAQ;;AAEtB,YAAO,WAAU;IACnB;;AAGE,UAAI,AAAM,0CAA+B;AAEqB,QAD5D,AAAM,8BACF,AAAM,AAAkB,AAAkB;AAC9C,iBAAS,QAAQ,GAAG,AAAM,KAAD,gBAAG,AAAM,AAAgB,uCAAQ,QAAA,AAAK,KAAA;AAC/C;AACc,UAA5B,aAAa;AAC2C,UAAxD,AAAW,UAAD,kBAAkB,AAAM,AAAe,mCAAC,KAAK;AACV,UAA7C,AAAM,uCAA4B,UAAU;AACwB,UAApE,AAAM,AAAe,AAAQ,mCAAP,KAAK,UAAU,AAAW,AAAe,UAAhB;AACuB,UAAtE,AAAM,AAAe,AAAQ,mCAAP,KAAK,WAAW,AAAW,AAAe,UAAhB;;;IAGtD;wCAE8C,QACpB,eAAsB,WAAkB;AACzD,iBAAO;AACc,8BAAkB,6BACf,aAAa;AAC5C,eAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAkB,iBAAD,YAAS,IAAA,AAAC,CAAA;AACvB,wBAAY,AAAiB,iBAAA,QAAC,CAAC;AACrC,sBAAe;AACf,sBAAe;AAC/B,iBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAU,AAAO,AAAY,SAApB,iCAA4B,IAAA,AAAC,CAAA;AACL,UAAnD,AAAQ,OAAD,uBAAK,AAAU,AAAO,AAAW,AAAI,SAAvB,6BAAoB,CAAC;AACS,UAAnD,AAAQ,OAAD,uBAAK,AAAU,AAAO,AAAW,AAAI,SAAvB,6BAAoB,CAAC;;AAElC,qBAAS,AAAO,OAAA,QAAC,AAAU,SAAD;AAC1B,qBAAS,AAAO,OAAA,QAAC,AAAU,SAAD;AACzB,2BAAe,4BACtB,AAAU,AAAO,AAAO,AAAW,SAA1B,4CACT,kBAAO,AAAU,AAAO,AAAO,SAAf,6BACZ,AAAU,AAAO,AAAO,SAAf;AAUX,QARN,OAAO,AAQF,uBAPG,MAAM,EACN,MAAM,EACN,AAAU,AAAO,SAAR,kBACT,AAAU,AAAO,SAAR,kBACT,AAAM,kCACN,AAAU,SAAD,SACT,YAAY;AAGwB,QAD5C,gBAAgB,8BAAwB,aAAa,EAAE,SAAS,EAAE,MAAM,EACpE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY;AAC3C,yBAAI,AAAM,AAAkB,iDACC,0DACvB,AAAU,AAAO,AAAO,SAAf;AACb,cAAI,MAAM,IAAI,IAAI;AACe,YAA/B,AAAc,aAAD,UAAQ,SAAS;;AAEtB,+BAAiB,AAAkB,iBAAD,WAAS,SAAS;AACjD,qBAAO,SAAS;AAC7B,cAAmB,aAAf,cAAc,IAA4B,aAAzB,AAAkB,iBAAD,aAAU;AACxB,gCAClB,AAAiB,iBAAA,QAAgB,aAAf,cAAc,IAAG;AAEvC,gBAAI,AAAc,AAAU,aAAX,cAAc,AAAU,SAAD,cACf,aAApB,AAAU,SAAD,2BAAa,IAAI,KAAI,AAAe,cAAD,KAAI;AACnD;;AAEF,kBAAW,aAAL,IAAI,IACmB,aAAxB,AAAc,aAAD,cACuC,CAAvB,aAAxB,AAAc,aAAD,2BAAa,AAAU,SAAD,eAAc;AAC1B,cAA/B,AAAc,aAAD,UAAQ,SAAS;kBACzB,KAAI,cAAc,KAAI;AACL,sCAClB,AAAiB,iBAAA,QAAgB,aAAf,cAAc,IAAG;AACvC,kBAAS,aAAL,IAAI,IACiB,aAApB,AAAU,SAAD,cAC+C,CAA/B,aAApB,AAAU,SAAD,2BAAa,AAAkB,iBAAD,eACrC;AACqB,gBAA/B,AAAc,aAAD,UAAQ,SAAS;;;;AAIlC,gBAAI,cAAc,KAAI,KAClB,AAAe,cAAD,KAA6B,aAAzB,AAAkB,iBAAD,aAAU;AACzB,sCAClB,AAAiB,iBAAA,QAAgB,aAAf,cAAc,IAAG;AACvC,kBAAS,aAAL,IAAI,iBAAG,AAAkB,iBAAD;AACK,gBAA/B,AAAc,aAAD,UAAQ,SAAS;;AAEhC,kBAAS,aAAL,IAAI,IACiB,aAApB,AAAU,SAAD,cAC+C,CAA/B,aAApB,AAAU,SAAD,2BAAa,AAAkB,iBAAD,eACrC;AACqB,gBAA/B,AAAc,aAAD,UAAQ,SAAS;;;;;;IAM1C;8BAG0B,eACN,WACZ,QACA,QACG,WACA,QACF;AACP,oBAAI,AAAU,AAAO,SAAR,qCACT,AAAM,4DACN,AAAM,AAAkB,iDACC;AAChB,6BAAiB,AAAM;AACd,6BAChB,gCAAyB,AAAU,SAAD,SAAS;AAClC,0BAAqB,aAAP,MAAM,iCAAG,AAAe,cAAD;AACrC,wBAAmB,aAAP,MAAM,iCAAG,AAAe,cAAD;AACzC,qBAAS,AAQX,uBAPG,WAAW,EACX,MAAM,EACN,AAAU,AAAO,SAAR,kBACT,AAAU,AAAO,SAAR,kBACT,AAAM,kCACN,AAAU,SAAD,SACT,YAAY;AAEb,mBAAO,AAQT,uBAPG,SAAS,EACT,MAAM,EACN,AAAU,AAAO,SAAR,kBACT,AAAU,AAAO,SAAR,kBACT,AAAM,kCACN,AAAU,SAAD,SACT,YAAY;AAEf,2BAAe,AAAU,AAAO,AAAiB,SAAzB,8BAA4B;AACpD,yBAAa,AAAU,AAAO,AAAiB,SAAzB,8BACmC,aAA1D,AAAU,AAAO,AAAO,AAAa,AAAc,SAA1C,wDAAmD;AACnD,mBAAO,SAAS;AAC7B,sBAAI,cAAc;AACH,qBAAO,MAAM;AACb,UAAb,SAAS,IAAI;AACF,UAAX,OAAO,IAAI;AACA,uBAAS,UAAU;AACL,UAAzB,aAAa,YAAY;AACJ,UAArB,eAAe,MAAM;cAChB,KAAoD,YAAhD,AAAU,AAAO,AAAO,AAAY,SAA3B,0CAA0C,sBAC1D,AAAM,AAAkB,iDACC;AAC3B,cAAS,aAAL,IAAI,iBAAG,MAAM,KAAI,YAAY;AAC/B,kBAAW,aAAL,IAAI,iBAAG,MAAM,QAAY,aAAL,IAAI,iBAAG,IAAI,KAAS,aAAL,IAAI,kBAAI,MAAM;AACtB,cAA/B,AAAc,aAAD,UAAQ,SAAS;;gBAE3B,KAAS,aAAL,IAAI,iBAAG,MAAM,KAAI,UAAU;AACpC,kBAAW,aAAL,IAAI,iBAAG,IAAI,KAAS,aAAL,IAAI,iBAAG,MAAM,QACvB,aAAL,IAAI,iBAAG,IAAI,KAAS,aAAL,IAAI,kBAAI,MAAM;AACF,cAA/B,AAAc,aAAD,UAAQ,SAAS;;gBAE3B,OAAW,aAAL,IAAI,iBAAG,IAAI,KAAS,aAAL,IAAI,kBAAI,MAAM;AACT,YAA/B,AAAc,aAAD,UAAQ,SAAS;;;;AAIpC,YAAO,cAAa;IACtB;6BAGW,QACwB,QACxB,WACA;AACmB,2BAAkC;AACnD,yBAAe,4BACtB,AAAO,AAAO,AAAW,MAAnB,qCACN,kBAAO,AAAO,AAAO,MAAR,sBAAoB,AAAO,AAAO,MAAR;AAEpC,iCAAa,AAAO,AAAO,MAAR,kCACpB,AAAa,YAAD,OACZ,AAAa,YAAD;AACL,kCACT,AAAO,AAAO,MAAR,kCAA+B,SAAS,GAAG,SAAS;AACvD,kBAAQ;AACf,eAAqB,YAAa;AAChB,sBAAe;AACf,sBAAe;AAC/B,iBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,AAAY,MAAb,0BAAqB,IAAA,AAAC,CAAA;AACL,UAAzC,AAAQ,OAAD,uBAAK,AAAO,AAAW,AAAI,MAAhB,sBAAa,CAAC;AACS,UAAzC,AAAQ,OAAD,uBAAK,AAAO,AAAW,AAAI,MAAhB,sBAAa,CAAC;;AAElC,YAA6B,aAAzB,AAAU,SAAD,gCAAkB,AAAO,AAAY,MAAb;AACzB,uBAAS,AAAO,OAAA,QAAC,AAAU,SAAD;AAC1B,uBAAS,AAAO,OAAA,QAAC,AAAU,SAAD;AACvB,gCAAQ,AAAO,AAAO,MAAR,kCACrB,AAQG,uBAPG,MAAM,EACN,MAAM,EACN,AAAU,AAAO,SAAR,kBACT,AAAU,AAAO,SAAR,kBACT,AAAM,kCACN,AAAU,SAAD,SACT,YAAY,MAElB,AAQG,uBAPG,MAAM,EACN,MAAM,EACN,AAAU,AAAO,SAAR,kBACT,AAAU,AAAO,SAAR,kBACT,AAAM,kCACN,AAAU,SAAD,SACT,YAAY;AAGxB,cAAI,AAAM,KAAD,KAAgB,aAAZ,WAAW,iBAAG,KAAK;AACD,YAA7B,AAAe,cAAD,OAAK,SAAS;gBACvB,KAA0B,AAAW,AAAM,CAA1B,aAAZ,WAAW,iBAAG,KAAK,2BACA,AAAW,CAAzB,aAAZ,WAAW,iBAAG,UAAU;AACT,YAAlB,aAAa,KAAK;AACS,YAA3B,QAAoB,aAAZ,WAAW,iBAAG,KAAK;AACL,YAAtB,AAAe,cAAD;AACe,YAA7B,AAAe,cAAD,OAAK,SAAS;;;AAahC,sBAAI,AAAe;AACK,0BAAY,AAAc,2BAAC;AACG,UAApD,SAAS,iBAAW,SAAS,EAAE,MAAM,EAAE,YAAY;;AAGrD,sBAAI,AAAM;AACK,UAAb,YAAO,MAAM;;AAEA,UAAb,YAAO,MAAM;;;IAGnB;iBAEkC,WACC,QAAa;AAC9B,oBAAe;AACf,oBAAe;AAC/B,eAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,AAAY,MAAb,0BAAqB,IAAA,AAAC,CAAA;AACL,QAAzC,AAAQ,OAAD,uBAAK,AAAO,AAAW,AAAI,MAAhB,sBAAa,CAAC;AACS,QAAzC,AAAQ,OAAD,uBAAK,AAAO,AAAW,AAAI,MAAhB,sBAAa,CAAC;;AAExB,mBAAS,AAAO,OAAA,QAAC,AAAU,SAAD;AAC1B,mBAAS,AAAO,OAAA,QAAC,AAAU,SAAD;AACpC,YAAO,AAEF,wBAFkB,MAAM,EAAE,MAAM,EAAE,AAAO,MAAD,WAAS,AAAO,MAAD,WACpD,AAAM,kCAAsB,MAAM,EAAE,YAAY;IAE1D;yBAE0D,QAAe,MAC9D,MAAU,gBAAuB;AACpB,sBAAY;AACT,MAAzB,AAAU,SAAD,UAAC,2BAAS,MAAM;AACE,MAA3B,AAAU,SAAD,cAAc,IAAI;AACA,MAA3B,AAAU,SAAD,cAAc,IAAI;AACD,MAA1B,AAAU,SAAD,aAAa,IAAI;AACA,MAA1B,AAAU,SAAD,aAAa,IAAI;AAE1B,UAA2B,aAAvB,AAAO,AAAS,MAAV,mCAAmB,cAAc;AACc,QAAvD,AAAU,SAAD,SAAS,AAAO,AAAQ,AAAiB,MAA1B,iBAAU,cAAc;;AAEhD,YAA2B,aAAvB,AAAO,AAAS,MAAV,sBAAmB;AACwC,UAAnE,AAAU,SAAD,SAAS,AAAO,AAAQ,AAA6B,MAAtC,iBAAiC,aAAvB,AAAO,AAAS,MAAV,sBAAmB;;;AAGF,MAA7D,AAAU,SAAD,kBAAkB,AAAO,AAAW,MAAZ,sBAAa,cAAc;AACnB,MAAzC,AAAU,SAAD,kBAAkB,cAAc;AAClB,MAAvB,AAAU,SAAD,SAAS,KAAK;AAGb,MAFV,AAAU,SAAD,UAAU,AAAO,AAAW,AAAiB,AAAW,MAAxC,sBAAa,cAAc,gBAAgB,OAC9D,AAAO,AAAW,AAAiB,AAAU,MAAvC,sBAAa,cAAc,oBAAa,KAC9C;AACuB,MAA7B,AAAe,0BAAI,SAAS;IAC9B;kBAG4C,eAAmB;AAC9C;AACyB,mBAAS,AAAa,aAAA,QAAC;AACpD,iBAAO,AAAO,AAAO,AAAW,MAAnB;AACiB,wBACP;AAClC,eAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,AAAY,MAAb,0BAAqB,IAAA,AAAC,CAAA;AAC9C,yBAAI,AAAO,AAAW,AAAI,MAAhB,sBAAa,CAAC,SAAW;AACK,UAAtC,AAAY,WAAD,OAAK,AAAO,AAAW,MAAZ,sBAAa,CAAC;;;AAGxC,UAAI,UAAU,IAAI,QAAQ,AAAW,AAAM,UAAP,wBAAS,AAAO,AAAY,MAAb;AACvC,oBAAQ,UAAU;AAClB,qCAAS,AAAW,AAAQ,WAAR,QAAC,KAAK;AAC1B,qCAAgB,AAA0C,+BAAjD,MAAM,KACjB,AAAO,AAAY,MAAb,0BAAsB,WAC9B,AAAW,AAAQ,WAAR,QAAC,KAAK,SACjB,AAAW,AAAQ,WAAR,QAAC,KAAK;AAE8B,QADrD,WAAW,uBAAgB,MAAM,EAAE,MAAM,EAAE,AAAO,MAAD,WAAS,AAAO,MAAD,WAC5D,AAAO,AAAO,MAAR,gCAA8B,MAAM,EAAE,IAAI;AACF,QAAlD,yBAAmB,kBAAO,AAAS,QAAD,IAAI,AAAS,QAAD;;IAElD;sBAE6B;AAAU,YAAM,eAAN,KAAK;IAAW;;;QA7yC/B;QAAY;IAG9B;IAEC;IACA;IACA,kBAAa;IACb,kBAAa;IACb,kBAAa;IACb;IACA;IACA;IACA;IACF,aAAQ;IACN;IACF,sBAAiB;IACjB,oBAAe;IACf,cAAS;IACT,eAAU;IACV;IACE,eAAU;IACV,uBAAkB;IACZ,mBAAsB;IAC9B;IACE,mBAAc;IACd,kBAAa;IACf,+BAA0B;IAC1B,oBAAe;IACL;IACO,sBAAkC;IACnD,eAAU;IA6GV,kBAAa;IACb,eAAU;IACV,eAAU;IA9IS;IAAY;AAC9B,gEAAe,aAAa;;EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UCOjB,QAAa;AAAS,YAAA,AAAM,AAAgB,oCAAQ,MAAM;IAAC;aAExD;;AACP,sBAAY,AAAM,AAAgB;AAKd,MAJhC,yBAAc,gBACV,YAAuD,KAA/C,AAAM,AAAgB,2DAAA,OAC5B,AAAM,AAAY,AAAY,qEAChC,iBAAc,AAAM,AAAgB,qDACpC,WAAsB;AAGiB,MAF3C,AAAM,AAAgB,AAAyB,wDAAG,IAC5C,AAAY,yBAAe,6BAC3B,AAAY,yBAAQ,AAAY;AAKR,MAJ9B,wBAAY,gBACR,YAAQ,AAAU,SAAD,IAAI,OACX,sBAAS,AAAU,SAAD,MAAM,AAAU,SAAD,QAAQ,AAAU,SAAD,OAAO,OAC/D,AAAM,AAAY,AAAY,yDAClC,YAAsB;AACK,MAA/B,AAAY,+BAAc;AAC1B,UAAI,AAAM,AAAgB,yCAAa;AAQrB,QAPhB,AAAO,MAAD,UACF,QACM,iBACE,AAAM,AAAgB,mDACX,0CAAsC,sBAAC,KAAG,WAEvD,AAAM,AAAgB,uCAC5B;AAC0D,QAA9D,AAAO,MAAD,UAAU,AAAM,AAAgB,0CAAc;AACzC,uBAAW,AAAM,AAAgB;AAG5C,YAAI,AAAS,QAAD,WAAU;AAIiC,UAHrD,yBACI,MAAM,EACN,kBAAO,AAAS,AAAY,QAAb,iBAAiB,AAAS,AAAY,QAAb,kBACxC,kBAAO,AAAS,AAAQ,QAAT,aAAa,AAAS,AAAQ,QAAT;;;IAG9C;yBAE+B,QAAe,OAAc;AAC7C,0BAAgB,KAAK;AACrB,wBAAc,GAAG;AAEJ,MAD1B,uBAAiB,AAAM,AAAW,qCAAa,MAAM,EAAE,aAAa,EAChE,WAAW,EAAE;AAEwD,MADzE,uBACI,AAAM,AAAW,kCAAU,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE;AAEQ,MAD3E,uBACI,AAAM,AAAW,mCAAW,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE;AAE3C,MADzB,uBAAiB,AAAM,AAAW,oCAAY,MAAM,EAAE,aAAa,EAC/D,WAAW,EAAE;IACnB;uBAEsC,MAAa,QACxC,eAAsB,aAAoB;AACnD,eAAS,QAAQ,GAAG,AAAM,KAAD,gBAAG,AAAK,IAAD,YAAS,QAAA,AAAK,KAAA;AAC5B,mBAAO,AAAI,IAAA,QAAC,KAAK;AACjC,sBAAI,AAAK,AAAmB,IAApB,yCAA8B,AAAK,AAAe,IAAhB;AAEmB,UAD3D,4BACI,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY;;;IAGhE;gBAEyB,UAAoB,MAAa;AAChD;AACG,yBAAe,AAAa,AAAY,YAAb,KAAI,YAAY,AAAa,YAAD,KAAI;AAiBH,MAhBnE,QAAQ,YAAY,GACd,oBACE,YACA,IAAI,EACJ,AAAK,IAAD,WACQ,aAAZ,AAAS,QAAD,QACiC,aAApC,AAAM,AAAW,AAAc,2DAAO,AAAK,IAAD,eACnC,aAAZ,AAAS,QAAD,QACgC,aAAnC,AAAM,AAAW,AAAc,0DAAM,AAAK,IAAD,iBAChD,oBACE,YACA,IAAI,EACJ,AAAK,IAAD,WACQ,aAAZ,AAAS,QAAD,QACiC,aAApC,AAAM,AAAW,AAAc,2DAAO,AAAK,IAAD,eACnC,aAAZ,AAAS,QAAD,QACgC,aAAnC,AAAM,AAAW,AAAc,0DAAM,AAAK,IAAD;AAE9C,4BAAkB,mCAA4B,KAAK,EAAE,IAAI;AACjE,UAAI,AAAK,AAAmB,IAApB,8BAA8B;AACvB,0BACT,AAAK,AAAmB,AAAO,IAA3B,wCAAsC,8BAAW,eAAe;AAC3C,QAA7B,kBAAkB,WAAW;;AAE/B,YAAO,gBAAe;IACxB;oBAEwB,WAAgB,WAAkB;AACtD,YAAK,sBACD,AAAa,YAAD,KAAI,SACM,aAAf,AAAU,SAAD,UAAyB,aAAhB,AAAU,SAAD,uBAAS,AAAU,SAAD,WAC9C,AAAU,SAAD,OACf,AAAU,SAAD,MACT,AAAa,YAAD,KAAI,UACO,aAAhB,AAAU,SAAD,WAA0B,aAAhB,AAAU,SAAD,uBAAS,AAAU,SAAD,WAC/C,AAAU,SAAD,QACf,AAAU,SAAD;IAAQ;qBAEX,MAAa,UAAe,WAAkB;AACrD;AAEL,UAAI,AAAa,YAAD,KAAI;AAKoB,QAJtC,OAAY,qBACI,aAAZ,AAAS,QAAD,QAAuB,AAAI,aAApB,AAAU,SAAD,UAAS,IAAmB,KAAE,IACrC,aAAjB,AAAK,AAAQ,IAAT,8BAAe,AAAK,AAAmB,IAApB,kCACP,aAAhB,AAAU,SAAD,cACQ,aAAjB,AAAU,SAAD;YACR,KAAI,AAAa,YAAD,KAAI;AAOa,QANtC,OAAY,qBACI,aAAZ,AAAS,QAAD,QAAuB,AAAI,aAApB,AAAU,SAAD,UAAS,IAAmB,KAAE,IACrC,AACuB,aADxC,AAAK,AAAQ,IAAT,kBACkB,aAAjB,AAAU,SAAD,8BACV,AAAK,AAAmB,IAApB,kCACQ,aAAhB,AAAU,SAAD,cACQ,aAAjB,AAAU,SAAD;YACR,KAAI,AAAa,YAAD,KAAI;AAOa,QANtC,OAAY,qBACU,AACqB,aADvC,AAAK,AAAQ,IAAT,mBACiB,aAAhB,AAAU,SAAD,6BACV,AAAK,AAAmB,IAApB,kCACI,aAAZ,AAAS,QAAD,OAA0C,CAAlB,aAAjB,AAAU,SAAD,iBAA4B,GACpC,aAAhB,AAAU,SAAD,cACQ,aAAjB,AAAU,SAAD;;AAMyB,QAJtC,OAAY,qBACU,aAAlB,AAAK,AAAQ,IAAT,+BAAgB,AAAK,AAAmB,IAApB,kCACZ,aAAZ,AAAS,QAAD,QAAwB,AAAI,aAArB,AAAU,SAAD,WAAU,IAAmB,KAAE,IACvC,aAAhB,AAAU,SAAD,cACQ,aAAjB,AAAU,SAAD;;AAEf,YAAO,KAAI;IACb;4BAEqC,MAAa,eACvC,aAAoB,QAAe;;AACtC;AACA;AACE;AACA;AACH;AACA;AACA;AACA;AACO,iCAAiB,gBACzB,WAAQ,AAAM,AAAY,AAAY,+DACtC,eAAsB,mBACtB,iBAAc,OACd,WAAsB;AAEd,oCAAmB,gBAC3B,YAAQ,AAAM,AAAY,AAAY,+DACtC,gBAAsB,mBACtB,kBAAc,OACd,YAAsB;AAEd,uCAAqB,gBAC7B,cAAmD,KAA3C,AAAK,AAAmB,IAApB,8CAAoB,OAC9B,AAAM,AAAY,AAAY,+EAChC,mBAAc,AAAK,AAAmB,IAApB,wCAClB,aAAsB;AAIiB,MAF3C,AAAM,AAAkB,AAAU,2CAAG,IAC/B,AAAY,yBAAe,6BAC3B,AAAY,yBAAQ,AAAY;AAE3B,2BAAiB;AACjB,yBAAe;AACf,yBAAe,AAAa,AAAY,YAAb,KAAI,YAAY,AAAa,YAAD,KAAI;AACb,MAAzD,aAAa,gBAAU,aAAa,EAAE,IAAI,EAAE,YAAY;AACH,MAArD,WAAW,gBAAU,WAAW,EAAE,IAAI,EAAE,YAAY;AAEsB,MAD1E,iBACI,oBAAwB,cAAX,UAAU,GAAa,AAAK,AAAmB,IAApB;AAE4B,MADxE,eACI,oBAAsB,cAAT,QAAQ,GAAa,AAAK,AAAmB,IAApB;AAE2B,MADrE,iBACI,qBAAe,IAAI,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY;AAEH,MADjE,eACI,qBAAe,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY;AAChE,WAAK,YAAY,IAAI,AAAe,cAAD,UAAU,AAAa,YAAD;AAKU,QAJ3C,aAArB,AAAe,cAAD,uBAAS,AAAa,YAAD,UAC9B,eACE,oBAAc,cAAc,EAAE,YAAY,EAAE,YAAY,IAC1D,iBACE,oBAAc,YAAY,EAAE,cAAc,EAAE,YAAY;;AAajD,MAXjB,mBAAmB,mBACf,MAAM,EACN,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,AAAK,IAAD,qBACJ,YAAY;AAYC,MAXjB,iBAAiB,mBACb,MAAM,EACN,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,AAAK,IAAD,qBACJ,YAAY;AAEsD,MADtE,qBAAe,MAAM,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,cAAc,EACvE,aAAa,EAAE,WAAW,EAAE,AAAK,IAAD,qBAAqB,YAAY;IACvE;qBAGW,QACD,oBACA,kBACA,gBACC,eACA,aACY,SACZ;AACE,0BAAgB;AAC3B,UAAI,AAAa,YAAD,KAAI;AAE+C,QADjE,AAAc,aAAD,QACT,AAAc,aAAD,KAA0B,aAArB,AAAiB,gBAAD,qBAAO,AAAQ,OAAD;AAES,QAD7D,AAAc,aAAD,QACT,AAAY,WAAD,KAAwB,aAAnB,AAAe,cAAD,qBAAO,AAAQ,OAAD;YAC3C,KAAI,AAAa,YAAD,KAAI;AAE2C,QADpE,AAAc,aAAD,QACT,AAAc,aAAD,KAA6B,aAAxB,AAAiB,gBAAD,wBAAU,AAAQ,OAAD;AAES,QADhE,AAAc,aAAD,QACT,AAAY,WAAD,KAA2B,aAAtB,AAAe,cAAD,wBAAU,AAAQ,OAAD;YAC9C,KAAI,AAAa,YAAD,KAAI;AAE0C,QADnE,AAAc,aAAD,QACc,aAAvB,AAAiB,gBAAD,uBAAS,AAAQ,OAAD,eAAc,AAAc,aAAD;AAEA,QAD/D,AAAc,aAAD,QACY,aAArB,AAAe,cAAD,uBAAS,AAAQ,OAAD,eAAc,AAAY,WAAD;;AAGO,QADlE,AAAc,aAAD,QACa,aAAtB,AAAiB,gBAAD,sBAAQ,AAAQ,OAAD,eAAc,AAAc,aAAD;AAEA,QAD9D,AAAc,aAAD,QACW,aAApB,AAAe,cAAD,sBAAQ,AAAQ,OAAD,eAAc,AAAY,WAAD;;AAUJ,MARxD,AAAQ,AAAuB,OAAxB,2BAA2B,OAC5B,AAAO,MAAD,UACJ,QACM,iBAAU,aAAa,cACV,0CACP,AAAQ,OAAD,6BACb,aAAa,EACnB,kBAAkB,IACpB,AAAO,MAAD,UAAU,aAAa,EAAE,kBAAkB;IACzD;mBAGW,QACD,WACA,aACD,MACE,UACF,WACC,MACE,OACH,WACc,SACZ;;AAGmD,MAF5D,AAAU,SAAD,SAAS,AAAQ,AAAM,OAAP,UAAU,aAC7B,OAAO,eAAP,OAAS,YACT,AAAM,AAAY,AAAY;AAGwB,MAF5D,AAAY,WAAD,SAAS,AAAQ,AAAY,OAAb,gBAAgB,cACrC,OAAO,gBAAP,OAAS,mBACT,AAAM,AAAY,AAAY;AACS,MAA7C,AAAY,WAAD,eAAe,AAAQ,OAAD;AAEtB,yBAAe,AAAa,AAAY,YAAb,KAAI,YAAY,AAAa,YAAD,KAAI;AACK,MAA3E,YAAY,2BAAoB,SAAS,EAAE,AAAM,AAAY;AAGf,MAF9C,YAAY,YAAY,GAClB,8BAAuB,SAAS,EAAE,cAClC,8BAAuB,SAAS,EAAE;AAC5B,MAAZ,AAAK,IAAD;AACyD,MAA7D,OAAO,6BAAsB,SAAS,EAAE,AAAQ,OAAD;AAC5B,MAAnB,AAAK,IAAD,UAAU,IAAI;AAEU,MAD5B,8BAAwB,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EACtE,QAAQ,EAAE,IAAI,EAAE,OAAO;AAarB,MAZN,iBACI,MAAM,EACA,cAAN,KAAK,GACL,kBAAkB,AAAkB,aAA5B,AAAK,IAAD,SAAmB,aAAX,AAAK,IAAD,UAAS,IAAqB,aAAhB,AAAU,SAAD,UAAS,GAC1C,AAAmB,aAA5B,AAAK,IAAD,QAAmB,aAAZ,AAAK,IAAD,WAAU,IAAsB,aAAjB,AAAU,SAAD,WAAU,IACtD,uCACmC,OAAxB,AAAQ,AAAU,OAAX,0BAAW,OACrB,AAAM,AAAY,AAAY,0EACxB,AAAQ,AAAU,OAAX,iCACL,AAAQ,AAAU,OAAX,mCACP,AAAQ,AAAU,OAAX,kCACR,AAAQ,AAAU,OAAX,wBACtB;AACJ,YAAO,KAAI;IACb;8BAGW,QACD,WACA,aACD,MACE,cACA,UACD,MACa;AACd;AAAI;AAAI;AAAI;AAAI;AAAI;AAAI;AAAI;AACnC,UAAI,AAAa,YAAD,KAAI;AACF,QAAhB,KAAK,AAAS,QAAD;AACsB,QAAnC,KAAc,aAAT,AAAK,IAAD,qBAAO,AAAQ,OAAD;AACgC,QAAvD,KAAiB,AAAkB,aAA7B,AAAK,IAAD,UAAoB,aAAX,AAAK,IAAD,UAAS,iBAAK,AAAQ,OAAD;AAC/B,QAAb,KAAK,AAAK,IAAD;AAC6C,QAAtD,KAAgB,AAAkB,aAA5B,AAAK,IAAD,SAAmB,aAAX,AAAK,IAAD,UAAS,iBAAK,AAAQ,OAAD;AAC9B,QAAb,KAAK,AAAK,IAAD;AACO,QAAhB,KAAK,AAAS,QAAD;AACsB,QAAnC,KAAc,aAAT,AAAK,IAAD,qBAAO,AAAQ,OAAD;YAClB,KAAI,AAAa,YAAD,KAAI;AACT,QAAhB,KAAK,AAAS,QAAD;AACyB,QAAtC,KAAiB,aAAZ,AAAK,IAAD,wBAAU,AAAQ,OAAD;AAC6B,QAAvD,KAAiB,AAAkB,aAA7B,AAAK,IAAD,UAAoB,aAAX,AAAK,IAAD,UAAS,iBAAK,AAAQ,OAAD;AAC5B,QAAhB,KAAK,AAAK,IAAD;AAC6C,QAAtD,KAAgB,AAAkB,aAA5B,AAAK,IAAD,SAAmB,aAAX,AAAK,IAAD,UAAS,iBAAK,AAAQ,OAAD;AAC3B,QAAhB,KAAK,AAAK,IAAD;AACO,QAAhB,KAAK,AAAS,QAAD;AACyB,QAAtC,KAAiB,aAAZ,AAAK,IAAD,wBAAU,AAAQ,OAAD;YACrB,KAAI,AAAa,YAAD,KAAI;AACV,QAAf,KAAK,AAAK,IAAD;AAC2C,QAApD,KAAc,AAAkB,aAA3B,AAAK,IAAD,QAAmB,aAAZ,AAAK,IAAD,WAAU,iBAAI,AAAQ,OAAD;AAC1B,QAAf,KAAK,AAAK,IAAD;AAC8C,QAAvD,KAAiB,AAAkB,aAA9B,AAAK,IAAD,WAAsB,aAAZ,AAAK,IAAD,WAAU,iBAAI,AAAQ,OAAD;AACP,QAArC,KAAgB,aAAX,AAAK,IAAD,uBAAS,AAAQ,OAAD;AACT,QAAhB,KAAK,AAAS,QAAD;AACwB,QAArC,KAAgB,aAAX,AAAK,IAAD,uBAAS,AAAQ,OAAD;AACT,QAAhB,KAAK,AAAS,QAAD;;AAEC,QAAd,KAAK,AAAK,IAAD;AAC2C,QAApD,KAAc,AAAkB,aAA3B,AAAK,IAAD,QAAmB,aAAZ,AAAK,IAAD,WAAU,iBAAI,AAAQ,OAAD;AAC3B,QAAd,KAAK,AAAK,IAAD;AAC8C,QAAvD,KAAiB,AAAkB,aAA9B,AAAK,IAAD,WAAsB,aAAZ,AAAK,IAAD,WAAU,iBAAI,AAAQ,OAAD;AACR,QAApC,KAAe,aAAV,AAAK,IAAD,sBAAQ,AAAQ,OAAD;AACR,QAAhB,KAAK,AAAS,QAAD;AACuB,QAApC,KAAe,aAAV,AAAK,IAAD,sBAAQ,AAAQ,OAAD;AACR,QAAhB,KAAK,AAAS,QAAD;;AAG0D,MADzE,6BACI,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;IAC1E;;wCAGiC;AAAgB;IAAS;;;QA/WnC;QAAgB;QAA0B;IAI3D;IAAa;IAJI;IAAgB;AACjC,+DAAe,QAAQ;;EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICmCnB;;;;;;IAiBA;;;;;;IAiBA;;;;;;IAiBA;;;;;;IAiBA;;;;;;IAkBI;;;;;;IAgBF;;;;;;IAiBA;;;;;;IAiBD;;;;;;IAiBA;;;;;;gBAUoB;AAAY,4BAAS,OAAO;;wBAG9B,MAAa,MAAa;;AAChB,MAAtC,AAAO,AAAY,yCAAe;AACtB;AACZ,eAAS,YAAY,GACjB,AAAU,SAAD,gBAAG,AAAO,AAAW,AAAiB,sDAC/C,YAAA,AAAS,SAAA;AACG,mBAAO,AAAO,AAAW,AAAgB,kDAAC,SAAS;AACjE,YAAI,AAAO,4BAAe,MACxB,AAA2D,kBAAhD,cAAQ,IAAI,EAAE,aAAa,EAAE,AAAO;AAEjD,YAAuB,YAAb,WAAL,IAAI,iBAAiC,iDAClC,eAAqB,sBACN,YAAb,WAAL,IAAI,iBAAiC,mDAClC,eAAqB;AACjB,2BAAa,mBACnB,AAAiD,mBAAxC,AAAE,iBAAE,8BAAa,WAAL,IAAI,iBAAc,GAAG,KAAI,KAAM,MAAO;AAC/D,cAAI,AAAW,UAAD,IAAI;AACZ,yBAA2B,YAAb,WAAL,IAAI,iBAAiC,qCACvC,aAAL,IAAI,iBAAG,AAAO,AAAW,AAAc,iDACvC,AAAE,IAAQ,aAAL,IAAI,iBAAG,AAAO,AAAW,AAAc;AACD,YAAjD,SAAS,AAAO,MAAD,GAAG,IAAI,IAAI,AAAO,MAAD,GAAG,IAAI,IAAI,MAAM;AACiB,YAAlE,aAAc,AAAW,UAAD,KAAI,IAAK,MAAI,cAAQ,AAAE,IAAE,UAAU,EAAE,GAAG;AAGK,kCAFrE,mBAAiB,AAAW,UAAD,KAAI,IACzB,MACmB,WAAd,WAAL,IAAI,wBAAkD,WAAd,WAAZ,WAAL,IAAI,sBAAe,UAAU,UAAI,MAAM;AACpE,6BAAS,WAAL,IAAI,kBAAkB,qCACjB,WAAL,IAAI,gBAAgB,UAAU;AAGhB,cAFhB,aAA4B,AAAc,aAA5B,oCAAgB,UAAU,IAAI,IACrC,AAAE,iBAAE,uBACL,UAAU;;AAGgB,YAA7B,UAAL,IAAI,iBAAiB;AACQ,YAAxB,UAAL,IAAI,eAAe,UAAU;AACiB,YAAzC,UAAL,IAAI;AAC+B,YAA9B,UAAL,IAAI,kBAA6B;;AAEnC,cAAe,aAAX,UAAU,kBAAqB,kCAAjB,OAAoB;AACM,YAArC,UAAL,IAAI,gBAAgC,oCAAjB,OAAoB;AACf,YAAnB,UAAL,IAAI,iBAAiB;AACe,YAApC,cAA8B,sCAAjB,OAAoB;;;AAIrC,YAAI,AAAO,0BAAa;AACV;AAC2C,UAAvD,kBAAW,cAAQ,IAAI,EAAE,WAAW,EAAE,AAAO;;;AAG/B,MAAlB;IACF;aAGmB,MAAa;AAC1B;AACA;AACJ,eAAS,YAAY,GACjB,AAAU,SAAD,gBAAG,AAAO,AAAW,AAAiB,sDAC/C,YAAA,AAAS,SAAA;AACG,mBAAO,AAAO,AAAW,AAAgB,kDAAC,SAAS;AACjE,YAAuB,YAAb,WAAL,IAAI,iBAAiC,iDAClC,eAAqB,sBACN,YAAb,WAAL,IAAI,iBAAiC,mDAClC,eAAqB;AACpB,uDAA2B,WAAL,IAAI;AAC8B,UAA/D,eAAe,mBAAS,AAAE,iBAAE,8BAAa,WAAL,IAAI,iBAAc,GAAG,KAAI;AAC7D,cAAsB,YAAb,WAAL,IAAI,iBAAiC;AAGvB,YAFhB,QAA2C,AACD,CADP,aAA1B,AAAuB,gDAAK,IAAI,kBACrC,AAAO,AAAW,AAAc,8DAChC,YAAY;AAOD,YANf,sBAAsB,AAMjB,cAJO,2BADC,WAAL,IAAI,mBACqB,WAAd,WAAL,IAAI,wBAAiB,KAAK,KACP,WAAd,WAAL,IAAI,wBAAiB,KAAK,KAChC,GACA,AAAE,iCAAO,WAAL,IAAI;AAEwB,YAAnC,UAAL,IAAI,iBAAiB,mBAAmB;;AAIxB,YAFhB,QAA2C,AACA,CADR,aAA1B,AAAuB,gDAAK,IAAI,kBACrC,AAAO,AAAW,AAAc,+DAChC,YAAY;AAOD,YANf,sBAAsB,AAMjB,cAJO,2BADC,WAAL,IAAI,mBACqB,WAAd,WAAL,IAAI,wBAAiB,KAAK,KACP,WAAd,WAAL,IAAI,wBAAiB,KAAK,KAChC,GACA,AAAE,iCAAO,WAAL,IAAI;AAEwB,YAAnC,UAAL,IAAI,iBAAiB,mBAAmB;;;;AAI5B,MAAlB;IACF;6BAKW,UAAiB,UAAiB,QAAe;;AAC/C,qBAAW,AAAO,AAAW;AAC3B,0BAAgB,kBACjB,aAAP,MAAM,iBAAG,AAAS,QAAD,SAAS,AAAS,QAAD,QAAQ,MAAM,EACzC,aAAP,MAAM,iBAAG,AAAS,QAAD,QAAQ,AAAS,QAAD,OAAO,MAAM;AACtC,iCAAuB,kBACtB,aAAT,QAAQ,iBAAG,AAAS,QAAD,UACd,AAAS,QAAD,SACG,aAAT,QAAQ,iBAAG,AAAS,QAAD,SAAS,AAAS,QAAD,QAAQ,QAAQ,EAClD,aAAT,QAAQ,iBAAG,AAAS,QAAD,WACd,AAAS,QAAD,UACG,aAAT,QAAQ,iBAAG,AAAS,QAAD,QAAQ,AAAS,QAAD,OAAO,QAAQ;AAC5C,MAAlB,kBAAY;AACZ,UAAa,YAAT,eAAqB;AACyB,QAAhD,AAAU,uBAAO,AAAc,aAAD,KAAK,AAAS,QAAD;AACQ,QAAnD,AAAU,uBAAO,AAAc,aAAD,KAAK,AAAS,QAAD;AACe,QAA1D,AAAU,uBAAO,AAAqB,oBAAD,KAAK,AAAS,QAAD;AACK,QAAvD,AAAU,uBAAO,AAAqB,oBAAD,KAAK,AAAS,QAAD;AACjC,QAAjB,AAAU;YACL,KAAa,YAAT,eAAqB;AACmB,QAAjD,AAAU,uBAAO,AAAS,QAAD,OAAO,AAAc,aAAD;AACW,QAAxD,AAAU,uBAAO,AAAS,QAAD,OAAO,AAAqB,oBAAD;AACK,QAAzD,AAAU,uBAAO,AAAS,QAAD,QAAQ,AAAqB,oBAAD;AACH,QAAlD,AAAU,uBAAO,AAAS,QAAD,QAAQ,AAAc,aAAD;AAC7B,QAAjB,AAAU;;AAE0C,QAApD,AAAU,uBAAO,AAAc,aAAD,KAAK,AAAc,aAAD;AACW,QAA3D,AAAU,uBAAO,AAAc,aAAD,KAAK,AAAqB,oBAAD;AACW,QAAlE,AAAU,uBAAO,AAAqB,oBAAD,KAAK,AAAqB,oBAAD;AACH,QAA3D,AAAU,uBAAO,AAAqB,oBAAD,KAAK,AAAc,aAAD;AACtC,QAAjB,AAAU;;AAEwB,MAApC,qBAAe,AAAU;AACqB,WAA9C,AAAO,AAAY;MAAoB,WAAK,aAAL,YAAK;IAC9C;0BAG8B;;AAChB;AACD,iBAAO,AAAO,AAAW;AACpC,eAAS,YAAY,GACjB,AAAU,SAAD,gBAAG,AAAO,AAAW,AAAiB,sDAC/C,YAAA,AAAS,SAAA;AACK,mBAAO,AAAO,AAAW,AAAgB,kDAAC,SAAS;AACvD;AACZ,YAAI,AAAO,4BAAe,MACxB,AAA2D,kBAAhD,cAAQ,IAAI,EAAE,aAAa,EAAE,AAAO;AACN,QAA3C,AAAK,IAAD,wBAAuB,AAAK,IAAD;AACgB,QAA/C,AAAK,IAAD,0BAAyB,AAAK,IAAD;AACjC,YAAsB,YAAlB,AAAK,IAAD,gBAAiC;AACvC,2BAAI,eAAqB;AAGC,iBAFxB,IAAI;YAAC,oBAAc,aAAd,qBAC4C,AAAM,CAAtB,CAAb,aAAd,AAAS,QAAD,sBAAQ,AAAK,IAAD,uBAAU,AAAK,IAAD,gCAChC,AAAK,IAAD;AACmC,kBAA/C,IAAI;YAAC,mBAAY,aAAZ,qBAA8B,aAAf,AAAS,QAAD,uBAAS,AAAK,IAAD;AACzC,gBAAI,yBAAoB;AAGA,cAFtB,AAAK,IAAD,gBAAgC,aAAjB,AAAK,IAAD,+BAAgB,yBACjC,AAAK,IAAD,gBACJ;;;;AAIV,2BAAI,eAAqB;AAKH,mBAJpB,IAAI;YAAC,sBAAc,aAAd,uBAGe,CAHG,AAAE,IAGZ,CAF0C,CAA7B,aAAhB,AAAS,QAAD,YAAwB,aAAb,AAAS,QAAD,qBAAO,AAAK,IAAD,uBAC/B,AAAK,IAAD,kCAEjB,AAAK,IAAD;AACyC,mBAAjD,IAAI;YAAC,oBAAY,aAAZ,sBAA+B,aAAhB,AAAS,QAAD,wBAAU,AAAK,IAAD;AAC1C,gBAAI,yBAAoB;AAGA,cAFtB,AAAK,IAAD,gBAAgC,aAAjB,AAAK,IAAD,+BAAgB,yBACjC,AAAK,IAAD,gBACJ;;;;AAIZ,YAAI,AAAO,0BAAa,MACtB,AAAuD,kBAA5C,cAAQ,IAAI,EAAE,WAAW,EAAE,AAAO;;AAGP,MAA1C;AACkB,MAAlB,kBAAY;AACM,MAAlB;IACF;2BAIuB,gBAAmC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACJ,YAAyB,aAAnB,AAAa,4BAAQ,KAAyB,aAApB,AAAa,6BAAS;AACrB,QAA/B,8BAAwB;AACL,QAAnB,qBAAe;AACJ,yBAAa,AAAO,AAAW;AAC/B,gCAAoB,AAAO,AAAY;AACmB,QAArE,eAA6C,aAA9B,AAAc,AAAI,AAAS,cAAb,QAAC,+BAAiB,AAAkB,iBAAD;AACI,QAApE,eAA6C,aAA9B,AAAc,AAAI,AAAS,cAAb,QAAC,+BAAiB,AAAkB,iBAAD;AACE,QAAlE,aAA0C,aAA7B,AAAa,AAAI,AAAS,aAAb,QAAC,+BAAiB,AAAkB,iBAAD;AACI,QAAjE,aAA0C,aAA7B,AAAa,AAAI,AAAS,aAAb,QAAC,+BAAiB,AAAkB,iBAAD;AACQ,QAArE,eAA6C,aAA9B,AAAc,AAAI,AAAS,cAAb,QAAC,+BAAiB,AAAkB,iBAAD;AACI,QAApE,eAA6C,aAA9B,AAAc,AAAI,AAAS,cAAb,QAAC,+BAAiB,AAAkB,iBAAD;AACE,QAAlE,aAA0C,aAA7B,AAAa,AAAI,AAAS,aAAb,QAAC,+BAAiB,AAAkB,iBAAD;AACI,QAAjE,aAA0C,aAA7B,AAAa,AAAI,AAAS,aAAb,QAAC,+BAAiB,AAAkB,iBAAD;AACzD;AAAQ;AAAQ;AAAO;AACtB;AAEoE,QADzE,SAC8B,AAAM,CAApB,aAAX,UAAU,iBAAG,UAAU,aAAwC,CAAhB,aAAb,YAAY,iBAAG,YAAY;AAEO,QADzE,SAC8B,AAAM,CAApB,aAAX,UAAU,iBAAG,UAAU,aAAwC,CAAhB,aAAb,YAAY,iBAAG,YAAY;AAE1B,QADxC,QAAwC,AAAU,CAAxB,aAAhB,AAAW,UAAD,sBAAQ,UAAU,kBAAI,MAAM,IAC5C,mBAAS,YAAY,EAAE,YAAY;AAEC,QADxC,QAAuC,AAAU,CAAxB,aAAf,AAAW,UAAD,qBAAO,UAAU,kBAAI,MAAM,IAC3C,mBAAS,YAAY,EAAE,YAAY;AAEiC,QADxE,YAAiB,qBACb,KAAK,EAAE,KAAK,EAAmB,aAAjB,AAAW,UAAD,uBAAS,MAAM,GAAoB,aAAlB,AAAW,UAAD,wBAAU,MAAM;AAC3B,QAA5C,gCAA0B,cAAQ,SAAS;AAC3C,YAAsD,aAAlD,AAAO,AAAW,AAAgB,AAAI,kDAAH,mBAAiB,QACF,aAAlD,AAAO,AAAW,AAAgB,AAAI,kDAAH,mBAAiB;AAChB,UAAtC,AAAO,AAAY,yCAAe;AAChB,UAAlB;;;IAGN;;AAGqD,MAAnD,AAAO,AAAY,6CAA8B;AAEF,MAD/C,AAAO,AAAY,AACd,oDAAO,AAAO,AAAW;AACF,MAA5B,AAAO,AAAY;IACrB;gCAGgD,OAAY;AAC3C,iBAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACG;AACA;AACH;AACA;AACO,uBAAa,AAAM,AAAW,KAAZ;AACF,sBAAY,AAAM,AAAY,KAAb;AAC5C,eAAS,YAAY,GACjB,AAAU,SAAD,gBAAG,AAAM,AAAW,AAAiB,KAA7B,0CACjB,YAAA,AAAS,SAAA;AACK,mBAAO,AAAM,AAAW,AAAgB,KAA5B,sCAA6B,SAAS;AAClE,YAAuB,YAAlB,AAAK,IAAD,gBAAiC,mDAClC,IAAI,EAAa,sBACF,YAAlB,AAAK,IAAD,gBAAiC,iDAClC,IAAI,EAAa;AACvB,cAAsB,YAAlB,AAAK,IAAD,gBAAiC;AACC,YAAxC,QAAuB,aAAf,AAAU,SAAD,sBAAQ,AAAW,UAAD;AACsB,YAAzD,YAA6B,aAAjB,AAAW,UAAD,uBAAS,AAAS,AAAY,SAAZ,QAAC,SAAS;AACK,YAAvD,WAAiB,AAAY,aAAlB,KAAK,iBAAG,SAAS,iBAAG,AAAS,AAAY,SAAZ,QAAC,SAAS;AACQ,YAA1D,QAAuB,AAAkB,aAAjC,AAAU,SAAD,sBAAQ,AAAU,SAAD,uBAAS,AAAW,UAAD;AACE,YAAvD,WAAiB,AAAY,aAAlB,KAAK,iBAAG,SAAS,iBAAG,AAAS,AAAY,SAAZ,QAAC,SAAS;;AAEZ,YAAtC,QAAsB,aAAd,AAAU,SAAD,qBAAO,AAAW,UAAD;AACwB,YAA1D,YAA8B,aAAlB,AAAW,UAAD,wBAAU,AAAS,AAAY,SAAZ,QAAC,SAAS;AAEvB,YAD5B,WAA4C,AAAY,CAAtC,AAAK,aAAX,KAAK,IAAG,CAAC,iBAAI,AAAW,UAAD,yBAAW,SAAS,iBACnD,AAAS,AAAY,SAAZ,QAAC,SAAS;AACkC,YAAzD,QAAsB,AAAmB,aAAjC,AAAU,SAAD,qBAAO,AAAU,SAAD,wBAAU,AAAW,UAAD;AAEzB,YAD5B,WAA4C,AAAY,CAAtC,AAAK,aAAX,KAAK,IAAG,CAAC,iBAAI,AAAW,UAAD,yBAAW,SAAS,iBACnD,AAAS,AAAY,SAAZ,QAAC,SAAS;;AAEkB,UAA3C,eAAe,mBAAS,QAAQ,EAAE,QAAQ;AACC,UAA3C,eAAe,mBAAS,QAAQ,EAAE,QAAQ;AAEN,UADpC,kBAAkE,CAAlC,aAAb,YAAY,iBAAG,AAAS,AAAY,SAAZ,QAAC,SAAS,6BACjD,AAAS,AAAY,SAAZ,QAAC,SAAS;AAE6C,UADpE,gBACkC,CAAhB,aAAb,YAAY,iBAAG,YAAY,kBAAI,AAAS,AAAY,SAAZ,QAAC,SAAS;AACQ,UAA/D,sBAAsC,aAAhB,eAAe,IAAG,IAAI,MAAI,eAAe;AACN,UAAzD,oBAAkC,aAAd,aAAa,IAAG,IAAI,MAAI,aAAa;AACJ,UAArD,aAAQ,IAAI,EAAE,mBAAmB,EAAE,iBAAiB;;;IAG1D;cAEgB,OAAW,KAAS;AAChC,YAAM,cAAN,KAAK,iBAAG,GAAG,IAAG,GAAG,GAAU,aAAN,KAAK,iBAAG,GAAG,IAAG,GAAG,GAAG,KAAK;IAAC;8BAIL;;AAC5C,eAAS,QAAQ,GACb,AAAM,KAAD,gBAAG,AAAM,AAAW,AAAiB,KAA7B,0CACb,QAAA,AAAK,KAAA;AACS,mBAAO,AAAM,AAAW,AAAgB,KAA5B,sCAA6B,KAAK;AACzC,oBAAQ;AACT,wBAAY,AAAK,IAAD;AACpC,YAAI,AAAO,AAAY,sCAAY,kBAC/B,AAAO,AAAY,AAAS,oDAC5B,AAAM,KAAD,IAAuC,aAAnC,AAAO,AAAY,AAAS,+CAAS;AAChD,yBAAK;AACuD,YAA1D,AAAO,AAAY,AAAQ,AAAQ,0CAAP,KAAK,QAAE,gBAAM,AAAU,SAAD;AACQ,YAA1D,AAAO,AAAY,AAAQ,AAAQ,0CAAP,KAAK,UAAU,AAAU,SAAD;;;AAGL,eAAjD,AAAM,KAAD;UAAa,AAAS,eAAA,OAAT,cAA6B,mCAApB;AACgB,UAA3C,AAAM,KAAD,aAAC,gBAAY,AAAK,AAAa,IAAd;AACqB,UAA3C,AAAM,KAAD,eAAe,AAAK,AAAa,IAAd;AACK,UAA7B,AAAM,KAAD,OAAC,gBAAM,AAAU,SAAD;AACQ,UAA7B,AAAM,KAAD,SAAS,AAAU,SAAD;AACe,UAAtC,AAAO,AAAY,AAAS,yCAAI,KAAK;;;IAG3C;;;AAIwC,MAAtC,AAAO,AAAY,yCAAe;AAC7B;AACL,eAAS,QAAQ,GACb,AAAM,KAAD,gBAAG,AAAO,AAAW,AAAiB,sDAC3C,QAAA,AAAK,KAAA;AACO,mBAAO,AAAO,AAAW,AAAgB,kDAAC,KAAK;AAC7D,uBAAqB,WAAZ,WAAL,IAAI,uBAAgB,qBAAwB,WAAZ,WAAL,IAAI,sBAAe;AAChD,yBAA2B,WAAN,WAAZ,WAAL,IAAI,sBAAe,aAAM;AACX,YAAhB,WAAW;AACX;;AAEuB,iBAAvB,IAAI;YAAC,2BAAY,WAAZ,mCAAe;AACI,YAAnB,UAAL,IAAI,iBAAiB;AACN,YAAf,WAAW;;;;AAIjB,UAAa,YAAT,QAAQ,EAAI;AACc,QAA5B,AAAO,AAAY;;IAEvB;;;AAIE,eAAS,QAAQ,GACb,AAAM,KAAD,gBAAG,AAAO,AAAW,AAAiB,sDAC3C,QAAA,AAAK,KAAA;AACO,mBAAO,AAAO,AAAW,AAAgB,kDAAC,KAAK;AAC7D,uBAAqB,WAAZ,WAAL,IAAI,sBAAe,qBAAwB,WAAZ,WAAL,IAAI,sBAAe;AACxB,eAAvB,IAAI;UAAC,2BAAY,WAAZ,mCAAe;AACI,UAAnB,UAAL,IAAI,iBAAiB;AAGkC,UAFlD,UAAL,IAAI,0BAAgC,WAAZ,WAAL,IAAI,sBAAe,SAChC,iBACkB,WAAZ,WAAL,IAAI,sBAAe,SAAM,MAAW,WAAL,IAAI;;;AAGlB,MAA5B,AAAO,AAAY;IACrB;iBAKyB;AACvB,eAAS,QAAQ,GACb,AAAM,KAAD,gBAAG,AAAO,AAAW,AAAiB,sDAC3C,QAAA,AAAK,KAAA;AACO,mBAAO,AAAO,AAAW,AAAgB,kDAAC,KAAK;AAChC,QAAxB,UAAL,IAAI,eAAe,UAAU;AACD,QAA5B,AAAO,AAAY;;IAEvB;eAMqB;AACjB,YAAA,AAAO,AAAgB,mDAAoB,IAAI;IAAC;qBAMtC,OAAc,cAAqB;AACjC,iBAAO,KAAK;AACG,MAAxB,UAAL,IAAI,eAAe,UAAU;AACI,MAA5B,UAAL,IAAI,iBAAiB,YAAY;AACL,MAA5B,AAAO,AAAY;IACrB;mBAM2B;AACU,MAAnC,YAAY,AAAU,SAAD;AACrB,eAAS,YAAY,GACjB,AAAU,SAAD,gBAAG,AAAO,AAAW,AAAiB,sDAC/C,YAAA,AAAS,SAAA;AACG,mBAAO,AAAO,AAAW,AAAgB,kDAAC,SAAS;AACjE,YAAsB,YAAb,WAAL,IAAI,iBAAiC;AACvC,cAAI,AAAU,SAAD,KAAI;AAIa,YAHvB,UAAL,IAAI,iBACwB,WAAJ,WAAd,WAAL,IAAI,wBAAiB,mBAAwB,WAAd,WAAL,IAAI,yBAAkB,SACxB,WAAd,WAAL,IAAI,wBAAiB,QAChB,WAAL,IAAI;AAEyC,YADlD,UAAL,IAAI,4BACmB,WAAd,WAAL,IAAI,wBAAiB,SAAM,MAAW,WAAL,IAAI;;AAE3C,cAAI,AAAU,SAAD,KAAI;AAIa,YAHvB,UAAL,IAAI,iBACyB,WAAL,WAAd,WAAL,IAAI,yBAAkB,mBAAwB,WAAd,WAAL,IAAI,wBAAiB,OACxB,WAAd,WAAL,IAAI,wBAAiB,QAChB,WAAL,IAAI;AAEyC,YADlD,UAAL,IAAI,4BACmB,WAAd,WAAL,IAAI,wBAAiB,SAAM,MAAW,WAAL,IAAI;;;AAG3C,cAAI,AAAU,SAAD,KAAI;AAIa,YAHvB,UAAL,IAAI,iBACwB,WAAJ,WAAd,WAAL,IAAI,wBAAiB,mBAAwB,WAAd,WAAL,IAAI,yBAAkB,SACxB,WAAd,WAAL,IAAI,wBAAiB,QAChB,WAAL,IAAI;AAEyC,YADlD,UAAL,IAAI,4BACmB,WAAd,WAAL,IAAI,wBAAiB,SAAM,MAAW,WAAL,IAAI;;AAE3C,cAAI,AAAU,SAAD,KAAI;AAIa,YAHvB,UAAL,IAAI,iBACyB,WAAL,WAAd,WAAL,IAAI,yBAAkB,mBAAwB,WAAd,WAAL,IAAI,wBAAiB,OACxB,WAAd,WAAL,IAAI,wBAAiB,QAChB,WAAL,IAAI;AAEyC,YADlD,UAAL,IAAI,4BACmB,WAAd,WAAL,IAAI,wBAAiB,SAAM,MAAW,WAAL,IAAI;;;;AAInB,MAA5B,AAAO,AAAY;IACrB;gCAIuB,OAAc,QAAe;AACxC,sBAAkC,AAAO,aAA5B,AAAM,AAAY,KAAb,mBAAkB,MAAO,IAAI,CAAC,IAAI;AAC1D,mBAAS;AACT;AAAY;AAAY;AACU,MAAtC,AAAO,AAAY,yCAAe;AACH,MAA/B,8BAAwB;AACyB,MAAjD,mBAAa,AAAO,AAAgB;AACxB;AACZ,eAAS,YAAY,GACjB,AAAU,SAAD,gBAAG,AAAO,AAAW,AAAiB,sDAC/C,YAAA,AAAS,SAAA;AACG,mBAAO,AAAO,AAAW,AAAgB,kDAAC,SAAS;AACjE,YAAI,AAAO,4BAAe,MACxB,AAA2D,kBAAhD,cAAQ,IAAI,EAAE,aAAa,EAAE,AAAO;AACjD,YAAuB,YAAb,WAAL,IAAI,iBAAiC,iDAClC,eAAqB,sBACN,YAAb,WAAL,IAAI,iBAAiC,mDAClC,eAAqB;AAIrB,UAHN,aAAa,mBACT,AAAiD,mBAAxC,AAAE,iBAAE,8BAAa,WAAL,IAAI,iBAAc,GAAG,KAAI,KACzC,AAAK,OAAE,SAAS,EACrB;AACJ,cAAe,aAAX,UAAU,KAAI;AAG2C,YAF3D,SAA2B,YAAb,WAAL,IAAI,iBAAiC,qCACjC,aAAP,MAAM,iBAAG,AAAO,AAAW,AAAc,iDACzC,AAAE,IAAU,aAAP,MAAM,iBAAG,AAAO,AAAW,AAAc;AACH,YAAjD,SAAS,AAAO,MAAD,GAAG,IAAI,IAAI,AAAO,MAAD,GAAG,IAAI,IAAI,MAAM;AACiB,YAAlE,aAAc,AAAW,UAAD,KAAI,IAAK,IAAI,cAAQ,AAAE,iBAAE,UAAU,GAAE,GAAG;AAGK,2BAFrE,gBAAgB,AAAW,UAAD,KAAI,IACxB,IACmB,WAAd,WAAL,IAAI,wBAAkD,WAAd,WAAZ,WAAL,IAAI,sBAAe,UAAU,UAAI,MAAM;AACpE,6BAAS,WAAL,IAAI,kBAAkB,YAAY,kBAC7B,WAAL,IAAI,gBAAgB,UAAU;AAGhB,cAFhB,aAA2B,AAAc,aAA3B,YAAY,iBAAG,UAAU,IAAI,IACpC,AAAE,iBAAE,YAAY,IACjB,UAAU;;AAEe,YAA5B,UAAL,IAAI,iBAAiB,YAAY;AACJ,YAAxB,UAAL,IAAI,eAAe,UAAU;AACiB,YAAzC,UAAL,IAAI;AAC+B,YAA9B,UAAL,IAAI,kBAA6B;AACjC,gBAAI,AAAO,0BAAa;AACV;AAC2C,cAAvD,kBAAW,cAAQ,IAAI,EAAE,WAAW,EAAE,AAAO;;;;;AAKnC,MAAlB;IACF;;AAIE,eAAS,QAAQ,GACb,AAAM,KAAD,gBAAG,AAAO,AAAW,AAAiB,sDAC3C,QAAA,AAAK,KAAA;AACO,mBAAO,AAAO,AAAW,AAAgB,kDAAC,KAAK;AACvC,QAAjB,UAAL,IAAI,eAAe;AACK,QAAnB,UAAL,IAAI,iBAAiB;;AAEK,MAA5B,AAAO,AAAY;IACrB;UAIkB,MAAa;AAAS,0BAAO,IAAI,EAAE,IAAI;IAAC;gBAIlC,MAAa,MAAa;AAC9C,qCAAkB,IAAI,EAAE,IAAI,EAAE,UAAU;IAAC;YAIzB;AAAW,YAAA,AAAS,yBAAS,MAAM;IAAC;4BAKzC,UAAiB,UAAiB,QAAe;AAC5D,0CAAuB,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM;IAAC;iBAIlC,MAAa,QAAe,QAC7C,SAAgB,SAAgB;IAAc;eAI/B,MAAa,QAAe,QAAe,SAC1D,SAAgB;IAAc;YAIlB,MAAa,UAAiB;AACrB,MAA9B,AAAK,IAAD,gBAAe,WAAW;AACD,MAA7B,AAAK,IAAD,kBAAiB,QAAQ;IAC/B;;;QAztBU;QACD;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;IA2KQ;IACA;IACV;IACF;IAAY;IAAsB;IAClC;IACA,qBAAe;IACb;IAAa;IAuGf;IAjSK;IACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAotBR;QAAgB;QAAkB;QAAU;IAA5C;IAAgB;IAAkB;IAAU;;EAAO;;;;;;;;;;;;;;IChuB1E;;gDANK;;;;EAML;;;;;;;;;;;;;;;;;;;;;IAmBA;;kDAhBK;;;;EAgBL;;;;;;;;;;;;;;;;;;;;;IASA;;+CANK;;;;EAML;;;;;;;;;;;;;;;;;;IAsBA;;yDAlBK;;;;EAkBL;;;;;;;;;;;;;;;;;;;;IAwBA;;qDArBK;;;;EAqBL;;;;;;;;;;;;;;;;;;;;;;;IASA;;uDANK;;;;EAML;;;;;;;;;;;;;;;;;;;;;;;;;IAoCA;;+CA9BK;;;;EA8BL;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAkBA;;2CAZK;;;;EAYL;;;;;;;;;;;;;;;;;;;;;IAYA;;mDATK;;;;EASL;;;;;;;;;;;;;;;;;IAiBA;;+CAZK;;;;EAYL;;;;;;;;;;;;;;;;;;;;;IAcA;;6CATK;;;;EASL;;;;;;;;;;;;;;;;;;;IASA;;6CANK;;;;EAML;;;;;;;;;;;;;;;;IAuBA;;8CAlBK;;;;EAkBL;;;;;;;;;;;;;;;;;;;;;;;;IAiBA;;+CAZK;;;;EAYL;;;;;;;;;;;;;;;;;;;;;;IAiBA;;qDAZK;;;;EAYL;;;;;;;;;;;;;;;;;;;;;;IAeA;;kDAZK;;;;EAYL;;;;;;;;;;;;;;;;;;;;;IAYA;;kDATK;;;;EASL;;;;;;;;;;;;;;;;;;;IAYA;;yCATK;;;;EASL;;;;;;;;;;;;;;;;;;;;IAYA;;8CATK;;;;EASL;;;;;;;;;;;;;;;;;;;IASA;;+CANK;;;;EAML;;;;;;;;;;;;;;;;;;IAWA;;iDANK;;;;EAML;;;;;;;;;;;;;;;;;;;IAcA;;+CATK;;;;EASL;;;;;;;;;;;;;;;;;;;IASA;;oDANK;;;;EAML;;;;;;;;;;;;;;;;;;;IAYA;;2CATK;;;;EASL;;;;;;;;;;;;;;;;;;;IASA;;gDANK;;;;EAML;;;;;;;;;;;;;;;;;;;IAYA;;yCATK;;;;EASL;;;;;;;;;;;;;;;;;;;;IAcA;;+CATK;;;;EASL;;;;;;;;;;;;;;uBC7IW,MAAa,GAAU,GAAU,OAAc;AAKtC,MAJhB,AAAK,IAAD,QACK,qBACC,aAAF,CAAC,IAAS,aAAN,KAAK,IAAG,GAAK,aAAF,CAAC,IAAU,aAAP,MAAM,IAAG,GAAK,aAAF,CAAC,IAAS,aAAN,KAAK,IAAG,GAAK,aAAF,CAAC,IAAU,aAAP,MAAM,IAAG,IAC/D,KACA,AAAE;IACR;0BAIS,MAAa,GAAU,GAAU,OAAc;AAEY,MADlE,AAAK,IAAD,SAAc,qBACZ,aAAF,CAAC,IAAS,aAAN,KAAK,IAAG,GAAK,aAAF,CAAC,IAAU,aAAP,MAAM,IAAG,GAAK,aAAF,CAAC,IAAS,aAAN,KAAK,IAAG,GAAK,aAAF,CAAC,IAAU,aAAP,MAAM,IAAG;IACjE;yBAIS,MAAa,GAAU,GAAU,OAAc;AAE/C;AACA;AACP,eAAa,IAAI,cAAK,WAAF,CAAC,SAAI,MAAG,IAAC,WAAD,CAAC;AAC8B,QAAzD,SAAe,AAAI,aAAV,KAAK,IAAG,IAAI,SAAkB,AAAO,oBAAL,mCAAU,WAAF,CAAC;AACQ,QAA1D,SAAgB,AAAI,aAAX,MAAM,IAAG,IAAI,SAAkB,AAAO,oBAAL,mCAAU,WAAF,CAAC;AAGV,QAFvC,YAAF,CAAC,EAAI,KACC,AAAK,IAAD,QAAU,aAAF,CAAC,iBAAG,MAAM,GAAI,aAAF,CAAC,iBAAG,MAAM,KAClC,AAAK,IAAD,QAAU,aAAF,CAAC,iBAAG,MAAM,GAAI,aAAF,CAAC,iBAAG,MAAM;;AAE9B,MAAZ,AAAK,IAAD;IACN;6BAIS,MAAa,GAAU,GAAU,OAAc;AACxB,MAA9B,AAAK,IAAD,QAAQ,CAAC,EAAI,aAAF,CAAC,IAAU,aAAP,MAAM,IAAG;AACE,MAA9B,AAAK,IAAD,QAAQ,CAAC,EAAI,aAAF,CAAC,IAAU,aAAP,MAAM,IAAG;IAC9B;iCAIS,MAAa,GAAU,GAAU,OAAc;AACZ,MAA1C,AAAK,IAAD,QAAU,aAAF,CAAC,IAAS,aAAN,KAAK,IAAG,GAAK,aAAF,CAAC,IAAU,aAAP,MAAM,IAAG;AACV,MAA9B,AAAK,IAAD,QAAQ,CAAC,EAAI,aAAF,CAAC,IAAU,aAAP,MAAM,IAAG;AACc,MAA1C,AAAK,IAAD,QAAU,aAAF,CAAC,IAAS,aAAN,KAAK,IAAG,GAAK,aAAF,CAAC,IAAU,aAAP,MAAM,IAAG;AACE,MAA1C,AAAK,IAAD,QAAU,aAAF,CAAC,IAAS,aAAN,KAAK,IAAG,GAAK,aAAF,CAAC,IAAU,aAAP,MAAM,IAAG;AAC5B,MAAZ,AAAK,IAAD;IACN;+BAIS,MAAa,GAAU,GAAU,OAAc;AACzB,MAA7B,AAAK,IAAD,QAAU,aAAF,CAAC,IAAS,aAAN,KAAK,IAAG,GAAG,CAAC;AACC,MAA7B,AAAK,IAAD,QAAU,aAAF,CAAC,IAAS,aAAN,KAAK,IAAG,GAAG,CAAC;IAC9B;wBAIS,MAAa,GAAU,GAAU,OAAc;AACzB,MAA7B,AAAK,IAAD,QAAU,aAAF,CAAC,IAAS,aAAN,KAAK,IAAG,GAAG,CAAC;AACE,MAA9B,AAAK,IAAD,QAAQ,CAAC,EAAI,aAAF,CAAC,IAAU,aAAP,MAAM,IAAG;AACC,MAA7B,AAAK,IAAD,QAAU,aAAF,CAAC,IAAS,aAAN,KAAK,IAAG,GAAG,CAAC;AACE,MAA9B,AAAK,IAAD,QAAQ,CAAC,EAAI,aAAF,CAAC,IAAU,aAAP,MAAM,IAAG;AACC,MAA7B,AAAK,IAAD,QAAU,aAAF,CAAC,IAAS,aAAN,KAAK,IAAG,GAAG,CAAC;AAChB,MAAZ,AAAK,IAAD;IACN;yBAIS,MAAa,GAAU,GAAU,OAAc;AACZ,MAA1C,AAAK,IAAD,QAAU,aAAF,CAAC,IAAS,aAAN,KAAK,IAAG,GAAK,aAAF,CAAC,IAAU,aAAP,MAAM,IAAG;AACE,MAA1C,AAAK,IAAD,QAAU,aAAF,CAAC,IAAS,aAAN,KAAK,IAAG,GAAK,aAAF,CAAC,IAAU,aAAP,MAAM,IAAG;AACV,MAA9B,AAAK,IAAD,QAAQ,CAAC,EAAI,aAAF,CAAC,IAAU,aAAP,MAAM,IAAG;AACc,MAA1C,AAAK,IAAD,QAAU,aAAF,CAAC,IAAS,aAAN,KAAK,IAAG,GAAK,aAAF,CAAC,IAAU,aAAP,MAAM,IAAG;AAC5B,MAAZ,AAAK,IAAD;IACN;;;;EACF;;;;uCAmnCqB,WAAgB;IAAhB;IAAgB;;EAAgB;;;;;;;;;wCAO/B,WAAgB;IAAhB;IAAgB;;EAAW;;;;;;;;;wCA82B3B,eAAoB;IAApB;IAAoB;;EAAc;;;;;;;;;;IAM9B;;EAAmB;;;;;;;;uBCpzEE;AAC3C,YAAO;IACT;;;QAL8B;;AAAU,4DAAa,KAAK;;EAAC;;;;;;;;;AAelD,mBAAS,AAAY;AACrB,kBAAQ,AAAY;AAC3B,UAAI,AAAO,MAAD;AACU,QAAlB,SAAS;;AAEX,UAAI,AAAM,KAAD;AACS,QAAhB,QAAQ;;AASe,MAPzB,AAAM,kBACF,uCACa,gBACA,MAAM,YACP,eACA,KAAK,qBAED;AAET,MADX,YAAO,gBAAK,KAAK,EACb,MAAM;IACZ;UAG2B,SAAgB;AACb,MAAtB,YAAM,OAAO,EAAE,MAAM;IAC7B;;;IA5BO,iBAAY;IACZ,gBAAW;AAFK,uDAAM;;EAAK;;;;;;;;;;;;;;;IAoErB;;;;;;IAoBQ;;;;;;IA2BA;;;;;;IAgBT;;;;;;IAgBA;;;;;;IAgBC;;;;;;;;QA1HH;QACS;QACV;QACA;QACA;QACA;IALC;IAED;IACA;IACA;IACA;IACO,oBAAE,iCACG,SAAS,YACV,kBACE,uBACS,iCACE;;EAAO;;;;;;;;;;;;;;;;;;;;;;IA4IlC;;;;;;IAeC;;;;;;IAaG;;;;;;IAeC;;;;;;IAeJ;;;;;;;;QA3EG;QACD;QACA;QACA;QACA;IAJC;IACD;IACA;IACA;IACA;;EAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAoJb;;;;;;IAsBU;;;;;;IAoBA;;;;;;IAiBT;;;;;;IAiBA;;;;;;IAiBC;;;;;;IAiBD;;;;;;IAiBC;;;;;;IAkBA;;;;;;IAiBA;;;;;;IAiBA;;;;;;IAiBA;;;;;;IAiBA;;;;;;IAiBA;;;;;;IAkBF;;;;;;IAgBU;;;;;;IAiBV;;;;;;IAsBiB;;;;;;IAeV;;;;;;IAwBM;;;;;;IAqBK;;;;;;IAiBhB;;;;;;IAiBO;;;;;;IAGL;;;;;;;;;QA5cL;QACS;QACA;QACV;QACC;QACC;QACA;QACF;QACA;QACE;QACA;QACA;QACF;QACU;QACV;QACiB;QACV;QACW;QAClB;QACC;QACC;QACA;QACF;IAqbO;IACD;IACO;IA1cb;IAIA;IACA;IAUA;IAIA;IACO,qBAAY,KAAV,SAAS,QAAT,OAAa;IAChB,mBAAW,MAAT,QAAQ,SAAR,OAA2B;IAC5B,qBAAY,OAAV,SAAS,UAAT,OAA4B;IAC5B,wBAAc,OAAZ,WAAW,UAAX,OAAsB;IACxB,wBAAc,OAAZ,WAAW,UAAX,OAAe;IACb,0BAAkB,OAAhB,eAAe,UAAf,OAA0B;IAC5B,0BAAkB,OAAhB,eAAe,UAAf,OAAmB;IAC7B,mBAAU,OAAR,OAAO,UAAP,OAAW;IACb,kBAAU,OAAR,OAAO,UAAP,OAAW;IACX,oBAAE,iCACG,SAAS,YACV,iBACW,iCACT;IACL,qBAAa,OAAX,UAAU,UAAV,OAAc;IACjB,oBAAY,OAAV,SAAS,UAAT,OAAa;IACF,iCAAyB,OAAvB,sBAAsB,UAAtB,OAA0B;IACtC,uBAAe,QAAb,YAAY,WAAZ,OAAgB;IACnB,sBAAc,QAAZ,WAAW,WAAX,OAAqC;IACtC,uBAAe,QAAb,YAAY,WAAZ,OAAuC;IAC1C,sBAAc,QAAZ,WAAW,WAAX,OAAe;IACvB,iBAAQ,QAAN,KAAK,WAAL,OAAS;AACQ,IAA7B,kBAAY;EACd;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAoaU;QAAc;QAAU;QAAa;QAAkB;IAK5D;IAEA,gBAAW;IAPN;IAAc;IAAU;IAAa;IAAkB;;EAAY;;;;;;;;;;;;;;;;;IA0ChE;;;;;;IAyBQ;;;;;;IAyBA;;;;;;;;;QA3EH;QAAqB;QAA0B;IAA/C;IACF,oBAAE,iCACG,SAAS,YACV,iBACW,iCACT;IACN,qBAAY,KAAV,SAAS,QAAT,OAA4B;;EAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA8GxC;;;;;;IAiBA;;;;;;IAkBC;;;;;;IAqBQ;;;;;;;;QA5EX;QACD;QACA;QACA;IAHC;IACD;IACA;IACA;;EAAiB;;;;;;;;;;;;;;;;;;ICr1BnB;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAGC;;;;;;IAGM;;;;;;IAGV;;;;;;;;IAlBG;IAGA;IAGA;IAGA;IAGC;IAGM;IAGV;;EACN;;;;;;;;;;;;;;;;;;;;;;;IAUS;;;;;;IAGG;;;;;;IAGF;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;IAGQ;;;;;;;;IAxBT;IAGG;IAGF;IAGA;IAGA;IAGA;IAGA;IAGA;IAGQ;;EAClB;;;;;;;;;;;;;;;;;;;;;;IAWS;;;;;;IAGH;;;;;;IAGG;;;;;;IAGS;;;;;;IAGN;;;;;;IAGK;;;;;;;;IAfR;IAGH;IAGG;IAGS;IAGN;IAGK,kBAAY;;EAC7B;;;;;;;;;;;;;;;;;;IAWS;;;;;;IAGQ;;;;;;IAGP;;;;;;IAGA;;;;;;IAGJ;;;;;;;;IAZG;IAGQ,oBAAY;IAGnB;IAGA;IAGJ;;EACN;;;;;;;;;;;;;;;;;IAUS;;;;;;IAGQ;;;;;;IAGX;;;;;;IAGA;;;;;;IAGE;;;;;;;;IAZC;IAGQ;IAGX;IAGA;IAGE;;EACR;;;;;;;;;;;;;;;;;;;;;IAOS;;;;;;IAGH;;;;;;IAGA;;;;;;IAGG;;;;;;IAGA;;;;;;IAGD;;;;;;IAGC;;;;;;IAGM;;;;;;IAGsB;;;;;;;;IAxB5B;IAGH;IAGA;IAGG;IAGA;IAGD;IAGC;IAGM;IAGsB;;EACrC;;;;;;;;;;;;;;;;;IAQkB;;;;;;;;2BAAiB;;EACnC;;;;;;;;;;;;;;IAWY;;;;;;IAGH;;;;;;IAGD;;;;;;IAGE;;;;;;IAGD;;;;;;IAGS;;;;;;;;IAfN;IAGH;IAGD;IAGE;IAGD;IAGS;;EAClB;;;;;;;;;;;;;;IASS;;;;;;;;;;EACT;;;;;;;;;;;;;IAWY;;;;;;IAGH;;;;;;IAGA;;;;;;IAGA;;;;;;IAGA;;;;;;;;IAZG;IAGH;IAGA;IAGA;IAGA;;EACT;;;;;;;;;;;;;;;IAWM;;;;;;IAGA;;;;;;IAGU;;;;;;;;IANV;IAGA;IAGU;;EAChB;;;;;;;;;;;;;;IAUY;;;;;;IAGH;;;;;;IAGH;;;;;;IAGG;;;;;;;;IATG;IAGH;IAGH;IAGG;;EACT;;;;;;;;;;;;;;IAQU;;;;;;IAGJ;;;;;;IAGA;;;;;;;;IANI;IAGJ;IAGA;;EACN;;;;;;;;;;;;;;;;;;;IASU;;;;;;IAGF;;;;;;IAGA;;;;;;IAGA;;;;;;IAGC;;;;;;IAGD;;;;;;IAGC;;;;;;IAGH;;;;;;IAGA;;;;;;;;IAxBI;IAGF;IAGA;IAGA;IAGC;IAGD;IAGC;IAGH;IAGA;;EACN;;;;;;;;;;;;;;;;;;;;;;;;IAUwC;;;;;;IAG/B;;;;;;IAGH;;;;;;IAGE;;;;;;IAGC;;;;;;IAGM;;;;;;IAGN;;;;;;IAGO;;;;;;;;IArBwB;IAG/B;IAGH;IAGE;IAGC;IAGM;IAGN;IAGO;;EAChB;;;;;;;;;;;;;;;;;;;;IAWM;;;;;;IAGA;;;;;;IAGW;;;;;;IAGR;;;;;;IAGA;;;;;;;;IAZH;IAGA;IAGW;IAGR;IAGA;;EACT;;;;;;;;;;;;;;;6BC9WmC;;AACV,oBAArB,qBAAe,WAAN;AACT,oBAAI,AAAO;AACT,YAAU,2BAAN;AACsC,eAAlC,WAAN;UAAkB,AAAc,mCAAA,OAAd,+BAAkB,QAAJ;;AAEU,QAA5C,yBAA0C;AACjB,QAAzB;AACA,YAAU,2BAAN;AACqC,UAArB,UAAZ,WAAN,2CAAkC;;AAEpC,sBAAI,AAAkB,mDACoB,WAApB,WAAZ,WAAN;AACE,6BAAe;AACf,4BAAc;AACd,4BAAc;AACd,2BAAa;AACb,0BAAY;AACZ,8BAAgB;AAChB,6BAAe;AACf,+BAAiB;AACjB,gCAAkB;AAClB,6BAAe;AACf,8BAAgB;AAChB;AACA;AACC;AAEK,wBAAU,AAAO;AACgB,UAAxB,UAAb,WAAN,+CAAsC;AAC3B,8BACe,AAAyB,YAA/C,AAAO,4BAAiC,iCACd,YAAtB,AAAO,4BAAiC;AAKxB,UAJxB,AAAO,4BAAmC,YAAnB,AAAO,yBAAqC,qCAC5D,aAAa,GACY,0CACA,wCAC1B,AAAO;AAMQ,UAJrB,kBAAkB,AAAO,AAAO,sBAAG,OAC7B,0BAAmB,AAAO,oBAAQ,AAAK,IAAD,WACtC,aAAa,GACT,0BAAmB,OAAO,AAAK,IAAD,WAC9B,AAAK,IAAD;AAMiC,UAJ/C,iBAAiB,AAAO,AAAM,qBAAG,OAC3B,0BAAmB,AAAO,mBAAO,AAAK,IAAD,UACrC,aAAa,GACT,AAAK,IAAD,SACJ,0BAAmB,OAAO,AAAK,IAAD;AAExC,cAAI,AAAO,AAAM,0BAAQ,QAAQ,AAAO,AAAM,AAAK;AAKkB,YAJnE,YAAY,oBACR,AAAO,AAAM,yBACU,MAAvB,AAAO,AAAM,oCAAA,OACT,sDACyC,WAAZ,WAAZ,WAAN;AACwB,YAA3C,cAA+B,aAAjB,AAAU,SAAD;;AAGd,2BAAa,AAAO,AAAkB,iCAAG;AAC1C,uCAAS,UAAU,GACe,WAApB,WAAZ,WAAN,8DACA,AAAkB;AACF;AACD;AACd;AACF;AACL,mBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,MAAM,GAAE,IAAA,AAAC,CAAA;AAC3B,gBAAI,UAAU;AAC4C,8BAAxD,oCAAqD,WAAnB,WAAZ,WAAN,2DAAsC,CAAC;AACN,cAAjD,eAAwC,aAAzB,AAAc,AAAK,aAAN,4BAAc,OAAO;AACE,cAAnD,gBAA0C,aAA1B,AAAc,AAAK,aAAN,6BAAe,OAAO;;AAET,cAA1C,sBAAsB,AAAiB,8BAAC,CAAC;AACJ,cAArC,aAAa,AAAoB,mBAAD;AAE4B,cAD5D,WAAW,oBAAa,UAAU,GACb,OAAjB,AAAO,+BAAA,OAAa,sCAA6B;AACd,cAAvC,AAAoB,mBAAD,YAAY,QAAQ;AACX,cAA5B,aAAa,AAAS,QAAD;AACK,cAA1B,YAAY,AAAS,QAAD;AAC0B,cAA9C,gBAAgB,mBAAI,UAAU,EAAE,aAAa;AACF,cAA3C,eAAe,mBAAI,SAAS,EAAE,YAAY;AAEiB,cAD3D,eACY,AAAmB,AAAiB,aAA5C,OAAO,iBAAG,AAAO,sCAAY,AAAO,oCAAU,SAAS;AACI,cAA/D,gBAAwB,aAAR,OAAO,IAAG,mBAAI,aAAa,EAAE,AAAO;AACQ,cAA5D,AAAoB,mBAAD,QAAQ,gBAAK,YAAY,EAAE,aAAa;;AAE7D,gBAAI,AAAE,CAAD,KAAI;AAGa,cAFpB,iBAAiB,AAAO,AAAM,AAAQ,qBAAL,SAAS,aAAa,GACjD,mBAAI,cAAc,EAAE,YAAY,IAChC,cAAc;AAKV,cAJV,kBAIK,CAJc,AAAY,WAAD,gBACrB,AAAO,AAAO,AAAQ,sBAAL,QAAQ,aAAa,GACjC,mBAAI,eAAe,EAAE,aAAa,IAClC,eAAe;;AAGR,YAAvB,wBAAmB;AACd,6BAAa;AAClB,gBAAwB,YAApB,AAAO,2BAAsC;AAC/C,kBAAwB,YAApB,AAAO,0BAAuC;AAChD,oBAAK,AAAY,AAAgB,WAAjB,GAAG,YAAY,gBAAI,cAAc;AACrB,kBAA1B,cAAc,YAAY;AAC1B,sBAAI,AAAa,AAAgB,YAAjB,GAAG,aAAa,gBAAG,eAAe;AACN,oBAAvB,UAAb,WAAN,+CAAsC;;AAEK,oBAA3C,eAAe,AAAa,YAAD,GAAG,aAAa;;AAEnB,kBAA1B,gBAAgB,UAAU;;AAEC,kBAA3B,cAAA,AAAY,WAAD,GAAI,YAAY;AACoB,kBAA/C,eAAe,mBAAI,YAAY,EAAE,aAAa;;oBAE3C,KAAwB,YAApB,AAAO,0BAAuC,yCACjC,YAApB,AAAO,0BAAuC;AAChD,oBAAI,AAAe,AAAe,cAAhB,GAAG,YAAY,iBAAI,cAAc;AACtB,kBAA3B,cAAA,AAAY,WAAD,GAAI,YAAY;AACoB,kBAA/C,eAAe,mBAAI,YAAY,EAAE,aAAa;AAC7B,kBAAjB,aAAa;;AAEK,kBAAlB,aAAa;;;;AAIjB,kBAAwB,YAApB,AAAO,0BAAuC;AAChD,oBAAK,AAAa,AAAiB,YAAlB,GAAG,aAAa,gBAAI,eAAe;AACtB,kBAA5B,eAAe,aAAa;AAC5B,sBAAI,AAAY,AAAe,WAAhB,GAAG,YAAY,gBAAG,cAAc;AACH,oBAAvB,UAAb,WAAN,+CAAsC;;AAEE,oBAAxC,cAAc,AAAY,WAAD,GAAG,YAAY;;;AAGb,kBAA7B,eAAA,AAAa,YAAD,GAAI,aAAa;AACe,kBAA5C,cAAc,mBAAI,WAAW,EAAE,YAAY;;oBAExC,KAAwB,YAApB,AAAO,0BAAuC,yCACjC,YAApB,AAAO,0BAAuC;AAChD,oBAAI,AAAgB,AAAgB,eAAjB,GAAG,aAAa,iBAAI,eAAe;AACvB,kBAA7B,eAAA,AAAa,YAAD,GAAI,aAAa;AACe,kBAA5C,cAAc,mBAAI,WAAW,EAAE,YAAY;AAC1B,kBAAjB,aAAa;;AAEK,kBAAlB,aAAa;;;;AAInB,gBAAI,UAAU;AACuB,cAAnC,AAAc,aAAD,YAAY,UAAU;;AAEM,cAAzC,AAAoB,mBAAD,YAAY,UAAU;;AAEM,YAAjD,iBAAiB,mBAAI,cAAc,EAAE,WAAW;AACI,YAApD,kBAAkB,mBAAI,eAAe,EAAE,YAAY;;AAGkB,UADvE,kBAAa,gBACT,AAAe,cAAD,gBAAG,OAAO,GAAE,AAAgB,eAAD,GAAG,AAAY,WAAD;;;IAGjE;wBAEwC,OAAW,OACb,QACvB,kBAAe;;AACX;AACZ,6BAAmB;AACxB,UAAI,SAAS,IAAI;AACQ,QAAvB,mBAAmB;;AAEqC,MAA1D,AAAO,MAAD,iBAAkC,KAAnB,AAAO,MAAD,qBAAC,OAAe,AAAe,qBAAN,KAAK;AACzD,oBAAI,AAAO,MAAD,wBACL,AAAO,MAAD,iBAAgB,QAAQ,AAAO,MAAD,mBAAmB;AAC1D,YAAI,AAAM,KAAD,uBAAuB;AACM,UAApC,kBAAkB;AAE2C,UAD7D,AAAgB,eAAD,SAA8B,MAAtB,AAAO,MAAD,wBAAC,OACzB,gBAAgB,GAAG,AAAU,SAAD,WAAS,AAAO,MAAD;AAEuB,UADvE,AAAgB,eAAD,kBACX,gBAAgB,GAAG,AAAU,SAAD,kBAAkB,AAAO,MAAD;AACrB,UAAnC,AAAgB,eAAD,eAAe,KAAK;AAEkB,UADrD,AAAgB,eAAD,SACX,gBAAgB,GAAG,AAAU,SAAD,SAAS,AAAO,MAAD;AACN,UAAzC,AAAM,KAAD,oBAAoB,eAAe;;AAEf,mCAAuB,6CACtC,MAAM,aACH,SAAS,eACP,KAAK,kBACF,gBAAgB,GAAG,cAAc,GAAG,0BAC1C,AAAM,AAAY,KAAb,oCACR,gBAAgB,GAAG,WAAC,AAAU,SAAD,cAAY,OAC1C,WAAC,AAAO,MAAD,oBAEa,QADE,eAAtB,eAAe,iBAAf,OAAiB,oBAAjB,OACF,AAAO,MAAD,iCADkB,OAEvB,gBAAgB,GAAG,AAAU,SAAD,WAAS,AAAO,MAAD,mCACd,eAAvB,eAAe,iBAAf,OAAiB,qBAAjB,OACN,gBAAgB,GAAG,AAAU,SAAD,SAAS,AAAO,MAAD,2BACN,eAAhC,eAAe,iBAAf,OAAiB,8BAAjB,OACL,gBAAgB,GACX,AAAU,SAAD,kBACT,AAAO,MAAD;AACuB,QAA3C,AAAkB,6BAAI,oBAAoB;AAC1C,uBAAK,AAAO,MAAD,yBACP,AAAO,MAAD,iCACN,AAAM,AAAY,KAAb;AAC6B,UAApC,AAAqB,oBAAD,YAAY;AAC8B,UAA9D,AAAM,AAAY,AAAmB,KAAhC,uCAAoC,oBAAoB;;;IAGnE;;;AAGmB;AACjB,UAAiB,AAAkB,WAAzB,WAAN,+CAAkC;AACpC,YAAU,2BAAN;AACF,mBAAS,IAAI,GAAG,AAAE,CAAD,gCAAoC,WAAd,WAAb,WAAN,0DAAyC,IAAA,AAAC,CAAA;AAC9C,yBAAyC,WAAb,WAAb,WAAN,sDAAiC,CAAC;AACtB,YAAnC,uDAAkB,aAAO,CAAC,gCAAE,MAAM;AAClC,gBAAW,0BAAP,MAAM;AACgC,4BAAU,MAAM;AACxD,kBAAI,OAAO,IAAI,QAAQ,AAAQ,OAAD,eAAe;AAC3C,yBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAQ,AAAW,OAAZ,uBAAoB,IAAA,AAAC,CAAA;AAC9B,kCAAY,AAAQ,AAAU,OAAX,mBAAY,CAAC;AAChD,gCAAI,AAAU,SAAD,qBAEN,AAAkD,WADjD,WAAN,+CACuB,YAAO,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;;;;;AAKhE,yBAAqB,WAAX,WAAN;AAC0B,YAA5B;;;AAGY,uBAAyC,WAAb,WAAb,WAAN,sDAAiC;AACxD,mBAAS,IAAI,GAAG,AAAE,CAAD,gCAAwB,WAAd,WAAP,MAAM,+BAAuB,IAAA,AAAC,CAAA;AAClC,6BAAiC,WAAb,WAAP,MAAM,2BAAe,CAAC;AACjD,gBAAU,WAAN,qCAA4B;AACM,cAApC,kBAAkB;AACiB,cAAnC,AAAgB,eAAD,QAAC,mBAAkB,WAAX,UAAU;AACqB,cAAtD,AAAgB,eAAD,kBAAC,6BAAwB,WAAP,MAAM;AACR,cAA/B,AAAgB,eAAD,eAAe;AACA,cAA9B,AAAgB,eAAD,cAAc,CAAC;AACS,cAAvC,AAAgB,eAAD,SAAC,gBAAmB,WAAX,UAAU;AACO,cAAnC,WAAN,mCAAyB,eAAe;;AAWwB,YARlE,AAAkB,6BAAI,6CACV,MAAM,eACD,CAAC,YACJ,cACH,UAAU,4BACW,YAAtB,eAAe,eAAf,OAAiB,iBAAjB,OAAoC,WAAX,UAAU,4CACP,eAAvB,eAAe,iBAAf,OAAiB,qBAAjB,OAAqC,WAAX,UAAU,4DAEX,eAAhC,eAAe,iBAAf,OAAiB,8BAAjB,OAA0C,WAAP,MAAM;;;;IAIzD;;;AAGmB;AACE,2BAAyB;AAC5C,eAAS,IAAI,GAAG,AAAE,CAAD,gCAAoB,WAAX,WAAN,wCAAyB,IAAA,AAAC,CAAA;AAC9B,wBAA4B,WAAV,WAAN,oCAAiB,CAAC;AACI,aAA1C,WAAN;qBAAM,OAAc,mCAAkB,SAAS;AACH,QAA5C,AAAe,cAAD,0BAAe,WAAV,SAAS;;AAGP,iBAAO;AAGiC,MAD/D,AAAe,cAAD,WAAS,QAAS;;AAC5B,iBAAI;gCAAC,GAAG;aAAI,WAAC,AAAK,IAAD,eAAa,GAAG,KAAK,IAAgB,aAAV,AAAI,IAAA,QAAC,GAAG,KAAI;QAApD;;;AAEW,oCAAkC;AACrD,eAAS,IAAI,GAAG,AAAE,CAAD,gCAAoB,WAAX,WAAN,wCAAyB,IAAA,AAAC,CAAA;AAC9B,wBAA4B,WAAV,WAAN,oCAAiB,CAAC;AAClC,8CACN,AAAwB,uBAAD,YAAoB,WAAV,SAAS,6BAC9B,WAAN,yCAAM,OAAc,kCAClB,uBAAuB,EAAY,WAAV,SAAS,uBACpC;AAC2C,QAArD,AAAwB,uBAAD,0BAAe,WAAV,SAAS;AAKC,QAJ5B,UAAV,SAAS,WAAwB,OAAL,WAAV,SAAS,mBAAC,OACE,WAAf,WAAV,SAAS,yBACL,AAAI,AAA2B,IAA3B,QAAW,WAAV,SAAS,uBAAoB,IAC7B,KACA,AAAI,MAAQ,cAAN,KAAK;AACzB,uBAAc,WAAV,SAAS,8BAAwB,WAAV,SAAS;AAClC,cAAU,WAAN,qCAA4B;AACM,YAApC,kBAAkB;AACgD,YAAlE,AAAgB,eAAD,QAAC,oBAAgC,OAAf,WAAV,SAAS,6BAAC,OAA4B,WAAV,SAAS;AACH,YAAzD,AAAgB,eAAD,kBAAC,6BAA2B,WAAV,SAAS;AACX,YAA/B,AAAgB,eAAD,eAAe,CAAC;AACkB,YAAjD,AAAgB,eAAD,SAAC,gBAAkB,WAAV,SAAS;AACQ,YAAnC,WAAN,mCAAyB,eAAe;;AAEf,qCAAuB,6CACtC,SAAS,+BACoC,WAAP,WAAd,WAAb,WAAN,8DAA0C,CAAC,eAC9C,YAAW,WAAV,SAAS,2CAES,QADD,eAAtB,eAAe,iBAAf,OAAiB,oBAAjB,OACQ,WAAV,SAAS,qCADe,OAEd,WAAV,SAAS,gDACqB,eAAvB,eAAe,iBAAf,OAAiB,qBAAjB,OAAoC,WAAV,SAAS,uEAEV,eAAhC,eAAe,iBAAf,OAAiB,8BAAjB,OAA6C,WAAV,SAAS;AACT,UAA3C,AAAkB,6BAAI,oBAAoB;AAC1C,0BAAe,WAAV,SAAS,8BACA,WAAV,SAAS,sCACS,WAAZ,WAAN;AACkC,YAApC,AAAqB,oBAAD,YAAY;AAC8B,YAAzB,WAAnB,WAAZ,WAAN,yDAAyC,oBAAoB;;;;IAIrE;;;IAxUQ;IACD;IACoB;IACvB;IACA;IACC;IACA;IACA,wBAAmB;IACL;IACd;;EAVS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA+UA;;;;;;UAGY;;AACS,kEACV,WAAb,WAAN;AACe,0BAAwB;AAC9B,wCAAe,WAAN;AAClB,wBAAc;AAC8C,MAA7C,UAAb,WAAN,oDAA2C,+BAAmB;AAC9D,UAAI,AAAO,MAAD,sBAAsB;AAC9B,iBAAS,IAAI,GAAG,AAAE,CAAD,gCAAyC,WAApB,WAAZ,WAAN,+DAA8C,IAAA,AAAC,CAAA;AACrC,wEACa,WAAnB,WAAZ,WAAN,2DAAsC,CAAC;AAC3C,wBAAwB,YAApB,AAAO,MAAD,eAAwC,sCAC5C,AAAoB,mBAAD,YACnB;AAKc,YAJlB,AAAc,aAAD,OAAK,qCACP,CAAC,YACE,AAAoB,mBAAD,eACvB,AAAoB,mBAAD,cAClB;;;;AAIf,iBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAkB,iBAAD,YAAS,IAAA,AAAC,CAAA;AAClB,oCAAsB,AAAiB,iBAAA,QAAC,CAAC;AACpE,wBAAwB,YAApB,AAAO,MAAD,eAAwC,sCAC5C,AAAoB,mBAAD,YACnB;AAEwD,YAD5D,AAAc,aAAD,OAAK,qCACP,CAAC,QAAQ,AAAoB,mBAAD,cAAc;;;;AAKhD,4BACP,AAAO,AAAM,AAAa,MAApB,eAAe,QAAQ,AAAO,AAAM,AAAK,MAAZ;AAEvC,UAAI,eAAe;AAQX,QAPN,cAMgB,aANF,AAML,oBALG,AAAO,AAAM,MAAP,cACiB,KAAvB,AAAO,AAAM,MAAP,wBAAO,OACT,sDAEsC,WAAZ,WAAZ,WAAN,gFAEpB;;AAEN,YAAO,kBAAW,aAAa,EAAE,eAAe,EAAE,WAAW;IAC/D;iBAGiB,eAAoB,iBAAqB;;AACjD;AACM,wCAAe,WAAN;AACT,4CAA6C,WAAX,WAAb,WAAN;AAC5B,qBAAuB,WAAb,WAAN;AAYqE,QAXvE,SAAS,+CACG,eAAe,IACY,CAAf,aAAb,YAAY,iBAAG,WAAW,aAC3B,YAAY,SACX,yEAEqB,YAApB,AAAO,MAAD,gBAAuC,2CAClC,4BACA,oCACY,YAApB,AAAO,MAAD,gBAAuC,2CAC9C,+BAAqB,uCAAsB,aAAa,8DACxD,+BAAqB,qCAAoB,aAAa;YAC/D,KAAwB,YAApB,AAAO,MAAD,eAAwC;AAYR,QAX/C,SAAS,+CACG,eAAe,IACY,CAAf,aAAb,YAAY,iBAAG,WAAW,aAC3B,YAAY,SACX,yEAEqB,YAApB,AAAO,MAAD,gBAAuC,2CAClC,8BACA,kCACY,YAApB,AAAO,MAAD,gBAAuC,2CAC9C,6BAAc,aAAa,8DAC3B,gCAAiB,aAAa;YACvC,KAAwB,YAApB,AAAO,MAAD,eAAwC;AAOb,QAN1C,SAAS,+CACG,eAAe,IACY,CAAf,aAAb,YAAY,iBAAG,WAAW,aAC3B,YAAY,SACS,YAApB,AAAO,MAAD,gBAAuC,2CAC9C,6BAAc,aAAa,8DAC3B,gCAAiB,aAAa;;AAWP,QATjC,SAAS,+CACG,eAAe,IACY,CAAf,aAAb,YAAY,iBAAG,WAAW,aAC3B,YAAY,4BACmB,WAAX,WAAb,WAAN,4DACA,+BAC4B,YAApB,AAAO,MAAD,gBAAuC,2CAC7C,8BACA,qCACD,aAAa;;AAEjC,oBAAI,eAAe;AACI,yBAAa,AAAO,AAAM,MAAP;AAC5B,qCAA2C,KAAN,WAAV,WAAN,WAAP,WAAN,+DAA6B,OACf,WAAZ,WAAZ,WAAN;AACS,0CAAwC,WAAV,WAAN,WAAP,WAAN;AACX,4CAA0C,WAAV,WAAN,WAAP,WAAN;AACV,4CAAyC,WAAV,WAAN,WAAP,WAAN;AACX,8CAA0C,WAAV,WAAN,WAAP,WAAN;AAuBvB,QAtBP,SAAS,oCACE,yCACkC,8CACnB,sBACpB,qCACY,WAAW,aACG,YAAX,UAAU,EAAmB,gCACxB,6BACC,YAAX,UAAU,EAAmB,8BACf,iCACA,wCACb,oCACE,kBAAK,AAAO,AAAM,MAAP,wBACS,wCAChB,qCACI,KAAK,YACF,QAAQ,cACN,UAAU,aACX,SAAS,cACR,UAAU,qLAEpC,MAAM;;AAGd,YAAO,OAAM;IACf;;;QA1I6B;;;AAAvB;;EAA8B;;;;;;;;;;;;;;;ECnUtC;;;;;;;;;;;;;;;;;;;;;;;;6BAKc,OAA4B,YAAkB;AACtD,4BAAe;;uBAIP,OAA4B,YAAkB;AACtD,sBAAS;;uBAID,OAA4B,YAAkB;AACtD,sBAAS;;6BAID,OAA4B,YAAmB;AACvD,4BAAe;;mBAGK,OAA4B,YAAmB,QAC3D,OAAc,QAAa;;AACxB,uBAAa,AAAW,UAAD;AAClB,yCAAgB,WAAN,KAAK;AAC3B,mBAA6B,KAArB,AAAW,UAAD,kBAAC,OAAa,AAAO,OAAA,QAAC,AAAM,KAAD,UAAG,AAAQ,OAAD;AACQ,MAArE,QAAQ,AAAO,AAAU,MAAX,+BAA8B,KAAK,EAAE,UAAU,EAAE,KAAK;AACzD,qBAAW,AAAW,UAAD;AACnB,uBACT,kBAA0B,aAAnB,AAAO,MAAD,gBAAgC,aAAjB,AAAO,MAAD,cAAa,GAAe,aAAZ,AAAK,IAAD,WAAU;AAKnC,MAJjC,AAAW,UAAD,YAAkB,2BAAN,KAAK,IACnB,AAAW,AAAU,UAAX,cAAc,OACtB,WAAC,AAAW,AAAU,UAAX,wBACX,YAAmB,WAAlB,AAAW,UAAD,sBACf,YAAkB,WAAjB,AAAW,UAAD;AACI,gCAAY,AAAW,UAAD,aACrC,iCACa,AAAO,MAAD,gCACG,qCAEtB,iCACa,AAAO,MAAD,uBACN,AAAO,AAAU,MAAX,+BAA8B,KAAK,EAAE,UAAU,kBAC9B,WAAZ,WAAZ,WAAN,KAAK;AAWP,MATV,uBACI,KAAK,EACL,UAAU,EACV,MAAM,EACN,gBAAK,AAAO,AAAU,MAAX,yBAAuB,AAAO,AAAW,MAAZ,2BACxC,MAAM,EACN,AAAW,UAAD,WACV,KAAK,EACL,UAAU,EACV,KAAK;AAMK,MALd,iBACI,MAAM,EACN,UAAU,EACV,kBAAqB,AAAiB,aAA/B,AAAW,UAAD,oBAAM,AAAO,MAAD,YAA4B,aAAjB,AAAO,MAAD,cAAa,GAC1C,AAAK,aAAjB,AAAK,IAAD,WAAU,IAAqB,aAAhB,AAAS,QAAD,WAAU,IAC1C,SAAS;IACf;mBAE2C;AAC1B;AACf,cAAQ,KAAK;;;AAEuB,UAAhC,WAA0B;AAC1B;;;;AAEmC,UAAnC,WAA0B;AAC1B;;;;AAE+B,UAA/B,WAA0B;AAC1B;;;;AAEkC,UAAlC,WAA0B;AAC1B;;;;AAEsC,UAAtC,WAA0B;AAC1B;;;;AAE0C,UAA1C,WAA0B;AAC1B;;;;AAEwC,UAAxC,WAA0B;AAC1B;;;;AAEiC,UAAjC,WAA0B;AAC1B;;;;AAEkC,UAAlC,WAA0B;AAC1B;;;;AAEA;;;AAEJ,YAAO,SAAQ;IACjB;uBAGQ,OACG,UACA,QACF,MACE,QACQ,UACT,OACe,qBACb;;AACC,iBAAO;AACG,2BAAiB,QAAQ;AAChC,kBAAsB;AACwB,MAA5D,WAAW,yBAAmB,QAAQ,EAAE,mBAAmB;AAC9C,kBAAmD,AAC1B,YADW,WAA3B,AAAoB,mBAAD,4BACd,sCACqB,YAAZ,WAA3B,AAAoB,mBAAD,wBAAuB,WACA,YAAZ,WAA3B,AAAoB,mBAAD,wBAAuB,0BACH,WAAZ,WAA3B,AAAoB,mBAAD,qCAA6B,oBAC3C,aAAX,AAAK,IAAD,UAAS,MACb,AAAK,IAAD;AACG,mBAAoD,AAC3B,YADY,WAA3B,AAAoB,mBAAD,4BACf,sCACqB,YAAZ,WAA3B,AAAoB,mBAAD,wBAAuB,WACA,YAAZ,WAA3B,AAAoB,mBAAD,wBAAuB,0BACH,WAAZ,WAA3B,AAAoB,mBAAD,qCAA6B,oBAC1C,aAAZ,AAAK,IAAD,WAAU,MACd,AAAK,IAAD;AAEoC,MAD9C,QAAQ,uBAAiB,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EACnE,AAAoB,mBAAD,SAAS,KAAK,EAAE,MAAM;AAC7C,UAAI,KAAK,IAAI;AACC,8BAAY,gBACpB,WAAQ,WAAC,AAAoB,mBAAD,aACjB,YAAN,KAAK,EAAW,8BACb,KAAK,GACL,AAAM,KAAD,aAAa,AAAO,MAAD,6BAEhC,iBAAqC,aAAvB,AAAO,MAAD,oBAAmB,IACnC,AAAO,MAAD,mBAEmD,WADjB,WAAZ,WAA3B,AAAoB,mBAAD,qCAA6B,aACJ,YAAZ,WAA3B,AAAoB,mBAAD,wBAAuB,aACd,8BAA3B,AAAoB,mBAAD,uBACW,WAA3B,AAAoB,mBAAD,0BACzB,MACA,KACR,WAAkB,YAAT,QAAQ,EAAmB,oCAChC,KAAK,GACK,AAAiC,YAA1C,QAAQ,EAAmB,yCACb,YAAT,QAAQ,EAAmB,sCACf,0BACA;AACb,6CAAyC,WAA3B,AAAoB,mBAAD;AAC9C,YAAoB,YAAf,cAAc,EAAmB,sCAC7B,AAAY,WAAD,KAAI,UACZ,AAAY,WAAD,KAAI,cACf,AAAY,WAAD,YAAU,mBACnB,YAAT,QAAQ,EAAmB,sCACvB,AAAY,WAAD,KAAI,eAAe,AAAY,WAAD,KAAI;AAEO,UAD3D,gBAAU,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,KAAK,EAC9D,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI;;AAsBlC,UApBmB,AAEoB,YAFnC,WAA3B,AAAoB,mBAAD,4BACO,sCAClB,AAAY,WAAD,KAAI,YAAY,AAAY,WAAD,KAAI,4BACP,WAAT,WAA3B,AAAoB,mBAAD,gCAAkB,KAAM,KAC7C,AAAO,MAAD,UACJ,QACM,iBAAU,IAAI,cAER,0CAAsC,sBAAC,KAAG,WAChD,IAAI,EACV,SAAS,IACX,AAAO,MAAD,UACJ,IAAI,EACwB,AACU,0BADrC,AAAoB,mBAAD,uBACX,AAAoB,mBAAD,cACO,WAA3B,AAAoB,mBAAD,wBAAoB,OACzC,+DAC6B,WAA3B,AAAoB,mBAAD,uBACnB,AAAK,IAAD,+BACE,WAAN,KAAK,4BACP,SAAS;;;AAGd,4BAAkB,AAAO,AAAU,MAAX,qCACjC,KAAK,EAAE,mBAAmB,EAAE,AAAO,MAAD;AACtC,UAAI,eAAe,IAAI,QAAwB,aAAhB,eAAe,IAAG;AACnC,iCAAc,gBACtB,YAAQ,WAAC,AAAoB,mBAAD,aACxB,AAAO,AAAU,MAAX,qCACJ,KAAK,EACL,mBAAmB,EACnB,AAAO,AAAgB,MAAjB,6BAA6B,AAAO,MAAD,8BAE/C,kBAAc,eAAe,EAC7B,YAAsB;AACQ,QAAlC,AAAO,MAAD,UAAU,IAAI,EAAE,WAAW;;IAErC;yBAGmB,UAA+B;AAChD,UAA+B,8BAA3B,AAAoB,mBAAD,uBACQ,WAA3B,AAAoB,mBAAD;AACrB,cAAiD,aAAf,WAA3B,AAAoB,mBAAD,4BACH,oCACF,uCACf,QAAQ;;AAEd,cAA8C,aAAZ,WAA3B,AAAoB,mBAAD,wBAAuB,aACjC,aAAT,QAAQ,EAAmB,oCACxB,QAAQ,GACR,gDAAuD,WAAf,WAA3B,AAAoB,mBAAD,yCAC1B,AAKgD,YALzD,QAAQ,EAAmB,sCACkB,YAAZ,WAA3B,AAAoB,mBAAD,wBAAuB,WACA,YAAZ,WAA3B,AAAoB,mBAAD,wBAAuB,0BAErC,WADsB,WAA3B,AAAoB,mBAAD,qCACL,gCACwB,WAAf,WAA3B,AAAoB,mBAAD,0DACuB,WAAf,WAA3B,AAAoB,mBAAD,sCACA,+BACrB,gDAAuD,WAAf,WAA3B,AAAoB,mBAAD,yCAChC,QAAQ;;IAEtB;uBAGmB,UACD,OACT,MACE,UACA,OACA,QACC,QACA,OACD;AACI,cAAI,AAAS,QAAD;AACZ,cAAI,AAAS,QAAD;AACzB,cAAQ,QAAQ;;;AAGsC,UADlD,QAAQ,8BACJ,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,qBAAS,WAAP,MAAM;AACrC;;;;AAEuD,UAAtC,oCAAY,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM;AACtD;;;;AAG0D,UAAzC,uCAAe,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM;AACzD;;;;;AAGE,qBAAK,iBAAwB,QAAsB;AACtC,yBACF,qBAAW,aAAF,CAAC,IAAS,aAAN,KAAK,IAAG,GAAK,aAAF,CAAC,IAAU,aAAP,MAAM,IAAG,GAAG,KAAK,EAAE,MAAM;AAEC,cAD/D,qCACY,MAAM,QAAQ,IAAI,SAAS,KAAK,OAAc;;;AAG5D,gBAAiB,WAAP,WAAN,KAAK,yBAAiB,QACJ,WAAZ,WAAN,KAAK,qCAAiC;AACoB,cAA5D,AAAgB,gBAAA,CAAC,MAAM,kBAAoB,WAAZ,WAAN,KAAK;kBACzB,KAAuB,YAAZ,WAAP,MAAM,iBAAgB,cACD,YAAN,WAAf,WAAP,MAAM,+BAAwC,gCACxB,WAAf,WAAP,MAAM,gCAA0B;AACoB,cAAtD,AAAgB,gBAAA,CAAC,MAAM,kBAAwB,WAAf,WAAP,MAAM;;AAEjC;;;;;AAGuD,UAAxC,sCAAc,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM;AACxD;;;;AAG6D,UAA5C,0CAAkB,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM;AAC5D;;;;AAGiE,UAAhD,8CAAsB,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM;AAChE;;;;AAG+D,UAA9C,4CAAoB,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM;AAC9D;;;;AAGwD,UAAvC,qCAAa,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM;AACvD;;;;AAGyD,UAAxC,sCAAc,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM;AACxD;;;AAEJ,YAAO,MAAK;IACd;gBAGmB,UACX,OACG,YACc,qBACb,OACD,OACA,QACA,UACF,MACE,QACD,WACD;;AACP,UAAI,AAAW,UAAD,YAAU;AACtB,yBAAI,QAAQ,EAAmB;AACG,UAAhC,AAAO,MAAD,UAAU,IAAI,EAAE,SAAS;;AAEtB,uBAAW;AACsC,QAA5D,AAAS,QAAD,QAAoB,aAAZ,AAAS,QAAD,OAAiB,aAAX,AAAK,IAAD,UAAS,KAAK,AAAS,QAAD;AACI,QAA5D,AAAS,QAAD,QAAoB,aAAZ,AAAS,QAAD,OAAiB,aAAX,AAAK,IAAD,UAAS,KAAK,AAAS,QAAD;AAC5C,2BAAS,gBACjB,WAAQ,AAAU,AAAM,SAAP,sCAAgC,WAAP,WAAN,KAAK,2BACzC,WAAsB,0CACtB,8BAC+B,WAAhB,WAAP,WAAN,KAAK,uCAA0B,OAAiB,WAAP,WAAN,KAAK,kCAA0B;AAQjC,QAPC,aAAJ,WAAT,WAA3B,AAAoB,mBAAD,gCAAkB,KAAM,KACrC,AAAO,MAAD,UACJ,QACM,iBAAU,QAAQ,cACL,0CAAsC,sBAAC,KAAG,WACvD,QAAQ,EACd,MAAM,IACR,AAAO,MAAD,UAAU,QAAQ,EAAE,MAAM;YACjC,KAAI,AAAW,UAAD,KAAI;AACb,qBAA0B,CAAV,aAAN,KAAK,iBAAG,MAAM,KAAI;AAaxB,QAZd,iBACI,MAAM,EACN,6BAAqB,AAAI,yBAAC,MAAM,AAAU,SAAD,cAC9B,AAAI,AAAM,yBAAL,iBAAiB,OACjC,mBACK,AAAO,AAAK,MAAN,GAAG,IAAK,GACf,AAAO,MAAD,GAAG,GACT,kBAAO,AAAS,QAAD,KAAK,AAAS,QAAD,MAC5B,GACA,AAAI,MAAE,MACN,AAAI,MAAE,oCACN,KAAK,GACL;AAEJ,qCAAiE,WAAN,WAAF,WAAR,WAAb,WAA3B,AAAoB,mBAAD,kCAAsB,KAAK,6BACd,MAAb,WAA3B,AAAoB,mBAAD,iCAAQ,OACG,WAA3B,AAAoB,mBAAD;AACuB,QAAlD,SAAmC,aAAlB,aAAP,MAAM,IAAG,IAAI,IAAI,MAAM,KAAK,AAAI,MAAE;AAClC,4BAAgC,mBAAE,MAAM;AAapC,QAZd,iBACI,MAAM,EACN,6BACI,AAAU,SAAD,QAAQ,AAAU,SAAD,cAAqB,6BACnD,mBACK,AAAO,AAAK,MAAN,GAAG,IAAK,GACf,AAAO,MAAD,GAAG,GACT,kBAAO,AAAS,QAAD,KAAK,AAAS,QAAD,WAE5B,aAAa,EACb,MAAM,gCACN,KAAK,GACL;;AAEE,qBAA0B,CAAV,aAAN,KAAK,iBAAG,MAAM,KAAI;AAMJ,QALlC,iBACI,MAAM,EACN,6BAAc,AAAU,SAAD,QAAQ,AAAU,SAAD,cAC7B,AAAI,AAAM,yBAAL,iBAAiB,OACjC,mBAAY,AAAO,MAAD,GAAG,GAAG,AAAO,MAAD,GAAG,GAAG,kBAAO,AAAS,QAAD,KAAK,AAAS,QAAD,MAC5D,GAAG,KAAK,mCAAK,KAAK,GAAE;AAad,QAZd,iBACI,MAAM,EACN,6BAAc,AAAU,SAAD,QAAQ,AAAU,SAAD,cAC7B,AAAI,AAAM,yBAAL,iBAAiB,OACjC,mBACI,AAAO,MAAD,GAAG,GACT,AAAO,MAAD,GAAG,GACT,kBAAmB,aAAZ,AAAS,QAAD,OAAM,GAAe,aAAZ,AAAS,QAAD,OAAM,IACtC,CAAC,GACD,CAAC,IACD,CAAC,kCACD,KAAK,GACL;;IAEZ;;;;EACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAKY;;;;;;IAEC;;;;;;IAEG;;;;;;IAED;;;;;;UAGa;AACnB;AACL,UAAiB,WAAP,WAAN,+CAAkC;AACR,wEACa,WAAnB,WAAZ,WAAN,2DAAsC;AAIwB,mBAHlE,iBAAiB,2BAAN,cAC2C,WAApC,WAAN,WAAN,gCAAa,AAAsB,qBAAD,4BAEiB,WAAnC,WAAb,WAD6B,WAAb,WAAb,WAAN,sDAAiC,AAAsB,qBAAD,yCACrC,AAAsB,qBAAD;;AAE9C,YAAO,sCACK,AAAK,yBAIT,mBAH6B,AAAkC,YAA/C,WAAP,WAAN,sCAAmD,2CACvB,YAAb,WAAP,WAAN,wCAAoD,yCACvB,YAAb,WAAP,WAAN,wCAAoD,uCAC5B,WAAX,WAAb,WAAN,qDACA,AAAK,yBACJ,+BACI,mDACM,QAAc;AACrB,kBAAU,2BAAN;AAC6B,gBAA/B;;AAE8B,gBAA9B;;6CAGG,AAAS,iBAAG,OACb,WAAC,QAAQ,IACL,8BAAe,wBAAmB,iEAClC,gBACJ,oCACW,2CACE,yBACM,uCAE8B,WAAR,WAAjB,WAAb,WADK,0DAC0B,kEAEb,WAAb,WAAN;IAC9B;;AAGgB;AAEd,UAAU,WAAN,iCAAwB;AACK,QAA/B,gBAAgB;AAChB,YAAU,0BAAN;AAC8C,UAAhD,AAAc,aAAD,UAAsB,WAAN,WAAN;;AAE0B,UAAjD,AAAc,aAAD,UAAuB,WAAP,WAAN;;AAEc,QAAvC,AAAc,aAAD;AACmB,QAAhC,AAAc,aAAD,cAAc;AACQ,QAA7B,WAAN,+BAAqB,aAAa;;AAEpC,qBAAiB,WAAP,WAAN;AACF,YAAiB,WAAP,WAAN,+CAAkC;AAEwB,UAD5D,sEACyC,WAAnB,WAAZ,WAAN,2DAAsC,eAAQ,YAAO;;AAEa,UAAtE,6DAAuD,WAAjB,WAAb,WAAN,0DAAqC,eAAQ;;AAEzB,QAAvB,UAAZ,WAAN,4CAAqC;AACV,QAAT,WAAZ,WAAN;;IAEJ;;AAGgB;AACQ;AACD;AACrB,UAAU,WAAN,iCAAwB;AACK,QAA/B,gBAAgB;AAChB,YAAiB,WAAP,WAAN,+CAAkC;AACgC,kCAApE,oCAA6D,WAAnB,WAAZ,WAAN,2DAAsC;AACD,UAA7D,AAAc,aAAD,eAAe,AAAsB,qBAAD;AAEsB,UADvE,AAAc,aAAD,UACuB,WAAb,WAAb,WAAN,sDAAiC,AAAsB,qBAAD;;AAEQ,iCAAlE,mCAA2D,WAAjB,WAAb,WAAN,0DAAqC;AACA,UAA5D,AAAc,aAAD,eAAe,AAAqB,oBAAD;AACE,UAAlD,AAAc,aAAD,UAAU,AAAqB,oBAAD;;AAEV,QAA7B,WAAN,+BAAqB,aAAa;;AAEpC,qBAAiB,WAAP,WAAN;AACF,YAAiB,WAAP,WAAN,+CAAkC;AAEwB,UAD5D,sEACyC,WAAnB,WAAZ,WAAN,2DAAsC,eAAQ,YAAO;;AAGF,UADvD,sEACwC,WAAjB,WAAb,WAAN,0DAAqC,eAAQ;;AAEV,QAAvB,UAAZ,WAAN,4CAAqC;AACG,QAAtB,UAAZ,WAAN,2CAAoC;AACT,QAAT,WAAZ,WAAN;;IAEJ;;;QA3G0B;QAAY;QAAW;QAAY;;IAAnC;IAAY;IAAW;IAAY;AAAvD;;EAAiE;;;;;;;;;;;;;;;;;UAoHrD,QAAa;;AAChB,wCAAe,WAAN;AACtB,UAAI,AAAO,MAAD,oBAAoB;AAMO,QALnC,AAAO,MAAD,UACG,qBAAS,KAAG,KAAG,AAAK,IAAD,QAAQ,AAAK,IAAD,gBACpC,2BACI,iBAA+B,KAAvB,AAAO,MAAD,wBAAC,OACiB,WAAZ,WAAZ,WAAN,yEACF,WAAsB;;AAEhC,UAAI,AAAO,MAAD,gBAAgB,QAA2B,aAAnB,AAAO,MAAD,gBAAe;AAMhB,QALrC,AAAO,MAAD,UACG,qBAAS,KAAG,KAAG,AAAK,IAAD,QAAQ,AAAK,IAAD,iBACpC,gBACI,YAAQ,AAAO,MAAD,cACd,kBAAc,AAAO,MAAD,cACpB,YAAsB;;IAElC;;wCAGiC;AAAgB;IAAI;;;QA1BtB;;AAA/B;;EAAsC;;;;;;;;;;;;;UA4CpB,QAAa;AAChB,wCAAe,WAAN;AACK,mEACa,WAAjB,WAAb,WAAN,0DAAqC;AAEyB,MADlE,AAAO,AAAU,MAAX,2BACF,kBAAa,mBAAmB,EAAE,MAAM,EAAE,YAAO,MAAM,EAAE,IAAI;IACnE;;wCAGuC;AAAgB;IAAI;;;QAtBjD;QACD;QACA;QACc;IAHb;IACD;IACA;AAEH,kEAAe,QAAQ;;EAAC;;;;;;;;;;;;;;;;QAuBpB;QACD;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;IAYJ;IAcA,gBAAW;IApCN;IACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAAQ;;;;;;;;;;;;;;;;;;;;;;E3ItGnB;;;;;;EASA;;;;;A4IvdyC;IAAsB;;;QAbnD;QACD;QACA;QACA;QACA;;IAMJ;IAVK;IACD;IACA;IACA;IACA;AALT;;EAKgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBkC,MAAhD,8BAA8C;AAC7B,MAAX;IACR;;AAIE,oBAAI,AAAuB;AACzB,iBAAS,QAAQ,GAAG,AAAM,KAAD,gBAAG,AAAuB,uCAAQ,QAAA,AAAK,KAAA;AACvB,UAAvC,AAAsB,AAAQ,mCAAP,KAAK;;AAEA,QAA9B,AAAuB;;AAEV,MAAT;IACR;;AAGkB,2CAAY,AAAO,AAAS,AAAQ;AACf,MAArC,AAAO,AAAS,4BAAO,AAAU,SAAD;AAG9B,MAFF,cAAS;AAC4B,QAAnC,AAAO,AAAS,mCAAc;;IAElC;UAG0B;AACjB;AACY,4BAA0B;AAC7C,oBAAI,AAAO,AAAS;AACkD,QAApE,gBAAgB,gCAAiB,YAAY,AAAO,AAAS;AAC5B,QAAjC,AAAO,AAAS,+BAAU,OAAO;AAE6B,QAD7C,AACZ,uDAAqB,QAAC,KAAM;;AAE7B;AAAW;AACU,2BAAe,AAAO;AAMT,QALtC,YAAqC,aAAzB,AAAa,AAAS,YAAV,6BACc,YAAjC,AAAa,YAAD,sBAAuC,8BAC9C,IACiC,YAAjC,AAAa,YAAD,sBAAuC,gCACvB,aAAxB,AAAa,AAAK,YAAN,eAAc,IAC1B,AAAa,AAAK,YAAN;AAMa,QALvC,YAAqC,aAAzB,AAAa,AAAS,YAAV,6BACY,YAA/B,AAAa,YAAD,oBAAqC,8BAC5C,IAC+B,YAA/B,AAAa,YAAD,oBAAqC,gCACpB,aAAzB,AAAa,AAAK,YAAN,gBAAe,IAC3B,AAAa,AAAK,YAAN;AACf,mBAAY,qBAAS,SAAS,EAAE,SAAS,EAChD,AAAa,AAAK,YAAN,aAAa,AAAa,AAAK,YAAN;AAC9B,wBAAa,AAAa,AAAa,YAAd,kBAAiB,cAC/C,kBAAW,IAAI,sBAA2B,WAAZ,WAAb,AAAO,iEACxB;AACN,uBAAK,SAAS,eAAI,8BAAwB,AAAa,YAAD,WAAW,IAAI;AACtD,6BAAe,+BAAwB,sBAClD,gCACQ,SAAS,OACV,SAAS,SACP,AAAa,YAAD;AAKmC,UAFzD,AAAa,AAAa,YAAd,kBAAiB,cAC0B,WAAzB,WAAZ,WAAb,AAAO,sEAA+C,IAAI,KACf,WAAlB,WAAZ,WAAb,AAAO,+DAAwC,IAAI;AAEzD,cAAmC,aAA/B,AAAa,YAAD,sBAAqB;AAInB,YAHhB,2BAAsB,4DAEd,qCAAuB,AAAO,AAAS,iDACpC;AAGgD,YAF3D,iBAAY,AAAoC,kCAAf,UAAU,cACvC,4CACY,iCAAmC;AACb,YAAtC,AAAoB,wCAAc;AACa,YAA/C,AAAuB,kCAAI;AAOpB,YANP,AAAgB,eAAD,OAAK,gDACL,iCACJ,YAAY,WACV,SAAc,SAAgB;AACxB,4BAAQ,AAAoB;AACzC,sBAAO,iCAAuB,aAAN,KAAK,IAAG,YAAY,OAAO;;;AAGxB,YAAjC,AAAgB,eAAD,OAAK,YAAY;;;AAG8B,QAAlE,gBAAgB,oCAAiB,+BAAgB,eAAe;;AAElE,YAAO,cAAa;IACtB;8BAEkC,QAAa;AAC3C,YAAkB,AAEa,cAF/B,AAAa,YAAD,uBAAS,AAAO,MAAD,UACT,AAAqB,aAAvC,AAAa,YAAD,sBAAQ,AAAa,YAAD,WAAsB,aAAZ,AAAO,MAAD,sBAAQ,AAAO,MAAD,WAC7C,aAAjB,AAAa,YAAD,sBAAQ,AAAO,MAAD,SACT,AAAsB,aAAvC,AAAa,YAAD,qBAAO,AAAa,YAAD,YAAsB,aAAX,AAAO,MAAD,qBAAO,AAAO,MAAD;IAAO;;;IAnG9C;IACN;IACF;;;EAkGpB;;;;;;;;;;;;;;;;;AAgByC;IAAqB;;;QAXvC;QAAgB;QAAa;;IAI7C,cAAS;IAIM;IARC;IAAgB;IAAa;AAAlD;;EAAyD;;;;;;;;;;;;;;;;;;;;;;;;;;AAiBpC,MAAnB,AAAO,oBAAQ;AACE,MAAX;IACR;;AAIiB,MAAT;IACR;;AAKI,MAFF,cAAS;AACa,QAApB,AAAO,qBAAS;;IAEpB;UAG0B;AACjB,2BAAiB;AACxB,qBAA6B,WAAZ,WAAb,AAAO,mEACP,AAAO,AAAU;AACA,4BAAwB;AAC3C,iBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,AAAU,iCAAQ,IAAA,AAAC,CAAA;AAM1C,UALF,AAAc,aAAD,OAAK,0CACN,AAAO,AAAS,6BAAC,CAAC,kBACb,CAAC,kBACA,AAAO,AAAU,uCAC1B,AAAO;;AAG6B,QAA/C,iBAAiB,+BAAgB,aAAa;;AAEhD,YAAO,eAAc;IACvB;;;;;EACF;;;;;;;;;;;QAIY;QACD;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACU;QACA;IAKd;IACG;IAEK;IAlBH;IACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAGiB,4BAAsB,KAApB,mBAAmB,QAAnB,OAAsC;IAC1C,0BAAoB,MAAlB,iBAAiB,SAAjB,OAAoC;;EAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IC1JzD;;;;;;IAkBC;;;;;;IAiBA;;;;;;IAmBC;;;;;;IAkBD;;;;;;IAkBA;;;;;;IAkBC;;;;;;IAoBA;;;;;;IAoBA;;;;;;IAES;;;;;;mBAIE,YAAgB,aACjB,sBAAoB;;AACvC;iCAAoB,kBAChB,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW;IAAC;0BAEM;AAC7C,0BAA8B;AACjC,2BAAsB;AAE2B,MADjE,gBACI,AAAQ,AAAkB,AAAmB,OAAtC;AACX,eAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAc,aAAD,YAAS,IAAA,AAAC,CAAA;AACe,QAAxD,AAAe,cAAD,OAAK,AAAa,AAAI,aAAJ,QAAC,CAAC;;AAEpC,YAAO,eAAc;IACvB;;AAGO,qBAAW;AAChB,qBAAgD,WAAlB,WAA1B,AAAmB,qEACnB,4BAAuB,MACzB,AAAoB,AA8BlB,qCA9B8B;;AACoC,QAA7B,UAAZ,WAAzB,AAAmB,wEAA2C;AACnB,QAA3C,AAAmB,AAAiB;AACS,QAA7C,AAAmB,AAAmB;AACxB,oBACoC,WAApB,WAAlB,WADU,AACjB;AACS,kBACsD,WAApB,WAAlB,WAA1B,AAAmB;AACvB,iBAAS,IAAI,GAAG,AAAE,CAAD,gCAAyC,WAAZ,WAA1B,AAAmB,6DAA2B,IAAA,AAAC,CAAA;AAOF,UAN/D,WAAiB,iBAAN,KAAK,IAEyB,WADc,WAAP,WAAJ,WAAX,WAA1B,AAAmB,yDAAmB,CAAC,sBAClC,AAAM,KAAD,yCACuC,WAAP,WAAJ,WAAX,WAA1B,AAAmB,yDAAmB,CAAC,sBAC/B,WAAJ,GAAG,iCACiD,WAAT,WAAP,WAAJ,WAAX,WAA1B,AAAmB,yDAAmB,CAAC,sBAAY,KAAK,kBACP,WAAP,WAAJ,WAAX,WAA1B,AAAmB,yDAAmB,CAAC,sBAAY,GAAG;AAMX,UAJnD,QAAQ,GACF,AAAmB,AAChB,2EAAsC,WAAR,WAA1B,AAAmB,uDAAgB,CAAC,OAC3C,AAAmB,AAChB,6EAAsC,WAAR,WAA1B,AAAmB,uDAAgB,CAAC;;AAGc,QADjE,AACK,kDAAwB,AAAmB;AAEqB,QADrE,AACK,oDAA0B,AAAmB;AAGqB,QADvE,gDACoE,KAA3B,WAAZ,WAAzB,AAAmB,sGAAwC,4CAAK;;AAExE,qBAAyC,WAAZ,WAAzB,AAAmB,iEACgB,AAA8B,UAA1C,WAAzB,AAAmB,wEAA2C;IAClE;8BAM0C,QAAkB;;AACxD;iCAAoB,0BAAuB,MAAM,EAAE,YAAY;IAAC;wBAIpC,OAAW,aAAiB,YACjC;AACvB,kBAAK;;0BAIyB,OAAW,aAAiB,YACnC;AACvB,kBAAK;;0BAIyB,OAAW,aAAiB,YACnC;AACvB,kBAAK;;4BAI2B,OAAW,aAAiB,YACrC;AACvB,kBAAK;;gCAI+B,OAAW,aACvC,YAA0B;AAClC,kBAAK;;kCAIiC,OAAW,aACzC,YAA0B;AAClC,kBAAK;;kCAIiC,OAAW,aACzC,YAA0B;AAClC,kBAAK;;oCAImC,OAAW,aAC3C,YAA0B;AAClC,kBAAK;;gBAIe,MAAa;AACjC,YAAA,AAAmB,2CAAiB,kBAAO,IAAI,EAAE,IAAI;IAAE;gBAInC,MAAa;AACjC,YAAA,AAAmB,2CAAiB,kBAAO,IAAI,EAAE,IAAI;IAAE;gBAInC,MAAa;AACjC,YAAA,AAAmB,2CAAiB,kBAAO,IAAI,EAAE,IAAI;IAAE;;;;QAvTjD;QACD;QACA;QACA;QACA;QACA;QACA;QACE;QACA;QACF;IAiLU;IAzLV;IACA;IACA;IACA;IACA;IACA;IAGA;IACI,kBAAS,KAAP,MAAM,QAAN,OAAU;IACH,0BAAkB,MAAhB,eAAe,SAAf,OAAmB;IACnB,4BAAoB,OAAlB,iBAAiB,UAAjB,OAAqB;;EAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICoCvC;;;;;;IAcC;;;;;;IAYC;;;;;;IAgBA;;;;;;IAcQ;;;;;;IAeX;;;;;;IAmBG;;;;;;IAcH;;;;;;IAcC;;;;;;IAoBU;;;;;;IAcT;;;;;;IAkBC;;;;;;IA6BqB;;;;;;IAgBtB;;;;;;IAcC;;;;;;IAgBF;;;;;;IAcE;;;;;;IAYQ;;;;;;IAeC;;;;;;IAeX;;;;;;IAEW;;;;;;gBAcE,GAAU;;AAElB,wDAAQ,OAAc;AAC/B;AACL,UAAU,2BAAN,KAAK;AACP,iBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAM,AAAa,AAAc,KAA5B,wCAAoC,IAAA,AAAC,CAAA;AAC9C,uBAAS,AAAM,AAAa,AAAa,KAA3B,oCAA4B,CAAC;AACzD,yBAAW,WAAP,MAAM,2BACC,WAAP,MAAM,uBACC,WAAP,MAAM,oBAAkB;AACb,0BAA8B,AAEG,YAFf,WAAP,MAAM,iBAAgB,aACnB,YAAZ,WAAP,MAAM,iBAAgB,yBACH,WAAZ,WAAP,MAAM,8BAAsB,0BACT,WAAZ,WAAP,MAAM,8BAAsB,WAC9B,gBACA,AAAM,AAAgB,KAAjB,iCACD,MACA;AAWR,YAVmB,WAAd,WAAP,MAAM,8BAAuB,SAAS,YAAoB;AAC7C,4CAAmB,WAAV,UAAU,WAAC;AACpB,mCAAoB,qBACf,aAAZ,AAAO,MAAD,SAAQ,OAAO,EACV,aAAX,AAAO,MAAD,QAAO,OAAO,EACP,aAAb,AAAO,MAAD,UAAS,OAAO,EACR,aAAd,AAAO,MAAD,WAAU,OAAO;AAC3B,8BAAI,AAAa,YAAD,UAAU,kBAAO,CAAC,EAAE,CAAC;AACT,kBAA1B,sBAAsB;;;;;;AAMhC,UAAI,qBAAgB,qBAChB,qBAAiC,+BACjC,CAAC,IAAI,QACL,CAAC,IAAI;AACP,aAAY,2BAAN,KAAK,eACP,oCACqB,MAApB,mBAAmB,SAAnB,OAAuB;AACa,2DAAvC,OAAc;yBAAd,OAAqB,oBAAc;AACI,2DAAvC,OAAc;yBAAd,OAAqB,mBAAa,CAAC,EAAE,CAAC;cACjC,KAA6C,WAAhB,WAAzB,AAAa,gEAAwC;AAC9B,2DAAhC,OAAc;yBAAd,OAAqB,YAAO;AACY,2DAAxC,OAAc;yBAAd,OAAqB,oBAAc;AAEsB,UADP,WAAT,WAAhB,WAAzB,AAAa,sFACT,kBAAO,CAAC,EAAE,CAAC,GAAS,WAAN,KAAK,mBAAqB,WAAN,KAAK;;;AAG/C,kBAAI,KAAK,iBAAL,OAAO,wCAAmB,MACN,AAAsB,UAAtC,WAAN,KAAK,sCAAkC;IAC3C;SAakB,GAAU,GAAW,kBAAkB;;AAChC,iDAAQ,AAAa;AACvC,gCAAsB;AACjB;AAAO;AACjB,UAAI,SAAS,IAAI,QAAQ,SAAS,IAAI;AACpC,iBAAe,OAAQ,AAAM,AAAW,MAAZ;AAC1B,cAAI,AAAK,AAAM,IAAP,YAAU,SAAS;AACb,YAAZ,QAAQ,IAAI;cACT,KAAI,AAAK,AAAM,IAAP,YAAU,SAAS;AAClB,YAAZ,QAAQ,IAAI;;;;AAIU,QAA1B,QAAQ,AAAM,KAAD;AACa,QAA1B,QAAQ,AAAM,KAAD;;AAEM,qBAAW,uBACd,gBAAZ,iBAAF,CAAC,IAAe,AAAE,CAAD,0BAA0B,CAAC,GAC5C,CAAC,EACD,KAAK,EACL,KAAK,EACL,AAAM,KAAD,wBACL,MACA,AAAM,AAAW,KAAZ;AACT,eAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAM,AAAa,AAAc,KAA5B,wCAAoC,IAAA,AAAC,CAAA;AAC9C,qBAAS,AAAM,AAAa,AAAa,KAA3B,oCAA4B,CAAC;AACzD,uBAAW,WAAP,MAAM,2BACC,WAAP,MAAM,uBACC,WAAP,MAAM,oBAAkB;AACb,wBAA8B,AAEG,YAFf,WAAP,MAAM,iBAAgB,aACnB,YAAZ,WAAP,MAAM,iBAAgB,yBACH,WAAZ,WAAP,MAAM,8BAAsB,0BACT,WAAZ,WAAP,MAAM,8BAAsB,WAC9B,MACA;AAUJ,UATmB,WAAd,WAAP,MAAM,8BAAuB,SAAS,YAAoB;AAC7C,0CAAmB,WAAV,UAAU,WAAC;AACpB,iCAAoB,qBACf,aAAZ,AAAO,MAAD,SAAQ,OAAO,EACV,aAAX,AAAO,MAAD,QAAO,OAAO,EACP,aAAb,AAAO,MAAD,UAAS,OAAO,EACR,aAAd,AAAO,MAAD,WAAU,OAAO;AAC3B,4BAAI,AAAa,YAAD,UAAU,kBAAO,AAAS,QAAD,IAAI,AAAS,QAAD,OACnD,AAA0B,sBAAJ;;;;AAI9B,UAAwB,KAApB,mBAAmB,SAAnB,OAAuB;AACc,uDAAvC,OAAc;uBAAd,OAAqB,oBAAc;AACsB,yDAAzD,OAAc;uBAAd,OAAqB,mBAAa,AAAS,QAAD,IAAI,AAAS,QAAD;;AAEtB,yDAAhC,OAAc;uBAAd,OAAqB,YAAO;AACY,yDAAxC,OAAc;uBAAd,OAAqB,oBAAc;AAEqC,QAAnE,WADoC,WAAhB,WAAzB,AAAa,sFACc,kBAAO,AAAS,QAAD,IAAI,AAAS,QAAD,KAAK,KAAK,EAAE,KAAK;;IAE3E;gBAOqB,aAAiB;;AAC5B;AAAG;AACX,UAA6B,2BAAzB,AAAa;AACf,sBAAI,mBAAY,UAAU,EAAE,WAAW,iCAAE,AAAa;AACZ,sDACL,WAAN,WAAzB,AAAa,mDAAmB,WAAW;AAC/C,wBAAI,AAAQ,OAAD;AACwC,YAAjD,IAAI,AAAQ,AAAW,AAAa,AAAY,OAArC,sBAAa,UAAU;AACe,YAAjD,IAAI,AAAQ,AAAW,AAAa,AAAY,OAArC,sBAAa,UAAU;;;YAGjC,KAA6B,0BAAzB,AAAa;AACI,kDACgC,WAAb,WAAd,WAAb,WAAb,WADkC,AAAa,yEACpB,WAAW,6BAAgB,UAAU;AACxD,uBAAW,sBACpB,AAAW,UAAD,WACwC,CAA1B,aAAvB,AAAW,UAAD,6BAAe,AAAW,UAAD,iBAAgB,GACpD,AAAW,UAAD;AACC,QAAf,IAAI,AAAS,QAAD;AACG,QAAf,IAAI,AAAS,QAAD;YACP,KAAI,UAAU,IAAI;AAC6C,QAA/B,UAAZ,WAAzB,AAAa,iEAA6C,UAAU;AACvD,wCAC4C,WAAP,WAAb,WAAb,WAAP,WADO,AACnB,mEAAiC,UAAU;AACjC,QAAf,IAAI,AAAS,QAAD;AACG,QAAf,IAAI,AAAS,QAAD;;AAEd,UAAI,qBAAgB,qBAChB,qBAAiC,+BACjC,CAAC,IAAI,QACL,CAAC,IAAI;AACgC,oDAAvC,OAAc;sBAAd,OAAqB,qCAAa,CAAC,sBAAE,CAAC;;IAE1C;;;AAImC,kDAAjC,OAAc;oBAAd,OAAqB,WAAO;AACqC,aAAjE;4BAAU,8DAAsB,OAAU,sBAAmB;AACT,+DAApD,OAAc,4BAAd,OAAqB;qBAArB,OAA6C,aAAK,aAAL,cAAK;AACrB,aAA7B;4BAAU,oBAAe;IAC3B;;AAG2B,YAAA,AAAS;IAAM;YAMtB;AAClB,UAAI,kBAAY;AACiB,QAA/B,AAAS,+BAAe,MAAM;;IAElC;gBAQwB,MAAa;AAAS,8BAAY,IAAI,EAAE,IAAI;IAAC;gBAS7C,MAAa;AAAS,8BAAY,IAAI,EAAE,IAAI;IAAC;gBAS7C,MAAa;AAAS,8BAAY,IAAI,EAAE,IAAI;IAAC;gBAS7C,MAAa;IAErC;cASsB,MAAa;AAAS,8BAAY,IAAI,EAAE,IAAI;IAAC;YAS/C,MAAa;AAAS,8BAAY,IAAI,EAAE,IAAI;IAAC;WAS9C,MAAa;AAAS;IAAkB;;;;QAjmBvC;QACD;QACX;QACC;QACE;QACD;QACC;QACA;QACF;QACE;QACF;QACU;QACX;QACY;QACX;QACA;QACA;QACA;QACA;QACA;IAsGO;IAgIC;IAsGK;IAGjB,uBAAiB;IAEjB;IArVI;IACA;IACA;IACA;IACA;IACe,6BAAoB,KAAlB,iBAAiB,QAAjB,OAAqB;IAC3B,wBAAgB,MAAd,aAAa,SAAb,OAAgC;IACtC,qBAAY,OAAV,SAAS,UAAT,OAAa,yCAAyB;IACnC,0BAAiB,OAAf,cAAc,UAAd,OAAiC;IACtC,wBAAc,OAAZ,WAAW,UAAX,OAAsB;IACxB,wBAAc,OAAZ,WAAW,UAAX,OAAe;IACpB,mBAAW,OAAT,QAAQ,UAAR,OAAY;IAChB,kBAAS,OAAP,MAAM,UAAN,OAAU;IACX,mBAAU,OAAR,OAAO,UAAP,OAAW;IACJ,4BAAmB,OAAjB,gBAAgB,UAAhB,OAAoB;IACzB,wBAAgB,OAAd,aAAa,UAAb,OAAiB;IACjB,0BAAkB,OAAhB,eAAe,UAAf,OAAmC;IAC3C,oBAAY,QAAV,SAAS,WAAT,OAAa;IACX,yBAAgB,QAAd,aAAa,WAAb,OAAiB;IAC1B,iBAAS,QAAP,MAAM,WAAN,OAAU;;EAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICtBhC;;+CAfK;;;;EAeL;;;;;;;;;;;;;;;;;;;;;IAMwC;;+CAAnC;;;;EAAmC;;;;;;;;;;;;;;;;;;;;IAaxC;;uDAVK;;;;EAUL;;;;;;;;;;;;;;;;;;;;IAYA;;sDATK;;;;EASL;;;;;;;;;;;;;;;;;IAiCA;;+CA9BK;;;;EA8BL;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAqBA;;wDAhBK;;;;EAgBL;;;;;;;;;;;;;;;;;;;;;IASA;;sDANK;;;;EAML;;;;;;;;;;;;;;;;;;IAWA;;4CANK;;;;EAML;;;;;;;;;;;;;;;;;;;IAYA;;+CATK;;;;EASL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICsKgB;;;;;;IACD;;;;;;IACA;;;;;;IACH;;;;;;IACA;;;;;;IACA;;;;;;IACG;;;;;;UAEa;AACU,2DACZ,WAAZ,WAAN;AAMwB,MAL5B,AAAU,SAAD,OAAK,8CACF,yBACH,0BACI,OAAO,eACH,8BACD;AAChB,YAAO,mCACE,wBACE,gCAAiB,0BAAqB;IACnD;;;QA3BU;QACD;QACA;QACA;QACA;QACA;QACA;;IANC;IACD;IACA;IACA;IACA;IACA;IACA;AAPH;;EAOS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wCxGuRV;QACmC;AAExC,QAAI,AAAO,MAAD,IAAI;AACZ,YAAO;;AAGE,eAAO;AAClB,aAAsB,cAAe,AAAO,OAAD;AAClC;AACF,iBAAO;AACZ,aAAO,AAAS,QAAD,gBAAG,AAAY,WAAD;AACd,qBAAS,AAAU,SAAD;AAC/B,YAAI,IAAI;AAEgE,UADtE,AAAK,IAAD,SACA,AAAY,WAAD,aAAa,QAAQ,EAAE,AAAS,QAAD,gBAAG,MAAM,IAAU;;AAEjD,QAAlB,WAAA,AAAS,QAAD,gBAAI,MAAM;AACN,QAAZ,OAAO,CAAC,IAAI;;;AAGhB,UAAO,KAAI;EACb;8E4C3UgE,cAC7B,QAAyB;;AACpD;AACkB,oBAAY,AAAO,MAAD;AACZ,wBACzB,AAAO,AAAY,AAAiB,MAA9B,mBAAgB,kBACW,YAAzB,AAAU,SAAD,iBAA2C,0CACxB,YAAzB,AAAU,SAAD,iBAA2C,0CAClC,sCACxB,AAAU,SAAD;AACE,oBAAY,AAAU,SAAD;AAC7B,sBAAc,AAAO,AAAY,AAGP,MAHN,mBAAgB,UACzC,AAAO,AAAY,MAAb,mBAAgB,iBACtB,AAAO,AAAY,MAAb,mBAAgB,oBACtB,AAAO,AAAY,MAAb,mBAAgB,YACtB,AAAO,AAAY,MAAb,mBAAgB,aACxB,mBACA,AAAO,MAAD,mBACF,WACA,AAAO,AAAY,AAAY,MAAzB,mBAAgB,YAAY,AAAO,AAAY,MAAb,mBAAgB,YACpD,WACA,AAAO,AAAY,MAAb,0BAAsB,UAAU,SAAS;AAC7D,kBAAI,AAAU,SAAD,oBAAmB,AAAU,SAAD,UAAU;AAES,MAD1D,SAAwB,KAAhB,AAAU,SAAD,cAAC,QACiB,KAA9B,AAAa,YAAD,yBAAC,OAAoB,AAAO,MAAD;;AAE5C,cAAQ,WAAW;;;AAGkD,UADjE,QAAQ,+BAAwB,SAAS,EACrC,AAAM,KAAD,0BAA0B,AAAM,AAAY,KAAb;AACxC;;;;AAc4D,UAZ5D,QAAuD,WAA7C,AAAa,YAAD,sCACE,YAAd,aAAa,EAA4B,sDACnC,SAAS,EAAmB,+BACjB,YAAd,aAAa,EAA4B,uCAC5B,YAAV,SAAS,EAAmB,8BACjB,YAAd,aAAa,EAA4B,yCACpC,AAAO,AAAY,MAAb,0BAAsB,UAC1B,AAAO,MAAD,mBAAgB,gBACtB,AAAO,MAAD,mBAAgB,mBACpC,+BAAwB,SAAS,EAAE,AAAM,KAAD,0BACtC,AAAM,AAAY,KAAb,8BACP,+BACE,YAAY,EAAE,MAAM,EAAE,AAAM,AAAY,KAAb;AACnC;;;;AAasC,UAXtC,QAAuB,AAKsB,YALpC,aAAa,EAA4B,0CAC5B,YAAV,SAAS,EAAmB,iCAClB,YAAd,aAAa,EAA4B,0CAC3B,YAAV,SAAS,EAAmB,8BAClB,YAAd,aAAa,EAA4B,uCAC3B,YAAV,SAAS,EAAmB,+BAClB,YAAd,aAAa,EAA4B,yCAC3B,YAAV,SAAS,EAAmB,8BAClC,+BACE,YAAY,EAAE,MAAM,EAAE,AAAM,AAAY,KAAb,8BAC7B,+BAAwB,SAAS,EAAE,AAAM,KAAD,0BACtC,AAAM,AAAY,KAAb;AACb;;;;AAQ4D,UAL5D,QAAuD,WAA7C,AAAa,YAAD,qCACe,aAA7B,AAAa,AAAc,YAAf,iCAAmB,AAAa,AAAY,YAAb,kBAC7C,+BAAwB,SAAS,EAAE,AAAM,KAAD,0BACtC,AAAM,AAAY,KAAb,8BACP,+BACE,YAAY,EAAE,MAAM,EAAE,AAAM,AAAY,KAAb;AACnC;;;;AAGoB,UAApB,QAAe;;;;AAGrB,UAAO,4BAAoB,KAAK;EAClC;4EAE+D,cAC5B,QAAyB;AACpD;AAKsC,IAJ5C,QACmB,YADX,AAAO,AAAQ,AAA2C,AACrD,MADC,iBAAU,AAAO,AAAY,MAAb,yBAAqB,YAAY,oBAEzC,yBAChB,AAAO,AAAQ,AAA2C,MAApD,iBAAU,AAAO,AAAY,MAAb,yBAAqB,YAAY;AAE7D,UAAO,4BAAoB,KAAK;EAClC;oEAGgD,WAClC,iBAAkC;AAC5C,UAAA,AAAU,AAAM,UAAP,UAAU,OACb,AAAU,SAAD,SACT,AAAgB,eAAD,IAAI,OACf,eAAe,GACE,YAAjB,AAAM,KAAD,aAA0B,yCAEpB;EAAK;oEAG6B,cACrB,QAAyB;AACvD;AACQ,oBAAY,AAAO,MAAD;AAWE,iBAVlC,gBAAuB,AAAM,WAAhB,SAAS,cAAU,OAChB,WAAV,SAAS,aACT,AAAa,AAAiB,YAAlB,qBAAqB,OAC7B,AAAa,YAAD,oBACZ,AAAO,AAAM,MAAP,UAAU,OACZ,AAAO,MAAD,SACN,AAAO,AAAa,MAAd,kBAAiB,OACnB,AAAO,MAAD,iBACW,YAAjB,AAAM,KAAD,aAA0B,yCAEpB;AAC7B,UAAO,WAAU;EACnB;0DAIW,QACwB,QACzB,WACA,aACF,QACG,iBACF,gBACD,WACC;AACI,sBACW,UADG,AAAO,AAAO,AAAY,MAApB,2CAC3B,SAAS,IAAI,QACb,cAAc,IAAI;AACX,sBAAc,AAAU,SAAD,IAAI,OAAiB,aAAV,SAAS,iBAAG,MAAM,IAAG;AACvD,mCAAiB,AAAO,AAAO,AAAY,MAApB,2CAC5B,0BAAmB,MAAM,IACzB;AACN,QAAK,AAAO,AAAY,MAAb,mBAAgB,sBAAY,AAAO,AAAO,MAAR,0BACxC,AAAO,AAAY,MAAb,mBAAgB,oBAAU,AAAO,AAAO,MAAR;AAYtB,MAXnB,oCACI,MAAM,EACN,MAAM,EACN,SAAS,EACT,WAAW,EACX,MAAM,EACN,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,cAAc;;AAaC,MAXnB,gCACI,MAAM,EACN,MAAM,EACN,SAAS,EACT,WAAW,EACX,MAAM,EACN,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,cAAc;;EAEtB;8EAGW,QACwB,QACzB,WACA,aACF,QACG,iBACF,gBACA,kBACA,aACA,aACA;;AACA,gBAAQ,AAAY,WAAD;AACb,iBAAS,AAAY,WAAD;AACpB,cAAM,AAAY,WAAD;AACvB,eAAO,AAAY,WAAD;AAAO,gBAAQ,AAAY,WAAD;AAC9C;AACL,mBAAK,AAAO,AAAO,AAAY,MAApB;AACkC,MAA3C,QAA0B,aAAlB,AAAY,WAAD,uBAAS,eAAe;AAC3C,qBAAK,AAAO,AAAO,MAAR;AACT,sBAAI,WAAW;AACb,cAAW,aAAP,MAAM,IAAG;AAKyD,YAJpE,iBAAO,WAAW,IACQ,aAApB,AAAe,cAAD,SACK,aAAhB,eAAe,KAAwB,aAApB,AAAe,cAAD,sBAAQ,AAAY,WAAD,UACnC,aAApB,AAAe,cAAD,SACK,aAAhB,eAAe,KAAqB,aAAjB,AAAY,WAAD,sBAAQ,AAAe,cAAD;AACpC,YAAzB,QAAQ,AAAY,WAAD;AACC,YAApB,QAAc,aAAN,KAAK,iBAAG,IAAI;;AAOmC,YALvD,kBAAQ,WAAW,IACQ,aAArB,AAAe,cAAD,UACK,aAAhB,eAAe,KAAsB,aAAlB,AAAY,WAAD,uBAAS,AAAe,cAAD,WACnC,aAArB,AAAe,cAAD,UACK,aAAhB,eAAe,KACU,aAArB,AAAe,cAAD,uBAAS,AAAY,WAAD;AACf,YAAhC,QAAc,aAAN,KAAK,iBAAG,AAAY,WAAD;;;AAKwB,UAFrD,QAAe,aAAP,MAAM,IAAG,IACX,AAAY,WAAD,SACQ,AAAqB,aAAvC,AAAY,WAAD,uBAAS,AAAY,WAAD,uBAAU,KAAK;;;AAGvD,sBAAI,WAAW;AACb,cAAW,aAAP,MAAM,IAAG;AAM4C,YALvD,kBAAQ,WAAW,IACQ,aAArB,AAAe,cAAD,UACK,aAAhB,eAAe,KAAsB,aAAlB,AAAY,WAAD,uBAAS,AAAe,cAAD,WACnC,aAArB,AAAe,cAAD,UACK,aAAhB,eAAe,KACU,aAArB,AAAe,cAAD,uBAAS,AAAY,WAAD;AACf,YAAhC,QAAc,aAAN,KAAK,iBAAG,AAAY,WAAD;;AAMyC,YAJpE,iBAAO,WAAW,IACQ,aAApB,AAAe,cAAD,SACK,aAAhB,eAAe,KAAwB,aAApB,AAAe,cAAD,sBAAQ,AAAY,WAAD,UACnC,aAApB,AAAe,cAAD,SACK,aAAhB,eAAe,KAAqB,aAAjB,AAAY,WAAD,sBAAQ,AAAe,cAAD;AACpC,YAAzB,QAAQ,AAAY,WAAD;AACC,YAApB,QAAc,aAAN,KAAK,iBAAG,IAAI;;;AAKC,UAFvB,QAAe,aAAP,MAAM,IAAG,IACQ,AAAqB,aAAvC,AAAY,WAAD,uBAAS,AAAY,WAAD,uBAAU,KAAK,IAC/C,AAAY,WAAD;;;AAGkC,MAAvD,OAAY,qBAAe,aAAN,KAAK,iBAAG,KAAK,GAAE,GAAG,EAAE,KAAK,EAAE,MAAM;UACjD,eAAI,AAAO,AAAO,AAAY,MAApB,4CACb,cAAc,IAAI;AAEkD,MADtE,OAAO,+CAAwC,MAAM,EAAE,WAAW,EAC9D,cAAc,EAAE,gBAAgB,EAAE,cAAc,EAAE,eAAe;;AAMzD,IAHd,AAAO,MAAD,WACI,+BACF,AAAK,IAAD,IAAI,aAAO,WAAW,eAAX,OAAa,iBAAa,IAAI,EAAE,AAAY,WAAD,YAC9D,SAAS;EACf;oGAGmC,QACzB,aACD,gBACA,kBACA,gBACE;AACL;AACG,iBAAS,AAAY,WAAD;AACpB,cAAM,AAAY,WAAD;AACjB,gBAAQ,AAAY,WAAD;AACb,gBAAQ,AAAY,WAAD;AAChC,QAAI,gBAAgB,IAAI,kBAAQ,gBAAgB;AAK0B,MAJxE,SAA+B,aAAtB,AAAe,cAAD,wBAAU,AAAY,WAAD,WAChB,aAAtB,AAAe,cAAD,WACK,aAAhB,eAAe,KAAuB,aAAnB,AAAY,WAAD,wBAAU,AAAe,cAAD,YACnC,aAAtB,AAAe,cAAD,WACK,aAAhB,eAAe,KAA0B,aAAtB,AAAe,cAAD,wBAAU,AAAY,WAAD;AAKG,MAJlE,MAAyB,aAAnB,AAAe,cAAD,qBAAO,AAAY,WAAD,QACb,aAAnB,AAAe,cAAD,QACK,aAAhB,eAAe,KAAuB,aAAnB,AAAe,cAAD,qBAAO,AAAY,WAAD,SACnC,aAAnB,AAAe,cAAD,QACK,aAAhB,eAAe,KAAoB,aAAhB,AAAY,WAAD,qBAAO,AAAe,cAAD;AACvC,MAArB,SAAgB,aAAP,MAAM,iBAAG,GAAG;;AAErB,UAAW,YAAP,MAAM,EAAI,AAAO,AAAO,AAAM,MAAd,uBAAe,kBAAO,cAAc;AAC3B,QAA3B,SAAS,AAAY,WAAD;AACiC,QAArD,MAAa,aAAP,MAAM,IAAuB,aAAnB,AAAY,WAAD,wBAAU,eAAe;AAC/B,QAArB,SAAgB,aAAP,MAAM,iBAAG,GAAG;YAChB,KAAW,YAAP,MAAM,EACT,AAAO,AAAO,AAAM,MAAd,uBAA2C,aAA5B,AAAO,AAAO,AAAO,MAAf,4BAAwB,kBACtD,cAAc;AACI,QAArB,MAAM,AAAY,WAAD;AAC4B,QAA7C,SAA4B,aAAnB,AAAY,WAAD,wBAAU,eAAe;;AAEA,QAA7C,SAA4B,aAAnB,AAAY,WAAD,wBAAU,eAAe;AACL,QAAxC,MAA4B,aAAtB,AAAY,AAAO,WAAR,cAAoB,aAAP,MAAM,IAAG;;;AAGlB,IAAzB,QAAQ,AAAY,WAAD;AACnB,UAAY,sBAAe,aAAN,KAAK,iBAAG,KAAK,GAAE,GAAG,EAAE,KAAK,EAAE,MAAM;EACxD;sEAGW,QACwB,QACzB,WACA,aACF,QACG,iBACF,gBACA,kBACA,aACA,aACA;;AACA,iBAAS,AAAY,WAAD;AACd,gBAAQ,AAAY,WAAD;AACnB,eAAO,AAAY,WAAD;AACxB,cAAM,AAAY,WAAD;AAAM;AACzB;AACL,mBAAK,AAAO,AAAO,AAAY,MAApB;AACoC,MAA7C,SAA4B,aAAnB,AAAY,WAAD,wBAAU,eAAe;AAC7C,qBAAK,AAAO,AAAO,MAAR;AACT,sBAAI,WAAW;AACb,cAAW,aAAP,MAAM,IAAG;AAO8C,YANzD,mBAAS,WAAW,IACQ,aAAtB,AAAe,cAAD,WACK,aAAhB,eAAe,KACW,aAAtB,AAAe,cAAD,wBAAU,AAAY,WAAD,YACpB,aAAtB,AAAe,cAAD,WACK,aAAhB,eAAe,KACQ,aAAnB,AAAY,WAAD,wBAAU,AAAe,cAAD;AAC3B,YAArB,SAAgB,aAAP,MAAM,iBAAG,GAAG;;AAM6C,YAJlE,gBAAM,WAAW,IACQ,aAAnB,AAAe,cAAD,QACK,aAAhB,eAAe,KAAoB,aAAhB,AAAY,WAAD,qBAAO,AAAe,cAAD,SACnC,aAAnB,AAAe,cAAD,QACK,aAAhB,eAAe,KAAuB,aAAnB,AAAe,cAAD,qBAAO,AAAY,WAAD;AAC3B,YAAjC,SAA4B,aAAnB,AAAY,WAAD,wBAAU,GAAG;;;AAKkB,UAFrD,MAAa,aAAP,MAAM,IAAG,IACT,AAAY,WAAD,OACM,AAAsB,aAAtC,AAAY,WAAD,qBAAO,AAAY,WAAD,wBAAW,MAAM;;;AAGvD,sBAAI,WAAW;AACb,cAAW,aAAP,MAAM,IAAG;AAKuD,YAJlE,gBAAM,WAAW,IACQ,aAAnB,AAAe,cAAD,QACK,aAAhB,eAAe,KAAoB,aAAhB,AAAY,WAAD,qBAAO,AAAe,cAAD,SACnC,aAAnB,AAAe,cAAD,QACK,aAAhB,eAAe,KAAuB,aAAnB,AAAe,cAAD,qBAAO,AAAY,WAAD;AAC3B,YAAjC,SAA4B,aAAnB,AAAY,WAAD,wBAAU,GAAG;;AAQwB,YANzD,mBAAS,WAAW,IACQ,aAAtB,AAAe,cAAD,WACK,aAAhB,eAAe,KACW,aAAtB,AAAe,cAAD,wBAAU,AAAY,WAAD,YACpB,aAAtB,AAAe,cAAD,WACK,aAAhB,eAAe,KACQ,aAAnB,AAAY,WAAD,wBAAU,AAAe,cAAD;AAC3B,YAArB,SAAgB,aAAP,MAAM,iBAAG,GAAG;;;AAKF,UAFrB,MAAa,aAAP,MAAM,IAAG,IACQ,AAAsB,aAAtC,AAAY,WAAD,qBAAO,AAAY,WAAD,wBAAW,MAAM,IAC/C,AAAY,WAAD;;;AAGyB,MAA9C,OAAY,qBAAS,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM;UACxC,eAAI,AAAO,AAAO,AAAY,MAApB,4CACb,cAAc,IAAI,QAClB,gBAAgB,IAAI;AAEgC,MADtD,OAAO,qCAA8B,MAAM,EAAE,WAAW,EAAE,cAAc,EACpE,gBAAgB,EAAE,cAAc,EAAE,eAAe;;AAKzC,IAHd,AAAO,MAAD,WACI,+BACF,AAAK,IAAD,IAAI,aAAO,WAAW,eAAX,OAAa,iBAAa,IAAI,EAAE,AAAY,WAAD,YAC9D,SAAS;EACf;gFAGmC,QACzB,aACD,gBACA,kBACA,gBACE;AACL;AACS,iBAAS,AAAY,WAAD;AAC1B,gBAAQ,AAAY,WAAD;AACnB,eAAO,AAAY,WAAD;AACZ,cAAM,AAAY,WAAD;AAC9B,kBAAI,gBAAgB;AAKoD,MAJtE,QAA6B,aAArB,AAAe,cAAD,uBAAS,AAAY,WAAD,UACf,aAArB,AAAe,cAAD,UACK,aAAhB,eAAe,KAAsB,aAAlB,AAAY,WAAD,uBAAS,AAAe,cAAD,WACnC,aAArB,AAAe,cAAD,UACK,aAAhB,eAAe,KAAyB,aAArB,AAAe,cAAD,uBAAS,AAAY,WAAD;AAKM,MAJpE,OAA2B,aAApB,AAAe,cAAD,sBAAQ,AAAY,WAAD,SACd,aAApB,AAAe,cAAD,SACK,aAAhB,eAAe,KAAwB,aAApB,AAAe,cAAD,sBAAQ,AAAY,WAAD,UACnC,aAApB,AAAe,cAAD,SACK,aAAhB,eAAe,KAAqB,aAAjB,AAAY,WAAD,sBAAQ,AAAe,cAAD;AACzC,MAApB,QAAc,aAAN,KAAK,iBAAG,IAAI;;AAEpB,UAAW,YAAP,MAAM,EAAI,AAAO,AAAO,AAAM,MAAd,uBAAe,kBAAO,cAAc;AAC/B,QAAvB,OAAO,AAAY,WAAD;AACyB,QAA3C,QAA0B,aAAlB,AAAY,WAAD,uBAAS,eAAe;YACtC,KAAW,YAAP,MAAM,EACT,AAAO,AAAO,AAAM,MAAd,uBAA2C,aAA5B,AAAO,AAAO,AAAO,MAAf,4BAAwB,kBACtD,cAAc;AACQ,QAAzB,QAAQ,AAAY,WAAD;AACiC,QAApD,OAAa,aAAN,KAAK,IAAsB,aAAlB,AAAY,WAAD,uBAAS,eAAe;AAC/B,QAApB,QAAc,aAAN,KAAK,iBAAG,IAAI;;AAEuB,QAA3C,QAA0B,aAAlB,AAAY,WAAD,uBAAS,eAAe;AACH,QAAxC,OAA6B,aAAtB,AAAY,AAAO,WAAR,cAAmB,aAAN,KAAK,IAAG;;;AAG3C,UAAY,sBAAS,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM;EAC/C;wEAGW,QACD,aACA,WAC+B,QAC9B,iBACsB,cACZ;AACf;AAAO;AAC6B;AACnC;AAC2C,IAAhD,QAAQ,AAAO,AAAY,MAAb,yBAAqB,YAAY;AACA,IAA/C,mBAAmB,6BAAsB,KAAK;AACA,IAA9C,cAAc,AAAiB,gBAAD,WAAS,MAAM;AACxC,sBAAc;AACnB,QAAI,WAAW,KAAI;AACjB,UACQ,4BADJ,AAAO,AAAO,AAAa,AAAa,MAAlC,4CAA+C,aAAZ,WAAW,IAAG,OAGnD,+BADJ,AAAO,AAAO,AAAa,AAAa,MAAlC,4CAA+C,aAAZ,WAAW,IAAG;AAEvC,QAAlB,cAAc;;AAEhB,WAAK,WAAW;AACd,iBAAS,IAAI,GACT,AAAE,CAAD,gBAAG,AAAM,AAAa,AAAuB,KAArC,iDACT,IAAA,AAAC,CAAA;AAC2B,uCAC1B,AAAM,AAAa,AAAsB,KAApC,6CAAqC,CAAC;AAC/C,cAAI,AAAuB,AAAU,sBAAX,cAAc,AAAO,MAAD;AAC5C,gBAAkD,aAA9C,AAAuB,AAAgB,sBAAjB,8BAA2B;AACnD,uBAAS,IAAI,GACT,AAAE,CAAD,gBAAG,AAAuB,AAAgB,sBAAjB,4BAC1B,IAAA,AAAC,CAAA;AACoB,sCACnB,AAAuB,AAAe,sBAAhB,wBAAiB,CAAC;AAC5C,oBAAI,AAAgB,AAAY,eAAb,gBAAgB,WAAW,IAC1C,CAAC,KAAI,KACC,aAAN,KAAK,iBACD,AACK,AAAe,AAAQ,AAAO,AAAY,sBADzB,wBACD,AAAE,CAAD,GAAG;AAC/B,iCAAyB,WAApB,AAAa,YAAD,eAAU,mBAEgB,WADnC,AAAuB,AAAe,AAAQ,AACrC,AAAW,AAAQ,sBADN,wBAAiB,AAAE,CAAD,GAAG,+BACtB,KAAK,gBACtB,mBACa,WAApB,AAAa,YAAD,eAAU,mBAEgB,WADnC,AAAuB,AAAe,AAAQ,AACrC,AAAW,AAAQ,sBADN,wBAAiB,AAAE,CAAD,GAAG,+BACtB,KAAK,gBACtB;AAEkD,oBAD5D,aAAa,AACR,AAAe,AAAQ,AAAO,AAAW,AAAQ,sBADnB,wBACd,AAAE,CAAD,GAAG,+BAAsB,KAAK;;AAEpD,wBAAI,AAAE,CAAD,GAAG,GACN,AAIW,aAJE,AACR,AAAe,AACf,AACA,AAAW,AACX,sBAJ8B,wBACb,AAAE,AAAK,CAAN,GAAG,IAAK,+BAEd,KAAK;;;;;;;;;AAWa,IADrD,gCAAyB,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAC3D,eAAe,EAAE,YAAY,EAAE,KAAK,EAAE,UAAU;EACtD;sEAGW,QACD,aACA,WAC+B,QAC9B,iBACsB,cACzB,OACC;AACA,cAAM,AAAY,WAAD;AAAM,iBAAS,AAAY,WAAD;AAC3C,gBAAQ,AAAY,WAAD;AAAQ,gBAAQ,AAAY,WAAD;AACxC,kBAAU,AAAY,WAAD;AAAS,eAAO,AAAY,WAAD;AAChB,IAA7C,SAA4B,aAAnB,AAAY,WAAD,wBAAU,eAAe;AACF,IAA3C,QAA0B,aAAlB,AAAY,WAAD,uBAAS,eAAe;AAC3C,QAAK,AAAO,AAAY,MAAb,0BAAsB,iCACzB,AAAO,AAAO,MAAR,uBAAwB,SACjC,AAAO,AAAY,MAAb,0BAAsB,iBACE,YAA3B,AAAO,AAAO,MAAR,uBAAwB;AAeO,MAdlB,aAAzB,AAAO,AAAO,MAAR,sBAAsB,mBACM,WAA5B,AAAO,AAAW,AAAQ,MAApB,sBAAa,KAAK,WAAM,OAC1B,AAAW,UAAD,IAAI,OACV,MAAuB,AAAsB,aAAtC,AAAY,WAAD,qBAAO,AAAY,WAAD,wBAAW,MAAM,IACrD,MAAqB,aAAf,AAAW,UAAD,qBAAO,MAAM,IACjC,AAAW,UAAD,IAAI,OACV,MAAM,AAAY,WAAD,OACjB,MAAM,AAAW,UAAD,qBACI,WAA5B,AAAO,AAAW,AAAQ,MAApB,sBAAa,KAAK,WAAM,OAC1B,AAAW,UAAD,IAAI,OACV,MAAM,AAAY,WAAD,OACjB,MAAM,AAAW,UAAD,UACpB,AAAW,UAAD,IAAI,OACV,MAAuB,AAAsB,aAAtC,AAAY,WAAD,qBAAO,AAAY,WAAD,wBAAW,MAAM,IACrD,MAAqB,aAAf,AAAW,UAAD,qBAAO,MAAM;AAIlB,MAFzB,cAAoB,+BACX,qBAAS,AAAY,WAAD,OAAO,GAAG,EAAE,AAAY,WAAD,QAAQ,MAAM,GAC9D,AAAY,WAAD;AAEoD,MADnE,AAAa,YAAD,UACH,qBAAS,AAAY,WAAD,OAAO,GAAG,EAAE,AAAY,WAAD,QAAQ,MAAM;AAC1B,MAAxC,AAAO,MAAD,WAAW,WAAW,EAAE,SAAS;UAClC,KAAK,AAAO,AAAY,MAAb,0BAAsB,oBACL,YAA3B,AAAO,AAAO,MAAR,uBAAwB,SACjC,AAAO,AAAY,MAAb,0BAAsB,8BACzB,AAAO,AAAO,MAAR,uBAAwB;AAeU,MAdrB,aAAzB,AAAO,AAAO,MAAR,sBAAsB,mBACM,WAA5B,AAAO,AAAW,AAAQ,MAApB,sBAAa,KAAK,WAAM,OAC1B,AAAW,UAAD,IAAI,OACV,QAA2B,AAAqB,aAAvC,AAAY,WAAD,uBAAS,AAAY,WAAD,uBAAU,KAAK,IACvD,QAAyB,aAAjB,AAAW,UAAD,uBAAS,KAAK,IACpC,AAAW,UAAD,IAAI,OACV,QAAQ,AAAY,WAAD,SACnB,QAAQ,AAAW,UAAD,mBACE,WAA5B,AAAO,AAAW,AAAQ,MAApB,sBAAa,KAAK,WAAM,OAC1B,AAAW,UAAD,IAAI,OACV,QAAQ,AAAY,WAAD,SACnB,QAAQ,AAAW,UAAD,QACtB,AAAW,UAAD,IAAI,OACV,QAA2B,AAAqB,aAAvC,AAAY,WAAD,uBAAS,AAAY,WAAD,uBAAU,KAAK,IACvD,QAAyB,aAAjB,AAAW,UAAD,uBAAS,KAAK;AAIrB,MAFzB,cAAoB,+BACX,qBAAe,aAAN,KAAK,iBAAG,KAAK,GAAE,IAAI,EAAE,KAAK,EAAE,OAAO,GACjD,AAAY,WAAD;AAEqD,MADpE,AAAa,YAAD,UACH,qBAAS,AAAY,WAAD,OAAO,KAAK,EAAE,AAAY,WAAD,QAAQ,KAAK;AAC3B,MAAxC,AAAO,MAAD,WAAW,WAAW,EAAE,SAAS;;EAE3C;0DAEuD;AACjD,gBAAQ;AACZ,aAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,AAAO,AAAO,MAAf,2BAAuB,IAAA,AAAC,CAAA;AAChD,oBAAI,AAAO,AAAO,AAAM,AAAI,MAAlB,uBAAe,CAAC;AACjB,QAAP,QAAA,AAAK,KAAA;;;AAGT,UAAO,AAAM,MAAD,KAAI,IAAI,OAAO;EAC7B;kEAIW,QACwB,QACzB,aACC,iBACH,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACC,cACD,cACA,cACA,cACA,cACA,cACA,cACA;AACF,aAAK,KAAK;AACV,aAAK,KAAK;AACV,aAAK,KAAK;AACV,aAAK,KAAK;AACV,aAAK,KAAK;AACV,aAAK,KAAK;AACV,aAAK,KAAK;AACV,aAAK,KAAK;AAEmC,IAAjD,KAAK,iBAAU,eAAe,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK;AACC,IAAjD,KAAK,iBAAU,eAAe,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK;AACC,IAAjD,KAAK,iBAAU,eAAe,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK;AACC,IAAjD,KAAK,iBAAU,eAAe,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK;AAEC,IAAjD,KAAK,iBAAU,eAAe,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK;AACC,IAAjD,KAAK,iBAAU,eAAe,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK;AACC,IAAjD,KAAK,iBAAU,eAAe,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK;AACC,IAAjD,KAAK,iBAAU,eAAe,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK;AAGrC,eAAO;AACC,IAAnB,AAAK,IAAD,QAAQ,EAAE,EAAE,EAAE;AAClB,QAAI,AAAO,AAAY,MAAb,mBAAgB;AACL,MAAnB,AAAK,IAAD,QAAQ,EAAE,EAAE,EAAE;;AAIK,IAFzB,AAAO,AAAY,MAAb,mBAAgB,WAChB,AAAK,IAAD,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IACnC,AAAK,IAAD,QAAQ,EAAE,EAAE,EAAE;AACoC,IAA5D,uBAAgB,MAAM,EAAE,AAAO,MAAD,YAAY,WAAW,EAAE,IAAI;EAC7D;yCAGe,iBAAwB,OAAW,UAAc;AAC5D,UAAC,AAAqC,SAA7B,IAAI,QAAQ,QAAQ,IAAI,SAAS,AAAS,QAAD,WACjC,aAAT,QAAQ,iBAAG,QAAQ,IACR,aAAT,QAAQ,IAA0B,CAAZ,aAAT,QAAQ,iBAAG,QAAQ,kBAAI,eAAe,IAC1C,aAAT,QAAQ,IAA0B,CAAZ,aAAT,QAAQ,iBAAG,QAAQ,kBAAI,eAAe,IACvD,KAAK;;gEAIuB,QACL,OACA,UACtB,iBACA,QACD,WACA;AACE,gBAAQ,AAAO,AAAe,MAAhB;AACpB,iBAAS,AAAO,AAAe,MAAhB;AACE,qBAAa,AAAO,AAAe,MAAhB;AACpC,YAAI,AAAM,AAAY,KAAb;AACT,YAAI,AAAM,AAAY,KAAb;AACb,kBAAI,AAAO,AAAO,AAAY,MAApB,2CACN,QAAQ,IAAI,QACZ,AAAS,QAAD,gBAAgB;AACkC,MAA5D,IAAI,iBAAU,eAAe,EAAE,CAAC,EAAE,AAAS,AAAY,QAAb,gBAAgB,CAAC;AACC,MAA5D,IAAI,iBAAU,eAAe,EAAE,CAAC,EAAE,AAAS,AAAY,QAAb,gBAAgB,CAAC;AACxC,MAAnB,kBAAkB;;AAGT,eAAO;;AAEhB,cAAQ,UAAU;;;AAGoD,UADjD,oCACb,IAAI,EAAE,CAAC,EAAE,CAAC,EAAkB,aAAhB,eAAe,iBAAG,KAAK,GAAkB,aAAhB,eAAe,iBAAG,MAAM;AACjE;;;;AAGkE,UADjD,uCACb,IAAI,EAAE,CAAC,EAAE,CAAC,EAAkB,aAAhB,eAAe,iBAAG,KAAK,GAAkB,aAAhB,eAAe,iBAAG,MAAM;AACjE;;;;AAEsC,UAAtC,wBAAiB,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;AACrC;;;;AAGkE,UADjD,sCACb,IAAI,EAAE,CAAC,EAAE,CAAC,EAAkB,aAAhB,eAAe,iBAAG,KAAK,GAAkB,aAAhB,eAAe,iBAAG,MAAM;AACjE;;;;AAGkE,UADjD,0CACb,IAAI,EAAE,CAAC,EAAE,CAAC,EAAkB,aAAhB,eAAe,iBAAG,KAAK,GAAkB,aAAhB,eAAe,iBAAG,MAAM;AACjE;;;;AAGkE,UADjD,8CACb,IAAI,EAAE,CAAC,EAAE,CAAC,EAAkB,aAAhB,eAAe,iBAAG,KAAK,GAAkB,aAAhB,eAAe,iBAAG,MAAM;AACjE;;;;AAGkE,UADjD,4CACb,IAAI,EAAE,CAAC,EAAE,CAAC,EAAkB,aAAhB,eAAe,iBAAG,KAAK,GAAkB,aAAhB,eAAe,iBAAG,MAAM;AACjE;;;;AAGkE,UADjD,qCACb,IAAI,EAAE,CAAC,EAAE,CAAC,EAAkB,aAAhB,eAAe,iBAAG,KAAK,GAAkB,aAAhB,eAAe,iBAAG,MAAM;AACjE;;;;AAGkE,UADjD,sCACb,IAAI,EAAE,CAAC,EAAE,CAAC,EAAkB,aAAhB,eAAe,iBAAG,KAAK,GAAkB,aAAhB,eAAe,iBAAG,MAAM;AACjE;;;;AAEA;;;;AAG4B,IAAlC,AAAO,MAAD,UAAU,IAAI,EAAE,WAAW;AACD,IAAhC,AAAO,MAAD,UAAU,IAAI,EAAE,SAAS;EACjC;8DAIW,QACH,MACA,MACA,MACA,MACA,SACG,iBACH,QACE,aACA,WACD;AACH,YAAI,IAAI;AACR,YAAI,IAAI;AACR,eAAO,MAAM;AAE4B,IAA7C,IAAI,iBAAU,eAAe,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI;AAEC,IAA7C,IAAI,iBAAU,eAAe,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI;AAEY,IAAxD,OAAO,iBAAU,eAAe,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM;AACP,IAAhD,AAAO,MAAD,YAAY,kBAAO,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,SAAS;AACG,IAAlD,AAAO,MAAD,YAAY,kBAAO,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,WAAW;EACnD;4DAGgC,QAAuC,QAC7D,WAAiB,aAAoB;AACtC,iBAAS,AAAY,WAAD;AACpB,gBAAQ,AAAY,WAAD;AACnB,eAAO,AAAY,WAAD;AAClB,cAAM,AAAY,WAAD;AACxB,mBAAK,AAAO,AAAO,MAAR;AACoC,MAA7C,SAA4B,aAAnB,AAAY,WAAD,wBAAU,eAAe;AACL,MAAxC,MAA4B,aAAtB,AAAY,AAAO,WAAR,cAAoB,aAAP,MAAM,IAAG;;AAEI,MAA3C,QAA0B,aAAlB,AAAY,WAAD,uBAAS,eAAe;AACH,MAAxC,OAA6B,aAAtB,AAAY,AAAO,WAAR,cAAmB,aAAN,KAAK,IAAG;;AAK3B,IAHd,AAAO,MAAD,WACI,+BACG,qBAAS,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,GAAG,AAAY,WAAD,YACxD,SAAS;EACf;oEAG8C,OAAiB,MACpD,QAAe;AA2B2B,cA1BnD,AAAM,KAAD,iBACC,AAAO,MAAD,UAAe,qBACnB,eACA,AAAK,IAAD,eACE,MACsB,CAArB,AAAE,iBAAE,eAAe,kBAAI,AAAM,AAAW,AAAc,KAA1B,qCACC,aAApC,AAAM,AAAW,AAAc,KAA1B,iDACD,AAAM,AAAW,AAAc,KAA1B,8CACT,AAAK,IAAD,eACkB,aAAhB,eAAe,KACuB,aAAnC,AAAM,AAAW,AAAc,KAA1B,gDACF,AAAM,AAAW,AAAc,KAA1B,uCACwB,aAAnC,AAAM,AAAW,AAAc,KAA1B,gDACH,AAAM,AAAW,AAAc,KAA1B,wCACf,AAAO,MAAD,UAAe,+BACnB,AAAK,IAAD,eACwB,CAArB,AAAE,iBAAE,eAAe,kBAAK,AAAM,AAAW,AAAc,KAA1B,qCAC9B,KACN,eACA,AAAK,IAAD,eACsC,aAApC,AAAM,AAAW,AAAc,KAA1B,iDACH,AAAM,AAAW,AAAc,KAA1B,qCACS,aAAhB,eAAe,KACwB,aAApC,AAAM,AAAW,AAAc,KAA1B,iDACF,AAAM,AAAW,AAAc,KAA1B,qCACkB,aAAnC,AAAM,AAAW,AAAc,KAA1B,gDACD,AAAM,AAAW,AAAc,KAA1B;EACnB;0DAGS,YACU,QACA,SACA,QACA,SACR,iBACD,OACC;AACT,kBAAI,UAAU;AACR,iBAAO,AAAO,MAAD;AACb,kBAAQ,AAAQ,OAAD;AACf,cAAI,AAAO,MAAD;AACuC,MAArD,IAAI,iBAAU,eAAe,EAAE,CAAC,EAAE,AAAO,MAAD,IAAI,AAAO,MAAD;AACS,MAA3D,OAAO,iBAAU,eAAe,EAAE,IAAI,EAAE,AAAO,MAAD,IAAI,AAAO,MAAD;AACO,MAA/D,QAAQ,iBAAU,eAAe,EAAE,KAAK,EAAE,AAAQ,OAAD,IAAI,AAAQ,OAAD;AACH,MAAzD,AAAO,MAAD,UAAU,kBAAO,IAAI,EAAE,CAAC,GAAG,kBAAO,KAAK,EAAE,CAAC,GAAG,KAAK;;AAEpD,gBAAM,AAAO,MAAD;AACZ,iBAAO,AAAQ,OAAD;AACd,cAAI,AAAO,MAAD;AACuC,MAArD,IAAI,iBAAU,eAAe,EAAE,CAAC,EAAE,AAAO,MAAD,IAAI,AAAO,MAAD;AACO,MAAzD,MAAM,iBAAU,eAAe,EAAE,GAAG,EAAE,AAAO,MAAD,IAAI,AAAO,MAAD;AACO,MAA7D,OAAO,iBAAU,eAAe,EAAE,IAAI,EAAE,AAAQ,OAAD,IAAI,AAAQ,OAAD;AACH,MAAvD,AAAO,MAAD,UAAU,kBAAO,CAAC,EAAE,GAAG,GAAG,kBAAO,CAAC,EAAE,IAAI,GAAG,KAAK;;EAE1D;4EAGS,YACD,QACA,SACA,QACA,SACA,UACA,UACA,WACA,WACA,cACA,eACA,UACA,UACA,WACA,WACA,cACA,eACG,iBACD,OACC;AACL,cAAM,MAAM;AACZ,eAAO,OAAO;AACd,gBAAQ,QAAQ;AAChB,gBAAQ,QAAQ;AAChB,iBAAS,SAAS;AAClB,iBAAS,SAAS;AAClB,qBAAa,aAAa;AAC1B,oBAAY,YAAY;AACyB,IAArD,MAAM,iBAAU,eAAe,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM;AACK,IAAzD,OAAO,iBAAU,eAAe,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO;AACK,IAA7D,QAAQ,iBAAU,eAAe,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ;AACC,IAA7D,QAAQ,iBAAU,eAAe,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ;AACK,IAAjE,SAAS,iBAAU,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS;AACC,IAAjE,SAAS,iBAAU,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS;AAEQ,IADxE,aACI,iBAAU,eAAe,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa;AACM,IAA7E,YAAY,iBAAU,eAAe,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY;AAC5E,kBAAI,UAAU;AAC4D,MAAxE,AAAO,MAAD,UAAU,kBAAO,GAAG,EAAE,SAAS,GAAG,kBAAO,IAAI,EAAE,UAAU,GAAG,KAAK;AACA,MAAvE,AAAO,MAAD,UAAU,kBAAO,KAAK,EAAE,KAAK,GAAG,kBAAO,KAAK,EAAE,UAAU,GAAG,KAAK;AACG,MAAzE,AAAO,MAAD,UAAU,kBAAO,MAAM,EAAE,SAAS,GAAG,kBAAO,MAAM,EAAE,MAAM,GAAG,KAAK;;AAEA,MAAxE,AAAO,MAAD,UAAU,kBAAO,UAAU,EAAE,GAAG,GAAG,kBAAO,SAAS,EAAE,IAAI,GAAG,KAAK;AACA,MAAvE,AAAO,MAAD,UAAU,kBAAO,KAAK,EAAE,KAAK,GAAG,kBAAO,UAAU,EAAE,KAAK,GAAG,KAAK;AACG,MAAzE,AAAO,MAAD,UAAU,kBAAO,SAAS,EAAE,MAAM,GAAG,kBAAO,MAAM,EAAE,MAAM,GAAG,KAAK;;EAE5E;8DAGS,YACD,OACA,QACA,QACA,SACA,QACA,SACA,UACA,UACA,WACA,WACA,cACA,eACA,UACA,UACA,WACA,WACA,cACA,eACG,iBACD,OACC;AACC,eAAO,KAAK;AACZ,gBAAQ,MAAM;AACpB,eAAO,MAAM;AACb,gBAAQ,OAAO;AACf,gBAAQ,QAAQ;AAChB,gBAAQ,QAAQ;AAChB,iBAAS,SAAS;AAClB,iBAAS,SAAS;AAClB,qBAAa,aAAa;AAC1B,oBAAY,YAAY;AAC2B,IAAvD,OAAO,iBAAU,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM;AACK,IAA3D,QAAQ,iBAAU,eAAe,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO;AACG,IAA7D,QAAQ,iBAAU,eAAe,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ;AACC,IAA7D,QAAQ,iBAAU,eAAe,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ;AACK,IAAjE,SAAS,iBAAU,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS;AACC,IAAjE,SAAS,iBAAU,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS;AAEQ,IADxE,aACI,iBAAU,eAAe,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa;AACM,IAA7E,YAAY,iBAAU,eAAe,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY;AACjE,eAAO;AAClB,mBAAK,UAAU,KAAS,aAAL,IAAI,iBAAG,KAAK;AACnB,iBAAO,MAAM;AACT,MAAd,SAAS,KAAK;AACF,MAAZ,QAAQ,IAAI;;AAEd,kBAAI,UAAU;AACkB,MAA9B,AAAK,IAAD,QAAQ,UAAU,EAAE,KAAK;AAC7B,UAAe,aAAX,UAAU,iBAAG,MAAM;AACK,QAA1B,AAAK,IAAD,QAAQ,MAAM,EAAE,KAAK;;AAEC,QAA1B,AAAK,IAAD,QAAQ,MAAM,EAAE,KAAK;AACE,MAA7B,AAAK,IAAD,QAAQ,SAAS,EAAE,KAAK;AAC5B,UAAc,aAAV,SAAS,iBAAG,KAAK;AACM,QAAzB,AAAK,IAAD,QAAQ,KAAK,EAAE,KAAK;;AAEC,QAAzB,AAAK,IAAD,QAAQ,KAAK,EAAE,KAAK;AACC,MAA3B,AAAK,IAAD,QAAQ,MAAM,EAAE,MAAM;AACA,MAA1B,AAAK,IAAD,QAAQ,MAAM,EAAE,KAAK;AACA,MAAzB,AAAK,IAAD,QAAQ,KAAK,EAAE,KAAK;AACE,MAA1B,AAAK,IAAD,QAAQ,KAAK,EAAE,MAAM;AACE,MAA3B,AAAK,IAAD,QAAQ,MAAM,EAAE,MAAM;AACd,MAAZ,AAAK,IAAD;;AAEJ,UAAS,aAAL,IAAI,iBAAG,KAAK;AACJ,mBAAO,MAAM;AACT,QAAd,SAAS,KAAK;AACF,QAAZ,QAAQ,IAAI;;AAEiB,MAA/B,AAAK,IAAD,QAAQ,UAAU,EAAE,MAAM;AACA,MAA9B,AAAK,IAAD,QAAQ,UAAU,EAAE,KAAK;AACA,MAA7B,AAAK,IAAD,QAAQ,SAAS,EAAE,KAAK;AACA,MAA5B,AAAK,IAAD,QAAQ,SAAS,EAAE,IAAI;AACF,MAAzB,AAAK,IAAD,QAAQ,KAAK,EAAE,KAAK;AACE,MAA1B,AAAK,IAAD,QAAQ,MAAM,EAAE,KAAK;AACE,MAA3B,AAAK,IAAD,QAAQ,MAAM,EAAE,MAAM;AACA,MAA1B,AAAK,IAAD,QAAQ,KAAK,EAAE,MAAM;AACA,MAAzB,AAAK,IAAD,QAAQ,KAAK,EAAE,KAAK;AACZ,MAAZ,AAAK,IAAD;;AAEsB,IAA5B,AAAO,MAAD,UAAU,IAAI,EAAE,KAAK;AAC3B,QAAgB,YAAZ,AAAM,KAAD,QAAwB;AAC/B,oBAAI,UAAU;AACZ,YAAS,aAAL,IAAI,iBAAG,KAAK;AAE8C,UAD5D,AAAO,MAAD,UACF,kBAAO,UAAU,EAAE,KAAK,GAAG,kBAAO,MAAM,EAAE,KAAK,GAAG,KAAK;AACW,UAAtE,AAAO,MAAD,UAAU,kBAAO,SAAS,EAAE,KAAK,GAAG,kBAAO,KAAK,EAAE,KAAK,GAAG,KAAK;;AAGT,UAD5D,AAAO,MAAD,UACF,kBAAO,UAAU,EAAE,KAAK,GAAG,kBAAO,MAAM,EAAE,KAAK,GAAG,KAAK;AACW,UAAtE,AAAO,MAAD,UAAU,kBAAO,SAAS,EAAE,KAAK,GAAG,kBAAO,KAAK,EAAE,KAAK,GAAG,KAAK;;;AAIN,QADjE,AAAO,MAAD,UACF,kBAAO,UAAU,EAAE,MAAM,GAAG,kBAAO,UAAU,EAAE,KAAK,GAAG,KAAK;AAED,QAD/D,AAAO,MAAD,UACF,kBAAO,UAAU,EAAE,KAAK,GAAG,kBAAO,UAAU,EAAE,IAAI,GAAG,KAAK;;;EAGpE;kEAIW,QACA,QACG,aACA,aACqB,iBAChB;;AACG,wBAAyB;AAC/B,mBAAoB;AAClB,kBAAe;AACf,kBAAe;AAIa,IAF5C,AAAuB,sBAAD,IAAI,OACpB,WAAW,sBAAsB,GACjC,WAAW,AAAgB,eAAD;AAEhC,aAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAS,QAAD,YAAS,IAAA,AAAC,CAAA;AACL,MAA/B,AAAQ,OAAD,uBAAiB,WAAZ,AAAQ,QAAA,QAAC,CAAC;AACqD,MAA3E,AAAQ,OAAD,wBAAwB,KAAP,WAAZ,AAAQ,QAAA,QAAC,CAAC,oBAAE,OAA+C,WAAnB,WAAL,WAAZ,AAAQ,QAAA,QAAC,CAAC,kBAAqB,WAAZ,AAAQ,QAAA,QAAC,CAAC,mBAAS;;AAEvE,qCAAa,AAAY,AAAc,WAAf;AACxB,qCAAa,AAAY,AAAc,WAAf;AAEjB,eAAO,4BACd,AAAgB,AAAO,AAAW,eAAnB,qCACf,kBAAO,AAAgB,AAAO,eAAR,sBAClB,AAAgB,AAAO,eAAR;AAEb,sBAAc,sBACpB,AAAgB,eAAD,UACf,WAAW,YACX,AAAY,WAAD,cACL,AAAY,WAAD,YACX,AAAgB,AAAO,AAAW,eAAnB,qCACd,aAAP,MAAM,iBAAG,AAAK,IAAD,QACN,aAAP,MAAM,iBAAG,AAAK,IAAD;AACP,sBAAc,sBACpB,AAAgB,eAAD,UACf,WAAW,YACX,AAAY,WAAD,cACL,AAAY,WAAD,YACX,AAAgB,AAAO,AAAW,eAAnB,qCACd,aAAP,MAAM,iBAAG,AAAK,IAAD,QACN,aAAP,MAAM,iBAAG,AAAK,IAAD;AACV,gBAAQ;AACf,aAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAS,QAAD,YAAS,IAAA,AAAC,CAAA;AACvB,kBAAQ,AAAO,AAAI,OAAJ,QAAC,CAAC;AACjB,kBAAQ,AAAO,AAAI,OAAJ,QAAC,CAAC;AAC9B,UAAI,AAAM,KAAD,KAAgB,aAAZ,WAAW,IAAG,KAAK;AACK,0DAAY,AAAQ,QAAA,QAAC,CAAC;AACzD,yBAAI,AAAU,SAAD,SAAW,sBAAQ,AAAU,SAAD,QAAU;AACjD,cAA0B,AAAM,CAAf,aAAZ,WAAW,IAAG,KAAK,YAAqC,CAAd,aAAZ,WAAW,iBAAG,UAAU,YACzD,AAAc,AAAO,aAAR;AACa,UAA5B,AAAc,aAAD,OAAK,SAAS;;YAExB,KAA0B,AAAM,CAAf,aAAZ,WAAW,IAAG,KAAK,aACA,CAAd,aAAZ,WAAW,iBAAG,UAAU;AACT,QAAlB,aAAa,KAAK;AACA,QAAlB,aAAa,KAAK;AACS,QAA3B,QAAoB,aAAZ,WAAW,IAAG,KAAK;AACQ,0DAAY,AAAQ,QAAA,QAAC,CAAC;AACpC,QAArB,AAAc,aAAD;AACb,yBAAI,AAAU,SAAD,SAAW,sBAAQ,AAAU,SAAD,QAAU;AACrB,UAA5B,AAAc,aAAD,OAAK,SAAS;;;;AAIjC,UAAO,cAAa;EACtB;0CAEwC,OAAe,MACvC,aAAkC;AACrB,IAA3B,cAAc;AACS,IAAvB,AAAY,WAAD,QAAC,wBAAO,IAAI;AACyB,IAAhD,AAAY,WAAD,qBAAC,mBAAyB,WAAL,IAAI;AACgB,IAApD,AAAY,WAAD,uBAAC,mBAA2B,WAAL,IAAI;AACmB,IAAzD,AAAY,WAAD,sBAAC,mBAA0B,WAAL,IAAI;AACwB,IAA7D,AAAY,WAAD,wBAAC,mBAA4B,WAAL,IAAI;AAOK,IAN9B,YAAd,aAAa,EAAI,AAAM,KAAD,gBAChB,AAAM,KAAD,aAAa,WAAW,IACf,YAAd,aAAa,EAAI,AAAM,KAAD,cAClB,AAAM,KAAD,WAAW,WAAW,IACb,YAAd,aAAa,EAAI,AAAM,KAAD,cAClB,AAAM,KAAD,WAAW,WAAW,IAC3B,AAAM,KAAD,aAAa,WAAW;AAE3C,UAAO,YAAW;EACpB;gDAIiC,eAAsB;AAChD;AACG;AAAS;AAAU;AAAa;AAAY;AACd,IAAtC,UAAU,AAAc,AAAO,aAAR;AACiB,IAAxC,WAAW,AAAc,AAAO,aAAR;AACoB,IAA5C,aAAa,AAAc,AAAO,aAAR;AACoB,IAA9C,cAAc,AAAc,AAAO,aAAR;AACJ,IAAvB,QAAoB,aAAZ,WAAW,IAAG;AACT,IAAb,OAAO;AAC4C,IAAnD,AAAK,IAAD,2BAAmB,WAAH,WAAR,OAAO,eAAM,KAAK,wBAAa,WAAH,WAAR,OAAO,eAAM,KAAK;AACG,IAArD,AAAK,IAAD,2BAAoB,WAAH,WAAT,QAAQ,eAAM,KAAK,wBAAc,WAAH,WAAT,QAAQ,eAAM,KAAK;AACO,IAA3D,AAAK,IAAD,2BAAuB,WAAH,WAAZ,WAAW,eAAM,KAAK,wBAAiB,WAAH,WAAZ,WAAW,eAAM,KAAK;AACD,IAAzD,AAAK,IAAD,2BAAsB,WAAH,WAAX,UAAU,eAAM,KAAK,wBAAgB,WAAH,WAAX,UAAU,eAAM,KAAK;AACL,IAAnD,AAAK,IAAD,2BAAmB,WAAH,WAAR,OAAO,eAAM,KAAK,wBAAa,WAAH,WAAR,OAAO,eAAM,KAAK;AACtC,IAAZ,AAAK,IAAD;AACJ,UAAO,KAAI;EACb;gDAGkD;AAAf;AACN,sBAAY;AAMpC,MALH,AACK,AACA,aAFQ,sCAEI,yCAAoB,SAAW,MAAW;AACjC,QAAxB,AAAU,SAAD,UAAU,IAAI;AACvB,cAAO,AAAU,UAAD;;AAEF,uBAAY,MAAM,AAAU,SAAD;AAC3C,YAAO,AAAU,UAAD;IAClB;;oDAG8B,cAAe;AAAzB;;AAClB,UAAI,KAAK,IAAI,QAAQ,AAAO,MAAD,IAAI;AAC7B,YAAU,WAAN,KAAK,gCAA4B;AAEmB,UADpC,UAAZ,WAAN,KAAK,kCACD,MAAM,yDAAoB,WAAN,KAAK;AACiC,eAA3B,WAAN,WAAX,WAAZ,WAAN,KAAK;UAAkD,uBAAK,WAAL,+BAAK;;AAE9D,YAAiB,WAAP,WAAN,KAAK,yBAAiB;AAEmB,UADzB,UAAZ,WAAN,KAAK,kCACD,MAAM,yDAA2B,WAAP,WAAN,KAAK;AACmB,gBAA7B,WAAb,WAAN,KAAK;UAAoC,wBAAK,WAAL,gCAAK;;;AAGhD,YAA0B,WAAf,WAAP,MAAM,iCAAyB;AAEmB,UAD9B,UAAf,WAAP,MAAM,6BACF,MAAM,yDAAoC,WAAf,WAAP,MAAM;AACyB,iBAA7B,WAAZ,WAAP,WAAP,MAAM;UAA0C,yBAAK,WAAL,iCAAK;AACrD,cAAuB,YAAZ,WAAP,MAAM,iBAAgB,yBAAkC,WAAP,WAAP,WAAP,MAAM,qCACa;mBAA7B,WAAb,WAAP,WAAP,MAAM;YAA2C,yBAAK,WAAL,iCAAK;;;;IAG9D;;4E6Dj1CgE,QAC/B,OAAW,OAAwB;;AAC1C,oBAAY,AAAO,MAAD;AACrC;AAAU;AAAW;AAAW;AACjC;AAAQ;AACD,eAAO,4BAAqB,AAAM,AAAW,KAAZ,6BACxC,kBAAO,AAAO,AAAO,MAAR,sBAAoB,AAAO,AAAO,MAAR;AAIvB,aAHpB,gBACK,AAAM,AAAoC,KAArC,SAAS,QAAQ,AAAM,KAAD,UAAU,mBAAoB,WAAZ,AAAM,KAAD,cAAS,AAAM,KAAD,WAC3D,AAAM,KAAD,SACL,AAAM,KAAD;AAIK,aAHpB,gBACK,AAAM,AAAoC,KAArC,SAAS,QAAQ,AAAM,KAAD,UAAU,mBAAoB,WAAZ,AAAM,KAAD,cAAS,AAAM,KAAD,WAC3D,AAAM,KAAD,SACL,AAAM,KAAD;AACJ,qBAAa,AAAM,KAAD;AAClB,mBAAW,AAAO,AAAO,MAAR;AACjB,mBAAW,4BAAqB,AAAM,AAAW,KAAZ,6BAC5C,kBAAO,AAAO,AAAO,MAAR,sBAAoB,AAAO,AAAO,MAAR;AAChC,wBAAgB,AAAO,AAAY,AACN,MADP,0BAAsB,YACnD,AAAO,AAAY,MAAb,0BAAsB,WAC5B,AAAO,AAAY,MAAb,0BAAsB;AAChC,QAAI,KAAK,IAAI,kBAAQ,AAAM,KAAD,4BAAc,AAAM,KAAD,QAAU;AAC3C,yBACN,AAAO,AAAY,AAAiB,MAA9B,0BAAsB,WAAW,AAAO,AAAY,MAAb,mBAAgB,qBACvD,AAAO,AAAO,MAAR,kCACF,AAAM,AAAO,AAAY,KAApB,yBACL,AAAM,AAAO,AAAU,KAAlB,uBACT,AAAM,AAAY,KAAb;AACL,yBACN,AAAO,AAAY,AAAiB,MAA9B,0BAAsB,WAAW,AAAO,AAAY,MAAb,mBAAgB,qBACvD,AAAO,AAAO,MAAR,kCACF,AAAM,AAAO,AAAY,KAApB,yBACL,AAAM,AAAO,AAAU,KAAlB,uBACT,AAAM,AAAY,KAAb;AACM,yBAAe,uCAChC,AAAM,KAAD,oBACL,AAAO,AAAO,MAAR,wBAAqB,MAAM,GAAG,MAAM,EAC1C,AAAO,MAAD,WACN,AAAO,MAAD,WACN,AAAM,KAAD,wBACL,MAAM,EACN,IAAI;AACa,yBAAe,uCAChC,AAAM,KAAD,oBACL,AAAO,AAAO,MAAR,wBAAqB,MAAM,GAAG,MAAM,EAC1C,AAAO,MAAD,WACN,AAAO,MAAD,WACN,AAAM,KAAD,wBACL,MAAM,EACN,IAAI;AACK,mBAA8B,KAAtB,AAAM,KAAD,wBAAC,OACvB,qBACI,aAAa,GACN,WAAC,QAAQ,IAAG,AAAM,KAAD,QAAQ,AAAM,KAAD,OACE,UAA/B,AAAU,SAAD,0BACL,AAAM,KAAD,oBAAoB,OAC3B,AAAM,KAAD,mBACL,AAAM,KAAD,SACf,MAAM,EACN,KAAK;AACb,UAAI,aAAa,EACf,AAAM,AAC8D,KAD/D,WAAgC,MAAtB,AAAM,KAAD,yBAAC,OACjB,qBAAc,WAAC,QAAQ,IAAG,AAAM,KAAD,OAAO,AAAM,KAAD,OAAO,MAAM,EAAE,KAAK;AAChD,iBAChB,AAAU,AAAU,SAAX,cAAc,OAAQ,kCAAmB,AAAU,SAAD;AAC7C,MAAnB,AAAM,KAAD,SAAS,KAAK;AACnB,UAAI,AAAM,KAAD;AACQ;AACX;AACA;AACA;AACgC,QAApC,WAAW,oBAAa,KAAK,EAAE,IAAI;AACuB,QAA1D,gBAAgB,8BAAe,YAAY,EAAE,YAAY;AACzD,YAAI,aAAa;AAC6B,UAA5C,YAAY,oBAAa,AAAM,KAAD,SAAS,IAAI;AAaZ,UAZ/B,iBAAiB,8BACb,AAAO,AAAY,AAAiB,MAA9B,0BAAsB,WACpB,AAAO,AAAY,MAAb,mBAAgB,qBACxB,AAAO,AAAO,MAAR,kCACF,AAAM,AAAO,AAAW,KAAnB,wBACL,AAAM,AAAO,AAAa,KAArB,0BACT,AAAM,AAAa,KAAd,iBACX,AAAO,AAAY,AAAiB,MAA9B,0BAAsB,WACpB,AAAO,AAAY,MAAb,mBAAgB,qBACxB,AAAO,AAAO,MAAR,kCACF,AAAM,AAAO,AAAW,KAAnB,wBACL,AAAM,AAAO,AAAa,KAArB,0BACT,AAAM,AAAa,KAAd;;AAEU,oCACvB,iCAA0B,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EACrD,aAAa,EAAE,cAAc,EAAE,QAAQ;AACP,QAAxC,gBAAgB,AAAqB,qBAAA,QAAC;AACG,QAAzC,iBAAiB,AAAqB,qBAAA,QAAC;AACvC,uBAAK,AAAO,MAAD,oBACP,AAAO,MAAD,mBAAgB,gBACrB,AAAO,AAAY,MAAb,0BAAsB,YAC5B,AAAO,AAAY,MAAb,0BAAsB;AAkBd,UAjBjB,AAAc,aAAD,KAAK,8BACd,AAAc,aAAD,IACb,AAAU,SAAD,iBACT,QAAQ,EACR,AAAU,SAAD,cACT,MAAM,EACN,KAAK,EACL,UAAU,EACV,aAAa,EACb,KAAK,EACL,KAAK,EACL,0BACI,AAAO,AAAe,MAAhB,6BAC4B,aAA5B,AAAO,AAAe,MAAhB,yBAAwB,IAC9B,eACN,AAAO,AAAe,MAAhB,6BAC6B,aAA7B,AAAO,AAAe,MAAhB,0BAAyB,IAC/B;;AAEa,2BAAa,0BACpC,KAAK,EACL,KAAK,EACL,MAAM,EACN,KAAK,EACL,SAAS,EACT,aAAa,EACb,cAAc,EACd,QAAQ,EACR,SAAS;AACgB,UAA7B,gBAAgB,AAAU,UAAA,QAAC;AACG,UAA9B,iBAAiB,AAAU,UAAA,QAAC;;AAE9B,YAAI,AAAO,AAAY,MAAb,mBAAgB,mBACtB,AAAO,AAAY,MAAb,0BAAsB;AAOhB,UANd,AAAM,KAAD,WAAgC,OAAtB,AAAM,KAAD,0BAAC,OACjB,gCACe,WAAX,AAAM,KAAD,aAAQ,AAAM,KAAD,YACZ,WAAC,QAAQ,IAAG,AAAM,KAAD,SAAS,AAAM,KAAD,QAC/B,WAAC,QAAQ,IAAG,AAAM,KAAD,QAAQ,AAAM,KAAD,QACpC,MAAM,EACN,KAAK;AAOC,UANd,AAAM,KAAD,WAAgC,OAAtB,AAAM,KAAD,0BAAC,OACjB,gCACe,WAAX,AAAM,KAAD,aAAQ,AAAM,KAAD,YACZ,WAAC,QAAQ,IAAG,AAAM,KAAD,QAAQ,AAAM,KAAD,SAC9B,WAAC,QAAQ,IAAG,AAAM,KAAD,SAAS,AAAM,KAAD,OACrC,MAAM,EACN,KAAK;AAC+B,UAA5C,YAAY,oBAAa,AAAM,KAAD,SAAS,IAAI;AAC3C,cAAI,AAAO,AAAY,MAAb,0BAAsB;AAC9B,2BAAe,WAAX,AAAM,KAAD,aAAQ,AAAM,KAAD;AAE+C,cADnE,iBAAiB,8BACY,aAAzB,AAAM,AAAiB,KAAlB,oCAAsB,AAAU,SAAD,SAAQ,AAAM,AAAW,KAAZ;;AAGY,cADjE,iBAAiB,8BACW,aAAxB,AAAM,AAAgB,KAAjB,mCAAqB,AAAU,SAAD,SAAQ,AAAM,AAAU,KAAX;gBACjD,KAAI,AAAO,AAAY,MAAb,mBAAgB,sBAC7B,AAAO,AAAO,MAAR;AACR,2BAAe,WAAX,AAAM,KAAD,aAAQ,AAAM,KAAD;AAEsC,cAD1D,iBACI,8BAAe,AAAM,AAAW,KAAZ,eAA8B,aAAf,AAAa,YAAD,MAAK;;AAGC,cADzD,iBACI,8BAAe,AAAM,AAAU,KAAX,cAA6B,aAAf,AAAa,YAAD,MAAK;;AAGI,YAD7D,iBACI,8BAAe,AAAM,AAAO,AAAU,KAAlB,sBAAsB,AAAa,YAAD;;AAEhB,UAA5C,YAAY,oBAAa,AAAM,KAAD,SAAS,IAAI;AAC3C,cAAI,AAAO,AAAY,MAAb,0BAAsB;AAC9B,2BAAe,WAAX,AAAM,KAAD,aAAQ,AAAM,KAAD;AAE6C,cADjE,iBAAiB,8BACW,aAAxB,AAAM,AAAgB,KAAjB,mCAAqB,AAAU,SAAD,SAAQ,AAAM,AAAU,KAAX;;AAGe,cADnE,iBAAiB,8BACY,aAAzB,AAAM,AAAiB,KAAlB,oCAAsB,AAAU,SAAD,SAAQ,AAAM,AAAW,KAAZ;gBAClD,KAAI,AAAO,AAAY,MAAb,mBAAgB,sBAC7B,AAAO,AAAO,MAAR;AACR,2BAAe,WAAX,AAAM,KAAD,aAAQ,AAAM,KAAD;AAEqC,cADzD,iBACI,8BAAe,AAAM,AAAU,KAAX,cAA6B,aAAf,AAAa,YAAD,MAAK;;AAGG,cAD1D,iBACI,8BAAe,AAAM,AAAW,KAAZ,eAA8B,aAAf,AAAa,YAAD,MAAK;;AAGM,YADhE,iBACI,8BAAe,AAAM,AAAO,AAAa,KAArB,yBAAyB,AAAa,YAAD;;AAEpC,uCACvB,iCAA0B,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EACrD,cAAc,EAAE,cAAc,EAAE,SAAS;AACP,UAA1C,iBAAiB,AAAsB,sBAAA,QAAC;AACE,UAA1C,iBAAiB,AAAsB,sBAAA,QAAC;AACb,2BAAa,0BACpC,KAAK,EACL,KAAK,EACL,MAAM,EACN,KAAK,EACL,SAAS,EACT,cAAc,EACd,cAAc,EACd,SAAS,EACT,SAAS;AACiB,UAA9B,iBAAiB,AAAU,UAAA,QAAC;AACE,UAA9B,iBAAiB,AAAU,UAAA,QAAC;;AAgBnB,QAdX,iCACI,KAAK,EACL,SAAS,EACT,KAAK,EACL,aAAa,EACb,cAAc,EACd,aAAa,EACb,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,cAAc,EACd,cAAc,EACd,SAAS,EACT,SAAS,EACT,MAAM;;;EAGhB;wEAIqB,OACc,QACF,OACX,WACH,eACA,gBACV;AACI,qBAAa,AAAM,KAAD;AAClB,wBAAgB,AAAO,AAAY,AACN,MADP,0BAAsB,YACnD,AAAO,AAAY,MAAb,0BAAsB,WAC5B,AAAO,AAAY,MAAb,0BAAsB;AACnB,yBAAiC,aAAhB,AAAS,QAAD,sBACjC,AAAO,AAAe,MAAhB,6BACmC,AAAK,aAAvC,AAAO,AAAe,MAAhB,+BAA8B,iBACpC,AAAO,AAAe,MAAhB,0BACR;AACV,QAAK,AAAO,AAAY,MAAb,0BAAsB,qBAAW,AAAM,KAAD,kBAC5C,AAAO,AAAY,MAAb,0BAAsB,uBAAa,AAAM,KAAD,kBAC/C,AAAO,AAAY,MAAb,0BAAsB,WAC5B,AAAO,AAAY,MAAb,0BAAsB;AAQX,MAPnB,AAAc,aAAD,KAA+B,YAAzB,AAAU,SAAD,iBAA2C,uCACjE,AAAc,aAAD,KACb,2BACE,cAAc,EACd,AAAc,aAAD,IACb,AAAU,SAAD,6BACmC,WAA3C,aAAa,GAAG,AAAM,KAAD,QAAQ,AAAM,KAAD,eAAW,MAC9C,UAAU;AAClB,UAAI,aAAa;AASQ,QARvB,AAAe,cAAD,KACgB,YAAzB,AAAU,SAAD,iBAA2C,uCAC/C,AAAe,cAAD,KACd,2BACE,cAAc,EACd,AAAe,cAAD,IACd,AAAU,SAAD,6BACkC,WAA1C,aAAa,GAAG,AAAM,KAAD,OAAO,AAAM,KAAD,eAAW,MAC7C,UAAU;;;AAUL,MAPnB,AAAc,aAAD,KAA+B,YAAzB,AAAU,SAAD,iBAA2C,uCACjE,AAAc,aAAD,KACb,2BACE,cAAc,EACd,AAAc,aAAD,IACb,AAAU,SAAD,6BACmC,WAA3C,aAAa,GAAG,AAAM,KAAD,QAAQ,AAAM,KAAD,eAAW,MAC9C,UAAU;AAClB,UAAI,aAAa;AASQ,QARvB,AAAe,cAAD,KACgB,YAAzB,AAAU,SAAD,iBAA2C,uCAC/C,AAAe,cAAD,KACd,2BACE,cAAc,EACd,AAAe,cAAD,IACd,AAAU,SAAD,6BACkC,WAA1C,aAAa,GAAG,AAAM,KAAD,OAAO,AAAM,KAAD,eAAW,MAC7C,UAAU;;;AAG1B,UAAuB,+BAAC,aAAa,EAAE,cAAc;EACvD;0DAKQ,OACa,OACc,QACF,OACX,WACH,eACA,gBACV,UACA;AACI,qBAAa,AAAM,KAAD;AACZ,iBAAS,AAAU,SAAD;AACxB,wBAAgB,AAAO,AAAY,AACN,MADP,0BAAsB,YACnD,AAAO,AAAY,MAAb,0BAAsB,WAC5B,AAAO,AAAY,MAAb,0BAAsB;AACrB,mBAAW,AAAO,AAAO,MAAR;AAClB,gCAAQ,aAAa,GAAG,AAAM,KAAD,QAAQ,AAAM,KAAD;AACzC,gBAAe,AAAkB,aAAxB,KAAK,IAAG,gBAAM,QAAQ,OAAc,aAAN,KAAK,IAAG,gBAAM,QAAQ;AACxE,mBAAK,AAAM,KAAD;AAkBG,MAjBX,AAAc,aAAD,KAAK,8BACd,AAAc,aAAD,IACb,AAAM,KAAD,SACL,KAAK,EACL,aAAa,GACoB,AAAiC,YAA1D,AAAU,SAAD,iBAA2C,yCACvB,YAAzB,AAAU,SAAD,iBAA2C,sCACtD,AAAU,SAAD,kBACe,sCAC5B,AAAU,SAAD,iBACf,MAAM,EACN,QAAQ,EACR,AAAU,SAAD,cACT,KAAK,EACL,aAAa,EACb,KAAK,EACL,UAAU,EACV,MAAM;;AAsBC,MApBX,AAAc,aAAD,KAAK,8BACd,AAAc,aAAD,IACb,AAAM,KAAD,SACL,KAAK,EACL,AAAO,AAAY,AAAiB,MAA9B,0BAAsB,WACpB,AAAO,AAAY,MAAb,0BAAsB,YACN,sCACxB,aAAa,GACkB,AAAiC,YAA1D,AAAU,SAAD,iBAA2C,yCACvB,YAAzB,AAAU,SAAD,iBAA2C,sCACtD,AAAU,SAAD,kBACe,sCAC5B,AAAU,SAAD,iBACnB,MAAM,EACN,QAAQ,EACR,AAAU,SAAD,cACT,KAAK,EACL,aAAa,EACb,KAAK,EACL,UAAU,EACV,MAAM;;AAKQ,IAHpB,iBAAiB,aAAa,GACxB,+BAAwB,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAC5D,aAAa,EAAE,cAAc,EAAE,QAAQ,IACzC,cAAc;AACpB,UAAuB,+BAAC,aAAa,EAAE,cAAc;EACvD;oEAIQ,OACa,OACc,QACF,OACX,WACH,eACA,gBACV;AACI,mBAAW,AAAO,AAAO,MAAR;AACjB,qBAAa,AAAM,KAAD;AACZ,iBAAS,AAAU,SAAD;AACxB,gBACsB,WAAlB,WAAV,AAAM,KAAD,YAAO,mBAAM,QAAQ,iBAAkB,WAAV,AAAM,KAAD,YAAO,kBAAM,QAAQ;AACjE,mBAAK,AAAM,KAAD;AAeG,MAdX,AAAe,cAAD,KAAK,8BACf,AAAe,cAAD,IACd,AAAM,KAAD,SACL,KAAK,EACoB,YAAzB,AAAU,SAAD,iBAA2C,sCACtB,sCACA,oCAC9B,MAAM,EACN,QAAQ,EACR,AAAU,SAAD,cACT,KAAK,EACL,aAAa,EACb,KAAK,EACL,UAAU,EACV,MAAM;;AAgBC,MAdX,AAAe,cAAD,KAAK,8BACf,AAAe,cAAD,IACd,AAAM,KAAD,SACL,KAAK,EACoB,YAAzB,AAAU,SAAD,iBAA2C,sCACtB,sCACA,oCAC9B,MAAM,EACN,QAAQ,EACR,AAAU,SAAD,cACT,KAAK,EACL,aAAa,EACb,KAAK,EACL,UAAU,EACV,MAAM;;AAEZ,UAAO,eAAc;EACvB;wEAIiC,OACX,WACD,OACF,eACA,gBACV,eACA,UACA,UACA,WACW,uBACD,uBACV,kBACA,kBAC0B;AAC5B;AAAM;AAAO;AAAO;AACR,iBAAS,AAAU,SAAD;AAEqB,IADxD,OAAO,2BAAoB,aAAa,EAAE,QAAQ,EAAE,MAAM,EACtD,AAAU,AAAc,SAAf,UAAU,kBAAQ,AAAU,SAAD;AACJ,IAApC,OAAO,qBAAc,IAAI,EAAE,QAAQ;AACnC,kBAAI,aAAa;AAEyC,MADxD,QAAQ,2BAAoB,cAAc,EAAE,SAAS,EAAE,MAAM,EACzD,AAAU,AAAc,SAAf,UAAU,kBAAQ,AAAU,SAAD;AACF,MAAtC,QAAQ,qBAAc,KAAK,EAAE,QAAQ;;AAEvC,QAAI,AAAO,AAAY,MAAb,0BAAsB,aAC5B,AAAO,AAAY,MAAb,0BAAsB,YACvB,cAAc,IAAI,QAAQ,cAAc,IAAI;AAEK,MADxD,QAAQ,2BAAoB,cAAc,EAAE,SAAS,EAAE,MAAM,EACzD,AAAU,AAAc,SAAf,UAAU,kBAAQ,AAAU,SAAD;AACF,MAAtC,QAAQ,qBAAc,KAAK,EAAE,QAAQ;AAGmB,MADxD,QAAQ,2BAAoB,cAAc,EAAE,SAAS,EAAE,MAAM,EACzD,AAAU,AAAc,SAAf,UAAU,kBAAQ,AAAU,SAAD;AACF,MAAtC,QAAQ,qBAAc,KAAK,EAAE,QAAQ;;AAEvC,QAAI,AAAU,SAAD,UAAU,kBACnB,AAAU,SAAD,oBACR,AAAU,SAAD,gBAAgB,QAA8B,aAAtB,AAAU,SAAD,gBAAe;AAChD,qBACR,gCAAyB,IAAI,EAAE,AAAU,SAAD,eAAe,MAAM;AAGpB,MAF7C,AAAM,KAAD,iBAAiB,8BACC,aAAnB,AAAS,AAAO,QAAR,cAA4B,aAAf,AAAS,QAAD,UAAS,GACnB,aAAnB,AAAS,AAAO,QAAR,cAA6B,aAAhB,AAAS,QAAD,WAAU;AAEgB,MAD3D,AAAM,KAAD,mBAAwB,qBAAS,AAAM,AAAc,KAAf,kBACvC,AAAM,AAAc,KAAf,kBAAkB,AAAS,QAAD,QAAQ,AAAS,QAAD;AACnD,UAAW,YAAP,MAAM;AACsB,QAA9B,AAAM,KAAD,iBAAiB,QAAQ;;AAEnB,mBAAO,AAAS,QAAD;AAC1B,YAAI,AAAO,AAAY,MAAb,mBAAgB,sBACtB,AAAM,KAAD,sCACO,WAAZ,AAAM,KAAD,cAAS,AAAM,KAAD;AAGgC,UAFrD,AAAM,KAAD,iBAAiB,8BACR,AAAa,aAAvB,AAAK,IAAD,sBAAQ,AAAK,IAAD,uBAAS,AAAS,QAAD,SACxB,AAAkB,aAA3B,AAAK,IAAD,QAAmB,aAAZ,AAAK,IAAD,WAAU,IAAoB,aAAhB,AAAS,QAAD,WAAU;cAC9C,KAAI,AAAO,AAAY,MAAb,mBAAgB,uBAC5B,AAAM,KAAD,sCACM,WAAZ,AAAM,KAAD,cAAS,AAAM,KAAD;AAGwB,UAF7C,AAAM,KAAD,iBAAiB,8BACR,AAAiB,aAA3B,AAAK,IAAD,SAAmB,aAAX,AAAK,IAAD,UAAS,IAAmB,aAAf,AAAS,QAAD,UAAS,GACrC,AAAc,aAAvB,AAAK,IAAD,qBAAO,AAAK,IAAD,wBAAU,AAAS,QAAD;;AAIgB,UAFrD,AAAM,KAAD,iBAAiB,8BACR,AAAiB,aAA3B,AAAK,IAAD,SAAmB,aAAX,AAAK,IAAD,UAAS,IAAmB,aAAf,AAAS,QAAD,UAAS,GACrC,AAAkB,aAA3B,AAAK,IAAD,QAAmB,aAAZ,AAAK,IAAD,WAAU,IAAoB,aAAhB,AAAS,QAAD,WAAU;;AAGM,QAD3D,AAAM,KAAD,mBAAwB,qBAAS,AAAM,AAAc,KAAf,kBACvC,AAAM,AAAc,KAAf,kBAAkB,AAAS,QAAD,QAAQ,AAAS,QAAD;AACa,QAAhE,AAAM,KAAD,iBAAiB,oBAAa,IAAI,EAAE,AAAU,SAAD;;AAEpD,oBAAI,aAAa;AACH,wBACR,gCAAyB,KAAK,EAAE,AAAU,SAAD,eAAe,MAAM;AAGnB,QAF/C,AAAM,KAAD,kBAAkB,8BACC,aAApB,AAAU,AAAO,SAAR,cAA6B,aAAhB,AAAU,SAAD,UAAS,GACpB,aAApB,AAAU,AAAO,SAAR,cAA8B,aAAjB,AAAU,SAAD,WAAU;AAEiB,QAD9D,AAAM,KAAD,oBAAyB,qBAAS,AAAM,AAAe,KAAhB,mBACxC,AAAM,AAAe,KAAhB,mBAAmB,AAAU,SAAD,QAAQ,AAAU,SAAD;AACtD,YAAW,YAAP,MAAM;AACwB,UAAhC,AAAM,KAAD,kBAAkB,SAAS;;AAErB,sBAAQ,AAAU,SAAD;AAG4B,UAFxD,AAAM,KAAD,kBAAkB,8BACR,AAAkB,aAA7B,AAAM,KAAD,SAAoB,aAAZ,AAAM,KAAD,UAAS,IAAoB,aAAhB,AAAU,SAAD,UAAS,GACvC,AAAmB,aAA7B,AAAM,KAAD,QAAoB,aAAb,AAAM,KAAD,WAAU,IAAqB,aAAjB,AAAU,SAAD,WAAU;AAEQ,UAD9D,AAAM,KAAD,oBAAyB,qBAAS,AAAM,AAAe,KAAhB,mBACxC,AAAM,AAAe,KAAhB,mBAAmB,AAAU,SAAD,QAAQ,AAAU,SAAD;AACY,UAAlE,AAAM,KAAD,kBAAkB,oBAAa,KAAK,EAAE,AAAU,SAAD;;;AAGxD,UAAI,AAAO,AAAY,MAAb,0BAAsB,aAC5B,AAAO,AAAY,MAAb,0BAAsB,YACvB,KAAK,IAAI,QAAQ,KAAK,IAAI;AACrB,wBACR,gCAAyB,KAAK,EAAE,AAAU,SAAD,eAAe,MAAM;AAGnB,QAF/C,AAAM,KAAD,kBAAkB,8BACC,aAApB,AAAU,AAAO,SAAR,cAA6B,aAAhB,AAAU,SAAD,UAAS,GACpB,aAApB,AAAU,AAAO,SAAR,cAA8B,aAAjB,AAAU,SAAD,WAAU;AAEiB,QAD9D,AAAM,KAAD,oBAAyB,qBAAS,AAAM,AAAe,KAAhB,mBACxC,AAAM,AAAe,KAAhB,mBAAmB,AAAU,SAAD,QAAQ,AAAU,SAAD;AACtD,YAAW,YAAP,MAAM;AACwB,UAAhC,AAAM,KAAD,kBAAkB,SAAS;;AAErB,sBAAQ,AAAU,SAAD;AAG4B,UAFxD,AAAM,KAAD,kBAAkB,8BACR,AAAkB,aAA7B,AAAM,KAAD,SAAoB,aAAZ,AAAM,KAAD,UAAS,IAAoB,aAAhB,AAAU,SAAD,UAAS,GACvC,AAAmB,aAA7B,AAAM,KAAD,QAAoB,aAAb,AAAM,KAAD,WAAU,IAAqB,aAAjB,AAAU,SAAD,WAAU;AAEQ,UAD9D,AAAM,KAAD,oBAAyB,qBAAS,AAAM,AAAe,KAAhB,mBACxC,AAAM,AAAe,KAAhB,mBAAmB,AAAU,SAAD,QAAQ,AAAU,SAAD;AACY,UAAlE,AAAM,KAAD,kBAAkB,oBAAa,KAAK,EAAE,AAAU,SAAD;;AAE1C,wBACR,gCAAyB,KAAK,EAAE,AAAU,SAAD,eAAe,MAAM;AAGnB,QAF/C,AAAM,KAAD,kBAAkB,8BACC,aAApB,AAAU,AAAO,SAAR,cAA6B,aAAhB,AAAU,SAAD,UAAS,GACpB,aAApB,AAAU,AAAO,SAAR,cAA8B,aAAjB,AAAU,SAAD,WAAU;AAEiB,QAD9D,AAAM,KAAD,oBAAyB,qBAAS,AAAM,AAAe,KAAhB,mBACxC,AAAM,AAAe,KAAhB,mBAAmB,AAAU,SAAD,QAAQ,AAAU,SAAD;AACtD,YAAW,YAAP,MAAM;AACwB,UAAhC,AAAM,KAAD,kBAAkB,SAAS;;AAErB,sBAAQ,AAAU,SAAD;AAG4B,UAFxD,AAAM,KAAD,kBAAkB,8BACR,AAAkB,aAA7B,AAAM,KAAD,SAAoB,aAAZ,AAAM,KAAD,UAAS,IAAoB,aAAhB,AAAU,SAAD,UAAS,GACvC,AAAmB,aAA7B,AAAM,KAAD,QAAoB,aAAb,AAAM,KAAD,WAAU,IAAqB,aAAjB,AAAU,SAAD,WAAU;AAEQ,UAD9D,AAAM,KAAD,oBAAyB,qBAAS,AAAM,AAAe,KAAhB,mBACxC,AAAM,AAAe,KAAhB,mBAAmB,AAAU,SAAD,QAAQ,AAAU,SAAD;AACY,UAAlE,AAAM,KAAD,kBAAkB,oBAAa,KAAK,EAAE,AAAU,SAAD;;;;AAIxD,UAAI,AAAO,AAAY,MAAb,mBAAgB,sBACtB,AAAM,KAAD,sCACO,WAAZ,AAAM,KAAD,cAAS,AAAM,KAAD;AAGgC,QAFrD,AAAM,KAAD,iBAAiB,8BACR,AAAa,AAAiB,aAAxC,AAAK,IAAD,sBAAQ,AAAK,IAAD,uBAAS,AAAS,QAAD,UAAS,GACjC,AAAkB,aAA3B,AAAK,IAAD,QAAmB,aAAZ,AAAK,IAAD,WAAU,IAAoB,aAAhB,AAAS,QAAD,WAAU;YAC9C,KAAI,AAAO,AAAY,MAAb,mBAAgB,uBAC5B,AAAM,KAAD,sCACM,WAAZ,AAAM,KAAD,cAAS,AAAM,KAAD;AAG4B,QAFjD,AAAM,KAAD,iBAAiB,8BACR,AAAiB,aAA3B,AAAK,IAAD,SAAmB,aAAX,AAAK,IAAD,UAAS,IAAmB,aAAf,AAAS,QAAD,UAAS,GACrC,AAAc,aAAvB,AAAK,IAAD,qBAAO,AAAK,IAAD,WAA0B,aAAhB,AAAS,QAAD,WAAU;;AAIM,QAFrD,AAAM,KAAD,iBAAiB,8BACR,AAAiB,aAA3B,AAAK,IAAD,SAAmB,aAAX,AAAK,IAAD,UAAS,IAAmB,aAAf,AAAS,QAAD,UAAS,GACrC,AAAkB,aAA3B,AAAK,IAAD,QAAmB,aAAZ,AAAK,IAAD,WAAU,IAAoB,aAAhB,AAAS,QAAD,WAAU;;AAGM,MAD3D,AAAM,KAAD,mBAAwB,qBAAS,AAAM,AAAc,KAAf,kBACvC,AAAM,AAAc,KAAf,kBAAkB,AAAS,QAAD,QAAQ,AAAS,QAAD;AACnD,oBAAI,aAAa;AACf,YAAI,AAAO,AAAY,MAAb,mBAAgB,sBACtB,AAAM,KAAD,sCACO,WAAZ,AAAM,KAAD,cAAS,AAAM,KAAD;AAGmC,UAFxD,AAAM,KAAD,kBAAkB,8BACR,AAAc,AAAkB,aAA3C,AAAM,KAAD,sBAAQ,AAAM,KAAD,uBAAS,AAAU,SAAD,UAAS,GACnC,AAAmB,aAA7B,AAAM,KAAD,QAAoB,aAAb,AAAM,KAAD,WAAU,IAAqB,aAAjB,AAAU,SAAD,WAAU;cACjD,KAAI,AAAO,AAAY,MAAb,mBAAgB,uBAC5B,AAAM,KAAD,sCACM,WAAZ,AAAM,KAAD,cAAS,AAAM,KAAD;AAG2B,UAFhD,AAAM,KAAD,kBAAkB,8BACR,AAAkB,aAA7B,AAAM,KAAD,SAAoB,aAAZ,AAAM,KAAD,UAAS,IAAoB,aAAhB,AAAU,SAAD,UAAS,GACvC,AAAe,aAAzB,AAAM,KAAD,qBAAO,AAAM,KAAD,wBAAU,AAAU,SAAD;;AAIgB,UAFxD,AAAM,KAAD,kBAAkB,8BACR,AAAkB,aAA7B,AAAM,KAAD,SAAoB,aAAZ,AAAM,KAAD,UAAS,IAAoB,aAAhB,AAAU,SAAD,UAAS,GACvC,AAAmB,aAA7B,AAAM,KAAD,QAAoB,aAAb,AAAM,KAAD,WAAU,IAAqB,aAAjB,AAAU,SAAD,WAAU;;AAGM,QAD9D,AAAM,KAAD,oBAAyB,qBAAS,AAAM,AAAe,KAAhB,mBACxC,AAAM,AAAe,KAAhB,mBAAmB,AAAU,SAAD,QAAQ,AAAU,SAAD;;AAExD,UAAI,AAAO,AAAY,MAAb,0BAAsB,aAC5B,AAAO,AAAY,MAAb,0BAAsB,YACvB,KAAK,IAAI,QAAQ,KAAK,IAAI;AAGuB,QAFxD,AAAM,KAAD,kBAAkB,8BACR,AAAkB,aAA7B,AAAM,KAAD,SAAoB,aAAZ,AAAM,KAAD,UAAS,IAAoB,aAAhB,AAAU,SAAD,UAAS,GACvC,AAAmB,aAA7B,AAAM,KAAD,QAAoB,aAAb,AAAM,KAAD,WAAU,IAAqB,aAAjB,AAAU,SAAD,WAAU;AAEQ,QAD9D,AAAM,KAAD,oBAAyB,qBAAS,AAAM,AAAe,KAAhB,mBACxC,AAAM,AAAe,KAAhB,mBAAmB,AAAU,SAAD,QAAQ,AAAU,SAAD;AAGE,QAFxD,AAAM,KAAD,kBAAkB,8BACR,AAAkB,aAA7B,AAAM,KAAD,SAAoB,aAAZ,AAAM,KAAD,UAAS,IAAoB,aAAhB,AAAU,SAAD,UAAS,GACvC,AAAmB,aAA7B,AAAM,KAAD,QAAoB,aAAb,AAAM,KAAD,WAAU,IAAqB,aAAjB,AAAU,SAAD,WAAU;AAEQ,QAD9D,AAAM,KAAD,oBAAyB,qBAAS,AAAM,AAAe,KAAhB,mBACxC,AAAM,AAAe,KAAhB,mBAAmB,AAAU,SAAD,QAAQ,AAAU,SAAD;;;EAG5D;kEAGW,eACiB,UACnB,MACE,aAC2B,QAC9B,OACC,UACU,OACE,OACY,cACxB;AAEI,mBAAW,AAAO,AAAkB,AACU,MAD7B,4BAA4B,qBACpD,AAAO,AAAkB,MAAnB,0BAAmC,yCACzC,AAAO,AAAkB,MAAnB;AACA,oBAAY,QAAQ,OAAa;AAC3C,QAAI,AAAO,AAAY,MAAb,0BAAsB,WAC5B,AAAO,MAAD,mBAAgB,yBACtB,AAAO,AAAO,MAAR;AAKW,MAJnB,WAAoB,YAAT,QAAQ,EAA4B,sCACjB,wCACd,YAAT,QAAQ,EAA4B,yCACT,qCACxB,QAAQ;;AAON,IALd,WAAY,AAAM,AAAa,AAAc,AAAO,AAEA,KAFnC,0CAAsC,MAC9C,AAAO,AAAY,MAAb,mBAAgB,oBACnB,AAAO,AAAY,MAAb,mBAAgB,qBACjB,YAAT,QAAQ,EAA4B,uCACd,wCACxB,QAAQ;AACd,YAAQ,QAAQ;;;;AAQC,QALb,gBAA8B,AACR,AACN,AACM,AACV,aAJI,aAAa,iBACzB,AAAW,UAAD,wBACV,WAAW,IACE,aAAZ,AAAK,IAAD,WAAU,QAEf,SAAS;AACb;;;;AAOa,QALb,gBAA8B,AACR,AACN,AACM,AACV,aAJI,aAAa,iBACzB,AAAW,UAAD,wBACV,WAAW,IACE,aAAZ,AAAK,IAAD,WAAU,QAEf,SAAS;AACb;;;;AAW6B,QAT7B,gBAAgB,oCACZ,MAAM,EACN,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,WAAW,EACX,KAAK,EACL,KAAK,EACL,YAAY,EACZ,AAAO,AAAO,MAAR;AACV;;;;AAEA;;;AAEJ,UAAO,cAAa;EACtB;4DAGkC,OAAc,eAC7B,WAAgB,SAAc;AAC/C,YAAQ,SAAS;;;AAIkD,QAF/D,gBAAgB,WAAC,QAAQ,cAClB,OAAO,IAAiB,aAAd,aAAa,iBAAG,KAAK,IAAiB,aAAd,aAAa,iBAAG,KAAK,cACvD,OAAO,IAAiB,aAAd,aAAa,iBAAG,KAAK,IAAiB,aAAd,aAAa,iBAAG,KAAK;AAC9D;;;;AAI+D,QAF/D,gBAAgB,WAAC,QAAQ,cAClB,OAAO,IAAiB,aAAd,aAAa,iBAAG,KAAK,IAAiB,aAAd,aAAa,iBAAG,KAAK,cACvD,OAAO,IAAiB,aAAd,aAAa,iBAAG,KAAK,IAAiB,aAAd,aAAa,iBAAG,KAAK;AAC9D;;;;AAE6B,QAA7B,gBAAgB,aAAa;AAC7B;;;AAEJ,UAAO,cAAa;EACtB;8EAIsC,QAC7B,MACD,OACC,UACE,aACQ,OACE,OACY,cACxB;AACA;AACF;AAAU,oBAAY;AACtB;AACD;AAC0B,mBAC1B,wCAAiC,MAAM,EAAE,KAAK,EAAE,QAAQ;AACP,IAArD,WAAoB,YAAT,QAAQ,EAA4B;AAC5B,4BAAoB,mBAAa;AACJ,IAAhD,AAAiB,iBAAA,QAAC,GAAK;AACuB,IAA9C,AAAiB,iBAAA,QAAC,GAAK;AAC0B,IAAjD,AAAiB,iBAAA,QAAC,GAAK;AAC0B,IAAjD,AAAiB,iBAAA,QAAC,GAAK;AACwB,IAA/C,AAAiB,iBAAA,QAAC,GAAK;AAC+C,IAAtE,gBAAgB,AAAkB,AAA6B,iBAA9B,WAAkB,cAAT,QAAQ;AAClD,WAAO,SAAS,IAAkB,aAAd,aAAa,IAAG;AAayC,MAZ3E,YAAY,8BACR,AAAM,AAAE,KAAH,iBACL,QAAQ,EACR,IAAI,EACJ,WAAW,EACX,MAAM,EACN,KAAK,EACL,QAAQ,EACR,KAAK,EACL,KAAK,EACL,YAAY,EACZ,gBACgC,aAA5B,AAAO,AAAe,MAAhB,yBAAwB,GAAgC,aAA7B,AAAO,AAAe,MAAhB,0BAAyB;AAMxB,MALhD,YAAY,2BACR,8BAAe,AAAM,KAAD,IAAI,SAAS,GACjC,IAAI,EACJ,AAAO,AAAkB,MAAnB,2BACN,AAAO,AAAkB,AAAc,MAAjC,4BAA4B,kBAC9B,AAAO,AAAkB,MAAnB;AAIqD,MAHnE,YAA0B,AAEqB,aAFnC,AAAU,SAAD,QAAO,KACR,AAAoB,aAAlC,AAAU,SAAD,qBAAO,AAAU,SAAD,wBACvB,AAAM,AAAW,AAAc,KAA1B,iDACT,kBAAW,SAAS,EAAE,AAAM,AAAY,KAAb;AACiC,MAAhE,0BAAgB,QAAQ,IAAiB,aAAd,aAAa,IAAG,IAAkB,aAAd,aAAa,IAAG;AAC/C,MAAhB,WAAW;;AAEb,UAAO,UAAS;EAClB;sFAIsC,QAAY,OAAY;AACnB,iBAAS,AAAO,MAAD;AAC9C,iCAAS,AAAM,AAAQ,MAAR,QAAC,KAAK;AACI,oBACjB,AAAI,aAAlB,AAAO,MAAD,aAAU,iBAAI,KAAK,IAAG,AAAM,MAAA,QAAO,aAAN,KAAK,IAAG,KAAK;AACjB,wBACzB,aAAN,KAAK,IAAG,IAAI,AAAM,MAAA,QAAO,aAAN,KAAK,IAAG,KAAK;AACZ;AACxB,QAAI,AAAO,AAAY,MAAb,mBAAgB,YAAY,AAAM,KAAD,KAAkB,aAAd,AAAO,MAAD,aAAU;AACvB,MAAtC,WAAmC;;AAEnC,UAAI,AAAM,KAAD,KAAI;AAKyB,QAJpC,WACkC,WADrB,AAAU,SAAD,eACP,aAAP,MAAM,iCAAG,AAAU,SAAD,aACV,aAAP,MAAM,iCAAG,AAAU,SAAD,uBAAW,QAAQ,IAChB,qCACA;YACzB,KAAI,AAAM,KAAD,KAAkB,aAAd,AAAO,MAAD,aAAU;AAKE,QAJpC,WACsC,WADzB,AAAc,aAAD,eACX,aAAP,MAAM,iCAAG,AAAc,aAAD,aACd,aAAP,MAAM,iCAAG,AAAc,aAAD,uBAAW,QAAQ,IACpB,qCACA;;AAE9B,uBAAK,AAAU,SAAD,0BAAe,AAAc,aAAD;AACF,UAAtC,WAAmC;cAC9B,gBAAK,AAAU,SAAD;AAGc,UAFjC,WAAsC,WAAT,WAAjB,AAAU,SAAD,eAAU,MAAM,kBAAyB,WAArB,AAAc,aAAD,eAAU,MAAM,MACxC,wCACA;;AAEpB,sCAAkD,WAAxB,WAAjB,AAAU,SAAD,eAAU,AAAc,aAAD,iBAAW;AACpD,2BACC,AAAS,aAAf,KAAK,iBAAG,KAAK,iCAAsB,WAAjB,AAAU,SAAD,eAAiB,aAAN,KAAK,KAAU,aAAN,KAAK,IAAG;AAOvB,UANrC,WAAW,WAAC,QAAQ,IACd,AAAW,UAAD,gBAAG,MAAM,IACS,qCACA,wCAC5B,AAAW,UAAD,gBAAG,MAAM,IACS,wCACA;;;;AAIxC,UAAO,SAAQ;EACjB;8CAEyC;AACf;AACxB,YAAQ,QAAQ;;;AAEqC,QAAjD,oBAA4C;AAC5C;;;;AAE+C,QAA/C,oBAA4C;AAC5C;;;;AAEkD,QAAlD,oBAA4C;AAC5C;;;;AAEkD,QAAlD,oBAA4C;AAC5C;;;;AAEgD,QAAhD,oBAA4C;AAC5C;;;AAEJ,UAAO,kBAAiB;EAC1B;4DAImB,UAAe,UAAqB,QAAa;AAClE,qBAAO,QAAQ,IACJ,qBACQ,AAAuB,aAAlC,AAAS,QAAD,MAAqB,aAAf,AAAS,QAAD,UAAS,iBAAK,AAAO,MAAD,QAC/B,AAAwB,aAAnC,AAAS,QAAD,MAAsB,aAAhB,AAAS,QAAD,WAAU,iBAAK,AAAO,MAAD,OAC5B,AAAc,aAA7B,AAAS,QAAD,uBAAS,AAAO,MAAD,sBAAQ,AAAO,MAAD,SACrB,AAAa,aAA7B,AAAS,QAAD,wBAAU,AAAO,MAAD,qBAAO,AAAO,MAAD,YAClC,qBAAoB,aAAX,AAAS,QAAD,MAAqB,aAAf,AAAS,QAAD,UAAS,GAChC,aAAX,AAAS,QAAD,MAAsB,aAAhB,AAAS,QAAD,WAAU,GAAI,AAAS,QAAD,QAAQ,AAAS,QAAD;EACtE;kDAIW,QAC2B,QACjB,OACC,WACW,OACzB,OACc;;AACP,kBACT,AAAmB,kBAAD,IAAI,OAAO,AAAmB,kBAAD,SAAS;AACxC;AACL;AACR,iBAA8B,KAAtB,AAAM,KAAD,wBAAC,OAAmB,AAAM,KAAD;AACT,IAApC,iBAAiB,AAAU,SAAD;AAC1B,QAAI,AAAM,KAAD,sBAAsB;AACQ,MAArC,gBAAgB;AACU,MAA1B,AAAc,aAAD,QAAQ,KAAK;AACc,MAAxC,AAAc,aAAD,aAAa,cAAc;AACX,MAA7B,AAAc,aAAD,UAAU,MAAM;AACgB,MAA7C,AAAc,aAAD,cAAc,AAAO,MAAD;AACD,MAAhC,AAAc,aAAD,cAAc,KAAK;AACM,MAAtC,AAAM,KAAD,mBAAmB,aAAa;AACG,MAAxC,QAAQ,AAAM,KAAD,SAAS,AAAc,aAAD;AACK,MAAxC,iBAAiB,AAAc,aAAD;AACE,cAAhC,WAAQ,AAAc,aAAD;;AAEvB,QAAI,KAAK,IAAI,QACT,KAAK,IAAI,kBACT,AAAM,KAAD,4BACL,AAAM,KAAD,QAAU,mBACf,sDAAoB,MAAM,GAAE,KAAK;AACd,iBAChB,AAAe,cAAD,IAAI,OAAQ,kCAAmB,cAAc;AACpD,sBAAY,AAAK,AAAM,IAAP,UAAU,OAChC,AAAK,IAAD,SACJ,oCAA6B,KAAK,6BAAE,MAAM,GAAE,KAAK;AAC5C,sBAAa,AAAM,AAAc,KAAf,kBAAkB,OACpC,qBAAS,AAAM,AAAc,KAAf,qBAAqB,AAAM,AAAc,KAAf,oBAC3C,AAAM,AAAc,KAAf,sBAAsB,AAAM,AAAc,KAAf,yBAC7B,qBAAS,AAAM,AAAc,KAAf,kBAAkB,AAAM,AAAc,KAAf,kBACxC,AAAM,AAAgB,KAAjB,wBAAwB,AAAM,AAAgB,KAAjB;AAC/B,+BACP,kBAAW,SAAS,EAAE,AAAM,AAAY,KAAb;AAC/B,UAAI,AAAM,AAAW,KAAZ,2BAAe,kBAAkB,IACL,YAA/B,AAAU,SAAD,uBAA8C,oCACvD;AACiB,wBAAY,sCACtB,AAAU,SAAD,aAAa,OAAO,aAC1B,AAAK,IAAD,uBACF,AAAK,IAAD,wBACL,AAAK,IAAD,wBACH,AAAK,IAAD;AAEM,QAD1B,0BAAmB,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EACjE,OAAO,EAAE,KAAK,EAAE,KAAK;AAC8B,QAAvD,AAAM,AAAY,AAAuB,KAApC,2CAAwC,SAAS;;;EAG5D;0DAIW,QAC2B,QAC9B,OACc,WACW,OACd,WACR,SACA,OACW;;AACP,kBAA+B,KAAtB,AAAM,KAAD,wBAAC,OAAmB,AAAM,KAAD;AACvC,kBAA+B,MAAtB,AAAM,KAAD,yBAAC,OAAmB,AAAM,KAAD;AACvC,kBAA+B,OAAtB,AAAM,KAAD,0BAAC,OAAmB,AAAM,KAAD;AACzC,wBAAgB,AAAO,AAAY,AACN,MADP,0BAAsB,YACnD,AAAO,AAAY,MAAb,0BAAsB,WAC5B,AAAO,AAAY,MAAb,0BAAsB;AAChC,QAAI,AAAU,SAAD,UAAU,kBACnB,AAAU,SAAD,oBACR,AAAU,SAAD,gBAAgB,QAA8B,aAAtB,AAAU,SAAD,gBAAe;AAChD,qBAAW,AAAM,KAAD;AACjB,iBAAO;AACK,MAAvB,AAAK,IAAD,UAAU,QAAQ;AACV,sBAAY,AAAM,KAAD;AAClB,kBAAQ;AACnB,UAAI,aAAa;AACU,QAAzB,AAAM,KAAD,UAAU,SAAS;;AAEd,sBAAY,AAAM,KAAD;AAClB,kBAAQ;AACP,sBAAY,AAAM,KAAD;AAClB,kBAAQ;AACnB,UAAI,AAAO,AAAY,MAAb,0BAAsB,WAC5B,AAAO,AAAY,MAAb,0BAAsB;AACL,QAAzB,AAAM,KAAD,UAAU,SAAS;AACC,QAAzB,AAAM,KAAD,UAAU,SAAS;;AAE1B,UAAI,AAAU,SAAD,gBAAgB,QAA8B,aAAtB,AAAU,SAAD,gBAAe;AAC/C,kCAAc,gBACtB,aAAQ,AAAU,AAAY,SAAb,yBACN,AAA2B,aAAnC,OAAO,KAAI,AAAE,iBAAE,AAAU,SAAD,aAAa,IAChC,MACQ,aAAR,OAAO,KAAI,AAAE,iBAAE,AAAU,SAAD,aAChC,mBAAc,AAAU,SAAD,cACvB,aAAsB;AAGiB,QAF3C,AAAU,AAAY,SAAb,iBAAgB,IACnB,AAAY,WAAD,SAAgB,6BAC3B,AAAY,WAAD,SAAS,AAAY,WAAD;AACH,QAAlC,AAAO,MAAD,UAAU,IAAI,EAAE,WAAW;AACjC,YAAI,aAAa;AACoB,UAAnC,AAAO,MAAD,UAAU,KAAK,EAAE,WAAW;;;AAGtC,UAAI,AAAU,SAAD,UAAU,kBAAQ,AAAU,SAAD;AAC1B,4BAAQ,gBAChB,aAEO,CADY,KAAhB,AAAU,SAAD,cAAC,QAAiC,KAAvB,AAAM,KAAD,yBAAC,OAAoB,AAAO,MAAD,uCAC3B,AAA2B,aAAnC,OAAO,KAAI,AAAE,iBAAE,AAAU,SAAD,aAAa,IAC7C,MACQ,aAAR,OAAO,KAAI,AAAE,iBAAE,AAAU,SAAD,aACpC,aAAsB;AACE,QAA5B,AAAO,MAAD,UAAU,IAAI,EAAE,KAAK;AAC3B,YAAI,aAAa;AACc,UAA7B,AAAO,MAAD,UAAU,KAAK,EAAE,KAAK;;;;AAgBpB,IAXd,AAAO,MAAD,eACF,KAAK,EACL,MAAM,EACN,KAAK,EACL,AAAU,AAAM,SAAP,WAAU,IACb,AAAM,AAAgB,AAAO,KAAxB,6BACL,AAAM,AAAc,KAAf,kBACX,AAAU,AAAM,SAAP,WAAU,IACb,AAAM,AAAgB,AAAO,KAAxB,6BACL,AAAM,AAAc,KAAf,kBACX,AAAU,SAAD,QACT,SAAS;AAEb,QAAI,aAAa;AAEwC,MADvD,AAAO,MAAD,eAAe,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,AAAM,AAAe,KAAhB,mBAC7C,AAAM,AAAe,KAAhB,mBAAmB,AAAU,SAAD,QAAQ,SAAS;AACtD,UAAI,AAAO,AAAY,MAAb,mBAAgB,oBACrB,MAAM,IAAI,QACH,MAAM,IAAI,QACwC,AAAQ,CAAlC,aAAvB,AAAM,AAAe,KAAhB,kCAAoB,AAAM,AAAe,KAAhB,iCAC3B,KAC0C,AAAQ,CAAlC,aAAvB,AAAM,AAAe,KAAhB,kCAAoB,AAAM,AAAe,KAAhB,iCAA8B;AAEZ,QADvD,AAAO,MAAD,eAAe,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,AAAM,AAAe,KAAhB,mBAC7C,AAAM,AAAe,KAAhB,mBAAmB,AAAU,SAAD,QAAQ,SAAS;AAEC,QADvD,AAAO,MAAD,eAAe,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,AAAM,AAAe,KAAhB,mBAC7C,AAAM,AAAe,KAAhB,mBAAmB,AAAU,SAAD,QAAQ,SAAS;YACjD,KAAI,MAAM,IAAI,QACjB,MAAM,IAAI,SACyC,AAAQ,CAAlC,aAAvB,AAAM,AAAe,KAAhB,kCAAoB,AAAM,AAAe,KAAhB,iCAA8B,KACR,AAAQ,CAAlC,aAAvB,AAAM,AAAe,KAAhB,kCAAoB,AAAM,AAAe,KAAhB,iCAA8B;AACvD,wBAAY,mCAA4B,KAAK,6BAAE,MAAM,GAAE,KAAK;AACnD,iCAAqB,sCAC/B,AAAU,SAAD,aAAa,OAAO,aAC1B,AAAU,SAAD,uBACP,AAAU,SAAD,wBACV,AAAU,SAAD,wBACR,AAAU,SAAD;AACzB,YAAsD,AAAM,CAAhC,aAAvB,AAAM,AAAe,KAAhB,kCAAoB,AAAM,AAAe,KAAhB,+BAA4B,KACT,AAAM,CAAhC,aAAvB,AAAM,AAAe,KAAhB,kCAAoB,AAAM,AAAe,KAAhB,+BAA4B;AAEG,UADhE,AAAO,MAAD,eAAe,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,AAAM,AAAe,KAAhB,mBAC7C,AAAM,AAAe,KAAhB,mBAAmB,AAAU,SAAD,QAAQ,kBAAkB;;AAEjE,YAAqD,AAAM,CAAhC,aAAtB,AAAM,AAAc,KAAf,iCAAmB,AAAM,AAAe,KAAhB,+BAA4B,KACT,AAAM,CAAhC,aAAtB,AAAM,AAAc,KAAf,iCAAmB,AAAM,AAAe,KAAhB,+BAA4B;AAEI,UADhE,AAAO,MAAD,eAAe,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,AAAM,AAAe,KAAhB,mBAC7C,AAAM,AAAe,KAAhB,mBAAmB,AAAU,SAAD,QAAQ,kBAAkB;;;;EAIvE;gDAG6B,YACS,QAAyB;AAC7D,QAA4C,aAA7B,AAAW,AAAW,cAAjC,UAAU,UAAkB,iBAAc;AAC/B,gBAAiB,cAAX,UAAU;AACT,iBAAO,AAAI,GAAD,SAAO;AACmB,MAAxD,aAAoB,qCAAiB,WAAX,UAAU,sBAAiB;AACrD,UAAY,YAAR,AAAI,IAAA,QAAC,IAAM,QACH,YAAR,AAAI,IAAA,QAAC,IAAM,SACH,YAAR,AAAI,IAAA,QAAC,IAAM,UACH,YAAR,AAAI,IAAA,QAAC,IAAM,WACH,YAAR,AAAI,IAAA,QAAC,IAAM,YACH,YAAR,AAAI,IAAA,QAAC,IAAM;AACkB,QAA/B,aAAwB,WAAX,UAAU;;;AAGb,gBAAQ,AAAO,MAAD;AACd,gBAAc,AAAa,WAAnB,KAAK,qBAAiB,OACnB,WAAb,WAAN,KAAK,8BAAqB,UAAU,KACpC,UAAU;AAChB,8BAAc,AAAoB,WAA1B,KAAK,oBAAgB,qBAAc,WAAN,KAAK,kBAAgB,MAClC,WAAZ,WAAN,KAAK,iCAAwB,gBAAO,YAAkB,cAAN,KAAK,MAC/C,cAAN,KAAK;EACb;kEAIW,eACF,MACA,SACmB,UACU,QAC7B,UACE,aACH,OACW,OACE,OACZ,UACM;AACN;AAKA,IAJP,UAAU,AAAO,AAAY,AACiB,MAD9B,0BAAsB,WAC9B,AAAO,AAAY,MAAb,0BAAsB,aAC5B,AAAO,AAAY,MAAb,0BAAsB,iBAC9B,MACA;AACK,mBAAW,AAAO,AAAkB,AACU,MAD7B,4BAA4B,qBACpD,AAAO,AAAkB,MAAnB,0BAAmC,yCACzC,AAAO,AAAkB,MAAnB;AACG,qBAAa,WAAC,QAAQ,IAAG,AAAS,QAAD,UAAU,AAAS,QAAD;AACnD,qBACG,AAAiB,AAAU,aAAvC,WAAW,IAAc,aAAX,UAAU,IAAG,iBAAI,OAAO,iBAAI,QAAQ,GAAG,OAAO,GAAG;AACnE,QAAI,AAAO,AAAY,MAAb,0BAAsB;AAGhB,MAFd,WAAoB,YAAT,QAAQ,EAA4B,wCACjB,qCACxB,QAAQ;;AAIhB,YAAQ,QAAQ;;;AAQwC,QANpD,gBAAgB,WAAC,QAAQ,cAClB,OAAO,IACW,AAAc,aAA5B,aAAa,iBAAG,AAAK,IAAD,WAAU,UAAU,GAC1B,AAAc,aAA5B,aAAa,iBAAG,AAAK,IAAD,WAAU,UAAU,aAC5C,OAAO,IACW,AAAa,aAA3B,aAAa,iBAAG,AAAK,IAAD,UAAS,UAAU,GACzB,AAAa,aAA3B,aAAa,iBAAG,AAAK,IAAD,UAAS,UAAU;AAClD;;;;AAQ2C,QAN3C,gBAAgB,WAAC,QAAQ,cAClB,OAAO,IACU,aAAd,aAAa,IAAgB,aAAZ,AAAK,IAAD,WAAU,IACjB,aAAd,aAAa,IAAgB,aAAZ,AAAK,IAAD,WAAU,cAClC,OAAO,IACU,aAAd,aAAa,IAAe,aAAX,AAAK,IAAD,UAAS,IAChB,aAAd,aAAa,IAAe,aAAX,AAAK,IAAD,UAAS;AACxC;;;;AAGyE,QADzE,gBAAgB,oCAA6B,aAAa,EAAE,IAAI,EAAE,OAAO,EACrE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM;AACxE;;;;AAcU,QAZV,gBAAgB,qCACZ,QAAQ,EACR,aAAa,EACb,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,KAAK,EACL,UAAU,EACV,OAAO,EACP,KAAK,EACL,QAAQ,EACR,WAAW,EACX,KAAK;AACT;;;AAEJ,UAAO,cAAa;EACtB;8EAIW,eACF,MACA,OAC6B,QAC7B,UACD,OACW,OACV,UACE,aACU,OACN;AACN;AACF;AACA,oBAAY;AACb,mBAAW;AACL,wBAAgB,AAAO,AAAY,MAAb,0BAAsB,WAAW,IAAI;AACrE,WAAO,SAAS,IAAI,AAAS,QAAD,GAAG,aAAa;AAa/B,MAZX,WAAW,8BACP,aAAa,EACb,IAAI,EACJ,KAAK,EACL,oBAAa,QAAQ,GACrB,MAAM,EACN,QAAQ,EACR,WAAW,EACX,KAAK,EACL,KAAK,EACL,KAAK,EACL,QAAQ,EACR,MAAM;AACV,qBAAK,QAAQ;AAMqC,QALhD,YAAY,2BACR,8BAAe,AAAM,KAAD,IAAI,QAAQ,GAChC,QAAQ,EACR,MAAM,EACN,AAAO,AAAkB,AAAc,MAAjC,4BAA4B,kBAC9B,AAAO,AAAkB,MAAnB;AAGqD,QAFnE,YAA0B,AACgC,aAD9C,AAAU,SAAD,QAAO,KACV,aAAd,AAAU,SAAD,qBAAO,AAAM,AAAW,AAAc,KAA1B,iDACrB,kBAAW,SAAS,EAAE,AAAM,AAAY,KAAb;;AAOiB,QALhD,YAAY,2BACR,8BAAe,QAAQ,EAAE,AAAM,KAAD,KAC9B,QAAQ,EACR,MAAM,EACN,AAAO,AAAkB,AAAc,MAAjC,4BAA4B,kBAC9B,AAAO,AAAkB,MAAnB;AAIqD,QAHnE,YAA2B,AAEkB,aAFjC,AAAU,SAAD,SAAQ,KACV,AAAkB,aAAjC,AAAU,SAAD,sBAAQ,AAAU,SAAD,uBACtB,AAAM,AAAW,AAAc,KAA1B,gDACT,kBAAW,SAAS,EAAE,AAAM,AAAY,KAAb;;AAKlB,MAHf,AAAO,AAAW,AAAQ,MAApB,sBAAa,KAAK,oCACpB,AAAU,SAAD,cAAI,AAAO,AAAW,AAAQ,MAApB,sBAAa,KAAK,qCAC/B,OACA;AACA,MAAV,WAAA,AAAQ,QAAA;;AAEV,UAAO,SAAQ;EACjB;gFAIS,UACE,UACF,MACmB,UACU,QAC9B,OACG,YACF,SACU,OACV,UACE,aACU;AACT,iCACN,AAAO,AAAe,MAAhB,6BAAyD,aAA7B,AAAO,AAAe,MAAhB,0BAAyB,IAAI;AACzE,kBAAM,OAAO,MAAK,AAAO,AAAY,MAAb,0BAAsB,YAC7B,YAAT,QAAQ,EAA4B,mDACrC,OAAO,KAAI,AAAO,AAAY,MAAb,0BAAsB,aAC7B,YAAT,QAAQ,EAA4B;AAGA,MAF1C,WAAW,WAAC,QAAQ,IACL,AAAa,aAAtB,QAAQ,iBAAG,UAAU,IAAG,YAAY,GAC3B,AAAa,aAAtB,QAAQ,iBAAG,UAAU,IAAG,YAAY;;AAIA,MAF1C,WAAW,WAAC,QAAQ,IACL,AAAa,aAAtB,QAAQ,iBAAG,UAAU,IAAG,YAAY,GAC3B,AAAa,aAAtB,QAAQ,iBAAG,UAAU,IAAG,YAAY;;AAE5C,UAAO,SAAQ;EACjB;sEAGoC,MAAU,QAAmB;AAEJ,IAD3D,OAAY,qBAAmB,aAAV,AAAK,IAAD,sBAAQ,AAAO,MAAD,QAAgB,aAAT,AAAK,IAAD,qBAAO,AAAO,MAAD,OAChD,aAAX,AAAK,IAAD,uBAAS,AAAO,MAAD,SAAoB,aAAZ,AAAK,IAAD,wBAAU,AAAO,MAAD;AAEnD,UAAO,qBAAa,IAAI,EAAE,MAAM;EAClC;8CAGwB,MAAU;AAAW,UAAM,iCAAmB,IAAI,YACtD,yBAAW,MAAM,EAAE,MAAM,aACxB,yBAAW,MAAM,EAAE,MAAM,eACvB,yBAAW,MAAM,EAAE,MAAM,gBACxB,yBAAW,MAAM,EAAE,MAAM;EAAE;iDAG3B,MAAW;AAE7B;AAAM;AAC4D,IAAtE,OAAiB,aAAV,AAAK,IAAD,sBAAQ,AAAS,QAAD,SAAsB,aAAd,AAAS,QAAD,aAAkB,AAAK,IAAD;AAGnD,IAFd,MAAgD,aAAnC,kBAAM,AAAK,AAAI,IAAL,uBAAqB,oBAAM,AAAS,QAAD,QACvC,aAAb,AAAS,QAAD,YACR,AAAK,IAAD;AAIH,IAHP,OAAK,aAAL,IAAI,KAA4C,AAAc,aAA7C,kBAAM,AAAK,IAAD,mBAAiB,oBAAM,AAAK,IAAD,uBAC9C,AAAS,QAAD,UAC6B,AAAc,aAA7C,kBAAM,AAAK,IAAD,mBAAiB,oBAAM,AAAK,IAAD,uBAAU,AAAS,QAAD,UAC/D;AAKC,IAJP,MAAI,aAAJ,GAAG,KAA0C,AAAe,aAA7C,kBAAM,AAAI,GAAD,mBAAiB,oBAAM,AAAK,IAAD,wBAAW,AAAS,QAAD,WAC1B,AAAe,AACnC,aADV,kBAAM,AAAI,GAAD,mBAAiB,oBAAM,AAAK,IAAD,wBAC1C,AAAS,QAAD,eAEV;AACsD,IAA5D,OAAY,aAAL,IAAI,iBAAG,AAAS,QAAD,SAAsB,aAAd,AAAS,QAAD,aAAkB,IAAI;AACJ,IAAxD,OAAY,qBAAS,IAAI,EAAE,GAAG,EAAE,AAAK,IAAD,QAAQ,AAAK,IAAD;AAChD,UAAO,KAAI;EACb;4DAGmC,QAAqC;AACjE,sBAAc;AACnB,SAAoB,0BAAd,AAAO,MAAD;AAWuD,MAVjE,cAAiE,UAAnD,+BAAQ,AAAM,KAAD,UAAS,AAAO,AAAO,MAAR,wCACrC,AAAO,AAAY,AAAkB,MAA/B,0BAAsB,YAAY,AAAO,AAAY,MAAb,mBAAgB,SACR,UAAhD,+BAAQ,AAAM,KAAD,OAAM,AAAO,AAAO,MAAR,wCACxB,+BAAQ,AAAM,KAAD,QAAO,AAAO,AAAO,MAAR,6BAC5B,AAAO,AAAY,AAAmB,MAAhC,mBAAgB,mBAChB,AAAO,AAAY,MAAb,0BAAsB,YAGqB,UAFlD,+BAAQ,AAAM,KAAD,OAAM,AAAO,AAAO,MAAR,wCACxB,+BAAQ,AAAM,KAAD,QAAO,AAAO,AAAO,MAAR,wCAC1B,+BAAQ,AAAM,KAAD,QAAO,AAAO,AAAO,MAAR,wCAC1B,+BAAQ,AAAM,KAAD,SAAQ,AAAO,AAAO,MAAR,6BAC7B,+BAAQ,AAAM,KAAD,UAAS,AAAO,AAAO,MAAR;;AAE5C,UAAO,YAAW;EACpB;kE1DjnC6C,OAAW;;AACpC,kBAAU,AAAM,KAAD;AACI,4CACjC,AAAM,AAAa,AAAa,KAA3B,oCAA4B,KAAK;AACrB,IAArB,AAAO,MAAD,WAAU,KAAK;AACX,sBACN,AAAO,AAAO,AAAa,AAAc,MAAnC,+CAA2C,MAAM;AAExB,IADnC,AAAO,MAAD,kBAA6B,KAAb,AAAO,MAAD,cAAC,OACzB,AAAO,OAAA,QAAC,AAAM,KAAD,UAAG,AAAQ,OAAD;AACX,gBAAQ,AAAO,MAAD;AACd,gBAAQ,AAAO,MAAD;AACnB,eAAO,4BAAqB,AAAM,AAAW,KAAZ,6BACxC,kBAAO,AAAM,KAAD,aAAa,AAAM,KAAD;AAOvB,IANX,AAAO,MAAD,kBAAkB,AAAO,AAAY,AAGO,MAHpB,mBAAgB,YACtC,AAAO,AAAY,MAAb,mBAAgB,SACtB,AAAO,AAAY,MAAb,0BAAsB,oBAC5B,AAAO,AAAY,MAAb,0BAAsB,iBAC5B,AAAO,AAAY,MAAb,mBAAgB,gBACxB,OACA;AACqC,IAA3C,AAAO,MAAD,kBAAmC;AACZ;AACnB,uBAAe,AAAO,AAAe,MAAhB;AAC3B,sBAAc,AAAO,AAAe,MAAhB;AACb,wBACN,AAAO,AAAY,AAAa,MAA1B,mBAAgB,aAAa,AAAO,AAAY,MAAb,mBAAgB,WACpD,OACA;AACC,qBAAc,AAAO,AAAY,MAAb,mBAAgB,aAAc,OAAO;AACpE,UAAM,UAAU,IACP,UAAU,eACN,AAAO,AAAe,MAAhB,wCACH,AAAO,AAAkB,MAAnB,2CACN,AAAO,MAAD,+BAClB,AAAO,MAAD;AACR,eAAS,aAAa,GAClB,AAAW,UAAD,gBAAG,AAAO,AAAY,MAAb,0BACnB,aAAA,AAAU,UAAA;AAC0B,QAAtC,QAAQ,AAAO,AAAW,MAAZ,sBAAa,UAAU;AACrC,sBAAI,AAAO,MAAD;AACoD,UAA5D,kCAA2B,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK;cACtD,KAAI,aAAa;AAC6C,UAAnE,mCAA4B,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI;;AAGI,UADtE,kCACI,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW;;AAEb,QAA1D,+BAAwB,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK;;AAG9B;AAC7B,UAAI,AAAO,MAAD,eAAe;AACvB,iBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,AAAW,MAAZ,uBAAoB,IAAA,AAAC,CAAA;AAC7C,wBAAI,AAAO,AAAU,AAAI,MAAf,mBAAY,CAAC;AACrB,gBAAI,AAAO,AAAU,AAAI,MAAf,mBAAY,CAAC,kBAAiB;AACtC,uBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,AAAU,AAAI,AAAY,MAA3B,mBAAY,CAAC,0BAAsB,IAAA,AAAC,CAAA;AACR,gBAApD,iBAAiB,AAAO,AAAU,AAAI,AAAW,MAA1B,mBAAY,CAAC,sBAAc,CAAC;AAEhB,gBADnC,+BAAwB,cAAc,EAAE,WAAW,EAAE,MAAM,EACvD,KAAK,EAAE,AAAO,AAAU,MAAX,mBAAY,CAAC,GAAG,CAAC;;;;;;AAQX,MAAjC,0BAAmB,MAAM,EAAE,KAAK;;EAEpC;0EAIiC,OACzB,YAC2B,QACd;;AACH,gBAAQ,AAAO,MAAD;AACd,gBAAQ,AAAO,MAAD;AAGV,yBAAiB,gCAAyB,MAAM,EAAE,KAAK;AACjE,iBAAS,mCAAS,AAAM,AAAc,KAAf,0BAAwB;AAG9C,eAAO,AAAO,AAAY,AAA0B,MAAvC,0BAAsB,oBACtC,AAAO,AAAY,MAAb,0BAAsB,gBAC9B,2CACe,WAAb,AAAM,KAAD,eAAU,AAAe,cAAD,aAC7B,AAAO,AAAe,AAAI,AAAS,MAA7B,0BAAiB,oBAAa,UAAU,mBACjC,WAAb,AAAM,KAAD,eAAU,AAAe,cAAD,aAC7B,AAAO,AAAe,AAAI,AAAW,MAA/B,0BAAiB,sBAAe,UAAU,GAChD,MAAM,EACN,KAAK,IACP,2CACe,WAAb,AAAM,KAAD,eAAU,AAAe,cAAD,aACO,gBAApC,AAAO,AAAY,MAAb,mBAAgB,gBAAgB,AAAM,KAAD,QAAQ,AAAM,KAAD,0BAC3C,WAAb,AAAM,KAAD,eAAU,AAAe,cAAD,aACO,gBAApC,AAAO,AAAY,MAAb,mBAAgB,gBAAgB,AAAM,KAAD,OAAO,MAAM,GACxD,MAAM,EACN,KAAK;AAEM,IAAnB,AAAM,KAAD,UAAU,IAAI;AAGnB,QAAI,AAAO,MAAD,mBAAgB,sBACtB,AAAO,MAAD,mBAAgB;AACb,4BAAkB,iDACZ,WAAb,AAAM,KAAD,eAAU,AAAe,cAAD,aACO,gBAApC,AAAO,AAAY,MAAb,mBAAgB,gBAAgB,AAAM,KAAD,QAAQ,AAAM,KAAD,0BAC3C,WAAb,AAAM,KAAD,eAAU,AAAe,cAAD,aACO,gBAApC,AAAO,AAAY,MAAb,mBAAgB,gBAAgB,AAAM,KAAD,QAAQ,MAAM,GACzD,MAAM,EACN,KAAK,EACL,wBAAO,KAAK,eAAL,OAAO,uBAAY,KAAK,gBAAL,OAAO;AAEI,MAAzC,AAAM,KAAD,qBAAqB,eAAe;;AAE3C,QAAI,AAAO,AAAY,MAAb,mBAAgB,iBACtB,AAAO,AAAY,MAAb,0BAAsB,WAC5B,AAAO,AAAY,MAAb,0BAAsB;AAGgC,MAF9D,AAAM,KAAD,eAA0C,aAA3B,AAAM,KAAD,wBAAyB,QAC5C,8BAAe,AAAK,AAAU,IAAX,eAAe,AAAK,AAAU,IAAX,iBACtC,8BAAe,AAAK,AAAY,IAAb,iBAAiB,AAAK,AAAY,IAAb;AAGc,MAF5D,AAAM,KAAD,gBAA2C,aAA3B,AAAM,KAAD,wBAAyB,QAC7C,8BAAe,AAAK,AAAa,IAAd,kBAAkB,AAAK,AAAa,IAAd,oBACzC,8BAAe,AAAK,AAAW,IAAZ,gBAAgB,AAAK,AAAW,IAAZ;;AAgB2B,MAdxE,AAAM,KAAD,eAA0C,aAA3B,AAAM,KAAD,wBAAyB,kBAC3C,AAAM,KAAD,0BACY,WAAb,AAAM,KAAD,0BACF,8BAAe,AAAK,AAAU,IAAX,eAAe,AAAK,AAAU,IAAX,iBACtC,8BAAe,AAAK,AAAa,IAAd,kBAAkB,AAAK,AAAa,IAAd,+BAC/B,WAAb,AAAM,KAAD,0BACF,8BAAe,AAAK,AAAa,IAAd,kBAAkB,AAAK,AAAa,IAAd,oBACzC,8BAAe,AAAK,AAAU,IAAX,eAAe,AAAK,AAAU,IAAX,2BAC7C,AAAM,KAAD,0BACY,WAAb,AAAM,KAAD,0BACF,8BAAe,AAAK,AAAY,IAAb,iBAAiB,AAAK,AAAY,IAAb,mBACxC,8BAAe,AAAK,AAAW,IAAZ,gBAAgB,AAAK,AAAW,IAAZ,6BAC7B,WAAb,AAAM,KAAD,0BACF,8BAAe,AAAK,AAAW,IAAZ,gBAAgB,AAAK,AAAW,IAAZ,kBACvC,8BAAe,AAAK,AAAY,IAAb,iBAAiB,AAAK,AAAY,IAAb;;EAE1D;4EAIiC,OACzB,YAC2B,QACd,OACZ;;AACS,gBAAQ,AAAO,MAAD;AACd,gBAAQ,AAAO,MAAD;AACT,uBAAe,uCAAgB,AAAM,KAAD,0BACrD,AAAM,KAAD,UAAS,KAAK,EAAE,KAAK,EAAE,AAAM,KAAD,wBAAuB,MAAM,EAAE,IAAI;AACxC,IAAhC,AAAM,KAAD,eAAe,YAAY;AAChC,QAAI,AAAO,AAAY,MAAb,mBAAgB;AAKyB,MAJjD,AAAM,KAAD,UAAe,qBACD,aAAf,AAAa,YAAD,mBAAK,AAAO,AAAe,MAAhB,wBACR,aAAf,AAAa,YAAD,mBAAK,AAAO,AAAe,MAAhB,wBACR,aAAf,AAAa,YAAD,mBAAK,AAAO,AAAe,MAAhB,wBACR,aAAf,AAAa,YAAD,mBAAK,AAAO,AAAe,MAAhB;;AAEU,oDAAe,MAAM;AACtD;AAAc;AAAW;AAAa;AACe,MAAzD,YAAkC,aAAtB,AAAa,YAAD,2BAAY,AAAa,YAAD;AACC,MAAjD,aAAuC,CAAN,KAAlB,AAAM,KAAD,mBAAC,OAAe;AACpC,UAAI,AAAa,AAAgB,YAAjB,oBAAoB;AAGa,QAF/C,AAAa,AAAc,YAAf,kBAAkB,OACxB,eAAe,AAAa,YAAD,iBAC3B,eAAe,AAAa,YAAD;;AAEjC,YAAK,AAAa,YAAD,kBAAkB,QAC9B,AAAa,YAAD,kBAAkB;AACjC,cAAI,AAAU,SAAD,KAAI;AAC0B,YAAzC,eAAe,AAAa,YAAD;;AAGsC,YADjE,cAC8D,CAA9B,aAA3B,AAAa,YAAD,+BAAiB,AAAa,YAAD,mBAAkB;AAI9B,YAHlC,eACiD,AAAe,AACzC,CADhB,AAAW,AAAM,UAAP,wBAAS,AAAa,YAAD,4BAAa,WAAW,iBAClD,SAAS,iBACb,AAAa,YAAD;;;;AAQY,MAJtC,AAAM,KAAD,UAAe,qBACD,aAAf,AAAa,YAAD,MAAK,AAAE,iBAAE,YAAY,GAClB,aAAf,AAAa,YAAD,MAAK,AAAE,iBAAE,YAAY,GAClB,aAAf,AAAa,YAAD,MAAK,AAAE,iBAAE,YAAY,GAClB,aAAf,AAAa,YAAD,MAAK,AAAE,iBAAE,YAAY;;EAEzC;0EAIiC,OACzB,YAC2B,QACd,OACZ,MACD,cACA;AACU,gBAAQ,AAAO,MAAD;AACd,gBAAQ,AAAO,MAAD;AAC9B,QAAI,AAAO,MAAD,mBAAgB,gBACpB,AAAO,AAAY,MAAb,0BAAsB,YAC5B,AAAO,AAAY,MAAb,0BAAsB;AACX,yBAAe,AAAO,AAAY,AAEX,MAFF,mBAAgB,iBAClD,AAAO,AAAY,MAAb,mBAAgB,oBACtB,AAAO,AAAY,MAAb,mBAAgB,iBACtB,AAAO,AAAY,MAAb,mBAAgB,mBACxB,uCACE,AAAM,KAAD,UACL,AAAO,AAAe,AAAI,AAAS,MAA7B,0BAAiB,oBAAa,UAAU,GAC9C,KAAK,EACL,KAAK,EACL,AAAM,KAAD,wBACL,MAAM,EACN,IAAI,IACN,uCAAgB,AAAM,KAAD,0BAAS,AAAM,KAAD,UAAS,KAAK,EAAE,KAAK,EACtD,AAAM,KAAD,wBAAuB,MAAM,EAAE,IAAI;AAEqB,MADrE,AAAM,KAAD,UAAe,qBAAwB,aAAf,AAAa,YAAD,mBAAK,WAAW,GACtC,aAAf,AAAa,YAAD,mBAAK,YAAY,GAAE,AAAE,iBAAE,WAAW,GAAE,AAAE,iBAAE,YAAY;AACpC,MAAhC,AAAM,KAAD,eAAe,YAAY;;AAE5B;AAAQ;AAGG,eAFf,gBAAU,AAAM,AAAkC,KAAnC,QAAQ,QAAQ,AAAM,KAAD,SAAS,mBAAkB,WAAV,AAAM,KAAD,YAAO,AAAM,KAAD,WAChE,AAAM,KAAD,QACL,AAAM,KAAD;AAGI,eAFf,gBAAU,AAAM,AAAkC,KAAnC,QAAQ,QAAQ,AAAM,KAAD,SAAS,mBAAkB,WAAV,AAAM,KAAD,YAAO,AAAM,KAAD,WAChE,AAAM,KAAD,QACL,AAAM,KAAD;AAQF,MAPT,AAAM,KAAD,eAAe,uCAChB,AAAM,KAAD,oBACL,AAAM,KAAD,eAAc,MAAM,GAAG,MAAM,EAClC,KAAK,EACL,KAAK,EACL,AAAM,KAAD,wBACL,MAAM,EACN,IAAI;AAQC,MAPT,AAAM,KAAD,gBAAgB,uCACjB,AAAM,KAAD,oBACL,AAAM,KAAD,eAAc,MAAM,GAAG,MAAM,EAClC,KAAK,EACL,KAAK,EACL,AAAM,KAAD,wBACL,MAAM,EACN,IAAI;AACR,UAAI,AAAO,AAAY,MAAb,mBAAgB,mBACtB,AAAO,AAAY,MAAb,mBAAgB,YAClB,AAAM,KAAD,SAAS,QACd,AAAM,KAAD,UAAU;AACyC,QAA9D,AAAM,KAAD,kBAAkB,gCAAyB,MAAM,EAAE,KAAK;AAQpD,QAPT,AAAM,KAAD,aAAa,uCACD,WAAb,AAAM,KAAD,eAAU,AAAM,AAAe,KAAhB,4CACpB,AAAM,KAAD,QACL,AAAO,MAAD,WACN,AAAO,MAAD,WACN,AAAO,AAAO,MAAR,gCACN,MAAM,EACN,IAAI;AASC,QAPT,AAAM,KAAD,cAAc,uCACF,WAAb,AAAM,KAAD,eAAU,AAAM,AAAe,KAAhB,4CACpB,AAAM,KAAD,SACL,AAAO,MAAD,WACN,AAAO,MAAD,WACN,AAAO,AAAO,MAAR,gCACN,MAAM,EACN,IAAI;AASC,QAPT,AAAM,KAAD,mBAAmB,uCACpB,AAAM,KAAD,0BACL,AAAM,KAAD,QACL,AAAO,MAAD,WACN,AAAO,MAAD,WACN,AAAO,AAAO,MAAR,gCACN,MAAM,EACN,IAAI;AASC,QAPT,AAAM,KAAD,oBAAoB,uCACrB,AAAM,KAAD,0BACL,AAAM,KAAD,SACL,AAAO,MAAD,WACN,AAAO,MAAD,WACN,AAAO,AAAO,MAAR,gCACN,MAAM,EACN,IAAI;;AAgBmB,MAd7B,AAAM,KAAD,UAAU,AAAO,AAAY,AAAiB,MAA9B,0BAAsB,WACnC,AAAO,AAAY,MAAb,0BAAsB,YAC9B,WAAC,AAAO,AAAO,MAAR,kCACE,qBAAS,AAAM,AAAY,KAAb,gBAAgB,AAAM,AAAY,KAAb,gBACtC,AAAO,MAAD,cAAmC,aAArB,AAAM,AAAa,KAAd,gCAAkB,AAAM,AAAY,KAAb,mBAC7C,qBACH,AAAM,AAAa,KAAd,iBACL,AAAM,AAAa,KAAd,iBACwC,CAAxB,aAApB,AAAM,AAAY,KAAb,+BAAiB,AAAM,AAAa,KAAd,2BAC5B,AAAO,MAAD,gBACP,qBACiB,aAApB,AAAM,AAAY,KAAb,+BAAiB,WAAW,GACb,aAApB,AAAM,AAAY,KAAb,+BAAiB,YAAY,GACd,aAApB,AAAM,AAAY,KAAb,+BAAiB,WAAW,GACjC,AAAM,AAAa,KAAd;;EAEjB;oEAIiC,OACzB,aAC2B,QACd,OACN,kBACP;;AACU,gBAAQ,AAAO,MAAD;AAC9B,SAAK,AAAO,MAAD,kBAAkB,QACrB,AAAO,AAAO,MAAR,8BAA6B,oBACtC,AAAO,MAAD,6BAAkB,AAAO,AAAO,AAAkB,MAA1B,uCAC/B,KAAK,IAAI,mBACR,AAAM,KAAD,sBACL,AAAM,KAAD;AACH,wBAAc;AACnB,UAAI,SAAS,IAAI;AACG,QAAlB,cAAc;;AAEG,uBAAqB;AACjC;AACa,uBAAsB;AAC1C,UAAU,uBAAN,KAAK;AACU,0BACI,KAAjB,AAAM,KAAD,mBAAC,OAAc,AAAM,KAAD,kBAAiB,KAAK;AAEmB,QADtE,OAAO,AACF,UADY,QACI,6DAAwC,WAAb,AAAM,KAAD;;AAQ/B,MANlB,uBAAN,KAAK,IACC,AAAW,UAAD,OAAa,cAAR,AAAM,KAAD,OACd,uBAAN,KAAK,IACD,AAAW,UAAD,OAAU,cAAL,IAAI,KACnB,AAAW,UAAD,OAEP,cAFY,sBACT,AAAM,KAAD,SAAS,KAAK,EAAE,AAAM,AAAgB,KAAjB;AAG1C,UAAI,AAAO,AAAY,MAAb,0BAAsB,aAAa,WAAW,IACpD,AAAO,AAAY,MAAb,0BAAsB,WAC5B,AAAO,AAAY,MAAb,0BAAsB;AAC9B,YAAI,AAAO,MAAD,mBAAgB,mBACtB,AAAO,MAAD,mBAAgB;AACa,UAArC,AAAW,UAAD,OAAgB,cAAX,AAAM,KAAD;AACgB,UAApC,AAAW,UAAD,OAAe,cAAV,AAAM,KAAD;;AAEiB,UAArC,AAAW,UAAD,OAAgB,cAAX,AAAM,KAAD;AACgB,UAApC,AAAW,UAAD,OAAe,cAAV,AAAM,KAAD;AACiB,UAArC,AAAW,UAAD,OAAgB,cAAX,AAAM,KAAD;AACkB,UAAtC,AAAW,UAAD,OAAiB,cAAZ,AAAM,KAAD;;;AAGiB,QAAvC,AAAW,UAAD,OAAkB,cAAb,AAAM,KAAD;;AAGmD,MADzE,AAAW,UAAD,OACN,WAAW,GAAG,AAAU,SAAD,YAAqB,MAAZ,AAAO,MAAD,cAAC,OAAQ,AAAqB,qBAAZ,WAAW;AAC3C,MAA5B,AAAW,UAAD,OAAK,AAAM,KAAD;AAkBW,MAjB/B,AAAW,UAAD,OACkC,UAD5B,AAAO,MAAD,oBACd,AAAO,AAAY,MAAb,0BAAsB,WAC5B,AAAO,AAAY,MAAb,0BAAsB,YAC9B,AAAO,AAAY,AAAY,MAAzB,mBAAgB,YAChB,AAAO,AAAY,MAAb,0BAAsB,8BACjB,WAAb,AAAM,KAAD,eAAU,OACX,AAAM,AAAO,KAAR,oBACL,AAAM,AAAO,KAAR,uBACT,AAAO,AAAY,AAAiB,MAA9B,0BAAsB,WACtB,AAAO,AAAY,MAAb,0BAAsB,YAC9B,AAAM,AAAO,KAAR,oBACL,AAAM,AAAO,KAAR,oBACZ,AAAO,AAAY,MAAb,mBAAgB,cAClB,WAAW,GACR,kBAAO,AAAM,AAAY,KAAb,gBAAgB,AAAM,AAAY,KAAb,kBACjC,kBAAO,AAAM,AAAY,KAAb,gBACmC,CAAxB,aAApB,AAAM,AAAY,KAAb,+BAAiB,AAAM,AAAa,KAAd,oBAAmB,KACrD,AAAM,AAAO,KAAR;AAC4D,MAA3E,AAAW,UAAD,OAAK,WAAW,GAAG,AAAU,SAAD,eAAc,AAAM,KAAD;AACzB,MAAhC,AAAW,UAAD,OAAK,AAAM,KAAD;AACC,MAArB,AAAW,UAAD,OAAK,KAAK;AACpB,UAAI,AAAO,AAAY,MAAb,0BAAsB;AACoB,QAAlD,AAAW,UAAD,OAA6B,cAAvB,AAAM,KAAD;;AAEO,MAA9B,AAAW,UAAD,OAAmB,SAAZ,WAAW;AAC5B,UAAI,WAAW;AACY,QAAzB,AAAW,UAAD,OAAK,SAAS;;AAEmB,MAA7C,AAAO,AAAa,MAAd,uBAAe,UAAU,EAAI,UAAU;AAChB,MAA7B,AAAM,KAAD,cAAc,UAAU;;EAEjC;0DAGuD,QAAY;AACjE,QAAI,AAAO,AAAY,MAAb,mBAAgB;AACO,MAA/B,AAAO,MAAD,kBAAuB;AAC7B,eAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,AAAY,MAAb,0BAAqB,IAAA,AAAC,CAAA;AAC7B;AACkB,oBAAQ,AAAO,AAAW,MAAZ,sBAAa,CAAC;AAChD,yBAAa,AAAO,AAAe,MAAhB;AAC7B,mBACD,gBAAK,AAAO,AAAe,MAAhB,uBAAuB,AAAO,AAAe,MAAhB;AAC5C,YAAI,AAAO,AAAO,MAAR,2BAA0B;AACH,UAA/B,aAAa;AACY,UAAzB,AAAW,UAAD,cAAc,CAAC;AACY,UAArC,AAAW,UAAD,gBAAgB,AAAK,IAAD;AACK,UAAnC,AAAW,UAAD,eAAe,AAAK,IAAD;AACA,UAA7B,AAAW,UAAD,SAAS,UAAU;AACC,UAA9B,AAAW,UAAD,eAAe,KAAK;AACU,UAAxC,AAAO,AAAO,MAAR,wBAAuB,UAAU;AACqB,UAA5D,OAAO,gBAAK,AAAW,UAAD,cAAc,AAAW,UAAD;AACjB,UAA7B,aAAa,AAAW,UAAD;;AAG2C,QADpE,AAAO,AAAc,MAAf,sBAAmB,wBAAiB,UAAU,EAChD,kBAAO,AAAM,AAAY,KAAb,gBAAgB,AAAM,AAAY,KAAb,iBAAiB,IAAI,EAAE,MAAM;;;AAGpE,oBAAI,AAAO,AAAe,MAAhB;AACuB,QAA/B,AAAO,MAAD,kBAAuB;AACG,QAAhC,AAAO,MAAD,mBAAwB;AAC9B,iBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,AAAY,MAAb,0BAAqB,IAAA,AAAC,CAAA;AAC7B;AACkB,sBAAQ,AAAO,AAAW,MAAZ,sBAAa,CAAC;AAChD,2BAAa,AAAO,AAAe,MAAhB;AAC7B,qBACD,gBAAK,AAAO,AAAe,MAAhB,uBAAuB,AAAO,AAAe,MAAhB;AAC5C,cAAI,AAAO,AAAO,MAAR,2BAA0B;AACH,YAA/B,aAAa;AACY,YAAzB,AAAW,UAAD,cAAc,CAAC;AACY,YAArC,AAAW,UAAD,gBAAgB,AAAK,IAAD;AACK,YAAnC,AAAW,UAAD,eAAe,AAAK,IAAD;AACA,YAA7B,AAAW,UAAD,SAAS,UAAU;AACC,YAA9B,AAAW,UAAD,eAAe,KAAK;AACU,YAAxC,AAAO,AAAO,MAAR,wBAAuB,UAAU;AACqB,YAA5D,OAAO,gBAAK,AAAW,UAAD,cAAc,AAAW,UAAD;AACjB,YAA7B,aAAa,AAAW,UAAD;;AAG2C,UADpE,AAAO,AAAc,MAAf,sBAAmB,wBAAiB,UAAU,EAChD,kBAAO,AAAM,AAAY,KAAb,gBAAgB,AAAM,AAAY,KAAb,iBAAiB,IAAI,EAAE,MAAM;AAClE,cAAI,AAAO,AAAY,MAAb,0BAAsB;AAKlB,YAJZ,AAAO,AAAe,MAAhB,uBAAoB,wBACtB,UAAU,EACV,kBAAO,AAAM,AAAa,KAAd,iBAAiB,AAAM,AAAa,KAAd,kBAClC,IAAI,EACJ,MAAM;;;;;EAKpB;gEAGS,QAC2B,QAChB,4BACZ,qBACA;;AAEA;AAAa;AACR,eACP,gBAAK,AAAO,AAAe,MAAhB,uBAAuB,AAAO,AAAe,MAAhB;AACvB,qBAAa,AAAO,AAAe,MAAhB;AACX;AACvB;AACK,wBAAiB,AAAO,AAAiB,MAAlB,qBAAqB,OAAQ,OAAO;AACzD,kBACR,AAAoB,mBAAD,IAAI,OAAQ,AAAoB,mBAAD,SAAS;AAChE,aAAS,aAAa,GAClB,AAAW,UAAD,gBAAG,AAAO,AAAY,MAAb,0BACnB,aAAA,AAAU,UAAA;AAC0B,MAAtC,QAAQ,AAAO,AAAW,MAAZ,sBAAa,UAAU;AACkC,MAAvE,gBAAiD,KAAlC,AAAO,AAAe,MAAhB,mCAAgB,OAAe,AAAO,MAAD;AAcjB,MAbzC,qBAAc,gBACV,YAAsB,YAAd,AAAM,KAAD,UAAY,QACpB,AAAO,AAAmB,AAAY,MAAhC,oCAAmC,IAC/B,6BACP,AAAO,AAAmB,AAAY,MAAhC,4CAA4C,OAAO,IAC5D,AAAO,AAAe,AAAY,MAA5B,gCAA+B,IAC3B,6BACL,AAAc,aAAD,IAAI,AAAM,KAAD,qBAAqB,OACzC,AAAM,AAAiB,KAAlB,8BAA8B,OAAO,IAC1C,AAAa,YAAD,aAAa,OAAO,GAC5C,YAAsB,yBACtB,kBAA4B,YAAd,AAAM,KAAD,UAAY,QAC3B,AAAO,AAAmB,MAApB,kCACN,AAAO,AAAe,MAAhB;AAEd,UAAI,AAAO,MAAD,aAAa,QAAQ,AAAO,AAAe,AAAY,MAA5B,+BAA+B;AAS3B,QARvC,cAAc,+BACV,AAAO,MAAD,WACN,AAKK,wBAJG,UAAU,EACV,kBAAO,AAAM,AAAY,KAAb,gBAAgB,AAAM,AAAY,KAAb,iBACjC,IAAI,EACJ,MAAM,eAEd,AAAO,AAAO,MAAR;AAC8B,QAAxC,AAAY,WAAD,SAAuB;AAGK,QAFvC,AAAY,WAAD,eAA6B,YAAd,AAAM,KAAD,UAAY,QACrC,AAAO,AAAmB,MAApB,kCACN,AAAO,AAAe,MAAhB;;AAagB,MAX9B,oBAAY,gBACR,aAAsB,YAAd,AAAM,KAAD,UAAY,QACrB,AAAO,AAAmB,MAApB,4BACsB,aAA5B,AAAO,AAAe,MAAhB,uBAAgC,8BAM/B,CAL0B,KAA5B,AAAO,AAAe,MAAhB,6BAAgB,OACiC,YAAjD,AAAO,AAAO,AAAY,AAAY,MAAhC,+CACY,uBACN,uBACA,uCACJ,OAAO,IACtB,AAAO,AAAe,MAAhB,uBACd,aAAsB;AACf,sBAAY,AAAO,AAAY,MAAb,mBAAgB;AAG7C,qBAAM,AAAO,AAAe,MAAhB,8BAA6B,SAAS,kBACzC,AAAO,AAAe,MAAhB,uBAAwC,yCACnD,AAAM,KAAD,4BACL,AAAM,KAAD,QAAU,SACf,AAAO,MAAD,mBAAkB,kBACxB,AAAO,AAAc,MAAf,mCACJ,SAAS,IAAgC,YAA5B,AAAO,AAAe,MAAhB,uBAAwC;AAElB,QAD7C,AAAO,MAAD,gBAAgB,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAC5D,AAAM,AAAY,KAAb,gBAAgB,AAAM,AAAY,KAAb;AAC9B,YAAgC,YAA5B,AAAO,AAAe,MAAhB,uBAAwC;AAEa,UAD7D,wBACI,MAAM,EAAE,MAAM,EAAE,AAAM,AAAY,KAAb,gBAAgB,AAAM,AAAY,KAAb;AAC9C,cAAI,AAAO,AAAY,MAAb,0BAAsB,UAC9B,AAC+D,wBAA3D,MAAM,EAAE,MAAM,EAAE,AAAM,AAAa,KAAd,iBAAiB,AAAM,AAAa,KAAd;;;;EAIzD;uDAGwD,QAAe,QAC5D,QAAe;AACxB,QAAI,AAAO,AAAe,MAAhB,2BAA0B;AACrB,uBAAa,AAAE,iBAAE,AAAO,AAAe,MAAhB;AACvB,wBAAc,AAAE,iBAAE,AAAO,AAAe,MAAhB;AAC1B,yBAAoB,qBAAgB,aAAP,MAAM,IAAG,AAAW,UAAD,GAAG,GACnD,aAAP,MAAM,IAAG,AAAY,WAAD,GAAG,GAAG,UAAU,EAAE,WAAW;AAKhC,MAJrB,qCACY,MAAM,QACR,YAAY,SACX,AAAO,AAAe,MAAhB,8BACD;;EAEpB;oDAIW,QAAqB,WAAiB,OAAY;AACtD,eAAO;AACZ,aAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAU,SAAD,YAAS,IAAI,AAAE,CAAD,GAAG;AAC5C,UAAI,AAAS,AAAI,SAAJ,QAAC,CAAC,MAAK;AACP,QAAX,OAAO;;;AAGX,QAAI,AAAK,IAAD,WAAI;AACe,MAAzB,AAAM,KAAD,eAAe;AAMV,MALV,AAAO,MAAD,UACF,iBACE,IAAI,cACO,0CAA8B,SAAS,KAEpD,KAAK;;AAEmB,MAA5B,AAAO,MAAD,UAAU,IAAI,EAAE,KAAK;EAC/B;8CgDtrByB,WAA0B,WAAgB;AAC5D;AACO,gBAAQ,AAAU,SAAD;AAChB,mBAAW,AAAU,SAAD;AACpB,qBAAa,AAAU,SAAD;AACnB,oBAAY,AAAU,SAAD;AACpB,qBAAa,AAAU,SAAD;AAErB,sBAAc,6CACT,oCACQ,4BACvB,kCACI,SAAS,SACR,qCACI,KAAK,YACF,QAAQ,cACN,UAAU,aACX,SAAS,cACR,UAAU;AAEZ,IAApB,AAAY,WAAD;AACX,QAAI,KAAK,IAAI;AACA,iBAAO,wBAAiB,AAAY,WAAD,OAAO,KAAK;AACtB,MAApC,OAAO,gBAAK,AAAK,IAAD,QAAQ,AAAK,IAAD;;AAEsB,MAAlD,OAAO,gBAAK,AAAY,WAAD,QAAQ,AAAY,WAAD;;AAE5C,UAAO,KAAI;EACb;0DAE8B,OAAW;AACvC,QAAI,KAAK,IAAI;AACX,YAAO,AAAM,MAAD,YAAU,OACV,AAAO,aAAZ,IAAI,IAAG,mBAAW,kBAAS,AAAM,KAAD,cAAY,gBAAO,MAAM,QACtD,kBAAS,KAAK;;AAE1B,UAAO;EACT;yCAGsB,QAAe,MAAa,OAAsB,OAC/D;AACK,gBAAQ,AAAM,KAAD;AACZ,mBAAW,AAAM,KAAD;AAChB,qBAAa,AAAM,KAAD;AACf,oBAAY,AAAM,KAAD;AAChB,qBAAa,AAAM,KAAD;AACzB,mBAAW,OAAS,0BAAmB,IAAI,IAAI;AAC1C,eAAO,kCACZ,IAAI,SACH,qCACI,KAAK,YACF,QAAQ,cACN,UAAU,aACX,SAAS,cACR,UAAU;AACZ,aAAK,wCACb,IAAI,iBACmB,iCACR,0CACX,QAAQ;AACX,IAAX,AAAG,EAAD;AACW,IAAb,AAAO,MAAD;AAC8B,IAApC,AAAO,MAAD,WAAW,AAAM,KAAD,KAAK,AAAM,KAAD;AACzB;AACP,QAAI,KAAK,IAAI,QAAc,aAAN,KAAK,IAAG;AACU,MAArC,AAAO,MAAD,QAAQ,uBAAgB,KAAK;AACgB,MAAnD,cAAc,kBAAO,AAAU,cAAT,AAAG,EAAD,UAAS,GAAG,AAAW,cAAV,AAAG,EAAD,WAAU;;AAEtB,IAA7B,AAAG,EAAD,OAAO,MAAM,EAAE,WAAW;AACZ,IAAhB,AAAO,MAAD;EACR;0DAE8B;AAC5B,UAAO,AAAgC,KAA5B,IAAI,QAAQ,AAAK,IAAD,iBAAe,AAAK,IAAD,YAAU,QAClD,AAAK,AAAY,IAAb,SAAO,iBACX;EACR;sDAEuC;AACnC,UAAO,yBAAQ,AAAO,MAAD,KAAK,AAAO,MAAD;EAAI;sDAED;AAAW,6BAAO,AAAO,MAAD,IAAI,AAAO,MAAD;EAAG;0CAG3D,QACR;AAEP,UAAO,oDAAiB,AAAO,MAAD,MAAG,wBAAiB,MAAM;EAC1D;sDAE2B,MAAU;AACxB,eAAY,qBAAS,KAAG,KAAG,AAAK,IAAD,QAAQ,AAAK,IAAD;AACjC,yBACF,6BAAS,uBAAgB,KAAK;AAEtC,gCAAwB,AAAK,IAAD,OAAO,AAAC,AAAK,IAAD;AAE5C,mBAAW,AAAsB,qBAAD;AAChC,oBAAY,AAAsB,qBAAD;AACjC,sBAAc,AAAsB,qBAAD;AACnC,uBAAe,AAAsB,qBAAD;AAEI,IAA/C,WAAW,kBAAW,cAAc,EAAE,QAAQ;AACG,IAAjD,YAAY,kBAAW,cAAc,EAAE,SAAS;AACK,IAArD,cAAc,kBAAW,cAAc,EAAE,WAAW;AACG,IAAvD,eAAe,kBAAW,cAAc,EAAE,YAAY;AAEnC,qBAAqB,sBACtC,QAAQ,EACR,SAAS,EACT,WAAW,EACX,YAAY;AAGD,eACT,AAAW,AAAkC,UAAnC,oBAAK,QAAQ,UAAW,AAAO,MAAD,iCAAiB;AAChD,eACT,AAAW,AAAkC,UAAnC,oBAAK,QAAQ,UAAW,AAAO,MAAD,iCAAiB;AAChD,eACT,AAAW,AAAkC,UAAnC,oBAAK,QAAQ,UAAW,AAAO,MAAD,iCAAiB;AAChD,eACT,AAAW,AAAkC,UAAnC,oBAAK,QAAQ,UAAW,AAAO,MAAD,iCAAiB;AAElD,qBAAkB,uBAC3B,kBAAO,IAAI,EAAE,IAAI,GACjB,kBAAO,IAAI,EAAE,IAAI;AAEnB,UAAO,WAAU;EACnB;oDAG4B,QAA0B,OAAc,aACzD,aACO;AACX,eAAO;AACD,eAAO;AACyB,IAA3C,AAAK,IAAD,QAAQ,AAAY,WAAD,KAAK,AAAY,WAAD;AACI,IAA3C,AAAK,IAAD,QAAQ,AAAY,WAAD,KAAK,AAAY,WAAD;AAC3B,gBAAQ;AACiB,IAArC,AAAM,KAAD,eAAe,AAAM,KAAD;AACA,IAAzB,AAAM,KAAD,SAAS,AAAM,KAAD;AACW,IAA9B,AAAM,KAAD,SAAS,AAAM,KAAD;AAEnB,QAAI,SAAS,IAAI;AACf,eAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAU,SAAD,YAAS,IAAI,AAAE,CAAD,GAAG;AAC5C,YAAI,AAAS,AAAI,SAAJ,QAAC,CAAC,MAAK;AACP,UAAX,OAAO;;;AAGX,UAAI,AAAK,IAAD,WAAI;AAMA,QALV,AAAO,MAAD,UACF,iBACE,IAAI,cACO,0CAA8B,SAAS,KAEpD,KAAK;;AAEmB,QAA5B,AAAO,MAAD,UAAU,IAAI,EAAE,KAAK;;AAED,MAA5B,AAAO,MAAD,UAAU,IAAI,EAAE,KAAK;EAC/B;oDAGwB;AAAQ,UAAI,cAAJ,GAAG,KAAY,oBAAE;EAAI;4DAGzB,OAAiB;AACvC,iBAAS;AACb,QAAI,AAAK,IAAD,mBAAkB,QAAQ,KAAK,IAAI;AACrB,kBAAQ,AAAK,IAAD;AAChC,UAAI,KAAK,IAAI;AACqC,QAAhD,SAAiC,CAAjB,aAAN,KAAK,iCAAG,AAAM,KAAD,2BAAa,AAAM,KAAD;AACO,QAAhD,mBAAS,AAAK,IAAD,eAAe,AAAE,IAAE,MAAM,GAAI,MAAM;;;AAGpD,UAAO,OAAM;EACf;sCAEiB,OAAW;AAAS,UAAA,AAAgB,UAAP,KAAK,IAAI,SAAS,IAAI;EAAC;oCAEpD,OAAqB;AAClC,UAAO,AAAkB,cAAxB,KAAK,kCAAI,AAAM,KAAD,cAAoB,aAAN,KAAK,kCAAI,AAAM,KAAD;EAAS;oDAGrB,GAAO,GAAa,OAAiB,OAC/D,YAA8C,QAAa;AACO,IAAzE,IAAU,0BAAN,KAAK,IAAsB,gBAAW,aAAF,CAAC,IAAG,IAAI,CAAC,GAAG,GAAG,AAAM,KAAD,YAAY,CAAC;AACA,IAAzE,IAAU,0BAAN,KAAK,IAAsB,gBAAW,aAAF,CAAC,IAAG,IAAI,CAAC,GAAG,GAAG,AAAM,KAAD,YAAY,CAAC;AACxC,IAAjC,IAAI,2BAAoB,CAAC,EAAE,KAAK;AACC,IAAjC,IAAI,2BAAoB,CAAC,EAAE,KAAK;AACtB,4BAAU,UAAU,IAAG,AAAK,IAAD,UAAU,AAAK,IAAD;AACzC,4BAAU,UAAU,IAAG,AAAK,IAAD,SAAS,AAAK,IAAD;AACxC,oBACI,aAAV,AAAK,IAAD,oBAAS,UAAU,IAAM,aAAF,CAAC,iBAAG,OAAO,IAAO,aAAF,CAAC,iBAAG,OAAO;AAChD,oBACG,aAAT,AAAK,IAAD,mBAAQ,UAAU,IAAW,CAAP,AAAE,iBAAE,CAAC,kBAAI,OAAO,IAAW,CAAP,AAAE,iBAAE,CAAC,kBAAI,OAAO;AAClE,UAAO,+BAAe,SAAS,EAAE,SAAS;EAC5C;sEAIc,MAC8B,kBACvB;AACf,mBAAW;AAAyB;AAAQ;AACxC;AACR,aAAuC,SAAU,iBAAgB;AAC1C,MAArB,UAAmB;AACnB,oBAAI,AAAO,MAAD,gBACJ,AAAK,AAAM,IAAP,YAAU,AAAO,MAAD,cACjB,AAAK,AAAM,IAAP,aAAU,kBAAkB,AAAO,AAAU,MAAX,cAAc,QACpD,AAAK,AAAM,IAAP,YAAU,AAAM,AAAa,KAAd,yBAChB,AAAO,MAAD,cAAc;AAInB,QAHX,UACI,AAAO,AAAY,AAEpB,MAFO,mCAA0B,QAA8B,SACzD,AAAM,KAAD;AAGA,QAAN,WAAR,OAAO;AACP,YAAmB,YAAP,WAAR,OAAO,aAAW;AAIM,UAH1B,YACU,AAAgB,uBAArB,IAAI,KAAoB,AAAO,AAAU,MAAX,eAAc,AAAO,MAAD,cAC3B,aAAjB,AAAO,MAAD,eAAa,aACpB,AAAO,MAAD;AAEgD,mBADhE,gBAAoB,WAAJ,WAAP,OAAO,WAAC,WACZ,AAAU,SAAD,IAAI,OAAO,SAAS,GAAG,AAAK,AAAc,IAAf;AACzC,cAAI,MAAM,KAAI;AACyB,YAArC,WAAW,mBAAS,QAAQ,EAAE,MAAM;;;AAGtC,mBAAS,IAAI,GAAG,AAAE,CAAD,gCAAW,WAAR,OAAO,eAAS,IAAA,AAAC,CAAA;AACzB,wCAAe,WAAP,OAAO,WAAC,CAAC;AAC3B,gBAAI,AAAE,CAAD,GAAG,KAAK,KAAK,IAAI;AACW,cAA/B,SAAe,aAAN,KAAK,iCAAU,WAAP,OAAO,WAAC,AAAE,CAAD,GAAG;AAC7B,kBAAI,MAAM,KAAI;AACyB,gBAArC,WAAW,mBAAS,QAAQ,EAAE,MAAM;;;;;;;AAOhD,QAAI,AAAS,QAAD,KAAI;AACF,MAAZ,WAAW;;AAGb,UAAO,SAAQ;EACjB;kEAoF0C,MAAa,GAAU,GACtD,OAAc,QAAe;AACxB,gBAAsB;AACpC,YAAQ,UAAU;;;;;;AAKc,QAA5B,QAAsB;AACtB;;;;AAE0C,QAA1C,AAAK,IAAD,QAAU,aAAF,CAAC,IAAS,aAAN,KAAK,IAAG,GAAK,aAAF,CAAC,IAAU,aAAP,MAAM,IAAG;AACgB,QAAxD,AAAK,IAAD,mBAAmB,CAAC,EAAI,aAAF,CAAC,iBAAG,MAAM,GAAE,CAAC,EAAI,aAAF,CAAC,IAAU,aAAP,MAAM,IAAG;AACxB,QAA9B,AAAK,IAAD,QAAQ,CAAC,EAAI,aAAF,CAAC,IAAU,aAAP,MAAM,IAAG;AAEqC,QADjE,AAAK,IAAD,mBACE,aAAF,CAAC,IAAS,aAAN,KAAK,IAAG,GAAK,aAAF,CAAC,IAAU,aAAP,MAAM,IAAG,GAAK,aAAF,CAAC,IAAS,aAAN,KAAK,IAAG,GAAK,aAAF,CAAC,IAAU,aAAP,MAAM,IAAG;AACnC,QAA5B,QAAsB;AACtB;;;;AAE0C,QAA1C,AAAK,IAAD,QAAU,aAAF,CAAC,IAAS,aAAN,KAAK,IAAG,GAAK,aAAF,CAAC,IAAU,aAAP,MAAM,IAAG;AACgB,QAAxD,AAAK,IAAD,mBAAmB,CAAC,EAAI,aAAF,CAAC,iBAAG,MAAM,GAAE,CAAC,EAAI,aAAF,CAAC,IAAU,aAAP,MAAM,IAAG;AAEW,QADjE,AAAK,IAAD,mBACE,aAAF,CAAC,IAAS,aAAN,KAAK,IAAG,GAAK,aAAF,CAAC,IAAU,aAAP,MAAM,IAAG,GAAK,aAAF,CAAC,IAAS,aAAN,KAAK,IAAG,GAAK,aAAF,CAAC,IAAU,aAAP,MAAM,IAAG;AAC/D;;;;;;AAIoD,QAApD,iCAA0B,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM;AACnD;;;;;;;AAKuD,QAAvD,oCAA6B,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM;AACtD;;;;;;;AAKqD,QAArD,kCAA2B,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM;AACpD;;;;AAEqD,QAArD,kCAA2B,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM;AACxB,QAA5B,QAAsB;AACtB;;;;AAGqB,QADrB,AAAK,IAAD,QAAa,qBAAW,aAAF,CAAC,IAAS,aAAN,KAAK,IAAG,GAAK,aAAF,CAAC,IAAU,aAAP,MAAM,IAAG,GAAG,KAAK,EAAE,MAAM,GAClE,KAAK,AAAE;AACX;;;;AAG8B,QAA9B,AAAK,IAAD,QAAQ,CAAC,EAAI,aAAF,CAAC,IAAU,aAAP,MAAM,IAAG;AACE,QAA9B,AAAK,IAAD,QAAQ,CAAC,EAAI,aAAF,CAAC,IAAU,aAAP,MAAM,IAAG;AACA,QAA5B,QAAsB;AACtB;;;;;AAG6B,QAA7B,AAAK,IAAD,QAAU,aAAF,CAAC,IAAS,aAAN,KAAK,IAAG,GAAG,CAAC;AACC,QAA7B,AAAK,IAAD,QAAU,aAAF,CAAC,IAAS,aAAN,KAAK,IAAG,GAAG,CAAC;AACA,QAA5B,QAAsB;AACtB;;;;AAEgD,QAAhD,6BAAsB,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM;AAC/C;;;;;AAGA;;;;AAEqD,QAArD,kCAA2B,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM;AACpD;;;;AAEoD,QAApD,iCAA0B,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM;AACnD;;;;AAEmD,QAAnD,gCAAyB,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM;AAClD;;;;AAMgB,QAJhB,AAAK,IAAD,QACK,qBACC,aAAF,CAAC,IAAS,aAAN,KAAK,IAAG,GAAK,aAAF,CAAC,IAAU,aAAP,MAAM,IAAG,GAAK,aAAF,CAAC,IAAS,aAAN,KAAK,IAAG,GAAK,aAAF,CAAC,IAAU,aAAP,MAAM,IAAG,IAC/D,KACA,AAAE;AACN;;;AAEJ,UAAO,MAAK;EACd;wEAIS,MAAa,GAAU,GAAU,OAAc;AAEU,IAAhE,AAAK,IAAD,QAAU,AAAc,aAAhB,CAAC,IAAU,aAAN,KAAK,IAAG,IAAa,KAAE,GAAK,aAAF,CAAC,IAAG,AAAE,KAAU,aAAP,MAAM,IAAG;AACN,IAAvD,AAAK,IAAD,QAAU,aAAF,CAAC,IAAG,AAAE,KAAS,aAAN,KAAK,IAAG,KAAO,aAAF,CAAC,IAAG,AAAE,KAAU,aAAP,MAAM,IAAG;AACI,IAAxD,AAAK,IAAD,QAAU,aAAF,CAAC,IAAG,AAAE,KAAS,aAAN,KAAK,IAAG,KAAO,aAAF,CAAC,IAAG,AAAE,KAAU,aAAP,MAAM,IAAG;AACa,IAAjE,AAAK,IAAD,QAAU,AAAc,aAAhB,CAAC,IAAU,aAAN,KAAK,IAAG,IAAa,KAAE,GAAK,aAAF,CAAC,IAAG,AAAE,KAAU,aAAP,MAAM,IAAG;AACjD,IAAZ,AAAK,IAAD;AAEmE,IADvE,AAAK,IAAD,QACE,AAAc,aAAhB,CAAC,IAAU,aAAN,KAAK,IAAG,IAAc,KAAE,GAAM,AAAe,aAAjB,CAAC,IAAW,aAAP,MAAM,IAAG,IAAc,KAAE;AAEI,IADvE,AAAK,IAAD,QACE,AAAc,aAAhB,CAAC,IAAU,aAAN,KAAK,IAAG,IAAc,KAAE,GAAM,AAAe,aAAjB,CAAC,IAAW,aAAP,MAAM,IAAG,IAAc,KAAE;AAEK,IADxE,AAAK,IAAD,QACE,AAAc,aAAhB,CAAC,IAAU,aAAN,KAAK,IAAG,IAAc,KAAE,GAAM,AAAgB,aAAlB,CAAC,IAAW,aAAP,MAAM,IAAG,KAAe,KAAE;AAEI,IADxE,AAAK,IAAD,QACE,AAAc,aAAhB,CAAC,IAAU,aAAN,KAAK,IAAG,IAAc,KAAE,GAAM,AAAgB,aAAlB,CAAC,IAAW,aAAP,MAAM,IAAG,KAAe,KAAE;AACxD,IAAZ,AAAK,IAAD;AAEmE,IADvE,AAAK,IAAD,QACE,AAAc,aAAhB,CAAC,IAAU,aAAN,KAAK,IAAG,IAAc,KAAE,GAAM,AAAe,aAAjB,CAAC,IAAW,aAAP,MAAM,IAAG,IAAc,KAAE;AACN,IAA7D,AAAK,IAAD,QAAU,aAAF,CAAC,IAAS,aAAN,KAAK,IAAG,GAAK,AAAe,aAAjB,CAAC,IAAW,aAAP,MAAM,IAAG,IAAc,KAAE;AACI,IAA7D,AAAK,IAAD,QAAU,aAAF,CAAC,IAAS,aAAN,KAAK,IAAG,GAAK,AAAe,aAAjB,CAAC,IAAW,aAAP,MAAM,IAAG,IAAc,KAAE;AAEc,IADvE,AAAK,IAAD,QACE,AAAc,aAAhB,CAAC,IAAU,aAAN,KAAK,IAAG,IAAc,KAAE,GAAM,AAAe,aAAjB,CAAC,IAAW,aAAP,MAAM,IAAG,IAAc,KAAE;AACvD,IAAZ,AAAK,IAAD;EACN;8EAIS,MAAa,GAAU,GAAU,OAAc;AAEJ,IAAlD,AAAK,IAAD,QAAU,aAAF,CAAC,IAAG,AAAE,KAAS,aAAN,KAAK,IAAG,IAAM,aAAF,CAAC,IAAW,aAAP,MAAM,IAAG;AACK,IAApD,AAAK,IAAD,QAAU,aAAF,CAAC,IAAG,AAAE,KAAG,AAAO,cAAN,KAAK,IAAG,KAAO,aAAF,CAAC,IAAW,aAAP,MAAM,IAAG;AACG,IAApD,AAAK,IAAD,QAAU,aAAF,CAAC,IAAG,AAAE,KAAG,AAAO,cAAN,KAAK,IAAG,KAAO,aAAF,CAAC,IAAW,aAAP,MAAM,IAAG;AACC,IAAlD,AAAK,IAAD,QAAU,aAAF,CAAC,IAAG,AAAE,KAAS,aAAN,KAAK,IAAG,IAAM,aAAF,CAAC,IAAW,aAAP,MAAM,IAAG;AACnC,IAAZ,AAAK,IAAD;AAEkE,IADtE,AAAK,IAAD,QACE,AAAe,aAAjB,CAAC,IAAU,aAAN,KAAK,IAAG,KAAa,aAAN,KAAK,IAAG,IAAO,AAAe,aAAjB,CAAC,IAAW,aAAP,MAAM,IAAG,IAAc,KAAE;AAEG,IADtE,AAAK,IAAD,QACE,AAAe,aAAjB,CAAC,IAAU,aAAN,KAAK,IAAG,KAAa,aAAN,KAAK,IAAG,IAAO,AAAe,aAAjB,CAAC,IAAW,aAAP,MAAM,IAAG,IAAc,KAAE;AACL,IAA9D,AAAK,IAAD,QAAU,AAAe,aAAjB,CAAC,IAAU,aAAN,KAAK,IAAG,KAAa,aAAN,KAAK,IAAG,IAAO,aAAF,CAAC,IAAW,aAAP,MAAM,IAAG;AACG,IAA9D,AAAK,IAAD,QAAU,AAAe,aAAjB,CAAC,IAAU,aAAN,KAAK,IAAG,KAAa,aAAN,KAAK,IAAG,IAAO,aAAF,CAAC,IAAW,aAAP,MAAM,IAAG;AAC/C,IAAZ,AAAK,IAAD;AACgC,IAApC,AAAK,IAAD,QAAU,aAAF,CAAC,IAAG,AAAE,KAAS,aAAN,KAAK,IAAG,KAAK,CAAC;AACA,IAAnC,AAAK,IAAD,QAAU,aAAF,CAAC,IAAG,AAAE,KAAS,aAAN,KAAK,IAAG,IAAI,CAAC;AACgB,IAAlD,AAAK,IAAD,QAAU,aAAF,CAAC,IAAG,AAAE,KAAS,aAAN,KAAK,IAAG,IAAM,aAAF,CAAC,IAAW,aAAP,MAAM,IAAG;AACI,IAAnD,AAAK,IAAD,QAAU,aAAF,CAAC,IAAG,AAAE,KAAS,aAAN,KAAK,IAAG,KAAO,aAAF,CAAC,IAAW,aAAP,MAAM,IAAG;AACpC,IAAZ,AAAK,IAAD;EACN;0EAIS,MAAa,GAAU,GAAU,OAAc;AAEQ,IAA9D,AAAK,IAAD,QAAU,AAAc,aAAhB,CAAC,IAAU,aAAN,KAAK,IAAG,IAAc,KAAE,GAAM,aAAF,CAAC,IAAW,aAAP,MAAM,IAAG;AACG,IAA9D,AAAK,IAAD,QAAU,AAAc,aAAhB,CAAC,IAAU,aAAN,KAAK,IAAG,IAAc,KAAE,GAAM,aAAF,CAAC,IAAW,aAAP,MAAM,IAAG;AAC3B,IAAhC,AAAK,IAAD,QAAQ,CAAC,EAAI,aAAF,CAAC,IAAW,aAAP,MAAM,IAAG;AACgD,IAA7E,AAAK,IAAD,QAAU,AAAc,aAAhB,CAAC,IAAU,aAAN,KAAK,IAAG,IAAc,KAAE,GAAM,AAAe,aAAjB,CAAC,IAAW,aAAP,MAAM,IAAG,IAAa,aAAP,MAAM,IAAG;AACX,IAA/D,AAAK,IAAD,QAAU,AAAe,aAAjB,CAAC,IAAW,aAAP,MAAM,IAAG,IAAc,KAAE,GAAM,aAAF,CAAC,IAAW,aAAP,MAAM,IAAG;AAChD,IAAZ,AAAK,IAAD;EACN;0EAIS,MAAa,GAAU,GAAU,OAAc;AAEQ,IAA9D,AAAK,IAAD,QAAU,AAAc,aAAhB,CAAC,IAAU,aAAN,KAAK,IAAG,IAAc,KAAE,GAAM,aAAF,CAAC,IAAW,aAAP,MAAM,IAAG;AACE,IAA7D,AAAK,IAAD,QAAU,AAAc,aAAhB,CAAC,IAAU,aAAN,KAAK,IAAG,IAAY,aAAN,KAAK,IAAG,IAAO,aAAF,CAAC,IAAW,aAAP,MAAM,IAAG;AACZ,IAA9C,AAAK,IAAD,QAAU,AAAc,aAAhB,CAAC,IAAU,aAAN,KAAK,IAAG,IAAY,aAAN,KAAK,IAAG,IAAK,CAAC;AACb,IAAhC,AAAK,IAAD,QAAU,aAAF,CAAC,IAAU,aAAN,KAAK,IAAG,IAAK,CAAC;AACgB,IAA/C,AAAK,IAAD,QAAU,aAAF,CAAC,IAAU,aAAN,KAAK,IAAG,IAAO,aAAF,CAAC,IAAW,aAAP,MAAM,IAAG;AACE,IAA9C,AAAK,IAAD,QAAU,aAAF,CAAC,IAAU,aAAN,KAAK,IAAG,GAAM,aAAF,CAAC,IAAW,aAAP,MAAM,IAAG;AACG,IAA9C,AAAK,IAAD,QAAU,aAAF,CAAC,IAAU,aAAN,KAAK,IAAG,GAAM,aAAF,CAAC,IAAW,aAAP,MAAM,IAAG;AACG,IAA9C,AAAK,IAAD,QAAU,aAAF,CAAC,IAAU,aAAN,KAAK,IAAG,GAAM,aAAF,CAAC,IAAW,aAAP,MAAM,IAAG;AACG,IAA9C,AAAK,IAAD,QAAU,aAAF,CAAC,IAAU,aAAN,KAAK,IAAG,GAAM,aAAF,CAAC,IAAW,aAAP,MAAM,IAAG;AACmB,IAA9D,AAAK,IAAD,QAAU,AAAc,aAAhB,CAAC,IAAU,aAAN,KAAK,IAAG,IAAc,KAAE,GAAM,aAAF,CAAC,IAAW,aAAP,MAAM,IAAG;EAC7D;0EAIS,MAAa,GAAU,GAAU,OAAc;AAEQ,IAA9D,AAAK,IAAD,QAAU,AAAc,aAAhB,CAAC,IAAU,aAAN,KAAK,IAAG,IAAc,KAAE,GAAM,aAAF,CAAC,IAAW,aAAP,MAAM,IAAG;AACG,IAA9D,AAAK,IAAD,QAAU,AAAc,aAAhB,CAAC,IAAU,aAAN,KAAK,IAAG,IAAc,KAAE,GAAM,aAAF,CAAC,IAAW,aAAP,MAAM,IAAG;AACE,IAA7D,AAAK,IAAD,QAAU,AAAc,aAAhB,CAAC,IAAU,aAAN,KAAK,IAAG,IAAY,aAAN,KAAK,IAAG,IAAO,aAAF,CAAC,IAAW,aAAP,MAAM,IAAG;AACG,IAA7D,AAAK,IAAD,QAAU,AAAc,aAAhB,CAAC,IAAU,aAAN,KAAK,IAAG,IAAY,aAAN,KAAK,IAAG,IAAO,aAAF,CAAC,IAAW,aAAP,MAAM,IAAG;AACX,IAA/C,AAAK,IAAD,QAAU,aAAF,CAAC,IAAU,aAAN,KAAK,IAAG,IAAO,aAAF,CAAC,IAAW,aAAP,MAAM,IAAG;AACZ,IAAhC,AAAK,IAAD,QAAU,aAAF,CAAC,IAAU,aAAN,KAAK,IAAG,IAAK,CAAC;AACA,IAA/B,AAAK,IAAD,QAAU,aAAF,CAAC,IAAU,aAAN,KAAK,IAAG,GAAI,CAAC;AACgB,IAA9C,AAAK,IAAD,QAAU,aAAF,CAAC,IAAU,aAAN,KAAK,IAAG,GAAM,aAAF,CAAC,IAAW,aAAP,MAAM,IAAG;AACG,IAA9C,AAAK,IAAD,QAAU,aAAF,CAAC,IAAU,aAAN,KAAK,IAAG,GAAM,aAAF,CAAC,IAAW,aAAP,MAAM,IAAG;AACG,IAA9C,AAAK,IAAD,QAAU,aAAF,CAAC,IAAU,aAAN,KAAK,IAAG,GAAM,aAAF,CAAC,IAAW,aAAP,MAAM,IAAG;AAC/B,IAAZ,AAAK,IAAD;EACN;gEAIS,MAAa,GAAU,GAAU,OAAc;AAC5C,YAAI,AAAwB,sBAAf,MAAM,EAAE,KAAK,IAAI;AACvB,IAAjB,AAAK,IAAD,QAAQ,CAAC,EAAE,CAAC;AACK,IAArB,AAAK,IAAD,QAAU,aAAF,CAAC,IAAG,CAAC,EAAE,CAAC;AAEoC,IADxD,AAAK,IAAD,OAAY,gCAAmB,kBAAO,CAAC,EAAE,CAAC,WAAW,CAAC,IACtD,yBAAkB,IAAI,yBAAkB,MAAM;AACtC,IAAZ,AAAK,IAAD;AACwC,IAA5C,AAAK,IAAD,QAAU,aAAF,CAAC,IAAS,aAAN,KAAK,IAAG,IAAM,aAAF,CAAC,IAAU,aAAP,MAAM,IAAG;AACN,IAAnC,AAAK,IAAD,QAAU,aAAF,CAAC,IAAG,CAAC,EAAI,aAAF,CAAC,IAAU,aAAP,MAAM,IAAG;AAEyB,IADzD,AAAK,IAAD,OAAY,gCAAmB,kBAAS,aAAF,CAAC,IAAG,GAAK,aAAF,CAAC,IAAG,YAAY,CAAC,IAC9D,yBAAkB,CAAC,IAAI,yBAAkB,CAAC,KAAK;AACvC,IAAZ,AAAK,IAAD;EACN;wEAIS,MAAa,GAAU,GAAU,OAAc;AACZ,IAA1C,AAAK,IAAD,QAAU,aAAF,CAAC,IAAS,aAAN,KAAK,IAAG,GAAK,aAAF,CAAC,IAAU,aAAP,MAAM,IAAG;AACE,IAA1C,AAAK,IAAD,QAAU,aAAF,CAAC,IAAS,aAAN,KAAK,IAAG,GAAK,aAAF,CAAC,IAAU,aAAP,MAAM,IAAG;AACV,IAA9B,AAAK,IAAD,QAAQ,CAAC,EAAI,aAAF,CAAC,IAAU,aAAP,MAAM,IAAG;AACc,IAA1C,AAAK,IAAD,QAAU,aAAF,CAAC,IAAS,aAAN,KAAK,IAAG,GAAK,aAAF,CAAC,IAAU,aAAP,MAAM,IAAG;AAC5B,IAAZ,AAAK,IAAD;EACN;sEAIS,MAAa,GAAU,GAAU,OAAc;AACZ,IAA1C,AAAK,IAAD,QAAU,aAAF,CAAC,IAAS,aAAN,KAAK,IAAG,GAAK,aAAF,CAAC,IAAU,aAAP,MAAM,IAAG;AACV,IAA9B,AAAK,IAAD,QAAQ,CAAC,EAAI,aAAF,CAAC,IAAU,aAAP,MAAM,IAAG;AACc,IAA1C,AAAK,IAAD,QAAU,aAAF,CAAC,IAAS,aAAN,KAAK,IAAG,GAAK,aAAF,CAAC,IAAU,aAAP,MAAM,IAAG;AACE,IAA1C,AAAK,IAAD,QAAU,aAAF,CAAC,IAAS,aAAN,KAAK,IAAG,GAAK,aAAF,CAAC,IAAU,aAAP,MAAM,IAAG;AAC5B,IAAZ,AAAK,IAAD;EACN;4DAG6B,IAAQ,IAAQ,IAAQ,IACf,QAAyB;AAClD,eAAO,4BAAqB,AAAM,AAAW,KAAZ,6BACxC,kBAAO,AAAO,AAAO,MAAR,sBAAoB,AAAO,AAAO,MAAR;AAChC,qBAAa,AAAM,KAAD;AACR,iBAAS,uBAC1B,EAAE,EAAE,EAAE,EAAE,AAAO,MAAD,WAAS,AAAO,MAAD,WAAS,UAAU,EAAE,MAAM,EAAE,IAAI;AAC7C,iBAAS,uBAC1B,EAAE,EAAE,EAAE,EAAE,AAAO,MAAD,WAAS,AAAO,MAAD,WAAS,UAAU,EAAE,MAAM,EAAE,IAAI;AAClE,UAAY,sBACR,sBAAS,AAAO,MAAD,IAAI,AAAO,MAAD,KACzB,sBAAS,AAAO,MAAD,IAAI,AAAO,MAAD,KACH,CAAZ,aAAT,AAAO,MAAD,mBAAK,AAAO,MAAD,cACI,CAAZ,aAAT,AAAO,MAAD,mBAAK,AAAO,MAAD;EACxB;wEAIQ,IACA,IACA,IACA,IAC8B,QACjB,OACV;AACE,eAAO,4BAAqB,AAAM,AAAW,KAAZ,6BACxC,kBAAO,AAAO,AAAO,MAAR,sBAAoB,AAAO,AAAO,MAAR;AAChC,qBAAa,AAAM,KAAD;AACR,iBAAS,uBAC1B,EAAE,EAAE,EAAE,EAAE,AAAO,MAAD,WAAS,AAAO,MAAD,WAAS,UAAU,EAAE,MAAM,EAAE,IAAI;AAC7C,iBAAS,uBAC1B,EAAE,EAAE,EAAE,EAAE,AAAO,MAAD,WAAS,AAAO,MAAD,WAAS,UAAU,EAAE,MAAM,EAAE,IAAI;AACvD,mBAAW,AAAO,AAAY,MAAb,mBAAgB;AACjC,0BAAkB,AAAO,AAAY,MAAb,mBAAgB;AACxC,uBAAe,AAAO,AAAY,MAAb,mBAAgB;AACrC,wBAAgB,AAAO,AAAY,MAAb,mBAAgB;AAClB;AACH;AACU;AACH;AACC;AACpC,QAAI,AAAO,AAAY,MAAb,mBAAgB;AACH,qBAArB,2BAAe,MAAM;UAChB,KAAI,AAAO,AAAY,MAAb,mBAAgB;AACb,kBAAlB,wBAAY,MAAM;UACb,KAAI,AAAO,AAAY,MAAb,mBAAgB;AACH,4BAA5B,kCAAsB,MAAM;UACvB,KAAI,AAAO,AAAY,MAAb,mBAAgB;AACN,yBAAzB,+BAAmB,MAAM;UACpB,KAAI,AAAO,AAAY,MAAb,mBAAgB;AACL,0BAA1B,gCAAoB,MAAM;;AAG5B,UAAO,YAAC,AAAM,KAAD,iBACP,4BACE,IAAI,EACJ,QAAQ,EACR,aAAa,EACb,eAAe,EACf,YAAY,EACZ,KAAK,EACL,UAAU,EACV,MAAM,EACN,MAAM,EACN,YAAY,EACZ,SAAS,EACT,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,IACnB,gCACE,IAAI,EACJ,QAAQ,EACR,aAAa,EACb,eAAe,EACf,YAAY,EACZ,KAAK,EACL,UAAU,EACV,MAAM,EACN,MAAM,EACN,YAAY,EACZ,SAAS,EACT,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB;EAC3B;8DAIS,MACA,UACA,eACA,iBACA,cACY,OACV,YACQ,QACA,QACgB,cACH,WACU,qBACH,kBACC;AACtC,UAAY,gCACR,QAAQ,IACF,AAA6B,mBAApB,AAAO,MAAD,IAAI,AAAO,MAAD,OACtB,AAA+B,cAA9B,AAAa,YAAD,kCAAoB,AAAa,YAAD,4BAChD,aAAa,IACT,AAA6B,mBAApB,AAAO,MAAD,IAAI,AAAO,MAAD,OACtB,AAAoC,cAAnC,AAAkB,iBAAD,kCACf,AAAkB,iBAAD,4BACvB,eAAe,IACX,AAA6B,mBAApB,AAAO,MAAD,IAAI,AAAO,MAAD,OACtB,AAAsC,cAArC,AAAoB,mBAAD,kCACjB,AAAoB,mBAAD,4BACzB,YAAY,IACR,AAAM,AAAW,AAAc,KAA1B,mCACL,AAAM,AAAW,AAAc,KAA1B,kCACd,UAAT,QAAQ,eAAI,aAAa,IACnB,AAAK,IAAD,iBACJ,eAAe,IACX,AAAK,IAAD,iBACJ,YAAY,IACP,AAA6B,AACM,mBAD1B,AAAO,MAAD,IAAI,AAAO,MAAD,mBACxB,AAAiB,gBAAD,kCAChB,AAAiB,gBAAD,iBACjB,AAA6B,AACD,mBADnB,AAAO,MAAD,IAAI,AAAO,MAAD,mBACxB,AAAU,SAAD,kCACT,AAAU,SAAD,0BACzB,QAAQ,IACoB,AAAM,AACU,CAD5B,aAAT,AAAO,MAAD,mBAAK,AAAO,MAAD,eACe,aAA9B,AAAa,YAAD,qBAAoB,IACP,aAA1B,AAAa,YAAD,iBAAgB,cAC9B,aAAa,IACa,AAAM,AACe,CADjC,aAAT,AAAO,MAAD,mBAAK,AAAO,MAAD,eACoB,aAAnC,AAAkB,iBAAD,qBAAoB,IACP,aAA/B,AAAkB,iBAAD,iBAAgB,cACnC,eAAe,IACW,AAAM,AACiB,CADnC,aAAT,AAAO,MAAD,mBAAK,AAAO,MAAD,eACsB,aAArC,AAAoB,mBAAD,qBAAoB,IACP,aAAjC,AAAoB,mBAAD,iBAAgB,cACrC,YAAY,IACR,AAAM,AAAW,AAAc,KAA1B,oCACL,AAAM,AAAW,AAAc,KAA1B,mCACd,UAAT,QAAQ,eAAI,aAAa,IACoB,aAAtC,AAAM,AAAW,AAAc,KAA1B,sCAAmC,AAAE,iBAAE,AAAW,UAAD,iBACvD,eAAe,IAC4B,aAAtC,AAAM,AAAW,AAAc,KAA1B,sCAAmC,AAAE,iBAAE,AAAW,UAAD,iBACvD,YAAY,IACc,AAAM,AACY,CAD9B,aAAT,AAAO,MAAD,mBAAK,AAAO,MAAD,eACkB,aAAlC,AAAiB,gBAAD,qBAAoB,IACN,aAA9B,AAAiB,gBAAD,iBAAgB,IACZ,AAAM,AACK,CADvB,aAAT,AAAO,MAAD,mBAAK,AAAO,MAAD,eACW,aAA3B,AAAU,SAAD,qBAAoB,IACN,aAAvB,AAAU,SAAD,iBAAgB;EAC/C;sEAIS,MACA,UACA,eACA,iBACA,cACY,OACV,YACQ,QACA,QACgB,cACH,WACU,qBACH,kBACC;AACtC,UAAY,sBACC,UAAT,QAAQ,eAAI,aAAa,IACnB,AAAM,AAAW,AAAc,KAA1B,6CACL,eAAe,IACX,AAAM,AAAW,AAAc,KAA1B,6CACL,YAAY,IACR,AAA6B,mBAApB,AAAO,MAAD,IAAI,AAAO,MAAD,OACtB,AAAmC,cAAlC,AAAiB,gBAAD,kCACd,AAAiB,gBAAD,kBACtB,AAA6B,mBAApB,AAAO,MAAD,IAAI,AAAO,MAAD,OACtB,AAA4B,cAA3B,AAAU,SAAD,kCAAoB,AAAU,SAAD,2BACxD,QAAQ,IACD,AAA6B,AACE,mBADtB,AAAO,MAAD,IAAI,AAAO,MAAD,mBACxB,AAAa,YAAD,kCACZ,AAAa,YAAD,2BACd,aAAa,IACR,AAA6B,AACO,mBAD3B,AAAO,MAAD,IAAI,AAAO,MAAD,mBACxB,AAAkB,iBAAD,kCACjB,AAAkB,iBAAD,2BACnB,eAAe,IACV,AAA6B,AACS,mBAD7B,AAAO,MAAD,IAAI,AAAO,MAAD,mBACxB,AAAoB,mBAAD,kCACnB,AAAoB,mBAAD,2BACrB,YAAY,IAAG,AAAK,IAAD,OAAO,AAAK,IAAD,MACnC,UAAT,QAAQ,eAAI,aAAa,IACnB,AAAM,AAAW,AAAc,KAA1B,8CACL,eAAe,IACX,AAAM,AAAW,AAAc,KAA1B,8CACL,YAAY,IACc,AAAM,AACc,CADhC,aAAT,AAAO,MAAD,mBAAK,AAAO,MAAD,eACmB,aAAlC,AAAiB,gBAAD,qBAAoB,IACP,aAA9B,AAAiB,gBAAD,iBAAgB,IACZ,AAAM,AACO,CADzB,aAAT,AAAO,MAAD,mBAAK,AAAO,MAAD,eACY,aAA3B,AAAU,SAAD,qBAAoB,IACP,aAAvB,AAAU,SAAD,iBAAgB,aACzC,QAAQ,IACqB,AAAM,AACO,CADzB,aAAT,AAAO,MAAD,mBAAK,AAAO,MAAD,eACa,aAA9B,AAAa,YAAD,qBAAoB,IACN,aAA1B,AAAa,YAAD,iBAAgB,cAC9B,aAAa,IACa,AAAM,AACa,CAD/B,aAAT,AAAO,MAAD,mBAAK,AAAO,MAAD,eACmB,aAAnC,AAAkB,iBAAD,qBAAoB,IACN,aAA/B,AAAkB,iBAAD,iBAAgB,cACnC,eAAe,IACW,AAAM,AACe,CADjC,aAAT,AAAO,MAAD,mBAAK,AAAO,MAAD,eACqB,aAArC,AAAoB,mBAAD,qBAAoB,IACN,aAAjC,AAAoB,mBAAD,iBAAgB,cACrC,YAAY,IAC+B,aAAtC,AAAM,AAAW,AAAc,KAA1B,sCACJ,AAAE,iBAAE,AAAW,UAAD,OACuB,aAAtC,AAAM,AAAW,AAAc,KAA1B,sCACJ,AAAE,iBAAE,AAAW,UAAD;EACxC;sEAIsC,QAAyB;AACzD;AACA;AACA;AACA;AACJ,QAAI,AAAO,AAAY,MAAb,mBAAgB,sBAAY,AAAM,KAAD;AACJ,oDAAe,MAAM;AACd,MAA5C,qCAA8B,MAAM,EAAE,KAAK;AACF,MAAzC,eAAe,AAAa,YAAD;AACI,MAA/B,QAAQ,AAAa,YAAD;UACf,KAAI,AAAO,AAAY,MAAb,mBAAgB,mBAC7B,AAAM,KAAD;AAC2B,8CAAY,MAAM;AACR,MAA5C,qCAA8B,MAAM,EAAE,KAAK;AACL,MAAtC,eAAe,AAAU,SAAD;AACI,MAA5B,QAAQ,AAAU,SAAD;UACZ,MAAK,AAAO,AAAY,MAAb,0BAAsB,oBAChC,AAAO,AAAY,MAAb,0BAAsB,4BAChC,AAAM,KAAD;AACoC,+DAAoB,MAAM;AACzB,MAA5C,qCAA8B,MAAM,EAAE,KAAK;AACG,MAA9C,eAAe,AAAkB,iBAAD;AACI,MAApC,QAAQ,AAAkB,iBAAD;UACpB,KAAI,AAAO,AAAY,MAAb,mBAAgB,2BAC7B,AAAM,KAAD;AACmC,8DAAoB,MAAM;AACxB,MAA5C,qCAA8B,MAAM,EAAE,KAAK;AACG,MAA9C,eAAe,AAAkB,iBAAD;AACI,MAApC,QAAQ,AAAkB,iBAAD;UACpB,KAAI,AAAO,AAAY,MAAb,mBAAgB,oBAC7B,AAAM,KAAD;AAC4B,gDAAa,MAAM;AACV,MAA5C,qCAA8B,MAAM,EAAE,KAAK;AACJ,MAAvC,eAAe,AAAW,UAAD;AACI,MAA7B,QAAQ,AAAW,UAAD;UACb,KAAI,AAAO,AAAY,MAAb,mBAAgB,6BAC7B,AAAM,KAAD;AACqC,kEAAsB,MAAM;AAC5B,MAA5C,qCAA8B,MAAM,EAAE,KAAK;AACK,MAAhD,eAAe,AAAoB,mBAAD;AACI,MAAtC,QAAQ,AAAoB,mBAAD;UACtB,KAAI,AAAO,AAAY,MAAb,mBAAgB,sBAC7B,AAAM,KAAD;AAC8B,oDAAe,MAAM;AACd,MAA5C,qCAA8B,MAAM,EAAE,KAAK;AACF,MAAzC,eAAe,AAAa,YAAD;AACI,MAA/B,QAAQ,AAAa,YAAD;;AAGtB,QAAI,AAAO,AAAY,MAAb,mBAAgB;AACa,oDAAe,MAAM;AAEU,MADpE,0BACI,AAAM,KAAD,oCAAmC,AAAa,YAAD,WAAW;AAClC,MAAjC,eAAe,AAAa,YAAD;UACtB,KAAI,AAAO,AAAY,MAAb,mBAAgB,mBAC7B,AAAO,AAAY,MAAb,mBAAgB,sBACtB,AAAO,AAAY,MAAb,mBAAgB,gBACtB,AAAO,AAAY,MAAb,mBAAgB;AACmB,+DAAoB,MAAM;AAEI,MADzE,0BACI,AAAM,KAAD,oCAAmC,AAAkB,iBAAD,WAAW;AAClC,MAAtC,eAAe,AAAkB,iBAAD;UAC3B,KAAI,AAAO,AAAY,MAAb,mBAAgB;AACW,8DAAoB,MAAM;AAEK,MADzE,0BACI,AAAM,KAAD,oCAAmC,AAAkB,iBAAD,WAAW;AAClC,MAAtC,eAAe,AAAkB,iBAAD;UAC3B,KAAI,AAAO,AAAY,MAAb,mBAAgB;AACI,gDAAa,MAAM;AAEY,MADlE,0BACI,AAAM,KAAD,oCAAmC,AAAW,UAAD,WAAW;AAClC,MAA/B,eAAe,AAAW,UAAD;UACpB,KAAI,AAAO,AAAY,MAAb,mBAAgB;AACa,kEAAsB,MAAM;AAEG,MAD3E,0BACI,AAAM,KAAD,oCAAmC,AAAoB,mBAAD,WAAW;AAClC,MAAxC,eAAe,AAAoB,mBAAD;UAC7B,KAAI,AAAO,AAAY,MAAb,mBAAgB;AACM,oDAAe,MAAM;AAEU,MADpE,0BACI,AAAM,KAAD,oCAAmC,AAAa,YAAD,WAAW;AAClC,MAAjC,eAAe,AAAa,YAAD;;AAEO,8CAAY,MAAM;AAEa,MADjE,0BACI,AAAM,KAAD,oCAAmC,AAAU,SAAD,WAAW;AAClC,MAA9B,eAAe,AAAU,SAAD;;AAEhB,mBACN,WAAC,AAAM,KAAD,oCAAmC,IAAI,YAAY;AACnD,oBAAY,WAAC,AAAM,KAAD,oCAAmC,IAAI,KAAK;AAG9D,yBAAiB,gCACvB,AAAO,MAAD,0CAAS,AAAM,AAAa,KAAd,+BAA6B,KAAK;AAChD,gBAAuB,aAAf,cAAc,iBAAG,YAAY;AACrC,mBAAoB,AAAY,aAArB,QAAQ,iBAAG,SAAS,IAAG;AAC9B,sBACV,6BAAc,QAAQ,EAAE,AAAS,QAAD,GAAI,AAAE,iBAAE,SAAS;AAGrD,QAAyB,OAApB,AAAY,WAAD,wBAAyC,OAApB,AAAY,WAAD;AAE6B,MAD3E,cACI,6BAAkC,WAApB,AAAY,WAAD,gBAAW,KAAK,IAAsB,WAApB,AAAY,WAAD,gBAAW,KAAK;AACb,MAA7D,AAAY,WAAD,SAAC,gBAA4B,WAApB,AAAY,WAAD,gBAAW,AAAY,WAAD;AAC3C,mBAAuB,aAAd,aAAa,iBAAG,AAAY,WAAD;AAEyB,MADvE,cAAc,6BACU,WAApB,AAAY,WAAD,gBAAW,AAAO,MAAD,GAAG,KAAuB,WAApB,AAAY,WAAD,gBAAW,AAAO,MAAD,GAAG;AACR,MAA7D,AAAY,WAAD,SAAC,gBAA4B,WAApB,AAAY,WAAD,gBAAW,AAAY,WAAD;;AAEvD,UAAO,YAAW;EACpB;oEAE8C,QAAe,QAClD,WAA0B,WAAe,OAAiB;AACnE,QAAU,aAAN,KAAK,IAAG;AACC,qBAAW,oBAAa,SAAS,EAAE,SAAS;AAC5C,2BAAiB,oBAAa,SAAS,EAAE,SAAS,EAAE,KAAK;AAIZ,MADxD,SAAO,aAAP,MAAM,KAA6C,AAAM,AAAK,CAA7B,aAArB,AAAe,cAAD,uBAAS,AAAS,QAAD,mBAAgB,IAC3B,AAAM,aAAzB,aAAN,KAAK,IAAG,KAAK,KAAK,KAAK,IAAI,kBAAM,AAAS,QAAD;AAG2B,MAA3E,SAAO,aAAP,MAAM,KAAW,aAAN,KAAK,IAAG,KAA+C,CAAnB,aAArB,AAAe,cAAD,uBAAS,AAAS,QAAD,oBAAiB;AAInE,MAHP,SAAO,aAAP,MAAM,KAAW,aAAN,KAAK,IAAG,KACN,AAAO,AAAkB,aAA/B,KAAK,IAAG,mBAAO,AAAS,QAAD,WACN,AAAO,CAApB,AAAI,mBAAE,KAAK,KAAI,mBAAO,AAAS,QAAD,WACnC;AAGuD,MAA7D,SAAO,aAAP,MAAM,KAAW,aAAN,KAAK,IAAG,MAAc,AAAO,aAAb,KAAK,IAAG,mBAAO,AAAS,QAAD,WAAU;AAIrD,MAHP,SAAO,aAAP,MAAM,KAAW,aAAN,KAAK,IAAG,MAC6B,AAAM,CAAzB,aAAtB,AAAe,cAAD,wBAAU,AAAS,QAAD,oBACxB,AAAO,aAAb,KAAK,IAAG,mBAAO,AAAS,QAAD,WAC1B;AAIgE,MADtE,SAAO,aAAP,MAAM,KACK,aAAN,KAAK,IAAG,MAAgD,CAAnB,aAArB,AAAe,cAAD,uBAAS,AAAS,QAAD,oBAAiB;AAI9D,MAHP,SAAO,aAAP,MAAM,KAAW,aAAN,KAAK,IAAG,MACG,AAAM,AAAmB,CAAhC,aAAN,KAAK,IAAG,OAAO,kBAAM,AAAS,QAAD,WACb,AAAwB,aAAxC,AAAS,QAAD,YAAyB,CAAP,aAAN,KAAK,IAAG,OAAO,MAAO,IAC7C;AAEN,UAAI,IAAI,IAAI,QAAQ,AAAK,AAAc,IAAf;AACZ,uBAAW,AAAK,AAAc,IAAf;AACzB,YAAI,AAAS,QAAD,GAAG,MAAM,AAAS,QAAD,GAAG;AAC8B,UAA5D,SAAO,aAAP,MAAM,IAA6C,AAAM,CAAzB,aAArB,AAAe,cAAD,uBAAS,AAAS,QAAD,oBAAiB;AACL,UAAtD,SAAO,aAAP,MAAM,IAAqB,AAAM,AAAI,CAAzB,AAAG,KAAE,QAAQ,IAAI,KAAM,iBAAI,AAAS,QAAD;cAC1C,KAAI,AAAS,QAAD,GAAG,MAAM,AAAS,QAAD,GAAG;AAIe,UAHpD,SAAO,aAAP,MAAM,KAAI,AAAS,QAAD,GAAG,MACf,IACyC,AAAM,AAAI,CAA7B,aAArB,AAAe,cAAD,uBAAS,AAAS,QAAD,oBAAiB,IAC9B,AAAM,AAAI,CAAzB,AAAS,QAAD,GAAG,MAAM,KAAM,iBAAI,AAAS,QAAD;AACG,UAAhD,SAAO,aAAP,MAAM,IAAK,AAAS,AAAO,AAAI,QAAZ,GAAG,MAAO,iBAAI,AAAS,QAAD;cACpC,KAAI,AAAS,QAAD,GAAG,OAAO,AAAS,QAAD,GAAG;AACsB,UAA5D,SAAO,aAAP,MAAM,IAA6C,AAAM,CAAzB,aAArB,AAAe,cAAD,uBAAS,AAAS,QAAD,oBAAiB;cACtD,KAAI,AAAS,QAAD,GAAG,OAAO,AAAS,QAAD,GAAG;AACsB,UAA5D,SAAO,aAAP,MAAM,IAA6C,AAAM,CAAzB,aAArB,AAAe,cAAD,uBAAS,AAAS,QAAD,oBAAiB;;;;AAIjE,UAAO,+BAAe,MAAM,EAAE,MAAM;EACtC;gFAIsC,QAAyB;;AACf,2BAC1C,iCAA0B,KAAK;AAC/B,oBAAY;AACZ;AACiB;AACrB,aAAuC,SAAU,iBAAgB;AAC/D,UAAW,uBAAP,MAAM;AAC0B,QAAlC,AAAO,MAAD,mBAA0B,KAAT,SAAS;AACW,QAA3C,AAAO,MAAD,eAAc,AAAiB,gBAAD;YAC/B,KAAW,oBAAP,MAAM;AACmB,QAAlC,AAAO,MAAD,mBAA0B,MAAT,SAAS;AACW,QAA3C,AAAO,MAAD,eAAc,AAAiB,gBAAD;YAC/B,KAAW,4BAAP,MAAM;AACmB,QAAlC,AAAO,MAAD,mBAA0B,OAAT,SAAS;AACW,QAA3C,AAAO,MAAD,eAAc,AAAiB,gBAAD;YAC/B,KAAW,qBAAP,MAAM;AACmB,QAAlC,AAAO,MAAD,mBAA0B,OAAT,SAAS;AACW,QAA3C,AAAO,MAAD,eAAc,AAAiB,gBAAD;YAC/B,KAAW,8BAAP,MAAM;AACmB,QAAlC,AAAO,MAAD,mBAA0B,OAAT,SAAS;AACW,QAA3C,AAAO,MAAD,eAAc,AAAiB,gBAAD;YAC/B,KAAW,uBAAP,MAAM;AACmB,QAAlC,AAAO,MAAD,mBAA0B,OAAT,SAAS;AACW,QAA3C,AAAO,MAAD,eAAc,AAAiB,gBAAD;;;AAGxC,QAAW,6BAAP,MAAM;AACR,eAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAiB,gBAAD,YAAS,IAAA,AAAC,CAAA;AACP;AACrC,YAAwB,6BAApB,AAAgB,gBAAA,QAAC,CAAC;AACQ,mBAA5B,iCAAS,AAAgB,gBAAA,QAAC,CAAC;;AAE7B,YAAI,MAAM,IAAI;AACC,0BAAY,AAAO,MAAD;AAC/B,cAAI,SAAS,IAAI;AACwB,YAAvC,AAAiB,gBAAD,IAAC,OAAjB,mBAAqC,mCAApB;AACjB,0BAAI,AAAiB,gBAAD;AACc,cAAhC,AAAO,MAAD,kBAAiB,SAAS;AAC4B,cAA5D,AAAiB,gBAAD,OAAK,8BAAe,SAAS,cAAW,OAAT,SAAS;kBACnD,eAAI,AAAiB,gBAAD;AACzB,uBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAiB,gBAAD,YAAS,IAAA,AAAC,CAAA;AAC5C,oBAAI,AAAU,SAAD,IAAI,AAAgB,AAAI,gBAAJ,QAAC,CAAC;AACoB,kBAArD,AAAO,MAAD,kBAAiB,AAAgB,AAAI,gBAAJ,QAAC,CAAC;AACzC;sBACK,KAAI,SAAS,IAAI,AAAgB,AAAI,gBAAJ,QAAC,CAAC,eACtC,AAAE,CAAD,KAA4B,aAAxB,AAAiB,gBAAD,aAAU;AACD,kBAAhC,AAAO,MAAD,kBAAiB,SAAS;AAC4B,kBAA5D,AAAiB,gBAAD,OAAK,8BAAe,SAAS,cAAW,OAAT,SAAS;AACxD;;;;;AAKN,gBAAI,AAAS,QAAD,IAAI;AACkB,cAAhC,AAAO,MAAD,kBAAiB,SAAS;AACV,cAAtB,YAAoB,OAAT,SAAS;;AAEW,cAA/B,AAAO,MAAD,kBAAiB,QAAQ;;;;;;AAMzC,QAAI,AAAO,AAAY,MAAb,0BAAsB,oBAC5B,AAAO,AAAY,MAAb,0BAAsB;AAC9B,eAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAiB,gBAAD,YAAS,IAAA,AAAC,CAAA;AACP;AACrC,YAAwB,6BAApB,AAAgB,gBAAA,QAAC,CAAC;AACQ,mBAA5B,iCAAS,AAAgB,gBAAA,QAAC,CAAC;;AAE7B,YAAI,MAAM,IAAI;AACiB,UAA7B,AAAO,MAAD,eAAc,SAAS;;;;EAIrC;gEAIqB,OACX;AACsC,2BACP;AACvC,aAAS,aAAa,GAClB,AAAW,UAAD,gBAAG,AAAM,AAAW,AAAgB,KAA5B,yCAClB,aAAA,AAAU,UAAA;AACI,kBAAQ,AAAM,AAAW,AAAe,KAA3B,qCAA4B,UAAU;AACnE,eAAS,eAAe,GACpB,AAAa,YAAD,gBAAG,AAAM,AAAQ,KAAT,qBACpB,eAAA,AAAY,YAAA;AAC0B,0BACpC,AAAM,AAAO,KAAR,iBAAS,YAAY;AAC9B,iBAAS,aAAa,GAClB,AAAW,UAAD,gBAAG,AAAM,AAAW,AAAc,KAA1B,uCAClB,aAAA,AAAU,UAAA;AACI,sBAAQ,AAAM,AAAW,AAAa,KAAzB,mCAA0B,UAAU;AACjE,mBAAS,eAAe,GACpB,AAAa,YAAD,gBAAG,AAAM,AAAQ,KAAT,qBACpB,eAAA,AAAY,YAAA;AAC0B,8BACpC,AAAM,AAAO,KAAR,iBAAS,YAAY;AAC9B,gBAAgB,YAAZ,WAAW,EAAI,WAAW,MACzB,AAAY,AAAY,WAAb,0BAAsB,aAC9B,AAAY,AAAY,WAAb,0BAAsB,UACjC,AAAY,AAAY,WAAb,0BAAsB,WACjC,AAAY,AAAY,WAAb,0BAAsB,aACjC,AAAY,AAAY,WAAb,0BAAsB,kBACjC,AAAY,AAAY,WAAb,0BAAsB,6BACrC,AAAY,WAAD;AACoB,cAAjC,AAAiB,gBAAD,OAAK,WAAW;;;;;;AAM1C,UAAO,iBAAgB;EACzB;sDAE4B,MAAmB;AAC7C,UAAa,iCACX,IAAI,eACQ,AAAa,YAAD,0BACX,AAAa,YAAD,uBAChB,AAAa,YAAD,oBACX,AAAa,YAAD;EAE1B;wEAGqB;AAC2B,2BACP;AACvC,aAAS,aAAa,GAClB,AAAW,UAAD,gBAAG,AAAM,AAAW,AAAgB,KAA5B,yCAClB,aAAA,AAAU,UAAA;AACI,kBAAQ,AAAM,AAAW,AAAe,KAA3B,qCAA4B,UAAU;AACnE,eAAS,eAAe,GACpB,AAAa,YAAD,gBAAG,AAAM,AAAQ,KAAT,qBACpB,eAAA,AAAY,YAAA;AAC0B,0BACpC,AAAM,AAAO,KAAR,iBAAS,YAAY;AAC9B,iBAAS,aAAa,GAClB,AAAW,UAAD,gBAAG,AAAM,AAAW,AAAc,KAA1B,uCAClB,aAAA,AAAU,UAAA;AACI,sBAAQ,AAAM,AAAW,AAAa,KAAzB,mCAA0B,UAAU;AACjE,mBAAS,eAAe,GACpB,AAAa,YAAD,gBAAG,AAAM,AAAQ,KAAT,qBACpB,eAAA,AAAY,YAAA;AAC0B,8BACpC,AAAM,AAAO,KAAR,iBAAS,YAAY;AAC9B,gBAAgB,YAAZ,WAAW,EAAI,WAAW,MACzB,AAAY,AAAY,WAAb,0BAAsB,aAC9B,AAAY,AAAY,WAAb,0BAAsB,UACjC,AAAY,AAAY,WAAb,0BAAsB,WACjC,AAAY,AAAY,WAAb,mBAAgB,uBAC/B,AAAY,WAAD;AACoB,cAAjC,AAAiB,gBAAD,OAAK,WAAW;;;;;;AAM1C,UAAO,iBAAgB;EACzB;8DAE+B,cAAqB;AAChD,UAAK,sBACiB,aAAlB,AAAa,YAAD,sBAAQ,AAAW,UAAD,MACb,aAAjB,AAAa,YAAD,qBAAO,AAAW,UAAD,MACV,aAAnB,AAAa,YAAD,UAAS,AAAE,iBAAE,AAAW,UAAD,MACf,aAApB,AAAa,YAAD,WAAU,AAAE,iBAAE,AAAW,UAAD;EAAI;oEAI7B,cAAmB,QAAa;;AAC3C;AACG;AAWwB,IAVjC,qBAAW,cAAc,IACnB,0CACU,AAAa,YAAD,gBACb,AAAa,YAAD,eACF,qCACF,oCACjB,0CACU,AAAa,YAAD,gBACb,AAAa,YAAD,eACF,uCACF;AAGO,IAF9B,sBAAgB,gBACZ,YAAS,AAAS,QAAD,cAAc,MAAM,GACrC,WAAsB;AAC1B,UAAO,cAAa;EACtB;kDAE+B,OAAe,MAAW;;AACvD,QAAuC,aAA7B,AAAW,AAAW,cAA5B,KAAK,UAAkB,iBAAc;AAC1B,gBAAY,cAAN,KAAK;AACJ,iBAAO,AAAI,GAAD,SAAO;AACwB,MAA7D,QAAa,0BAAL,IAAI,IAAsB,SAAS,oBAAI,KAAK,KAAI,KAAK;AACD,MAA5D,QAAe,qCAAY,WAAN,KAAK,uBAA4B,KAAX,UAAU,QAAV,OAAc;AAS9C,MARX,QAAiB,AAKW,YALnB,AAAI,IAAA,QAAC,IAAM,QACJ,YAAR,AAAI,IAAA,QAAC,IAAM,SACH,YAAR,AAAI,IAAA,QAAC,IAAM,UACH,YAAR,AAAI,IAAA,QAAC,IAAM,WACH,YAAR,AAAI,IAAA,QAAC,IAAM,YACH,YAAR,AAAI,IAAA,QAAC,IAAM,aACH,YAAR,AAAI,IAAA,QAAC,IAAM,aACP,WAAN,KAAK,iBACL,KAAK;;AAEC,eAAY,AAAe,sBAApB,IAAI,KAAmB,AAAK,IAAD,iBAAiB,OAC3D,AAAK,AAAa,IAAd,qBAAqB,KAAK,IAC9B,KAAK;AACX,UAAa,AAAoB,YAAzB,IAAI,oBAAgB,qBAAa,WAAL,IAAI,kBAAgB,MACjC,WAAZ,WAAL,IAAI,iCAAwB,gBAAO,YAAiB,cAAL,IAAI,MAC9C,cAAL,IAAI;EACZ;kDAIqB,OAAiB,MAAW,MAAa,GAAU;AACtE,QAAI,IAAI,IAAI;AACV,qBAAK,AAAM,KAAD;AACR,cAAO,4BAAsB,aAAF,CAAC,iBAAG,AAAK,IAAD,SAAQ,IAAI;;AAEjD,YAAO,4BAAoB,AAAE,IAAK,aAAF,CAAC,iBAAG,AAAK,IAAD,UAAU,IAAI;;AAExD;EACF;kDAKqB,OAAiB,MAAW,MAAa,GAAU;AACtE,QAAI,IAAI,IAAI;AACV,qBAAK,AAAM,KAAD;AACR,cAAO,4BAAoB,AAAE,IAAK,aAAF,CAAC,iBAAG,AAAK,IAAD,UAAU,IAAI;;AAExD,YAAO,4BAAsB,aAAF,CAAC,iBAAG,AAAK,IAAD,SAAQ,IAAI;;AAEjD;EACF;4DAE+B,aAAuB;AAC7C;AACsD,IAA7D,wBAAc,AAAK,IAAD,eAAc,AAAE,iBAAE,WAAW,IAAG,WAAW;AAEY,aADzE,mBAC+B,WAA3B,AAAK,AAAc,IAAf,+BAAmD,aAAzB,AAAK,AAAc,IAAf,sCAAuB,WAAW;AACxE,UAAO,OAAM;EACf;0DAEyC,OAAwB;AAC/D,QAAI,AAAM,AAAO,AAAO,KAAf,oBAAkB,AAAS,AAAO,QAAR;AACjC,eAAS,cAAc,GACnB,AAAY,WAAD,gBAAG,AAAM,AAAO,KAAR,mBACnB,cAAA,AAAW,WAAA;AACuC,QAApD,8BAAuB,KAAK,EAAE,QAAQ,EAAE,WAAW;;;AAKqB,MAD1E,AAAM,AAAO,KAAR,kBACD,QAA+B,UAAW,AAAO,MAAD,kBAAiB;;AAEvE,QAAI,AAAM,AAAW,AAAiB,AAAO,KAApC,2CACL,AAAS,AAAW,AAAiB,QAA7B;AACV,eAAS,YAAY,GAAG,AAAU,SAAD,gBAAG,AAAM,AAAO,KAAR,mBAAgB,YAAA,AAAS,SAAA;AACrB,QAA3C,uBAAgB,KAAK,EAAE,QAAQ,EAAE,SAAS;AAC1C,sBAAI,AAAM,AAAW,KAAZ;AACP;;;;AAIiC,MAArC,AAAM,AAAW,KAAZ,8BAA4B;;EAErC;kEAGqB,OAAwB,UAAc;;AACjB,+CAAS,AAAM,AAAM,KAAP,eAAQ,WAAW;AACjC,wDACpC,AAAS,AAAM,QAAP,eAAQ,WAAW;AAC/B,QAAI,AAAO,MAAD,sBAAsB,AAAgB,eAAD,mCAC3C,AAAS,QAAD,gBAAiB,AAAM,KAAD,yBAC9B,AAAO,MAAD,qBAAC,OAAO,oBAAS,AAAgB,eAAD,sBAAC,OAAO,cAC9C,AAAO,MAAD,UAAU,AAAgB,eAAD,uBAC/B,AAAO,MAAD,YAAc,AAAgB,eAAD,4BACnC,AAAO,MAAD,gBAAkB,AAAgB,eAAD,mBACvC,AAAO,MAAD,SAAS,AAAgB,eAAD,sBAC9B,AAAO,MAAD,WAAa,AAAgB,eAAD,8BAClC,AAAO,MAAD,0BAAC,OAAQ,qCAAR,OAAuB,+BAC1B,AAAgB,eAAD,0BAAC,OAAQ,qCAAR,OAAuB,4CAC3C,AAAO,MAAD,0BAAC,OAAQ,qCAAR,OAAuB,+BAC1B,AAAgB,eAAD,0BAAC,OAAQ,qCAAR,OAAuB,+CAC3C,AAAO,MAAD,0BAAC,OAAQ,qCAAR,OAAuB,iCAC1B,AAAgB,eAAD,2BAAC,OAAQ,uCAAR,OAAuB,kDAC3C,AAAO,MAAD,2BAAC,OAAQ,uCAAR,OAAuB,mCAC1B,AAAgB,eAAD,2BAAC,OAAQ,uCAAR,OAAuB,0CAC3C,AAAO,MAAD,2BAAC,OAAQ,2BAAa,AAAgB,eAAD,2BAAC,OAAQ,2CACpD,AAAO,MAAD,2BAAC,OAAQ,0BAAW,AAAgB,eAAD,2BAAC,OAAQ,0CAClD,AAAO,MAAD,2BAAC,OAAQ,4BAAc,AAAgB,eAAD,2BAAC,OAAQ,+BACrD,AAAO,MAAD,2BAAC,OAAQ,oCACX,AAAgB,eAAD,2BAAC,OAAQ,iDAC5B,AAAO,MAAD,2BAAC,OAAQ,6CACX,AAAgB,eAAD,2BAAC,OAAQ,6DAC5B,AAAO,MAAD,2BAAC,OAAQ,iCACX,AAAgB,eAAD,2BAAC,OAAQ,iDAC5B,AAAO,MAAD,2BAAC,OAAQ,+BAAgB,AAAgB,eAAD,2BAAC,OAAQ,kCACvD,AAAO,MAAD,2BAAC,OAAQ,8BAAc,AAAgB,eAAD,2BAAC,OAAQ,2CACrD,AAAO,MAAD,2BAAC,OAAQ,8BAAgB,AAAgB,eAAD,2BAAC,OAAQ,iCACvD,AAAO,MAAD,gCAAC,OAAa,4BAAU,AAAgB,eAAD,gCAAC,OAAa,qCAC3D,AAAO,MAAD,2BAAC,OAAQ,uCAAR,OAAuB,kCAC1B,AAAgB,eAAD,2BAAC,OAAQ,uCAAR,OAAuB,+CAC3C,AAAO,MAAD,2BAAC,OAAQ,uCAAR,OAAuB,kCAC1B,AAAgB,eAAD,2BAAC,OAAQ,uCAAR,OAAuB,kDAC3C,AAAO,MAAD,2BAAC,OAAQ,uCAAR,OAAuB,kCAC1B,AAAgB,eAAD,2BAAC,OAAQ,uCAAR,OAAuB,kDAC3C,AAAO,MAAD,2BAAC,OAAQ,uCAAR,OAAuB,mCAC1B,AAAgB,eAAD,2BAAC,OAAQ,uCAAR,OAAuB,0CAC3C,AAAO,MAAD,2BAAC,OAAQ,2BAAa,AAAgB,eAAD,2BAAC,OAAQ,2CACpD,AAAO,MAAD,2BAAC,OAAQ,0BAAW,AAAgB,eAAD,2BAAC,OAAQ,0CAClD,AAAO,MAAD,2BAAC,OAAQ,4BAAc,AAAgB,eAAD,2BAAC,OAAQ,+BACrD,AAAO,MAAD,2BAAC,OAAQ,oCACX,AAAgB,eAAD,2BAAC,OAAQ,iDAC5B,AAAO,MAAD,2BAAC,OAAQ,6CACX,AAAgB,eAAD,2BAAC,OAAQ,6DAC5B,AAAO,MAAD,2BAAC,OAAQ,iCACX,AAAgB,eAAD,2BAAC,OAAQ,iDAC5B,AAAO,MAAD,2BAAC,OAAQ,+BAAgB,AAAgB,eAAD,2BAAC,OAAQ,kCACvD,AAAO,MAAD,2BAAC,OAAQ,8BAAc,AAAgB,eAAD,2BAAC,OAAQ,2CACrD,AAAO,MAAD,2BAAC,OAAQ,8BAAgB,AAAgB,eAAD,2BAAC,OAAQ,wBACvD,AAAO,MAAD,sBAAsB,AAAgB,eAAD,mCAC3C,AAAO,MAAD,cAAgB,AAAgB,eAAD,iBACrC,AAAO,MAAD,gBAAgB,AAAgB,eAAD,6BACrC,AAAO,MAAD,kBAAoB,AAAgB,eAAD,qBACzC,AAAO,AAAmB,MAApB,mCACF,AAAgB,AAAmB,eAApB,gDACnB,AAAO,AAAmB,MAApB,iCACF,AAAgB,AAAmB,eAApB,iDACnB,AAAO,AAAmB,MAApB,2BACF,AAAgB,AAAmB,eAApB,2CACnB,AAAO,AAAmB,MAApB,0BACF,AAAgB,AAAmB,eAApB,6BACnB,AAAO,MAAD,eAAc,AAAgB,eAAD,eACnC,AAAO,MAAD,eAAc,AAAgB,eAAD,eACnC,AAAO,MAAD,eAAc,AAAgB,eAAD,eACnC,AAAO,MAAD,eAAc,AAAgB,eAAD,wBACnC,AAAO,MAAD,4BAAC,OAAW,4BAAU,AAAgB,eAAD,4BAAC,OAAW,4BACvD,AAAO,MAAD,6BAAC,OAAY,4BAAU,AAAgB,eAAD,6BAAC,OAAY,mBACzD,AAAO,AAAe,MAAhB,yBAAyB,AAAgB,AAAe,eAAhB,kCAC9C,AAAO,AAAe,MAAhB,uCAAgB,OAAO,yBACzB,AAAgB,AAAe,eAAhB,uCAAgB,OAAO,yBAC1C,AAAO,AAAe,MAAhB,6CAAgB,OAAa,yBAC/B,AAAgB,AAAe,eAAhB,6CAAgB,OAAa,6BAChD,AAAO,AAAe,MAAhB,2BACF,AAAgB,AAAe,eAAhB,8BACnB,AAAO,AAAe,MAAhB,+BACF,AAAgB,AAAe,eAAhB,+BACnB,AAAO,AAAe,MAAhB,0BAA0B,AAAgB,AAAe,eAAhB,uCAC/C,AAAO,AAAe,MAAhB,uBAAyB,AAAgB,AAAe,eAAhB,mCAC9C,AAAO,AAAkB,MAAnB,0CAAmB,OAAO,yBAC5B,AAAgB,AAAkB,eAAnB,0CAAmB,OAAO,6BAC7C,AAAO,AAAkB,MAAnB,8BACF,AAAgB,AAAkB,eAAnB,8CACnB,AAAO,AAAkB,MAAnB,mCACF,AAAgB,AAAkB,eAAnB,sCACnB,AAAO,AAAkB,MAAnB,8BACF,AAAgB,AAAkB,eAAnB,2CACnB,AAAO,AAAkB,MAAnB,8BACF,AAAgB,AAAkB,eAAnB,iCACnB,AAAO,AAAkB,MAAnB,4BACF,AAAgB,AAAkB,eAAnB,8CACnB,AAAO,AAAkB,MAAnB,8CAAmB,OAAW,8BAAX,OAAkB,kCACvC,AAAgB,AAAkB,eAAnB,8CAAmB,OAAW,8BAAX,OAAkB,sCACxD,AAAO,AAAkB,MAAnB,8CAAmB,OAAW,2BAChC,AAAgB,AAAkB,eAAnB,8CAAmB,OAAW,8BACjD,AAAO,AAAkB,MAAnB,8CAAmB,OAAW,8BAChC,AAAgB,AAAkB,eAAnB,8CAAmB,OAAW,8BACjD,AAAO,AAAkB,MAAnB,8CAAmB,OAAW,4BAChC,AAAgB,AAAkB,eAAnB,8CAAmB,OAAW,yCACjD,AAAO,AAAkB,MAAnB,8CAAmB,OAAW,4BAChC,AAAgB,AAAkB,eAAnB,8CAAmB,OAAW,+BACjD,AAAO,AAAkB,MAAnB,gDAAmB,OAAa,yBAClC,AAAgB,AAAkB,eAAnB,gDAAmB,OAAa,gBACnD,AAAO,AAAkB,MAAnB,kCACF,AAAgB,AAAkB,eAAnB,2CACnB,AAAO,AAAkB,MAAnB,2CAAmB,OAAQ,yBAC7B,AAAgB,AAAkB,eAAnB,2CAAmB,OAAQ,yBAC9C,AAAO,AAAkB,MAAnB,2CAAmB,OAAQ,0BAC7B,AAAgB,AAAkB,eAAnB,2CAAmB,OAAQ,0BAC9C,AAAO,AAAkB,MAAnB,2CAAmB,OAAQ,uBAC7B,AAAgB,AAAkB,eAAnB,2CAAmB,OAAQ,wBAC9C,AAAO,AAAkB,MAAnB,4CAAmB,OAAQ,0BAC7B,AAAgB,AAAkB,eAAnB,4CAAmB,OAAQ,gBAC9C,AAAO,AAAkB,MAAnB,mCACF,AAAgB,AAAkB,eAAnB;AACM,MAA3B,AAAO,MAAD,kBAAiB;;AAEK,MAA5B,AAAO,MAAD,kBAAiB;;EAE3B;oDAGqB,OAAwB,UAAc;;AACzD,QAAI,AAAM,AAAW,KAAZ,kCAAgC,kBACrC,AAAM,AAAW,AAAiB,KAA7B;AACS,iBAAO,AAAM,AAAW,AAAgB,KAA5B,sCAA6B,SAAS;AAClD,0BACZ,AAAS,AAAW,AAAgB,QAA5B,sCAA6B,SAAS;AAClD,UAAI,AAAK,AAAa,IAAd,uBAAuB,AAAc,AAAa,aAAd,uBACxC,AAAK,IAAD,eAAe,AAAc,aAAD,4BAChC,AAAK,IAAD,gBAAiB,AAAc,aAAD,gCAClC,AAAK,IAAD,kBAAoB,AAAc,aAAD,qBACrC,AAAK,IAAD,0BAA0B,AAAc,aAAD,0BAC3C,AAAK,IAAD,qBAAqB,AAAc,aAAD,kCACtC,AAAK,IAAD,aAAe,AAAc,aAAD,6BAChC,AAAK,IAAD,WAAY,AAAc,aAAD,oBAC7B,AAAK,AAAe,IAAhB,wCAAgB,OAAW,uBAC3B,AAAc,AAAe,aAAhB,yCAAgB,OAAW,iBAC5C,AAAK,AAAe,IAAhB,yBAAyB,AAAc,AAAe,aAAhB,sCAC1C,AAAK,AAAe,IAAhB,uBAAyB,AAAc,AAAe,aAAhB,uCAC1C,AAAK,IAAD,QAAU,AAAc,aAAD,wBAC3B,AAAK,AAAc,IAAf,0BAA2B,AAAc,AAAc,aAAf,0CAC5C,AAAK,AAAc,IAAf,yBAA0B,AAAc,AAAc,aAAf,yCAC3C,AAAK,AAAc,IAAf,yBAA0B,AAAc,AAAc,aAAf,4BAC3C,AAAK,AAAc,IAAf,yBAAwB,AAAc,AAAc,aAAf,sCACzC,AAAK,IAAD,yBAA0B,AAAc,aAAD,4BAC3C,AAAK,IAAD,kBAAkB,AAAc,aAAD,0BACnC,AAAK,AAAe,IAAhB,0CAAgB,OAAW,0BAC3B,AAAc,AAAe,aAAhB,0CAAgB,OAAW,kBAC5C,AAAK,AAAe,IAAhB,yBAAyB,AAAc,AAAe,aAAhB,sCAC1C,AAAK,AAAe,IAAhB,uBAAyB,AAAc,AAAe,aAAhB,0BAC1C,AAAK,AAAa,IAAd,uBAAuB,AAAc,AAAa,aAAd;AACL,QAArC,AAAM,AAAW,KAAZ,8BAA4B;;AAEK,QAAtC,AAAM,AAAW,KAAZ,8BAA4B;;;EAGvC;4EAE4C,OAAiB;;AAC3D,QAAS,uBAAL,IAAI;AACuB,MAA7B,mBAAc,WAAN,KAAK,QAAG,OAAI,IAAI,KAAK;AAE0C,MADvE,QAAoB,WAAZ,AAAK,IAAD,oBACmD,sBAA5C,WAAR,WAAN,KAAK,uBAAyB,WAAb,AAAK,IAAD,0BAAwB,WAAN,KAAK,QAAG,MAAI,KAAK;UACxD,KAAS,uBAAL,IAAI;AACI,wBAA6B,KAAhB,AAAK,IAAD,mBAAC,OAAc,AAAK,IAAD,kBAAiB,IAAI;AAED,MADzE,QACI,AAAW,UAAD,QAAiB,6DAAiC,WAAN,KAAK;;AAEW,MAA1E,QAAQ,sBAAe,KAAK,EAAE,IAAI,EAAE,AAAK,AAAmB,IAApB;;AAE1C,UAAO,MAAK;EACd;sDAEqC,YAAmB,UAAe,MACpC;AACtB,eAAO;AAClB,YAAQ,UAAU;;;;AAIgD,UAD3C,oCACb,IAAI,EAAE,AAAS,QAAD,KAAK,AAAS,QAAD,KAAK,AAAK,IAAD,QAAQ,AAAK,IAAD;;AAEtD;;;;;AAI8D,UAD3C,uCACb,IAAI,EAAE,AAAS,QAAD,KAAK,AAAS,QAAD,KAAK,AAAK,IAAD,QAAQ,AAAK,IAAD;;AAEtD;;;;;AAGE,cAAI,MAAM,IAAI;AACY,YAAxB,sDAAiB,MAAM;;;AAG3B;;;;;AAI8D,UAD3C,sCACb,IAAI,EAAE,AAAS,QAAD,KAAK,AAAS,QAAD,KAAK,AAAK,IAAD,QAAQ,AAAK,IAAD;;AAEtD;;;;;AAI8D,UAD3C,0CACb,IAAI,EAAE,AAAS,QAAD,KAAK,AAAS,QAAD,KAAK,AAAK,IAAD,QAAQ,AAAK,IAAD;;AAEtD;;;;;AAI8D,UAD3C,8CACb,IAAI,EAAE,AAAS,QAAD,KAAK,AAAS,QAAD,KAAK,AAAK,IAAD,QAAQ,AAAK,IAAD;;AAEtD;;;;;AAI8D,UAD3C,4CACb,IAAI,EAAE,AAAS,QAAD,KAAK,AAAS,QAAD,KAAK,AAAK,IAAD,QAAQ,AAAK,IAAD;;AAEtD;;;;;AAI8D,UAD3C,qCACb,IAAI,EAAE,AAAS,QAAD,KAAK,AAAS,QAAD,KAAK,AAAK,IAAD,QAAQ,AAAK,IAAD;;AAEtD;;;;;AAI8D,UAD3C,sCACb,IAAI,EAAE,AAAS,QAAD,KAAK,AAAS,QAAD,KAAK,AAAK,IAAD,QAAQ,AAAK,IAAD;;AAEtD;;;;AAEA;;;AAEJ,UAAO,KAAI;EACb;sDAiBwD;AAAnC;AACnB,UAAI,AAAO,MAAD,mBAAmB,mBACxB,AAAO,AAAe,MAAhB,8BAA6B,AAAO,AAAY,MAAb,mBAAgB,cAC9B,YAA5B,AAAO,AAAe,MAAhB,uBAAwC,gCAC9C,AAAO,AAAe,MAAhB,yBAAyB;AACJ,QAA7B,uBAAgB,MAAM,MAAM;;IAEhC;;kEAG6B,YAA6B;AAC3C,uCAAY,AAAW,UAAD;AACtB,uCAAY,AAAW,UAAD;AACzB;AAAO;AACb;AACW;AACf,QAA8B,YAA1B,AAAW,UAAD,iBAAkC;AAIY,MAH1D,WAA6B,YAAlB,AAAW,UAAD,SAA4B,iCAC3C,8CAAe,AAAW,UAAD,KAAI,AAAW,UAAD,MACvC,8BAAmD,aAApC,AAAM,AAAW,AAAc,KAA1B,iEAAiC,AAAW,UAAD,MAC1B,aAAnC,AAAM,AAAW,AAAc,KAA1B,gDAAgC,AAAW,UAAD;;AAEvD,eAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAM,AAAW,AAAiB,KAA7B,0CAAqC,IAAA,AAAC,CAAA;AAC7C,mBAAO,AAAM,AAAW,AAAgB,KAA5B,sCAA6B,CAAC;AAC1D,YAAI,AAAU,SAAD,IAAI,AAAK,IAAD,YAChB,AAAU,SAAD,IAAI,QAAQ,AAAK,AAAM,IAAP,aAAU;AAC1B,UAAZ,QAAQ,IAAI;AACZ,cAAU,uBAAN,KAAK;AACP,gBAAI,AAAW,UAAD,MAAM,QACZ,kBAAsB,cAAb,AAAW,UAAD,QAAkB;AACG,cAA9C,SAAa,kBAAsB,cAAb,AAAW,UAAD;kBAC3B,gBAAyB,WAAP,WAAd,AAAM,KAAD,4BAAkB;AACY,uBAA5C,gBAAuB,WAAd,AAAM,KAAD,uBAAiB,AAAW,UAAD;;gBAEtC,KAAU,uBAAN,KAAK;AAGI,qBAFlB,gBAAsB,iBAAb,AAAW,UAAD,MACE,WAAd,AAAW,UAAD,gCACX,AAAW,UAAD;;AAEK,qBAArB,gBAAS,AAAW,UAAD;;cAEhB,KAAI,AAAU,SAAD,IAAI,AAAK,IAAD,YACvB,AAAU,SAAD,IAAI,QAAQ,AAAK,AAAM,IAAP,aAAU;AAC1B,UAAZ,QAAQ,IAAI;;;AAIhB,UAAI,KAAK,IAAI,QAAQ,KAAK,IAAI;AAEyC,QADrE,WAAW,uBAAgB,MAAM,EAAE,AAAW,UAAD,IAAI,KAAK,EAAE,KAAK,EACzD,AAAM,KAAD,wBAAuB,MAAM,AAAM,AAAW,KAAZ;;;AAG/C,UAAO,SAAQ;EACjB;gEAGW,QACF,gBACC,WACA,aACC,IACA,IACA,IACA,IACA,IACA,IACA,IACA;AACoB,IAA7B,AAAe,cAAD,QAAQ,EAAE,EAAE,EAAE;AACC,IAA7B,AAAe,cAAD,QAAQ,EAAE,EAAE,EAAE;AACC,IAA7B,AAAe,cAAD,QAAQ,EAAE,EAAE,EAAE;AACC,IAA7B,AAAe,cAAD,QAAQ,EAAE,EAAE,EAAE;AACC,IAA7B,AAAe,cAAD,QAAQ,EAAE,EAAE,EAAE;AACA,IAA5B,AAAU,SAAD,eAAe;AACoB,IAA5C,AAAO,MAAD,UAAU,cAAc,EAAE,WAAW;AACD,IAA1C,AAAO,MAAD,UAAU,cAAc,EAAE,SAAS;EAC3C;gEAGiC,MAAa;AAC1C,UAAM,iCACJ,IAAI,eACe,uBAAS,YAAY,gBACpB,uBAAS,YAAY,YACzB,uBAAS,YAAY,aACpB,uBAAS,YAAY;EACvC;8CAIgB,OAAiB,MAAW,MAAa,GAAU;AACtE,QAAI,IAAI,IAAI;AACV,YAAO,4BAAsB,aAAF,CAAC,iBAAG,AAAK,IAAD,SAAQ,IAAI;;AAEjD;EACF;8CAIqB,OAAiB,MAAW,MAAa,GAAU;AACtE,QAAI,IAAI,IAAI;AACV,YAAO,4BAAoB,AAAE,IAAK,aAAF,CAAC,iBAAG,AAAK,IAAD,UAAU,IAAI;;AAExD;EACF;kEAEiC,WAA4B;AACtD,wBAAgB,SAAS;AAC9B,QAAoB,aAAhB,AAAU,SAAD,wBAAU,AAAM,AAAW,AAAc,KAA1B;AAML,MALrB,gBAAqB,qBACF,aAAf,AAAU,SAAD,UACY,aAAhB,AAAU,SAAD,uBAAS,AAAM,AAAW,AAAc,KAA1B,qCAC5B,AAAU,SAAD,MACT,AAAM,AAAW,AAAc,KAA1B,mCACL,AAAU,SAAD;UACR,KAAmB,aAAf,AAAU,SAAD,uBAAS,AAAM,AAAW,AAAc,KAA1B;AAMX,MALrB,gBAAqB,qBACjB,AAAM,AAAW,AAAc,KAA1B,kCACL,AAAU,SAAD,MACO,aAAhB,AAAU,SAAD,WACgC,aAApC,AAAM,AAAW,AAAc,KAA1B,iDAAiC,AAAU,SAAD,SACpD,AAAU,SAAD;;AAEf,UAAO,cAAa;EACtB;kEAEiC,WAA4B;AACtD,wBAAgB,SAAS;AAC9B,QAAqB,aAAjB,AAAU,SAAD,yBAAW,AAAM,AAAW,AAAc,KAA1B;AAMe,MAL1C,gBAAqB,qBACjB,AAAU,SAAD,OACK,aAAd,AAAU,SAAD,SACa,aAAjB,AAAU,SAAD,wBAAU,AAAM,AAAW,AAAc,KAA1B,sCAC7B,AAAU,SAAD,QACT,AAAM,AAAW,AAAc,KAA1B;UACJ,KAAkB,aAAd,AAAU,SAAD,sBAAQ,AAAM,AAAW,AAAc,KAA1B;AAM8B,MAL7D,gBAAqB,qBACjB,AAAU,SAAD,OACT,AAAM,AAAW,AAAc,KAA1B,iCACL,AAAU,SAAD,QACQ,aAAjB,AAAU,SAAD,YAC+B,aAAnC,AAAM,AAAW,AAAc,KAA1B,gDAAgC,AAAU,SAAD;;AAEzD,UAAO,cAAa;EACtB;4DAG8B,aAAkB;AACzC,wBAAgB,WAAW;AACzB,qBAAa;AAKpB,QAAqB,aAAjB,AAAY,WAAD,sBAAQ,AAAS,QAAD;AAC4B,MAAzD,aAA4B,AAAoB,aAAlC,AAAS,QAAD,sBAAQ,AAAY,WAAD;AAKhB,MAJzB,gBAAqB,qBACE,aAAnB,AAAc,aAAD,SAAQ,UAAU,EAC/B,AAAc,aAAD,MACO,aAApB,AAAc,aAAD,UAAS,UAAU,EAChC,AAAc,aAAD;;AAEnB,QAAsB,aAAlB,AAAY,WAAD,uBAAS,AAAS,QAAD;AAC6B,MAA3D,aAAgC,AAAkB,aAApC,AAAY,WAAD,uBAAS,AAAS,QAAD;AAKjB,MAJzB,gBAAqB,qBACE,aAAnB,AAAc,aAAD,SAAQ,UAAU,EAC/B,AAAc,aAAD,MACO,aAApB,AAAc,aAAD,UAAS,UAAU,EAChC,AAAc,aAAD;;AAEnB,QAAoB,aAAhB,AAAY,WAAD,qBAAO,AAAS,QAAD;AAC2B,MAAvD,aAA2B,AAAmB,aAAhC,AAAS,QAAD,qBAAO,AAAY,WAAD;AAKF,MAJtC,gBAAqB,qBACjB,AAAc,aAAD,OACK,aAAlB,AAAc,aAAD,QAAO,UAAU,EAC9B,AAAc,aAAD,QACQ,aAArB,AAAc,aAAD,WAAU,UAAU;;AAGvC,QAAuB,aAAnB,AAAY,WAAD,wBAAU,AAAS,QAAD;AAC8B,MAA7D,aAAiC,AAAmB,aAAtC,AAAY,WAAD,wBAAU,AAAS,QAAD;AAKL,MAJtC,gBAAqB,qBACjB,AAAc,aAAD,OACK,aAAlB,AAAc,aAAD,QAAO,UAAU,EAC9B,AAAc,aAAD,QACQ,aAArB,AAAc,aAAD,WAAU,UAAU;;AAGvC,UAAO,cAAa;EACtB;wEAGU,WACA,aACD,MACE,iBAC8B,QAC9B,QACD,aACuB;AAC/B,QAAI,SAAS,IAAI;AAI+B,MAHrB,aAAzB,AAAO,MAAD,sBAAqB,IACrB,iCAA0B,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAC9D,eAAe,EAAE,aAAa,EAAE,AAAO,MAAD,YACxC,AAAO,MAAD,WAAW,WAAW,EAAE,SAAS;;AAE/C,QAAI,WAAW,IAAI;AACjB,UAAI,AAAO,AAAS,MAAV,kBAAW,OAAM,KAAK,AAAO,AAAS,MAAV,kBAAW,OAAM;AAChB,sBAAU,MAAM;AACQ,QAA7D,uBAAgB,MAAM,EAAE,AAAQ,OAAD,YAAY,WAAW,EAAE,IAAI;;AAKZ,QAHvB,aAAzB,AAAO,MAAD,sBAAqB,IACrB,iCAA0B,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAChE,eAAe,EAAE,aAAa,EAAE,AAAO,MAAD,YACxC,AAAO,MAAD,WAAW,WAAW,EAAE,WAAW;;;EAGrD;sEAGyC,QAC/B,WACA,aACC,QACH,cACE;AACG,gBAAQ;AAAQ,sBAAc;AAC9B,eAAO,AAAO,AAAO,AAAW,MAAnB;AACT;AAAQ;AACP,gBAAQ,AAAO,MAAD;AAAS,gBAAQ,AAAO,MAAD;AACxB;AACf,kBAAU,MAAM;AAC9B,kBAAI,AAAO,AAAY,MAAb;AACJ,uBAAa;AACI,0BAAgB,AAAO,AAAe,MAAhB,0BAAiB;AACpB;AACN;AACqB,MAAvD,mBAAmB,6BAAsB,AAAO,MAAD;AAQtC,MAPT,SAAS,uCACL,AAAO,AAAW,AAAI,MAAhB,sBAAa,YACnB,mCAAa,AAAM,AAAc,KAAf,0BAAwB,AAAc,AAAW,aAAZ,oBAAa,KACpE,KAAK,EACL,KAAK,EACL,AAAO,AAAO,MAAR,gCACN,MAAM,EACN,IAAI;AACwB,MAAhC,AAAM,KAAD,QAAQ,AAAO,MAAD,IAAI,AAAO,MAAD;AACS,MAAtC,AAAY,WAAD,QAAQ,AAAO,MAAD,IAAI,AAAO,MAAD;AACnC,eAAS,aAAa,GAClB,AAAW,UAAD,gBAAG,AAAO,AAAY,MAAb,0BACnB,aAAA,AAAU,UAAA;AAC0B,QAAtC,QAAQ,AAAO,AAAW,MAAZ,sBAAa,UAAU;AACrC,sBAAI,AAAM,KAAD;AAQE,UAPT,SAAS,uCACL,AAAO,AAAW,AAAa,MAAzB,sBAAa,UAAU,WAC7B,AAAc,AAAS,aAAV,kBAAW,UAAU,GAClC,KAAK,EACL,KAAK,EACL,AAAO,AAAO,MAAR,gCACN,MAAM,EACN,IAAI;AACwB,UAAhC,AAAM,KAAD,QAAQ,AAAO,MAAD,IAAI,AAAO,MAAD;AACS,UAAtC,AAAY,WAAD,QAAQ,AAAO,MAAD,IAAI,AAAO,MAAD;;AAEnC,2BAAI,AAAO,AAAmB,MAApB,0BAA2C;AACnD,qBAAS,IAAI,AAAW,UAAD,GAAG,GAAG,AAAE,CAAD,IAAI,UAAU,EAAE,IAAA,AAAC,CAAA;AAQpC,cAPT,SAAS,uCACL,AAAO,AAAW,AAAI,MAAhB,sBAAa,CAAC,WACpB,AAAc,AAAW,aAAZ,oBAAa,CAAC,GAC3B,KAAK,EACL,KAAK,EACL,AAAO,AAAO,MAAR,gCACN,MAAM,EACN,IAAI;AACwB,cAAhC,AAAM,KAAD,QAAQ,AAAO,MAAD,IAAI,AAAO,MAAD;AAC7B,kBAA2B,YAAf,WAAR,OAAO,qBAAkC;AACL,gBAAtC,AAAY,WAAD,QAAQ,AAAO,MAAD,IAAI,AAAO,MAAD;kBAChC,KAA2B,YAAf,WAAR,OAAO,qBAAkC,4BAChD,AAAY,AAA0B,WAA3B,QAAQ,AAAO,MAAD,IAAI,AAAO,MAAD;;AAEvC,gBAA8B,aAA1B,AAAO,AAAY,MAAb,2BAAsB,AAAW,UAAD,GAAG,KACzC,AAAO,AAAW,MAAZ,sBAAa,AAAW,UAAD,GAAG,MAAM,kBACtC,AAAO,AAAW,AAAiB,MAA7B,sBAAa,AAAW,UAAD,GAAG;AAQzB,cAPT,SAAS,uCACL,AAAO,AAAW,AAAiB,MAA7B,sBAAa,AAAW,UAAD,GAAG,YAChC,AAAc,AAAW,aAAZ,oBAAa,AAAW,UAAD,GAAG,IACvC,KAAK,EACL,KAAK,EACL,AAAO,AAAO,MAAR,gCACN,MAAM,EACN,IAAI;AACwB,cAAhC,AAAM,KAAD,QAAQ,AAAO,MAAD,IAAI,AAAO,MAAD;AACS,cAAtC,AAAY,WAAD,QAAQ,AAAO,MAAD,IAAI,AAAO,MAAD;;AAEV,YAA3B,aAAa,AAAW,UAAD,GAAG;;;;AAKhC,eAAS,IAA8B,aAA1B,AAAO,AAAY,MAAb,2BAAsB,GAAG,AAAE,CAAD,IAAI,UAAU,EAAE,IAAA,AAAC,CAAA;AACO,QAAnE,iBAAiB,0BAAmB,gBAAgB,EAAE,YAAY;AAClE,yBAAI,AAAe,AAAmB,cAApB,0BAA2C,yCACzD,AAAe,AAAW,AAAI,cAAhB,sBAAa,CAAC;AAQrB,UAPT,SAAS,uCACL,AAAO,AAAW,AAAI,MAAhB,sBAAa,CAAC,WACpB,AAAc,AAAW,aAAZ,oBAAa,CAAC,GAC3B,KAAK,EACL,KAAK,EACL,AAAO,AAAO,MAAR,gCACN,MAAM,EACN,IAAI;AACwB,UAAhC,AAAM,KAAD,QAAQ,AAAO,MAAD,IAAI,AAAO,MAAD;AAC7B,cAA2B,YAAf,WAAR,OAAO,qBAAkC;AACL,YAAtC,AAAY,WAAD,QAAQ,AAAO,MAAD,IAAI,AAAO,MAAD;cAChC,KAA2B,YAAf,WAAR,OAAO,qBAAkC,4BAChD,AAAY,AAA0B,WAA3B,QAAQ,AAAO,MAAD,IAAI,AAAO,MAAD;;;AAIsB,MAD/D,4BACI,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW;;EAElE;8DAGS,OACA,aACgC,QAC9B,QACD,WACA;AACH;AACG;AACqB,IAA7B,YAAY,AAAM,KAAD;AAEsB,IAAvC,qBAAqB,AAAO,AAAQ,MAAT,iBAAU;AACG,IAArB,UAAnB,kBAAkB,cAAa,SAAS;AAGwB,IADhE,AAAO,AAAkB,AACpB,MADC,iEACwB,AAAO,AAAQ,MAAT,iBAAU,IAAI,AAAO,MAAD;AAKZ,IAJ5C,AAAO,MAAD,UACF,KAAK,EACJ,AAAO,AAAS,MAAV,aAAa,OACd,SAAS,GACT,AAAO,AAAQ,AAAI,MAAb,iBAAU;AAE1B,qBAAI,AAAY,WAAD,QAAiB;AACO,oBAAU,MAAM;AACe,MAApE,uBAAgB,MAAM,EAAE,AAAQ,OAAD,YAAY,WAAW,EAAE,WAAW;;EAEvE;sEAEmE,QACxD,QAAc;AACZ,eAAO,AAAO,AAAO,AAAW,MAAnB;AACT;AACC,gBAAQ,AAAO,MAAD;AACd,gBAAQ,AAAO,MAAD;AACD;AAClB,eAAO;AACG,wBAAgB,AAAO,AAAe,MAAhB,0BAAiB;AAC5D,aAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,AAAY,MAAb,0BAAqB,IAAA,AAAC,CAAA;AACjB,MAA7B,QAAQ,AAAO,AAAW,MAAZ,sBAAa,CAAC;AAC5B,oBAAI,AAAM,KAAD;AAQE,QAPT,SAAS,uCACL,AAAO,AAAW,AAAI,MAAhB,sBAAa,CAAC,WACpB,AAAc,AAAS,aAAV,kBAAW,CAAC,GACzB,KAAK,EACL,KAAK,EACL,AAAO,AAAO,MAAR,gCACN,MAAM,EACN,IAAI;AAG6B,QAFrC,AAAE,CAAD,KAAI,IACC,AAAK,IAAD,QAAQ,AAAO,MAAD,IAAI,AAAO,MAAD,MAC5B,AAAK,IAAD,QAAQ,AAAO,MAAD,IAAI,AAAO,MAAD;;AAElC,yBAAI,AAAO,AAAmB,MAApB,0BAA2C;AACnD,cAA8B,aAA1B,AAAO,AAAY,MAAb,2BAAsB,AAAE,CAAD,GAAG,KAChC,AAAO,AAAW,MAAZ,sBAAa,AAAE,CAAD,GAAG,MAAM,kBAC7B,AAAO,AAAW,AAAQ,MAApB,sBAAa,AAAE,CAAD,GAAG;AAQhB,YAPT,SAAS,uCACL,AAAO,AAAW,AAAQ,MAApB,sBAAa,AAAE,CAAD,GAAG,YACvB,AAAc,AAAS,aAAV,kBAAW,AAAE,CAAD,GAAG,IAC5B,KAAK,EACL,KAAK,EACL,AAAO,AAAO,MAAR,gCACN,MAAM,EACN,IAAI;AACuB,YAA/B,AAAK,IAAD,QAAQ,AAAO,MAAD,IAAI,AAAO,MAAD;;;;;AAKC,kBAAU,MAAM;AACQ,IAA7D,uBAAgB,MAAM,EAAE,AAAQ,OAAD,YAAY,WAAW,EAAE,IAAI;EAC9D;4DAGW,QAC8B,QACnB,iBACA;AACP,IAAb,AAAO,MAAD;AACD;AACE;AAGP,kBAAI,AAAO,MAAD;AACG,yBAAe,4BACtB,AAAO,AAAO,AAAW,MAAnB,qCACN,kBAAO,AAAO,AAAO,MAAR,sBAAoB,AAAO,AAAO,MAAR;AACd,MAA7B,AAAO,MAAD,UAAU,YAAY;AACyC,MAArE,kBAAkB,AAAgB,eAAD,IAAI,OAAO,AAAgB,eAAD,SAAS;AACpE,UAA6B,aAAzB,AAAO,MAAD,sBAAqB,iBACzB,AAAO,AAAO,AAAY,MAApB,qDACJ,AAAO,AAAO,AAAY,MAApB;AAE8C,QAD1D,+BACI,AAAO,MAAD,UAAS,AAAO,MAAD,WAAS,MAAM,EAAE,eAAe;;AAItB,MAArC,AAAO,MAAD,QAAO,MAAM,EAAE,eAAe;AAW2B,MAV/D,WAAW,4BACF,qBAC2C,aAA5C,AAAO,AAAO,AAAW,AAAc,MAAjC,yDACF,AAAO,AAAe,MAAhB,wBACiC,aAA3C,AAAO,AAAO,AAAW,AAAc,MAAjC,wDACF,AAAO,AAAe,MAAhB,yBACmC,aAA7C,AAAO,AAAO,AAAW,AAAc,MAAjC,0DACF,AAAO,AAAe,MAAhB,wBACoC,aAA9C,AAAO,AAAO,AAAW,AAAc,MAAjC,2DACF,AAAO,AAAe,MAAhB,0BACd,kBAAO,AAAO,AAAO,MAAR,sBAAoB,AAAO,AAAO,MAAR;;AAE7B,IAAhB,AAAO,MAAD;AAEN,kBAAI,AAAO,MAAD,eACW,aAAhB,eAAe,iBAAG,AAAO,AAAO,MAAR;AACF,MAAzB,AAAO,MAAD,UAAU,QAAQ;AAGoC,MAA5D,6BAAsB,MAAM,EAAE,MAAM,EAAE,qBAAqB;;EAE/D;0DAG4C,kBAAsB;AAChE,aAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAiB,gBAAD,YAAS,IAAA,AAAC,CAAA;AAC5C,UAAI,AAAY,WAAD,IAAI,AAAiB,gBAAD,WAAS,AAAgB,gBAAA,QAAC,CAAC,MAC1D,CAAC,KAAI;AACP,cAAO,AAAgB,iBAAA,QAAC,AAAE,CAAD,GAAG;;;AAGhC,UAAO,AAAgB,iBAAA,QAAC;EAC1B;4DAGW,QAC8B,QACnB,iBACA;AACP,IAAb,AAAO,MAAD;AACD;AACE;AACP,kBAAI,AAAO,MAAD;AAKD,MAJP,kBAAkB,AAAwB,eAAT,IAAI,oBAC3B,AAAO,AAAO,AAAY,MAApB,qDACJ,AAAO,AAAO,AAAY,MAApB,4CACZ,AAAgB,eAAD,SACf;AAGK,yBAAe,4BACtB,AAAO,AAAO,AAAW,MAAnB,qCACN,kBAAO,AAAO,AAAO,MAAR,sBAAoB,AAAO,AAAO,MAAR;AACd,MAA7B,AAAO,MAAD,UAAU,YAAY;AACS,MAArC,AAAO,MAAD,QAAO,MAAM,EAAE,eAAe;AAW2B,MAV/D,WAAW,4BACF,qBAC2C,aAA5C,AAAO,AAAO,AAAW,AAAc,MAAjC,yDACF,AAAO,AAAe,MAAhB,wBACiC,aAA3C,AAAO,AAAO,AAAW,AAAc,MAAjC,wDACF,AAAO,AAAe,MAAhB,yBACmC,aAA7C,AAAO,AAAO,AAAW,AAAc,MAAjC,0DACF,AAAO,AAAe,MAAhB,wBACoC,aAA9C,AAAO,AAAO,AAAW,AAAc,MAAjC,2DACF,AAAO,AAAe,MAAhB,0BACd,kBAAO,AAAO,AAAO,MAAR,sBAAoB,AAAO,AAAO,MAAR;;AAE7B,IAAhB,AAAO,MAAD;AAEN,kBAAI,AAAO,MAAD,eACW,aAAhB,eAAe,iBAAG,AAAO,AAAO,MAAR;AACF,MAAzB,AAAO,MAAD,UAAU,QAAQ;AAGoC,MAA5D,6BAAsB,MAAM,EAAE,MAAM,EAAE,qBAAqB;;EAE/D;4DAGW,QAC8B,QACnB,iBACA;AACP,IAAb,AAAO,MAAD;AACD;AACE;AACP,kBAAI,AAAO,MAAD;AAC6D,MAArE,kBAAkB,AAAgB,eAAD,IAAI,OAAO,AAAgB,eAAD,SAAS;AAGzD,yBAAe,4BACtB,AAAO,AAAO,AAAW,MAAnB,qCACN,kBAAO,AAAO,AAAO,MAAR,sBAAoB,AAAO,AAAO,MAAR;AACd,MAA7B,AAAO,MAAD,UAAU,YAAY;AAC5B,UAA6B,aAAzB,AAAO,MAAD,sBAAqB,iBACzB,AAAO,AAAO,AAAY,MAApB,qDACJ,AAAO,AAAO,AAAY,MAApB;AAE8C,QAD1D,+BACI,AAAO,MAAD,UAAS,AAAO,MAAD,WAAS,MAAM,EAAE,eAAe;;AAItB,MAArC,AAAO,MAAD,QAAO,MAAM,EAAE,eAAe;AAW2B,MAV/D,WAAW,4BACF,qBAC2C,aAA5C,AAAO,AAAO,AAAW,AAAc,MAAjC,yDACF,AAAO,AAAe,MAAhB,wBACiC,aAA3C,AAAO,AAAO,AAAW,AAAc,MAAjC,wDACF,AAAO,AAAe,MAAhB,yBACmC,aAA7C,AAAO,AAAO,AAAW,AAAc,MAAjC,0DACF,AAAO,AAAe,MAAhB,wBACoC,aAA9C,AAAO,AAAO,AAAW,AAAc,MAAjC,2DACF,AAAO,AAAe,MAAhB,0BACd,kBAAO,AAAO,AAAO,MAAR,sBAAoB,AAAO,AAAO,MAAR;;AAE7B,IAAhB,AAAO,MAAD;AACN,kBAAI,AAAO,MAAD,eACW,aAAhB,eAAe,iBAAG,AAAO,AAAO,MAAR;AACF,MAAzB,AAAO,MAAD,UAAU,QAAQ;AAGoC,MAA5D,6BAAsB,MAAM,EAAE,MAAM,EAAE,qBAAqB;;EAE/D;4DAGwC,SAAmB,SAC7C,OAAW,WAAqB;;AAClC,gBAAQ,SAAS;AACvB,gBAAQ,CAAC;AAEC,gBAAQ,cAAoB,aAAN,KAAK,IAAG;AAC9B,sBAAc,cAAc,KAAK;AAE/C,aAAS,IAAI,GAAG,AAAE,CAAD,GAAS,aAAN,KAAK,IAAG,GAAG,IAAA,AAAC,CAAA;AACK,MAAnC,AAAE,EAAA,QAAC,CAAC,EAAmB,aAAf,AAAO,OAAA,QAAC,AAAE,CAAD,GAAG,mBAAK,AAAO,OAAA,QAAC,CAAC;AACc,MAA3C,WAAL,KAAK,WAAC,CAAC,EAAkC,CAAd,aAAf,AAAO,OAAA,QAAC,AAAE,CAAD,GAAG,mBAAK,AAAO,OAAA,QAAC,CAAC,mBAAK,AAAE,EAAA,QAAC,CAAC;AAC/C,UAAwB,YAAX,WAAJ,WAAL,KAAK,WAAC,CAAC;AACG,QAAP,WAAL,KAAK,WAAC,CAAC,EAAI;;;AAIf,QAAiB,YAAP,WAAN,KAAK,aAAW;AAClB,YAAO;;AAK4B,IAF5B,YAAJ,WAAL,KAAK,WAAC,eACW,KAAX,WAAW,OAAG,QAAF,AAAE,KAAK,GAAP,QAAW,GAAZ,yCACA,MAAX,WAAW,QAAG,QAAF,AAAE,KAAK,GAAP,SAAgB,WAAL,KAAK,WAAC,KAAlB;AAEjB,aAAS,IAAI,GAAG,AAAE,CAAD,GAAa,aAAV,AAAG,EAAD,aAAU,GAAG,IAAA,AAAC,CAAA;AAClC,qBAAiB,WAAP,WAAN,KAAK,mBAAU,AAAE,CAAD,GAAG;AACP,gBAAS,WAAL,KAAK,WAAC,CAAC;AAAG,mBAAY,WAAL,KAAK,WAAC,AAAE,CAAD,GAAG;AAC7C,uBAAa,WAAP,WAAF,CAAC,QAAG,IAAI,WAAI;AACU,UAAb,WAAX,WAAW,WAAG,QAAF,AAAE,KAAK,GAAP,GAAW;;AAEvB,cAAI,AAAE,AAAI,EAAJ,QAAC,CAAC,MAAK;AACa,YAAb,WAAX,WAAW,WAAG,QAAF,AAAE,KAAK,GAAP,GAAW;;AAEV,6BAAa,AAAE,AAAI,EAAJ,QAAC,CAAC;AAC1B,4BAAY,AAAE,AAAQ,EAAR,QAAC,AAAE,CAAD,GAAG;AACV,6BAAa,AAAW,UAAD,GAAG,SAAS;AAIL,YAHhC,WAAX,WAAW,WAAG,QAAF,AAAE,KAAK,GAAP,GAAW,AAAE,AACV,IAAX,UAAU,IACiB,AAAK,CAA7B,AAAW,UAAD,GAAG,SAAS,iCAAI,CAAC,KACC,CAAzB,AAAW,UAAD,GAAG,UAAU,iCAAI,IAAI;;;;;AAOG,IAF5B,YAAnB,WAAL,KAAK,WAAc,WAAP,WAAN,KAAK,mBAAU,iBACJ,OAAX,WAAW,SAAG,QAAF,AAAE,KAAK,GAAP,UAAW,GAAZ,iDACA,OAAX,WAAW,SAAG,QAAF,AAAE,KAAK,GAAP,UAAgB,WAAL,KAAK,WAAc,WAAP,WAAN,KAAK,mBAAU,OAAjC;AAEjB,aAAS,IAAI,GAAG,AAAE,CAAD,gCAAe,WAAZ,WAAW,eAAS,IAAA,AAAC,CAAA;AACd,MAAzB,AAAM,KAAD,uBAAgB,WAAX,WAAW,WAAC,CAAC;;AAGzB,UAAO,MAAK;EACd;0DAGuC,SAAmB,SAC5C,OAAW,WAAkB;AACzC,QAAY,aAAR,OAAO,IAAG;AACD,MAAX,UAAU;UACL,KAAY,aAAR,OAAO,IAAG;AACR,MAAX,UAAU;;AAGF,gBAAQ,SAAS;AAEb,oBAAY,cAAc,KAAK;AAE7C,aAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,KAAK,GAAE,IAAA,AAAC,CAAA;AAC1B,UAAI,AAAE,CAAD,KAAI,KAAoB,aAAf,AAAQ,OAAD,aAAU;AACyB,QAA7C,WAAT,SAAS,WAAC,CAAC,EAAY,aAAR,OAAO,KAAmB,aAAf,AAAO,OAAA,QAAC,AAAE,CAAD,GAAG,mBAAK,AAAO,OAAA,QAAC,CAAC;YAC/C,KAAI,AAAE,CAAD,KAAU,aAAN,KAAK,IAAG,KAAW,AAAI,aAAV,KAAK,IAAG,KAAK;AAC0B,QAAzD,WAAT,SAAS,WAAC,CAAC,EAAY,aAAR,OAAO,KAAuB,aAAnB,AAAO,OAAA,QAAO,aAAN,KAAK,IAAG,mBAAK,AAAO,OAAA,QAAO,aAAN,KAAK,IAAG;YAC1D,KAAI,AAAE,AAAI,CAAL,GAAG,KAAK,KAAoB,aAAf,AAAQ,OAAD,aAAU,AAAE,CAAD,GAAG;AACc,QAAjD,WAAT,SAAS,WAAC,CAAC,EAAY,aAAR,OAAO,KAAmB,aAAf,AAAO,OAAA,QAAC,AAAE,CAAD,GAAG,mBAAK,AAAO,OAAA,QAAC,AAAE,CAAD,GAAG;;AAGzD,UAAiB,YAAJ,WAAT,SAAS,WAAC,CAAC;AACG,QAAP,WAAT,SAAS,WAAC,CAAC,EAAI;;;AAInB,aAAS,IAAI,GAAG,AAAE,CAAD,gCAAa,WAAV,SAAS,eAAS,IAAA,AAAC,CAAA;AACd,MAAvB,AAAM,KAAD,uBAAc,WAAT,SAAS,WAAC,CAAC;;AAEvB,UAAO,MAAK;EACd;kDAGmC,SAAmB,SAAmB,QACjE,WAAsB;;AAElB,gBAAQ,SAAS;AACb,gBAAQ,cAAc,KAAK;AACzC,aAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,KAAK,GAAE,IAAA,AAAC,CAAA;AACd,MAAP,WAAL,KAAK,WAAC,CAAC,EAAI;;AAGC,YAAI,cAAc,KAAK;AACrC,QAAe,YAAX,UAAU,EAAe,8BAA0B,aAAf,AAAQ,OAAD,aAAU;AAC7C,MAAT,WAAD,CAAC,WAAC,GAAK;AACO,eAA+B,CAAd,aAAX,AAAO,OAAA,QAAC,mBAAK,AAAO,OAAA,QAAC,QAAkB,aAAX,AAAO,OAAA,QAAC,mBAAK,AAAO,OAAA,QAAC;AACvD,eAA+C,CAAtB,aAAnB,AAAO,OAAA,QAAO,aAAN,KAAK,IAAG,mBAAK,AAAO,OAAA,QAAO,aAAN,KAAK,IAAG,QACjC,aAAnB,AAAO,OAAA,QAAO,aAAN,KAAK,IAAG,mBAAK,AAAO,OAAA,QAAO,aAAN,KAAK,IAAG;AAEgC,MADrE,WAAL,KAAK,WAAC,GACD,AAAE,AAA4B,AAA6B,KAA3C,aAAX,AAAO,OAAA,QAAC,mBAAK,AAAO,OAAA,QAAC,QAAkB,aAAX,AAAO,OAAA,QAAC,mBAAK,AAAO,OAAA,QAAC,OAAQ,AAAE,oBAAE,EAAE;AAGvB,MAF7C,WAAL,KAAK,WAAO,aAAN,KAAK,IAAG,GAAM,AAAE,AAAM,oBAAJ,EAAE,IACpB,AAAE,AAA6C,KAAvB,aAAnB,AAAO,OAAA,QAAO,aAAN,KAAK,IAAG,mBAAK,AAAO,OAAA,QAAO,aAAN,KAAK,IAAG,QACpB,aAAnB,AAAO,OAAA,QAAO,aAAN,KAAK,IAAG,mBAAK,AAAO,OAAA,QAAO,aAAN,KAAK,IAAG;AAE9C,UAAa,YAAJ,WAAL,KAAK,WAAC,eAAkC,YAAJ,WAAL,KAAK,WAAC;AAC3B,QAAP,WAAL,KAAK,WAAC,GAAK;;AAGb,UAAqB,YAAZ,WAAL,KAAK,WAAO,aAAN,KAAK,IAAG,eAA0C,YAAZ,WAAL,KAAK,WAAO,aAAN,KAAK,IAAG;AACnC,QAAf,WAAL,KAAK,WAAO,aAAN,KAAK,IAAG,GAAK;;;AAGF,MAAd,WAAL,KAAK,WAAC,IAAM,KAAD,CAAC,OAAC,QAAK,GAAN;AACQ,MAAf,WAAL,KAAK,WAAO,aAAN,KAAK,IAAG,GAAK;;AAGrB,aAAS,IAAI,GAAG,AAAE,CAAD,GAAS,aAAN,KAAK,IAAG,GAAG,IAAA,AAAC,CAAA;AAC9B,UAAK,AAAO,OAAA,QAAC,AAAE,CAAD,GAAG,gBACZ,AAAO,OAAA,QAAC,AAAE,CAAD,GAAG,gBACZ,AAAO,OAAA,QAAC,CAAC,eACV,AAAO,OAAA,QAAC,AAAE,CAAD,GAAG,MAAM,QAClB,AAAO,OAAA,QAAC,AAAE,CAAD,GAAG,MAAM,QAClB,AAAO,OAAA,QAAC,AAAE,CAAD,GAAG,MAAM,QAClB,AAAO,OAAA,QAAC,AAAE,CAAD,GAAG,MAAM,QAClB,AAAO,OAAA,QAAC,CAAC,KAAK,QACd,AAAO,OAAA,QAAC,CAAC,KAAK;AACH,iBAAK,AAAO,AAAI,AAAW,OAAf,QAAC,CAAC,iBAAe,AAAO,AAAQ,OAAR,QAAC,AAAE,CAAD,GAAG;AACzC,iBAAK,AAAO,AAAQ,AAAW,OAAnB,QAAC,AAAE,CAAD,GAAG,kBAAgB,AAAO,AAAQ,OAAR,QAAC,AAAE,CAAD,GAAG;AAC7C,iBAAK,AAAO,AAAQ,AAAW,OAAnB,QAAC,AAAE,CAAD,GAAG,kBAAgB,AAAO,AAAI,OAAJ,QAAC,CAAC;AAC1C,kBAAM,AAAO,AAAQ,AAAW,OAAnB,QAAC,AAAE,CAAD,GAAG,kBAAgB,AAAO,AAAI,OAAJ,QAAC,CAAC;AAC3C,kBAAM,AAAO,AAAI,AAAW,OAAf,QAAC,CAAC,iBAAe,AAAO,AAAQ,OAAR,QAAC,AAAE,CAAD,GAAG;AACvD,YAAI,AAAO,AAAI,OAAJ,QAAC,CAAC,KAAK,AAAO,OAAA,QAAC,AAAE,CAAD,GAAG,MAAM,AAAO,AAAI,OAAJ,QAAC,CAAC,KAAK,AAAO,OAAA,QAAC,AAAE,CAAD,GAAG;AAChD,UAAP,WAAL,KAAK,WAAC,CAAC,EAAI;AACH,UAAP,WAAD,CAAC,WAAC,CAAC,EAAI;;AAEO,kBAAI,AAAE,KAAI,AAAG,AAAgB,EAAjB,gCAAQ,WAAL,KAAK,WAAC,AAAE,CAAD,GAAG,QAAO,AAAE,IAAE,EAAE;AAClC,UAAb,WAAL,KAAK,WAAC,CAAC,EAAO,WAAH,WAAC,CAAC,wBAAG,EAAE;AAClB,cAAI,EAAE,KAAI,QAAS,WAAD,CAAC,WAAC,AAAE,CAAD,GAAG,OAAM;AACkC,YAA7D,WAAD,CAAC,WAAC,CAAC,EAAM,WAAF,CAAC,QAAO,AAA6B,KAAzB,AAAI,AAAM,GAAP,GAAG,EAAE,GAAK,AAAI,GAAD,GAAG,EAAE,IAAO,AAAG,EAAD,gCAAI,WAAD,CAAC,WAAC,AAAE,CAAD,GAAG;;;;;AAMlE,aAAS,IAAU,aAAN,KAAK,IAAG,GAAG,AAAE,CAAD,IAAI,GAAG,IAAA,AAAC,CAAA;AAC/B,UAAK,WAAD,CAAC,WAAC,CAAC,MAAK,QAAa,WAAL,KAAK,WAAC,CAAC,MAAK,QAAa,WAAL,KAAK,WAAC,AAAE,CAAD,GAAG,OAAM;AACX,QAAtC,WAAL,KAAK,WAAC,CAAC,EAA8B,WAAhB,WAAJ,WAAL,KAAK,WAAC,CAAC,UAAS,WAAL,KAAK,WAAC,AAAE,CAAD,GAAG,aAAO,WAAD,CAAC,WAAC,CAAC;;;AAI9C,aAAS,IAAI,GAAG,AAAE,CAAD,gCAAS,WAAN,KAAK,eAAS,IAAA,AAAC,CAAA;AACb,MAApB,AAAO,MAAD,uBAAU,WAAL,KAAK,WAAC,CAAC;;AAEpB,UAAO,OAAM;EACf;sFAIW,QACA,QACA,SACA,SACA,cACA,eACA;AACK,gBAAW,aAAH,EAAE,IAAG;AACR,iBAAS,mBAAa;AACf,IAA1B,AAAM,MAAA,QAAC,GAAY,aAAP,MAAM,oBAAG,KAAK;AACiB,IAA3C,AAAM,MAAA,QAAC,GAAY,aAAP,MAAM,IAAiB,aAAb,YAAY,oBAAG,KAAK;AACf,IAA3B,AAAM,MAAA,QAAC,GAAa,aAAR,OAAO,oBAAG,KAAK;AACkB,IAA7C,AAAM,MAAA,QAAC,GAAa,aAAR,OAAO,IAAkB,aAAd,aAAa,oBAAG,KAAK;AAC5C,UAAO,OAAM;EACf;oFAGoD,QAAe,QACxD,SAAgB,SAAgB,cAAqB;AAC3C,iBAAS,mBAAa;AACF,IAAvC,AAAM,MAAA,QAAC,GAAY,aAAP,MAAM,IAAiB,aAAb,YAAY,IAAG;AACE,IAAvC,AAAM,MAAA,QAAC,GAAY,aAAP,MAAM,IAAiB,aAAb,YAAY,IAAG;AACI,IAAzC,AAAM,MAAA,QAAC,GAAa,aAAR,OAAO,IAAkB,aAAd,aAAa,IAAG;AACE,IAAzC,AAAM,MAAA,QAAC,GAAa,aAAR,OAAO,IAAkB,aAAd,aAAa,IAAG;AACvC,UAAO,OAAM;EACf;oEAG+C,SAAmB,SACvD,OAAc,WAAe;AACnB,wBAAgB,mBAAa;AACnC,kBAAU,KAAK;AACf,kBAAU,SAAS;AACnB,YAAI,AAAO,AAAI,OAAJ,QAAC,CAAC;AACb,YAAI,AAAO,AAAI,OAAJ,QAAC,CAAC;AACb,gBAAQ,AAAO,AAAQ,OAAR,QAAG,aAAF,CAAC,IAAG;AACpB,gBAAQ,AAAO,AAAQ,OAAR,QAAG,aAAF,CAAC,IAAG;AAE1B,kBAAU,AAAM,KAAD,GAAG,CAAC;AACC,IAA3B,UAAU,AAAQ,OAAD,GAAG,OAAO;AACd,cAAO,AAAE,AAAK,IAAH,CAAC,GAAI,KAAK;AACrB,cAAM,AAAE,CAAD,GAAI,AAAE,IAAE,KAAK;AACpB,cAAO,AAAE,AAAK,IAAH,CAAC,GAAI,KAAK;AACrB,cAAM,AAAE,CAAD,GAAI,AAAE,IAAE,KAAK;AACpB,aACA,sBAAG,AAAI,GAAD,GAAa,AAAU,qBAAR,OAAO,IAAY,aAAR,OAAO,IAAI,AAAI,mBAAE,OAAO;AACxD,aACA,sBAAG,AAAI,GAAD,GAAa,AAAU,qBAAR,OAAO,IAAK,AAAI,AAAW,mBAAT,OAAO,iBAAI,OAAO;AACxD,8BAAsB,AAAI,GAAD;AACzB,8BAAsB,EAAE;AACxB,4BAAoB,AAAI,GAAD;AACvB,4BAAoB,EAAE;AACE,IAAtC,AAAa,aAAA,QAAC,sBAAK,mBAAmB;AACA,IAAtC,AAAa,aAAA,QAAC,sBAAK,mBAAmB;AACF,IAApC,AAAa,aAAA,QAAC,sBAAK,iBAAiB;AACA,IAApC,AAAa,aAAA,QAAC,sBAAK,iBAAiB;AACpC,UAAO,cAAa;EACtB;wFAEsE;AAC1D,gBAAa;AACP,kBAAe;AACf,kBAAe;AACpB;AAEX,QAAW,2BAAP,MAAM;AACsB,MAA9B,aAAa,AAAO,MAAD;;AAGrB,aAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,AAAY,MAAb,0BAAqB,IAAA,AAAC,CAAA;AACL,MAAzC,AAAQ,OAAD,uBAAK,AAAO,AAAW,AAAI,MAAhB,sBAAa,CAAC;AACS,MAAzC,AAAQ,OAAD,uBAAK,AAAO,AAAW,AAAI,MAAhB,sBAAa,CAAC;;AAGlC,QAAW,2BAAP,MAAM,eAAwB,AAAQ,OAAD;AACvB,eAAK,gBAAyB,aAAf,AAAQ,OAAD,aAAU;AAGhD,UAAe,YAAX,UAAU,EAAe;AAC6C,QAAxE,QAAQ,2BAAoB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,AAAQ,OAAD,WAAS,EAAE;YAClE,KAAe,YAAX,UAAU,EAAe;AAED,QADjC,QAAQ,0BAAmB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,AAAQ,OAAD,WACvD,AAAO,MAAD;;AAG6D,QADvE,QACI,sBAAe,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,AAAQ,OAAD,WAAS,UAAU;;AAGpB,MADpD,sCACI,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;;EAEvD;kFAGuC,QACxB,YACD,SACA,SACA,OACA;AACZ,aAAS,aAAa,GAAG,AAAW,UAAD,GAAkB,aAAf,AAAQ,OAAD,aAAU,GAAG,aAAA,AAAU,UAAA;AACrD,0BAAwB;AACE,MAAvC,AAAO,MAAD,gBAA+B;AACrC,UAAI,AAAO,OAAA,QAAC,UAAU,KAAK,QACvB,AAAO,OAAA,QAAC,UAAU,KAAK,QACvB,AAAO,OAAA,QAAC,AAAW,UAAD,GAAG,MAAM,QAC3B,AAAO,OAAA,QAAC,AAAW,UAAD,GAAG,MAAM;AAChB,gBAAI,AAAO,AAAa,OAAb,QAAC,UAAU;AACtB,gBAAI,AAAO,AAAa,OAAb,QAAC,UAAU;AACtB,oBAAQ,AAAO,AAAiB,OAAjB,QAAC,AAAW,UAAD,GAAG;AAC7B,oBAAQ,AAAO,AAAiB,OAAjB,QAAC,AAAW,UAAD,GAAG;AAC1C,YAAe,YAAX,UAAU,EAAe;AAQG,UAP9B,gBAAgB,wCACZ,CAAC,EACD,CAAC,EACD,KAAK,EACL,KAAK,EACL,AAAK,AAAa,KAAb,QAAC,UAAU,gBAChB,AAAK,AAAiB,KAAjB,QAAC,AAAW,UAAD,GAAG,iBACnB,AAAE,AAAa,EAAb,QAAC,UAAU;AAE2C,UAD5D,AAAO,AACF,MADC,oBACG,8BAAe,AAAa,aAAA,QAAC,IAAI,AAAa,aAAA,QAAC;AAEI,UAD5D,AAAO,AACF,MADC,oBACG,8BAAe,AAAa,aAAA,QAAC,IAAI,AAAa,aAAA,QAAC;AACY,UAApE,AAAO,AAAkB,MAAnB,yBAAuB,kCAAmB,AAAO,MAAD;cACjD,KAAe,YAAX,UAAU,EAAe;AAEiC,UADnE,gBAAgB,uCAAgC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAC9D,AAAK,AAAa,KAAb,QAAC,UAAU,gBAAc,AAAK,AAAiB,KAAjB,QAAC,AAAW,UAAD,GAAG;AAEO,UAD5D,AAAO,AACF,MADC,oBACG,8BAAe,AAAa,aAAA,QAAC,IAAI,AAAa,aAAA,QAAC;AAEI,UAD5D,AAAO,AACF,MADC,oBACG,8BAAe,AAAa,aAAA,QAAC,IAAI,AAAa,aAAA,QAAC;AACY,UAApE,AAAO,AAAkB,MAAnB,yBAAuB,kCAAmB,AAAO,MAAD;;AAOvC,UALf,gBAAgB,+BACZ,OAAO,EACP,OAAO,EACP,AAAK,AAAa,KAAb,QAAC,UAAU,gBAChB,AAAK,AAAiB,KAAjB,QAAC,AAAW,UAAD,GAAG,iBACnB,UAAU;AAE8C,UAD5D,AAAO,AACF,MADC,oBACG,8BAAe,AAAa,aAAA,QAAC,IAAI,AAAa,aAAA,QAAC;AAEI,UAD5D,AAAO,AACF,MADC,oBACG,8BAAe,AAAa,aAAA,QAAC,IAAI,AAAa,aAAA,QAAC;AACY,UAApE,AAAO,AAAkB,MAAnB,yBAAuB,kCAAmB,AAAO,MAAD;;;;EAI9D;4CAGgC,MAAsB;AACpD,aAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAY,WAAD,YAAS,IAAA,AAAC,CAAA;AACvC,UAAI,AAAW,AAAI,AAAM,WAAV,QAAC,CAAC,aAAW,AAAK,IAAD;AAC9B,cAAO,AAAW,YAAA,QAAC,CAAC;;;AAGxB,UAAO;EACT;gEtIvsC8B,QAAe,KAAS;AACpD,QAAI,AAAI,GAAD,KAAI;AACT,eAAS,IAAI,KAAK,EAAI,aAAF,CAAC,KAAI,GAAG,IAAC,aAAD,CAAC;AAC3B,sBAAI,AAAM,AAAQ,MAAR,QAAG,aAAF,CAAC,IAAG;AACb,gBAAS,cAAF,CAAC,IAAG;;;;AAIf,eAAS,IAAI,KAAK,EAAI,aAAF,CAAC,iBAAG,AAAO,MAAD,YAAS,IAAC,aAAD,CAAC;AACtC,sBAAI,AAAM,AAAQ,MAAR,QAAG,aAAF,CAAC,IAAG;AACb,gBAAS,cAAF,CAAC,IAAG;;;;AAIjB,UAAO;EACT;0ECpuBqD,cAChB,QAAwB;;AACrD;AACkB,oBAAY,AAAO,MAAD;AAC7B,sBAAc,AAAO,AAAY,MAAb,mBAAgB,QAC3C,QACA,AAAO,AAAY,MAAb,mBAAgB,aAClB,aACA,AAAO,AAAY,MAAb,mBAAgB,cAAc,cAAc;AAC5D,YAAQ,WAAW;;;;AAGf,YAAgC,YAA5B,AAAa,YAAD,iBAA0C,oDACrD,AAAa,YAAD;AAEuD,UADtE,QAAQ,sBACJ,AAAU,SAAD,QAAQ,AAAa,YAAD,OAAO,AAAM,AAAY,KAAb;;AAQX,UANlC,QAAQ,sBACJ,AAAU,SAAD,kBACT,AAAU,SAAD,mBACH,AAAa,YAAD,SACW,KAAtB,AAAM,KAAD,wBAAC,OACL,AAAM,AAAY,AAAY,KAAzB,0DACb,AAAM,AAAY,KAAb;;AAEX;;;;AAEwC,sDAAY,MAAM;AAC9B,QAA5B,QAAQ,AAAU,SAAD;AACjB;;;;AAEoB,QAApB,QAAe;;;AAEnB,UAAO,4BAAoB,KAAK;EAClC;kDAIc,gBAAsB,YAA6B;AAC7D,UAAA,AAAe,eAAD,IAAI,OACZ,cAAc,GACd,AAAW,UAAD,IAAI,OACV,UAAU,GACO,YAAjB,AAAM,KAAD,aAA0B,yCAEpB;EAAK;kDAIhB,gBAAsB,iBAAkC;AAClE,UAAA,AAAe,eAAD,IAAI,OACZ,cAAc,GACE,aAAhB,eAAe,EAAW,8BACtB,eAAe,GACE,YAAjB,AAAM,KAAD,aAA0B,yCAEpB;EAAK;kEAE+B,QACrC,OAAuB;AACxC,6BAAqB;AAC1B,kBAAI,AAAO,AAA2B,MAA5B;AACR,eAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,AAA2B,MAA5B,uCAAoC,IAAA,AAAC,CAAA;AACnD,mBAAO,AAAO,AAA0B,MAA3B,mCAA4B,CAAC;AACpD,iBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAO,AAAc,MAAf,2BAAuB,IAAA,AAAC,CAAA;AAChD,cAAI,AAAE,CAAD,KAAI,IAAI;AACc,YAAzB,qBAAqB;AACrB;;;;;AAKR,UAAO,mBAAkB;EAC3B;sDCzWuD,QAAe,QAClD,OAAW,aAA+B;AACxC;AACI,oBAAY,AAAO,MAAD;AAChC,gBAAQ,AAAU,SAAD;AACpB;AAEA;AACM,yBAAiB,AAAU,SAAD,IAAI,OAAO,AAAU,SAAD,SAAS;AAChD;AACL;AACE,iCAA+B;AAChD,aAAS,aAAa,GAClB,AAAW,UAAD,gBAAG,AAAO,AAAc,MAAf,2BACnB,aAAA,AAAU,UAAA;AAC4B,MAAxC,QAAQ,AAAO,AAAa,MAAd,uBAAe,UAAU;AACvC,oBAAI,AAAM,KAAD;AACW,QAAlB,QAAQ,AAAM,KAAD;AAEsD,QADnE,QAAQ,AAAO,AACV,MADS,4BACO,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK;AAC9B,QAApC,iBAAiB,AAAU,SAAD;AAC1B,YAAI,AAAM,KAAD,sBAAsB;AACQ,UAArC,gBAAgB;AACU,UAA1B,AAAc,aAAD,QAAQ,KAAK;AACc,UAAxC,AAAc,aAAD,aAAa,cAAc;AACX,UAA7B,AAAc,aAAD,UAAU,MAAM;AACkB,UAA/C,AAAc,aAAD,cAAc,AAAO,MAAD;AACI,UAArC,AAAc,aAAD,cAAc,UAAU;AACC,UAAtC,AAAM,KAAD,mBAAmB,aAAa;AACX,UAA1B,QAAQ,AAAc,aAAD;AACmB,UAAxC,iBAAiB,AAAc,aAAD;;AAKZ,QAHpB,iBAAiB,AAAM,AAAkB,KAAnB,sBAAsB,OACtC,AAAO,AAAU,MAAX,8BACJ,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,KAAK,IAC/D,cAAc;AACT,uBAAW,oBAAa,KAAK,EAAE,cAAc;AACxD,YAAI,AAAO,AAAY,MAAb,mBAAgB;AAEsC,UAD9D,gBAAgB,sBAAe,AAAM,KAAD,aACQ,CAArB,aAAlB,AAAM,KAAD,6BAAe,AAAM,KAAD,iBAAgB,GAAG,AAAM,KAAD;AAKP,UAJ/C,gBAAgB,kBACM,AAAiB,AAAK,aAAvC,AAAc,aAAD,oBAAM,AAAS,QAAD,UAAS,KAChC,AAAM,KAAD,KAAI,IAAI,IAAmB,aAAf,AAAS,QAAD,UAAS,IACrB,AAAuB,aAAxC,AAAc,aAAD,OAAsB,aAAhB,AAAS,QAAD,WAAU,KACjC,AAAM,KAAD,KAAI,IAAI,IAAoB,aAAhB,AAAS,QAAD,WAAU;AAKH,UAJzC,AAAM,KAAD,aAAkB,qBACF,aAAjB,AAAc,aAAD,UACI,aAAjB,AAAc,aAAD,UACE,aAAf,AAAS,QAAD,UAAU,AAAE,OACJ,aAAhB,AAAS,QAAD,WAAW,AAAE;AAcN,UAbnB,kBACI,AAAM,KAAD,YACL,aAAa,EACb,KAAK,EACL,MACA,MAAM,EACN,MAAM,EACN,KAAK,EACL,UAAU,EACV,WAAW,EACX,KAAK,EACL,cAAc,EACd,sBAAsB,EACtB,cAAc;;AAcF,UAZhB,yBACI,SAAS,EACT,KAAK,EACL,QAAQ,EACR,KAAK,EACL,MAAM,EACN,sBAAsB,EACtB,UAAU,EACV,KAAK,EACL,MAAM,EACN,cAAc,EACd,cAAc,EACd,WAAW;;;;EAIvB;wDAGsB,WACE,OACf,UACW,OACT,QACI,wBACP,YACG,OACC,QACD,gBACQ,gBACX;;AACI,gBAAQ,AAAU,SAAD;AACpB;AACI,sCAAoB,WAAP,MAAM;AAE9B,QAA4B,YAAxB,AAAU,SAAD,gBAAyC;AAEU,MAD9D,gBAAgB,sBAAe,AAAM,KAAD,WACQ,CAArB,aAAlB,AAAM,KAAD,6BAAe,AAAM,KAAD,iBAAgB,GAAG,AAAM,KAAD;AAOP,MAN/C,gBAAgB,kBACK,AACQ,aADzB,AAAc,aAAD,OACO,aAAf,AAAS,QAAD,UAAS,KACjB,AAAM,KAAD,KAAI,IAAI,IAAmB,aAAf,AAAS,QAAD,UAAS,IACtB,AACS,aAD1B,AAAc,aAAD,OACQ,aAAhB,AAAS,QAAD,WAAU,KAClB,AAAM,KAAD,KAAI,IAAI,IAAoB,aAAhB,AAAS,QAAD,WAAU;AAKH,MAJzC,AAAM,KAAD,aAAkB,qBACF,aAAjB,AAAc,aAAD,UACI,aAAjB,AAAc,aAAD,UACE,aAAf,AAAS,QAAD,UAAU,AAAE,OACJ,aAAhB,AAAS,QAAD,WAAW,AAAE;AACd,+BACP,kBAAW,AAAM,KAAD,YAAY,sBAAsB;AACtD,oBAAI,UAAU,eAAI,kBAAkB;AACE,QAApC,AAAM,KAAD,2BAA2B;AACqB,QAArD,AAAM,KAAD,kBAAyC;AASR,QARtC,AAAe,cAAD,UAAmC,KAA1B,AAAU,AAAU,SAAX,wBAAW,OACvC,4BAAoC,KAAhB,AAAU,SAAD,cAAC,iBACzB,AAAU,SAAD,mBACJ,AAAM,KAAD,SACkB,KAAtB,AAAM,KAAD,wBAAC,OACqC,YAAzC,AAAM,AAAY,AAAY,KAAzB,uCACa,uBACN,uBACA;AAaV,QAZnB,+BACI,MAAM,EACN,KAAK,EACL,KAAK,EACL,QAAQ,EACR,UAAU,+BACV,MAAM,GACN,UAAU,EACV,WAAW,EACX,KAAK,EACL,cAAc,EACd,sBAAsB,EACtB,cAAc;;AAEkC,QAApD,AAAM,KAAD,kBAAyC;AAKiB,QAJ/D,AAAe,cAAD,SACT,AAAM,AAA0B,KAA3B,sBAAsB,QAAQ,AAAU,AAAU,SAAX,oBAAoB,OAC3D,4BAAoC,MAAhB,AAAU,SAAD,eAAC,OAAS,AAAM,KAAD,iBACjB,OAA1B,AAAU,AAAU,SAAX,0BAAW,OACnB,4BAAoC,MAAhB,AAAU,SAAD,eAAC,OAAS,AAAM,KAAD;AACxD,sBAAI,kBAAkB,IACgB,YAA/B,AAAU,SAAD,uBAA8C,oCACpD,QACA,OACJ;AAce,UAbnB,kBACI,AAAM,KAAD,YACL,aAAa,EACb,KAAK,EACL,MACA,MAAM,+BACN,MAAM,GACN,KAAK,EACL,UAAU,EACV,WAAW,EACX,KAAK,EACL,cAAc,EACd,sBAAsB,EACtB,cAAc;;;;AAI+B,MAArD,AAAM,KAAD,kBAAyC;AAa3B,MAZnB,+BACI,MAAM,EACN,KAAK,EACL,KAAK,EACL,QAAQ,EACR,UAAU,+BACV,MAAM,GACN,UAAU,EACV,WAAW,EACX,KAAK,EACL,cAAc,EACd,sBAAsB,EACtB,cAAc;;EAEtB;oEAGW,QACA,OACa,OACf,UACD,YAC6B,QAC5B,YACD,aACY,OACD,WACJ,wBACJ;;AACJ;AACA;AACE;AACU,iBAAS,AAAO,AAAkB,MAAnB;AACJ,oBACxB,AAAO,AAAkB,MAAnB;AACY,IAAtB,gBAAgB;AACN,0BAAkB,uBACxB,AAAU,AAAO,SAAR,WAAW,OAAO,AAAU,SAAD,UAAU,OAAO,AAAM,KAAD;AACjD,qBACT,sBAAe,AAAM,KAAD,WAAW,AAAM,KAAD,cAAc,AAAM,KAAD;AAC9C,mBAAW,sBACpB,AAAM,KAAD,WAA6B,aAAlB,AAAM,KAAD,6BAAe,eAAe,GAAE,AAAM,KAAD;AACZ,IAAlD,AAAc,aAAD,QAAQ,AAAW,UAAD,KAAK,AAAW,UAAD;AAC9C,QAAmB,YAAf,AAAU,SAAD,OAAuB;AACY,MAA9C,AAAc,aAAD,QAAQ,AAAS,QAAD,KAAK,AAAS,QAAD;;AAGN,IADtC,OAAO,yBAAkB,AAAM,KAAD,oBAAoB,AAAU,SAAD,OAAO,MAAM,EACpE,aAAa,EAAE,QAAQ,EAAE,QAAQ;AACf,IAAtB,AAAM,KAAD,aAAa,IAAI;AAE+B,IADrD,gBAAgB,kBAAiB,aAAV,AAAK,IAAD,sBAAQ,AAAO,MAAD,QAC5B,AAAkB,aAA3B,AAAK,IAAD,QAAmB,aAAZ,AAAK,IAAD,WAAU,IAAoB,aAAhB,AAAS,QAAD,WAAU;AACxC,wBAAgB,AAAM,AAAY,KAAb;AAChC,QAAI,AAAO,AAAkB,AAAQ,MAA3B,8BAA8B;AACtC,UAAkD,YAA9C,AAAO,AAAkB,MAAnB,yCACe;AACvB,uBAAK,kBAAW,IAAI,EAAE,sBAAsB,MAC7B,aAAV,AAAK,IAAD,sBAAQ,AAAc,aAAD,UACZ,AAAa,aAAvB,AAAK,IAAD,sBAAQ,AAAK,IAAD,UACO,aAAnB,AAAc,aAAD,sBAAQ,AAAc,aAAD,WACjC,aAAT,AAAK,IAAD,qBAAO,AAAc,aAAD,SACf,AAAc,aAAvB,AAAK,IAAD,qBAAO,AAAK,IAAD,WAA4B,aAAlB,AAAc,aAAD,qBAAO,AAAc,aAAD;AAczC,UAbnB,kBACI,IAAI,EACJ,aAAa,EACb,KAAK,EACL,aAAa,EACb,MAAM,EACN,MAAM,EACN,KAAK,EACL,UAAU,EACV,WAAW,EACX,KAAK,EACL,SAAS,EACT,sBAAsB,EACtB,cAAc;;;AAgBD,QAbnB,kBACI,IAAI,EACJ,aAAa,EACb,KAAK,EACL,aAAa,EACb,MAAM,EACN,MAAM,EACN,KAAK,EACL,UAAU,EACV,WAAW,EACX,KAAK,EACL,SAAS,EACT,sBAAsB,EACtB,cAAc;;;AAWiB,MARrC,AAAO,MAAD,UACF,aAAa,QACb,gBACI,WAAwB,aAAhB,AAAU,SAAD,WAAU,IAChB,8BACqC,KAA5C,AAAU,AAAM,SAAP,mBAAmB,cAAc,SAA1B,OACd,AAAM,AAAK,KAAN,kBAAkB,cAAc,SAC3C,iBAAc,AAAU,SAAD,QACvB,WAAsB;;EAElC;0CAGS,WACE,UACA,OACF,eACE,QAC0B,QACb,OAChB,YACA,aACY,OACD,WACJ,wBACJ;;AACH;AACkB,oBAAY,AAAO,MAAD;AACd,oBAAY,AAAU,SAAD;AACjD,QAAI,aAAa,IAAI;AAQkB,MAPrC,AAAO,MAAD,UACF,aAAa,QACb,gBACI,WAAwB,aAAhB,AAAU,SAAD,WAAU,IAChB,8BACS,KAAhB,AAAU,SAAD,cAAC,OAAS,AAAM,AAAK,KAAN,kBAAkB,cAAc,SAC5D,iBAAc,AAAU,SAAD,QACvB,WAAsB;;AAGhC,QAAI,AAAU,AAAQ,SAAT,YAAY;AACV,wBAAc,AAAO,AAAU,MAAX,oCAC7B,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,AAAU,SAAD;AACzC,sBAAY,AAAO,AAAU,MAAX,8BAC1B,MAAM,EACN,KAAK,EACL,UAAU,EACV,WAAW,EACX,AAAU,AAAM,SAAP,UAAU,OACb,AAAU,SAAD,mBACR,AAAU,SAAD,mBAAkB,AAAM,KAAD,QAAQ,AAAU,SAAD;AAChD,wBAAc,AAAO,AAAU,MAAX,oCAC5B,MAAM,EACN,KAAK,EACL,UAAU,EACV,WAAW,EACX,AAAU,AAAY,SAAb,yBAAyB,AAAU,SAAD;AAC/C,UAAI,WAAW,IAAI,QAAoB,aAAZ,WAAW,IAAG;AAOV,QAN7B,mBAAY,gBACR,YAAQ,AAAY,WAAD,aACD,AAA2B,aAA1C,cAAc,KAAI,AAAE,iBAAE,AAAU,SAAD,aAAa,IACvC,MACe,aAAf,cAAc,KAAI,AAAE,iBAAE,AAAU,SAAD,aACvC,YAAsB,yBACtB,kBAAc,WAAW;AAMlB,QALX,sBACI,SAAS,EACJ,qBACD,AAAU,SAAD,OAAO,AAAU,SAAD,MAAM,AAAU,SAAD,QAAQ,AAAU,SAAD,UAC7D,AAAU,SAAD,eACT,MAAM;;AAEZ,UAAI,SAAS,IAAI;AAWJ,QAVX,8BACI,gBACI,aAAQ,AAAU,SAAD,aACC,AAA2B,aAA1C,cAAc,KAAI,AAAE,iBAAE,AAAU,SAAD,aAAa,IACvC,MACe,aAAf,cAAc,KAAI,AAAE,iBAAE,AAAU,SAAD,aACvC,aAAsB,8BACrB,qBACD,AAAU,SAAD,OAAO,AAAU,SAAD,MAAM,AAAU,SAAD,QAAQ,AAAU,SAAD,UAC7D,AAAU,SAAD,eACT,MAAM;;AAEiD,MAA7D,AAAU,SAAD,SAAS,AAAU,AAAM,SAAP,mBAAmB,cAAc;AACE,MAA9D,iBAAU,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,AAAU,SAAD;AAClB,MAArC,AAAuB,sBAAD,OAAK,SAAS;;EAExC;kDAGc,OAAY,WAAkB,cAAqB;AAC7D,UAAA,AAAO,OAAD,WACI,+BAAkB,SAAS,EAAS,uBAAS,YAAY,IAC/D,KAAK;EAAC;kEAEkC;AAC5C,UAAA,AAAM,MAAD,qBAAsC,AACU,aADzB,AAAM,KAAD,cAAa,CAAC,MAAqB,aAAf,AAAM,KAAD,aAAY,KAC9C,aAAf,AAAM,KAAD,cAAa,KAAoB,aAAf,AAAM,KAAD,aAAY,MACzB,aAAf,AAAM,KAAD,cAAa,MACZ,wBACA;EAAI;oD+IleI,OAAW;;AACpC,QAAI,KAAK,IAAI;AACX,YAAO,AAAM,MAAD,YAAU,OACV,AAAO,aAAZ,IAAI,IAAG,MAAY,AAA6C,kBAApC,AAAM,KAAD,cAAY,gBAAO,MAAM,gBACvC,KAAf,kBAAS,KAAK,gBAAC,OAAG;;AAE/B,UAAO;EACT;wDAG0B;AAAQ,UAAI,cAAJ,GAAG,KAAO,oBAAE;EAAI;4CAE7B,aAAiB,QAAe,QAAY,YACzD,UAAc,QAAwB,OAAY;AAC7C,eAAO;AACwB,IAA1C,aAAa,yBAAkB,UAAU;AACH,IAAtC,WAAW,yBAAkB,QAAQ;AACH,IAAlC,SAAS,yBAAkB,MAAM;AAER,gCAA6B,0BACtC,AAAkB,aAA9B,WAAW,IAAG,SAAI,UAAU,iBAAI,AAAO,MAAD,MAC1B,AAAkB,aAA9B,WAAW,IAAG,SAAI,UAAU,iBAAI,AAAO,MAAD;AACjB,8BAA2B,0BACpC,AAAgB,aAA5B,WAAW,IAAG,SAAI,QAAQ,iBAAI,AAAO,MAAD,MACxB,AAAgB,aAA5B,WAAW,IAAG,SAAI,QAAQ,iBAAI,AAAO,MAAD;AAEf,2BAAwB,0BACtC,AAAkB,aAAzB,MAAM,IAAG,SAAI,UAAU,iBAAI,AAAO,MAAD,MAC1B,AAAkB,aAAzB,MAAM,IAAG,SAAI,UAAU,iBAAI,AAAO,MAAD;AAErC,kBAAI,SAAS;AACkD,MAA7D,AAAK,IAAD,QAAQ,AAAsB,qBAAD,IAAI,AAAsB,qBAAD;;AAGjD,uBACP,AAAuC,UAA7B,IAAI,QAAQ,QAAQ,IAAI,QAAiB,AAAa,aAAtB,QAAQ,iBAAG,UAAU,MAAI,AAAE;AAE/D,wBAAwC,CAAd,aAAT,QAAQ,iBAAG,UAAU,KAAI;AAED,IAAnD,AAAK,IAAD,QAAQ,AAAiB,gBAAD,IAAI,AAAiB,gBAAD;AAEhD,QAAI,YAAY;AAEuB,MADrC,AAAK,IAAD,OAAY,gCAAmB,MAAM,UAAU,MAAM,IAAG,UAAU,EAClE,AAAc,aAAD,gBAAG,UAAU,GAAE;AAEG,MADnC,AAAK,IAAD,OAAY,gCAAmB,MAAM,UAAU,MAAM,IAAG,aAAa,EAC5D,aAAT,QAAQ,IAAG,aAAa,EAAE;;AAGb,MADjB,AAAK,IAAD,OAAY,gCAAmB,MAAM,UAAU,MAAM,IAAG,UAAU,EAClE,MAAM,EAAE;;AAG2C,IAAzD,AAAK,IAAD,QAAQ,AAAoB,mBAAD,IAAI,AAAoB,mBAAD;AAEtD,QAAI,YAAY;AAEqB,MADnC,AAAK,IAAD,OAAY,gCAAmB,MAAM,UAAU,WAAW,IAAG,QAAQ,EACrE,AAAc,aAAD,gBAAG,QAAQ,GAAE;AAEsB,MADpD,AAAK,IAAD,OAAY,gCAAmB,MAAM,UAAU,WAAW,IAC1D,aAAa,EAAa,aAAX,UAAU,IAAG,aAAa,EAAE;;AAGf,MADhC,AAAK,IAAD,OAAY,gCAAmB,MAAM,UAAU,WAAW,IAAG,QAAQ,EAC1D,aAAX,UAAU,iBAAG,QAAQ,GAAE;;AAGsB,IAAnD,AAAK,IAAD,QAAQ,AAAiB,gBAAD,IAAI,AAAiB,gBAAD;AAEhD,UAAO,KAAI;EACb;sEAEkC,aAAiB,aAAoB,QAC/D,YAAgB,UAAc,QAAoB;AAC7C,eAAO;AAEX;AACH;AAAe;AACnB,QAAgB,YAAZ,WAAW,EAAgB,kCACf,YAAZ,WAAW,EAAgB;AAE0C,MADvE,WACI,sBAAe,UAAU,EAA8B,CAAf,aAAZ,WAAW,iBAAG,WAAW,KAAI,GAAG,MAAM;AAEhC,MAAtC,gBAAgB,yBAAkB;AAEkB,MAApD,cAA4B,aAAd,aAAa,iBAAG,yBAAkB;AAMhC,MAJhB,AAAK,IAAD,QACK,gCACO,QAAQ,UAAsC,AAAM,CAArB,aAAZ,WAAW,iBAAG,WAAW,aAAU,KAClE,aAAa,EACb,WAAW;;AAI2D,IAD5E,AAAK,IAAD,QAAa,gCAAmB,MAAM,UAAU,WAAW,IAC3D,yBAAkB,UAAU,GAAG,yBAA2B,aAAT,QAAQ,iBAAG,UAAU;AAE1E,QAAgB,YAAZ,WAAW,EAAgB,gCACf,YAAZ,WAAW,EAAgB;AAEwC,MADrE,WACI,sBAAe,QAAQ,EAA8B,CAAf,aAAZ,WAAW,iBAAG,WAAW,KAAI,GAAG,MAAM;AAErB,MAA/C,gBAAgB,yBAA2B,aAAT,QAAQ,IAAG;AAEO,MAApD,cAA4B,aAAd,aAAa,iBAAG,yBAAkB;AAOtC,MALV,AAAK,IAAD,OACK,gCACO,QAAQ,UAAsC,AAAM,CAArB,aAAZ,WAAW,iBAAG,WAAW,aAAU,KAClE,aAAa,EACb,WAAW,EACX;;AAOI,IAJV,AAAK,IAAD,OACK,gCAAmB,MAAM,UAAU,WAAW,IACnD,yBAAkB,QAAQ,GACI,aAA9B,yBAAkB,UAAU,kBAAI,yBAAkB,QAAQ,IAC1D;AAEJ,UAAO,KAAI;EACb;oDAEwC,OAAc;AAC5C;AAER,aAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAM,AAAa,AAAc,KAA5B,wCAAoC,IAAA,AAAC,CAAA;AACrB,mBACnC,AAAM,AAAa,AAAa,KAA3B,oCAA4B,CAAC;AACtC,eAAa,SAAU,AAAO,OAAD;AACjB,0BAA0B,aAAZ,AAAS,QAAD,oBAAM,AAAO,AAAO,MAAR;AAClC,0BAA0B,aAAZ,AAAS,QAAD,oBAAM,AAAO,AAAO,MAAR;AACxC,uBACoD,CAAnD,AAAgC,WAA1B,WAAW,EAAE,WAAW,kCAAwB,AAAE;AACzD,8BAA+B,aAAb,AAAO,MAAD,uBAAS,yBAAkB,CAAC;AACpD,4BAA2B,aAAX,AAAO,MAAD,qBAAO,yBAAkB,CAAC;AACpD,YAAsB,AAAM,aAAtB,AAAO,MAAD,aAAY,KAAM,OAA2B,AAAM,aAAxB,AAAO,MAAD,eAAc,KAAM;AACA,UAA/D,gBAAgB,yBAAyC,CAAN,aAAhB,AAAO,MAAD,aAAY,aAAM;AACQ,UAAnE,kBAAkB,yBAA2C,CAAN,aAAlB,AAAO,MAAD,eAAc,aAAM;cAC1D,KAAqB,AAAM,aAAtB,AAAO,MAAD,aAAY,KAAM;AACkC,UAApE,WAAW,AAAS,QAAD,gBAAG,eAAe,IAAG,QAAQ,GAAG,AAAE,AAAK,wBAAE,QAAQ;;AAEtE,YAAI,AAAS,QAAD,iBAAI,eAAe,KAAI,AAAS,QAAD,iBAAI,aAAa;AAChD,mCACN,UAAK,AAA0B,SAAtB,AAAY,WAAD,UAAQ,KAAK,SAAI,AAAY,WAAD,UAAQ;AAC5D,cAAI,AAAmB,kBAAD,iBAAI,AAAO,MAAD,iBAC5B,AAAmB,kBAAD,iBAAI,AAAO,MAAD;AACV,YAApB,cAAc,MAAM;;;;;AAK5B,UAAO,YAAW;EACpB;wCAGsB,QAAsB,OAAY;;AAC1C,gBAAQ;AACpB,QAAI,AAAM,KAAD,SAAS;AAGgC,MAFhD,AAAM,KAAD,SAAoB,YAAX,AAAM,KAAD,OAAgB,8BAC7B,AAAM,KAAD,QACL,AAAM,AAAK,KAAN,mBAAgC,KAAd,AAAM,KAAD,gBAAC,OAAW;AACd,MAAhC,AAAM,KAAD,SAAuB;AACA,MAA5B,AAAO,MAAD,UAAU,IAAI,EAAE,KAAK;;AAE7B,QAAI,AAAM,KAAD,gBAAgB,QACrB,AAAM,KAAD,gBAAgB,QACH,aAAlB,AAAM,KAAD,gBAAe;AACS,MAA/B,AAAM,KAAD,SAAS,AAAM,KAAD;AACkB,MAArC,AAAM,KAAD,eAAe,AAAM,KAAD;AACS,MAAlC,AAAM,KAAD,SAAuB;AACA,MAA5B,AAAO,MAAD,UAAU,IAAI,EAAE,KAAK;;EAE/B;kDAE0B,QAAY,QAAe;AACjB,IAAlC,SAAS,yBAAkB,MAAM;AACjC,UAAO,mBACO,aAAV,AAAO,MAAD,OAAM,AAAY,SAAR,MAAM,iBAAI,MAAM,GAAY,aAAV,AAAO,MAAD,OAAM,AAAY,SAAR,MAAM,iBAAI,MAAM;EACxE;0EAGoB,OAAuB;AACzC,QAAI,AAAM,AAAO,AAAO,KAAf,oBAAkB,AAAS,AAAO,QAAR;AACjC,eAAS,cAAc,GACnB,AAAY,WAAD,gBAAG,AAAM,AAAO,KAAR,mBACnB,cAAA,AAAW,WAAA;AACkC,QAA/C,yBAAkB,KAAK,EAAE,QAAQ,EAAE,WAAW;;;AAKhB,MADhC,AAAM,AAAO,KAAR,kBAAgB,QAAkC,UACnD,AAAO,MAAD,kBAAiB;;EAE/B;wDAGoB,OAAuB,UAAc;;AAChB,iBAAS,AAAM,AAAM,KAAP,eAAQ,WAAW;AACjC,0BACnC,AAAS,AAAM,QAAP,eAAQ,WAAW;AAC/B,cAAI,AAAO,MAAD,wBAAC,OAAS,iBAAM,AAAgB,eAAD,yBAAC,OAAS,mBAC/C,AAAO,MAAD,0BAAC,OAAS,oBAAM,AAAgB,eAAD,0BAAC,OAAS,YAC/C,AAAO,MAAD,gBAAgB,AAAgB,eAAD,gBACrC,AAAO,MAAD,SAAS,AAAgB,eAAD,iBAC9B,AAAO,MAAD,6BAAC,OAAa,uBAAS,AAAgB,eAAD,6BAAC,OAAa,eAC1D,AAAO,MAAD,yBAAwB,AAAgB,eAAD,yBAC7C,AAAO,MAAD,oBAAmB,AAAgB,eAAD,oBACxC,AAAO,MAAD,YAAW,AAAgB,eAAD,YAChC,AAAO,MAAD,iBAAgB,AAAgB,eAAD,yBACrC,AAAO,MAAD,+BAAC,OAAa,0BAAU,AAAgB,eAAD,+BAAC,OAAa,kBAC3D,AAAO,AAAmB,MAApB,mCACF,AAAgB,AAAmB,eAApB,2CACnB,AAAO,AAAmB,MAApB,gDAAoB,OAAa,uBACnC,AAAgB,AAAmB,eAApB,gDAAoB,OAAa,uBACpD,AAAO,AAAmB,MAApB,0CAAoB,OAAO,uBAC7B,AAAgB,AAAmB,eAApB,0CAAoB,OAAO,4BAC9C,AAAO,AAAmB,MAApB,0BACF,AAAgB,AAAmB,eAApB,sCACnB,AAAO,MAAD,6BAAC,OAAY,4BAAU,AAAgB,eAAD,6BAAC,OAAY,gCACzD,AAAO,AAAkB,MAAnB,8BACF,AAAgB,AAAkB,eAAnB,0CACnB,AAAO,AAAkB,MAAnB,0CAAmB,OAAO,yBAC5B,AAAgB,AAAkB,eAAnB,0CAAmB,OAAO,gBAC7C,AAAO,AAAkB,MAAnB,mCACF,AAAgB,AAAkB,eAAnB,mCACnB,AAAO,AAAkB,MAAnB,kCACF,AAAgB,AAAkB,eAAnB,2CACnB,AAAO,AAAkB,MAAnB,gDAAmB,OAAa,yBAClC,AAAgB,AAAkB,eAAnB,gDAAmB,OAAa,kCACnD,AAAO,AAAkB,MAAnB,8CAAmB,OAAW,8BAAX,OAAkB,kCACvC,AAAgB,AAAkB,eAAnB,8CAAmB,OAAW,8BAAX,OAAkB,sCACxD,AAAO,AAAkB,MAAnB,8CAAmB,OAAW,4BAChC,AAAgB,AAAkB,eAAnB,8CAAmB,OAAW,+BACjD,AAAO,AAAkB,MAAnB,8CAAmB,OAAW,4BAChC,AAAgB,AAAkB,eAAnB,8CAAmB,OAAW,4BACjD,AAAO,AAAkB,MAAnB,8CAAmB,OAAW,8BAChC,AAAgB,AAAkB,eAAnB,8CAAmB,OAAW,2CACjD,AAAO,AAAkB,MAAnB,8CAAmB,OAAW,2BAChC,AAAgB,AAAkB,eAAnB,8CAAmB,OAAW,kCACjD,AAAO,AAAkB,MAAnB,yCACF,AAAgB,AAAkB,eAAnB,yDACnB,AAAO,AAAkB,MAAnB,kCACF,AAAgB,AAAkB,eAAnB,8CACnB,AAAO,AAAkB,AAAsB,MAAzC,gEAAyC,OAAO,yBAClD,AACK,AAAkB,AAAsB,eAD9B,gEAC8B,OAAO,gBACxD,AAAO,AAAkB,AAAsB,MAAzC,kDACF,AAAgB,AAAkB,AAAsB,eAAzC,kDACnB,AAAO,AAAkB,AAAsB,MAAzC,mDACF,AAAgB,AAAkB,AAAsB,eAAzC,gEACnB,AAAO,AAAkB,AAAsB,MAAzC,+CACF,AAAgB,AAAkB,AAAsB,eAAzC,+DACnB,AAAO,MAAD,eAAiB,AAAgB,eAAD,+BACtC,AAAO,MAAD,eAAiB,AAAgB,eAAD,+BACtC,AAAO,MAAD,gBAAkB,AAAgB,eAAD;AACd,MAA3B,AAAO,MAAD,kBAAiB;;AAEK,MAA5B,AAAO,MAAD,kBAAiB;;EAE3B;4DAE4B,aAAiB,aAAiB;AAClD,qBAAyC,CAAf,aAAZ,WAAW,iBAAG,WAAW,KAAI;AAE3C,wBAAgB,AAAE,AAAK,wBAAE,UAAU;AAEnC,kBAAsC,CAAf,aAAZ,WAAW,iBAAG,WAAW;AAEpC,oBAAc,AAAQ,AAAK,AAAiB,OAAvB,GAAG,IAAK,aAAa,GAAI;AAExD,UAAQ,AAAU,AAAO,UAAR,GAAG,MAAO;EAC7B;4DF3QgC;AACxB;AACI,mBAC4D,CAAR,CAA9C,AAAM,AAAoB,aAApC,AAAM,KAAD,QAAO,MAAkB,aAAZ,AAAM,KAAD,UAAS,MAAiB,aAAX,AAAM,KAAD,SAAQ,OAAO;AACD,IAA/D,kBAAkB,AAAS,QAAD,IAAI,MAAa,uBAAe;AAC1D,UAAO,gBAAe;EACxB;wDAGsC,QAAY;AAClC,iBAAS,AAAO,MAAD;AACf,iBAAS,AAAO,MAAD;AACf,eAAa,WAAN,MAAM,GAAC,UAAU;AACxB,eAAQ,AAAO,AAAY,AACG,MADhB,0BAAsB,YAC1C,AAAO,AAAY,MAAb,0BAAsB,WAC5B,AAAO,AAAY,MAAb,mBAAgB,WACxB,OACM,WAAN,MAAM,GAAC,UAAU;AAEY,gBAC/B,mCAA6B,IAAI,EAAE,IAAI;AAC3C,QAAI,AAAO,AAAY,MAAb,0BAAsB,YAC5B,AAAO,AAAY,MAAb,0BAAsB,WAC5B,AAAO,AAAY,MAAb,mBAAgB;AACV,sBAAY,AAAO,MAAD;AAClB,qBAAW,AAAO,MAAD;AACG,MAAlC,AAAM,KAAD,QAAiB,WAAT,SAAS,GAAC,UAAU;AACD,MAAhC,AAAM,KAAD,OAAe,WAAR,QAAQ,GAAC,UAAU;;AAEjC,QAAW,+BAAP,MAAM;AACR,UAAI,AAAO,AAAY,MAAb,mBAAgB,mBACtB,AAAO,AAAY,MAAb,mBAAgB;AACV,wBAAY,AAAO,MAAD;AAClB,yBAAa,AAAO,MAAD;AACC,QAAlC,AAAM,KAAD,QAAiB,WAAT,SAAS,GAAC,UAAU;AACG,QAApC,AAAM,KAAD,SAAmB,WAAV,UAAU,GAAC,UAAU;;;AAGvC,UAAO,MAAK;EACd;;;QAGoB;QACV;QACC;QACG;QACH;QACI;QACL;QACD;AACP,UAAO,uCACE,AAAU,SAAD,IAAI,OACd,AAAU,AAAc,SAAf,UAAU,SACZ,AAAmB,kBAAD,IAAI,OAAO,OAAO,WAAC,kBAAkB,KAC1D,AAAU,SAAD,SACT,SAAS,GACb,SAAS,cAEX,AAAU,SAAD,IAAI,QAA4B,KAArB,AAAU,SAAD,mBAAC,OAAc,UAAU,SAAG,UAAU,YAC7D,AAAU,SAAD,IAAI,QAA0B,MAAnB,AAAU,SAAD,kBAAC,OAAY,QAAQ,UAAG,QAAQ,aAC5D,AAAU,SAAD,IAAI,QAA2B,OAApB,AAAU,SAAD,oBAAC,OAAa,SAAS,WAAG,SAAS,cAEvE,AAAU,SAAD,IAAI,QAA4B,OAArB,AAAU,SAAD,qBAAC,OAAc,UAAU,WAAG,UAAU;EAE3E;8CAGY,OAAc,aAA4B;AAC/B,sDAA8B,WAAP,WAAN,KAAK;AACpC;AAAc;AAAa;AAAa;AACxC;AACP,mBAAuB,WAAb,WAAN,KAAK,oDAA+C,WAAP,WAAN,KAAK;AAC4B,MAA1E,cAAoC,aAAtB,AAAY,WAAD,2CAA2C,WAAX,WAAb,WAAN,KAAK;AAC4B,MAAvE,aAAkC,aAArB,AAAY,WAAD,0CAA0C,WAAX,WAAb,WAAN,KAAK;AAKmB,MAJzC,UAAb,WAAN,KAAK,qCACe,AAAyB,YAAxC,cAAc,EAAmB,iCACX,YAAf,cAAc,EAAmB,6BACtB,aAAZ,WAAW,iCAAiC,WAAX,WAAb,WAAN,KAAK,8CACR,aAAX,UAAU,iCAAiC,WAAX,WAAb,WAAN,KAAK;;AAE/B,oBAAwB,WAAb,WAAN,KAAK;AAI0B,MAHlC,UAAU,oCACC,WAAW,SACX,AAAY,WAAD,mBACV,AAAY,WAAD;;AAE4B,qBAAnD,mBAA6C,WAAX,WAAb,WAAN,KAAK;AAC6B,oBAAjD,mBAA4C,WAAX,WAAb,WAAN,KAAK;AAC6C,oBAAhE,mBAAkD,WAAP,WAAV,WAAb,WAAN,KAAK,gDAAiC,YAAY;AACH,mBAA7D,mBAAgD,WAAN,WAAV,WAAb,WAAN,KAAK,+CAAgC,WAAW;AAChD,+BACT,oCAAqB,gDAAgC,KAAK;AACjD,yBAAe,qCAChB,YAAY,SACb,WAAW,cACN,6DAAkC,WAAP,WAAN,KAAK,2CAC/B,wCAAwB,KAAK;AACxC,cAAQ,cAAc;;;;AAWF,UARhB,UAAU,8BACN,KAAK,EACL,WAAW,EACX,WAAW,EACX,YAAY,EACZ,kBAAkB,EAClB,YAAY,EACZ,WAAW,EACX,WAAW;AACf;;;;;AAWe,UARf,UAAU,8BACN,KAAK,EACL,WAAW,EACX,WAAW,EACX,YAAY,EACZ,kBAAkB,EAClB,YAAY,EACZ,WAAW,EACX,UAAU;AACd;;;;AAEA;;;;AAGN,UAAO,QAAO;EAChB;kEAGY,OACD,aACQ,aACR,cACA,oBACA,cACA,aACA;AACF;AAGI,sBAAoB,AACH,0BADH,KAAK,KACpB,yBAAN,KAAK,KACC,wBAAN,KAAK;AACY,sDAA8B,WAAP,WAAN,KAAK;AAC9B,mDAAiD,WAAN,WAAV,WAAb,WAAN,KAAK,+CAAgC,WAAW,MAC7C,YAAV,WAAP,WAAN,KAAK,2BAAoC,8BACtC,MACwB,YAAV,WAAP,WAAN,KAAK,2BAAoC,gCACC,WAAJ,WAAN,WAAV,WAAb,WAAN,KAAK,+CAAgC,WACC,WAAN,WAAX,WAAb,WAAN,KAAK,gDAAiC,QACL,WAAN,WAAV,WAAb,WAAN,KAAK,+CAC2B,WAAX,WAAb,WAAN,KAAK,6CACf;AACW,iBAAyB,YAAf,cAAc,EAAmB,6BAC3C,oCACE,aAAX,UAAU,KAAI,WAAW,QAAa,OAAmB,KAAG,OACnD,oCAAS,UAAU,EAAc,aAAZ,WAAW,OAAkB,KAAG;AAcrE,IAbD,eAAe,oCACN,+BAAwB,sBAC7B,qCACY,MAAM,UACN,YAAY,SACb,WAAW,SACX,kBAAkB,6DAC7B,qCACY,MAAM,UACN,YAAY,SACb,WAAW,SACX,YAAY;AAG3B,QAAmB,YAAf,cAAc,EAAmB;AAe7B,MAdN,UAAU,qCACE,AAAY,WAAD,mBACZ,AAAY,WAAD,kBACX,+BACa,sBAChB,YAAY,EACZ,qCACqB,oCACf,WAAW,QAAa,KAAgB,aAAb,YAAY,QAAY,KAAG,cAClD,WAAW,4BACiB,WAAV,WAAb,WAAN,KAAK,iDACL,WAAW;;AAmBtB,MAdN,UAAU,qCACa,oCACf,WAAW,QAAa,KAAG,WAAW,QAAa,KAAG,KAAG,cACrD,AAAY,WAAD,mBACZ,AAAY,WAAD,kBACX,+BACa,sBAChB,qCACU,WAAW,4BACiB,WAAV,WAAb,WAAN,KAAK,iDACL,WAAW,6DAEpB,YAAY;;AAItB,UAAO,QAAO;EAChB;kEAGY,OACD,aACQ,aACR,cACA,oBACA,cACA,aACA;AACF;AAGI,sBAAoB,AACH,0BADH,KAAK,KACpB,yBAAN,KAAK,KACC,wBAAN,KAAK;AACY,sDAA8B,WAAP,WAAN,KAAK;AAC9B,kDAAiD,WAAP,WAAV,WAAb,WAAN,KAAK,gDAAiC,YAAY,MAC9C,YAAV,WAAP,WAAN,KAAK,2BAAoC,8BACtC,MACwB,YAAV,WAAP,WAAN,KAAK,2BAAoC,gCACE,WAAJ,WAAP,WAAV,WAAb,WAAN,KAAK,gDAAiC,WACC,WAAP,WAAX,WAAb,WAAN,KAAK,iDAAkC,QACL,WAAP,WAAV,WAAb,WAAN,KAAK,gDAC2B,WAAX,WAAb,WAAN,KAAK,8CACf;AACW,iBAAyB,YAAf,cAAc,EAAmB,8BAC3C,oCAAuB,IAAE,GAAG,SAAS,EAAE,KAAG,OAC1C,oCAAoB,aAAX,UAAU,OAAkB,SAAS,EAAE,KAAG;AAgBnE,IAfD,eAAe,oCACN,+BAAwB,sBAC7B,qCACU,MAAM,UACN,YAAY,SACb,WAAW,SACX,kBAAkB,6DAE3B,qCACU,MAAM,UACN,YAAY,SACb,WAAW,SACX,YAAY;AAIzB,QAAmB,YAAf,cAAc,EAAmB;AAkB7B,MAjBN,UAAU,qCACE,AAAY,WAAD,mBACZ,AAAY,WAAD,kBACX,+BACa,sBAChB,YAAY,EACZ,qCACqB,oCACH,aAAZ,WAAW,KAAI,WAAW,QAAa,IAC3B,mBAAZ,WAAW,GAAgB,WAAP,WAAN,KAAK,sBAAc,MACjC,KACA,iCACiC,WAAV,WAAb,WAAN,KAAK,kDACN,UAAU,SACV,WAAW;;AAkBtB,MAbN,UAAU,qCACE,AAAY,WAAD,mBACZ,AAAY,WAAD,kBACX,+BACa,sBAChB,qCACqB,sCAAsB,mBAAZ,WAAW,GAAgB,WAAP,WAAN,KAAK,sBAAc,mCACzB,WAAV,WAAb,WAAN,KAAK,kDACN,UAAU,SACV,WAAW,6DAEpB,YAAY;;AAItB,UAAO,QAAO;EAChB;0EAmC0B,aAAqB,OAAc;AACtD,qBAAa;AACgB,6DACZ,WAAZ,WAAN,KAAK;AACT,kBAAI,AAAc,aAAD;AACf,eAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAc,aAAD,YAAS,IAAA,AAAC,CAAA;AACb,mBAAO,AAAa,aAAA,QAAC,CAAC;AAClD,YAAI,AAAY,AAAY,WAAb,gBAAgB,AAAK,IAAD,gBAC/B,AAAY,AAAW,WAAZ,eAAe,AAAK,IAAD;AAChC,cAAI,SAAS,KAAI;AACE,YAAjB,aAAa;AACY,YAAzB,AAAc,aAAD,YAAU,CAAC;;AAE1B;;;;AAIN,SAAK,UAAU;AACK,MAAlB,aAAa;AACb,UAAI,SAAS,KAAI;AACe,QAA9B,AAAc,aAAD,OAAK,WAAW;;;AAGjC,UAAO,WAAU;EACnB;0DAE6C,aAAqB;AAC3D,qBAAa;AACe,4DACX,WAAZ,WAAN,KAAK;AACT,kBAAI,AAAc,aAAD;AACf,eAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAc,aAAD,YAAS,IAAA,AAAC,CAAA;AACd,mBAAO,AAAa,aAAA,QAAC,CAAC;AACjD,YAAI,AAAY,AAAY,WAAb,gBAAgB,AAAK,IAAD;AAChB,UAAjB,aAAa;AACY,UAAzB,AAAc,aAAD,YAAU,CAAC;AACxB;;;;AAIN,SAAK,UAAU;AACK,MAAlB,aAAa;AACiB,MAA9B,AAAc,aAAD,OAAK,WAAW;;EAEjC;4EAGyB,aAAqB;AACvC,qBAAa;AACe,4DACX,WAAZ,WAAN,KAAK;AACT,QAAI,AAAY,AAAU,WAAX,cAAc,mBACa,WAA1B,WAAN,WAAN,KAAK,sBAAQ,AAAY,WAAD;AAC1B,oBAAI,AAAc,aAAD;AACf,iBAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAc,aAAD,YAAS,IAAA,AAAC,CAAA;AACd,qBAAO,AAAa,aAAA,QAAC,CAAC;AACjD,cAAI,AAAY,WAAD,cAAc,QACzB,AAAY,AAAK,WAAN,SAAS,AAAK,IAAD,SACvB,AAAY,AAAY,WAAb,gBAAgB,AAAK,IAAD,gBAC5B,AAAY,AAAe,WAAhB,mBAAmB,AAAK,IAAD;AACvB,YAAjB,aAAa;AAEY,YAAzB,AAAc,aAAD,YAAU,CAAC;AACxB;gBACK,KAAI,AAAY,AAAU,WAAX,cAAc,QAChC,AAAY,AAAY,WAAb,gBAAgB,AAAK,IAAD,gBAC/B,AAAY,AAAK,WAAN,SAAS,AAAK,IAAD;AACT,YAAjB,aAAa;AAEY,YAAzB,AAAc,aAAD,YAAU,CAAC;AACxB;;;;AAIN,WAAK,UAAU;AACb,0BAA0B,WAAnB,AAAY,WAAD,mCACK,WAAZ,WAAN,KAAK;AACU,UAAlB,aAAa;AACb,cAAI,AAAY,WAAD,mBAAmB;AACuB,YAAjB,UAA1B,WAAN,WAAN,KAAK,sBAAQ,AAAY,WAAD,2BAA0B,AAAE,IAAE;AACC,YAAjB,UAA1B,WAAN,WAAN,KAAK,sBAAQ,AAAY,WAAD,2BAA0B,AAAE,IAAE;AACE,YAAlB,UAA1B,WAAN,WAAN,KAAK,sBAAQ,AAAY,WAAD,2BAA0B,AAAG,CAAF,IAAI;AACC,YAAlB,UAA1B,WAAN,WAAN,KAAK,sBAAQ,AAAY,WAAD,2BAA0B,AAAG,CAAF,IAAI;;AAE3B,UAA9B,AAAc,aAAD,OAAK,WAAW;;;;EAIrC;2CAEqB,MAAiB,SAAe;AAC9C,oBAAY;AACjB,QAAI,QAAQ,IAAI,QACG,aAAd,AAAS,QAAD,sBAAQ,AAAK,IAAD,UACF,aAAf,AAAS,QAAD,uBAAS,AAAK,IAAD,WACR,aAAb,AAAS,QAAD,qBAAO,AAAK,IAAD,SACH,aAAhB,AAAS,QAAD,wBAAU,AAAK,IAAD;AACX,MAAjB,YAAY;UACP,KAAI,QAAQ,IAAI;AACL,MAAhB,YAAY;;AAEd,aAAS,IAAI,GAAG,AAAE,CAAD,gBAAG,AAAQ,OAAD,YAAS,IAAA,AAAC,CAAA;AACxB,uBAAa,AAAO,OAAA,QAAC,CAAC;AACjC,UAAe,aAAV,AAAK,IAAD,SAAwB,aAAhB,AAAW,UAAD,sBAAQ,AAAW,UAAD,WAC3B,AAAa,aAAvB,AAAK,IAAD,sBAAQ,AAAK,IAAD,uBAAS,AAAW,UAAD,UAC7B,aAAT,AAAK,IAAD,QAAsB,aAAf,AAAW,UAAD,qBAAO,AAAW,UAAD,YAC1B,AAAc,aAAvB,AAAK,IAAD,qBAAO,AAAK,IAAD,wBAAU,AAAW,UAAD;AACzB,QAAhB,YAAY;AACZ;;;AAGJ,UAAO,UAAS;EAClB;gEAE8B,QAAY;AACpC;AAKmB,IAJvB,QAAQ,AAAO,MAAD,gBACH,kBAAS,AAAI,MACX,AAAwD,AACxD,kBADgB,AAAW,cAAlB,MAAM,eAAuB,gBAAO,MAAM,cAAO,MAAM,kBAEtE,AAAO,MAAD,UAAG,MAAM;AACtB,UAAO,MAAK;EACd;wDA+BiC;;AACxB;AACP,QAAiB,WAAN,WAAP,MAAM,uBAAe,mBAA0B,WAAL,WAAN,WAAP,MAAM;AACzB,mCAAqC,KAAN,WAAV,WAAN,WAAP,MAAM,0CAAiB,OACR,WAAZ,WAAZ,WAAP,MAAM;AACG,wCAAkC,WAAV,WAAN,WAAP,MAAM;AACjB,0CAAoC,WAAV,WAAN,WAAP,MAAM;AAChB,0CAAmC,WAAV,WAAN,WAAP,MAAM;AACjB,4CAAoC,WAAV,WAAN,WAAP,MAAM;AA8BnC,MA7BD,cAAc,qCACO,uDAAuB,WAAP,WAAP,MAAM,0CAA4B,WAAP,WAAP,MAAM,yCACpC,WAAP,WAAP,MAAM,2CAA6B,WAAP,WAAP,MAAM,iCACxB,qEAES,8DAC4B,MAAhB,WAAN,WAAP,MAAM,uCAAO,OACe,WAAZ,WAAZ,WAAP,MAAM,uEACK,+CACqB,OAAZ,WAAN,WAAP,MAAM,oCAAO,OACe,WAAZ,WAAZ,WAAP,MAAM,oFACU,WAAN,WAAP,MAAM,wCACd,qCAAkB,WAAN,WAAP,MAAM,8BACP,qCACI,KAAK,YACF,QAAQ,cACN,UAAU,aACX,SAAS,cACR,UAAU,qBACT,eACM,wCACF,0JACM,YAAV,WAAN,WAAP,MAAM,0BAAmC,8BACrC,8BACc,YAAV,WAAN,WAAP,MAAM,0BAAmC,6BAC5B,+BACc,YAAV,WAAN,WAAP,MAAM,0BAAmC,gCAC5B,gCACA;;AAGD,MAAzB,cAAc;;AAEhB,UAAO,YAAW;EACpB;0EAGgD;AACvC;AACY,oBAAoB;AACM,IAA1B,UAAZ,WAAP,MAAM,+BAAqC;AAC3C,mBAAkB,WAAP,WAAP,MAAM,8BAAmC,WAAP,WAAP,MAAM,qCAA6B;AAChE,eAAS,IAAI,GAAG,AAAE,CAAD,gCAAqC,WAAd,WAAb,WAAP,MAAM,gDAAoC,IAAA,AAAC,CAAA;AAC/C,qBAA0C,WAAb,WAAb,WAAP,MAAM,4CAA4B,CAAC;AAC1D,iBAAS,IAAI,GAAG,AAAE,CAAD,gCAAwB,WAAd,WAAP,MAAM,+BAAuB,IAAA,AAAC,CAAA;AAEkB,yBADlE,wBAA6B,WAAP,WAAP,MAAM,mCACO,WAAJ,WAAb,WAAP,MAAM,2BAAe,CAAC,UAAK,MAAM,EAAsB,WAAb,WAAP,MAAM,2BAAe,CAAC,IAAG,CAAC;AAQ1C,UAPvB,AAAU,SAAD,OAAK,0CACH,MAAM,QACP,uBACO,CAAC,cACF,CAAC,cACD,yDACG,YAAY,gBACb;;;;AAIxB,UAAO,UAAS;EAClB;4CAEqB,aAAiB,cAA+B;AACnE,UAAO,AAIc,aAJF,IAAI,QACnB,WAAW,IAAI,QACF,aAAb,YAAY,KAAI,KACH,aAAb,YAAY,iBAAG,AAAM,AAAO,KAAR,qBACR,aAAZ,WAAW,KAAI,KACH,aAAZ,WAAW,iBAAG,AAAM,AAAM,AAAe,AAAW,KAAjC,eAAQ,YAAY;EAC7C;kEhI9b2D,QAChD,QAAsB,OAAyB;AACrC;AACK,oBAAY,AAAO,MAAD;AACnC;AACM,yBAAiB,AAAU,SAAD,IAAI,OAAO,AAAU,SAAD,SAAS;AAChD;AACL;AACE,iCAA+B;AAChD,aAAS,aAAa,GAClB,AAAW,UAAD,gBAAG,AAAO,AAAc,MAAf,2BACnB,aAAA,AAAU,UAAA;AAC4B,MAAxC,QAAQ,AAAO,AAAa,MAAd,uBAAe,UAAU;AACvC,oBAAI,AAAM,KAAD;AACW,QAAlB,QAAQ,AAAM,KAAD;AACuB,QAApC,iBAAiB,AAAU,SAAD;AAC1B,YAAI,AAAM,KAAD,sBAAsB;AACQ,UAArC,gBAAgB;AACU,UAA1B,AAAc,aAAD,QAAQ,KAAK;AACc,UAAxC,AAAc,aAAD,aAAa,cAAc;AACX,UAA7B,AAAc,aAAD,UAAU,MAAM;AACkB,UAA/C,AAAc,aAAD,cAAc,AAAO,MAAD;AACI,UAArC,AAAc,aAAD,cAAc,UAAU;AACC,UAAtC,AAAM,KAAD,mBAAmB,aAAa;AACX,UAA1B,QAAQ,AAAc,aAAD;AACmB,UAAxC,iBAAiB,AAAc,aAAD;;AAIZ,QAFpB,iBAAiB,AAAM,AAAkB,KAAnB,sBAAsB,OACtC,8BAAuB,MAAM,EAAE,KAAK,EAAE,KAAK,IAC3C,cAAc;AACT,uBAAW,oBAAa,KAAK,EAAE,cAAc;AACxD,YAA4B,YAAxB,AAAU,SAAD,gBAAyC;AAYjC,UAXnB,qCACI,SAAS,EACT,KAAK,EACL,QAAQ,EACR,KAAK,EACL,MAAM,EACN,sBAAsB,EACtB,UAAU,EACV,KAAK,EACL,MAAM,EACN,cAAc,EACd,cAAc;;AAEmC,UAArD,AAAM,KAAD,kBAAyC;AAW3B,UAVnB,qCACI,MAAM,EACN,KAAK,EACL,KAAK,EACL,QAAQ,EACR,UAAU,EACV,MAAM,EACN,KAAK,EACL,cAAc,EACd,sBAAsB,EACtB,cAAc;;;;EAI1B;gFAGsB,WACC,OACd,UACS,OACP,QACI,wBACP,YACG,OACwB,QACxB,gBACQ;AACP,gBAAQ,AAAU,SAAD;AACpB;AACc,yBAAiB,AAAM,KAAD;AAEP,IAApC,gBAAgB,AAAM,KAAD;AAO0B,IAN/C,gBAAgB,kBACK,AACQ,aADzB,AAAc,aAAD,OACO,aAAf,AAAS,QAAD,UAAS,KACjB,AAAM,KAAD,KAAI,IAAI,IAAmB,aAAf,AAAS,QAAD,UAAS,IACtB,AACS,aAD1B,AAAc,aAAD,OACQ,aAAhB,AAAS,QAAD,WAAU,KAClB,AAAM,KAAD,KAAI,IAAI,IAAoB,aAAhB,AAAS,QAAD,WAAU;AAKH,IAJzC,AAAM,KAAD,aAAkB,qBACF,aAAjB,AAAc,aAAD,UACI,aAAjB,AAAc,aAAD,UACE,aAAf,AAAS,QAAD,UAAU,AAAE,OACJ,aAAhB,AAAS,QAAD,WAAW,AAAE;AACd,6BACP,kBAAW,AAAM,KAAD,YAAY,sBAAsB,EAAE,AAAM,KAAD;AAC7D,kBAAI,kBAAkB,KAAmB,YAAf,cAAc,EAAmB;AACrB,MAApC,AAAM,KAAD,2BAA2B;AACqB,MAArD,AAAM,KAAD,kBAAyC;AAE4B,MAD1E,qCAA8B,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EACpE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,sBAAsB,EAAE,cAAc;UACpE,KAAmB,YAAf,cAAc,EAAmB,0CACtC,kBAAkB,KAAmB,YAAf,cAAc,EAAmB,2CACvD,kBAAkB,KAAmB,YAAf,cAAc,EAAmB;AACP,MAApD,AAAM,KAAD,kBAAyC;AAa3B,MAZnB,wBACI,AAAM,KAAD,YACL,aAAa,EACb,KAAK,EACL,MACA,MAAM,EACN,MAAM,EACN,KAAK,EACL,UAAU,EACV,KAAK,EACL,cAAc,EACd,sBAAsB,EACtB,cAAc;;EAEtB;gFAGW,QACA,OACY,OACd,UACD,YAC2B,QACjB,OACC,WACJ,wBACJ;AACJ;AACA;AACE;AACU,iBAAS,AAAO,AAAkB,MAAnB;AACJ,oBACxB,AAAO,AAAkB,MAAnB;AAEY,IAAtB,gBAAgB;AACN,0BAEyC,AACN,aAHjB,uBACpB,AAAU,AAAO,SAAR,WAAW,OAAO,AAAU,SAAD,UAAU,MACR,aAAtC,AAAM,AAAY,AAAc,KAA3B,qCAAmC,MACP,aAArC,AAAO,AAAwB,MAAzB,mCAAiC;AAExB,kBAAU,AAAO,AAAa,AAAa,MAA3B,uBAAe,UAAU;AAC/C,qBAAa,kBACU,CAAjB,aAAd,AAAO,AAAI,OAAJ,QAAC,sBAAQ,AAAO,AAAI,OAAJ,QAAC,UAAS,GAAmC,CAAjB,aAAd,AAAO,AAAI,OAAJ,QAAC,sBAAQ,AAAO,AAAI,OAAJ,QAAC,UAAS;AAC9D,mBAAW,kBAC+B,aAAnD,AAAO,AAAa,AAAa,AAAe,MAA1C,uBAAe,UAAU,uBAAsB,eAAe,EACpC,CAAjB,aAAd,AAAO,AAAI,OAAJ,QAAC,sBAAQ,AAAO,AAAI,OAAJ,QAAC,UAAS;AACY,IAAlD,AAAc,aAAD,QAAQ,AAAW,UAAD,KAAK,AAAW,UAAD;AAC9C,QAAmB,YAAf,AAAU,SAAD,OAAuB;AACY,MAA9C,AAAc,aAAD,QAAQ,AAAS,QAAD,KAAK,AAAS,QAAD;;AAEJ,IAAxC,AAAM,KAAD,qBAA8B;AACnC,QAAmB,aAAf,AAAS,QAAD,UAAS;AACiB,MAApC,QAAQ,AAAM,AAAgB,KAAjB,aAAW,GAAG,KAAK;AACS,MAAzC,WAAW,oBAAa,KAAK,EAAE,SAAS;;AAGJ,IADtC,OAAO,yBAAkB,AAAM,KAAD,oBAAoB,AAAU,SAAD,OAAO,MAAM,EACpE,aAAa,EAAE,QAAQ,EAAE,QAAQ;AAC1B,wBAAgB,AAAM,AAAY,KAAb;AACV,IAAtB,AAAM,KAAD,aAAa,IAAI;AAE+B,IADrD,gBAAgB,kBAAiB,aAAV,AAAK,IAAD,sBAAQ,AAAO,MAAD,QAC5B,AAAkB,aAA3B,AAAK,IAAD,QAAmB,aAAZ,AAAK,IAAD,WAAU,IAAoB,aAAhB,AAAS,QAAD,WAAU;AAEnD,QAAI,AAAO,AAAkB,AAAQ,MAA3B,8BAA8B;AACjC;AACL,oBAAI,AAAuB,sBAAD;AAEqC,QAD7D,0BACI,AAAsB,sBAAA,QAA+B,aAA9B,AAAuB,sBAAD,aAAU;;AAE7D,UAAc,aAAV,AAAK,IAAD,sBAAQ,AAAc,aAAD,UACd,aAAX,AAAK,IAAD,wBAAU,AAAc,aAAD,WAClB,aAAT,AAAK,IAAD,qBAAO,AAAc,aAAD,SACZ,aAAZ,AAAK,IAAD,wBAAU,AAAc,aAAD;AAC7B,uBAAK,+BAAwB,IAAI,EAAE,uBAAuB;AAarC,UAZnB,wBACI,IAAI,EACJ,aAAa,EACb,KAAK,EACL,aAAa,EACb,MAAM,EACN,MAAM,EACN,KAAK,EACL,UAAU,EACV,KAAK,EACL,SAAS,EACT,sBAAsB,EACtB,cAAc;;AAElB,cAAI,UAAU,KAAI;AAGL,uCACP,AAAsB,sBAAA,QAA+B,aAA9B,AAAuB,sBAAD,aAAU;AAK3C,YAJhB,OAAY,qBACR,AAAK,IAAD,OACqB,AAAU,aAAnC,AAAqB,oBAAD,yBAAiB,AAAK,IAAD,UACzC,AAAK,IAAD,QACJ,AAAK,IAAD;AAOoB,YAN5B,gBAAgB,kBACF,aAAV,AAAK,IAAD,sBAAQ,AAAO,MAAD,QACO,AACb,AACI,AACI,aAHpB,AAAqB,oBAAD,yBAEhB,AAAK,IAAD,WACQ,aAAZ,AAAK,IAAD,WAAU,IACE,aAAhB,AAAS,QAAD,WAAU;AACJ,YAAtB,gBAAgB;AACkC,YAAlD,AAAc,aAAD,QAAQ,AAAW,UAAD,KAAK,AAAW,UAAD;AAC9C,gBAAc,AAAuB,aAAjC,AAAK,IAAD,4BAAgC,AAAW,UAAD,MAChD,AAAc,AACsC,aADvC,QACC,aAAV,AAAK,IAAD,aAA8B,AAAW,UAAD;AACS,YAA3D,AAAc,aAAD,QAAQ,AAAK,IAAD,OAAgB,aAAT,AAAK,IAAD,QAAmB,aAAZ,AAAK,IAAD,WAAU;;AAE3D,cAAa,aAAT,AAAK,IAAD,SAA0B,aAAlB,AAAc,aAAD;AAaR,YAZnB,wBACI,IAAI,EACJ,aAAa,EACb,KAAK,EACL,aAAa,EACb,MAAM,EACN,MAAM,EACN,KAAK,EACL,UAAU,EACV,KAAK,EACL,SAAS,EACT,sBAAsB,EACtB,cAAc;;;;;EAK5B;oEAEkC,MAAW;AACtC,sBAAc;AAEnB,QAAI,YAAY,IAAI,QAAqB,AAAW,aAAvB,AAAK,IAAD,4BAAqB,AAAa,YAAD;AAC9C,MAAlB,cAAc;;AAEhB,UAAO,YAAW;EACpB;sDAGS,WACE,UACA,OACF,eACE,QACwB,QACZ,OACf,YACU,OACC,WACJ,wBACJ;;AACH;AACkB,oBAAY,AAAO,MAAD;AACd,oBAAY,AAAU,SAAD;AACjD,QAAI,aAAa,IAAI;AAWkB,MAVrC,AAAO,MAAD,UACF,aAAa,QACb,gBACI,WAAwB,aAAhB,AAAU,SAAD,WAAU,IAChB,8BACS,KAAhB,AAAU,SAAD,cAAC,OACR,AAAM,AAAK,KAAN,kBAAkB,WAAC,AAAM,AAAY,KAAb,mCACvB,cAAc,GACd,AAAU,SAAD,iBACrB,iBAAc,AAAU,SAAD,QACvB,WAAsB;;AAGhC,QAAI,AAAU,AAAQ,SAAT,YAAY;AACV,wBAAc,AAAU,SAAD;AACxB,sBAAY,AAAU,AAAM,SAAP,UAAU,OACrC,AAAU,SAAD,mBACR,AAAU,SAAD,mBAAkB,AAAM,KAAD,QAAQ,AAAU,SAAD;AAC5C,yBAC6C,MAArD,AAAU,AAAY,SAAb,yBAAyB,AAAU,SAAD,kBAArB,OAAkC,AAAM,KAAD;AACjE,UAAI,WAAW,IAAI,QAAoB,aAAZ,WAAW,IAAG;AAMV,QAL7B,oBAAY,gBACR,aAAQ,AAAY,WAAD,aAAa,WAAC,AAAM,AAAY,KAAb,mCAClC,cAAc,GACd,AAAU,SAAD,WACb,aAAsB,yBACtB,mBAAc,WAAW;AAMlB,QALX,sBACI,SAAS,EACJ,qBACD,AAAU,SAAD,OAAO,AAAU,SAAD,MAAM,AAAU,SAAD,QAAQ,AAAU,SAAD,UAC7D,AAAU,SAAD,eACT,MAAM;;AAEZ,UAAI,SAAS,IAAI;AAYJ,QAXX,8BACI,gBACI,aAAQ,AAAU,SAAD,aAAa,WAAC,AAAM,AAAY,KAAb,mCAChB,AAA2B,aAA1C,cAAc,KAAI,AAAE,iBAAE,AAAU,SAAD,aAAa,IACzC,MACe,aAAf,cAAc,KAAI,AAAE,iBAAE,AAAU,SAAD,aACnC,AAAU,SAAD,WACb,aAAsB,8BACrB,qBACD,AAAU,SAAD,OAAO,AAAU,SAAD,MAAM,AAAU,SAAD,QAAQ,AAAU,SAAD,UAC7D,AAAU,SAAD,eACT,MAAM;;AAKgB,MAH5B,AAAU,SAAD,SAA2C,CAAjB,OAAhB,AAAU,SAAD,gBAAC,OAAgB,yCACzC,WAAC,AAAM,AAAY,KAAb,mCACA,cAAc,GACd,AAAU,SAAD;AAC2C,MAA9D,iBAAU,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,AAAU,SAAD;AAClB,MAArC,AAAuB,sBAAD,OAAK,SAAS;;EAExC;oEJxT6D,QAClD,QAAuB,OAAyB;AACtC;AACK,oBAAY,AAAO,MAAD;AACnC;AACM,yBAAiB,AAAU,SAAD,IAAI,OAAO,AAAU,SAAD,SAAS;AAChD;AACL;AACE,iCAA+B;AAChD,aAAS,aAAa,GAClB,AAAW,UAAD,gBAAG,AAAO,AAAc,MAAf,2BACnB,aAAA,AAAU,UAAA;AAC4B,MAAxC,QAAQ,AAAO,AAAa,MAAd,uBAAe,UAAU;AACvC,oBAAI,AAAM,KAAD;AACW,QAAlB,QAAQ,AAAM,KAAD;AACuB,QAApC,iBAAiB,AAAU,SAAD;AAC1B,YAAI,AAAM,KAAD,sBAAsB;AACQ,UAArC,gBAAgB;AACU,UAA1B,AAAc,aAAD,QAAQ,KAAK;AACc,UAAxC,AAAc,aAAD,aAAa,cAAc;AACX,UAA7B,AAAc,aAAD,UAAU,MAAM;AACkB,UAA/C,AAAc,aAAD,cAAc,AAAO,MAAD;AACI,UAArC,AAAc,aAAD,cAAc,UAAU;AACC,UAAtC,AAAM,KAAD,mBAAmB,aAAa;AACX,UAA1B,QAAQ,AAAc,aAAD;AACmB,UAAxC,iBAAiB,AAAc,aAAD;;AAIZ,QAFpB,iBAAiB,AAAM,AAAkB,KAAnB,sBAAsB,OACtC,8BAAuB,MAAM,EAAE,KAAK,EAAE,KAAK,IAC3C,cAAc;AACT,uBAAW,oBAAa,KAAK,EAAE,cAAc;AAExD,YAA4B,YAAxB,AAAU,SAAD,gBAAyC;AAYjC,UAXnB,sCACI,SAAS,EACT,KAAK,EACL,QAAQ,EACR,KAAK,EACL,MAAM,EACN,sBAAsB,EACtB,UAAU,EACV,KAAK,EACL,MAAM,EACN,cAAc,EACd,cAAc;;AAEmC,UAArD,AAAM,KAAD,kBAAyC;AAW3B,UAVnB,sCACI,MAAM,EACN,KAAK,EACL,KAAK,EACL,QAAQ,EACR,UAAU,EACV,MAAM,EACN,KAAK,EACL,cAAc,EACd,sBAAsB,EACtB,cAAc;;;;EAI1B;kFAGsB,WACC,OACd,UACU,OACR,QACI,wBACP,YACG,OACyB,QACzB,gBACQ;AACP,gBAAQ,AAAU,SAAD;AACpB;AACc,yBAAiB,AAAM,KAAD;AAEP,IAApC,gBAAgB,AAAM,KAAD;AAO0B,IAN/C,gBAAgB,kBACK,AACQ,aADzB,AAAc,aAAD,OACO,aAAf,AAAS,QAAD,UAAS,KACjB,AAAM,KAAD,KAAI,IAAI,IAAmB,aAAf,AAAS,QAAD,UAAS,IACtB,AACS,aAD1B,AAAc,aAAD,OACQ,aAAhB,AAAS,QAAD,WAAU,KAClB,AAAM,KAAD,KAAI,IAAI,IAAoB,aAAhB,AAAS,QAAD,WAAU;AAKH,IAJzC,AAAM,KAAD,aAAkB,qBACF,aAAjB,AAAc,aAAD,UACI,aAAjB,AAAc,aAAD,UACE,aAAf,AAAS,QAAD,UAAU,AAAE,OACJ,aAAhB,AAAS,QAAD,WAAW,AAAE;AACd,6BACP,kBAAW,AAAM,KAAD,YAAY,sBAAsB,EAAE,AAAM,KAAD;AAC7D,kBAAI,kBAAkB,KAAmB,YAAf,cAAc,EAAmB;AACrB,MAApC,AAAM,KAAD,2BAA2B;AACqB,MAArD,AAAM,KAAD,kBAAyC;AAE4B,MAD1E,sCAA+B,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EACrE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,sBAAsB,EAAE,cAAc;UACpE,KAAmB,YAAf,cAAc,EAAmB,0CACtC,kBAAkB,KAAmB,YAAf,cAAc,EAAmB,2CACvD,kBAAkB,KAAmB,YAAf,cAAc,EAAmB;AACP,MAApD,AAAM,KAAD,kBAAyC;AAa3B,MAZnB,yBACI,AAAM,KAAD,YACL,aAAa,EACb,KAAK,EACL,MACA,MAAM,EACN,MAAM,EACN,KAAK,EACL,UAAU,EACV,KAAK,EACL,cAAc,EACd,sBAAsB,EACtB,cAAc;;EAEtB;kFAGW,QACA,OACY,OACd,UACD,YAC4B,QACjB,OACA,WACJ,wBACJ;AACJ;AACA;AACE;AACU,iBAAS,AAAO,AAAkB,MAAnB;AACJ,oBACxB,AAAO,AAAkB,MAAnB;AAEY,IAAtB,gBAAgB;AACN,0BAEyC,AACN,aAHjB,uBACpB,AAAU,AAAO,SAAR,WAAW,OAAO,AAAU,SAAD,UAAU,MACR,aAAtC,AAAM,AAAY,AAAc,KAA3B,qCAAmC,MACP,aAArC,AAAO,AAAwB,MAAzB,mCAAiC;AAE9B,qBAAa,kBACtB,AAAO,AAAa,AAAa,AAAO,MAAlC,uBAAe,UAAU,gBACa,aAA5C,AAAO,AAAa,AAAa,AAAO,MAAlC,uBAAe,UAAU,gBACoB,aAA/C,AAAO,AAAa,AAAa,AAAO,MAAlC,uBAAe,UAAU,mBAAkB;AAC5C,mBAAW,kBAC+B,aAAnD,AAAO,AAAa,AAAa,AAAe,MAA1C,uBAAe,UAAU,uBAAsB,eAAe,EACpE,AAAO,AAAa,AAAa,AAAe,MAA1C,uBAAe,UAAU;AACe,IAAlD,AAAc,aAAD,QAAQ,AAAW,UAAD,KAAK,AAAW,UAAD;AAC9C,QAAmB,YAAf,AAAU,SAAD,OAAuB;AACY,MAA9C,AAAc,aAAD,QAAQ,AAAS,QAAD,KAAK,AAAS,QAAD;;AAEJ,IAAxC,AAAM,KAAD,qBAA8B;AAEG,IADtC,OAAO,yBAAkB,AAAM,KAAD,oBAAoB,AAAU,SAAD,OAAO,MAAM,EACpE,aAAa,EAAE,QAAQ,EAAE,QAAQ;AACf,IAAtB,AAAM,KAAD,aAAa,IAAI;AAE+B,IADrD,gBAAgB,kBAAiB,aAAV,AAAK,IAAD,sBAAQ,AAAO,MAAD,QAC5B,AAAkB,aAA3B,AAAK,IAAD,QAAmB,aAAZ,AAAK,IAAD,WAAU,IAAoB,aAAhB,AAAS,QAAD,WAAU;AACxC,wBAAgB,AAAM,AAAY,KAAb;AAChC,QAAI,AAAO,AAAkB,AAAQ,MAA3B,8BAA8B;AACjC;AACL,oBAAI,AAAuB,sBAAD;AAEqC,QAD7D,0BACI,AAAsB,sBAAA,QAA+B,aAA9B,AAAuB,sBAAD,aAAU;;AAE7D,qBAAK,gCAAyB,IAAI,EAAE,uBAAuB,MAC5C,aAAV,AAAK,IAAD,sBAAQ,AAAc,aAAD,UACZ,AAAa,aAAvB,AAAK,IAAD,sBAAQ,AAAK,IAAD,UACO,aAAnB,AAAc,aAAD,sBAAQ,AAAc,aAAD,WACjC,aAAT,AAAK,IAAD,qBAAO,AAAc,aAAD,SACf,AAAc,aAAvB,AAAK,IAAD,qBAAO,AAAK,IAAD,WAA4B,aAAlB,AAAc,aAAD,qBAAO,AAAc,aAAD;AAazC,QAZnB,yBACI,IAAI,EACJ,aAAa,EACb,KAAK,EACL,aAAa,EACb,MAAM,EACN,MAAM,EACN,KAAK,EACL,UAAU,EACV,KAAK,EACL,SAAS,EACT,sBAAsB,EACtB,cAAc;;AAElB,YAAI,UAAU,KAAI;AAGL,qCACP,AAAsB,sBAAA,QAA+B,aAA9B,AAAuB,sBAAD,aAAU;AAE/B,UAD5B,OAAY,qBAAS,AAAK,IAAD,OAAmC,aAA5B,AAAqB,oBAAD,cAChD,AAAK,IAAD,QAAQ,AAAK,IAAD;AAMQ,UAL5B,gBAAgB,kBACF,aAAV,AAAK,IAAD,sBAAQ,AAAO,MAAD,QACU,AAChB,AACQ,aAFpB,AAAqB,oBAAD,eAEJ,aAAZ,AAAK,IAAD,WAAU,IACE,aAAhB,AAAS,QAAD,WAAU;AACJ,UAAtB,gBAAgB;AACkC,UAAlD,AAAc,aAAD,QAAQ,AAAW,UAAD,KAAK,AAAW,UAAD;AAEmB,UADjE,AAAc,aAAD,QACC,aAAV,AAAK,IAAD,aAAuC,aAAT,AAAK,IAAD,QAAmB,aAAZ,AAAK,IAAD,WAAU;AACJ,UAA3D,AAAc,aAAD,QAAQ,AAAK,IAAD,OAAgB,aAAT,AAAK,IAAD,QAAmB,aAAZ,AAAK,IAAD,WAAU;;AAE3D,YAAgB,aAAZ,AAAK,IAAD,wBAAU,AAAM,AAAY,AAAc,KAA3B;AAaF,UAZnB,yBACI,IAAI,EACJ,aAAa,EACb,KAAK,EACL,aAAa,EACb,MAAM,EACN,MAAM,EACN,KAAK,EACL,UAAU,EACV,KAAK,EACL,SAAS,EACT,sBAAsB,EACtB,cAAc;;;;EAI1B;sEAEmC,MAAW;AACvC,sBAAc;AAEnB,QAAI,YAAY,IAAI,QAAkB,AAAW,aAApB,AAAK,IAAD,yBAAkB,AAAa,YAAD;AAC3C,MAAlB,cAAc;;AAEhB,UAAO,YAAW;EACpB;wDAGS,WACE,UACA,OACF,eACE,QACyB,QACb,OACf,YACW,OACA,WACJ,wBACJ;;AACH;AACkB,oBAAY,AAAO,MAAD;AACd,oBAAY,AAAU,SAAD;AACjD,QAAI,aAAa,IAAI;AAWkB,MAVrC,AAAO,MAAD,UACF,aAAa,QACb,gBACI,WAAwB,aAAhB,AAAU,SAAD,WAAU,IAChB,8BACS,KAAhB,AAAU,SAAD,cAAC,OACR,AAAM,AAAK,KAAN,kBAAkB,WAAC,AAAM,AAAY,KAAb,mCACvB,cAAc,GACd,AAAU,SAAD,iBACrB,iBAAc,AAAU,SAAD,QACvB,WAAsB;;AAGhC,QAAI,AAAU,AAAQ,SAAT,YAAY;AACV,wBAAc,AAAU,SAAD;AACxB,sBAAY,AAAU,AAAM,SAAP,UAAU,OACrC,AAAU,SAAD,mBACR,AAAU,SAAD,mBAAkB,AAAM,KAAD,QAAQ,AAAU,SAAD;AAC5C,yBAC6C,MAArD,AAAU,AAAY,SAAb,yBAAyB,AAAU,SAAD,kBAArB,OAAkC,AAAM,KAAD;AACjE,UAAI,WAAW,IAAI,QAAoB,aAAZ,WAAW,IAAG;AAMV,QAL7B,oBAAY,gBACR,aAAQ,AAAY,WAAD,aAAa,WAAC,AAAM,AAAY,KAAb,mCAClC,cAAc,GACd,AAAU,SAAD,WACb,aAAsB,yBACtB,mBAAc,WAAW;AAMlB,QALX,sBACI,SAAS,EACJ,qBACD,AAAU,SAAD,OAAO,AAAU,SAAD,MAAM,AAAU,SAAD,QAAQ,AAAU,SAAD,UAC7D,AAAU,SAAD,eACT,MAAM;;AAEZ,UAAI,SAAS,IAAI;AAYJ,QAXX,8BACI,gBACI,aAAQ,AAAU,SAAD,aAAa,WAAC,AAAM,AAAY,KAAb,mCAChB,AAA2B,aAA1C,cAAc,KAAI,AAAE,iBAAE,AAAU,SAAD,aAAa,IACzC,MACe,aAAf,cAAc,KAAI,AAAE,iBAAE,AAAU,SAAD,aACnC,AAAU,SAAD,WACb,aAAsB,8BACrB,qBACD,AAAU,SAAD,OAAO,AAAU,SAAD,MAAM,AAAU,SAAD,QAAQ,AAAU,SAAD,UAC7D,AAAU,SAAD,eACT,MAAM;;AAKgB,MAH5B,AAAU,SAAD,SAA2C,CAAjB,OAAhB,AAAU,SAAD,gBAAC,OAAgB,yCACzC,WAAC,AAAM,AAAY,KAAb,mCACA,cAAc,GACd,AAAU,SAAD;AAC2C,MAA9D,iBAAU,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,AAAU,SAAD;AAClB,MAArC,AAAuB,sBAAD,OAAK,SAAS;;EAExC;wDuIhaoC,SAAiB;AAC9C,YAAI;AACL,YAAI,CAAC;AACC,YAAI,AAAQ,OAAD;AACjB;AACJ,kBAAK,IAAM,aAAF,CAAC,IAAG,GAAO,CAAF,IAAF,AAAE,CAAC,GAAH,kBAAM,CAAC,GAAE,IAAI,CAAC;AAShB,MAFe,CANX,aAAd,AAAO,AAAI,OAAJ,mBAAC,CAAC,uCAAc,WAAN,KAAK,wBAAgB,WAAH,WAAN,KAAK,eAAM,AAAO,AAAI,OAAJ,mBAAC,CAAC,YAC5B,aAAd,AAAO,AAAI,OAAJ,mBAAC,CAAC,uCAAc,WAAN,KAAK,wBAAgB,WAAH,WAAN,KAAK,eAAM,AAAO,AAAI,OAAJ,mBAAC,CAAC,wBAC5C,WAAH,WAAN,KAAK,eAC8B,AACG,AACK,CAFzB,aAAd,AAAO,AAAI,OAAJ,mBAAC,CAAC,sBAAO,AAAO,AAAI,OAAJ,mBAAC,CAAC,uCACR,WAAH,WAAN,KAAK,eAAM,AAAO,AAAI,OAAJ,mBAAC,CAAC,aACN,aAAd,AAAO,AAAI,OAAJ,mBAAC,CAAC,sBAAO,AAAO,AAAI,OAAJ,mBAAC,CAAC,uBAC9B,AAAO,AAAI,OAAJ,mBAAC,CAAC,cAEhB,IAAI,CAAC,CAAC;AACb,UAAO,EAAC;EACV;mDAE4B;AACnB;AAEY;AACZ;AAC6C,IAAlC,UAAZ,WAAN,KAAK,6BAA6C;AACG,IAAnC,UAAZ,WAAN,KAAK,4CAA8C;AACnD,aAAS,IAAI,GAAG,AAAE,CAAD,gCAAoC,WAAd,WAAb,WAAN,KAAK,gDAAoC,IAAA,AAAC,CAAA;AAC9C,mBAAyC,WAAb,WAAb,WAAN,KAAK,4CAA4B,CAAC;AACzD,qBAA6B,WAAlB,WAAP,MAAM,yCACmB,WAAlB,WAAP,MAAM,sCAA8B;AACtC,iBAAS,IAAI,GAAG,AAAE,CAAD,gCAAwB,WAAd,WAAP,MAAM,+BAAuB,IAAA,AAAC,CAAA;AACjB,kBAA/B,wBAA4B,WAAb,WAAP,MAAM,2BAAe,CAAC;AACf;AACf,wBAAI,AAAM,KAAD;AAEgD,0BADvD,wBACK,WADgB,WAAP,MAAM,oCACU,WAAV,WAAP,MAAM,0BAAY,CAAC,IAAG,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;AACtD,gBAA2C,YAAd,WAAlB,WAAP,MAAM,0CACiB;AACW,cAApC,gBAAgB,AAAM,KAAD;AACa,cAAlC,aAA4B;;AAEQ,cAApC,gBAAgB,AAAM,KAAD;AAKA,cAJrB,gBAAgB,kBACY,YAAxB,AAAM,KAAD,oBAA+B,yBACb,AAAa,aAA9B,AAAc,aAAD,YAAmB,IACf,AAAa,aAA9B,AAAc,aAAD,YAAmB,GACtC,AAAc,aAAD;AAGQ,cAFzB,aAAqC,YAAxB,AAAM,KAAD,oBAA+B,wBAC5B,4BACA;;AAaM,YAXD,WAAV,WAAZ,WAAN,KAAK,sCAA2B,wCACvB,wDACS,yBACF,CAAC,eACA,CAAC,eACD,+BACe,WAAZ,WAAN,KAAK,sDACI,aACX,WAAW,uBACE,UAAU,qBACG,wCACxB,aAAa;;;;;EAKrC;uDAE8B;AAC5B,mBAAgC,WAAV,WAAZ,WAAN,KAAK;AACP,eAAS,IAAI,GAAG,AAAE,CAAD,gCAA+B,WAAV,WAAZ,WAAN,KAAK,2CAA+B,IAAA,AAAC,CAAA;AAC9B,iEACM,WAAT,WAAZ,WAAN,KAAK,uCAAuB,CAAC;AAGQ,QAFzC,AAAkB,iBAAD,qBAAqB,YAAmB,WAAZ,WAAN,KAAK,oCACtC,IACA,AAAkB,iBAAD;;AAKR,MAHC,UAAZ,WAAN,KAAK,gCAA8B,4EACF,WAAZ,WAAN,KAAK,wDACU,WAAZ,WAAN,KAAK,6CACN,KAAK;AACqD,MAArC,WAAd,WAAZ,WAAN,KAAK,wCAAiD,WAAZ,WAAN,KAAK;;EAE7C;kEAIY,cAAsB,QAAgB;AAC1C;AACkB,oDAAmB,WAAP,MAAM;AAC1C,QAAiB,AAAe,WAA5B,YAAY,uBAAmB,QACH,YAAf,WAAb,YAAY,qBAA0C,qDACpC,WAAb,YAAY;AAEmD,MADtE,QAAQ,mBACJ,AAAU,SAAD,wBAAqB,WAAb,YAAY,iDAAyB,WAAZ,WAAN,KAAK;;AASX,MAPlC,QAAQ,mBACJ,AAAU,SAAD,QAEL,0BADJ,AAAU,SAAD,mBACU,WAAb,YAAY,YACL,AAAgB,WAAtB,KAAK,wBAAoB,OACQ,WAAZ,WAAZ,WAAN,KAAK,2DACL,4CACQ,WAAZ,WAAN,KAAK;;AAGX,UAAO,4BAAoB,KAAK;EAClC;4CAIc,gBAAsB,YAA6B;AAC7D,UAAA,AAAe,eAAD,IAAI,OACZ,cAAc,GACd,AAAW,UAAD,IAAI,OAAO,UAAU,GAAU;EAAK;4CAI1C,gBAAsB,iBAAkC;AAClE,UAAA,AAAe,eAAD,IAAI,OACZ,cAAc,GACd,AAAgB,eAAD,IAAI,OACf,eAAe,GACE,YAAjB,AAAM,KAAD,aAA0B,yCAEpB;EAAK;kEAIlB,QAAgB,OAAe;AACjB,oDAAmB,WAAP,MAAM;AAC9B,oBAAY,AAAU,AAAU,AAAM,SAAjB,oBAAoB,OAC/C,AAAU,AAAU,SAAX,mBACT,8BAAuB,KAAK,EAAE,MAAM,EAAE,KAAK;AAC5B,oBAAY,sCACtB,SAAS,YACN,AAAU,AAAU,SAAX,iCACP,AAAU,AAAU,SAAX,kCACV,AAAU,AAAU,SAAX,kCACR,AAAU,AAAU,SAAX;AACzB,UAAO,UAAS;EAClB;kDAGwB,YAAoB,QAAgB;AACrD,wBAAgB;AACrB,mBAAW,WAAP,MAAM;AACR,qBAAsB,WAAZ,WAAN,KAAK;AACP,YAAe,eAAX,UAAU,EAAW,WAAP,MAAM;AAC0B,UAAf,WAAf,WAAZ,WAAN,KAAK,2CAAgC,UAAU;AAC3B,UAApB,gBAAgB;;YAEb,gBAAsB,WAAZ,WAAN,KAAK,mDACM,WAAZ,WAAN,KAAK;AAC8D,wBAArE,iBAAiD,WAAf,WAAZ,WAAN,KAAK,gDAAqC,UAAU;;;AAGxE,UAAO,cAAa;EACtB;wDAEgC,UAAwB,eACzC,QAAa,eAAsB,UAAe;AAC1D;AAEL,YAAQ,QAAQ;;;AAK4D,QAH1D,YAAd,aAAa,EAAkB,6BACzB,AAAc,aAAD,QAAoB,aAAZ,AAAS,QAAD,WAAkB,AAAS,QAAD,OACvD,AAAc,aAAD,mBACX,AAAS,QAAD,KAAK,AAAS,QAAD,KAAiB,aAAZ,AAAS,QAAD,WAAkB,AAAS,QAAD;AAKnB,QAJjD,OAAY,qBACI,aAAZ,AAAS,QAAD,WACI,AAAwB,aAApC,AAAS,QAAD,OAAuB,aAAhB,AAAS,QAAD,WAAU,iBAAK,AAAO,MAAD,OAC7B,AAAc,aAA7B,AAAS,QAAD,uBAAS,AAAO,MAAD,sBAAQ,AAAO,MAAD,SACrB,AAAa,aAA7B,AAAS,QAAD,wBAAU,AAAO,MAAD,qBAAO,AAAO,MAAD;AACzC;;;;AAKwE,QAH1D,YAAd,aAAa,EAAkB,6BACzB,AAAc,aAAD,QAAoB,aAAZ,AAAS,QAAD,WAAkB,AAAS,QAAD,OACvD,AAAc,aAAD,mBACX,AAAS,QAAD,KAAK,AAAS,QAAD,KAAiB,aAAZ,AAAS,QAAD,WAAkB,AAAS,QAAD;AASnB,QARjD,OAAY,qBACI,AACG,AACE,AACE,aAHnB,AAAS,QAAD,yBAEJ,AAAO,MAAD,uBACN,AAAS,QAAD,uBACR,AAAO,MAAD,QACE,AAAwB,aAApC,AAAS,QAAD,OAAuB,aAAhB,AAAS,QAAD,WAAU,iBAAK,AAAO,MAAD,OAC7B,AAAc,aAA7B,AAAS,QAAD,uBAAS,AAAO,MAAD,sBAAQ,AAAO,MAAD,SACrB,AAAa,aAA7B,AAAS,QAAD,wBAAU,AAAO,MAAD,qBAAO,AAAO,MAAD;AACzC;;;AAEJ,UAAO,KAAI;EACb;;;;uBCpLuC;AACjC,YAAA,AAAa,AAAM,8CAAS;IAAS;sBAEL;AAChC,YAAA,AAAa,AAAM,8CAAS;IAAS;;;QAbZ;;AACvB,oDACS,KAAK;;EAGb;;;;MACmB,2BAAY;YAC7B,AAAO,AAAS,uCAAe;;;;AAUQ,IAArC,AAAa,AAAM,6CAAS;EACzC","file":"charts.ddc.js"}');
  // Exports:
  return {
    charts: charts,
    src__common__handcursor__web: web
  };
});

//# sourceMappingURL=charts.ddc.js.map
