WordPress/wp-includes/js/dist/components.js.map
atimmer cc13a1f3a0 General: Fix code formatting issues.
Fix code formatting after [44174] and [44177].

Built from https://develop.svn.wordpress.org/trunk@44178


git-svn-id: http://core.svn.wordpress.org/trunk@44008 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-12-14 11:02:53 +00:00

1 line
1.6 MiB
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{"version":3,"sources":["webpack://wp.[name]/webpack/bootstrap","webpack://wp.[name]/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://wp.[name]/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://wp.[name]/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://wp.[name]/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://wp.[name]/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://wp.[name]/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://wp.[name]/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://wp.[name]/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://wp.[name]/./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://wp.[name]/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://wp.[name]/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://wp.[name]/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://wp.[name]/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://wp.[name]/./node_modules/@babel/runtime/helpers/esm/objectSpread.js","webpack://wp.[name]/./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://wp.[name]/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://wp.[name]/./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://wp.[name]/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://wp.[name]/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://wp.[name]/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://wp.[name]/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/autocomplete/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/base-control/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/button-group/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/button/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/checkbox-control/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/clipboard-button/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/color-indicator/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/color-palette/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/color-picker/alpha.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/color-picker/hue.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/color-picker/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/color-picker/inputs.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/color-picker/saturation.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/color-picker/utils.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/dashicon/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/date-time/date.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/date-time/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/date-time/time.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/disabled/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/draggable/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/drop-zone/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/drop-zone/provider.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/dropdown-menu/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/dropdown/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/external-link/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/focusable-iframe/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/font-size-picker/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/form-file-upload/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/form-toggle/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/form-token-field/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/form-token-field/suggestions-list.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/form-token-field/token-input.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/form-token-field/token.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/higher-order/navigate-regions/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/higher-order/with-constrained-tabbing/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/higher-order/with-fallback-styles/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/higher-order/with-filters/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/higher-order/with-focus-outside/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/higher-order/with-focus-return/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/higher-order/with-notices/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/higher-order/with-spoken-messages/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/icon-button/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/icon/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/keyboard-shortcuts/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/menu-group/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/menu-item/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/menu-items-choice/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/modal/aria-helper.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/modal/frame.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/modal/header.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/modal/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/navigable-container/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/notice/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/notice/list.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/panel/body.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/panel/color.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/panel/header.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/panel/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/panel/row.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/placeholder/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/popover/detect-outside.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/popover/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/popover/utils.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/primitives/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/primitives/svg/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/query-controls/category-select.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/query-controls/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/query-controls/terms.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/radio-control/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/range-control/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/resizable-box/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/responsive-wrapper/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/sandbox/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/scroll-lock/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/select-control/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/server-side-render/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/shortcut/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/slot-fill/fill.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/slot-fill/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/slot-fill/provider.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/slot-fill/slot.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/spinner/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/tab-panel/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/text-control/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/textarea-control/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/toggle-control/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/toolbar-button/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/toolbar-button/toolbar-button-container.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/toolbar/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/toolbar/toolbar-container.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/tooltip/index.js","webpack://wp.[name]//Users/robert/projects/gutenberg/packages/components/src/tree-select/index.js","webpack://wp.[name]/../src/and.js","webpack://wp.[name]/../src/between.js","webpack://wp.[name]/../src/booleanSome.js","webpack://wp.[name]/../src/childrenHavePropXorChildren.js","webpack://wp.[name]/../src/childrenOf.js","webpack://wp.[name]/../src/childrenOfType.js","webpack://wp.[name]/../src/childrenSequenceOf.js","webpack://wp.[name]/../src/componentWithName.js","webpack://wp.[name]/../src/disallowedIf.js","webpack://wp.[name]/../src/elementType.js","webpack://wp.[name]/../src/explicitNull.js","webpack://wp.[name]/../../src/helpers/getComponentName.js","webpack://wp.[name]/../../src/helpers/isInteger.js","webpack://wp.[name]/../../src/helpers/isPlainObject.js","webpack://wp.[name]/../../src/helpers/isPrimitive.js","webpack://wp.[name]/../../src/helpers/renderableChildren.js","webpack://wp.[name]/../../src/helpers/typeOf.js","webpack://wp.[name]/../../src/helpers/wrapValidator.js","webpack://wp.[name]/../src/index.js","webpack://wp.[name]/../src/integer.js","webpack://wp.[name]/../src/keysOf.js","webpack://wp.[name]/../src/mutuallyExclusiveProps.js","webpack://wp.[name]/../src/mutuallyExclusiveTrueProps.js","webpack://wp.[name]/../src/nChildren.js","webpack://wp.[name]/../src/nonNegativeInteger.js","webpack://wp.[name]/../src/nonNegativeNumber.js","webpack://wp.[name]/../src/numericString.js","webpack://wp.[name]/../src/object.js","webpack://wp.[name]/../src/or.js","webpack://wp.[name]/../src/range.js","webpack://wp.[name]/../src/requiredBy.js","webpack://wp.[name]/../src/restrictedProp.js","webpack://wp.[name]/../src/sequenceOf.js","webpack://wp.[name]/../src/shape.js","webpack://wp.[name]/../src/stringStartsWith.js","webpack://wp.[name]/../src/uniqueArray.js","webpack://wp.[name]/../src/uniqueArrayOf.js","webpack://wp.[name]/../src/valuesOf.js","webpack://wp.[name]/../src/withShape.js","webpack://wp.[name]/index.js","webpack://wp.[name]/./node_modules/array.prototype.find/implementation.js","webpack://wp.[name]/./node_modules/array.prototype.find/index.js","webpack://wp.[name]/./node_modules/array.prototype.find/polyfill.js","webpack://wp.[name]/./node_modules/array.prototype.find/shim.js","webpack://wp.[name]/./node_modules/array.prototype.flat/implementation.js","webpack://wp.[name]/./node_modules/array.prototype.flat/index.js","webpack://wp.[name]/./node_modules/array.prototype.flat/polyfill.js","webpack://wp.[name]/./node_modules/array.prototype.flat/shim.js","webpack://wp.[name]/./node_modules/classnames/index.js","webpack://wp.[name]/./node_modules/clipboard/dist/clipboard.js","webpack://wp.[name]/./node_modules/consolidated-events/lib/index.esm.js","webpack://wp.[name]/./node_modules/deepmerge/dist/cjs.js","webpack://wp.[name]/./node_modules/define-properties/index.js","webpack://wp.[name]/./node_modules/dom-scroll-into-view/lib/dom-scroll-into-view.js","webpack://wp.[name]/./node_modules/dom-scroll-into-view/lib/index.js","webpack://wp.[name]/./node_modules/dom-scroll-into-view/lib/util.js","webpack://wp.[name]/./node_modules/es-abstract/GetIntrinsic.js","webpack://wp.[name]/./node_modules/es-abstract/es2015.js","webpack://wp.[name]/./node_modules/es-abstract/es2016.js","webpack://wp.[name]/./node_modules/es-abstract/es2017.js","webpack://wp.[name]/./node_modules/es-abstract/es5.js","webpack://wp.[name]/./node_modules/es-abstract/es6.js","webpack://wp.[name]/./node_modules/es-abstract/es7.js","webpack://wp.[name]/./node_modules/es-abstract/helpers/assign.js","webpack://wp.[name]/./node_modules/es-abstract/helpers/isFinite.js","webpack://wp.[name]/./node_modules/es-abstract/helpers/isNaN.js","webpack://wp.[name]/./node_modules/es-abstract/helpers/isPrimitive.js","webpack://wp.[name]/./node_modules/es-abstract/helpers/mod.js","webpack://wp.[name]/./node_modules/es-abstract/helpers/sign.js","webpack://wp.[name]/./node_modules/es-to-primitive/es2015.js","webpack://wp.[name]/./node_modules/es-to-primitive/es5.js","webpack://wp.[name]/./node_modules/es-to-primitive/es6.js","webpack://wp.[name]/./node_modules/es-to-primitive/helpers/isPrimitive.js","webpack://wp.[name]/./node_modules/fbjs/lib/shallowEqual.js","webpack://wp.[name]/./node_modules/foreach/index.js","webpack://wp.[name]/./node_modules/function-bind/implementation.js","webpack://wp.[name]/./node_modules/function-bind/index.js","webpack://wp.[name]/./node_modules/function.prototype.name/helpers/functionsHaveNames.js","webpack://wp.[name]/./node_modules/function.prototype.name/implementation.js","webpack://wp.[name]/./node_modules/function.prototype.name/index.js","webpack://wp.[name]/./node_modules/function.prototype.name/polyfill.js","webpack://wp.[name]/./node_modules/function.prototype.name/shim.js","webpack://wp.[name]/./node_modules/global-cache/index.js","webpack://wp.[name]/./node_modules/has-symbols/index.js","webpack://wp.[name]/./node_modules/has-symbols/shams.js","webpack://wp.[name]/./node_modules/has/src/index.js","webpack://wp.[name]/./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack://wp.[name]/./node_modules/is-callable/index.js","webpack://wp.[name]/./node_modules/is-date-object/index.js","webpack://wp.[name]/./node_modules/is-regex/index.js","webpack://wp.[name]/./node_modules/is-symbol/index.js","webpack://wp.[name]/./node_modules/is-touch-device/build/index.js","webpack://wp.[name]/./node_modules/lodash/_Symbol.js","webpack://wp.[name]/./node_modules/lodash/_baseGetTag.js","webpack://wp.[name]/./node_modules/lodash/_freeGlobal.js","webpack://wp.[name]/./node_modules/lodash/_getRawTag.js","webpack://wp.[name]/./node_modules/lodash/_objectToString.js","webpack://wp.[name]/./node_modules/lodash/_root.js","webpack://wp.[name]/./node_modules/lodash/debounce.js","webpack://wp.[name]/./node_modules/lodash/isObject.js","webpack://wp.[name]/./node_modules/lodash/isObjectLike.js","webpack://wp.[name]/./node_modules/lodash/isSymbol.js","webpack://wp.[name]/./node_modules/lodash/now.js","webpack://wp.[name]/./node_modules/lodash/throttle.js","webpack://wp.[name]/./node_modules/lodash/toNumber.js","webpack://wp.[name]/./node_modules/mousetrap/mousetrap.js","webpack://wp.[name]/./node_modules/mousetrap/plugins/global-bind/mousetrap-global-bind.js","webpack://wp.[name]/./node_modules/object-assign/index.js","webpack://wp.[name]/./node_modules/object-is/index.js","webpack://wp.[name]/./node_modules/object-keys/index.js","webpack://wp.[name]/./node_modules/object-keys/isArguments.js","webpack://wp.[name]/./node_modules/object.assign/implementation.js","webpack://wp.[name]/./node_modules/object.assign/index.js","webpack://wp.[name]/./node_modules/object.assign/polyfill.js","webpack://wp.[name]/./node_modules/object.assign/shim.js","webpack://wp.[name]/./node_modules/object.entries/implementation.js","webpack://wp.[name]/./node_modules/object.entries/index.js","webpack://wp.[name]/./node_modules/object.entries/polyfill.js","webpack://wp.[name]/./node_modules/object.entries/shim.js","webpack://wp.[name]/./node_modules/object.values/implementation.js","webpack://wp.[name]/./node_modules/object.values/index.js","webpack://wp.[name]/./node_modules/object.values/polyfill.js","webpack://wp.[name]/./node_modules/object.values/shim.js","webpack://wp.[name]/./node_modules/prop-types/checkPropTypes.js","webpack://wp.[name]/./node_modules/prop-types/factoryWithTypeCheckers.js","webpack://wp.[name]/./node_modules/prop-types/index.js","webpack://wp.[name]/./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://wp.[name]/./node_modules/re-resizable/lib/index.js","webpack://wp.[name]/./node_modules/react-addons-shallow-compare/index.js","webpack://wp.[name]/./node_modules/react-click-outside/dist/index.js","webpack://wp.[name]/./node_modules/react-dates/index.js","webpack://wp.[name]/./node_modules/react-dates/initialize.js","webpack://wp.[name]/./node_modules/react-dates/lib/components/CalendarDay.js","webpack://wp.[name]/./node_modules/react-dates/lib/components/CalendarIcon.js","webpack://wp.[name]/./node_modules/react-dates/lib/components/CalendarMonth.js","webpack://wp.[name]/./node_modules/react-dates/lib/components/CalendarMonthGrid.js","webpack://wp.[name]/./node_modules/react-dates/lib/components/CalendarWeek.js","webpack://wp.[name]/./node_modules/react-dates/lib/components/ChevronDown.js","webpack://wp.[name]/./node_modules/react-dates/lib/components/ChevronUp.js","webpack://wp.[name]/./node_modules/react-dates/lib/components/CloseButton.js","webpack://wp.[name]/./node_modules/react-dates/lib/components/CustomizableCalendarDay.js","webpack://wp.[name]/./node_modules/react-dates/lib/components/DateInput.js","webpack://wp.[name]/./node_modules/react-dates/lib/components/DateRangePicker.js","webpack://wp.[name]/./node_modules/react-dates/lib/components/DateRangePickerInput.js","webpack://wp.[name]/./node_modules/react-dates/lib/components/DateRangePickerInputController.js","webpack://wp.[name]/./node_modules/react-dates/lib/components/DayPicker.js","webpack://wp.[name]/./node_modules/react-dates/lib/components/DayPickerKeyboardShortcuts.js","webpack://wp.[name]/./node_modules/react-dates/lib/components/DayPickerNavigation.js","webpack://wp.[name]/./node_modules/react-dates/lib/components/DayPickerRangeController.js","webpack://wp.[name]/./node_modules/react-dates/lib/components/DayPickerSingleDateController.js","webpack://wp.[name]/./node_modules/react-dates/lib/components/KeyboardShortcutRow.js","webpack://wp.[name]/./node_modules/react-dates/lib/components/LeftArrow.js","webpack://wp.[name]/./node_modules/react-dates/lib/components/RightArrow.js","webpack://wp.[name]/./node_modules/react-dates/lib/components/SingleDatePicker.js","webpack://wp.[name]/./node_modules/react-dates/lib/components/SingleDatePickerInput.js","webpack://wp.[name]/./node_modules/react-dates/lib/constants.js","webpack://wp.[name]/./node_modules/react-dates/lib/defaultPhrases.js","webpack://wp.[name]/./node_modules/react-dates/lib/index.js","webpack://wp.[name]/./node_modules/react-dates/lib/initialize.js","webpack://wp.[name]/./node_modules/react-dates/lib/shapes/AnchorDirectionShape.js","webpack://wp.[name]/./node_modules/react-dates/lib/shapes/CalendarInfoPositionShape.js","webpack://wp.[name]/./node_modules/react-dates/lib/shapes/DateRangePickerShape.js","webpack://wp.[name]/./node_modules/react-dates/lib/shapes/DayOfWeekShape.js","webpack://wp.[name]/./node_modules/react-dates/lib/shapes/DisabledShape.js","webpack://wp.[name]/./node_modules/react-dates/lib/shapes/FocusedInputShape.js","webpack://wp.[name]/./node_modules/react-dates/lib/shapes/IconPositionShape.js","webpack://wp.[name]/./node_modules/react-dates/lib/shapes/ModifiersShape.js","webpack://wp.[name]/./node_modules/react-dates/lib/shapes/OpenDirectionShape.js","webpack://wp.[name]/./node_modules/react-dates/lib/shapes/OrientationShape.js","webpack://wp.[name]/./node_modules/react-dates/lib/shapes/ScrollableOrientationShape.js","webpack://wp.[name]/./node_modules/react-dates/lib/shapes/SingleDatePickerShape.js","webpack://wp.[name]/./node_modules/react-dates/lib/theme/DefaultTheme.js","webpack://wp.[name]/./node_modules/react-dates/lib/utils/calculateDimension.js","webpack://wp.[name]/./node_modules/react-dates/lib/utils/disableScroll.js","webpack://wp.[name]/./node_modules/react-dates/lib/utils/getActiveElement.js","webpack://wp.[name]/./node_modules/react-dates/lib/utils/getCalendarDaySettings.js","webpack://wp.[name]/./node_modules/react-dates/lib/utils/getCalendarMonthWeeks.js","webpack://wp.[name]/./node_modules/react-dates/lib/utils/getCalendarMonthWidth.js","webpack://wp.[name]/./node_modules/react-dates/lib/utils/getDetachedContainerStyles.js","webpack://wp.[name]/./node_modules/react-dates/lib/utils/getInputHeight.js","webpack://wp.[name]/./node_modules/react-dates/lib/utils/getNumberOfCalendarMonthWeeks.js","webpack://wp.[name]/./node_modules/react-dates/lib/utils/getPhrase.js","webpack://wp.[name]/./node_modules/react-dates/lib/utils/getPhrasePropTypes.js","webpack://wp.[name]/./node_modules/react-dates/lib/utils/getResponsiveContainerStyles.js","webpack://wp.[name]/./node_modules/react-dates/lib/utils/getSelectedDateOffset.js","webpack://wp.[name]/./node_modules/react-dates/lib/utils/getTransformStyles.js","webpack://wp.[name]/./node_modules/react-dates/lib/utils/getVisibleDays.js","webpack://wp.[name]/./node_modules/react-dates/lib/utils/isAfterDay.js","webpack://wp.[name]/./node_modules/react-dates/lib/utils/isBeforeDay.js","webpack://wp.[name]/./node_modules/react-dates/lib/utils/isDayVisible.js","webpack://wp.[name]/./node_modules/react-dates/lib/utils/isInclusivelyAfterDay.js","webpack://wp.[name]/./node_modules/react-dates/lib/utils/isInclusivelyBeforeDay.js","webpack://wp.[name]/./node_modules/react-dates/lib/utils/isNextDay.js","webpack://wp.[name]/./node_modules/react-dates/lib/utils/isNextMonth.js","webpack://wp.[name]/./node_modules/react-dates/lib/utils/isPrevMonth.js","webpack://wp.[name]/./node_modules/react-dates/lib/utils/isSameDay.js","webpack://wp.[name]/./node_modules/react-dates/lib/utils/isSameMonth.js","webpack://wp.[name]/./node_modules/react-dates/lib/utils/isTransitionEndSupported.js","webpack://wp.[name]/./node_modules/react-dates/lib/utils/registerCSSInterfaceWithDefaultTheme.js","webpack://wp.[name]/./node_modules/react-dates/lib/utils/registerInterfaceWithDefaultTheme.js","webpack://wp.[name]/./node_modules/react-dates/lib/utils/toISODateString.js","webpack://wp.[name]/./node_modules/react-dates/lib/utils/toISOMonthString.js","webpack://wp.[name]/./node_modules/react-dates/lib/utils/toLocalizedDateString.js","webpack://wp.[name]/./node_modules/react-dates/lib/utils/toMomentObject.js","webpack://wp.[name]/./node_modules/react-moment-proptypes/src/core.js","webpack://wp.[name]/./node_modules/react-moment-proptypes/src/index.js","webpack://wp.[name]/./node_modules/react-moment-proptypes/src/moment-validation-wrapper.js","webpack://wp.[name]/./node_modules/react-outside-click-handler/build/OutsideClickHandler.js","webpack://wp.[name]/./node_modules/react-outside-click-handler/index.js","webpack://wp.[name]/./node_modules/react-portal/es/LegacyPortal.js","webpack://wp.[name]/./node_modules/react-portal/es/Portal.js","webpack://wp.[name]/./node_modules/react-portal/es/PortalCompat.js","webpack://wp.[name]/./node_modules/react-portal/es/PortalWithState.js","webpack://wp.[name]/./node_modules/react-portal/es/index.js","webpack://wp.[name]/./node_modules/react-portal/es/utils.js","webpack://wp.[name]/./node_modules/react-with-direction/dist/constants.js","webpack://wp.[name]/./node_modules/react-with-direction/dist/proptypes/brcast.js","webpack://wp.[name]/./node_modules/react-with-styles-interface-css/dist/index.js","webpack://wp.[name]/./node_modules/react-with-styles-interface-css/dist/utils/constants.js","webpack://wp.[name]/./node_modules/react-with-styles-interface-css/dist/utils/getClassName.js","webpack://wp.[name]/./node_modules/react-with-styles-interface-css/dist/utils/separateStyles.js","webpack://wp.[name]/./node_modules/react-with-styles-interface-css/index.js","webpack://wp.[name]/./node_modules/react-with-styles/lib/ThemedStyleSheet.js","webpack://wp.[name]/./node_modules/react-with-styles/lib/withStyles.js","webpack://wp.[name]/./node_modules/tinycolor2/tinycolor.js","webpack://wp.[name]/./node_modules/uuid/lib/bytesToUuid.js","webpack://wp.[name]/./node_modules/uuid/lib/rng-browser.js","webpack://wp.[name]/./node_modules/uuid/v4.js","webpack://wp.[name]/(webpack)/buildin/global.js","webpack://wp.[name]/external {\"this\":[\"wp\",\"a11y\"]}","webpack://wp.[name]/external {\"this\":[\"wp\",\"apiFetch\"]}","webpack://wp.[name]/external {\"this\":[\"wp\",\"compose\"]}","webpack://wp.[name]/external {\"this\":[\"wp\",\"deprecated\"]}","webpack://wp.[name]/external {\"this\":[\"wp\",\"dom\"]}","webpack://wp.[name]/external {\"this\":[\"wp\",\"element\"]}","webpack://wp.[name]/external {\"this\":[\"wp\",\"hooks\"]}","webpack://wp.[name]/external {\"this\":[\"wp\",\"i18n\"]}","webpack://wp.[name]/external {\"this\":[\"wp\",\"isShallowEqual\"]}","webpack://wp.[name]/external {\"this\":[\"wp\",\"keycodes\"]}","webpack://wp.[name]/external {\"this\":[\"wp\",\"richText\"]}","webpack://wp.[name]/external {\"this\":[\"wp\",\"url\"]}","webpack://wp.[name]/external \"lodash\"","webpack://wp.[name]/external \"moment\"","webpack://wp.[name]/external \"React\"","webpack://wp.[name]/external \"ReactDOM\""],"names":["filterOptions","search","options","maxResults","filtered","i","length","option","keywords","label","isMatch","some","keyword","test","deburr","push","getCaretRect","range","window","getSelection","getRangeAt","getRectangleFromRange","Autocomplete","selectedIndex","suppress","undefined","open","query","filteredOptions","arguments","bindNode","bind","select","reset","resetWhenSuppressed","handleKeyDown","debouncedLoadOptions","debounce","loadOptions","state","constructor","getInitialState","node","replacement","props","record","onChange","end","start","triggerPrefix","toInsert","create","html","renderToString","insert","onReplace","getOptionCompletion","isDisabled","completion","value","action","insertCompletion","isMounted","setState","idx","debouncedSpeak","sprintf","_n","__","completer","promise","activePromise","Promise","resolve","then","optionsData","keyedOptions","map","optionData","optionIndex","key","getOptionLabel","getOptionKeywords","isOptionDisabled","announce","event","keyCode","SPACE","ctrlKey","shiftKey","altKey","metaKey","preventDefault","stopPropagation","UP","DOWN","LEFT","RIGHT","nextSelectedIndex","ESCAPE","ENTER","isListening","handler","prevProps","prevState","completers","prevRecord","prevOpen","toggleKeyEvents","isCollapsed","text","getTextContent","slice","prevText","textAfterSelection","allCompleters","find","allowContext","index","lastIndexOf","safeTrigger","escapeRegExp","match","RegExp","wasOpen","wasSuppress","wasQuery","isDebounced","cancel","children","instanceId","selectedKey","className","isExpanded","listBoxId","activeId","classnames","Component","compose","withSpokenMessages","withInstanceId","withFocusOutside","BaseControl","id","help","ButtonGroup","classes","Button","ref","href","target","isPrimary","isLarge","isSmall","isTertiary","isToggled","isBusy","isDefault","isLink","isDestructive","disabled","additionalProps","tag","tagProps","type","createElement","forwardRef","CheckboxControl","heading","checked","onChangeValue","ClipboardButton","bindContainer","onCopy","getText","container","button","firstChild","clipboard","Clipboard","on","destroy","clearTimeout","onCopyTimeout","args","clearSelection","onFinishCopy","setTimeout","buttonProps","icon","ComponentToUse","IconButton","focusOnCopyEventTarget","focus","ColorIndicator","colorValue","background","ColorPalette","colors","disableCustomColors","applyOrUnset","color","customColorPickerLabel","name","style","itemClasses","isOpen","onToggle","hex","Alpha","createRef","increase","decrease","handleChange","handleMouseDown","handleMouseUp","unbindEventListeners","amount","hsl","noop","parseInt","change","h","s","l","a","source","intValue","e","calculateAlphaChange","current","addEventListener","TAB","removeEventListener","rgb","rgbString","r","g","b","gradient","pointerLocation","left","shortcuts","up","right","pageup","down","pagedown","home","preventKeyEvents","Hue","calculateHueChange","ColorPicker","colorToState","data","oldHue","onChangeComplete","isValidColor","simpleCheckForValidColor","partial","disableAlpha","hsv","backgroundColor","toRgbString","Input","String","toLowerCase","handleBlur","nextProps","valueKey","newValue","omit","Inputs","view","toggleViews","speak","isValidHex","Math","round","renderFields","Saturation","throttle","fn","saturate","brighten","intSaturation","clamp","v","calculateSaturationChange","top","tinycolor","toHsl","toHsv","toRgb","toHex","transparent","getPointOffset","getBoundingClientRect","containerLeft","containerTop","width","height","x","pageX","touches","y","pageY","pageXOffset","pageYOffset","lh","charAt","isValid","keysToCheck","passed","each","letter","isNaN","percent","saturation","bright","Dashicon","size","path","iconClass","filter","Boolean","join","TIMEZONELESS_FORMAT","DatePicker","onChangeMoment","newDate","currentDate","momentDate","moment","momentTime","hours","minutes","seconds","set","format","DateTimePicker","calendarHelpIsVisible","onClickDescriptionToggle","is12Hour","locale","_x","TimePicker","day","month","year","am","date","updateMonth","onChangeMonth","updateDay","onChangeDay","updateYear","onChangeYear","updateHours","updateMinutes","onChangeHours","onChangeMinutes","syncState","currentTime","selected","isInteger","clone","getMinHours","getMaxHours","updateAmPm","createContext","Consumer","Provider","DISABLED_ELIGIBLE_NODE_NAMES","Disabled","disable","debouncedDisable","leading","observer","MutationObserver","observe","childList","attributes","subtree","disconnect","focusable","forEach","includes","nodeName","setAttribute","hasAttribute","removeAttribute","dragImageClass","cloneWrapperClass","cloneHeightTransformationBreakpoint","clonePadding","isChromeUA","navigator","userAgent","documentHasIframes","document","getElementById","querySelectorAll","Draggable","onDragStart","onDragOver","onDrop","onDragEnd","resetDragState","isChromeAndHasIframes","cloneWrapper","clientY","cursorTop","clientX","cursorLeft","elementId","transferData","element","dataTransfer","setDragImage","dragImage","classList","add","body","appendChild","removeChild","setData","JSON","stringify","elementRect","elementWrapper","parentNode","elementTopOffset","elementLeftOffset","cloneNode","transform","transformOrigin","child","remove","onDraggableStart","onDraggableEnd","withSafeTimeout","DropZone","addDropZone","removeDropZone","DropZoneComponent","dropZoneElement","dropZone","onFilesDrop","onHTMLDrop","isDraggingOverDocument","isDraggingOverElement","position","getDragEventType","types","isTypeSupportedByDropZone","isWithinElementBounds","rect","bottom","DropZoneProvider","toggleDraggingOverDocument","dropZones","dropZoneCallbacks","hoveredDropZone","findDOMNode","dz","dragEventType","detail","CustomEvent","hoveredDropZones","zone","subZone","parentElement","contains","hoveredDropZoneIndex","indexOf","toUpdate","isEqual","isDraggingOverDropZone","newState","isShallowEqual","files","isValidDropzone","getData","DropdownMenu","menuLabel","controls","controlSets","Array","isArray","openOnArrowDown","onClose","flatMap","controlSet","indexOfSet","control","indexOfControl","onClick","isActive","title","Dropdown","toggle","close","clickOutside","refresh","popoverRef","renderContent","renderToggle","contentClassName","expandOnMobile","headerTitle","ExternalLink","rel","uniq","compact","split","FocusEvent","FocusableIframe","checkFocus","iframeRef","iframe","activeElement","focusEvent","bubbles","dispatchEvent","onFocus","withGlobalEvents","blur","FontSizePicker","fallbackFontSize","fontSizes","disableCustomFontSizes","withSlider","Number","currentFont","font","slug","fontSize","FormFileUpload","openFileDialog","bindInput","input","click","multiple","accept","display","FormToggle","wrapperClasses","initialState","incompleteTokenValue","inputOffsetFromEnd","selectedSuggestionIndex","selectedSuggestionScroll","FormTokenField","onKeyDown","onKeyPress","onBlur","deleteTokenBeforeInput","deleteTokenAfterInput","addCurrentToken","onContainerTouched","renderToken","onTokenClickRemove","onSuggestionHovered","onSuggestionSelected","onInputChange","bindTokensAndInput","hasFocus","tokensAndInput","inputHasValidValue","BACKSPACE","handleDeleteKey","handleLeftArrowKey","handleUpArrowKey","handleRightArrowKey","handleDownArrowKey","DELETE","tokenizeOnSpace","handleEscapeKey","charCode","handleCommaKey","deleteToken","suggestion","getMatchingSuggestions","addNewToken","separator","items","tokenValue","last","inputHasMinimumChars","trim","matchingSuggestions","hasVisibleSuggestions","addNewTokens","isInputEmpty","moveInputBeforePreviousToken","moveInputAfterNextToken","suggestions","maxSuggestions","saveTransform","max","min","getIndexOfInput","moveInputToIndex","selectedSuggestion","getSelectedSuggestion","tokens","tokensToAdd","token","valueContainsToken","splice","apply","concat","messages","added","newTokens","item","getTokenValue","removed","searchValue","startsWithMatch","containsMatch","difference","toLocaleLowerCase","take","components","renderInput","status","termPosition","termsCount","displayTransform","isBorderless","onMouseEnter","onMouseLeave","autoCapitalize","autoComplete","maxLength","tokenFieldProps","tabIndex","Object","assign","renderTokensAndInput","defaultProps","freeze","identity","SuggestionsList","bindList","scrollIntoView","scrollingIntoView","list","onlyScrollIfNeeded","onHover","onSelect","indexOfMatch","suggestionBeforeMatch","substring","suggestionMatch","suggestionAfterMatch","computeSuggestionMatch","classeName","handleClick","handleHover","TokenInput","Token","onClickRemove","tokenClasses","transformedValue","termPositionAndCount","createHigherOrderComponent","WrappedComponent","focusNextRegion","focusRegion","focusPreviousRegion","isFocusingRegions","offset","regions","nextRegion","nextIndex","withConstrainedTabbing","focusContainRef","handleTabBehaviour","tabbables","tabbable","firstTabbable","lastTabbable","mapNodeToProps","nodeRef","fallbackStyles","grabStylesCompleted","bindRef","grabFallbackStyles","newFallbackStyles","every","wrappedComponent","ANIMATION_FRAME_PERIOD","withFilters","hookName","OriginalComponent","onHooksUpdated","applyFilters","namespace","uniqueId","throttledForceUpdate","forceUpdate","addAction","removeAction","updatedHookName","INPUT_BUTTON_TYPES","isFocusNormalizedButton","cancelBlurCheck","queueBlurCheck","normalizeButtonFocus","persist","preventBlurCheck","blurCheckTimeout","handleFocusOutside","isInteractionEnd","setIsFocusedTrue","isFocused","setIsFocusedFalse","activeElementOnMount","createNotice","createErrorNotice","removeNotice","removeAllNotices","noticeList","noticeOperations","notice","noticeToAdd","uuid","msg","content","message","tooltip","shortcut","tooltipText","showTooltip","isString","Icon","iconSize","prototype","SVG","appliedProps","isValidElement","cloneElement","KeyboardShortcuts","bindKeyTarget","keyTarget","mousetrap","Mousetrap","callback","bindGlobal","eventName","bindFn","Children","count","MenuGroup","labelId","classNames","MenuItem","info","isSelected","role","infoId","tagName","MenuItemsChoice","choices","LIVE_REGION_ARIA_ROLES","Set","hiddenElements","isHidden","hideApp","unhiddenElement","elements","elementShouldBeHidden","getAttribute","has","showApp","ModalFrame","containerRef","handleClickOutside","focusFirstTabbable","focusOnMount","shouldCloseOnClickOutside","onRequestClose","handleEscapeKeyDown","shouldCloseOnEsc","contentLabel","aria","describedby","labelledby","withFocusReturn","keydown","ModalHeader","closeLabel","headingId","isDismissable","openModalCount","Modal","prepareDOM","stopEventPropagationOutsideModal","openFirstModal","closeLastModal","cleanDOM","ariaHelper","bodyOpenClassName","overlayClassName","closeButtonLabel","otherProps","createPortal","cycleValue","total","nextValue","NavigableContainer","getFocusableContext","getFocusableIndex","onlyBrowserTabstops","finder","focusables","directIndex","cycle","eventToOffset","onNavigate","stopNavigationEvents","nativeEvent","stopImmediatePropagation","context","NavigableMenu","orientation","rest","evt","next","previous","TabbableContainer","Notice","onRemove","isDismissible","actions","url","NoticeList","notices","reverse","PanelBody","opened","initialOpen","isOpened","PanelColor","colorName","deprecated","version","alternative","plugin","currentColorLabel","PanelHeader","Panel","header","PanelRow","Placeholder","instructions","PopoverDetectOutside","onClickOutside","FocusManaged","SLOT_NAME","Popover","getAnchorRect","updatePopoverSize","computePopoverPosition","throttledComputePopoverPosition","maybeClose","contentNode","anchorNode","popoverLeft","popoverTop","yAxis","xAxis","contentHeight","contentWidth","isMobile","popoverSize","toggleWindowEvents","focusTimeout","cancelAnimationFrame","rafHandle","requestAnimationFrame","anchor","getComputedStyle","paddingTop","paddingBottom","topPad","bottomPad","newPopoverPosition","noArrow","contentProps","visibility","maxHeight","maxWidth","getSlot","PopoverContainer","contextTypes","Slot","HEIGHT_OFFSET","isMobileViewport","innerWidth","computePopoverXAxisPosition","anchorRect","contentSize","chosenYAxis","anchorMidPoint","centerAlignment","leftAlignmentX","leftAlignment","rightAlignmentX","rightAlignment","chosenXAxis","chosenWidth","computePopoverYAxisPosition","middleAlignment","innerHeight","topAlignment","bottomAlignment","chosenHeight","yAxisPosition","xAxisPosition","Circle","G","Path","Polygon","Rect","CategorySelect","noOptionLabel","categoriesList","selectedCategoryId","termsTree","buildTermsTree","DEFAULT_MIN_ITEMS","DEFAULT_MAX_ITEMS","QueryControls","numberOfItems","order","orderBy","maxItems","minItems","onCategoryChange","onNumberOfItemsChange","onOrderChange","onOrderByChange","newOrderBy","newOrder","flatTerms","termsByParent","groupBy","fillWithChildren","terms","term","RadioControl","isEmpty","RangeControl","beforeIcon","afterIcon","allowReset","initialPosition","resetValue","initialSliderValue","isFinite","ResizableBox","handleStylesOverrides","handleClassName","ResponsiveWrapper","naturalWidth","naturalHeight","imageStyle","Sandbox","trySandbox","checkMessageForResize","contentDocument","parse","contentWindow","oldWidth","oldHeight","isFrameAccessible","observeAndResizeJS","htmlDoc","documentElement","lang","__html","scripts","src","iframeDocument","write","ceil","createScrollLockComponent","htmlDocument","lockCounter","previousScrollTop","setLocked","locked","scrollingElement","scrollTop","methodName","requestLock","releaseLock","SelectControl","selectedOptions","newValues","rendererPath","block","urlQueryArgs","addQueryArgs","ServerSideRender","response","isStillMounted","fetch","apiFetch","rendered","catch","error","errorMsg","errorMessage","Shortcut","displayText","ariaLabel","isObject","occurrences","Fill","occurrence","registerFill","slot","bubblesVirtually","unregisterFill","isFunction","fillProps","createSlotFill","FillComponent","displayName","SlotComponent","SlotFillProvider","registerSlot","unregisterSlot","getFills","slots","fills","pick","forceUpdateFills","forceUpdateSlot","instance","without","resetFillOccurrence","sortBy","resetOccurrence","childContextTypes","fill","fillKey","fillChildren","childIndex","childKey","negate","isEmptyElement","Spinner","TabButton","tabId","TabPanel","tabs","initialTabName","tabKey","activeClass","selectedTab","selectedId","tab","TextControl","TextareaControl","rows","ToggleControl","describedBy","helpLabel","ToolbarButton","containerClassName","subscript","extraProps","ToolbarButtonContainer","Toolbar","ToolbarContainer","TOOLTIP_DELAY","Tooltip","delayedSetIsOver","isOver","disconnectDisabledAttributeObserver","observeDisabledAttribute","mutation","attributeFilter","only","isDelayed","emitToChild","currentTarget","console","createToggleIsOver","concatChildren","getSelectOptions","tree","level","treeNode","repeat","unescapeString","TreeSelect","andValidator","validators","TypeError","RangeError","validator","and","firstError","validatorFn","isRequired","andIsRequired","betweenValidator","number","propName","componentName","numberOrPropsFunc","lowerCompare","gt","gte","upperCompare","lt","lte","greaterThanError","lessThanError","opts","errors","propsThunkify","reduce","acc","numberThunk","invokeWithProps","optsThunks","thunk","argValidators","argValidator","thunkValueValidator","argError","between","propValue","thunkValuesError","betweenRequired","booleanSomeValidator","notAllPropsFalse","propsList","booleanSome","countFalse","prop","falsePropCount","Error","bool","booleanSomeRequired","childrenHavePropXorChildren","childrenHavePropXorChildrenWithProp","_","truthyChildrenCount","propCount","grandchildrenCount","React","childrenOf","validateChildren","propType","childrenOfPropType","typeName","onlyTypes","Type","typeNames","getComponentName","childrenOfType","childrenSequenceOfValidator","specifiers","seq","sequenceOf","childrenSequenceOf","childrenSequenceOfRequired","componentWithName","stripHOCs","fullName","namesOfHOCsToStrip","innerName","HOC","previousHOC","replace","hasName","componentNameFromType","innerComponentName","passedOptions","keys","allHOCNamesAreValid","componentWithNameValidator","componentWithNameRequired","disallowedIf","otherPropName","otherPropType","disallowedIfRequired","otherError","disallowedIfPropType","elementTypeValidator","getTypeName","validateElementType","elementType","validatorName","explicitNull","explicitNullRequired","floor","finite","isPlainObject","isPrimitive","renderableChildren","childrenProp","toArray","typeOf","wrapValidator","typeChecker","typeRequired","module","exports","forbidExtraProps","integer","keysOf","mutuallyExclusiveProps","mutuallyExclusiveTrueProps","nChildren","nonNegativeInteger","nonNegativeNumber","numericString","object","or","requiredBy","restrictedProp","shape","stringStartsWith","uniqueArray","uniqueArrayOf","valuesOf","withShape","requiredInteger","keysOfValidator","location","propFullName","keyedByRequired","mutuallyExclusiveOfType","exclusiveProps","propList","countProps","exclusivePropCount","mutuallyExclusivePropsRequired","mutuallyExclusiveTrue","mutuallyExclusiveTruePropsRequired","n","nChildrenValidator","childrenCount","isNonNegative","requiredNonNegativeNumber","validNumericChars","stringError","string","passesRegex","numericStringRequired","ReactPropTypeLocationNames","childContext","locationName","objectRequired","oneOfTypeValidator","oneOfType","oneOfTypeRequired","MAX_SAFE_INTEGER","isValidLength","abs","getRequiredBy","requiredByPropName","defaultValue","requiredByRequired","customMessageWrapper","messsageFunction","sequenceOfValidator","minValidator","maxValidator","validateRange","specifierShape","getMinMax","minimum","maximum","Infinity","chunkByType","chunk","lastType","chunks","itemType","validateChunks","arrayOfValidator","shift","chunkError","unshift","specifierValidator","specifier","array","sequenceOfRequired","shapeValidator","shapeTypes","checker","shapeRequired","stringStartsWithValidator","startsWith","requiredStringStartsWith","uniqueCountWithSet","arr","uniqueCountLegacy","seen","getUniqueCount","requiredUniqueArray","result","uniqueCount","uniqueArrayOfTypeValidator","unique","mapper","uniqueArrayOfMapped","values","arrayValidator","uniqueValidator","valuesOfValidator","valuesOfRequired","zeroWidthSpace","specialProperty","semaphore","Symbol","brand","isBranded","propTypes","forbidUnknownProps","unknownProps"],"mappings":";;AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,kDAA0C,gCAAgC;AAC1E;AACA;;AAEA;AACA;AACA;AACA,gEAAwD,kBAAkB;AAC1E;AACA,yDAAiD,cAAc;AAC/D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAyC,iCAAiC;AAC1E,wHAAgH,mBAAmB,EAAE;AACrI;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;;AAGA;AACA;;;;;;;;;;;;;AClFA;AAAA;AAAe;AACf;AACA,C;;;;;;;;;;;;ACFA;AAAA;AAAe;AACf;AACA,iDAAiD,gBAAgB;AACjE;AACA;;AAEA;AACA;AACA,C;;;;;;;;;;;;ACRA;AAAA;AAAe;AACf;AACA;AACA;;AAEA;AACA,C;;;;;;;;;;;;ACNA;AAAA;AAAe;AACf;AACA;AACA;AACA,C;;;;;;;;;;;;ACJA;AAAA;AAAA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA,C;;;;;;;;;;;;ACdA;AAAA;AAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;;AAEA;AACA,C;;;;;;;;;;;;ACbA;AAAA;AAAe;AACf;AACA,mBAAmB,sBAAsB;AACzC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,C;;;;;;;;;;;;AChBA;AAAA;AAAe;AACf;AACA;AACA;AACA;AACA,C;;;;;;;;;;;;ACLA;AAAA;AAAA;AAA8C;AAC/B;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,kBAAkB,+DAAc;AAChC,C;;;;;;;;;;;;ACdA;AAAA;AAAe;AACf;AACA,C;;;;;;;;;;;;ACFA;AAAA;AAAe;AACf;AACA;AACA;AACA;;AAEA;AACA,6CAA6C,+BAA+B;AAC5E;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,C;;;;;;;;;;;;ACxBA;AAAA;AAAe;AACf;AACA,C;;;;;;;;;;;;ACFA;AAAA;AAAe;AACf;AACA,C;;;;;;;;;;;;ACFA;AAAA;AAAA;AAA8C;AAC/B;AACf,iBAAiB,sBAAsB;AACvC;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA,MAAM,+DAAc;AACpB,KAAK;AACL;;AAEA;AACA,C;;;;;;;;;;;;AClBA;AAAA;AAAA;AAA0E;AAC3D;AACf;AACA,eAAe,6EAA4B;AAC3C;;AAEA;AACA;;AAEA,eAAe,6BAA6B;AAC5C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,C;;;;;;;;;;;;AClBA;AAAA;AAAe;AACf;AACA;AACA;AACA;;AAEA,aAAa,uBAAuB;AACpC;AACA;AACA;AACA;;AAEA;AACA,C;;;;;;;;;;;;ACbA;AAAA;AAAA;AAAA;AAA+C;AACa;AAC7C;AACf,eAAe,mEAAO;AACtB;AACA;;AAEA,SAAS,sEAAqB;AAC9B,C;;;;;;;;;;;;ACRA;AAAA;AAAe;AACf;AACA;AACA;AACA;;AAEA;AACA,C;;;;;;;;;;;;ACPA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACY;AACV;AACjC;AACf,SAAS,+DAAc,SAAS,qEAAoB,YAAY,gEAAe;AAC/E,C;;;;;;;;;;;;ACLA;AAAA;AAAA;AAAA;AAAA;AAAoD;AACJ;AACI;AACrC;AACf,SAAS,kEAAiB,SAAS,gEAAe,SAAS,kEAAiB;AAC5E,C;;;;;;;;;;;;ACLA;AAAA;AAAA,wBAAwB,2EAA2E,oCAAoC,mBAAmB,GAAG,EAAE,OAAO,oCAAoC,8HAA8H,GAAG,EAAE,sBAAsB;;AAEpV;AACf;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACdA;;;AAGA;AACA;AAEA;;;;AAGA;AACA;AACA;AACA;AACA;AAOA;AAEA;;;;AAGA;AACA;AACA;AACA;AAEA;;;;;AAKA;;;;;;AAMA;;;;;;;AAOA;;;;;;;AAOA;;;;;;;AAOA;;;;;;;AAOA;;;;;;;;AAQA;;;;;;AAMA;;;;;AAKA;;;;;;;;;;;AAWA;;;;;;;;;;;;;;AAcA,SAASA,aAAT,CAAwBC,MAAxB,EAAgE;AAAA,MAAhCC,OAAgC,uEAAtB,EAAsB;AAAA,MAAlBC,UAAkB,uEAAL,EAAK;AAC/D,MAAMC,QAAQ,GAAG,EAAjB;;AACA,OAAM,IAAIC,CAAC,GAAG,CAAd,EAAiBA,CAAC,GAAGH,OAAO,CAACI,MAA7B,EAAqCD,CAAC,EAAtC,EAA2C;AAC1C,QAAME,MAAM,GAAGL,OAAO,CAAEG,CAAF,CAAtB,CAD0C,CAG1C;;AAH0C,2BAIlBE,MAJkB,CAIpCC,QAJoC;AAAA,QAIpCA,QAJoC,iCAIzB,EAJyB;;AAK1C,QAAK,aAAa,OAAOD,MAAM,CAACE,KAAhC,EAAwC;AACvCD,cAAQ,GAAG,6FAAKA,QAAR,UAAkBD,MAAM,CAACE,KAAzB,EAAR;AACA;;AAED,QAAMC,OAAO,GAAGF,QAAQ,CAACG,IAAT,CAAe,UAAEC,OAAF;AAAA,aAAeX,MAAM,CAACY,IAAP,CAAaC,sDAAM,CAAEF,OAAF,CAAnB,CAAf;AAAA,KAAf,CAAhB;;AACA,QAAK,CAAEF,OAAP,EAAiB;AAChB;AACA;;AAEDN,YAAQ,CAACW,IAAT,CAAeR,MAAf,EAd0C,CAgB1C;;AACA,QAAKH,QAAQ,CAACE,MAAT,KAAoBH,UAAzB,EAAsC;AACrC;AACA;AACD;;AAED,SAAOC,QAAP;AACA;;AAED,SAASY,YAAT,GAAwB;AACvB,MAAMC,KAAK,GAAGC,MAAM,CAACC,YAAP,GAAsBC,UAAtB,CAAkC,CAAlC,CAAd;;AAEA,MAAKH,KAAL,EAAa;AACZ,WAAOI,6EAAqB,CAAEJ,KAAF,CAA5B;AACA;AACD;;AAEM,IAAMK,YAAb;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA,sCAC0B;AACxB,aAAO;AACNrB,cAAM,EAAE,GADF;AAENsB,qBAAa,EAAE,CAFT;AAGNC,gBAAQ,EAAEC,SAHJ;AAINC,YAAI,EAAED,SAJA;AAKNE,aAAK,EAAEF,SALD;AAMNG,uBAAe,EAAE;AANX,OAAP;AAQA;AAVF;;AAYC,0BAAc;AAAA;;AAAA;;AACb,2OAAUC,SAAV;AAEA,UAAKC,QAAL,GAAgB,MAAKA,QAAL,CAAcC,IAAd,2MAAhB;AACA,UAAKC,MAAL,GAAc,MAAKA,MAAL,CAAYD,IAAZ,2MAAd;AACA,UAAKE,KAAL,GAAa,MAAKA,KAAL,CAAWF,IAAX,2MAAb;AACA,UAAKG,mBAAL,GAA2B,MAAKA,mBAAL,CAAyBH,IAAzB,2MAA3B;AACA,UAAKI,aAAL,GAAqB,MAAKA,aAAL,CAAmBJ,IAAnB,2MAArB;AACA,UAAKK,oBAAL,GAA4BC,wDAAQ,CAAE,MAAKC,WAAP,EAAoB,GAApB,CAApC;AAEA,UAAKC,KAAL,GAAa,MAAKC,WAAL,CAAiBC,eAAjB,EAAb;AAVa;AAWb;;AAvBF;AAAA;AAAA,6BAyBWC,IAzBX,EAyBkB;AAChB,WAAKA,IAAL,GAAYA,IAAZ;AACA;AA3BF;AAAA;AAAA,qCA6BmBC,WA7BnB,EA6BiC;AAAA,wBACP,KAAKJ,KADE;AAAA,UACvBb,IADuB,eACvBA,IADuB;AAAA,UACjBC,KADiB,eACjBA,KADiB;AAAA,wBAEF,KAAKiB,KAFH;AAAA,UAEvBC,MAFuB,eAEvBA,MAFuB;AAAA,UAEfC,QAFe,eAEfA,QAFe;AAG/B,UAAMC,GAAG,GAAGF,MAAM,CAACG,KAAnB;AACA,UAAMA,KAAK,GAAGD,GAAG,GAAGrB,IAAI,CAACuB,aAAL,CAAmB3C,MAAzB,GAAkCqB,KAAK,CAACrB,MAAtD;AACA,UAAM4C,QAAQ,GAAGC,oEAAM,CAAE;AAAEC,YAAI,EAAEC,yEAAc,CAAEV,WAAF;AAAtB,OAAF,CAAvB;AAEAG,cAAQ,CAAEQ,oEAAM,CAAET,MAAF,EAAUK,QAAV,EAAoBF,KAApB,EAA2BD,GAA3B,CAAR,CAAR;AACA;AArCF;AAAA;AAAA,2BAuCSxC,MAvCT,EAuCkB;AAAA,UACRgD,SADQ,GACM,KAAKX,KADX,CACRW,SADQ;AAAA,yBAEQ,KAAKhB,KAFb;AAAA,UAERb,IAFQ,gBAERA,IAFQ;AAAA,UAEFC,KAFE,gBAEFA,KAFE;;AAAA,iBAGgBD,IAAI,IAAI,EAHxB;AAAA,UAGR8B,mBAHQ,QAGRA,mBAHQ;;AAKhB,UAAKjD,MAAM,CAACkD,UAAZ,EAAyB;AACxB;AACA;;AAED,UAAKD,mBAAL,EAA2B;AAC1B,YAAME,UAAU,GAAGF,mBAAmB,CAAEjD,MAAM,CAACoD,KAAT,EAAgBhC,KAAhB,CAAtC;;AAD0B,oBAIvBF,SAAS,KAAKiC,UAAU,CAACE,MAAzB,IAAmCnC,SAAS,KAAKiC,UAAU,CAACC,KAA9D,GACC;AAAEC,gBAAM,EAAE,iBAAV;AAA6BD,eAAK,EAAED;AAApC,SADD,GAECA,UANwB;AAAA,YAGlBE,MAHkB,SAGlBA,MAHkB;AAAA,YAGVD,KAHU,SAGVA,KAHU;;AAQ1B,YAAK,cAAcC,MAAnB,EAA4B;AAC3BL,mBAAS,CAAE,CAAEI,KAAF,CAAF,CAAT;AACA,SAFD,MAEO,IAAK,sBAAsBC,MAA3B,EAAoC;AAC1C,eAAKC,gBAAL,CAAuBF,KAAvB;AACA;AACD,OAtBe,CAwBhB;AACA;;;AACA,WAAK1B,KAAL;AACA;AAlEF;AAAA;AAAA,4BAoES;AACP,UAAM6B,SAAS,GAAG,CAAC,CAAE,KAAKpB,IAA1B,CADO,CAGP;AACA;;AACA,UAAKoB,SAAL,EAAiB;AAChB,aAAKC,QAAL,CAAe,KAAKvB,WAAL,CAAiBC,eAAjB,EAAf;AACA;AACD;AA5EF;AAAA;AAAA,0CA8EuB;AAAA,yBACM,KAAKF,KADX;AAAA,UACbb,IADa,gBACbA,IADa;AAAA,UACPF,QADO,gBACPA,QADO;;AAErB,UAAKE,IAAI,IAAIF,QAAQ,KAAKE,IAAI,CAACsC,GAA/B,EAAqC;AACpC,aAAK/B,KAAL;AACA;AACD;AAnFF;AAAA;AAAA,yCAqFsB;AACpB,WAAKA,KAAL;AACA;AAvFF;AAAA;AAAA,6BAyFWL,eAzFX,EAyF6B;AAAA,UACnBqC,cADmB,GACA,KAAKrB,KADL,CACnBqB,cADmB;;AAE3B,UAAK,CAAEA,cAAP,EAAwB;AACvB;AACA;;AACD,UAAK,CAAC,CAAErC,eAAe,CAACtB,MAAxB,EAAiC;AAChC2D,sBAAc,CAAEC,gEAAO,CAAEC,2DAAE,CAC1B,0DAD0B,EAE1B,2DAF0B,EAG1BvC,eAAe,CAACtB,MAHU,CAAJ,EAIpBsB,eAAe,CAACtB,MAJI,CAAT,EAIe,WAJf,CAAd;AAKA,OAND,MAMO;AACN2D,sBAAc,CAAEG,2DAAE,CAAE,aAAF,CAAJ,EAAuB,WAAvB,CAAd;AACA;AACD;AAED;;;;;;;AAzGD;AAAA;AAAA,gCA+GcC,SA/Gd,EA+GyB1C,KA/GzB,EA+GiC;AAAA;;AAAA,UACvBzB,OADuB,GACXmE,SADW,CACvBnE,OADuB;AAG/B;;;;;;;;;;;;AAWA,UAAMoE,OAAO,GAAG,KAAKC,aAAL,GAAqBC,OAAO,CAACC,OAAR,CACpC,OAAOvE,OAAP,KAAmB,UAAnB,GAAgCA,OAAO,CAAEyB,KAAF,CAAvC,GAAmDzB,OADf,EAEnCwE,IAFmC,CAE7B,UAAEC,WAAF,EAAmB;AAAA;;AAC1B,YAAKL,OAAO,KAAK,MAAI,CAACC,aAAtB,EAAsC;AACrC;AACA;AACA;AACA;;AACD,YAAMK,YAAY,GAAGD,WAAW,CAACE,GAAZ,CAAiB,UAAEC,UAAF,EAAcC,WAAd;AAAA,iBAAiC;AACtEC,eAAG,YAAMX,SAAS,CAACL,GAAhB,cAAyBe,WAAzB,CADmE;AAEtEpB,iBAAK,EAAEmB,UAF+D;AAGtErE,iBAAK,EAAE4D,SAAS,CAACY,cAAV,CAA0BH,UAA1B,CAH+D;AAItEtE,oBAAQ,EAAE6D,SAAS,CAACa,iBAAV,GAA8Bb,SAAS,CAACa,iBAAV,CAA6BJ,UAA7B,CAA9B,GAA0E,EAJd;AAKtErB,sBAAU,EAAEY,SAAS,CAACc,gBAAV,GAA6Bd,SAAS,CAACc,gBAAV,CAA4BL,UAA5B,CAA7B,GAAwE;AALd,WAAjC;AAAA,SAAjB,CAArB;AAQA,YAAMlD,eAAe,GAAG5B,aAAa,CAAE,MAAI,CAACuC,KAAL,CAAWtC,MAAb,EAAqB2E,YAArB,CAArC;AACA,YAAMrD,aAAa,GAAGK,eAAe,CAACtB,MAAhB,KAA2B,MAAI,CAACiC,KAAL,CAAWX,eAAX,CAA2BtB,MAAtD,GAA+D,MAAI,CAACiC,KAAL,CAAWhB,aAA1E,GAA0F,CAAhH;;AACA,cAAI,CAACwC,QAAL,mIACG,aAAaM,SAAS,CAACL,GAD1B,EACiCY,YADjC,iIAEChD,eAFD,+HAGCL,aAHD;;AAKA,cAAI,CAAC6D,QAAL,CAAexD,eAAf;AACA,OAxBoC,CAArC;AAyBA;AAtJF;AAAA;AAAA,kCAwJgByD,KAxJhB,EAwJwB;AAAA,yBACqC,KAAK9C,KAD1C;AAAA,UACdb,IADc,gBACdA,IADc;AAAA,UACRF,QADQ,gBACRA,QADQ;AAAA,UACED,aADF,gBACEA,aADF;AAAA,UACiBK,eADjB,gBACiBA,eADjB;;AAEtB,UAAK,CAAEF,IAAP,EAAc;AACb;AACA;;AACD,UAAKF,QAAQ,KAAKE,IAAI,CAACsC,GAAvB,EAA6B;AAC5B,gBAASqB,KAAK,CAACC,OAAf;AACC;AACA,eAAKC,0DAAL;AAAA,gBACSC,OADT,GACgDH,KADhD,CACSG,OADT;AAAA,gBACkBC,QADlB,GACgDJ,KADhD,CACkBI,QADlB;AAAA,gBAC4BC,MAD5B,GACgDL,KADhD,CAC4BK,MAD5B;AAAA,gBACoCC,OADpC,GACgDN,KADhD,CACoCM,OADpC;;AAEC,gBAAKH,OAAO,IAAI,EAAIC,QAAQ,IAAIC,MAAZ,IAAsBC,OAA1B,CAAhB,EAAsD;AACrD,mBAAK5B,QAAL,CAAe;AAAEvC,wBAAQ,EAAEC;AAAZ,eAAf;AACA4D,mBAAK,CAACO,cAAN;AACAP,mBAAK,CAACQ,eAAN;AACA;;AACD;AAED;;AACA,eAAKC,uDAAL;AACA,eAAKC,yDAAL;AACA,eAAKC,yDAAL;AACA,eAAKC,0DAAL;AACC,iBAAKhE,KAAL;AAhBF;;AAkBA;AACA;;AACD,UAAKL,eAAe,CAACtB,MAAhB,KAA2B,CAAhC,EAAoC;AACnC;AACA;;AACD,UAAI4F,iBAAJ;;AACA,cAASb,KAAK,CAACC,OAAf;AACC,aAAKQ,uDAAL;AACCI,2BAAiB,GAAG,CAAE3E,aAAa,KAAK,CAAlB,GAAsBK,eAAe,CAACtB,MAAtC,GAA+CiB,aAAjD,IAAmE,CAAvF;AACA,eAAKwC,QAAL,CAAe;AAAExC,yBAAa,EAAE2E;AAAjB,WAAf;AACA;;AAED,aAAKH,yDAAL;AACCG,2BAAiB,GAAG,CAAE3E,aAAa,GAAG,CAAlB,IAAwBK,eAAe,CAACtB,MAA5D;AACA,eAAKyD,QAAL,CAAe;AAAExC,yBAAa,EAAE2E;AAAjB,WAAf;AACA;;AAED,aAAKC,2DAAL;AACC,eAAKpC,QAAL,CAAe;AAAEvC,oBAAQ,EAAEE,IAAI,CAACsC;AAAjB,WAAf;AACA;;AAED,aAAKoC,0DAAL;AACC,eAAKpE,MAAL,CAAaJ,eAAe,CAAEL,aAAF,CAA5B;AACA;;AAED,aAAKyE,yDAAL;AACA,aAAKC,0DAAL;AACC,eAAKhE,KAAL;AACA;;AAED;AACC;AAzBF,OA9BsB,CA0DtB;AACA;;;AACAoD,WAAK,CAACO,cAAN;AACAP,WAAK,CAACQ,eAAN;AACA;AAtNF;AAAA;AAAA,oCAwNkBQ,WAxNlB,EAwNgC;AAC9B;AACA;AACA;AACA;AACA;AACA,UAAMC,OAAO,GAAGD,WAAW,GAAG,kBAAH,GAAwB,qBAAnD;AACA,WAAK3D,IAAL,CAAW4D,OAAX,EAAsB,SAAtB,EAAiC,KAAKnE,aAAtC,EAAqD,IAArD;AACA;AAhOF;AAAA;AAAA,uCAkOqBoE,SAlOrB,EAkOgCC,SAlOhC,EAkO4C;AAAA,yBACX,KAAK5D,KADM;AAAA,UAClCC,MADkC,gBAClCA,MADkC;AAAA,UAC1B4D,UAD0B,gBAC1BA,UAD0B;AAAA,UAE1BC,UAF0B,GAEXH,SAFW,CAElC1D,MAFkC;AAAA,UAG5B8D,QAH4B,GAGfH,SAHe,CAGlC9E,IAHkC;;AAK1C,UAAO,CAAE,KAAKa,KAAL,CAAWb,IAAf,KAA4B,CAAEiF,QAAnC,EAAgD;AAC/C,aAAKC,eAAL,CAAsB,CAAE,CAAE,KAAKrE,KAAL,CAAWb,IAArC;AACA;;AAED,UAAKmF,yEAAW,CAAEhE,MAAF,CAAhB,EAA6B;AAC5B,YAAMiE,IAAI,GAAGhG,sDAAM,CAAEiG,4EAAc,CAAEC,mEAAK,CAAEnE,MAAF,EAAU,CAAV,CAAP,CAAhB,CAAnB;AACA,YAAMoE,QAAQ,GAAGnG,sDAAM,CAAEiG,4EAAc,CAAEC,mEAAK,CAAEN,UAAF,EAAc,CAAd,CAAP,CAAhB,CAAvB;;AAEA,YAAKI,IAAI,KAAKG,QAAd,EAAyB;AACxB,cAAMC,kBAAkB,GAAGH,4EAAc,CAAEC,mEAAK,CAAEnE,MAAF,EAAUpB,SAAV,EAAqBsF,4EAAc,CAAElE,MAAF,CAAd,CAAyBvC,MAA9C,CAAP,CAAzC;AACA,cAAM6G,aAAa,GAAGtC,mDAAG,CAAE4B,UAAF,EAAc,UAAEpC,SAAF,EAAaL,GAAb;AAAA,+GAA6BK,SAA7B;AAAwCL,iBAAG,EAAHA;AAAxC;AAAA,WAAd,CAAzB;AACA,cAAMtC,IAAI,GAAG0F,oDAAI,CAAED,aAAF,EAAiB,iBAAuC;AAAA,gBAAnClE,aAAmC,SAAnCA,aAAmC;AAAA,gBAApBoE,YAAoB,SAApBA,YAAoB;AACxE,gBAAMC,KAAK,GAAGR,IAAI,CAACS,WAAL,CAAkBtE,aAAlB,CAAd;;AAEA,gBAAKqE,KAAK,KAAK,CAAC,CAAhB,EAAoB;AACnB,qBAAO,KAAP;AACA;;AAED,gBAAKD,YAAY,IAAI,CAAEA,YAAY,CAAEP,IAAI,CAACE,KAAL,CAAY,CAAZ,EAAeM,KAAf,CAAF,EAA0BJ,kBAA1B,CAAnC,EAAoF;AACnF,qBAAO,KAAP;AACA;;AAED,mBAAO,QAAQrG,IAAR,CAAciG,IAAI,CAACE,KAAL,CAAYM,KAAK,GAAGrE,aAAa,CAAC3C,MAAlC,CAAd,CAAP;AACA,WAZgB,CAAjB;;AAcA,cAAK,CAAEoB,IAAP,EAAc;AACb,iBAAKO,KAAL;AACA;AACA;;AAED,cAAMuF,WAAW,GAAGC,4DAAY,CAAE/F,IAAI,CAACuB,aAAP,CAAhC;AACA,cAAMyE,KAAK,GAAGZ,IAAI,CAACY,KAAL,CAAY,IAAIC,MAAJ,WAAgBH,WAAhB,aAAZ,CAAd;AACA,cAAM7F,KAAK,GAAG+F,KAAK,IAAIA,KAAK,CAAE,CAAF,CAA5B;AAxBwB,6BAyB0C,KAAKnF,KAzB/C;AAAA,cAyBVqF,OAzBU,gBAyBhBlG,IAzBgB;AAAA,cAyBSmG,WAzBT,gBAyBDrG,QAzBC;AAAA,cAyB6BsG,QAzB7B,gBAyBsBnG,KAzBtB;;AA2BxB,cAAKD,IAAI,KAAM,CAAEkG,OAAF,IAAalG,IAAI,CAACsC,GAAL,KAAa4D,OAAO,CAAC5D,GAAlC,IAAyCrC,KAAK,KAAKmG,QAAzD,CAAT,EAA+E;AAC9E,gBAAKpG,IAAI,CAACqG,WAAV,EAAwB;AACvB,mBAAK3F,oBAAL,CAA2BV,IAA3B,EAAiCC,KAAjC;AACA,aAFD,MAEO;AACN,mBAAKW,WAAL,CAAkBZ,IAAlB,EAAwBC,KAAxB;AACA;AACD,WAjCuB,CAkCxB;;;AACA,cAAM1B,MAAM,GAAGyB,IAAI,GAAG,IAAIiG,MAAJ,CAAY,kBAAkBF,4DAAY,CAAE9F,KAAF,CAA1C,EAAqD,GAArD,CAAH,GAAgE,GAAnF,CAnCwB,CAoCxB;;AACA,cAAMC,eAAe,GAAGF,IAAI,GAAG1B,aAAa,CAAEC,MAAF,EAAU,KAAKsC,KAAL,CAAY,aAAab,IAAI,CAACsC,GAA9B,CAAV,CAAhB,GAAkE,EAA9F,CArCwB,CAsCxB;;AACA,cAAMxC,QAAQ,GAAKE,IAAI,IAAImG,WAAW,KAAKnG,IAAI,CAACsC,GAA/B,GAAuC6D,WAAvC,GAAqDpG,SAAtE,CAvCwB,CAwCxB;;AACA,cAAKmG,OAAO,IAAIlG,IAAhB,EAAuB;AACtB,iBAAKqC,QAAL,CAAe;AAAExC,2BAAa,EAAE,CAAjB;AAAoBK,6BAAe,EAAfA,eAApB;AAAqCJ,sBAAQ,EAARA,QAArC;AAA+CvB,oBAAM,EAANA,MAA/C;AAAuDyB,kBAAI,EAAJA,IAAvD;AAA6DC,mBAAK,EAALA;AAA7D,aAAf;AACA,WA3CuB,CA4CxB;;;AACA,cAAKD,IAAI,IAAI,KAAKa,KAAL,CAAY,aAAab,IAAI,CAACsC,GAA9B,CAAb,EAAmD;AAClD,iBAAKoB,QAAL,CAAexD,eAAf;AACA;AACD;AACD;AACD;AAjSF;AAAA;AAAA,2CAmSwB;AACtB,WAAKgF,eAAL,CAAsB,KAAtB;AACA,WAAKxE,oBAAL,CAA0B4F,MAA1B;AACA;AAtSF;AAAA;AAAA,6BAwSU;AAAA;;AAAA,yBACyB,KAAKpF,KAD9B;AAAA,UACAqF,QADA,gBACAA,QADA;AAAA,UACUC,UADV,gBACUA,UADV;AAAA,yBAEmD,KAAK3F,KAFxD;AAAA,UAEAb,IAFA,gBAEAA,IAFA;AAAA,UAEMF,QAFN,gBAEMA,QAFN;AAAA,UAEgBD,aAFhB,gBAEgBA,aAFhB;AAAA,UAE+BK,eAF/B,gBAE+BA,eAF/B;;AAAA,kBAG0BA,eAAe,CAAEL,aAAF,CAAf,IAAoC,EAH9D;AAAA,4BAGAyD,GAHA;AAAA,UAGKmD,WAHL,0BAGmB,EAHnB;;AAAA,kBAImBzG,IAAI,IAAI,EAJ3B;AAAA,UAIA0G,SAJA,SAIAA,SAJA;AAAA,UAIWpE,GAJX,SAIWA,GAJX;;AAKR,UAAMqE,UAAU,GAAG7G,QAAQ,KAAKwC,GAAb,IAAoBpC,eAAe,CAACtB,MAAhB,GAAyB,CAAhE;AACA,UAAMgI,SAAS,GAAGD,UAAU,6CAAuCH,UAAvC,IAAuD,IAAnF;AACA,UAAMK,QAAQ,GAAGF,UAAU,0CAAoCH,UAApC,cAAoDC,WAApD,IAAqE,IAAhG,CAPQ,CASR;;AACA;;AACA,aACC;AACC,WAAG,EAAG,KAAKrG,QADZ;AAEC,eAAO,EAAG,KAAKI,mBAFhB;AAGC,iBAAS,EAAC;AAHX,SAKG+F,QAAQ,CAAE;AAAEI,kBAAU,EAAVA,UAAF;AAAcC,iBAAS,EAATA,SAAd;AAAyBC,gBAAQ,EAARA;AAAzB,OAAF,CALX,EAMGF,UAAU,IACX,yEAAC,iDAAD;AACC,oBAAY,EAAG,KADhB;AAEC,eAAO,EAAG,KAAKpG,KAFhB;AAGC,gBAAQ,EAAC,WAHV;AAIC,iBAAS,EAAC,kCAJX;AAKC,qBAAa,EAAGjB;AALjB,SAOC;AACC,UAAE,EAAGsH,SADN;AAEC,YAAI,EAAC,SAFN;AAGC,iBAAS,EAAC;AAHX,SAKGD,UAAU,IAAIxD,mDAAG,CAAEjD,eAAF,EAAmB,UAAErB,MAAF,EAAU+G,KAAV;AAAA,eACrC,yEAAC,gDAAD;AACC,aAAG,EAAG/G,MAAM,CAACyE,GADd;AAEC,YAAE,yCAAoCkD,UAApC,cAAoD3H,MAAM,CAACyE,GAA3D,CAFH;AAGC,cAAI,EAAC,QAHN;AAIC,2BAAgBsC,KAAK,KAAK/F,aAJ3B;AAKC,kBAAQ,EAAGhB,MAAM,CAACkD,UALnB;AAMC,mBAAS,EAAG+E,kDAAU,CAAE,iCAAF,EAAqCJ,SAArC,EAAgD;AACrE,2BAAed,KAAK,KAAK/F;AAD4C,WAAhD,CANvB;AASC,iBAAO,EAAG;AAAA,mBAAM,MAAI,CAACS,MAAL,CAAazB,MAAb,CAAN;AAAA;AATX,WAWGA,MAAM,CAACE,KAXV,CADqC;AAAA,OAAnB,CALpB,CAPD,CAPF,CADD;AAwCA;AACA;AA5VF;;AAAA;AAAA,EAAkCgI,4DAAlC;AA+VeC,kIAAO,CAAE,CACvBC,2EADuB,EAEvBC,kEAFuB,EAGvBC,yEAHuB,CAAF,CAAP,CAIVvH,YAJU,CAAf;;;;;;;;;;;;;;;;;;;;ACnfA;;;AAGA;;AAEA,SAASwH,WAAT,OAAiE;AAAA,MAAzCC,EAAyC,QAAzCA,EAAyC;AAAA,MAArCtI,KAAqC,QAArCA,KAAqC;AAAA,MAA9BuI,IAA8B,QAA9BA,IAA8B;AAAA,MAAxBZ,SAAwB,QAAxBA,SAAwB;AAAA,MAAbH,QAAa,QAAbA,QAAa;AAChE,SACC;AAAK,aAAS,EAAGO,iDAAU,CAAE,yBAAF,EAA6BJ,SAA7B;AAA3B,KACC;AAAK,aAAS,EAAC;AAAf,KACG3H,KAAK,IAAIsI,EAAT,IAAe;AAAO,aAAS,EAAC,gCAAjB;AAAkD,WAAO,EAAGA;AAA5D,KAAmEtI,KAAnE,CADlB,EAEGA,KAAK,IAAI,CAAEsI,EAAX,IAAiB;AAAM,aAAS,EAAC;AAAhB,KAAmDtI,KAAnD,CAFpB,EAGGwH,QAHH,CADD,EAMG,CAAC,CAAEe,IAAH,IAAW;AAAG,MAAE,EAAGD,EAAE,GAAG,QAAb;AAAwB,aAAS,EAAC;AAAlC,KAAoEC,IAApE,CANd,CADD;AAUA;;AAEcF,0EAAf;;;;;;;;;;;;;;;;;;;;;;;;AClBA;;;AAGA;;AAEA,SAASG,WAAT,OAAgD;AAAA,MAAxBb,SAAwB,QAAxBA,SAAwB;AAAA,MAAVxF,KAAU;;AAC/C,MAAMsG,OAAO,GAAGV,iDAAU,CAAE,yBAAF,EAA6BJ,SAA7B,CAA1B;AAEA,SACC,uKAAUxF,KAAV;AAAkB,aAAS,EAAGsG,OAA9B;AAAwC,QAAI,EAAC;AAA7C,KADD;AAGA;;AAEcD,0EAAf;;;;;;;;;;;;;;;;;;;;;;;;ACbA;;;AAGA;AAEA;;;;AAGA;AAEO,SAASE,MAAT,CAAiBvG,KAAjB,EAAwBwG,GAAxB,EAA8B;AAAA,MAEnCC,IAFmC,GAgBhCzG,KAhBgC,CAEnCyG,IAFmC;AAAA,MAGnCC,MAHmC,GAgBhC1G,KAhBgC,CAGnC0G,MAHmC;AAAA,MAInCC,SAJmC,GAgBhC3G,KAhBgC,CAInC2G,SAJmC;AAAA,MAKnCC,OALmC,GAgBhC5G,KAhBgC,CAKnC4G,OALmC;AAAA,MAMnCC,OANmC,GAgBhC7G,KAhBgC,CAMnC6G,OANmC;AAAA,MAOnCC,UAPmC,GAgBhC9G,KAhBgC,CAOnC8G,UAPmC;AAAA,MAQnCC,SARmC,GAgBhC/G,KAhBgC,CAQnC+G,SARmC;AAAA,MASnCC,MATmC,GAgBhChH,KAhBgC,CASnCgH,MATmC;AAAA,MAUnCC,SAVmC,GAgBhCjH,KAhBgC,CAUnCiH,SAVmC;AAAA,MAWnCC,MAXmC,GAgBhClH,KAhBgC,CAWnCkH,MAXmC;AAAA,MAYnCC,aAZmC,GAgBhCnH,KAhBgC,CAYnCmH,aAZmC;AAAA,MAanC3B,SAbmC,GAgBhCxF,KAhBgC,CAanCwF,SAbmC;AAAA,MAcnC4B,QAdmC,GAgBhCpH,KAhBgC,CAcnCoH,QAdmC;AAAA,MAehCC,eAfgC,sGAgBhCrH,KAhBgC;;AAkBpC,MAAMsG,OAAO,GAAGV,iDAAU,CAAE,mBAAF,EAAuBJ,SAAvB,EAAkC;AAC3D,iBAAayB,SAAS,IAAIN,SAAb,IAA0BC,OAA1B,IAAqCC,OADS;AAE3D,kBAAcI,SAAS,IAAIL,OAAb,IAAwBC,OAFqB;AAG3D,kBAAcF,SAH6C;AAI3D,gBAAYC,OAJ+C;AAK3D,gBAAYC,OAL+C;AAM3D,mBAAeC,UAN4C;AAO3D,kBAAcC,SAP6C;AAQ3D,eAAWC,MARgD;AAS3D,eAAWE,MATgD;AAU3D,sBAAkBC;AAVyC,GAAlC,CAA1B;AAaA,MAAMG,GAAG,GAAGb,IAAI,KAAK5H,SAAT,IAAsB,CAAEuI,QAAxB,GAAmC,GAAnC,GAAyC,QAArD;AACA,MAAMG,QAAQ,GAAGD,GAAG,KAAK,GAAR,GAAc;AAAEb,QAAI,EAAJA,IAAF;AAAQC,UAAM,EAANA;AAAR,GAAd,GAAiC;AAAEc,QAAI,EAAE,QAAR;AAAkBJ,YAAQ,EAARA;AAAlB,GAAlD;AAEA,SAAOK,wEAAa,CAAEH,GAAF,8FAChBC,QADgB,EAEhBF,eAFgB;AAGnB7B,aAAS,EAAEc,OAHQ;AAInBE,OAAG,EAAHA;AAJmB,KAApB;AAMA;AAEckB,oIAAU,CAAEnB,MAAF,CAAzB;;;;;;;;;;;;;;;;;;;;;;;;;ACpDA;;;AAGA;AAEA;;;;AAGA;;AAEA,SAASoB,eAAT,OAAyG;AAAA,MAA7E9J,KAA6E,QAA7EA,KAA6E;AAAA,MAAtE2H,SAAsE,QAAtEA,SAAsE;AAAA,MAA3DoC,OAA2D,QAA3DA,OAA2D;AAAA,MAAlDC,OAAkD,QAAlDA,OAAkD;AAAA,MAAzCzB,IAAyC,QAAzCA,IAAyC;AAAA,MAAnCd,UAAmC,QAAnCA,UAAmC;AAAA,MAAvBpF,QAAuB,QAAvBA,QAAuB;AAAA,MAAVF,KAAU;;AACxG,MAAMmG,EAAE,wCAAkCb,UAAlC,CAAR;;AACA,MAAMwC,aAAa,GAAG,SAAhBA,aAAgB,CAAErF,KAAF;AAAA,WAAavC,QAAQ,CAAEuC,KAAK,CAACiE,MAAN,CAAamB,OAAf,CAArB;AAAA,GAAtB;;AAEA,SACC,yEAAC,qDAAD;AAAa,SAAK,EAAGD,OAArB;AAA+B,MAAE,EAAGzB,EAApC;AAAyC,QAAI,EAAGC,IAAhD;AAAuD,aAAS,EAAGZ;AAAnE,KACC;AACC,MAAE,EAAGW,EADN;AAEC,aAAS,EAAC,oCAFX;AAGC,QAAI,EAAC,UAHN;AAIC,SAAK,EAAC,GAJP;AAKC,YAAQ,EAAG2B,aALZ;AAMC,WAAO,EAAGD,OANX;AAOC,wBAAmB,CAAC,CAAEzB,IAAH,GAAUD,EAAE,GAAG,QAAf,GAA0BtH;AAP9C,KAQMmB,KARN,EADD,EAWC;AAAO,aAAS,EAAC,oCAAjB;AAAsD,WAAO,EAAGmG;AAAhE,KACGtI,KADH,CAXD,CADD;AAiBA;;AAEcmI,wIAAc,CAAE2B,eAAF,CAA7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjCA;;;AAGA;AACA;AAEA;;;;AAGA;AAEA;;;;AAGA;AACA;;IAEMI,e;;;;;AACL,6BAAc;AAAA;;AAAA;;AACb,8OAAU9I,SAAV;AAEA,UAAK+I,aAAL,GAAqB,MAAKA,aAAL,CAAmB7I,IAAnB,2MAArB;AACA,UAAK8I,MAAL,GAAc,MAAKA,MAAL,CAAY9I,IAAZ,2MAAd;AACA,UAAK+I,OAAL,GAAe,MAAKA,OAAL,CAAa/I,IAAb,2MAAf;AALa;AAMb;;;;wCAEmB;AAAA,UACXgJ,SADW,GACoB,IADpB,CACXA,SADW;AAAA,UACAD,OADA,GACoB,IADpB,CACAA,OADA;AAAA,UACSD,MADT,GACoB,IADpB,CACSA,MADT;AAEnB,UAAMG,MAAM,GAAGD,SAAS,CAACE,UAAzB;AAEA,WAAKC,SAAL,GAAiB,IAAIC,gDAAJ,CAAeH,MAAf,EAAuB;AACvClE,YAAI,EAAEgE,OADiC;AAEvCC,iBAAS,EAATA;AAFuC,OAAvB,CAAjB;AAKA,WAAKG,SAAL,CAAeE,EAAf,CAAmB,SAAnB,EAA8BP,MAA9B;AACA;;;2CAEsB;AACtB,WAAKK,SAAL,CAAeG,OAAf;AACA,aAAO,KAAKH,SAAZ;AACAI,kBAAY,CAAE,KAAKC,aAAP,CAAZ;AACA;;;kCAEcR,S,EAAY;AAC1B,WAAKA,SAAL,GAAiBA,SAAjB;AACA;;;2BAEOS,I,EAAO;AACd;AACA;AACA;AACAA,UAAI,CAACC,cAAL;AAJc,wBAMmB,KAAK7I,KANxB;AAAA,UAMNiI,MANM,eAMNA,MANM;AAAA,UAMEa,YANF,eAMEA,YANF;;AAOd,UAAKb,MAAL,EAAc;AACbA,cAAM,GADO,CAEb;AACA;AACA;AACA;;AACA,YAAKa,YAAL,EAAoB;AACnBJ,sBAAY,CAAE,KAAKC,aAAP,CAAZ;AACA,eAAKA,aAAL,GAAqBI,UAAU,CAAED,YAAF,EAAgB,IAAhB,CAA/B;AACA;AACD;AACD;;;8BAES;AACT,UAAI5E,IAAI,GAAG,KAAKlE,KAAL,CAAWkE,IAAtB;;AACA,UAAK,eAAe,OAAOA,IAA3B,EAAkC;AACjCA,YAAI,GAAGA,IAAI,EAAX;AACA;;AAED,aAAOA,IAAP;AACA;;;6BAEQ;AACR;AACA;AAFQ,yBAGoE,KAAKlE,KAHzE;AAAA,UAGAwF,SAHA,gBAGAA,SAHA;AAAA,UAGWH,QAHX,gBAGWA,QAHX;AAAA,UAGqB4C,MAHrB,gBAGqBA,MAHrB;AAAA,UAG6Ba,YAH7B,gBAG6BA,YAH7B;AAAA,UAG2C5E,IAH3C,gBAG2CA,IAH3C;AAAA,UAGoD8E,WAHpD;;AAAA,UAIAC,IAJA,GAISD,WAJT,CAIAC,IAJA;AAKR,UAAM3C,OAAO,GAAGV,kDAAU,CAAE,6BAAF,EAAiCJ,SAAjC,CAA1B;AACA,UAAM0D,cAAc,GAAGD,IAAI,GAAGE,qDAAH,GAAgB5C,gDAA3C,CANQ,CAQR;AACA;AACA;AACA;AACA;;AACA,UAAM6C,sBAAsB,GAAG,SAAzBA,sBAAyB,CAAE3G,KAAF,EAAa;AAC3CA,aAAK,CAACiE,MAAN,CAAa2C,KAAb;AACA,OAFD;;AAIA,aACC;AAAM,WAAG,EAAG,KAAKrB,aAAjB;AAAiC,cAAM,EAAGoB;AAA1C,SACC,yEAAC,cAAD,yFAAqBJ,WAArB;AAAmC,iBAAS,EAAG1C;AAA/C,UACGjB,QADH,CADD,CADD;AAOA;;;;EApF4BQ,4D;;AAuFfkC,8EAAf;;;;;;;;;;;;;;;;;;;;;;;;ACxGA;;;AAGA;;AAEA,IAAMuB,cAAc,GAAG,SAAjBA,cAAiB;AAAA,MAAI9D,SAAJ,QAAIA,SAAJ;AAAA,MAAe+D,UAAf,QAAeA,UAAf;AAAA,MAA8BvJ,KAA9B;;AAAA,SACtB;AACC,aAAS,EAAG4F,iDAAU,CAAE,2BAAF,EAA+BJ,SAA/B,CADvB;AAEC,SAAK,EAAG;AAAEgE,gBAAU,EAAED;AAAd;AAFT,KAGMvJ,KAHN,EADsB;AAAA,CAAvB;;AAQesJ,6EAAf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACbA;;;AAGA;AACA;AAEA;;;;AAGA;AAEA;;;;AAGA;AACA;AACA;AACA;AAEe,SAASG,YAAT,OAA6F;AAAA,MAApEC,MAAoE,QAApEA,MAAoE;AAAA,mCAA5DC,mBAA4D;AAAA,MAA5DA,mBAA4D,sCAAtC,KAAsC;AAAA,MAA/B5I,KAA+B,QAA/BA,KAA+B;AAAA,MAAxBb,QAAwB,QAAxBA,QAAwB;AAAA,MAAdsF,SAAc,QAAdA,SAAc;;AAC3G,WAASoE,YAAT,CAAuBC,KAAvB,EAA+B;AAC9B,WAAO;AAAA,aAAM3J,QAAQ,CAAEa,KAAK,KAAK8I,KAAV,GAAkBhL,SAAlB,GAA8BgL,KAAhC,CAAd;AAAA,KAAP;AACA;;AACD,MAAMC,sBAAsB,GAAGtI,0DAAE,CAAE,qBAAF,CAAjC;;AACA,MAAM8E,OAAO,GAAGV,iDAAU,CAAE,0BAAF,EAA8BJ,SAA9B,CAA1B;AACA,SACC;AAAK,aAAS,EAAGc;AAAjB,KACGrE,kDAAG,CAAEyH,MAAF,EAAU,iBAAuB;AAAA,QAAnBG,KAAmB,SAAnBA,KAAmB;AAAA,QAAZE,IAAY,SAAZA,IAAY;AACrC,QAAMC,KAAK,GAAG;AAAEH,WAAK,EAAEA;AAAT,KAAd;AACA,QAAMI,WAAW,GAAGrE,iDAAU,CAAE,gCAAF,EAAoC;AAAE,mBAAa7E,KAAK,KAAK8I;AAAzB,KAApC,CAA9B;AAEA,WACC;AAAK,SAAG,EAAGA,KAAX;AAAmB,eAAS,EAAC;AAA7B,OACC,yEAAC,gDAAD;AACC,UAAI,EAAGE,IAAI,IACV;AACAzI,qEAAO,CAAEE,0DAAE,CAAE,gBAAF,CAAJ,EAA0BqI,KAA1B;AAHT,OAKC;AACC,UAAI,EAAC,QADN;AAEC,eAAS,EAAGI,WAFb;AAGC,WAAK,EAAGD,KAHT;AAIC,aAAO,EAAGJ,YAAY,CAAEC,KAAF,CAJvB;AAKC,oBAAaE,IAAI,GAChB;AACAzI,qEAAO,CAAEE,0DAAE,CAAE,WAAF,CAAJ,EAAqBuI,IAArB,CAFS,GAGhB;AACAzI,qEAAO,CAAEE,0DAAE,CAAE,gBAAF,CAAJ,EAA0BqI,KAA1B,CATT;AAUC,sBAAe9I,KAAK,KAAK8I;AAV1B,MALD,CADD,CADD;AAsBA,GA1BI,CADN,EA6BG,CAAEF,mBAAF,IACD,yEAAC,iDAAD;AACC,aAAS,EAAC,+EADX;AAEC,oBAAgB,EAAC,kCAFlB;AAGC,gBAAY,EAAG;AAAA,UAAIO,MAAJ,SAAIA,MAAJ;AAAA,UAAYC,QAAZ,SAAYA,QAAZ;AAAA,aACd,yEAAC,gDAAD;AAAS,YAAI,EAAGL;AAAhB,SACC;AACC,YAAI,EAAC,QADN;AAEC,yBAAgBI,MAFjB;AAGC,iBAAS,EAAC,gCAHX;AAIC,eAAO,EAAGC,QAJX;AAKC,sBAAaL;AALd,SAOC;AAAM,iBAAS,EAAC;AAAhB,QAPD,CADD,CADc;AAAA,KAHhB;AAgBC,iBAAa,EAAG;AAAA,aACf,yEAAC,qDAAD;AACC,aAAK,EAAG/I,KADT;AAEC,wBAAgB,EAAG,0BAAE8I,KAAF;AAAA,iBAAa3J,QAAQ,CAAE2J,KAAK,CAACO,GAAR,CAArB;AAAA,SAFpB;AAGC,oBAAY;AAHb,QADe;AAAA;AAhBjB,IA9BF,EAwDC,yEAAC,+CAAD;AACC,aAAS,EAAC,iCADX;AAEC,QAAI,EAAC,QAFN;AAGC,WAAO,EAAG;AAAA,aAAMlK,QAAQ,CAAErB,SAAF,CAAd;AAAA,KAHX;AAIC,WAAO,MAJR;AAKC,aAAS;AALV,KAOG2C,0DAAE,CAAE,OAAF,CAPL,CAxDD,CADD;AAoEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7FD;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BA;;;AAGA;AAEA;;;;AAGA;AACA;AACA;AAEA;;;;AAGA;AACA;AAEO,IAAM6I,KAAb;AAAA;AAAA;AAAA;;AACC,mBAAc;AAAA;;AAAA;;AACb,oOAAUpL,SAAV;AAEA,UAAKkJ,SAAL,GAAiBmC,oEAAS,EAA1B;AACA,UAAKC,QAAL,GAAgB,MAAKA,QAAL,CAAcpL,IAAd,2MAAhB;AACA,UAAKqL,QAAL,GAAgB,MAAKA,QAAL,CAAcrL,IAAd,2MAAhB;AACA,UAAKsL,YAAL,GAAoB,MAAKA,YAAL,CAAkBtL,IAAlB,2MAApB;AACA,UAAKuL,eAAL,GAAuB,MAAKA,eAAL,CAAqBvL,IAArB,2MAAvB;AACA,UAAKwL,aAAL,GAAqB,MAAKA,aAAL,CAAmBxL,IAAnB,2MAArB;AARa;AASb;;AAVF;AAAA;AAAA,2CAYwB;AACtB,WAAKyL,oBAAL;AACA;AAdF;AAAA;AAAA,+BAgB2B;AAAA,UAAhBC,MAAgB,uEAAP,IAAO;AAAA,wBACQ,KAAK7K,KADb;AAAA,UACjB8K,GADiB,eACjBA,GADiB;AAAA,6CACZ5K,QADY;AAAA,UACZA,QADY,qCACD6K,2CADC;AAEzBF,YAAM,GAAGG,QAAQ,CAAEH,MAAM,GAAG,GAAX,EAAgB,EAAhB,CAAjB;AACA,UAAMI,MAAM,GAAG;AACdC,SAAC,EAAEJ,GAAG,CAACI,CADO;AAEdC,SAAC,EAAEL,GAAG,CAACK,CAFO;AAGdC,SAAC,EAAEN,GAAG,CAACM,CAHO;AAIdC,SAAC,EAAE,CAAEL,QAAQ,CAAEF,GAAG,CAACO,CAAJ,GAAQ,GAAV,EAAe,EAAf,CAAR,GAA8BR,MAAhC,IAA2C,GAJhC;AAKdS,cAAM,EAAE;AALM,OAAf;AAOApL,cAAQ,CAAE+K,MAAF,CAAR;AACA;AA3BF;AAAA;AAAA,+BA6B2B;AAAA,UAAhBJ,MAAgB,uEAAP,IAAO;AAAA,yBACQ,KAAK7K,KADb;AAAA,UACjB8K,GADiB,gBACjBA,GADiB;AAAA,+CACZ5K,QADY;AAAA,UACZA,QADY,sCACD6K,2CADC;AAEzB,UAAMQ,QAAQ,GAAGP,QAAQ,CAAEF,GAAG,CAACO,CAAJ,GAAQ,GAAV,EAAe,EAAf,CAAR,GAA8BL,QAAQ,CAAEH,MAAM,GAAG,GAAX,EAAgB,EAAhB,CAAvD;AACA,UAAMI,MAAM,GAAG;AACdC,SAAC,EAAEJ,GAAG,CAACI,CADO;AAEdC,SAAC,EAAEL,GAAG,CAACK,CAFO;AAGdC,SAAC,EAAEN,GAAG,CAACM,CAHO;AAIdC,SAAC,EAAEP,GAAG,CAACO,CAAJ,IAASR,MAAT,GAAkB,CAAlB,GAAsBU,QAAQ,GAAG,GAJtB;AAKdD,cAAM,EAAE;AALM,OAAf;AAOApL,cAAQ,CAAE+K,MAAF,CAAR;AACA;AAxCF;AAAA;AAAA,iCA0CeO,CA1Cf,EA0CmB;AAAA,kCACW,KAAKxL,KADhB,CACTE,QADS;AAAA,UACTA,QADS,sCACE6K,2CADF;AAEjB,UAAME,MAAM,GAAGQ,oEAAoB,CAAED,CAAF,EAAK,KAAKxL,KAAV,EAAiB,KAAKmI,SAAL,CAAeuD,OAAhC,CAAnC;;AACA,UAAKT,MAAL,EAAc;AACb/K,gBAAQ,CAAE+K,MAAF,EAAUO,CAAV,CAAR;AACA;AACD;AAhDF;AAAA;AAAA,oCAkDkBA,CAlDlB,EAkDsB;AACpB,WAAKf,YAAL,CAAmBe,CAAnB;AACAlN,YAAM,CAACqN,gBAAP,CAAyB,WAAzB,EAAsC,KAAKlB,YAA3C;AACAnM,YAAM,CAACqN,gBAAP,CAAyB,SAAzB,EAAoC,KAAKhB,aAAzC;AACA;AAtDF;AAAA;AAAA,oCAwDiB;AACf,WAAKC,oBAAL;AACA;AA1DF;AAAA;AAAA,qCA4DmBnI,KA5DnB,EA4D2B;AACzB,UAAKA,KAAK,CAACC,OAAN,KAAkBkJ,uDAAvB,EAA6B;AAC5B;AACA;;AACDnJ,WAAK,CAACO,cAAN;AACA;AAjEF;AAAA;AAAA,2CAmEwB;AACtB1E,YAAM,CAACuN,mBAAP,CAA4B,WAA5B,EAAyC,KAAKpB,YAA9C;AACAnM,YAAM,CAACuN,mBAAP,CAA4B,SAA5B,EAAuC,KAAKlB,aAA5C;AACA;AAtEF;AAAA;AAAA,6BAwEU;AAAA;;AAAA,UACAmB,GADA,GACQ,KAAK9L,KADb,CACA8L,GADA;AAER,UAAMC,SAAS,aAAOD,GAAG,CAACE,CAAX,cAAkBF,GAAG,CAACG,CAAtB,cAA6BH,GAAG,CAACI,CAAjC,CAAf;AACA,UAAMC,QAAQ,GAAG;AAChB3C,kBAAU,2CAAqCuC,SAArC,2BAAiEA,SAAjE;AADM,OAAjB;AAGA,UAAMK,eAAe,GAAG;AAAEC,YAAI,YAAMP,GAAG,CAACT,CAAJ,GAAQ,GAAd;AAAN,OAAxB;AAEA,UAAMiB,SAAS,GAAG;AACjBC,UAAE,EAAE;AAAA,iBAAM,MAAI,CAAChC,QAAL,EAAN;AAAA,SADa;AAEjBiC,aAAK,EAAE;AAAA,iBAAM,MAAI,CAACjC,QAAL,EAAN;AAAA,SAFU;AAGjB,oBAAY;AAAA,iBAAM,MAAI,CAACA,QAAL,CAAe,GAAf,CAAN;AAAA,SAHK;AAIjB,uBAAe;AAAA,iBAAM,MAAI,CAACA,QAAL,CAAe,GAAf,CAAN;AAAA,SAJE;AAKjBkC,cAAM,EAAE;AAAA,iBAAM,MAAI,CAAClC,QAAL,CAAe,GAAf,CAAN;AAAA,SALS;AAMjBpK,WAAG,EAAE;AAAA,iBAAM,MAAI,CAACoK,QAAL,CAAe,CAAf,CAAN;AAAA,SANY;AAOjBmC,YAAI,EAAE;AAAA,iBAAM,MAAI,CAAClC,QAAL,EAAN;AAAA,SAPW;AAQjB6B,YAAI,EAAE;AAAA,iBAAM,MAAI,CAAC7B,QAAL,EAAN;AAAA,SARW;AASjB,sBAAc;AAAA,iBAAM,MAAI,CAACA,QAAL,CAAe,GAAf,CAAN;AAAA,SATG;AAUjB,sBAAc;AAAA,iBAAM,MAAI,CAACA,QAAL,CAAe,GAAf,CAAN;AAAA,SAVG;AAWjBmC,gBAAQ,EAAE;AAAA,iBAAM,MAAI,CAACnC,QAAL,CAAe,GAAf,CAAN;AAAA,SAXO;AAYjBoC,YAAI,EAAE;AAAA,iBAAM,MAAI,CAACpC,QAAL,CAAe,CAAf,CAAN;AAAA;AAZW,OAAlB;AAeA,aACC,yEAAC,4DAAD;AAAmB,iBAAS,EAAG8B;AAA/B,SACC;AAAK,iBAAS,EAAC;AAAf,SACC;AACC,iBAAS,EAAC,yCADX;AAEC,aAAK,EAAGH;AAFT,QADD,EAMC;AACC,iBAAS,EAAC,oCADX;AAEC,WAAG,EAAG,KAAKhE,SAFZ;AAGC,mBAAW,EAAG,KAAKuC,eAHpB;AAIC,mBAAW,EAAG,KAAKD,YAJpB;AAKC,oBAAY,EAAG,KAAKA;AALrB,SAMC;AACC,gBAAQ,EAAC,GADV;AAEC,YAAI,EAAC,QAFN;AAGC,yBAAc,GAHf;AAIC,yBAAc,GAJf;AAKC,yBAAgBqB,GAAG,CAACT,CALrB;AAMC,4BAAiB,YANlB;AAOC,sBAAa7J,0DAAE,CACd,wDADc,CAPhB;AAUC,iBAAS,EAAC,wCAVX;AAWC,aAAK,EAAG4K,eAXT;AAYC,iBAAS,EAAG,KAAKS;AAZlB,QAND,CAND,CADD,CADD;AAiCA;AAhIF;;AAAA;AAAA,EAA2BhH,4DAA3B;AAmIewE,oEAAf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChLA;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BA;;;AAGA;AAEA;;;;AAGA;AACA;AACA;AACA;AAEA;;;;AAGA;AACA;AAEO,IAAMyC,GAAb;AAAA;AAAA;AAAA;;AACC,iBAAc;AAAA;;AAAA;;AACb,kOAAU7N,SAAV;AAEA,UAAKkJ,SAAL,GAAiBmC,oEAAS,EAA1B;AACA,UAAKC,QAAL,GAAgB,MAAKA,QAAL,CAAcpL,IAAd,2MAAhB;AACA,UAAKqL,QAAL,GAAgB,MAAKA,QAAL,CAAcrL,IAAd,2MAAhB;AACA,UAAKsL,YAAL,GAAoB,MAAKA,YAAL,CAAkBtL,IAAlB,2MAApB;AACA,UAAKuL,eAAL,GAAuB,MAAKA,eAAL,CAAqBvL,IAArB,2MAAvB;AACA,UAAKwL,aAAL,GAAqB,MAAKA,aAAL,CAAmBxL,IAAnB,2MAArB;AARa;AASb;;AAVF;AAAA;AAAA,2CAYwB;AACtB,WAAKyL,oBAAL;AACA;AAdF;AAAA;AAAA,+BAgBwB;AAAA,UAAbC,MAAa,uEAAJ,CAAI;AAAA,wBACW,KAAK7K,KADhB;AAAA,UACd8K,GADc,eACdA,GADc;AAAA,6CACT5K,QADS;AAAA,UACTA,QADS,qCACE6K,2CADF;AAEtB,UAAME,MAAM,GAAG;AACdC,SAAC,EAAEJ,GAAG,CAACI,CAAJ,GAAQL,MAAR,IAAkB,GAAlB,GAAwB,GAAxB,GAA8BC,GAAG,CAACI,CAAJ,GAAQL,MAD3B;AAEdM,SAAC,EAAEL,GAAG,CAACK,CAFO;AAGdC,SAAC,EAAEN,GAAG,CAACM,CAHO;AAIdC,SAAC,EAAEP,GAAG,CAACO,CAJO;AAKdC,cAAM,EAAE;AALM,OAAf;AAOApL,cAAQ,CAAE+K,MAAF,CAAR;AACA;AA1BF;AAAA;AAAA,+BA4BwB;AAAA,UAAbJ,MAAa,uEAAJ,CAAI;AAAA,yBACW,KAAK7K,KADhB;AAAA,UACd8K,GADc,gBACdA,GADc;AAAA,+CACT5K,QADS;AAAA,UACTA,QADS,sCACE6K,2CADF;AAEtB,UAAME,MAAM,GAAG;AACdC,SAAC,EAAEJ,GAAG,CAACI,CAAJ,IAASL,MAAT,GAAkB,CAAlB,GAAsBC,GAAG,CAACI,CAAJ,GAAQL,MADnB;AAEdM,SAAC,EAAEL,GAAG,CAACK,CAFO;AAGdC,SAAC,EAAEN,GAAG,CAACM,CAHO;AAIdC,SAAC,EAAEP,GAAG,CAACO,CAJO;AAKdC,cAAM,EAAE;AALM,OAAf;AAOApL,cAAQ,CAAE+K,MAAF,CAAR;AACA;AAtCF;AAAA;AAAA,iCAwCeO,CAxCf,EAwCmB;AAAA,kCACW,KAAKxL,KADhB,CACTE,QADS;AAAA,UACTA,QADS,sCACE6K,2CADF;AAEjB,UAAME,MAAM,GAAG8B,kEAAkB,CAAEvB,CAAF,EAAK,KAAKxL,KAAV,EAAiB,KAAKmI,SAAL,CAAeuD,OAAhC,CAAjC;;AACA,UAAKT,MAAL,EAAc;AACb/K,gBAAQ,CAAE+K,MAAF,EAAUO,CAAV,CAAR;AACA;AACD;AA9CF;AAAA;AAAA,oCAgDkBA,CAhDlB,EAgDsB;AACpB,WAAKf,YAAL,CAAmBe,CAAnB;AACAlN,YAAM,CAACqN,gBAAP,CAAyB,WAAzB,EAAsC,KAAKlB,YAA3C;AACAnM,YAAM,CAACqN,gBAAP,CAAyB,SAAzB,EAAoC,KAAKhB,aAAzC;AACA;AApDF;AAAA;AAAA,oCAsDiB;AACf,WAAKC,oBAAL;AACA;AAxDF;AAAA;AAAA,qCA0DmBnI,KA1DnB,EA0D2B;AACzB,UAAKA,KAAK,CAACC,OAAN,KAAkBkJ,wDAAvB,EAA6B;AAC5B;AACA;;AACDnJ,WAAK,CAACO,cAAN;AACA;AA/DF;AAAA;AAAA,2CAiEwB;AACtB1E,YAAM,CAACuN,mBAAP,CAA4B,WAA5B,EAAyC,KAAKpB,YAA9C;AACAnM,YAAM,CAACuN,mBAAP,CAA4B,SAA5B,EAAuC,KAAKlB,aAA5C;AACA;AApEF;AAAA;AAAA,6BAsEU;AAAA;;AAAA,yBACyB,KAAK3K,KAD9B;AAAA,0CACA8K,GADA;AAAA,UACAA,GADA,iCACM,EADN;AAAA,UACUxF,UADV,gBACUA,UADV;AAGR,UAAM8G,eAAe,GAAG;AAAEC,YAAI,YAAQvB,GAAG,CAACI,CAAJ,GAAQ,GAAV,GAAkB,GAAxB;AAAN,OAAxB;AACA,UAAMoB,SAAS,GAAG;AACjBC,UAAE,EAAE;AAAA,iBAAM,MAAI,CAAChC,QAAL,EAAN;AAAA,SADa;AAEjBiC,aAAK,EAAE;AAAA,iBAAM,MAAI,CAACjC,QAAL,EAAN;AAAA,SAFU;AAGjB,oBAAY;AAAA,iBAAM,MAAI,CAACA,QAAL,CAAe,EAAf,CAAN;AAAA,SAHK;AAIjB,uBAAe;AAAA,iBAAM,MAAI,CAACA,QAAL,CAAe,EAAf,CAAN;AAAA,SAJE;AAKjBkC,cAAM,EAAE;AAAA,iBAAM,MAAI,CAAClC,QAAL,CAAe,EAAf,CAAN;AAAA,SALS;AAMjBpK,WAAG,EAAE;AAAA,iBAAM,MAAI,CAACoK,QAAL,CAAe,GAAf,CAAN;AAAA,SANY;AAOjBmC,YAAI,EAAE;AAAA,iBAAM,MAAI,CAAClC,QAAL,EAAN;AAAA,SAPW;AAQjB6B,YAAI,EAAE;AAAA,iBAAM,MAAI,CAAC7B,QAAL,EAAN;AAAA,SARW;AASjB,sBAAc;AAAA,iBAAM,MAAI,CAACA,QAAL,CAAe,EAAf,CAAN;AAAA,SATG;AAUjB,sBAAc;AAAA,iBAAM,MAAI,CAACA,QAAL,CAAe,EAAf,CAAN;AAAA,SAVG;AAWjBmC,gBAAQ,EAAE;AAAA,iBAAM,MAAI,CAACnC,QAAL,CAAe,EAAf,CAAN;AAAA,SAXO;AAYjBoC,YAAI,EAAE;AAAA,iBAAM,MAAI,CAACpC,QAAL,CAAe,GAAf,CAAN;AAAA;AAZW,OAAlB;AAeA,aACC,yEAAC,4DAAD;AAAmB,iBAAS,EAAG8B;AAA/B,SACC;AAAK,iBAAS,EAAC;AAAf,SACC;AAAK,iBAAS,EAAC;AAAf,QADD,EAGC;AACC,iBAAS,EAAC,kCADX;AAEC,WAAG,EAAG,KAAKnE,SAFZ;AAGC,mBAAW,EAAG,KAAKuC,eAHpB;AAIC,mBAAW,EAAG,KAAKD,YAJpB;AAKC,oBAAY,EAAG,KAAKA;AALrB,SAMC;AACC,gBAAQ,EAAC,GADV;AAEC,YAAI,EAAC,QAFN;AAGC,yBAAc,GAHf;AAIC,yBAAc,KAJf;AAKC,yBAAgBK,GAAG,CAACI,CALrB;AAMC,4BAAiB,YANlB;AAOC,sBAAa1J,0DAAE,CAAE,sCAAF,CAPhB;AAQC,+EAAgE8D,UAAhE,CARD;AASC,iBAAS,EAAC,sCATX;AAUC,aAAK,EAAG8G,eAVT;AAWC,iBAAS,EAAG,KAAKS;AAXlB,QAND,EAmBC;AACC,iBAAS,EAAC,6DADX;AAEC,UAAE,qDAAgDvH,UAAhD;AAFH,SAIG9D,0DAAE,CAAE,6CAAF,CAJL,CAnBD,CAHD,CADD,CADD;AAmCA;AA5HF;;AAAA;AAAA,EAAyBqE,4DAAzB;AA+HeG,wIAAc,CAAE8G,GAAF,CAA7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7KA;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BA;;;AAGA;AACA;AAEA;;;;AAGA;AAEA;;;;AAGA;AACA;AACA;AACA;AACA;;IAEqBE,W;;;;;AACpB,6BAAoC;AAAA;;AAAA,0BAArBnD,KAAqB;AAAA,QAArBA,KAAqB,2BAAb,QAAa;;AAAA;;AACnC,0OAAU5K,SAAV;AACA,UAAKU,KAAL,GAAasN,4DAAY,CAAEpD,KAAF,CAAzB;AACA,UAAKY,YAAL,GAAoB,MAAKA,YAAL,CAAkBtL,IAAlB,2MAApB;AAHmC;AAInC;;;;iCAEa+N,I,EAAO;AAAA,wBACwB,KAAKlN,KAD7B;AAAA,UACZmN,MADY,eACZA,MADY;AAAA,8CACJC,gBADI;AAAA,UACJA,gBADI,sCACerC,2CADf;AAEpB,UAAMsC,YAAY,GAAGC,wEAAwB,CAAEJ,IAAF,CAA7C;;AACA,UAAKG,YAAL,EAAoB;AACnB,YAAM3D,MAAM,GAAGuD,4DAAY,CAAEC,IAAF,EAAQA,IAAI,CAAChC,CAAL,IAAUiC,MAAlB,CAA3B;AACA,aAAKhM,QAAL,CACCuI,MADD,EAECjK,uDAAQ,CAAE8N,sDAAO,CAAEH,gBAAF,EAAoB1D,MAApB,CAAT,EAAuC,GAAvC,CAFT;AAIA;AACD;;;6BAEQ;AAAA,yBAC4B,KAAK1J,KADjC;AAAA,UACAwF,SADA,gBACAA,SADA;AAAA,UACWgI,YADX,gBACWA,YADX;AAAA,wBAE8B,KAAK7N,KAFnC;AAAA,UAEAkK,KAFA,eAEAA,KAFA;AAAA,UAEOO,GAFP,eAEOA,GAFP;AAAA,UAEYU,GAFZ,eAEYA,GAFZ;AAAA,UAEiB2C,GAFjB,eAEiBA,GAFjB;AAAA,UAEsB3B,GAFtB,eAEsBA,GAFtB;AAGR,UAAMxF,OAAO,GAAGV,iDAAU,CAAEJ,SAAF,EAAa;AACtC,mCAA2B,IADW;AAEtC,6BAAqBgI,YAFiB;AAGtC,4BAAoB,CAAEA;AAHgB,OAAb,CAA1B;AAMA,aACC;AAAK,iBAAS,EAAGlH;AAAjB,SACC;AAAK,iBAAS,EAAC;AAAf,SACC,yEAAC,oDAAD;AACC,WAAG,EAAGwE,GADP;AAEC,WAAG,EAAG2C,GAFP;AAGC,gBAAQ,EAAG,KAAKhD;AAHjB,QADD,CADD,EASC;AAAK,iBAAS,EAAC;AAAf,SACC;AAAK,iBAAS,EAAC;AAAf,SACC;AAAK,iBAAS,EAAC;AAAf,SACC;AACC,iBAAS,EAAC,iCADX;AAEC,aAAK,EAAG;AACPiD,yBAAe,EAAE7D,KAAK,IAAIA,KAAK,CAAC8D,WAAN;AADnB;AAFT,QADD,CADD,EAUC;AAAK,iBAAS,EAAC;AAAf,SACC,yEAAC,6CAAD;AAAK,WAAG,EAAG7C,GAAX;AAAiB,gBAAQ,EAAG,KAAKL;AAAjC,QADD,EAEG+C,YAAY,GAAG,IAAH,GACb,yEAAC,8CAAD;AACC,WAAG,EAAG1B,GADP;AAEC,WAAG,EAAGhB,GAFP;AAGC,gBAAQ,EAAG,KAAKL;AAHjB,QAHF,CAVD,CADD,EAuBC,yEAAC,gDAAD;AACC,WAAG,EAAGqB,GADP;AAEC,WAAG,EAAGhB,GAFP;AAGC,WAAG,EAAGV,GAHP;AAIC,gBAAQ,EAAG,KAAKK,YAJjB;AAKC,oBAAY,EAAG+C;AALhB,QAvBD,CATD,CADD;AA2CA;;;;EAvEuC3H,4D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/CzC;;;AAGA;AAEA;;;;AAGA;AACA;AACA;AACA;AAEA;;;;AAGA;AACA;AACA;AAEA;;IACM+H,K;;;;;AACL,uBAAyB;AAAA;;AAAA,QAAV7M,KAAU,QAAVA,KAAU;;AAAA;;AACxB,oOAAU9B,SAAV;AACA,UAAKU,KAAL,GAAa;AAAEoB,WAAK,EAAE8M,MAAM,CAAE9M,KAAF,CAAN,CAAgB+M,WAAhB;AAAT,KAAb;AACA,UAAKC,UAAL,GAAkB,MAAKA,UAAL,CAAgB5O,IAAhB,2MAAlB;AACA,UAAKsL,YAAL,GAAoB,MAAKA,YAAL,CAAkBtL,IAAlB,2MAApB;AACA,UAAKI,aAAL,GAAqB,MAAKA,aAAL,CAAmBJ,IAAnB,2MAArB;AALwB;AAMxB;;;;8CAE0B6O,S,EAAY;AACtC,UAAKA,SAAS,CAACjN,KAAV,KAAoB,KAAKf,KAAL,CAAWe,KAApC,EAA4C;AAC3C,aAAKI,QAAL,CAAe;AACdJ,eAAK,EAAE8M,MAAM,CAAEG,SAAS,CAACjN,KAAZ,CAAN,CAA0B+M,WAA1B;AADO,SAAf;AAGA;AACD;;;iCAEY;AAAA,wBACmB,KAAK9N,KADxB;AAAA,UACJiO,QADI,eACJA,QADI;AAAA,UACM/N,QADN,eACMA,QADN;AAAA,UAEJa,KAFI,GAEM,KAAKpB,KAFX,CAEJoB,KAFI;AAGZb,cAAQ,CAAC,8FAAK+N,QAAN,EAAkBlN,KAAlB,EAAR;AACA;;;iCAEaA,K,EAAQ;AAAA,yBACU,KAAKf,KADf;AAAA,UACbiO,QADa,gBACbA,QADa;AAAA,UACH/N,QADG,gBACHA,QADG,EAErB;;AACA,UAAKa,KAAK,CAACrD,MAAN,GAAe,CAApB,EAAwB;AACvBwC,gBAAQ,CAAC,8FAAK+N,QAAN,EAAkBlN,KAAlB,EAAR;AACA;;AACD,WAAKI,QAAL,CAAe;AAAEJ,aAAK,EAALA;AAAF,OAAf;AACA;;;yCAE4B;AAAA,UAAZ2B,OAAY,SAAZA,OAAY;;AAC5B,UAAKA,OAAO,KAAKc,0DAAZ,IAAqBd,OAAO,KAAKQ,uDAAjC,IAAuCR,OAAO,KAAKS,yDAAxD,EAA+D;AAC9D;AACA;;AAH2B,UAIpBpC,KAJoB,GAIV,KAAKpB,KAJK,CAIpBoB,KAJoB;AAAA,yBAKG,KAAKf,KALR;AAAA,UAKpBiO,QALoB,gBAKpBA,QALoB;AAAA,UAKV/N,QALU,gBAKVA,QALU;AAM5BA,cAAQ,CAAC,8FAAK+N,QAAN,EAAkBlN,KAAlB,EAAR;AACA;;;6BAEQ;AAAA;;AAAA,yBACoB,KAAKf,KADzB;AAAA,UACAnC,KADA,gBACAA,KADA;AAAA,UACUmC,KADV;;AAAA,UAEAe,KAFA,GAEU,KAAKpB,KAFf,CAEAoB,KAFA;AAGR,aACC,yEAAC,sDAAD;AACC,iBAAS,EAAC,uCADX;AAEC,aAAK,EAAGlD,KAFT;AAGC,aAAK,EAAGkD,KAHT;AAIC,gBAAQ,EAAG,kBAAEmN,QAAF;AAAA,iBAAgB,MAAI,CAACzD,YAAL,CAAmByD,QAAnB,CAAhB;AAAA,SAJZ;AAKC,cAAM,EAAG,KAAKH,UALf;AAMC,iBAAS,EAAG,KAAKxO;AANlB,SAOM4O,oDAAI,CAAEnO,KAAF,EAAS,CAAE,UAAF,EAAc,OAAd,EAAuB,UAAvB,CAAT,CAPV,EADD;AAWA;;;;EAvDkB6F,4D;;AA0Db,IAAMuI,MAAb;AAAA;AAAA;AAAA;;AACC,yBAAuB;AAAA;;AAAA,QAARtD,GAAQ,SAARA,GAAQ;;AAAA;;AACtB,sOAAU7L,SAAV;AAEA,QAAMoP,IAAI,GAAGvD,GAAG,CAACO,CAAJ,KAAU,CAAV,GAAc,KAAd,GAAsB,KAAnC;AACA,WAAK1L,KAAL,GAAa;AAAE0O,UAAI,EAAJA;AAAF,KAAb;AAEA,WAAKC,WAAL,GAAmB,OAAKA,WAAL,CAAiBnP,IAAjB,4MAAnB;AACA,WAAKsL,YAAL,GAAoB,OAAKA,YAAL,CAAkBtL,IAAlB,4MAApB;AAPsB;AAQtB;;AATF;AAAA;AAAA,kCAkBe;AACb,UAAK,KAAKQ,KAAL,CAAW0O,IAAX,KAAoB,KAAzB,EAAiC;AAChC,aAAKlN,QAAL,CAAe;AAAEkN,cAAI,EAAE;AAAR,SAAf;AAEAE,sEAAK,CAAE/M,2DAAE,CAAE,iBAAF,CAAJ,CAAL;AACA,OAJD,MAIO,IAAK,KAAK7B,KAAL,CAAW0O,IAAX,KAAoB,KAAzB,EAAiC;AACvC,aAAKlN,QAAL,CAAe;AAAEkN,cAAI,EAAE;AAAR,SAAf;AAEAE,sEAAK,CAAE/M,2DAAE,CAAE,sCAAF,CAAJ,CAAL;AACA,OAJM,MAIA,IAAK,KAAK7B,KAAL,CAAW0O,IAAX,KAAoB,KAAzB,EAAiC;AACvC,YAAK,KAAKrO,KAAL,CAAW8K,GAAX,CAAeO,CAAf,KAAqB,CAA1B,EAA8B;AAC7B,eAAKlK,QAAL,CAAe;AAAEkN,gBAAI,EAAE;AAAR,WAAf;AAEAE,wEAAK,CAAE/M,2DAAE,CAAE,uBAAF,CAAJ,CAAL;AACA,SAJD,MAIO;AACN,eAAKL,QAAL,CAAe;AAAEkN,gBAAI,EAAE;AAAR,WAAf;AAEAE,wEAAK,CAAE/M,2DAAE,CAAE,iBAAF,CAAJ,CAAL;AACA;AACD;AACD;AAtCF;AAAA;AAAA,iCAwCe0L,IAxCf,EAwCsB;AACpB,UAAKA,IAAI,CAAC9C,GAAV,EAAgB;AACf,YAAKoE,0DAAU,CAAEtB,IAAI,CAAC9C,GAAP,CAAf,EAA8B;AAC7B,eAAKpK,KAAL,CAAWE,QAAX,CAAqB;AACpBkK,eAAG,EAAE8C,IAAI,CAAC9C,GADU;AAEpBkB,kBAAM,EAAE;AAFY,WAArB;AAIA;AACD,OAPD,MAOO,IAAK4B,IAAI,CAAClB,CAAL,IAAUkB,IAAI,CAACjB,CAAf,IAAoBiB,IAAI,CAAChB,CAA9B,EAAkC;AACxC,aAAKlM,KAAL,CAAWE,QAAX,CAAqB;AACpB8L,WAAC,EAAEkB,IAAI,CAAClB,CAAL,IAAU,KAAKhM,KAAL,CAAW8L,GAAX,CAAeE,CADR;AAEpBC,WAAC,EAAEiB,IAAI,CAACjB,CAAL,IAAU,KAAKjM,KAAL,CAAW8L,GAAX,CAAeG,CAFR;AAGpBC,WAAC,EAAEgB,IAAI,CAAChB,CAAL,IAAU,KAAKlM,KAAL,CAAW8L,GAAX,CAAeI,CAHR;AAIpBZ,gBAAM,EAAE;AAJY,SAArB;AAMA,OAPM,MAOA,IAAK4B,IAAI,CAAC7B,CAAV,EAAc;AACpB,YAAK6B,IAAI,CAAC7B,CAAL,GAAS,CAAd,EAAkB;AACjB6B,cAAI,CAAC7B,CAAL,GAAS,CAAT;AACA,SAFD,MAEO,IAAK6B,IAAI,CAAC7B,CAAL,GAAS,CAAd,EAAkB;AACxB6B,cAAI,CAAC7B,CAAL,GAAS,CAAT;AACA;;AAED,aAAKrL,KAAL,CAAWE,QAAX,CAAqB;AACpBgL,WAAC,EAAE,KAAKlL,KAAL,CAAW8K,GAAX,CAAeI,CADE;AAEpBC,WAAC,EAAE,KAAKnL,KAAL,CAAW8K,GAAX,CAAeK,CAFE;AAGpBC,WAAC,EAAE,KAAKpL,KAAL,CAAW8K,GAAX,CAAeM,CAHE;AAIpBC,WAAC,EAAEoD,IAAI,CAACC,KAAL,CAAYxB,IAAI,CAAC7B,CAAL,GAAS,GAArB,IAA6B,GAJZ;AAKpBC,gBAAM,EAAE;AALY,SAArB;AAOA,OAdM,MAcA,IAAK4B,IAAI,CAAChC,CAAL,IAAUgC,IAAI,CAAC/B,CAAf,IAAoB+B,IAAI,CAAC9B,CAA9B,EAAkC;AACxC,aAAKpL,KAAL,CAAWE,QAAX,CAAqB;AACpBgL,WAAC,EAAEgC,IAAI,CAAChC,CAAL,IAAU,KAAKlL,KAAL,CAAW8K,GAAX,CAAeI,CADR;AAEpBC,WAAC,EAAE+B,IAAI,CAAC/B,CAAL,IAAU,KAAKnL,KAAL,CAAW8K,GAAX,CAAeK,CAFR;AAGpBC,WAAC,EAAE8B,IAAI,CAAC9B,CAAL,IAAU,KAAKpL,KAAL,CAAW8K,GAAX,CAAeM,CAHR;AAIpBE,gBAAM,EAAE;AAJY,SAArB;AAMA;AACD;AA7EF;AAAA;AAAA,mCA+EgB;AAAA,kCACmB,KAAKtL,KADxB,CACNwN,YADM;AAAA,UACNA,YADM,sCACS,KADT;;AAEd,UAAK,KAAK7N,KAAL,CAAW0O,IAAX,KAAoB,KAAzB,EAAiC;AAChC,eACC;AAAK,mBAAS,EAAC;AAAf,WACC,yEAAC,KAAD;AACC,eAAK,EAAG7M,2DAAE,CAAE,4BAAF,CADX;AAEC,kBAAQ,EAAC,KAFV;AAGC,eAAK,EAAG,KAAKxB,KAAL,CAAWoK,GAHpB;AAIC,kBAAQ,EAAG,KAAKK;AAJjB,UADD,CADD;AAUA,OAXD,MAWO,IAAK,KAAK9K,KAAL,CAAW0O,IAAX,KAAoB,KAAzB,EAAiC;AACvC,eACC,2FACC;AAAQ,mBAAS,EAAC;AAAlB,WACG7M,2DAAE,CAAE,oBAAF,CADL,CADD,EAIC;AAAK,mBAAS,EAAC;AAAf,WACC,yEAAC,KAAD;AACC,eAAK,EAAC,GADP;AAEC,kBAAQ,EAAC,GAFV;AAGC,eAAK,EAAG,KAAKxB,KAAL,CAAW8L,GAAX,CAAeE,CAHxB;AAIC,kBAAQ,EAAG,KAAKvB,YAJjB;AAKC,cAAI,EAAC,QALN;AAMC,aAAG,EAAC,GANL;AAOC,aAAG,EAAC;AAPL,UADD,EAUC,yEAAC,KAAD;AACC,eAAK,EAAC,GADP;AAEC,kBAAQ,EAAC,GAFV;AAGC,eAAK,EAAG,KAAKzK,KAAL,CAAW8L,GAAX,CAAeG,CAHxB;AAIC,kBAAQ,EAAG,KAAKxB,YAJjB;AAKC,cAAI,EAAC,QALN;AAMC,aAAG,EAAC,GANL;AAOC,aAAG,EAAC;AAPL,UAVD,EAmBC,yEAAC,KAAD;AACC,eAAK,EAAC,GADP;AAEC,kBAAQ,EAAC,GAFV;AAGC,eAAK,EAAG,KAAKzK,KAAL,CAAW8L,GAAX,CAAeI,CAHxB;AAIC,kBAAQ,EAAG,KAAKzB,YAJjB;AAKC,cAAI,EAAC,QALN;AAMC,aAAG,EAAC,GANL;AAOC,aAAG,EAAC;AAPL,UAnBD,EA4BG+C,YAAY,GAAG,IAAH,GACb,yEAAC,KAAD;AACC,eAAK,EAAC,GADP;AAEC,kBAAQ,EAAC,GAFV;AAGC,eAAK,EAAG,KAAKxN,KAAL,CAAW8L,GAAX,CAAeT,CAHxB;AAIC,kBAAQ,EAAG,KAAKZ,YAJjB;AAKC,cAAI,EAAC,QALN;AAMC,aAAG,EAAC,GANL;AAOC,aAAG,EAAC,GAPL;AAQC,cAAI,EAAC;AARN,UA7BF,CAJD,CADD;AAgDA,OAjDM,MAiDA,IAAK,KAAK9K,KAAL,CAAW0O,IAAX,KAAoB,KAAzB,EAAiC;AACvC,eACC,2FACC;AAAQ,mBAAS,EAAC;AAAlB,WACG7M,2DAAE,CAAE,oBAAF,CADL,CADD,EAIC;AAAK,mBAAS,EAAC;AAAf,WACC,yEAAC,KAAD;AACC,eAAK,EAAC,GADP;AAEC,kBAAQ,EAAC,GAFV;AAGC,eAAK,EAAG,KAAKxB,KAAL,CAAW8K,GAAX,CAAeI,CAHxB;AAIC,kBAAQ,EAAG,KAAKT,YAJjB;AAKC,cAAI,EAAC,QALN;AAMC,aAAG,EAAC,GANL;AAOC,aAAG,EAAC;AAPL,UADD,EAUC,yEAAC,KAAD;AACC,eAAK,EAAC,GADP;AAEC,kBAAQ,EAAC,GAFV;AAGC,eAAK,EAAG,KAAKzK,KAAL,CAAW8K,GAAX,CAAeK,CAHxB;AAIC,kBAAQ,EAAG,KAAKV,YAJjB;AAKC,cAAI,EAAC,QALN;AAMC,aAAG,EAAC,GANL;AAOC,aAAG,EAAC;AAPL,UAVD,EAmBC,yEAAC,KAAD;AACC,eAAK,EAAC,GADP;AAEC,kBAAQ,EAAC,GAFV;AAGC,eAAK,EAAG,KAAKzK,KAAL,CAAW8K,GAAX,CAAeM,CAHxB;AAIC,kBAAQ,EAAG,KAAKX,YAJjB;AAKC,cAAI,EAAC,QALN;AAMC,aAAG,EAAC,GANL;AAOC,aAAG,EAAC;AAPL,UAnBD,EA4BG+C,YAAY,GAAG,IAAH,GACb,yEAAC,KAAD;AACC,eAAK,EAAC,GADP;AAEC,kBAAQ,EAAC,GAFV;AAGC,eAAK,EAAG,KAAKxN,KAAL,CAAW8K,GAAX,CAAeO,CAHxB;AAIC,kBAAQ,EAAG,KAAKZ,YAJjB;AAKC,cAAI,EAAC,QALN;AAMC,aAAG,EAAC,GANL;AAOC,aAAG,EAAC,GAPL;AAQC,cAAI,EAAC;AARN,UA7BF,CAJD,CADD;AAgDA;AACD;AA/LF;AAAA;AAAA,6BAiMU;AACR,aACC;AAAK,iBAAS,EAAC;AAAf,SACG,KAAKkE,YAAL,EADH,EAEC;AAAK,iBAAS,EAAC;AAAf,SACC,yEAAC,qDAAD;AACC,YAAI,EAAC,iBADN;AAEC,aAAK,EAAGnN,2DAAE,CAAE,qBAAF,CAFX;AAGC,eAAO,EAAG,KAAK8M;AAHhB,QADD,CAFD,CADD;AAYA;AA9MF;AAAA;AAAA,6CAWkCtO,KAXlC,EAWyCL,KAXzC,EAWiD;AAC/C,UAAKK,KAAK,CAAC8K,GAAN,CAAUO,CAAV,KAAgB,CAAhB,IAAqB1L,KAAK,CAAC0O,IAAN,KAAe,KAAzC,EAAiD;AAChD,eAAO;AAAEA,cAAI,EAAE;AAAR,SAAP;AACA;;AACD,aAAO,IAAP;AACA;AAhBF;;AAAA;AAAA,EAA4BxI,4DAA5B;AAiNeuI,qEAAf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChSA;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BA;;;AAGA;AAEA;;;;AAGA;AACA;AACA;AACA;AAEA;;;;AAGA;AACA;AAEO,IAAMQ,UAAb;AAAA;AAAA;AAAA;;AACC,sBAAa5O,KAAb,EAAqB;AAAA;;AAAA;;AACpB,wOAAOA,KAAP;AAEA,UAAK6O,QAAL,GAAgBA,uDAAQ,CAAE,UAAEC,EAAF,EAAM5B,IAAN,EAAY1B,CAAZ,EAAmB;AAC5CsD,QAAE,CAAE5B,IAAF,EAAQ1B,CAAR,CAAF;AACA,KAFuB,EAErB,EAFqB,CAAxB;AAIA,UAAKrD,SAAL,GAAiBmC,oEAAS,EAA1B;AACA,UAAKyE,QAAL,GAAgB,MAAKA,QAAL,CAAc5P,IAAd,2MAAhB;AACA,UAAK6P,QAAL,GAAgB,MAAKA,QAAL,CAAc7P,IAAd,2MAAhB;AACA,UAAKsL,YAAL,GAAoB,MAAKA,YAAL,CAAkBtL,IAAlB,2MAApB;AACA,UAAKuL,eAAL,GAAuB,MAAKA,eAAL,CAAqBvL,IAArB,2MAAvB;AACA,UAAKwL,aAAL,GAAqB,MAAKA,aAAL,CAAmBxL,IAAnB,2MAArB;AAZoB;AAapB;;AAdF;AAAA;AAAA,2CAgBwB;AACtB,WAAK0P,QAAL,CAAczJ,MAAd;AACA,WAAKwF,oBAAL;AACA;AAnBF;AAAA;AAAA,+BAqB2B;AAAA,UAAhBC,MAAgB,uEAAP,IAAO;AAAA,wBACQ,KAAK7K,KADb;AAAA,UACjByN,GADiB,eACjBA,GADiB;AAAA,6CACZvN,QADY;AAAA,UACZA,QADY,qCACD6K,2CADC;AAEzB,UAAMkE,aAAa,GAAGC,oDAAK,CAC1BzB,GAAG,CAACtC,CAAJ,GAAQsD,IAAI,CAACC,KAAL,CAAY7D,MAAM,GAAG,GAArB,CADkB,EAE1B,CAF0B,EAG1B,GAH0B,CAA3B;AAKA,UAAMI,MAAM,GAAG;AACdC,SAAC,EAAEuC,GAAG,CAACvC,CADO;AAEdC,SAAC,EAAE8D,aAFW;AAGdE,SAAC,EAAE1B,GAAG,CAAC0B,CAHO;AAId9D,SAAC,EAAEoC,GAAG,CAACpC,CAJO;AAKdC,cAAM,EAAE;AALM,OAAf;AAQApL,cAAQ,CAAE+K,MAAF,CAAR;AACA;AArCF;AAAA;AAAA,+BAuC2B;AAAA,UAAhBJ,MAAgB,uEAAP,IAAO;AAAA,yBACQ,KAAK7K,KADb;AAAA,UACjByN,GADiB,gBACjBA,GADiB;AAAA,+CACZvN,QADY;AAAA,UACZA,QADY,sCACD6K,2CADC;AAEzB,UAAMQ,QAAQ,GAAG2D,oDAAK,CACrBzB,GAAG,CAAC0B,CAAJ,GAAQV,IAAI,CAACC,KAAL,CAAY7D,MAAM,GAAG,GAArB,CADa,EAErB,CAFqB,EAGrB,GAHqB,CAAtB;AAKA,UAAMI,MAAM,GAAG;AACdC,SAAC,EAAEuC,GAAG,CAACvC,CADO;AAEdC,SAAC,EAAEsC,GAAG,CAACtC,CAFO;AAGdgE,SAAC,EAAE5D,QAHW;AAIdF,SAAC,EAAEoC,GAAG,CAACpC,CAJO;AAKdC,cAAM,EAAE;AALM,OAAf;AAQApL,cAAQ,CAAE+K,MAAF,CAAR;AACA;AAvDF;AAAA;AAAA,iCAyDeO,CAzDf,EAyDmB;AAAA,kCACW,KAAKxL,KADhB,CACTE,QADS;AAAA,UACTA,QADS,sCACE6K,2CADF;AAEjB,UAAME,MAAM,GAAGmE,yEAAyB,CAAE5D,CAAF,EAAK,KAAKxL,KAAV,EAAiB,KAAKmI,SAAL,CAAeuD,OAAhC,CAAxC;AACA,WAAKmD,QAAL,CAAe3O,QAAf,EAAyB+K,MAAzB,EAAiCO,CAAjC;AACA;AA7DF;AAAA;AAAA,oCA+DkBA,CA/DlB,EA+DsB;AACpB,WAAKf,YAAL,CAAmBe,CAAnB;AACAlN,YAAM,CAACqN,gBAAP,CAAyB,WAAzB,EAAsC,KAAKlB,YAA3C;AACAnM,YAAM,CAACqN,gBAAP,CAAyB,SAAzB,EAAoC,KAAKhB,aAAzC;AACA;AAnEF;AAAA;AAAA,oCAqEiB;AACf,WAAKC,oBAAL;AACA;AAvEF;AAAA;AAAA,qCAyEmBnI,KAzEnB,EAyE2B;AACzB,UAAKA,KAAK,CAACC,OAAN,KAAkBkJ,uDAAvB,EAA6B;AAC5B;AACA;;AACDnJ,WAAK,CAACO,cAAN;AACA;AA9EF;AAAA;AAAA,2CAgFwB;AACtB1E,YAAM,CAACuN,mBAAP,CAA4B,WAA5B,EAAyC,KAAKpB,YAA9C;AACAnM,YAAM,CAACuN,mBAAP,CAA4B,SAA5B,EAAuC,KAAKlB,aAA5C;AACA;AAnFF;AAAA;AAAA,6BAqFU;AAAA;;AAAA,yBACyB,KAAK3K,KAD9B;AAAA,UACAyN,GADA,gBACAA,GADA;AAAA,UACK3C,GADL,gBACKA,GADL;AAAA,UACUxF,UADV,gBACUA,UADV;AAER,UAAM8G,eAAe,GAAG;AACvBiD,WAAG,YAAM,CAAG5B,GAAG,CAAC0B,CAAP,GAAa,GAAnB,MADoB;AAEvB9C,YAAI,YAAMoB,GAAG,CAACtC,CAAV;AAFmB,OAAxB;AAIA,UAAMmB,SAAS,GAAG;AACjBC,UAAE,EAAE;AAAA,iBAAM,MAAI,CAACyC,QAAL,EAAN;AAAA,SADa;AAEjB,oBAAY;AAAA,iBAAM,MAAI,CAACA,QAAL,CAAe,GAAf,CAAN;AAAA,SAFK;AAGjBvC,cAAM,EAAE;AAAA,iBAAM,MAAI,CAACuC,QAAL,CAAe,CAAf,CAAN;AAAA,SAHS;AAIjBtC,YAAI,EAAE;AAAA,iBAAM,MAAI,CAACsC,QAAL,CAAe,CAAC,IAAhB,CAAN;AAAA,SAJW;AAKjB,sBAAc;AAAA,iBAAM,MAAI,CAACA,QAAL,CAAe,CAAC,GAAhB,CAAN;AAAA,SALG;AAMjBrC,gBAAQ,EAAE;AAAA,iBAAM,MAAI,CAACqC,QAAL,CAAe,CAAC,CAAhB,CAAN;AAAA,SANO;AAOjBxC,aAAK,EAAE;AAAA,iBAAM,MAAI,CAACuC,QAAL,EAAN;AAAA,SAPU;AAQjB,uBAAe;AAAA,iBAAM,MAAI,CAACA,QAAL,CAAe,GAAf,CAAN;AAAA,SARE;AASjB5O,WAAG,EAAE;AAAA,iBAAM,MAAI,CAAC4O,QAAL,CAAe,CAAf,CAAN;AAAA,SATY;AAUjB1C,YAAI,EAAE;AAAA,iBAAM,MAAI,CAAC0C,QAAL,CAAe,CAAC,IAAhB,CAAN;AAAA,SAVW;AAWjB,sBAAc;AAAA,iBAAM,MAAI,CAACA,QAAL,CAAe,CAAC,GAAhB,CAAN;AAAA,SAXG;AAYjBnC,YAAI,EAAE;AAAA,iBAAM,MAAI,CAACmC,QAAL,CAAe,CAAC,CAAhB,CAAN;AAAA;AAZW,OAAlB;AAeA;;AACA,aACC,yEAAC,4DAAD;AAAmB,iBAAS,EAAGzC;AAA/B,SACC;AACC,aAAK,EAAG;AAAE9C,oBAAU,gBAAUsB,GAAG,CAACI,CAAd;AAAZ,SADT;AAEC,iBAAS,EAAC,2CAFX;AAGC,WAAG,EAAG,KAAK/C,SAHZ;AAIC,mBAAW,EAAG,KAAKuC,eAJpB;AAKC,mBAAW,EAAG,KAAKD,YALpB;AAMC,oBAAY,EAAG,KAAKA,YANrB;AAOC,YAAI,EAAC;AAPN,SASC;AAAK,iBAAS,EAAC;AAAf,QATD,EAUC;AAAK,iBAAS,EAAC;AAAf,QAVD,EAWC;AACC,sBAAajJ,0DAAE,CAAE,gBAAF,CADhB;AAEC,8DAA+C8D,UAA/C,CAFD;AAGC,iBAAS,EAAC,6CAHX;AAIC,aAAK,EAAG8G,eAJT;AAKC,iBAAS,EAAG,KAAKS;AALlB,QAXD,EAkBC;AACC,iBAAS,EAAC,oBADX;AAEC,UAAE,oCAA+BvH,UAA/B;AAFH,SAGG9D,0DAAE,CACH,4JADG,CAHL,CAlBD,CADD,CADD;AA8BA;AACA;AA1IF;;AAAA;AAAA,EAAgCqE,4DAAhC;AA6IeG,yIAAc,CAAE4I,UAAF,CAA7B;;;;;;;;;;;;;AC3LA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BA;;;AAGA;AACA;AAEA;;;;;;;;AAOO,SAAS3B,YAAT,GAAmD;AAAA,MAA5BC,IAA4B,uEAArB,EAAqB;AAAA,MAAjBC,MAAiB,uEAAR,KAAQ;AACzD,MAAMtD,KAAK,GAAGqD,IAAI,CAAC9C,GAAL,GAAWkF,iDAAS,CAAEpC,IAAI,CAAC9C,GAAP,CAApB,GAAmCkF,iDAAS,CAAEpC,IAAF,CAA1D;AACA,MAAMpC,GAAG,GAAGjB,KAAK,CAAC0F,KAAN,EAAZ;AACAzE,KAAG,CAACI,CAAJ,GAAQuD,IAAI,CAACC,KAAL,CAAY5D,GAAG,CAACI,CAAhB,CAAR;AACAJ,KAAG,CAACK,CAAJ,GAAQsD,IAAI,CAACC,KAAL,CAAY5D,GAAG,CAACK,CAAJ,GAAQ,GAApB,CAAR;AACAL,KAAG,CAACM,CAAJ,GAAQqD,IAAI,CAACC,KAAL,CAAY5D,GAAG,CAACM,CAAJ,GAAQ,GAApB,CAAR;AACA,MAAMqC,GAAG,GAAG5D,KAAK,CAAC2F,KAAN,EAAZ;AACA/B,KAAG,CAACvC,CAAJ,GAAQuD,IAAI,CAACC,KAAL,CAAYjB,GAAG,CAACvC,CAAhB,CAAR;AACAuC,KAAG,CAACtC,CAAJ,GAAQsD,IAAI,CAACC,KAAL,CAAYjB,GAAG,CAACtC,CAAJ,GAAQ,GAApB,CAAR;AACAsC,KAAG,CAAC0B,CAAJ,GAAQV,IAAI,CAACC,KAAL,CAAYjB,GAAG,CAAC0B,CAAJ,GAAQ,GAApB,CAAR;AACA,MAAMrD,GAAG,GAAGjC,KAAK,CAAC4F,KAAN,EAAZ;AACA,MAAMrF,GAAG,GAAGP,KAAK,CAAC6F,KAAN,EAAZ;;AACA,MAAK5E,GAAG,CAACK,CAAJ,KAAU,CAAf,EAAmB;AAClBL,OAAG,CAACI,CAAJ,GAAQiC,MAAM,IAAI,CAAlB;AACAM,OAAG,CAACvC,CAAJ,GAAQiC,MAAM,IAAI,CAAlB;AACA;;AACD,MAAMwC,WAAW,GAAGvF,GAAG,KAAK,QAAR,IAAoB0B,GAAG,CAACT,CAAJ,KAAU,CAAlD;AAEA,SAAO;AACNxB,SAAK,EAALA,KADM;AAENO,OAAG,EAAEuF,WAAW,GAAG,aAAH,cAAwBvF,GAAxB,CAFV;AAGNU,OAAG,EAAHA,GAHM;AAIN2C,OAAG,EAAHA,GAJM;AAKNN,UAAM,EAAED,IAAI,CAAChC,CAAL,IAAUiC,MAAV,IAAoBrC,GAAG,CAACI,CAL1B;AAMNY,OAAG,EAAHA,GANM;AAONR,UAAM,EAAE4B,IAAI,CAAC5B;AAPP,GAAP;AASA;AAED;;;;;;;;AAOA,SAASsE,cAAT,CAAyBpE,CAAzB,EAA4BrD,SAA5B,EAAwC;AACvCqD,GAAC,CAACxI,cAAF;;AADuC,8BAOnCmF,SAAS,CAAC0H,qBAAV,EAPmC;AAAA,MAGhCC,aAHgC,yBAGtCzD,IAHsC;AAAA,MAIjC0D,YAJiC,yBAItCV,GAJsC;AAAA,MAKtCW,KALsC,yBAKtCA,KALsC;AAAA,MAMtCC,MANsC,yBAMtCA,MANsC;;AAQvC,MAAMC,CAAC,GAAG,OAAO1E,CAAC,CAAC2E,KAAT,KAAmB,QAAnB,GAA8B3E,CAAC,CAAC2E,KAAhC,GAAwC3E,CAAC,CAAC4E,OAAF,CAAW,CAAX,EAAeD,KAAjE;AACA,MAAME,CAAC,GAAG,OAAO7E,CAAC,CAAC8E,KAAT,KAAmB,QAAnB,GAA8B9E,CAAC,CAAC8E,KAAhC,GAAwC9E,CAAC,CAAC4E,OAAF,CAAW,CAAX,EAAeE,KAAjE;AACA,MAAIjE,IAAI,GAAG6D,CAAC,IAAKJ,aAAa,GAAGxR,MAAM,CAACiS,WAA5B,CAAZ;AACA,MAAIlB,GAAG,GAAGgB,CAAC,IAAKN,YAAY,GAAGzR,MAAM,CAACkS,WAA3B,CAAX;;AAEA,MAAKnE,IAAI,GAAG,CAAZ,EAAgB;AACfA,QAAI,GAAG,CAAP;AACA,GAFD,MAEO,IAAKA,IAAI,GAAG2D,KAAZ,EAAoB;AAC1B3D,QAAI,GAAG2D,KAAP;AACA,GAFM,MAEA,IAAKX,GAAG,GAAG,CAAX,EAAe;AACrBA,OAAG,GAAG,CAAN;AACA,GAFM,MAEA,IAAKA,GAAG,GAAGY,MAAX,EAAoB;AAC1BZ,OAAG,GAAGY,MAAN;AACA;;AAED,SAAO;AAAEZ,OAAG,EAAHA,GAAF;AAAOhD,QAAI,EAAJA,IAAP;AAAa2D,SAAK,EAALA,KAAb;AAAoBC,UAAM,EAANA;AAApB,GAAP;AACA;AAED;;;;;;;;AAMO,SAASzB,UAAT,CAAqBpE,GAArB,EAA2B;AACjC;AACA,MAAMqG,EAAE,GAAG5C,MAAM,CAAEzD,GAAF,CAAN,CAAcsG,MAAd,CAAsB,CAAtB,MAA8B,GAA9B,GAAoC,CAApC,GAAwC,CAAnD;AACA,SACCtG,GAAG,CAAC1M,MAAJ,KAAe,IAAI+S,EAAnB,IAAyBrG,GAAG,CAAC1M,MAAJ,GAAa,IAAI+S,EAA1C,IAAgDnB,iDAAS,CAAElF,GAAF,CAAT,CAAiBuG,OAAjB,EADjD;AAGA;AAED;;;;;;;AAMO,SAASrD,wBAAT,CAAmCJ,IAAnC,EAA0C;AAChD,MAAM0D,WAAW,GAAG,CAAE,GAAF,EAAO,GAAP,EAAY,GAAZ,EAAiB,GAAjB,EAAsB,GAAtB,EAA2B,GAA3B,EAAgC,GAAhC,EAAqC,GAArC,CAApB;AACA,MAAI/I,OAAO,GAAG,CAAd;AACA,MAAIgJ,MAAM,GAAG,CAAb;AACAC,qDAAI,CAAEF,WAAF,EAAe,UAAEG,MAAF,EAAc;AAChC,QAAK7D,IAAI,CAAE6D,MAAF,CAAT,EAAsB;AACrBlJ,aAAO,IAAI,CAAX;;AACA,UAAK,CAAEmJ,KAAK,CAAE9D,IAAI,CAAE6D,MAAF,CAAN,CAAZ,EAAiC;AAChCF,cAAM,IAAI,CAAV;AACA;AACD;AACD,GAPG,CAAJ;AAQA,SAAOhJ,OAAO,KAAKgJ,MAAZ,GAAqB3D,IAArB,GAA4B,KAAnC;AACA;AAED;;;;;;;;;AAQO,SAASzB,oBAAT,CAA+BD,CAA/B,EAAkCxL,KAAlC,EAAyCmI,SAAzC,EAAqD;AAAA,wBACnCyH,cAAc,CAAEpE,CAAF,EAAKrD,SAAL,CADqB;AAAA,MACnDkE,IADmD,mBACnDA,IADmD;AAAA,MAC7C2D,KAD6C,mBAC7CA,KAD6C;;AAE3D,MAAM3E,CAAC,GAAGgB,IAAI,GAAG,CAAP,GAAW,CAAX,GAAeoC,IAAI,CAACC,KAAL,CAAcrC,IAAI,GAAG,GAAT,GAAiB2D,KAA7B,IAAuC,GAAhE;;AAEA,MAAKhQ,KAAK,CAAC8K,GAAN,CAAUO,CAAV,KAAgBA,CAArB,EAAyB;AACxB,WAAO;AACNH,OAAC,EAAElL,KAAK,CAAC8K,GAAN,CAAUI,CADP;AAENC,OAAC,EAAEnL,KAAK,CAAC8K,GAAN,CAAUK,CAFP;AAGNC,OAAC,EAAEpL,KAAK,CAAC8K,GAAN,CAAUM,CAHP;AAINC,OAAC,EAADA,CAJM;AAKNC,YAAM,EAAE;AALF,KAAP;AAOA;;AACD,SAAO,IAAP;AACA;AAED;;;;;;;;;AAQO,SAASyB,kBAAT,CAA6BvB,CAA7B,EAAgCxL,KAAhC,EAAuCmI,SAAvC,EAAmD;AAAA,yBACjCyH,cAAc,CAAEpE,CAAF,EAAKrD,SAAL,CADmB;AAAA,MACjDkE,IADiD,oBACjDA,IADiD;AAAA,MAC3C2D,KAD2C,oBAC3CA,KAD2C;;AAEzD,MAAMiB,OAAO,GAAK5E,IAAI,GAAG,GAAT,GAAiB2D,KAAjC;AACA,MAAM9E,CAAC,GAAGmB,IAAI,IAAI2D,KAAR,GAAgB,GAAhB,GAAwB,MAAMiB,OAAR,GAAoB,GAApD;;AAEA,MAAKjR,KAAK,CAAC8K,GAAN,CAAUI,CAAV,KAAgBA,CAArB,EAAyB;AACxB,WAAO;AACNA,OAAC,EAADA,CADM;AAENC,OAAC,EAAEnL,KAAK,CAAC8K,GAAN,CAAUK,CAFP;AAGNC,OAAC,EAAEpL,KAAK,CAAC8K,GAAN,CAAUM,CAHP;AAINC,OAAC,EAAErL,KAAK,CAAC8K,GAAN,CAAUO,CAJP;AAKNC,YAAM,EAAE;AALF,KAAP;AAOA;;AACD,SAAO,IAAP;AACA;AAED;;;;;;;;;AAQO,SAAS8D,yBAAT,CAAoC5D,CAApC,EAAuCxL,KAAvC,EAA8CmI,SAA9C,EAA0D;AAAA,yBAC3ByH,cAAc,CAAEpE,CAAF,EAAKrD,SAAL,CADa;AAAA,MACxDkH,GADwD,oBACxDA,GADwD;AAAA,MACnDhD,IADmD,oBACnDA,IADmD;AAAA,MAC7C2D,KAD6C,oBAC7CA,KAD6C;AAAA,MACtCC,MADsC,oBACtCA,MADsC;;AAEhE,MAAMiB,UAAU,GAAG7E,IAAI,GAAG,CAAP,GAAW,CAAX,GAAiBA,IAAI,GAAG,GAAT,GAAiB2D,KAAnD;AACA,MAAImB,MAAM,GAAG9B,GAAG,IAAIY,MAAP,GAAgB,CAAhB,GAAoB,EAAKZ,GAAG,GAAG,GAAR,GAAgBY,MAAnB,IAA8B,GAA/D,CAHgE,CAIhE;AACA;;AACA,MAAKkB,MAAM,GAAG,CAAd,EAAkB;AACjBA,UAAM,GAAG,CAAT;AACA;;AAED,SAAO;AACNjG,KAAC,EAAElL,KAAK,CAAC8K,GAAN,CAAUI,CADP;AAENC,KAAC,EAAE+F,UAFG;AAGN/B,KAAC,EAAEgC,MAHG;AAIN9F,KAAC,EAAErL,KAAK,CAAC8K,GAAN,CAAUO,CAJP;AAKNC,UAAM,EAAE;AALF,GAAP;AAOA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnND;;;;;;;AAOA;;;AAGA;AAEA;;;;AAGA;;IAEqB8F,Q;;;;;;;;;;;;;0CACGpD,S,EAAY;AAClC,aACC,KAAKhO,KAAL,CAAWiJ,IAAX,KAAoB+E,SAAS,CAAC/E,IAA9B,IACA,KAAKjJ,KAAL,CAAWqR,IAAX,KAAoBrD,SAAS,CAACqD,IAD9B,IAEA,KAAKrR,KAAL,CAAWwF,SAAX,KAAyBwI,SAAS,CAACxI,SAHpC;AAKA;;;6BAEQ;AAAA,wBAC+B,KAAKxF,KADpC;AAAA,UACAiJ,IADA,eACAA,IADA;AAAA,UACMzD,SADN,eACMA,SADN;AAAA,yCACiB6L,IADjB;AAAA,UACiBA,IADjB,iCACwB,EADxB;AAER,UAAIC,IAAJ;;AAEA,cAASrI,IAAT;AACC,aAAK,kBAAL;AACCqI,cAAI,GAAG,2YAAP;AACA;;AACD,aAAK,gBAAL;AACCA,cAAI,GAAG,wHAAP;AACA;;AACD,aAAK,gBAAL;AACCA,cAAI,GAAG,sFAAP;AACA;;AACD,aAAK,kBAAL;AACCA,cAAI,GAAG,iRAAP;AACA;;AACD,aAAK,eAAL;AACCA,cAAI,GAAG,4aAAP;AACA;;AACD,aAAK,YAAL;AACCA,cAAI,GAAG,wHAAP;AACA;;AACD,aAAK,aAAL;AACCA,cAAI,GAAG,+iBAAP;AACA;;AACD,aAAK,aAAL;AACCA,cAAI,GAAG,2WAAP;AACA;;AACD,aAAK,iBAAL;AACCA,cAAI,GAAG,0RAAP;AACA;;AACD,aAAK,eAAL;AACCA,cAAI,GAAG,iRAAP;AACA;;AACD,aAAK,YAAL;AACCA,cAAI,GAAG,qCAAP;AACA;;AACD,aAAK,eAAL;AACCA,cAAI,GAAG,2UAAP;AACA;;AACD,aAAK,YAAL;AACCA,cAAI,GAAG,8QAAP;AACA;;AACD,aAAK,gBAAL;AACCA,cAAI,GAAG,0WAAP;AACA;;AACD,aAAK,gBAAL;AACCA,cAAI,GAAG,gtBAAP;AACA;;AACD,aAAK,iBAAL;AACCA,cAAI,GAAG,qsBAAP;AACA;;AACD,aAAK,iBAAL;AACCA,cAAI,GAAG,wqCAAP;AACA;;AACD,aAAK,YAAL;AACCA,cAAI,GAAG,ycAAP;AACA;;AACD,aAAK,aAAL;AACCA,cAAI,GAAG,4TAAP;AACA;;AACD,aAAK,aAAL;AACCA,cAAI,GAAG,iPAAP;AACA;;AACD,aAAK,OAAL;AACCA,cAAI,GAAG,stBAAP;AACA;;AACD,aAAK,cAAL;AACCA,cAAI,GAAG,+CAAP;AACA;;AACD,aAAK,kBAAL;AACCA,cAAI,GAAG,mCAAP;AACA;;AACD,aAAK,YAAL;AACCA,cAAI,GAAG,0EAAP;AACA;;AACD,aAAK,YAAL;AACCA,cAAI,GAAG,+CAAP;AACA;;AACD,aAAK,iBAAL;AACCA,cAAI,GAAG,8CAAP;AACA;;AACD,aAAK,kBAAL;AACCA,cAAI,GAAG,8CAAP;AACA;;AACD,aAAK,aAAL;AACCA,cAAI,GAAG,yEAAP;AACA;;AACD,aAAK,YAAL;AACCA,cAAI,GAAG,+CAAP;AACA;;AACD,aAAK,WAAL;AACCA,cAAI,GAAG,sKAAP;AACA;;AACD,aAAK,SAAL;AACCA,cAAI,GAAG,8CAAP;AACA;;AACD,aAAK,gBAAL;AACCA,cAAI,GAAG,sCAAP;AACA;;AACD,aAAK,iBAAL;AACCA,cAAI,GAAG,2BAAP;AACA;;AACD,aAAK,YAAL;AACCA,cAAI,GAAG,sBAAP;AACA;;AACD,aAAK,gBAAL;AACCA,cAAI,GAAG,uCAAP;AACA;;AACD,aAAK,iBAAL;AACCA,cAAI,GAAG,6BAAP;AACA;;AACD,aAAK,YAAL;AACCA,cAAI,GAAG,uBAAP;AACA;;AACD,aAAK,iBAAL;AACCA,cAAI,GAAG,wCAAP;AACA;;AACD,aAAK,kBAAL;AACCA,cAAI,GAAG,4BAAP;AACA;;AACD,aAAK,aAAL;AACCA,cAAI,GAAG,qBAAP;AACA;;AACD,aAAK,cAAL;AACCA,cAAI,GAAG,yCAAP;AACA;;AACD,aAAK,eAAL;AACCA,cAAI,GAAG,8BAAP;AACA;;AACD,aAAK,UAAL;AACCA,cAAI,GAAG,uBAAP;AACA;;AACD,aAAK,KAAL;AACCA,cAAI,GAAG,qPAAP;AACA;;AACD,aAAK,QAAL;AACCA,cAAI,GAAG,obAAP;AACA;;AACD,aAAK,QAAL;AACCA,cAAI,GAAG,mZAAP;AACA;;AACD,aAAK,eAAL;AACCA,cAAI,GAAG,gEAAP;AACA;;AACD,aAAK,UAAL;AACCA,cAAI,GAAG,iKAAP;AACA;;AACD,aAAK,MAAL;AACCA,cAAI,GAAG,6FAAP;AACA;;AACD,aAAK,oBAAL;AACCA,cAAI,GAAG,2VAAP;AACA;;AACD,aAAK,wBAAL;AACCA,cAAI,GAAG,8xBAAP;AACA;;AACD,aAAK,2BAAL;AACCA,cAAI,GAAG,ioBAAP;AACA;;AACD,aAAK,qBAAL;AACCA,cAAI,GAAG,osBAAP;AACA;;AACD,aAAK,kBAAL;AACCA,cAAI,GAAG,2cAAP;AACA;;AACD,aAAK,mBAAL;AACCA,cAAI,GAAG,gZAAP;AACA;;AACD,aAAK,kBAAL;AACCA,cAAI,GAAG,gcAAP;AACA;;AACD,aAAK,cAAL;AACCA,cAAI,GAAG,+JAAP;AACA;;AACD,aAAK,mBAAL;AACCA,cAAI,GAAG,ikCAAP;AACA;;AACD,aAAK,kBAAL;AACCA,cAAI,GAAG,2fAAP;AACA;;AACD,aAAK,oBAAL;AACCA,cAAI,GAAG,qaAAP;AACA;;AACD,aAAK,UAAL;AACCA,cAAI,GAAG,mOAAP;AACA;;AACD,aAAK,aAAL;AACCA,cAAI,GAAG,01BAAP;AACA;;AACD,aAAK,QAAL;AACCA,cAAI,GAAG,mJAAP;AACA;;AACD,aAAK,cAAL;AACCA,cAAI,GAAG,ipBAAP;AACA;;AACD,aAAK,UAAL;AACCA,cAAI,GAAG,gSAAP;AACA;;AACD,aAAK,QAAL;AACCA,cAAI,GAAG,+FAAP;AACA;;AACD,aAAK,QAAL;AACCA,cAAI,GAAG,ylBAAP;AACA;;AACD,aAAK,MAAL;AACCA,cAAI,GAAG,0QAAP;AACA;;AACD,aAAK,UAAL;AACCA,cAAI,GAAG,+BAAP;AACA;;AACD,aAAK,YAAL;AACCA,cAAI,GAAG,sZAAP;AACA;;AACD,aAAK,WAAL;AACCA,cAAI,GAAG,iDAAP;AACA;;AACD,aAAK,YAAL;AACCA,cAAI,GAAG,kcAAP;AACA;;AACD,aAAK,WAAL;AACCA,cAAI,GAAG,kFAAP;AACA;;AACD,aAAK,WAAL;AACCA,cAAI,GAAG,4lBAAP;AACA;;AACD,aAAK,OAAL;AACCA,cAAI,GAAG,gPAAP;AACA;;AACD,aAAK,aAAL;AACCA,cAAI,GAAG,mQAAP;AACA;;AACD,aAAK,cAAL;AACCA,cAAI,GAAG,mOAAP;AACA;;AACD,aAAK,OAAL;AACCA,cAAI,GAAG,wMAAP;AACA;;AACD,aAAK,SAAL;AACCA,cAAI,GAAG,gCAAP;AACA;;AACD,aAAK,eAAL;AACCA,cAAI,GAAG,mCAAP;AACA;;AACD,aAAK,kBAAL;AACCA,cAAI,GAAG,kCAAP;AACA;;AACD,aAAK,gBAAL;AACCA,cAAI,GAAG,iCAAP;AACA;;AACD,aAAK,eAAL;AACCA,cAAI,GAAG,mBAAP;AACA;;AACD,aAAK,iBAAL;AACCA,cAAI,GAAG,8EAAP;AACA;;AACD,aAAK,mBAAL;AACCA,cAAI,GAAG,oEAAP;AACA;;AACD,aAAK,sBAAL;AACCA,cAAI,GAAG,wDAAP;AACA;;AACD,aAAK,oBAAL;AACCA,cAAI,GAAG,yBAAP;AACA;;AACD,aAAK,mBAAL;AACCA,cAAI,GAAG,wcAAP;AACA;;AACD,aAAK,aAAL;AACCA,cAAI,GAAG,oNAAP;AACA;;AACD,aAAK,WAAL;AACCA,cAAI,GAAG,6dAAP;AACA;;AACD,aAAK,SAAL;AACCA,cAAI,GAAG,+JAAP;AACA;;AACD,aAAK,SAAL;AACCA,cAAI,GAAG,+GAAP;AACA;;AACD,aAAK,UAAL;AACCA,cAAI,GAAG,uDAAP;AACA;;AACD,aAAK,MAAL;AACCA,cAAI,GAAG,6MAAP;AACA;;AACD,aAAK,oBAAL;AACCA,cAAI,GAAG,4DAAP;AACA;;AACD,aAAK,kBAAL;AACCA,cAAI,GAAG,4DAAP;AACA;;AACD,aAAK,mBAAL;AACCA,cAAI,GAAG,2DAAP;AACA;;AACD,aAAK,aAAL;AACCA,cAAI,GAAG,2YAAP;AACA;;AACD,aAAK,cAAL;AACCA,cAAI,GAAG,+BAAP;AACA;;AACD,aAAK,aAAL;AACCA,cAAI,GAAG,qDAAP;AACA;;AACD,aAAK,iBAAL;AACCA,cAAI,GAAG,0JAAP;AACA;;AACD,aAAK,mBAAL;AACCA,cAAI,GAAG,0aAAP;AACA;;AACD,aAAK,eAAL;AACCA,cAAI,GAAG,4IAAP;AACA;;AACD,aAAK,aAAL;AACCA,cAAI,GAAG,ujBAAP;AACA;;AACD,aAAK,eAAL;AACCA,cAAI,GAAG,mIAAP;AACA;;AACD,aAAK,mBAAL;AACCA,cAAI,GAAG,yEAAP;AACA;;AACD,aAAK,eAAL;AACCA,cAAI,GAAG,yEAAP;AACA;;AACD,aAAK,gBAAL;AACCA,cAAI,GAAG,4DAAP;AACA;;AACD,aAAK,oBAAL;AACCA,cAAI,GAAG,wOAAP;AACA;;AACD,aAAK,YAAL;AACCA,cAAI,GAAG,yMAAP;AACA;;AACD,aAAK,eAAL;AACCA,cAAI,GAAG,2jCAAP;AACA;;AACD,aAAK,WAAL;AACCA,cAAI,GAAG,m6BAAP;AACA;;AACD,aAAK,gBAAL;AACCA,cAAI,GAAG,+HAAP;AACA;;AACD,aAAK,kBAAL;AACCA,cAAI,GAAG,0bAAP;AACA;;AACD,aAAK,mBAAL;AACCA,cAAI,GAAG,kOAAP;AACA;;AACD,aAAK,mBAAL;AACCA,cAAI,GAAG,0PAAP;AACA;;AACD,aAAK,cAAL;AACCA,cAAI,GAAG,mYAAP;AACA;;AACD,aAAK,yBAAL;AACCA,cAAI,GAAG,gZAAP;AACA;;AACD,aAAK,YAAL;AACCA,cAAI,GAAG,yMAAP;AACA;;AACD,aAAK,mBAAL;AACCA,cAAI,GAAG,k3BAAP;AACA;;AACD,aAAK,sBAAL;AACCA,cAAI,GAAG,06BAAP;AACA;;AACD,aAAK,cAAL;AACCA,cAAI,GAAG,4FAAP;AACA;;AACD,aAAK,kBAAL;AACCA,cAAI,GAAG,qEAAP;AACA;;AACD,aAAK,WAAL;AACCA,cAAI,GAAG,gUAAP;AACA;;AACD,aAAK,kBAAL;AACCA,cAAI,GAAG,+IAAP;AACA;;AACD,aAAK,eAAL;AACCA,cAAI,GAAG,+eAAP;AACA;;AACD,aAAK,cAAL;AACCA,cAAI,GAAG,sQAAP;AACA;;AACD,aAAK,UAAL;AACCA,cAAI,GAAG,qJAAP;AACA;;AACD,aAAK,WAAL;AACCA,cAAI,GAAG,oYAAP;AACA;;AACD,aAAK,YAAL;AACCA,cAAI,GAAG,iRAAP;AACA;;AACD,aAAK,OAAL;AACCA,cAAI,GAAG,uQAAP;AACA;;AACD,aAAK,aAAL;AACCA,cAAI,GAAG,2NAAP;AACA;;AACD,aAAK,eAAL;AACCA,cAAI,GAAG,2JAAP;AACA;;AACD,aAAK,aAAL;AACCA,cAAI,GAAG,yPAAP;AACA;;AACD,aAAK,YAAL;AACCA,cAAI,GAAG,+VAAP;AACA;;AACD,aAAK,aAAL;AACCA,cAAI,GAAG,2LAAP;AACA;;AACD,aAAK,cAAL;AACCA,cAAI,GAAG,2NAAP;AACA;;AACD,aAAK,MAAL;AACCA,cAAI,GAAG,uFAAP;AACA;;AACD,aAAK,UAAL;AACCA,cAAI,GAAG,mFAAP;AACA;;AACD,aAAK,cAAL;AACCA,cAAI,GAAG,yJAAP;AACA;;AACD,aAAK,UAAL;AACCA,cAAI,GAAG,+PAAP;AACA;;AACD,aAAK,UAAL;AACCA,cAAI,GAAG,wJAAP;AACA;;AACD,aAAK,QAAL;AACCA,cAAI,GAAG,qFAAP;AACA;;AACD,aAAK,MAAL;AACCA,cAAI,GAAG,wDAAP;AACA;;AACD,aAAK,cAAL;AACCA,cAAI,GAAG,8EAAP;AACA;;AACD,aAAK,cAAL;AACCA,cAAI,GAAG,+PAAP;AACA;;AACD,aAAK,aAAL;AACCA,cAAI,GAAG,qLAAP;AACA;;AACD,aAAK,gBAAL;AACCA,cAAI,GAAG,+WAAP;AACA;;AACD,aAAK,cAAL;AACCA,cAAI,GAAG,+QAAP;AACA;;AACD,aAAK,cAAL;AACCA,cAAI,GAAG,iZAAP;AACA;;AACD,aAAK,eAAL;AACCA,cAAI,GAAG,+YAAP;AACA;;AACD,aAAK,cAAL;AACCA,cAAI,GAAG,iJAAP;AACA;;AACD,aAAK,OAAL;AACCA,cAAI,GAAG,kOAAP;AACA;;AACD,aAAK,YAAL;AACCA,cAAI,GAAG,wUAAP;AACA;;AACD,aAAK,WAAL;AACCA,cAAI,GAAG,2JAAP;AACA;;AACD,aAAK,QAAL;AACCA,cAAI,GAAG,yyBAAP;AACA;;AACD,aAAK,QAAL;AACCA,cAAI,GAAG,wPAAP;AACA;;AACD,aAAK,SAAL;AACCA,cAAI,GAAG,0CAAP;AACA;;AACD,aAAK,OAAL;AACCA,cAAI,GAAG,+NAAP;AACA;;AACD,aAAK,QAAL;AACCA,cAAI,GAAG,00BAAP;AACA;;AACD,aAAK,MAAL;AACCA,cAAI,GAAG,2QAAP;AACA;;AACD,aAAK,QAAL;AACCA,cAAI,GAAG,ozBAAP;AACA;;AACD,aAAK,IAAL;AACCA,cAAI,GAAG,yxBAAP;AACA;;AACD,aAAK,YAAL;AACCA,cAAI,GAAG,4EAAP;AACA;;AACD,aAAK,cAAL;AACCA,cAAI,GAAG,iUAAP;AACA;;AACD,aAAK,uBAAL;AACCA,cAAI,GAAG,2FAAP;AACA;;AACD,aAAK,qBAAL;AACCA,cAAI,GAAG,qFAAP;AACA;;AACD,aAAK,mBAAL;AACCA,cAAI,GAAG,wIAAP;AACA;;AACD,aAAK,oBAAL;AACCA,cAAI,GAAG,iJAAP;AACA;;AACD,aAAK,cAAL;AACCA,cAAI,GAAG,gOAAP;AACA;;AACD,aAAK,YAAL;AACCA,cAAI,GAAG,sOAAP;AACA;;AACD,aAAK,aAAL;AACCA,cAAI,GAAG,yJAAP;AACA;;AACD,aAAK,YAAL;AACCA,cAAI,GAAG,oKAAP;AACA;;AACD,aAAK,cAAL;AACCA,cAAI,GAAG,+JAAP;AACA;;AACD,aAAK,MAAL;AACCA,cAAI,GAAG,6HAAP;AACA;;AACD,aAAK,cAAL;AACCA,cAAI,GAAG,2JAAP;AACA;;AACD,aAAK,eAAL;AACCA,cAAI,GAAG,2JAAP;AACA;;AACD,aAAK,QAAL;AACCA,cAAI,GAAG,kIAAP;AACA;;AACD,aAAK,WAAL;AACCA,cAAI,GAAG,2sBAAP;AACA;;AACD,aAAK,QAAL;AACCA,cAAI,GAAG,qJAAP;AACA;;AACD,aAAK,QAAL;AACCA,cAAI,GAAG,yEAAP;AACA;;AACD,aAAK,WAAL;AACCA,cAAI,GAAG,sCAAP;AACA;;AACD,aAAK,WAAL;AACCA,cAAI,GAAG,oTAAP;AACA;;AACD,aAAK,WAAL;AACCA,cAAI,GAAG,kWAAP;AACA;;AACD,aAAK,cAAL;AACCA,cAAI,GAAG,kQAAP;AACA;;AACD,aAAK,UAAL;AACCA,cAAI,GAAG,6RAAP;AACA;;AACD,aAAK,MAAL;AACCA,cAAI,GAAG,kQAAP;AACA;;AACD,aAAK,QAAL;AACCA,cAAI,GAAG,sHAAP;AACA;;AACD,aAAK,eAAL;AACCA,cAAI,GAAG,kVAAP;AACA;;AACD,aAAK,aAAL;AACCA,cAAI,GAAG,uZAAP;AACA;;AACD,aAAK,YAAL;AACCA,cAAI,GAAG,yEAAP;AACA;;AACD,aAAK,eAAL;AACCA,cAAI,GAAG,mCAAP;AACA;;AACD,aAAK,gBAAL;AACCA,cAAI,GAAG,sJAAP;AACA;;AACD,aAAK,mBAAL;AACCA,cAAI,GAAG,yJAAP;AACA;;AACD,aAAK,mBAAL;AACCA,cAAI,GAAG,yOAAP;AACA;;AACD,aAAK,YAAL;AACCA,cAAI,GAAG,wHAAP;AACA;;AACD,aAAK,aAAL;AACCA,cAAI,GAAG,+NAAP;AACA;;AACD,aAAK,WAAL;AACCA,cAAI,GAAG,22BAAP;AACA;;AACD,aAAK,UAAL;AACCA,cAAI,GAAG,6CAAP;AACA;;AACD,aAAK,MAAL;AACCA,cAAI,GAAG,8CAAP;AACA;;AACD,aAAK,YAAL;AACCA,cAAI,GAAG,sSAAP;AACA;;AACD,aAAK,SAAL;AACCA,cAAI,GAAG,oDAAP;AACA;;AACD,aAAK,OAAL;AACCA,cAAI,GAAG,gBAAP;AACA;;AACD,aAAK,OAAL;AACCA,cAAI,GAAG,2kCAAP;AACA;;AACD,aAAK,MAAL;AACCA,cAAI,GAAG,4EAAP;AACA;;AACD,aAAK,SAAL;AACCA,cAAI,GAAG,+eAAP;AACA;;AACD,aAAK,YAAL;AACCA,cAAI,GAAG,wcAAP;AACA;;AACD,aAAK,QAAL;AACCA,cAAI,GAAG,uHAAP;AACA;;AACD,aAAK,IAAL;AACCA,cAAI,GAAG,sHAAP;AACA;;AACD,aAAK,UAAL;AACCA,cAAI,GAAG,okBAAP;AACA;;AACD,aAAK,WAAL;AACCA,cAAI,GAAG,wlBAAP;AACA;;AACD,aAAK,aAAL;AACCA,cAAI,GAAG,0eAAP;AACA;;AACD,aAAK,OAAL;AACCA,cAAI,GAAG,6YAAP;AACA;;AACD,aAAK,gBAAL;AACCA,cAAI,GAAG,qeAAP;AACA;;AACD,aAAK,gBAAL;AACCA,cAAI,GAAG,4KAAP;AACA;;AACD,aAAK,UAAL;AACCA,cAAI,GAAG,sJAAP;AACA;;AACD,aAAK,YAAL;AACCA,cAAI,GAAG,kCAAP;AACA;;AACD,aAAK,MAAL;AACCA,cAAI,GAAG,kCAAP;AACA;;AACD,aAAK,WAAL;AACCA,cAAI,GAAG,ufAAP;AACA;;AACD,aAAK,aAAL;AACCA,cAAI,GAAG,wJAAP;AACA;;AACD,aAAK,WAAL;AACCA,cAAI,GAAG,mUAAP;AACA;;AACD,aAAK,UAAL;AACCA,cAAI,GAAG,+QAAP;AACA;;AACD,aAAK,WAAL;AACCA,cAAI,GAAG,8HAAP;AACA;;AACD,aAAK,MAAL;AACCA,cAAI,GAAG,mFAAP;AACA;;AACD,aAAK,UAAL;AACCA,cAAI,GAAG,cAAP;AACA;;AACD,aAAK,KAAL;AACCA,cAAI,GAAG,8RAAP;AACA;;AACD,aAAK,OAAL;AACCA,cAAI,GAAG,oDAAP;AACA;;AACD,aAAK,UAAL;AACCA,cAAI,GAAG,uGAAP;AACA;;AACD,aAAK,eAAL;AACCA,cAAI,GAAG,2DAAP;AACA;;AACD,aAAK,QAAL;AACCA,cAAI,GAAG,qjBAAP;AACA;;AACD,aAAK,WAAL;AACCA,cAAI,GAAG,ikCAAP;AACA;;AACD,aAAK,YAAL;AACCA,cAAI,GAAG,8HAAP;AACA;;AACD,aAAK,OAAL;AACCA,cAAI,GAAG,+UAAP;AACA;;AACD,aAAK,YAAL;AACCA,cAAI,GAAG,oDAAP;AACA;;AACD,aAAK,QAAL;AACCA,cAAI,GAAG,kGAAP;AACA;;AACD,aAAK,WAAL;AACCA,cAAI,GAAG,iEAAP;AACA;;AACD,aAAK,QAAL;AACCA,cAAI,GAAG,uFAAP;AACA;;AACD,aAAK,YAAL;AACCA,cAAI,GAAG,6GAAP;AACA;;AACD,aAAK,QAAL;AACCA,cAAI,GAAG,0WAAP;AACA;;AACD,aAAK,MAAL;AACCA,cAAI,GAAG,4BAAP;AACA;;AACD,aAAK,KAAL;AACCA,cAAI,GAAG,ocAAP;AACA;;AACD,aAAK,YAAL;AACCA,cAAI,GAAG,4JAAP;AACA;;AACD,aAAK,aAAL;AACCA,cAAI,GAAG,gEAAP;AACA;;AACD,aAAK,WAAL;AACCA,cAAI,GAAG,2HAAP;AACA;;AACD,aAAK,QAAL;AACCA,cAAI,GAAG,wPAAP;AACA;;AACD,aAAK,OAAL;AACCA,cAAI,GAAG,+mBAAP;AACA;;AACD,aAAK,iBAAL;AACCA,cAAI,GAAG,8NAAP;AACA;;AACD,aAAK,kBAAL;AACCA,cAAI,GAAG,4NAAP;AACA;;AACD,aAAK,kBAAL;AACCA,cAAI,GAAG,wbAAP;AACA;;AACD,aAAK,iBAAL;AACCA,cAAI,GAAG,2NAAP;AACA;;AACD,aAAK,kBAAL;AACCA,cAAI,GAAG,+NAAP;AACA;;AACD,aAAK,kBAAL;AACCA,cAAI,GAAG,qTAAP;AACA;;AACD,aAAK,QAAL;AACCA,cAAI,GAAG,gHAAP;AACA;;AACD,aAAK,KAAL;AACCA,cAAI,GAAG,sEAAP;AACA;;AACD,aAAK,UAAL;AACCA,cAAI,GAAG,qJAAP;AACA;;AACD,aAAK,aAAL;AACCA,cAAI,GAAG,oNAAP;AACA;;AACD,aAAK,MAAL;AACCA,cAAI,GAAG,6FAAP;AACA;;AACD,aAAK,aAAL;AACCA,cAAI,GAAG,wNAAP;AACA;;AACD,aAAK,WAAL;AACCA,cAAI,GAAG,yMAAP;AACA;;AACD,aAAK,aAAL;AACCA,cAAI,GAAG,i7BAAP;AACA;;AACD,aAAK,SAAL;AACCA,cAAI,GAAG,ymDAAP;AACA;;AACD,aAAK,MAAL;AACCA,cAAI,GAAG,oJAAP;AACA;;AACD,aAAK,aAAL;AACCA,cAAI,GAAG,wiBAAP;AACA;;AACD,aAAK,OAAL;AACCA,cAAI,GAAG,0KAAP;AACA;;AACD,aAAK,SAAL;AACCA,cAAI,GAAG,wfAAP;AACA;;AACD,aAAK,MAAL;AACCA,cAAI,GAAG,oFAAP;AACA;;AACD,aAAK,sBAAL;AACCA,cAAI,GAAG,yUAAP;AACA;;AACD,aAAK,kBAAL;AACCA,cAAI,GAAG,8QAAP;AACA;;AACD,aAAK,QAAL;AACCA,cAAI,GAAG,wPAAP;AACA;;AACD,aAAK,QAAL;AACCA,cAAI,GAAG,sUAAP;AACA;;AACD,aAAK,QAAL;AACCA,cAAI,GAAG,wDAAP;AACA;;AACD,aAAK,OAAL;AACCA,cAAI,GAAG,sXAAP;AACA;;AACD,aAAK,WAAL;AACCA,cAAI,GAAG,6KAAP;AACA;;AACD,aAAK,YAAL;AACCA,cAAI,GAAG,qGAAP;AACA;;AACD,aAAK,YAAL;AACCA,cAAI,GAAG,2FAAP;AACA;;AACD,aAAK,YAAL;AACCA,cAAI,GAAG,2RAAP;AACA;;AACD,aAAK,SAAL;AACCA,cAAI,GAAG,+PAAP;AACA;;AACD,aAAK,kBAAL;AACCA,cAAI,GAAG,qEAAP;AACA;;AACD,aAAK,kBAAL;AACCA,cAAI,GAAG,iKAAP;AACA;;AACD,aAAK,oBAAL;AACCA,cAAI,GAAG,wQAAP;AACA;;AACD,aAAK,mBAAL;AACCA,cAAI,GAAG,uOAAP;AACA;;AACD,aAAK,uBAAL;AACCA,cAAI,GAAG,wYAAP;AACA;;AACD,aAAK,oBAAL;AACCA,cAAI,GAAG,mJAAP;AACA;;AACD,aAAK,eAAL;AACCA,cAAI,GAAG,kxBAAP;AACA;;AACD,aAAK,WAAL;AACCA,cAAI,GAAG,qxBAAP;AACA;;AACD,aAAK,SAAL;AACCA,cAAI,GAAG,yIAAP;AACA;;AACD,aAAK,KAAL;AACCA,cAAI,GAAG,kEAAP;AACA;AA71BF;;AAg2BA,UAAK,CAAEA,IAAP,EAAc;AACb,eAAO,IAAP;AACA;;AAED,UAAMC,SAAS,GAAG,CAAE,UAAF,EAAc,eAAetI,IAA7B,EAAmCzD,SAAnC,EAA+CgM,MAA/C,CAAuDC,OAAvD,EAAiEC,IAAjE,CAAuE,GAAvE,CAAlB;AAEA,aACC,yEAAC,+CAAD;AACC,2BADD;AAEC,YAAI,EAAC,KAFN;AAGC,iBAAS,EAAC,OAHX;AAIC,iBAAS,EAAGH,SAJb;AAKC,aAAK,EAAC,4BALP;AAMC,aAAK,EAAGF,IANT;AAOC,cAAM,EAAGA,IAPV;AAQC,eAAO,EAAC;AART,SAUC,yEAAC,gDAAD;AAAM,SAAC,EAAGC;AAAV,QAVD,CADD;AAcA;;;;EAj4BoCzL,4D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjBtC;;;AAGA;AACA;AAEA;;;;AAGA;AAEA;;;;AAGA,IAAM8L,mBAAmB,GAAG,qBAA5B;;IAEMC,U;;;;;AACL,wBAAc;AAAA;;AAAA;;AACb,yOAAU3S,SAAV;AAEA,UAAK4S,cAAL,GAAsB,MAAKA,cAAL,CAAoB1S,IAApB,2MAAtB;AAHa;AAIb;;;;mCAEe2S,O,EAAU;AAAA,wBACS,KAAK9R,KADd;AAAA,UACjB+R,WADiB,eACjBA,WADiB;AAAA,UACJ7R,QADI,eACJA,QADI;AAGzB,UAAM8R,UAAU,GAAGD,WAAW,GAAGE,6CAAM,CAAEF,WAAF,CAAT,GAA2BE,6CAAM,EAA/D;AACA,UAAMC,UAAU,GAAG;AAClBC,aAAK,EAAEH,UAAU,CAACG,KAAX,EADW;AAElBC,eAAO,EAAEJ,UAAU,CAACI,OAAX,EAFS;AAGlBC,eAAO,EAAEL,UAAU,CAACK,OAAX;AAHS,OAAnB;AAMAnS,cAAQ,CAAE4R,OAAO,CAACQ,GAAR,CAAaJ,UAAb,EAA0BK,MAA1B,CAAkCZ,mBAAlC,CAAF,CAAR;AACA;;;6BAEQ;AAAA,UACAI,WADA,GACgB,KAAK/R,KADrB,CACA+R,WADA;AAGR,UAAMC,UAAU,GAAGD,WAAW,GAAGE,6CAAM,CAAEF,WAAF,CAAT,GAA2BE,6CAAM,EAA/D;AAEA,aACC;AAAK,iBAAS,EAAC;AAAf,SACC,yEAAC,yEAAD;AACC,aAAK,MADN;AAEC,YAAI,EAAGD,UAFR;AAGC,eAAO,EAAG,EAHX;AAIC,eAAO,MAJR;AAKC,kCAA0B,MAL3B,CAMC;AACA;AAPD;AAQC,WAAG,kCAA6BA,UAAU,CAACO,MAAX,CAAmB,SAAnB,CAA7B,CARJ;AASC,gBAAQ,MATT;AAUC,sBAAc,EAAG,CAVlB;AAWC,oBAAY,EAAG,KAAKV,cAXrB;AAYC,0BAAkB,EAAG,CAZtB;AAaC,qBAAa,EAAC;AAbf,QADD,CADD;AAmBA;;;;EA5CuBhM,4D;;AA+CV+L,yEAAf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/DA;;;AAGA;AACA;AACA;AAEA;;;;AAGA;AACA;AAEA;;;;AAGA;AACA;AACA;AAEA;AAEO,IAAMY,cAAb;AAAA;AAAA;AAAA;;AACC,4BAAc;AAAA;;AAAA;;AACb,6OAAUvT,SAAV;AAEA,UAAKU,KAAL,GAAa;AAAE8S,2BAAqB,EAAE;AAAzB,KAAb;AAEA,UAAKC,wBAAL,GAAgC,MAAKA,wBAAL,CAA8BvT,IAA9B,2MAAhC;AALa;AAMb;;AAPF;AAAA;AAAA,+CAS4B;AAC1B,WAAKgC,QAAL,CAAe;AAAEsR,6BAAqB,EAAE,CAAE,KAAK9S,KAAL,CAAW8S;AAAtC,OAAf;AACA;AAXF;AAAA;AAAA,6BAaU;AAAA,wBAC4C,KAAKzS,KADjD;AAAA,UACA+R,WADA,eACAA,WADA;AAAA,UACaY,QADb,eACaA,QADb;AAAA,UACuBC,MADvB,eACuBA,MADvB;AAAA,UAC+B1S,QAD/B,eAC+BA,QAD/B;AAGR,aACC;AAAK,iBAAS,EAAC;AAAf,SACG,CAAE,KAAKP,KAAL,CAAW8S,qBAAb,IACD,yEAAC,2DAAD,QACC,yEAAC,8CAAD;AACC,mBAAW,EAAGV,WADf;AAEC,gBAAQ,EAAG7R,QAFZ;AAGC,gBAAQ,EAAGyS;AAHZ,QADD,EAMC,yEAAC,8CAAD;AACC,mBAAW,EAAGZ,WADf;AAEC,gBAAQ,EAAG7R,QAFZ;AAGC,cAAM,EAAG0S,MAHV;AAIC,gBAAQ,EAAGD;AAJZ,QAND,CAFF,EAiBG,KAAKhT,KAAL,CAAW8S,qBAAX,IACD,yEAAC,2DAAD,QACC;AAAK,iBAAS,EAAC;AAAf,SACC,qFAAMjR,0DAAE,CAAE,iBAAF,CAAR,CADD,EAEC,qFACC,qFAAMA,0DAAE,CAAE,kFAAF,CAAR,CADD,EAEC,qFAAMA,0DAAE,CAAE,qCAAF,CAAR,CAFD,CAFD,EAOC,qFAAMA,0DAAE,CAAE,4BAAF,CAAR,CAPD,EAQC,qFACC,qFACC;AAAM,sBAAaqR,0DAAE,CAAE,OAAF,EAAW,iBAAX;AAArB,kBADD,EAEG;AAAI;AAFP,QAGC,uFAAQrR,0DAAE,CAAE,2BAAF,CAAV,CAHD,CADD,EAMC,qFACC;AAAM,sBAAaA,0DAAE,CAAE,uBAAF;AAArB,yBADD,EAEG;AAAI;AAFP,QAGGA,0DAAE,CAAE,qDAAF,CAHL,CAND,EAWC,qFACC;AAAM,sBAAaA,0DAAE,CAAE,oBAAF;AAArB,yBADD,EAEG;AAAI;AAFP,QAGGA,0DAAE,CAAE,mDAAF,CAHL,CAXD,EAgBC,qFACC;AAAM,sBAAaA,0DAAE,CAAE,uBAAF;AAArB,SAAqDA,0DAAE,CAAE,WAAF,CAAvD,CADD,EAEG;AAAI;AAFP,QAGGA,0DAAE,CAAE,sDAAF,CAHL,CAhBD,EAqBC,qFACC;AAAM,sBAAaA,0DAAE,CAAE,cAAF;AAArB,SAA4CA,0DAAE,CAAE,UAAF,CAA9C,CADD,EAEG;AAAI;AAFP,QAGGA,0DAAE,CAAE,qDAAF,CAHL,CArBD,CARD,EAoCC,yEAAC,+CAAD;AAAQ,eAAO,MAAf;AAAgB,eAAO,EAAG,KAAKkR;AAA/B,SACGlR,0DAAE,CAAE,OAAF,CADL,CApCD,CADD,CAlBF,EA8DG,CAAE,KAAK7B,KAAL,CAAW8S,qBAAb,IACD,yEAAC,+CAAD;AACC,iBAAS,EAAC,uCADX;AAEC,cAAM,MAFP;AAGC,eAAO,EAAG,KAAKC;AAHhB,SAKGlR,0DAAE,CAAE,eAAF,CALL,CA/DF,CADD;AA0EA;AA1FF;;AAAA;AAAA,EAAoCqE,4DAApC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtBA;;;AAGA;AACA;AACA;AAEA;;;;AAGA;AACA;AAEA;;;;AAGA;AAEA;;;;AAGA,IAAM8L,mBAAmB,GAAG,qBAA5B;;IAEMmB,U;;;;;AACL,wBAAc;AAAA;;AAAA;;AACb,yOAAU7T,SAAV;AACA,UAAKU,KAAL,GAAa;AACZoT,SAAG,EAAE,EADO;AAEZC,WAAK,EAAE,EAFK;AAGZC,UAAI,EAAE,EAHM;AAIZd,WAAK,EAAE,EAJK;AAKZC,aAAO,EAAE,EALG;AAMZc,QAAE,EAAE,IANQ;AAOZC,UAAI,EAAE;AAPM,KAAb;AASA,UAAKC,WAAL,GAAmB,MAAKA,WAAL,CAAiBjU,IAAjB,2MAAnB;AACA,UAAKkU,aAAL,GAAqB,MAAKA,aAAL,CAAmBlU,IAAnB,2MAArB;AACA,UAAKmU,SAAL,GAAiB,MAAKA,SAAL,CAAenU,IAAf,2MAAjB;AACA,UAAKoU,WAAL,GAAmB,MAAKA,WAAL,CAAiBpU,IAAjB,2MAAnB;AACA,UAAKqU,UAAL,GAAkB,MAAKA,UAAL,CAAgBrU,IAAhB,2MAAlB;AACA,UAAKsU,YAAL,GAAoB,MAAKA,YAAL,CAAkBtU,IAAlB,2MAApB;AACA,UAAKuU,WAAL,GAAmB,MAAKA,WAAL,CAAiBvU,IAAjB,2MAAnB;AACA,UAAKwU,aAAL,GAAqB,MAAKA,aAAL,CAAmBxU,IAAnB,2MAArB;AACA,UAAKyU,aAAL,GAAqB,MAAKA,aAAL,CAAmBzU,IAAnB,2MAArB;AACA,UAAK0U,eAAL,GAAuB,MAAKA,eAAL,CAAqB1U,IAArB,2MAAvB;AApBa;AAqBb;;;;wCAEmB;AACnB,WAAK2U,SAAL,CAAgB,KAAK9T,KAArB;AACA;;;uCAEmB2D,S,EAAY;AAAA,wBACG,KAAK3D,KADR;AAAA,UACvB+T,WADuB,eACvBA,WADuB;AAAA,UACVpB,QADU,eACVA,QADU;;AAE/B,UACCoB,WAAW,KAAKpQ,SAAS,CAACoQ,WAA1B,IACApB,QAAQ,KAAKhP,SAAS,CAACgP,QAFxB,EAGE;AACD,aAAKmB,SAAL,CAAgB,KAAK9T,KAArB;AACA;AACD;;;kCAEa;AACb,aAAO,KAAKA,KAAL,CAAW2S,QAAX,GAAsB,EAAtB,GAA2B,EAAlC;AACA;;;kCAEa;AACb,aAAO,KAAK3S,KAAL,CAAW2S,QAAX,GAAsB,CAAtB,GAA0B,CAAjC;AACA;;;oCAEsC;AAAA,UAA1BoB,WAA0B,QAA1BA,WAA0B;AAAA,UAAbpB,QAAa,QAAbA,QAAa;AACtC,UAAMqB,QAAQ,GAAGD,WAAW,GAAG9B,6CAAM,CAAE8B,WAAF,CAAT,GAA2B9B,6CAAM,EAA7D;AACA,UAAMc,GAAG,GAAGiB,QAAQ,CAACzB,MAAT,CAAiB,IAAjB,CAAZ;AACA,UAAMS,KAAK,GAAGgB,QAAQ,CAACzB,MAAT,CAAiB,IAAjB,CAAd;AACA,UAAMU,IAAI,GAAGe,QAAQ,CAACzB,MAAT,CAAiB,MAAjB,CAAb;AACA,UAAMH,OAAO,GAAG4B,QAAQ,CAACzB,MAAT,CAAiB,IAAjB,CAAhB;AACA,UAAMW,EAAE,GAAGc,QAAQ,CAACzB,MAAT,CAAiB,GAAjB,CAAX;AACA,UAAMJ,KAAK,GAAG6B,QAAQ,CAACzB,MAAT,CAAiBI,QAAQ,GAAG,IAAH,GAAU,IAAnC,CAAd;AACA,UAAMQ,IAAI,GAAGY,WAAW,GAAG9B,6CAAM,CAAE8B,WAAF,CAAT,GAA2B9B,6CAAM,EAAzD;AACA,WAAK9Q,QAAL,CAAe;AAAE4R,WAAG,EAAHA,GAAF;AAAOC,aAAK,EAALA,KAAP;AAAcC,YAAI,EAAJA,IAAd;AAAoBb,eAAO,EAAPA,OAApB;AAA6BD,aAAK,EAALA,KAA7B;AAAoCe,UAAE,EAAFA,EAApC;AAAwCC,YAAI,EAAJA;AAAxC,OAAf;AACA;;;kCAEa;AAAA,yBACkB,KAAKnT,KADvB;AAAA,UACL2S,QADK,gBACLA,QADK;AAAA,UACKzS,QADL,gBACKA,QADL;AAAA,wBAEe,KAAKP,KAFpB;AAAA,UAELuT,EAFK,eAELA,EAFK;AAAA,UAEDf,KAFC,eAEDA,KAFC;AAAA,UAEMgB,IAFN,eAEMA,IAFN;AAGb,UAAMpS,KAAK,GAAGiK,QAAQ,CAAEmH,KAAF,EAAS,EAAT,CAAtB;;AACA,UACC,CAAE8B,wDAAS,CAAElT,KAAF,CAAX,IACE4R,QAAQ,KAAM5R,KAAK,GAAG,CAAR,IAAaA,KAAK,GAAG,EAA3B,CADV,IAEE,CAAE4R,QAAF,KAAgB5R,KAAK,GAAG,CAAR,IAAaA,KAAK,GAAG,EAArC,CAHH,EAIE;AACD,aAAK+S,SAAL,CAAgB,KAAK9T,KAArB;AACA;AACA;;AAED,UAAM8R,OAAO,GAAGa,QAAQ,GACvBQ,IAAI,CAACe,KAAL,GAAa/B,KAAb,CAAoBe,EAAE,KAAK,IAAP,GAAcnS,KAAK,GAAG,EAAtB,GAA6B,CAAIA,KAAK,GAAG,EAAV,GAAiB,EAAnB,IAA0B,EAA3E,CADuB,GAEvBoS,IAAI,CAACe,KAAL,GAAa/B,KAAb,CAAoBpR,KAApB,CAFD;AAGA,WAAKI,QAAL,CAAe;AAAEgS,YAAI,EAAErB;AAAR,OAAf;AACA5R,cAAQ,CAAE4R,OAAO,CAACS,MAAR,CAAgBZ,mBAAhB,CAAF,CAAR;AACA;;;oCAEe;AAAA,UACPzR,QADO,GACM,KAAKF,KADX,CACPE,QADO;AAAA,yBAEW,KAAKP,KAFhB;AAAA,UAEPyS,OAFO,gBAEPA,OAFO;AAAA,UAEEe,IAFF,gBAEEA,IAFF;AAGf,UAAMpS,KAAK,GAAGiK,QAAQ,CAAEoH,OAAF,EAAW,EAAX,CAAtB;;AACA,UAAK,CAAE6B,wDAAS,CAAElT,KAAF,CAAX,IAAwBA,KAAK,GAAG,CAAhC,IAAqCA,KAAK,GAAG,EAAlD,EAAuD;AACtD,aAAK+S,SAAL,CAAgB,KAAK9T,KAArB;AACA;AACA;;AACD,UAAM8R,OAAO,GAAGqB,IAAI,CAACe,KAAL,GAAa9B,OAAb,CAAsBrR,KAAtB,CAAhB;AACA,WAAKI,QAAL,CAAe;AAAEgS,YAAI,EAAErB;AAAR,OAAf;AACA5R,cAAQ,CAAE4R,OAAO,CAACS,MAAR,CAAgBZ,mBAAhB,CAAF,CAAR;AACA;;;gCAEW;AAAA,UACHzR,QADG,GACU,KAAKF,KADf,CACHE,QADG;AAAA,yBAEW,KAAKP,KAFhB;AAAA,UAEHoT,GAFG,gBAEHA,GAFG;AAAA,UAEEI,IAFF,gBAEEA,IAFF;AAGX,UAAMpS,KAAK,GAAGiK,QAAQ,CAAE+H,GAAF,EAAO,EAAP,CAAtB;;AACA,UAAK,CAAEkB,wDAAS,CAAElT,KAAF,CAAX,IAAwBA,KAAK,GAAG,CAAhC,IAAqCA,KAAK,GAAG,EAAlD,EAAuD;AACtD,aAAK+S,SAAL,CAAgB,KAAK9T,KAArB;AACA;AACA;;AACD,UAAM8R,OAAO,GAAGqB,IAAI,CAACe,KAAL,GAAaf,IAAb,CAAmBpS,KAAnB,CAAhB;AACA,WAAKI,QAAL,CAAe;AAAEgS,YAAI,EAAErB;AAAR,OAAf;AACA5R,cAAQ,CAAE4R,OAAO,CAACS,MAAR,CAAgBZ,mBAAhB,CAAF,CAAR;AACA;;;kCAEa;AAAA,UACLzR,QADK,GACQ,KAAKF,KADb,CACLE,QADK;AAAA,yBAEW,KAAKP,KAFhB;AAAA,UAELqT,KAFK,gBAELA,KAFK;AAAA,UAEEG,IAFF,gBAEEA,IAFF;AAGb,UAAMpS,KAAK,GAAGiK,QAAQ,CAAEgI,KAAF,EAAS,EAAT,CAAtB;;AACA,UAAK,CAAEiB,wDAAS,CAAElT,KAAF,CAAX,IAAwBA,KAAK,GAAG,CAAhC,IAAqCA,KAAK,GAAG,EAAlD,EAAuD;AACtD,aAAK+S,SAAL,CAAgB,KAAK9T,KAArB;AACA;AACA;;AACD,UAAM8R,OAAO,GAAGqB,IAAI,CAACe,KAAL,GAAalB,KAAb,CAAoBjS,KAAK,GAAG,CAA5B,CAAhB;AACA,WAAKI,QAAL,CAAe;AAAEgS,YAAI,EAAErB;AAAR,OAAf;AACA5R,cAAQ,CAAE4R,OAAO,CAACS,MAAR,CAAgBZ,mBAAhB,CAAF,CAAR;AACA;;;iCAEY;AAAA,UACJzR,QADI,GACS,KAAKF,KADd,CACJE,QADI;AAAA,yBAEW,KAAKP,KAFhB;AAAA,UAEJsT,IAFI,gBAEJA,IAFI;AAAA,UAEEE,IAFF,gBAEEA,IAFF;AAGZ,UAAMpS,KAAK,GAAGiK,QAAQ,CAAEiI,IAAF,EAAQ,EAAR,CAAtB;;AACA,UAAK,CAAEgB,wDAAS,CAAElT,KAAF,CAAX,IAAwBA,KAAK,GAAG,IAAhC,IAAwCA,KAAK,GAAG,IAArD,EAA4D;AAC3D,aAAK+S,SAAL,CAAgB,KAAK9T,KAArB;AACA;AACA;;AACD,UAAM8R,OAAO,GAAGqB,IAAI,CAACe,KAAL,GAAajB,IAAb,CAAmBlS,KAAnB,CAAhB;AACA,WAAKI,QAAL,CAAe;AAAEgS,YAAI,EAAErB;AAAR,OAAf;AACA5R,cAAQ,CAAE4R,OAAO,CAACS,MAAR,CAAgBZ,mBAAhB,CAAF,CAAR;AACA;;;+BAEW5Q,K,EAAQ;AAAA;;AACnB,aAAO,YAAM;AAAA,YACJb,QADI,GACS,MAAI,CAACF,KADd,CACJE,QADI;AAAA,2BAEgB,MAAI,CAACP,KAFrB;AAAA,YAEJuT,EAFI,gBAEJA,EAFI;AAAA,YAEAC,IAFA,gBAEAA,IAFA;AAAA,YAEMhB,KAFN,gBAEMA,KAFN;;AAGZ,YAAKe,EAAE,KAAKnS,KAAZ,EAAoB;AACnB;AACA;;AACD,YAAI+Q,OAAJ;;AACA,YAAK/Q,KAAK,KAAK,IAAf,EAAsB;AACrB+Q,iBAAO,GAAGqB,IAAI,CAACe,KAAL,GAAa/B,KAAb,CAAoB,CAAInH,QAAQ,CAAEmH,KAAF,EAAS,EAAT,CAAR,GAAwB,EAA1B,GAAiC,EAAnC,IAA0C,EAA9D,CAAV;AACA,SAFD,MAEO;AACNL,iBAAO,GAAGqB,IAAI,CAACe,KAAL,GAAa/B,KAAb,CAAoBnH,QAAQ,CAAEmH,KAAF,EAAS,EAAT,CAAR,GAAwB,EAA5C,CAAV;AACA;;AACD,cAAI,CAAChR,QAAL,CAAe;AAAEgS,cAAI,EAAErB;AAAR,SAAf;;AACA5R,gBAAQ,CAAE4R,OAAO,CAACS,MAAR,CAAgBZ,mBAAhB,CAAF,CAAR;AACA,OAdD;AAeA;;;gCAEYlP,K,EAAQ;AACpB,WAAKtB,QAAL,CAAe;AAAE4R,WAAG,EAAEtQ,KAAK,CAACiE,MAAN,CAAa3F;AAApB,OAAf;AACA;;;kCAEc0B,K,EAAQ;AACtB,WAAKtB,QAAL,CAAe;AAAE6R,aAAK,EAAEvQ,KAAK,CAACiE,MAAN,CAAa3F;AAAtB,OAAf;AACA;;;iCAEa0B,K,EAAQ;AACrB,WAAKtB,QAAL,CAAe;AAAE8R,YAAI,EAAExQ,KAAK,CAACiE,MAAN,CAAa3F;AAArB,OAAf;AACA;;;kCAEc0B,K,EAAQ;AACtB,WAAKtB,QAAL,CAAe;AAAEgR,aAAK,EAAE1P,KAAK,CAACiE,MAAN,CAAa3F;AAAtB,OAAf;AACA;;;oCAEgB0B,K,EAAQ;AACxB,WAAKtB,QAAL,CAAe;AAAEiR,eAAO,EAAE3P,KAAK,CAACiE,MAAN,CAAa3F;AAAxB,OAAf;AACA;;;6BAEQ;AAAA,UACA4R,QADA,GACa,KAAK3S,KADlB,CACA2S,QADA;AAAA,yBAEyC,KAAKhT,KAF9C;AAAA,UAEAoT,GAFA,gBAEAA,GAFA;AAAA,UAEKC,KAFL,gBAEKA,KAFL;AAAA,UAEYC,IAFZ,gBAEYA,IAFZ;AAAA,UAEkBb,OAFlB,gBAEkBA,OAFlB;AAAA,UAE2BD,KAF3B,gBAE2BA,KAF3B;AAAA,UAEkCe,EAFlC,gBAEkCA,EAFlC;AAIR,aACC;AAAK,iBAAS,EAAGtN,iDAAU,CAAE,2BAAF,EAA+B;AACzD,wBAAc+M,QAD2C;AAEzD,wBAAc,CAAEA;AAFyC,SAA/B;AAA3B,SAIC,2FACC;AAAQ,iBAAS,EAAC;AAAlB,SAAiEnR,2DAAE,CAAE,MAAF,CAAnE,CADD,EAEC;AAAK,iBAAS,EAAC;AAAf,SACC;AAAK,iBAAS,EAAC;AAAf,SACC;AACC,sBAAaA,2DAAE,CAAE,OAAF,CADhB;AAEC,iBAAS,EAAC,8CAFX;AAGC,aAAK,EAAGwR,KAHT;AAIC,gBAAQ,EAAG,KAAKK,aAJjB;AAKC,cAAM,EAAG,KAAKD;AALf,SAOC;AAAQ,aAAK,EAAC;AAAd,SAAqB5R,2DAAE,CAAE,SAAF,CAAvB,CAPD,EAQC;AAAQ,aAAK,EAAC;AAAd,SAAqBA,2DAAE,CAAE,UAAF,CAAvB,CARD,EASC;AAAQ,aAAK,EAAC;AAAd,SAAqBA,2DAAE,CAAE,OAAF,CAAvB,CATD,EAUC;AAAQ,aAAK,EAAC;AAAd,SAAqBA,2DAAE,CAAE,OAAF,CAAvB,CAVD,EAWC;AAAQ,aAAK,EAAC;AAAd,SAAqBA,2DAAE,CAAE,KAAF,CAAvB,CAXD,EAYC;AAAQ,aAAK,EAAC;AAAd,SAAqBA,2DAAE,CAAE,MAAF,CAAvB,CAZD,EAaC;AAAQ,aAAK,EAAC;AAAd,SAAqBA,2DAAE,CAAE,MAAF,CAAvB,CAbD,EAcC;AAAQ,aAAK,EAAC;AAAd,SAAqBA,2DAAE,CAAE,QAAF,CAAvB,CAdD,EAeC;AAAQ,aAAK,EAAC;AAAd,SAAqBA,2DAAE,CAAE,WAAF,CAAvB,CAfD,EAgBC;AAAQ,aAAK,EAAC;AAAd,SAAqBA,2DAAE,CAAE,SAAF,CAAvB,CAhBD,EAiBC;AAAQ,aAAK,EAAC;AAAd,SAAqBA,2DAAE,CAAE,UAAF,CAAvB,CAjBD,EAkBC;AAAQ,aAAK,EAAC;AAAd,SAAqBA,2DAAE,CAAE,UAAF,CAAvB,CAlBD,CADD,CADD,EAuBC;AAAK,iBAAS,EAAC;AAAf,SACC;AACC,sBAAaA,2DAAE,CAAE,KAAF,CADhB;AAEC,iBAAS,EAAC,2CAFX;AAGC,YAAI,EAAC,QAHN;AAIC,aAAK,EAAGuR,GAJT;AAKC,YAAI,EAAG,CALR;AAMC,WAAG,EAAG,CANP;AAOC,gBAAQ,EAAG,KAAKQ,WAPjB;AAQC,cAAM,EAAG,KAAKD;AARf,QADD,CAvBD,EAmCC;AAAK,iBAAS,EAAC;AAAf,SACC;AACC,sBAAa9R,2DAAE,CAAE,MAAF,CADhB;AAEC,iBAAS,EAAC,4CAFX;AAGC,YAAI,EAAC,QAHN;AAIC,YAAI,EAAG,CAJR;AAKC,aAAK,EAAGyR,IALT;AAMC,gBAAQ,EAAG,KAAKQ,YANjB;AAOC,cAAM,EAAG,KAAKD;AAPf,QADD,CAnCD,CAFD,CAJD,EAuDC,2FACC;AAAQ,iBAAS,EAAC;AAAlB,SAAiEhS,2DAAE,CAAE,MAAF,CAAnE,CADD,EAEC;AAAK,iBAAS,EAAC;AAAf,SACC;AAAK,iBAAS,EAAC;AAAf,SACC;AACC,sBAAaA,2DAAE,CAAE,OAAF,CADhB;AAEC,iBAAS,EAAC,6CAFX;AAGC,YAAI,EAAC,QAHN;AAIC,YAAI,EAAG,CAJR;AAKC,WAAG,EAAG,KAAK2S,WAAL,EALP;AAMC,WAAG,EAAG,KAAKC,WAAL,EANP;AAOC,aAAK,EAAGjC,KAPT;AAQC,gBAAQ,EAAG,KAAKyB,aARjB;AASC,cAAM,EAAG,KAAKF;AATf,QADD,EAYC;AACC,iBAAS,EAAC,qCADX;AAEC,uBAAY;AAFb,aAZD,EAeC;AACC,sBAAalS,2DAAE,CAAE,SAAF,CADhB;AAEC,iBAAS,EAAC,+CAFX;AAGC,YAAI,EAAC,QAHN;AAIC,WAAG,EAAG,CAJP;AAKC,WAAG,EAAG,EALP;AAMC,aAAK,EAAG4Q,OANT;AAOC,gBAAQ,EAAG,KAAKyB,eAPjB;AAQC,cAAM,EAAG,KAAKF;AARf,QAfD,CADD,EA2BGhB,QAAQ,IACT;AAAK,iBAAS,EAAC;AAAf,SACC,yEAAC,gDAAD;AACC,wBAAeO,EAAE,KAAK,IADvB;AAEC,iBAAS,MAFV;AAGC,iBAAS,EAAC,qCAHX;AAIC,iBAAS,EAAGA,EAAE,KAAK,IAJpB;AAKC,eAAO,EAAG,KAAKmB,UAAL,CAAiB,IAAjB;AALX,SAOG7S,2DAAE,CAAE,IAAF,CAPL,CADD,EAUC,yEAAC,gDAAD;AACC,wBAAe0R,EAAE,KAAK,IADvB;AAEC,iBAAS,MAFV;AAGC,iBAAS,EAAC,qCAHX;AAIC,iBAAS,EAAGA,EAAE,KAAK,IAJpB;AAKC,eAAO,EAAG,KAAKmB,UAAL,CAAiB,IAAjB;AALX,SAOG7S,2DAAE,CAAE,IAAF,CAPL,CAVD,CA5BF,CAFD,CAvDD,CADD;AA+GA;;;;EA3RuBqE,4D;;AA8RViN,yEAAf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrTA;;;AAGA;AACA;AAEA;;;;AAGA;AACA;;qBAE+BwB,wEAAa,CAAE,KAAF,C;IAApCC,Q,kBAAAA,Q;IAAUC,Q,kBAAAA,Q;AAElB;;;;;;;;;;;AASA,IAAMC,4BAA4B,GAAG,CACpC,QADoC,EAEpC,UAFoC,EAGpC,OAHoC,EAIpC,UAJoC,EAKpC,QALoC,EAMpC,QANoC,EAOpC,UAPoC,CAArC;;IAUMC,Q;;;;;AACL,sBAAc;AAAA;;AAAA;;AACb,uOAAUzV,SAAV;AAEA,UAAKC,QAAL,GAAgB,MAAKA,QAAL,CAAcC,IAAd,2MAAhB;AACA,UAAKwV,OAAL,GAAe,MAAKA,OAAL,CAAaxV,IAAb,2MAAf,CAJa,CAMb;AACA;;AACA,UAAKyV,gBAAL,GAAwBnV,uDAAQ,CAAE,MAAKkV,OAAP,EAAgB;AAAEE,aAAO,EAAE;AAAX,KAAhB,CAAhC;AARa;AASb;;;;wCAEmB;AACnB,WAAKF,OAAL;AAEA,WAAKG,QAAL,GAAgB,IAAIxW,MAAM,CAACyW,gBAAX,CAA6B,KAAKH,gBAAlC,CAAhB;AACA,WAAKE,QAAL,CAAcE,OAAd,CAAuB,KAAKlV,IAA5B,EAAkC;AACjCmV,iBAAS,EAAE,IADsB;AAEjCC,kBAAU,EAAE,IAFqB;AAGjCC,eAAO,EAAE;AAHwB,OAAlC;AAKA;;;2CAEsB;AACtB,WAAKL,QAAL,CAAcM,UAAd;AACA,WAAKR,gBAAL,CAAsBxP,MAAtB;AACA;;;6BAEStF,I,EAAO;AAChB,WAAKA,IAAL,GAAYA,IAAZ;AACA;;;8BAES;AACTuJ,2DAAK,CAACgM,SAAN,CAAgB7Q,IAAhB,CAAsB,KAAK1E,IAA3B,EAAkCwV,OAAlC,CAA2C,UAAED,SAAF,EAAiB;AAC3D,YAAKE,uDAAQ,CAAEd,4BAAF,EAAgCY,SAAS,CAACG,QAA1C,CAAb,EAAoE;AACnEH,mBAAS,CAACI,YAAV,CAAwB,UAAxB,EAAoC,EAApC;AACA;;AAED,YAAKJ,SAAS,CAACK,YAAV,CAAwB,UAAxB,CAAL,EAA4C;AAC3CL,mBAAS,CAACM,eAAV,CAA2B,UAA3B;AACA;;AAED,YAAKN,SAAS,CAACK,YAAV,CAAwB,iBAAxB,CAAL,EAAmD;AAClDL,mBAAS,CAACI,YAAV,CAAwB,iBAAxB,EAA2C,OAA3C;AACA;AACD,OAZD;AAaA;;;6BAEQ;AAAA,wBACwB,KAAKzV,KAD7B;AAAA,UACAwF,SADA,eACAA,SADA;AAAA,UACcxF,KADd;;AAER,aACC,yEAAC,QAAD;AAAU,aAAK,EAAG;AAAlB,SACC;AACC,WAAG,EAAG,KAAKd,QADZ;AAEC,iBAAS,EAAG0G,kDAAU,CAAEJ,SAAF,EAAa,qBAAb;AAFvB,SAGMxF,KAHN,GAKG,KAAKA,KAAL,CAAWqF,QALd,CADD,CADD;AAWA;;;;EA7DqBQ,4D;;AAgEvB6O,QAAQ,CAACH,QAAT,GAAoBA,QAApB;AAEeG,uEAAf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnGA;;;AAGA;AAEA;;;;AAGA;AACA;AAEA,IAAMkB,cAAc,GAAG,4CAAvB;AACA,IAAMC,iBAAiB,GAAG,6BAA1B;AACA,IAAMC,mCAAmC,GAAG,GAA5C;AACA,IAAMC,YAAY,GAAG,EAArB;;AAEA,IAAMC,UAAU,GAAG,SAAbA,UAAa;AAAA,SAAO,UAAU/X,IAAV,CAAgBK,MAAM,CAAC2X,SAAP,CAAiBC,SAAjC,CAAP;AAAA,CAAnB;;AACA,IAAMC,kBAAkB,GAAG,SAArBA,kBAAqB;AAAA,SAAO,6FAAKC,QAAQ,CAACC,cAAT,CAAyB,QAAzB,EAAoCC,gBAApC,CAAsD,QAAtD,CAAL,EAAwE5Y,MAAxE,GAAiF,CAAxF;AAAA,CAA3B;;IAEM6Y,S;;;;;AACL,uBAAc;AAAA;;AAAA;;AACb,wOAAUtX,SAAV;AAEA,UAAKuX,WAAL,GAAmB,MAAKA,WAAL,CAAiBrX,IAAjB,2MAAnB;AACA,UAAKsX,UAAL,GAAkB,MAAKA,UAAL,CAAgBtX,IAAhB,2MAAlB;AACA,UAAKuX,MAAL,GAAc,MAAKA,MAAL,CAAYvX,IAAZ,2MAAd;AACA,UAAKwX,SAAL,GAAiB,MAAKA,SAAL,CAAexX,IAAf,2MAAjB;AACA,UAAKyX,cAAL,GAAsB,MAAKA,cAAL,CAAoBzX,IAApB,2MAAtB;AAEA,UAAK0X,qBAAL,GAA6B,KAA7B;AATa;AAUb;;;;2CAEsB;AACtB,WAAKD,cAAL;AACA;AAED;;;;;;;8BAIWnU,K,EAAQ;AAAA,kCACW,KAAKzC,KADhB,CACV2W,SADU;AAAA,UACVA,SADU,sCACE5L,2CADF;;AAElB,UAAKtI,KAAL,EAAa;AACZA,aAAK,CAACO,cAAN;AACA;;AAED,WAAK4T,cAAL;AACA,WAAK5W,KAAL,CAAW+I,UAAX,CAAuB4N,SAAvB;AACA;AAED;;;;;;;+BAIYlU,K,EAAQ;AACnB,WAAKqU,YAAL,CAAkB9M,KAAlB,CAAwBqF,GAAxB,aACKrE,QAAQ,CAAE,KAAK8L,YAAL,CAAkB9M,KAAlB,CAAwBqF,GAA1B,EAA+B,EAA/B,CAAR,GAA8C5M,KAAK,CAACsU,OAApD,GAA8D,KAAKC,SADxE;AAEA,WAAKF,YAAL,CAAkB9M,KAAlB,CAAwBqC,IAAxB,aACKrB,QAAQ,CAAE,KAAK8L,YAAL,CAAkB9M,KAAlB,CAAwBqC,IAA1B,EAAgC,EAAhC,CAAR,GAA+C5J,KAAK,CAACwU,OAArD,GAA+D,KAAKC,UADzE,QAHmB,CAMnB;;AACA,WAAKA,UAAL,GAAkBzU,KAAK,CAACwU,OAAxB;AACA,WAAKD,SAAL,GAAiBvU,KAAK,CAACsU,OAAvB;AACA;;;6BAES;AACT;AACA;AACA;AACA,WAAKJ,SAAL,CAAgB,IAAhB;AACA;AAED;;;;;;;;;;;;gCASalU,K,EAAQ;AAAA,wBACoC,KAAKzC,KADzC;AAAA,UACZmX,SADY,eACZA,SADY;AAAA,UACDC,YADC,eACDA,YADC;AAAA,8CACaZ,WADb;AAAA,UACaA,WADb,sCAC2BzL,2CAD3B;AAEpB,UAAMsM,OAAO,GAAGjB,QAAQ,CAACC,cAAT,CAAyBc,SAAzB,CAAhB;;AACA,UAAK,CAAEE,OAAP,EAAiB;AAChB5U,aAAK,CAACO,cAAN;AACA;AACA,OANmB,CAQpB;AACA;AACA;;;AACA,UAAK,eAAe,OAAOP,KAAK,CAAC6U,YAAN,CAAmBC,YAA9C,EAA6D;AAC5D,YAAMC,SAAS,GAAGpB,QAAQ,CAAC3O,aAAT,CAAwB,KAAxB,CAAlB;AACA+P,iBAAS,CAACrR,EAAV,wBAA8BgR,SAA9B;AACAK,iBAAS,CAACC,SAAV,CAAoBC,GAApB,CAAyB9B,cAAzB;AACAQ,gBAAQ,CAACuB,IAAT,CAAcC,WAAd,CAA2BJ,SAA3B;AACA/U,aAAK,CAAC6U,YAAN,CAAmBC,YAAnB,CAAiCC,SAAjC,EAA4C,CAA5C,EAA+C,CAA/C;AACA,aAAKxX,KAAL,CAAW+I,UAAX,CAAuB,YAAM;AAC5BqN,kBAAQ,CAACuB,IAAT,CAAcE,WAAd,CAA2BL,SAA3B;AACA,SAFD;AAGA;;AAED/U,WAAK,CAAC6U,YAAN,CAAmBQ,OAAnB,CAA4B,MAA5B,EAAoCC,IAAI,CAACC,SAAL,CAAgBZ,YAAhB,CAApC,EAtBoB,CAwBpB;;AACA,UAAMa,WAAW,GAAGZ,OAAO,CAACxH,qBAAR,EAApB;AACA,UAAMqI,cAAc,GAAGb,OAAO,CAACc,UAA/B;AACA,UAAMC,gBAAgB,GAAGpN,QAAQ,CAAEiN,WAAW,CAAC5I,GAAd,EAAmB,EAAnB,CAAjC;AACA,UAAMgJ,iBAAiB,GAAGrN,QAAQ,CAAEiN,WAAW,CAAC5L,IAAd,EAAoB,EAApB,CAAlC;AACA,UAAM6H,KAAK,GAAGmD,OAAO,CAACiB,SAAR,CAAmB,IAAnB,CAAd;AACApE,WAAK,CAAC/N,EAAN,mBAAqBgR,SAArB;AACA,WAAKL,YAAL,GAAoBV,QAAQ,CAAC3O,aAAT,CAAwB,KAAxB,CAApB;AACA,WAAKqP,YAAL,CAAkBW,SAAlB,CAA4BC,GAA5B,CAAiC7B,iBAAjC;AACA,WAAKiB,YAAL,CAAkB9M,KAAlB,CAAwBgG,KAAxB,aAAoCiI,WAAW,CAACjI,KAAZ,GAAsB+F,YAAY,GAAG,CAAzE;;AAEA,UAAKkC,WAAW,CAAChI,MAAZ,GAAqB6F,mCAA1B,EAAgE;AAC/D;AACA,aAAKgB,YAAL,CAAkB9M,KAAlB,CAAwBuO,SAAxB,GAAoC,YAApC;AACA,aAAKzB,YAAL,CAAkB9M,KAAlB,CAAwBwO,eAAxB,GAA0C,UAA1C,CAH+D,CAI/D;;AACA,aAAK1B,YAAL,CAAkB9M,KAAlB,CAAwBqF,GAAxB,aAAkC5M,KAAK,CAACsU,OAAN,GAAgB,GAAlD;AACA,aAAKD,YAAL,CAAkB9M,KAAlB,CAAwBqC,IAAxB,aAAmC5J,KAAK,CAACwU,OAAzC;AACA,OAPD,MAOO;AACN;AACA,aAAKH,YAAL,CAAkB9M,KAAlB,CAAwBqF,GAAxB,aAAkC+I,gBAAgB,GAAGrC,YAArD;AACA,aAAKe,YAAL,CAAkB9M,KAAlB,CAAwBqC,IAAxB,aAAmCgM,iBAAiB,GAAGtC,YAAvD;AACA,OA9CmB,CAgDpB;;;AACA,mGAAK7B,KAAK,CAACoC,gBAAN,CAAwB,QAAxB,CAAL,EAA0ChB,OAA1C,CAAmD,UAAEmD,KAAF;AAAA,eAAaA,KAAK,CAACN,UAAN,CAAiBN,WAAjB,CAA8BY,KAA9B,CAAb;AAAA,OAAnD;;AAEA,WAAK3B,YAAL,CAAkBc,WAAlB,CAA+B1D,KAA/B;AACAgE,oBAAc,CAACN,WAAf,CAA4B,KAAKd,YAAjC,EApDoB,CAsDpB;;AACA,WAAKI,UAAL,GAAkBzU,KAAK,CAACwU,OAAxB;AACA,WAAKD,SAAL,GAAiBvU,KAAK,CAACsU,OAAvB,CAxDoB,CAyDpB;;AACAX,cAAQ,CAACuB,IAAT,CAAcF,SAAd,CAAwBC,GAAxB,CAA6B,kCAA7B;AACAtB,cAAQ,CAACzK,gBAAT,CAA2B,UAA3B,EAAuC,KAAK8K,UAA5C,EA3DoB,CA6DpB;AACA;AACA;AACA;AACA;AACA;;AACA,UAAKT,UAAU,MAAMG,kBAAkB,EAAvC,EAA4C;AAC3C,aAAKU,qBAAL,GAA6B,IAA7B;AACAT,gBAAQ,CAACzK,gBAAT,CAA2B,MAA3B,EAAmC,KAAK+K,MAAxC;AACA;;AAED,WAAK1W,KAAL,CAAW+I,UAAX,CAAuByN,WAAvB;AACA;AAED;;;;;;;qCAIiB;AAChB;AACAJ,cAAQ,CAACvK,mBAAT,CAA8B,UAA9B,EAA0C,KAAK4K,UAA/C;;AACA,UAAK,KAAKK,YAAL,IAAqB,KAAKA,YAAL,CAAkBqB,UAA5C,EAAyD;AACxD,aAAKrB,YAAL,CAAkBqB,UAAlB,CAA6BN,WAA7B,CAA0C,KAAKf,YAA/C;AACA,aAAKA,YAAL,GAAoB,IAApB;AACA;;AAED,UAAK,KAAKD,qBAAV,EAAkC;AACjC,aAAKA,qBAAL,GAA6B,KAA7B;AACAT,gBAAQ,CAACvK,mBAAT,CAA8B,MAA9B,EAAsC,KAAK6K,MAA3C;AACA,OAXe,CAahB;;;AACAN,cAAQ,CAACuB,IAAT,CAAcF,SAAd,CAAwBiB,MAAxB,CAAgC,kCAAhC;AACA;;;6BAEQ;AAAA,UACArT,QADA,GACa,KAAKrF,KADlB,CACAqF,QADA;AAGR,aAAOA,QAAQ,CAAE;AAChBsT,wBAAgB,EAAE,KAAKnC,WADP;AAEhBoC,sBAAc,EAAE,KAAKjC;AAFL,OAAF,CAAf;AAIA;;;;EArKsB9Q,4D;;AAwKTgT,yIAAe,CAAEtC,SAAF,CAA9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3LA;;;AAGA;AAEA;;;;AAGA;AACA;AAEA;;;;AAGA;AACA;;AAEA,IAAMuC,QAAQ,GAAG,SAAXA,QAAW,CAAE9Y,KAAF;AAAA,SAChB,yEAAC,2DAAD,QACG;AAAA,QAAI+Y,WAAJ,QAAIA,WAAJ;AAAA,QAAiBC,cAAjB,QAAiBA,cAAjB;AAAA,WACD,yEAAC,iBAAD;AACC,iBAAW,EAAGD,WADf;AAEC,oBAAc,EAAGC;AAFlB,OAGMhZ,KAHN,EADC;AAAA,GADH,CADgB;AAAA,CAAjB;;IAYMiZ,iB;;;;;AACL,+BAAc;AAAA;;AAAA;;AACb,gPAAUha,SAAV;AAEA,UAAKia,eAAL,GAAuB5O,oEAAS,EAAhC;AACA,UAAK6O,QAAL,GAAgB;AACf9B,aAAO,EAAE,IADM;AAEfX,YAAM,EAAE,MAAK1W,KAAL,CAAW0W,MAFJ;AAGf0C,iBAAW,EAAE,MAAKpZ,KAAL,CAAWoZ,WAHT;AAIfC,gBAAU,EAAE,MAAKrZ,KAAL,CAAWqZ,UAJR;AAKflY,cAAQ,EAAE,MAAKA,QAAL,CAAchC,IAAd;AALK,KAAhB;AAOA,UAAKQ,KAAL,GAAa;AACZ2Z,4BAAsB,EAAE,KADZ;AAEZC,2BAAqB,EAAE,KAFX;AAGZC,cAAQ,EAAE,IAHE;AAIZhS,UAAI,EAAE;AAJM,KAAb;AAXa;AAiBb;;;;wCAEmB;AACnB;AACA,WAAK2R,QAAL,CAAc9B,OAAd,GAAwB,KAAK6B,eAAL,CAAqBxN,OAA7C;AACA,WAAK1L,KAAL,CAAW+Y,WAAX,CAAwB,KAAKI,QAA7B;AACA;;;2CAEsB;AACtB,WAAKnZ,KAAL,CAAWgZ,cAAX,CAA2B,KAAKG,QAAhC;AACA;;;6BAEQ;AAAA,wBACqB,KAAKnZ,KAD1B;AAAA,UACAwF,SADA,eACAA,SADA;AAAA,UACW3H,KADX,eACWA,KADX;AAAA,wBAEkE,KAAK8B,KAFvE;AAAA,UAEA2Z,sBAFA,eAEAA,sBAFA;AAAA,UAEwBC,qBAFxB,eAEwBA,qBAFxB;AAAA,UAE+CC,QAF/C,eAE+CA,QAF/C;AAAA,UAEyDhS,IAFzD,eAEyDA,IAFzD;AAGR,UAAMlB,OAAO,GAAGV,iDAAU,CAAE,sBAAF,EAA0BJ,SAA1B;AACzB,qBAAa8T,sBAAsB,IAAIC,qBADd;AAEzB,qCAA6BD,sBAFJ;AAGzB,oCAA4BC,qBAHH;AAIzB,2BAAmBC,QAAQ,IAAIA,QAAQ,CAACnJ,CAAT,KAAe,KAJrB;AAKzB,8BAAsBmJ,QAAQ,IAAIA,QAAQ,CAACnJ,CAAT,KAAe,QALxB;AAMzB,4BAAoBmJ,QAAQ,IAAIA,QAAQ,CAACtJ,CAAT,KAAe,MANtB;AAOzB,6BAAqBsJ,QAAQ,IAAIA,QAAQ,CAACtJ,CAAT,KAAe;AAPvB,+BAQP1I,IARO,GAQI,CAAC,CAAEA,IARP,EAA1B;AAWA,aACC;AAAK,WAAG,EAAG,KAAK0R,eAAhB;AAAkC,iBAAS,EAAG5S;AAA9C,SACC;AAAK,iBAAS,EAAC;AAAf,SACG,CACD,yEAAC,kDAAD;AACC,WAAG,EAAC,MADL;AAEC,YAAI,EAAC,QAFN;AAGC,YAAI,EAAC,IAHN;AAIC,iBAAS,EAAC;AAJX,QADC,EAOD;AACC,WAAG,EAAC,MADL;AAEC,iBAAS,EAAC;AAFX,SAIGzI,KAAK,GAAGA,KAAH,GAAW2D,2DAAE,CAAE,sBAAF,CAJrB,CAPC,CADH,CADD,CADD;AAoBA;;;;EAhE8BqE,4D;;AAmEjBiT,uEAAf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChGA;;;AAGA;AAEA;;;;AAGA;AACA;;qBAE+BxE,wEAAa,CAAE;AAC7CyE,aAAW,EAAE,uBAAM,CAAE,CADwB;AAE7CC,gBAAc,EAAE,0BAAM,CAAE;AAFqB,CAAF,C;IAApCxE,Q,kBAAAA,Q;IAAUD,Q,kBAAAA,Q;;AAKlB,IAAMkF,gBAAgB,GAAG,SAAnBA,gBAAmB,OAAwB;AAAA,MAApBnC,YAAoB,QAApBA,YAAoB;;AAChD,MAAKA,YAAL,EAAoB;AACnB;AACA;AACA;AACA,QAAK/B,uDAAQ,CAAE+B,YAAY,CAACoC,KAAf,EAAsB,OAAtB,CAAb,EAA+C;AAC9C,aAAO,MAAP;AACA;;AAED,QAAKnE,uDAAQ,CAAE+B,YAAY,CAACoC,KAAf,EAAsB,WAAtB,CAAb,EAAmD;AAClD,aAAO,MAAP;AACA;AACD;;AAED,SAAO,SAAP;AACA,CAfD;;AAiBA,IAAMC,yBAAyB,GAAG,SAA5BA,yBAA4B,CAAEnS,IAAF,EAAQ2R,QAAR,EAAsB;AACvD,SAAS3R,IAAI,KAAK,MAAT,IAAmB2R,QAAQ,CAACC,WAA9B,IACJ5R,IAAI,KAAK,MAAT,IAAmB2R,QAAQ,CAACE,UADxB,IAEJ7R,IAAI,KAAK,SAAT,IAAsB2R,QAAQ,CAACzC,MAFlC;AAGA,CAJD;;AAMA,IAAMkD,qBAAqB,GAAG,SAAxBA,qBAAwB,CAAEvC,OAAF,EAAWnH,CAAX,EAAcG,CAAd,EAAqB;AAClD,MAAMwJ,IAAI,GAAGxC,OAAO,CAACxH,qBAAR,EAAb,CADkD,CAElD;;AACA,MAAKgK,IAAI,CAACC,MAAL,KAAgBD,IAAI,CAACxK,GAArB,IAA4BwK,IAAI,CAACxN,IAAL,KAAcwN,IAAI,CAACrN,KAApD,EAA4D;AAC3D,WAAO,KAAP;AACA;;AAED,SAAO0D,CAAC,IAAI2J,IAAI,CAACxN,IAAV,IAAkB6D,CAAC,IAAI2J,IAAI,CAACrN,KAA5B,IAAqC6D,CAAC,IAAIwJ,IAAI,CAACxK,GAA/C,IAAsDgB,CAAC,IAAIwJ,IAAI,CAACC,MAAvE;AACA,CARD;;IAUMC,gB;;;;;AACL,8BAAc;AAAA;;AAAA;;AACb,+OAAU9a,SAAV,GADa,CAGb;;AACA,UAAKwX,UAAL,GAAkB,MAAKA,UAAL,CAAgBtX,IAAhB,2MAAlB;AACA,UAAKuX,MAAL,GAAc,MAAKA,MAAL,CAAYvX,IAAZ,2MAAd,CALa,CAMb;;AACA,UAAK4Z,WAAL,GAAmB,MAAKA,WAAL,CAAiB5Z,IAAjB,2MAAnB;AACA,UAAK6Z,cAAL,GAAsB,MAAKA,cAAL,CAAoB7Z,IAApB,2MAAtB,CARa,CASb;;AACA,UAAKyX,cAAL,GAAsB,MAAKA,cAAL,CAAoBzX,IAApB,2MAAtB;AACA,UAAK6a,0BAAL,GAAkCnL,uDAAQ,CAAE,MAAKmL,0BAAL,CAAgC7a,IAAhC,2MAAF,EAAgD,GAAhD,CAA1C;AAEA,UAAK8a,SAAL,GAAiB,EAAjB;AACA,UAAKC,iBAAL,GAAyB;AACxBnB,iBAAW,EAAE,MAAKA,WADM;AAExBC,oBAAc,EAAE,MAAKA;AAFG,KAAzB;AAIA,UAAKrZ,KAAL,GAAa;AACZwa,qBAAe,EAAE,CAAC,CADN;AAEZb,4BAAsB,EAAE,KAFZ;AAGZC,2BAAqB,EAAE,KAHX;AAIZC,cAAQ,EAAE,IAJE;AAKZhS,UAAI,EAAE;AALM,KAAb;AAlBa;AAyBb;;;;wCAEmB;AACnBlJ,YAAM,CAACqN,gBAAP,CAAyB,UAAzB,EAAqC,KAAK8K,UAA1C;AACAnY,YAAM,CAACqN,gBAAP,CAAyB,MAAzB,EAAiC,KAAK+K,MAAtC;AACApY,YAAM,CAACqN,gBAAP,CAAyB,SAAzB,EAAoC,KAAKiL,cAAzC,EAHmB,CAKnB;AACA;;AACA,WAAKzO,SAAL,GAAiBiS,sEAAW,CAAE,IAAF,CAA5B;AACA;;;2CAEsB;AACtB9b,YAAM,CAACuN,mBAAP,CAA4B,UAA5B,EAAwC,KAAK4K,UAA7C;AACAnY,YAAM,CAACuN,mBAAP,CAA4B,MAA5B,EAAoC,KAAK6K,MAAzC;AACApY,YAAM,CAACuN,mBAAP,CAA4B,SAA5B,EAAuC,KAAK+K,cAA5C;AACA;;;gCAEYuC,Q,EAAW;AACvB,WAAKc,SAAL,CAAe9b,IAAf,CAAqBgb,QAArB;AACA;;;mCAEeA,Q,EAAW;AAC1B,WAAKc,SAAL,GAAiBzI,qDAAM,CAAE,KAAKyI,SAAP,EAAkB,UAAEI,EAAF;AAAA,eAAUA,EAAE,KAAKlB,QAAjB;AAAA,OAAlB,CAAvB;AACA;;;qCAEgB;AAChB;AACA,WAAKa,0BAAL,CAAgC5U,MAAhC;AAFgB,wBAIoC,KAAKzF,KAJzC;AAAA,UAIR2Z,sBAJQ,eAIRA,sBAJQ;AAAA,UAIgBa,eAJhB,eAIgBA,eAJhB;;AAKhB,UAAK,CAAEb,sBAAF,IAA4Ba,eAAe,KAAK,CAAC,CAAtD,EAA0D;AACzD;AACA;;AAED,WAAKhZ,QAAL,CAAe;AACdgZ,uBAAe,EAAE,CAAC,CADJ;AAEdb,8BAAsB,EAAE,KAFV;AAGdC,6BAAqB,EAAE,KAHT;AAIdC,gBAAQ,EAAE,IAJI;AAKdhS,YAAI,EAAE;AALQ,OAAf;AAQA,WAAKyS,SAAL,CAAe3E,OAAf,CAAwB,UAAE6D,QAAF;AAAA,eAAgBA,QAAQ,CAAChY,QAAT,CAAmB;AAC1DmY,gCAAsB,EAAE,KADkC;AAE1DC,+BAAqB,EAAE,KAFmC;AAG1DC,kBAAQ,EAAE,IAHgD;AAI1DhS,cAAI,EAAE;AAJoD,SAAnB,CAAhB;AAAA,OAAxB;AAMA;;;+CAE2B/E,K,EAAO6X,a,EAAgB;AAAA;;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,UAAMC,MAAM,GAAGjc,MAAM,CAACkc,WAAP,IAAsB/X,KAAK,YAAYnE,MAAM,CAACkc,WAA9C,GAA4D/X,KAAK,CAAC8X,MAAlE,GAA2E9X,KAA1F,CAPkD,CASlD;;AACA,UAAMgY,gBAAgB,GAAGjJ,qDAAM,CAAE,KAAKyI,SAAP,EAAkB,UAAEd,QAAF;AAAA,eAChDQ,yBAAyB,CAAEW,aAAF,EAAiBnB,QAAjB,CAAzB,IACAS,qBAAqB,CAAET,QAAQ,CAAC9B,OAAX,EAAoBkD,MAAM,CAACtD,OAA3B,EAAoCsD,MAAM,CAACxD,OAA3C,CAF2B;AAAA,OAAlB,CAA/B,CAVkD,CAelD;;AACA,UAAMoD,eAAe,GAAG3V,mDAAI,CAAEiW,gBAAF,EAAoB,UAAEC,IAAF;AAAA,eAC/C,CAAE3c,mDAAI,CAAE0c,gBAAF,EAAoB,UAAEE,OAAF;AAAA,iBAAeA,OAAO,KAAKD,IAAZ,IAAoBA,IAAI,CAACrD,OAAL,CAAauD,aAAb,CAA2BC,QAA3B,CAAqCF,OAAO,CAACtD,OAA7C,CAAnC;AAAA,SAApB,CADyC;AAAA,OAApB,CAA5B;AAIA,UAAMyD,oBAAoB,GAAG,KAAKb,SAAL,CAAec,OAAf,CAAwBZ,eAAxB,CAA7B;AAEA,UAAIX,QAAQ,GAAG,IAAf;;AAEA,UAAKW,eAAL,EAAuB;AACtB,YAAMN,IAAI,GAAGM,eAAe,CAAC9C,OAAhB,CAAwBxH,qBAAxB,EAAb;AAEA2J,gBAAQ,GAAG;AACVtJ,WAAC,EAAEqK,MAAM,CAACtD,OAAP,GAAiB4C,IAAI,CAACxN,IAAtB,GAA6BwN,IAAI,CAACrN,KAAL,GAAa+N,MAAM,CAACtD,OAAjD,GAA2D,MAA3D,GAAoE,OAD7D;AAEV5G,WAAC,EAAEkK,MAAM,CAACxD,OAAP,GAAiB8C,IAAI,CAACxK,GAAtB,GAA4BwK,IAAI,CAACC,MAAL,GAAcS,MAAM,CAACxD,OAAjD,GAA2D,KAA3D,GAAmE;AAF5D,SAAX;AAIA,OA/BiD,CAiClD;;;AACA,UAAIiE,QAAQ,GAAG,EAAf;;AAEA,UAAK,CAAE,KAAKrb,KAAL,CAAW2Z,sBAAlB,EAA2C;AAC1C0B,gBAAQ,GAAG,KAAKf,SAAhB;AACA,OAFD,MAEO,IAAKa,oBAAoB,KAAK,KAAKnb,KAAL,CAAWwa,eAAzC,EAA2D;AACjE,YAAK,KAAKxa,KAAL,CAAWwa,eAAX,KAA+B,CAAC,CAArC,EAAyC;AACxCa,kBAAQ,CAAC7c,IAAT,CAAe,KAAK8b,SAAL,CAAgB,KAAKta,KAAL,CAAWwa,eAA3B,CAAf;AACA;;AACD,YAAKA,eAAL,EAAuB;AACtBa,kBAAQ,CAAC7c,IAAT,CAAegc,eAAf;AACA;AACD,OAPM,MAOA,IACNA,eAAe,IACfW,oBAAoB,KAAK,KAAKnb,KAAL,CAAWwa,eADpC,IAEA,CAAEc,sDAAO,CAAEzB,QAAF,EAAY,KAAK7Z,KAAL,CAAW6Z,QAAvB,CAHH,EAIL;AACDwB,gBAAQ,CAAC7c,IAAT,CAAegc,eAAf;AACA,OAnDiD,CAqDlD;;;AACAa,cAAQ,CAAC/Y,GAAT,CAAc,UAAEkX,QAAF,EAAgB;AAC7B,YAAMzU,KAAK,GAAG,MAAI,CAACuV,SAAL,CAAec,OAAf,CAAwB5B,QAAxB,CAAd;;AACA,YAAM+B,sBAAsB,GAAGxW,KAAK,KAAKoW,oBAAzC;AACA3B,gBAAQ,CAAChY,QAAT,CAAmB;AAClBmY,gCAAsB,EAAEK,yBAAyB,CAAEW,aAAF,EAAiBnB,QAAjB,CAD/B;AAElBI,+BAAqB,EAAE2B,sBAFL;AAGlB1B,kBAAQ,EAAE0B,sBAAsB,GAAG1B,QAAH,GAAc,IAH5B;AAIlBhS,cAAI,EAAE0T,sBAAsB,GAAGZ,aAAH,GAAmB;AAJ7B,SAAnB;AAMA,OATD;AAWA,UAAMa,QAAQ,GAAG;AAChB7B,8BAAsB,EAAE,IADR;AAEhBa,uBAAe,EAAEW,oBAFD;AAGhBtB,gBAAQ,EAARA;AAHgB,OAAjB;;AAKA,UAAK,CAAE4B,kEAAc,CAAED,QAAF,EAAY,KAAKxb,KAAjB,CAArB,EAAgD;AAC/C,aAAKwB,QAAL,CAAega,QAAf;AACA;AACD;;;+BAEW1Y,K,EAAQ;AACnB,WAAKuX,0BAAL,CAAiCvX,KAAjC,EAAwCgX,gBAAgB,CAAEhX,KAAF,CAAxD;AACAA,WAAK,CAACO,cAAN;AACA;;;2BAEOP,K,EAAQ;AACf;AACA;AACAA,WAAK,CAAC6U,YAAN,IAAsB7U,KAAK,CAAC6U,YAAN,CAAmB+D,KAAnB,CAAyB3d,MAA/C,CAHe,CAGwC;;AAHxC,yBAKuB,KAAKiC,KAL5B;AAAA,UAKP6Z,QALO,gBAKPA,QALO;AAAA,UAKGW,eALH,gBAKGA,eALH;AAMf,UAAMG,aAAa,GAAGb,gBAAgB,CAAEhX,KAAF,CAAtC;AACA,UAAM0W,QAAQ,GAAG,KAAKc,SAAL,CAAgBE,eAAhB,CAAjB;AACA,UAAMmB,eAAe,GAAG,CAAC,CAAEnC,QAAH,IAAe,KAAKhR,SAAL,CAAe0S,QAAf,CAAyBpY,KAAK,CAACiE,MAA/B,CAAvC;AACA,WAAKkQ,cAAL;;AAEA,UAAK0E,eAAL,EAAuB;AACtB,gBAAShB,aAAT;AACC,eAAK,MAAL;AACCnB,oBAAQ,CAACC,WAAT,8FAA2B3W,KAAK,CAAC6U,YAAN,CAAmB+D,KAA9C,GAAuD7B,QAAvD;AACA;;AACD,eAAK,MAAL;AACCL,oBAAQ,CAACE,UAAT,CAAqB5W,KAAK,CAAC6U,YAAN,CAAmBiE,OAAnB,CAA4B,WAA5B,CAArB,EAAgE/B,QAAhE;AACA;;AACD,eAAK,SAAL;AACCL,oBAAQ,CAACzC,MAAT,CAAiBjU,KAAjB,EAAwB+W,QAAxB;AARF;AAUA;;AAED/W,WAAK,CAACQ,eAAN;AACAR,WAAK,CAACO,cAAN;AACA;;;6BAEQ;AACR,aACC,yEAAC,QAAD;AAAU,aAAK,EAAG,KAAKkX;AAAvB,SACG,KAAKla,KAAL,CAAWqF,QADd,CADD;AAKA;;;;EA/L6BQ,4D;;AAkMhBkU,+EAAf;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpPA;;;AAGA;AACA;AAEA;;;;AAGA;AAEA;;;;AAGA;AACA;AACA;;AAEA,SAASyB,YAAT,OAMI;AAAA,uBALHvS,IAKG;AAAA,MALHA,IAKG,0BALI,MAKJ;AAAA,MAJHpL,KAIG,QAJHA,KAIG;AAAA,MAHH4d,SAGG,QAHHA,SAGG;AAAA,MAFHC,QAEG,QAFHA,QAEG;AAAA,MADHlW,SACG,QADHA,SACG;;AACH,MAAK,CAAEkW,QAAF,IAAc,CAAEA,QAAQ,CAAChe,MAA9B,EAAuC;AACtC,WAAO,IAAP;AACA,GAHE,CAKH;;;AACA,MAAIie,WAAW,GAAGD,QAAlB;;AACA,MAAK,CAAEE,KAAK,CAACC,OAAN,CAAeF,WAAW,CAAE,CAAF,CAA1B,CAAP,EAA2C;AAC1CA,eAAW,GAAG,CAAEA,WAAF,CAAd;AACA;;AAED,SACC,yEAAC,iDAAD;AACC,aAAS,EAAG/V,iDAAU,CAAE,0BAAF,EAA8BJ,SAA9B,CADvB;AAEC,oBAAgB,EAAC,mCAFlB;AAGC,gBAAY,EAAG,6BAA4B;AAAA,UAAxB0E,MAAwB,SAAxBA,MAAwB;AAAA,UAAhBC,QAAgB,SAAhBA,QAAgB;;AAC1C,UAAM2R,eAAe,GAAG,SAAlBA,eAAkB,CAAErZ,KAAF,EAAa;AACpC,YAAK,CAAEyH,MAAF,IAAYzH,KAAK,CAACC,OAAN,KAAkBS,wDAAnC,EAA0C;AACzCV,eAAK,CAACO,cAAN;AACAP,eAAK,CAACQ,eAAN;AACAkH,kBAAQ;AACR;AACD,OAND;;AAOA,aACC,yEAAC,oDAAD;AACC,iBAAS,EAAC,kCADX;AAEC,YAAI,EAAGlB,IAFR;AAGC,eAAO,EAAGkB,QAHX;AAIC,iBAAS,EAAG2R,eAJb;AAKC,yBAAc,MALf;AAMC,yBAAgB5R,MANjB;AAOC,aAAK,EAAGrM,KAPT;AAQC,eAAO,EAAGA;AARX,SAUC;AAAM,iBAAS,EAAC;AAAhB,QAVD,CADD;AAcA,KAzBF;AA0BC,iBAAa,EAAG,8BAAmB;AAAA,UAAfke,OAAe,SAAfA,OAAe;AAClC,aACC,yEAAC,kEAAD;AACC,iBAAS,EAAC,gCADX;AAEC,YAAI,EAAC,MAFN;AAGC,sBAAaN;AAHd,SAKGO,sDAAO,CAAEL,WAAF,EAAe,UAAEM,UAAF,EAAcC,UAAd;AAAA,eACvBD,UAAU,CAACha,GAAX,CAAgB,UAAEka,OAAF,EAAWC,cAAX;AAAA,iBACf,yEAAC,oDAAD;AACC,eAAG,EAAG,CAAEF,UAAF,EAAcE,cAAd,EAA+B1K,IAA/B,EADP;AAEC,mBAAO,EAAG,iBAAEjP,KAAF,EAAa;AACtBA,mBAAK,CAACQ,eAAN;AACA8Y,qBAAO;;AACP,kBAAKI,OAAO,CAACE,OAAb,EAAuB;AACtBF,uBAAO,CAACE,OAAR;AACA;AACD,aARF;AASC,qBAAS,EAAGzW,iDAAU,CACrB,qCADqB,EAErB;AACC,+BAAiBsW,UAAU,GAAG,CAAb,IAAkBE,cAAc,KAAK,CADvD;AAEC,2BAAaD,OAAO,CAACG;AAFtB,aAFqB,CATvB;AAgBC,gBAAI,EAAGH,OAAO,CAAClT,IAhBhB;AAiBC,gBAAI,EAAC,UAjBN;AAkBC,oBAAQ,EAAGkT,OAAO,CAACtb;AAlBpB,aAoBGsb,OAAO,CAACI,KApBX,CADe;AAAA,SAAhB,CADuB;AAAA,OAAf,CALV,CADD;AAkCA;AA7DF,IADD;AAiEA;;AAEcf,2EAAf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtGA;;;AAGA;AAEA;;;;AAGA;;IAEMgB,Q;;;;;AACL,sBAAc;AAAA;;AAAA;;AACb,uOAAUvd,SAAV;AACA,UAAKwd,MAAL,GAAc,MAAKA,MAAL,CAAYtd,IAAZ,2MAAd;AACA,UAAKud,KAAL,GAAa,MAAKA,KAAL,CAAWvd,IAAX,2MAAb;AACA,UAAKwd,YAAL,GAAoB,MAAKA,YAAL,CAAkBxd,IAAlB,2MAApB;AACA,UAAK6I,aAAL,GAAqB,MAAKA,aAAL,CAAmB7I,IAAnB,2MAArB;AACA,UAAKyd,OAAL,GAAe,MAAKA,OAAL,CAAazd,IAAb,2MAAf;AACA,UAAK0d,UAAL,GAAkBvS,oEAAS,EAA3B;AACA,UAAK3K,KAAL,GAAa;AACZuK,YAAM,EAAE;AADI,KAAb;AARa;AAWb;;;;2CAEsB;AAAA,UACdA,MADc,GACH,KAAKvK,KADF,CACduK,MADc;AAAA,UAEdC,QAFc,GAED,KAAKnK,KAFJ,CAEdmK,QAFc;;AAGtB,UAAKD,MAAM,IAAIC,QAAf,EAA0B;AACzBA,gBAAQ,CAAE,KAAF,CAAR;AACA;AACD;;;uCAEmBxG,S,EAAWC,S,EAAY;AAAA,UAClCsG,MADkC,GACvB,KAAKvK,KADkB,CAClCuK,MADkC;AAAA,UAElCC,QAFkC,GAErB,KAAKnK,KAFgB,CAElCmK,QAFkC;;AAG1C,UAAKvG,SAAS,CAACsG,MAAV,KAAqBA,MAArB,IAA+BC,QAApC,EAA+C;AAC9CA,gBAAQ,CAAED,MAAF,CAAR;AACA;AACD;;;kCAEc1D,G,EAAM;AACpB,WAAK2B,SAAL,GAAiB3B,GAAjB;AACA;AAED;;;;;;;;8BAKU;AACT,UAAK,KAAKqW,UAAL,CAAgBnR,OAArB,EAA+B;AAC9B,aAAKmR,UAAL,CAAgBnR,OAAhB,CAAwBkR,OAAxB;AACA;AACD;;;6BAEQ;AACR,WAAKzb,QAAL,CAAe,UAAExB,KAAF;AAAA,eAAe;AAC7BuK,gBAAM,EAAE,CAAEvK,KAAK,CAACuK;AADa,SAAf;AAAA,OAAf;AAGA;;;iCAEazH,K,EAAQ;AACrB,UAAK,CAAE,KAAK0F,SAAL,CAAe0S,QAAf,CAAyBpY,KAAK,CAACiE,MAA/B,CAAP,EAAiD;AAChD,aAAKgW,KAAL;AACA;AACD;;;4BAEO;AACP,WAAKvb,QAAL,CAAe;AAAE+I,cAAM,EAAE;AAAV,OAAf;AACA;;;6BAEQ;AAAA,UACAA,MADA,GACW,KAAKvK,KADhB,CACAuK,MADA;AAAA,wBAUJ,KAAKlK,KAVD;AAAA,UAGP8c,aAHO,eAGPA,aAHO;AAAA,UAIPC,YAJO,eAIPA,YAJO;AAAA,6CAKPvD,QALO;AAAA,UAKPA,QALO,qCAKI,QALJ;AAAA,UAMPhU,SANO,eAMPA,SANO;AAAA,UAOPwX,gBAPO,eAOPA,gBAPO;AAAA,UAQPC,cARO,eAQPA,cARO;AAAA,UASPC,WATO,eASPA,WATO;AAYR,UAAMtU,IAAI,GAAG;AAAEsB,cAAM,EAANA,MAAF;AAAUC,gBAAQ,EAAE,KAAKsS,MAAzB;AAAiCV,eAAO,EAAE,KAAKW;AAA/C,OAAb;AAEA,aACC;AAAK,iBAAS,EAAGlX,SAAjB;AAA6B,WAAG,EAAG,KAAKwC;AAAxC,SACG+U,YAAY,CAAEnU,IAAF,CADf,EAEGsB,MAAM,IACP,yEAAC,gDAAD;AACC,iBAAS,EAAG8S,gBADb;AAEC,WAAG,EAAG,KAAKH,UAFZ;AAGC,gBAAQ,EAAGrD,QAHZ;AAIC,eAAO,EAAG,KAAKkD,KAJhB;AAKC,sBAAc,EAAG,KAAKC,YALvB;AAMC,sBAAc,EAAGM,cANlB;AAOC,mBAAW,EAAGC;AAPf,SASGJ,aAAa,CAAElU,IAAF,CAThB,CAHF,CADD;AAkBA;;;;EA7FqB/C,4D;;AAgGR2W,uEAAf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1GA;;;AAGA;AACA;AAEA;;;;AAGA;AACA;AAEA;;;;AAGA;AAEO,SAASW,YAAT,OAAoF3W,GAApF,EAA0F;AAAA,MAAjEC,IAAiE,QAAjEA,IAAiE;AAAA,MAA3DpB,QAA2D,QAA3DA,QAA2D;AAAA,MAAjDG,SAAiD,QAAjDA,SAAiD;AAAA,sBAAtC4X,GAAsC;AAAA,MAAtCA,GAAsC,yBAAhC,EAAgC;AAAA,MAAzB/V,eAAyB;;AAChG+V,KAAG,GAAGC,mDAAI,CAAEC,sDAAO,CAAC,6FAChBF,GAAG,CAACG,KAAJ,CAAW,GAAX,CADe,UAElB,UAFkB,EAGlB,YAHkB,EAIlB,UAJkB,GAAT,CAAJ,CAKA7L,IALA,CAKM,GALN,CAAN;AAMA,MAAMpL,OAAO,GAAGV,iDAAU,CAAE,0BAAF,EAA8BJ,SAA9B,CAA1B;AACA,SACC,qKAAQ6B,eAAR;AAA0B,aAAS,EAAGf,OAAtC;AAAgD,QAAI,EAAGG,IAAvD;AAA8D,UAAM,EAAC,QAArE;AAA8E,OAAG,EAAG2W,GAApF;AAA0F,OAAG,EAAG5W;AAAhG,MACGnB,QADH,EAEC;AAAM,aAAS,EAAC;AAAhB;AAEE;AACA7D,4DAAE,CAAE,sBAAF,CAHJ,CAFD,EAQC,yEAAC,iDAAD;AAAU,QAAI,EAAC,UAAf;AAA0B,aAAS,EAAC;AAApC,IARD,CADD;AAYA;AAEckG,oIAAU,CAAEyV,YAAF,CAAzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvCA;;;AAGA;AAEA;;;;AAGA;AACA;AAEA;;;;cAIuB7e,M;IAAfkf,U,WAAAA,U;;IAEFC,e;;;;;AACL,2BAAazd,KAAb,EAAqB;AAAA;;AAAA;;AACpB,8OAAUf,SAAV;AAEA,UAAKye,UAAL,GAAkB,MAAKA,UAAL,CAAgBve,IAAhB,2MAAlB;AAEA,UAAKW,IAAL,GAAYE,KAAK,CAAC2d,SAAN,IAAmBrT,oEAAS,EAAxC;AALoB;AAMpB;AAED;;;;;;;;iCAIa;AACZ,UAAMsT,MAAM,GAAG,KAAK9d,IAAL,CAAU4L,OAAzB;;AAEA,UAAK0K,QAAQ,CAACyH,aAAT,KAA2BD,MAAhC,EAAyC;AACxC;AACA;;AAED,UAAME,UAAU,GAAG,IAAIN,UAAJ,CAAgB,OAAhB,EAAyB;AAAEO,eAAO,EAAE;AAAX,OAAzB,CAAnB;AACAH,YAAM,CAACI,aAAP,CAAsBF,UAAtB;AARY,UAUJG,OAVI,GAUQ,KAAKje,KAVb,CAUJie,OAVI;;AAWZ,UAAKA,OAAL,EAAe;AACdA,eAAO,CAAEH,UAAF,CAAP;AACA;AACD;;;6BAEQ;AACR;AACA;AACA;;AAEA;AACA,aACC;AACC,WAAG,EAAG,KAAKhe;AADZ,SAEMqO,mDAAI,CAAE,KAAKnO,KAAP,EAAc,CAAE,WAAF,EAAe,SAAf,CAAd,CAFV,EADD;AAMA;AACA;;;;EA1C4B6F,4D;;AA6CfqY,0IAAgB,CAAE;AAChCC,MAAI,EAAE;AAD0B,CAAF,CAAhB,CAEVV,eAFU,CAAf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9DA;;;AAGA;AAEA;;;;AAGA;AACA;AAEA;;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASW,cAAT,OAOI;AAAA,MANHC,gBAMG,QANHA,gBAMG;AAAA,4BALHC,SAKG;AAAA,MALHA,SAKG,+BALS,EAKT;AAAA,mCAJHC,sBAIG;AAAA,MAJHA,sBAIG,sCAJsB,KAItB;AAAA,MAHHre,QAGG,QAHHA,QAGG;AAAA,MAFHa,KAEG,QAFHA,KAEG;AAAA,MADHyd,UACG,QADHA,UACG;;AACH,MAAM1W,aAAa,GAAG,SAAhBA,aAAgB,CAAErF,KAAF,EAAa;AAClC,QAAMyL,QAAQ,GAAGzL,KAAK,CAACiE,MAAN,CAAa3F,KAA9B;;AACA,QAAKmN,QAAQ,KAAK,EAAlB,EAAuB;AACtBhO,cAAQ,CAAErB,SAAF,CAAR;AACA;AACA;;AACDqB,YAAQ,CAAEue,MAAM,CAAEvQ,QAAF,CAAR,CAAR;AACA,GAPD;;AASA,MAAMwQ,WAAW,GAAGJ,SAAS,CAAC9Z,IAAV,CAAgB,UAAEma,IAAF;AAAA,WAAYA,IAAI,CAACtN,IAAL,KAActQ,KAA1B;AAAA,GAAhB,CAApB;AAEA,SACC,yEAAC,qDAAD;AAAa,SAAK,EAAGS,0DAAE,CAAE,WAAF;AAAvB,KACC;AAAK,aAAS,EAAC;AAAf,KACC,yEAAC,iDAAD;AACC,aAAS,EAAC,uCADX;AAEC,oBAAgB,EAAC,+CAFlB;AAGC,YAAQ,EAAC,QAHV;AAIC,gBAAY,EAAG;AAAA,UAAI0I,MAAJ,SAAIA,MAAJ;AAAA,UAAYC,QAAZ,SAAYA,QAAZ;AAAA,aACd,yEAAC,+CAAD;AACC,iBAAS,EAAC,uCADX;AAEC,eAAO,MAFR;AAGC,eAAO,EAAGA,QAHX;AAIC,yBAAgBD,MAJjB;AAKC,sBAAa1I,0DAAE,CAAE,kBAAF;AALhB,SAOKkd,WAAW,IAAIA,WAAW,CAAC3U,IAA7B,IAAyC,CAAEhJ,KAAF,IAAW8R,0DAAE,CAAE,QAAF,EAAY,gBAAZ,CAAtD,IAA0FA,0DAAE,CAAE,QAAF,EAAY,gBAAZ,CAP/F,CADc;AAAA,KAJhB;AAeC,iBAAa,EAAG;AAAA,aACf,yEAAC,kEAAD,QACG5Q,kDAAG,CAAEqc,SAAF,EAAa;AAAA,YAAIvU,IAAJ,SAAIA,IAAJ;AAAA,YAAUsH,IAAV,SAAUA,IAAV;AAAA,YAAgBuN,IAAhB,SAAgBA,IAAhB;AAAA,eACjB,yEAAC,+CAAD;AACC,aAAG,EAAGA,IADP;AAEC,iBAAO,EAAG;AAAA,mBAAM1e,QAAQ,CAAE0e,IAAI,KAAK,QAAT,GAAoB/f,SAApB,GAAgCwS,IAAlC,CAAd;AAAA,WAFX;AAGC,mBAAS,EAAG,aAAauN,IAH1B;AAIC,cAAI,EAAC;AAJN,WAMG,CAAE7d,KAAK,KAAKsQ,IAAV,IAAoB,CAAEtQ,KAAF,IAAW6d,IAAI,KAAK,QAA1C,KAA0D,yEAAC,iDAAD;AAAU,cAAI,EAAC;AAAf,UAN7D,EAOC;AAAM,mBAAS,EAAC,iDAAhB;AAAkE,eAAK,EAAG;AAAEC,oBAAQ,EAAExN;AAAZ;AAA1E,WACGtH,IADH,CAPD,CADiB;AAAA,OAAb,CADN,CADe;AAAA;AAfjB,IADD,EAkCK,CAAEyU,UAAF,IAAgB,CAAED,sBAApB,IACD;AACC,aAAS,EAAC,kCADX;AAEC,QAAI,EAAC,QAFN;AAGC,YAAQ,EAAGzW,aAHZ;AAIC,kBAAatG,0DAAE,CAAE,kBAAF,CAJhB;AAKC,SAAK,EAAGT,KAAK,IAAI;AALlB,IAnCF,EA2CC,yEAAC,+CAAD;AACC,aAAS,EAAC,iCADX;AAEC,QAAI,EAAC,QAFN;AAGC,YAAQ,EAAGA,KAAK,KAAKlC,SAHtB;AAIC,WAAO,EAAG;AAAA,aAAMqB,QAAQ,CAAErB,SAAF,CAAd;AAAA,KAJX;AAKC,WAAO,MALR;AAMC,aAAS,MANV;AAOC,kBAAa2C,0DAAE,CAAE,iBAAF;AAPhB,KASGA,0DAAE,CAAE,OAAF,CATL,CA3CD,CADD,EAwDGgd,UAAU,IACX,yEAAC,sDAAD;AACC,aAAS,EAAC,2CADX;AAEC,SAAK,EAAGhd,0DAAE,CAAE,aAAF,CAFX;AAGC,SAAK,EAAGT,KAAK,IAAI,EAHlB;AAIC,mBAAe,EAAGsd,gBAJnB;AAKC,YAAQ,EAAGne,QALZ;AAMC,OAAG,EAAG,EANP;AAOC,OAAG,EAAG,GAPP;AAQC,cAAU,EAAC,kBARZ;AASC,aAAS,EAAC;AATX,IAzDF,CADD;AAwEA;;AAEc8F,wIAAc,CAAEoY,cAAF,CAA7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClHA;;;AAGA;AAEA;;;;AAGA;;IAEMU,c;;;;;AACL,4BAAc;AAAA;;AAAA;;AACb,6OAAU7f,SAAV;AACA,UAAK8f,cAAL,GAAsB,MAAKA,cAAL,CAAoB5f,IAApB,2MAAtB;AACA,UAAK6f,SAAL,GAAiB,MAAKA,SAAL,CAAe7f,IAAf,2MAAjB;AAHa;AAIb;;;;qCAEgB;AAChB,WAAK8f,KAAL,CAAWC,KAAX;AACA;;;8BAEU1Y,G,EAAM;AAChB,WAAKyY,KAAL,GAAazY,GAAb;AACA;;;6BAEQ;AAAA,wBAC4E,KAAKxG,KADjF;AAAA,UACAqF,QADA,eACAA,QADA;AAAA,6CACU8Z,QADV;AAAA,UACUA,QADV,qCACqB,KADrB;AAAA,UAC4BC,MAD5B,eAC4BA,MAD5B;AAAA,UACoClf,QADpC,eACoCA,QADpC;AAAA,yCAC8C+I,IAD9C;AAAA,UAC8CA,IAD9C,iCACqD,QADrD;AAAA,UACkEjJ,KADlE;;AAGR,aACC;AAAK,iBAAS,EAAC;AAAf,SACC,yEAAC,oDAAD;AACC,YAAI,EAAGiJ,IADR;AAEC,eAAO,EAAG,KAAK8V;AAFhB,SAGM/e,KAHN,GAKGqF,QALH,CADD,EAQC;AACC,YAAI,EAAC,MADN;AAEC,WAAG,EAAG,KAAK2Z,SAFZ;AAGC,gBAAQ,EAAGG,QAHZ;AAIC,aAAK,EAAG;AAAEE,iBAAO,EAAE;AAAX,SAJT;AAKC,cAAM,EAAGD,MALV;AAMC,gBAAQ,EAAGlf;AANZ,QARD,CADD;AAmBA;;;;EArC2B2F,4D;;AAwCdiZ,6EAAf;;;;;;;;;;;;;;;;;;;;;;;;;;;AClDA;;;AAGA;AACA;AAEA;;;;AAGA;;AAEA,SAASQ,UAAT,OAA6E;AAAA,MAAtD9Z,SAAsD,QAAtDA,SAAsD;AAAA,MAA3CqC,OAA2C,QAA3CA,OAA2C;AAAA,MAAlC1B,EAAkC,QAAlCA,EAAkC;AAAA,2BAA9BjG,QAA8B;AAAA,MAA9BA,QAA8B,8BAAnB6K,2CAAmB;AAAA,MAAV/K,KAAU;;AAC5E,MAAMuf,cAAc,GAAG3Z,iDAAU,CAChC,wBADgC,EAEhCJ,SAFgC,EAGhC;AAAE,kBAAcqC;AAAhB,GAHgC,CAAjC;AAMA,SACC;AAAM,aAAS,EAAG0X;AAAlB,KACC;AACC,aAAS,EAAC,+BADX;AAEC,MAAE,EAAGpZ,EAFN;AAGC,QAAI,EAAC,UAHN;AAIC,WAAO,EAAG0B,OAJX;AAKC,YAAQ,EAAG3H;AALZ,KAMMF,KANN,EADD,EASC;AAAM,aAAS,EAAC;AAAhB,IATD,EAUC;AAAM,aAAS,EAAC;AAAhB,IAVD,EAWG6H,OAAO,GACR,yEAAC,+CAAD;AAAK,aAAS,EAAC,4BAAf;AAA4C,SAAK,EAAC,GAAlD;AAAsD,UAAM,EAAC,GAA7D;AAAiE,SAAK,EAAC,4BAAvE;AAAoG,WAAO,EAAC;AAA5G,KAAsH,yEAAC,gDAAD;AAAM,KAAC,EAAC;AAAR,IAAtH,CADQ,GAER,yEAAC,+CAAD;AAAK,aAAS,EAAC,6BAAf;AAA6C,SAAK,EAAC,GAAnD;AAAuD,UAAM,EAAC,GAA9D;AAAkE,mBAAY,MAA9E;AAAqF,QAAI,EAAC,KAA1F;AAAgG,aAAS,EAAC,OAA1G;AAAkH,SAAK,EAAC,4BAAxH;AAAqJ,WAAO,EAAC;AAA7J,KAAuK,yEAAC,gDAAD;AAAM,KAAC,EAAC;AAAR,IAAvK,CAbF,CADD;AAkBA;;AAEcyX,yEAAf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtCA;;;AAGA;AACA;AAEA;;;;AAGA;AACA;AACA;AACA;AAEA;;;;AAGA;AACA;AACA;AACA;AAEA,IAAME,YAAY,GAAG;AACpBC,sBAAoB,EAAE,EADF;AAEpBC,oBAAkB,EAAE,CAFA;AAGpBpD,UAAQ,EAAE,KAHU;AAIpB7W,YAAU,EAAE,KAJQ;AAKpBka,yBAAuB,EAAE,CAAC,CALN;AAMpBC,0BAAwB,EAAE;AANN,CAArB;;IASMC,c;;;;;AACL,4BAAc;AAAA;;AAAA;;AACb,6OAAU5gB,SAAV;AACA,UAAKU,KAAL,GAAa6f,YAAb;AACA,UAAKM,SAAL,GAAiB,MAAKA,SAAL,CAAe3gB,IAAf,2MAAjB;AACA,UAAK4gB,UAAL,GAAkB,MAAKA,UAAL,CAAgB5gB,IAAhB,2MAAlB;AACA,UAAK8e,OAAL,GAAe,MAAKA,OAAL,CAAa9e,IAAb,2MAAf;AACA,UAAK6gB,MAAL,GAAc,MAAKA,MAAL,CAAY7gB,IAAZ,2MAAd;AACA,UAAK8gB,sBAAL,GAA8B,MAAKA,sBAAL,CAA4B9gB,IAA5B,2MAA9B;AACA,UAAK+gB,qBAAL,GAA6B,MAAKA,qBAAL,CAA2B/gB,IAA3B,2MAA7B;AACA,UAAKghB,eAAL,GAAuB,MAAKA,eAAL,CAAqBhhB,IAArB,2MAAvB;AACA,UAAKihB,kBAAL,GAA0B,MAAKA,kBAAL,CAAwBjhB,IAAxB,2MAA1B;AACA,UAAKkhB,WAAL,GAAmB,MAAKA,WAAL,CAAiBlhB,IAAjB,2MAAnB;AACA,UAAKmhB,kBAAL,GAA0B,MAAKA,kBAAL,CAAwBnhB,IAAxB,2MAA1B;AACA,UAAKohB,mBAAL,GAA2B,MAAKA,mBAAL,CAAyBphB,IAAzB,2MAA3B;AACA,UAAKqhB,oBAAL,GAA4B,MAAKA,oBAAL,CAA0BrhB,IAA1B,2MAA5B;AACA,UAAKshB,aAAL,GAAqB,MAAKA,aAAL,CAAmBthB,IAAnB,2MAArB;AACA,UAAK6f,SAAL,GAAiB,MAAKA,SAAL,CAAe7f,IAAf,2MAAjB;AACA,UAAKuhB,kBAAL,GAA0B,MAAKA,kBAAL,CAAwBvhB,IAAxB,2MAA1B;AAjBa;AAkBb;;;;yCAEoB;AACpB;AACA,UAAK,KAAKQ,KAAL,CAAW2c,QAAX,IAAuB,CAAE,KAAK2C,KAAL,CAAW0B,QAAX,EAA9B,EAAsD;AACrD,aAAK1B,KAAL,CAAW5V,KAAX;AACA;AACD;;;8BAaU7C,G,EAAM;AAChB,WAAKyY,KAAL,GAAazY,GAAb;AACA;;;uCAEmBA,G,EAAM;AACzB,WAAKoa,cAAL,GAAsBpa,GAAtB;AACA;;;4BAEQ/D,K,EAAQ;AAChB;AACA,UAAK,KAAKwc,KAAL,CAAW0B,QAAX,MAAyBle,KAAK,CAACiE,MAAN,KAAiB,KAAKka,cAApD,EAAqE;AACpE,aAAKzf,QAAL,CAAe;AAAEmb,kBAAQ,EAAE;AAAZ,SAAf;AACA,OAFD,MAEO;AACN;;;;;AAKA,aAAKnb,QAAL,CAAe;AAAEmb,kBAAQ,EAAE;AAAZ,SAAf;AACA;;AAED,UAAK,eAAe,OAAO,KAAKtc,KAAL,CAAWie,OAAtC,EAAgD;AAC/C,aAAKje,KAAL,CAAWie,OAAX,CAAoBxb,KAApB;AACA;AACD;;;6BAEQ;AACR,UAAK,KAAKoe,kBAAL,EAAL,EAAiC;AAChC,aAAK1f,QAAL,CAAe;AAAEmb,kBAAQ,EAAE;AAAZ,SAAf;AACA,OAFD,MAEO;AACN,aAAKnb,QAAL,CAAeqe,YAAf;AACA;AACD;;;8BAEU/c,K,EAAQ;AAClB,UAAIO,cAAc,GAAG,KAArB;;AAEA,cAASP,KAAK,CAACC,OAAf;AACC,aAAKoe,8DAAL;AACC9d,wBAAc,GAAG,KAAK+d,eAAL,CAAsB,KAAKd,sBAA3B,CAAjB;AACA;;AACD,aAAKzc,0DAAL;AACCR,wBAAc,GAAG,KAAKmd,eAAL,EAAjB;AACA;;AACD,aAAK/c,yDAAL;AACCJ,wBAAc,GAAG,KAAKge,kBAAL,EAAjB;AACA;;AACD,aAAK9d,uDAAL;AACCF,wBAAc,GAAG,KAAKie,gBAAL,EAAjB;AACA;;AACD,aAAK5d,0DAAL;AACCL,wBAAc,GAAG,KAAKke,mBAAL,EAAjB;AACA;;AACD,aAAK/d,yDAAL;AACCH,wBAAc,GAAG,KAAKme,kBAAL,EAAjB;AACA;;AACD,aAAKC,2DAAL;AACCpe,wBAAc,GAAG,KAAK+d,eAAL,CAAsB,KAAKb,qBAA3B,CAAjB;AACA;;AACD,aAAKvd,0DAAL;AACC,cAAK,KAAK3C,KAAL,CAAWqhB,eAAhB,EAAkC;AACjCre,0BAAc,GAAG,KAAKmd,eAAL,EAAjB;AACA;;AACD;;AACD,aAAK5c,2DAAL;AACCP,wBAAc,GAAG,KAAKse,eAAL,CAAsB7e,KAAtB,CAAjB;AACAA,eAAK,CAACQ,eAAN;AACA;;AACD;AACC;AAhCF;;AAmCA,UAAKD,cAAL,EAAsB;AACrBP,aAAK,CAACO,cAAN;AACA;AACD;;;+BAEWP,K,EAAQ;AACnB,UAAIO,cAAc,GAAG,KAArB;;AACA,cAASP,KAAK,CAAC8e,QAAf;AACC,aAAK,EAAL;AAAS;AACRve,wBAAc,GAAG,KAAKwe,cAAL,EAAjB;AACA;;AACD;AACC;AALF;;AAQA,UAAKxe,cAAL,EAAsB;AACrBP,aAAK,CAACO,cAAN;AACA;AACD;;;uCAEmBP,K,EAAQ;AAC3B;AACA;AACA,UAAKA,KAAK,CAACiE,MAAN,KAAiB,KAAKka,cAAtB,IAAwC,KAAKjhB,KAAL,CAAW2c,QAAxD,EAAmE;AAClE7Z,aAAK,CAACO,cAAN;AACA;AACD;;;uCAEmBP,K,EAAQ;AAC3B,WAAKgf,WAAL,CAAkBhf,KAAK,CAAC1B,KAAxB;AACA,WAAKke,KAAL,CAAW5V,KAAX;AACA;;;wCAEoBqY,U,EAAa;AACjC,UAAMhd,KAAK,GAAG,KAAKid,sBAAL,GAA8B5G,OAA9B,CAAuC2G,UAAvC,CAAd;;AAEA,UAAKhd,KAAK,IAAI,CAAd,EAAkB;AACjB,aAAKvD,QAAL,CAAe;AACdwe,iCAAuB,EAAEjb,KADX;AAEdkb,kCAAwB,EAAE;AAFZ,SAAf;AAIA;AACD;;;yCAEqB8B,U,EAAa;AAClC,WAAKE,WAAL,CAAkBF,UAAlB;AACA;;;kCAEcjf,K,EAAQ;AACtB,UAAMyB,IAAI,GAAGzB,KAAK,CAAC1B,KAAnB;AACA,UAAM8gB,SAAS,GAAG,KAAK7hB,KAAL,CAAWqhB,eAAX,GAA6B,SAA7B,GAAyC,QAA3D;AACA,UAAMS,KAAK,GAAG5d,IAAI,CAACqZ,KAAL,CAAYsE,SAAZ,CAAd;AACA,UAAME,UAAU,GAAGC,mDAAI,CAAEF,KAAF,CAAJ,IAAiB,EAApC;AACA,UAAMG,oBAAoB,GAAGF,UAAU,CAACG,IAAX,GAAkBxkB,MAAlB,GAA2B,CAAxD;AACA,UAAMykB,mBAAmB,GAAG,KAAKR,sBAAL,CAA6BI,UAA7B,CAA5B;AACA,UAAMK,qBAAqB,GAAGH,oBAAoB,IAAI,CAAC,CAAEE,mBAAmB,CAACzkB,MAA7E;;AAEA,UAAKokB,KAAK,CAACpkB,MAAN,GAAe,CAApB,EAAwB;AACvB,aAAK2kB,YAAL,CAAmBP,KAAK,CAAC1d,KAAN,CAAa,CAAb,EAAgB,CAAC,CAAjB,CAAnB;AACA;;AAED,WAAKjD,QAAL,CAAe;AACdse,4BAAoB,EAAEsC,UADR;AAEdpC,+BAAuB,EAAE,CAAC,CAFZ;AAGdC,gCAAwB,EAAE,KAHZ;AAIdna,kBAAU,EAAE;AAJE,OAAf;AAOA,WAAKzF,KAAL,CAAWygB,aAAX,CAA0BsB,UAA1B;;AAEA,UAAKE,oBAAL,EAA4B;AAC3B,aAAK9gB,QAAL,CAAe;AACdsE,oBAAU,EAAE2c;AADE,SAAf;;AAIA,YAAK,CAAC,CAAED,mBAAmB,CAACzkB,MAA5B,EAAqC;AACpC,eAAKsC,KAAL,CAAWqB,cAAX,CAA2BC,gEAAO,CAAEC,2DAAE,CACrC,0DADqC,EAErC,2DAFqC,EAGrC4gB,mBAAmB,CAACzkB,MAHiB,CAAJ,EAI/BykB,mBAAmB,CAACzkB,MAJW,CAAlC,EAIiC,WAJjC;AAKA,SAND,MAMO;AACN,eAAKsC,KAAL,CAAWqB,cAAX,CAA2BG,2DAAE,CAAE,aAAF,CAA7B,EAAgD,WAAhD;AACA;AACD;AACD;;;oCAEgBigB,W,EAAc;AAC9B,UAAIze,cAAc,GAAG,KAArB;;AACA,UAAK,KAAKic,KAAL,CAAW0B,QAAX,MAAyB,KAAK2B,YAAL,EAA9B,EAAoD;AACnDb,mBAAW;AACXze,sBAAc,GAAG,IAAjB;AACA;;AAED,aAAOA,cAAP;AACA;;;yCAEoB;AACpB,UAAIA,cAAc,GAAG,KAArB;;AACA,UAAK,KAAKsf,YAAL,EAAL,EAA2B;AAC1B,aAAKC,4BAAL;AACAvf,sBAAc,GAAG,IAAjB;AACA;;AAED,aAAOA,cAAP;AACA;;;0CAEqB;AACrB,UAAIA,cAAc,GAAG,KAArB;;AACA,UAAK,KAAKsf,YAAL,EAAL,EAA2B;AAC1B,aAAKE,uBAAL;AACAxf,sBAAc,GAAG,IAAjB;AACA;;AAED,aAAOA,cAAP;AACA;;;uCAEkB;AAAA;;AAClB,WAAK7B,QAAL,CAAe,UAAExB,KAAF,EAASK,KAAT;AAAA,eAAsB;AACpC2f,iCAAuB,EACtB,CAAEhgB,KAAK,CAACggB,uBAAN,KAAkC,CAAlC,GAAsC,MAAI,CAACgC,sBAAL,CACvChiB,KAAK,CAAC8f,oBADiC,EAEvCzf,KAAK,CAACyiB,WAFiC,EAGvCziB,KAAK,CAACe,KAHiC,EAIvCf,KAAK,CAAC0iB,cAJiC,EAKvC1iB,KAAK,CAAC2iB,aALiC,EAMtCjlB,MANA,GAMSiC,KAAK,CAACggB,uBANjB,IAM6C,CARV;AAUpCC,kCAAwB,EAAE;AAVU,SAAtB;AAAA,OAAf;AAaA,aAAO,IAAP,CAdkB,CAcL;AACb;;;yCAEoB;AAAA;;AACpB,WAAKze,QAAL,CAAe,UAAExB,KAAF,EAASK,KAAT;AAAA,eAAsB;AACpC2f,iCAAuB,EACtB,CAAEhgB,KAAK,CAACggB,uBAAN,GAAgC,CAAlC,IAAwC,MAAI,CAACgC,sBAAL,CACvChiB,KAAK,CAAC8f,oBADiC,EAEvCzf,KAAK,CAACyiB,WAFiC,EAGvCziB,KAAK,CAACe,KAHiC,EAIvCf,KAAK,CAAC0iB,cAJiC,EAKvC1iB,KAAK,CAAC2iB,aALiC,EAMtCjlB,MARiC;AAUpCkiB,kCAAwB,EAAE;AAVU,SAAtB;AAAA,OAAf;AAaA,aAAO,IAAP,CAdoB,CAcP;AACb;;;oCAEgBnd,K,EAAQ;AACxB,WAAKtB,QAAL,CAAe;AACdse,4BAAoB,EAAEhd,KAAK,CAACiE,MAAN,CAAa3F,KADrB;AAEd0E,kBAAU,EAAE,KAFE;AAGdka,+BAAuB,EAAE,CAAC,CAHZ;AAIdC,gCAAwB,EAAE;AAJZ,OAAf;AAMA,aAAO,IAAP,CAPwB,CAOX;AACb;;;qCAEgB;AAChB,UAAK,KAAKiB,kBAAL,EAAL,EAAiC;AAChC,aAAKe,WAAL,CAAkB,KAAKjiB,KAAL,CAAW8f,oBAA7B;AACA;;AAED,aAAO,IAAP,CALgB,CAKH;AACb;;;qCAEiB/a,K,EAAQ;AACzB,WAAKvD,QAAL,CAAe,UAAExB,KAAF,EAASK,KAAT;AAAA,eAAsB;AACpC0f,4BAAkB,EAAE1f,KAAK,CAACe,KAAN,CAAYrD,MAAZ,GAAqB+Q,IAAI,CAACmU,GAAL,CAAUle,KAAV,EAAiB,CAAC,CAAlB,CAArB,GAA6C;AAD7B,SAAtB;AAAA,OAAf;AAGA;;;mDAE8B;AAC9B,WAAKvD,QAAL,CAAe,UAAExB,KAAF,EAASK,KAAT;AAAA,eAAsB;AACpC0f,4BAAkB,EAAEjR,IAAI,CAACoU,GAAL,CAAUljB,KAAK,CAAC+f,kBAAN,GAA2B,CAArC,EAAwC1f,KAAK,CAACe,KAAN,CAAYrD,MAApD;AADgB,SAAtB;AAAA,OAAf;AAGA;;;8CAEyB;AACzB,WAAKyD,QAAL,CAAe,UAAExB,KAAF;AAAA,eAAe;AAC7B+f,4BAAkB,EAAEjR,IAAI,CAACmU,GAAL,CAAUjjB,KAAK,CAAC+f,kBAAN,GAA2B,CAArC,EAAwC,CAAxC;AADS,SAAf;AAAA,OAAf;AAGA;;;6CAEwB;AACxB,UAAMhb,KAAK,GAAG,KAAKoe,eAAL,KAAyB,CAAvC;;AAEA,UAAKpe,KAAK,GAAG,CAAC,CAAd,EAAkB;AACjB,aAAK+c,WAAL,CAAkB,KAAKzhB,KAAL,CAAWe,KAAX,CAAkB2D,KAAlB,CAAlB;AACA;AACD;;;4CAEuB;AACvB,UAAMA,KAAK,GAAG,KAAKoe,eAAL,EAAd;;AAEA,UAAKpe,KAAK,GAAG,KAAK1E,KAAL,CAAWe,KAAX,CAAiBrD,MAA9B,EAAuC;AACtC,aAAK+jB,WAAL,CAAkB,KAAKzhB,KAAL,CAAWe,KAAX,CAAkB2D,KAAlB,CAAlB,EADsC,CAEtC;;AACA,aAAKqe,gBAAL,CAAuBre,KAAvB;AACA;AACD;;;sCAEiB;AACjB,UAAI1B,cAAc,GAAG,KAArB;AACA,UAAMggB,kBAAkB,GAAG,KAAKC,qBAAL,EAA3B;;AAEA,UAAKD,kBAAL,EAA0B;AACzB,aAAKpB,WAAL,CAAkBoB,kBAAlB;AACAhgB,sBAAc,GAAG,IAAjB;AACA,OAHD,MAGO,IAAK,KAAK6d,kBAAL,EAAL,EAAiC;AACvC,aAAKe,WAAL,CAAkB,KAAKjiB,KAAL,CAAW8f,oBAA7B;AACAzc,sBAAc,GAAG,IAAjB;AACA;;AAED,aAAOA,cAAP;AACA;;;iCAEakgB,M,EAAS;AAAA;;AACtB,UAAMC,WAAW,GAAG9F,mDAAI,CACvB6F,MAAM,CACJjhB,GADF,CACO,KAAKjC,KAAL,CAAW2iB,aADlB,EAEEnR,MAFF,CAEUC,OAFV,EAGED,MAHF,CAGU,UAAE4R,KAAF;AAAA,eAAa,CAAE,MAAI,CAACC,kBAAL,CAAyBD,KAAzB,CAAf;AAAA,OAHV,CADuB,CAAxB;;AAOA,UAAKD,WAAW,CAACzlB,MAAZ,GAAqB,CAA1B,EAA8B;AAC7B,YAAMwQ,QAAQ,GAAGgG,oDAAK,CAAE,KAAKlU,KAAL,CAAWe,KAAb,CAAtB;AACAmN,gBAAQ,CAACoV,MAAT,CAAgBC,KAAhB,CACCrV,QADD,EAEC,CAAE,KAAK4U,eAAL,EAAF,EAA0B,CAA1B,EAA8BU,MAA9B,CAAsCL,WAAtC,CAFD;AAIA,aAAKnjB,KAAL,CAAWE,QAAX,CAAqBgO,QAArB;AACA;AACD;;;gCAEYkV,K,EAAQ;AACpB,WAAKf,YAAL,CAAmB,CAAEe,KAAF,CAAnB;AACA,WAAKpjB,KAAL,CAAWuO,KAAX,CAAkB,KAAKvO,KAAL,CAAWyjB,QAAX,CAAoBC,KAAtC,EAA6C,WAA7C;AAEA,WAAKviB,QAAL,CAAe;AACdse,4BAAoB,EAAE,EADR;AAEdE,+BAAuB,EAAE,CAAC,CAFZ;AAGdC,gCAAwB,EAAE,KAHZ;AAIdna,kBAAU,EAAE;AAJE,OAAf;;AAOA,UAAK,KAAK9F,KAAL,CAAW2c,QAAhB,EAA2B;AAC1B,aAAK2C,KAAL,CAAW5V,KAAX;AACA;AACD;;;gCAEY+Z,K,EAAQ;AAAA;;AACpB,UAAMO,SAAS,GAAG,KAAK3jB,KAAL,CAAWe,KAAX,CAAiByQ,MAAjB,CAAyB,UAAEoS,IAAF,EAAY;AACtD,eAAO,MAAI,CAACC,aAAL,CAAoBD,IAApB,MAA+B,MAAI,CAACC,aAAL,CAAoBT,KAApB,CAAtC;AACA,OAFiB,CAAlB;AAGA,WAAKpjB,KAAL,CAAWE,QAAX,CAAqByjB,SAArB;AACA,WAAK3jB,KAAL,CAAWuO,KAAX,CAAkB,KAAKvO,KAAL,CAAWyjB,QAAX,CAAoBK,OAAtC,EAA+C,WAA/C;AACA;;;kCAEcV,K,EAAQ;AACtB,UAAK,aAAa,kFAAOA,KAApB,CAAL,EAAiC;AAChC,eAAOA,KAAK,CAACriB,KAAb;AACA;;AAED,aAAOqiB,KAAP;AACA;;;6CAQC;AAAA,UALDW,WAKC,uEALa,KAAKpkB,KAAL,CAAW8f,oBAKxB;AAAA,UAJDgD,WAIC,uEAJa,KAAKziB,KAAL,CAAWyiB,WAIxB;AAAA,UAHD1hB,KAGC,uEAHO,KAAKf,KAAL,CAAWe,KAGlB;AAAA,UAFD2hB,cAEC,uEAFgB,KAAK1iB,KAAL,CAAW0iB,cAE3B;AAAA,UADDC,aACC,uEADe,KAAK3iB,KAAL,CAAW2iB,aAC1B;AACD,UAAI7d,KAAK,GAAG6d,aAAa,CAAEoB,WAAF,CAAzB;AACA,UAAMC,eAAe,GAAG,EAAxB;AACA,UAAMC,aAAa,GAAG,EAAtB;;AAEA,UAAKnf,KAAK,CAACpH,MAAN,KAAiB,CAAtB,EAA0B;AACzB+kB,mBAAW,GAAGyB,yDAAU,CAAEzB,WAAF,EAAe1hB,KAAf,CAAxB;AACA,OAFD,MAEO;AACN+D,aAAK,GAAGA,KAAK,CAACqf,iBAAN,EAAR;AAEArT,2DAAI,CAAE2R,WAAF,EAAe,UAAEf,UAAF,EAAkB;AACpC,cAAMhd,KAAK,GAAGgd,UAAU,CAACyC,iBAAX,GAA+BpJ,OAA/B,CAAwCjW,KAAxC,CAAd;;AACA,cAAK/D,KAAK,CAACga,OAAN,CAAe2G,UAAf,MAAgC,CAAC,CAAtC,EAA0C;AACzC,gBAAKhd,KAAK,KAAK,CAAf,EAAmB;AAClBsf,6BAAe,CAAC7lB,IAAhB,CAAsBujB,UAAtB;AACA,aAFD,MAEO,IAAKhd,KAAK,GAAG,CAAb,EAAiB;AACvBuf,2BAAa,CAAC9lB,IAAd,CAAoBujB,UAApB;AACA;AACD;AACD,SATG,CAAJ;AAWAe,mBAAW,GAAGuB,eAAe,CAACR,MAAhB,CAAwBS,aAAxB,CAAd;AACA;;AAED,aAAOG,mDAAI,CAAE3B,WAAF,EAAeC,cAAf,CAAX;AACA;;;4CAEuB;AACvB,UAAK,KAAK/iB,KAAL,CAAWggB,uBAAX,KAAuC,CAAC,CAA7C,EAAiD;AAChD,eAAO,KAAKgC,sBAAL,GAA+B,KAAKhiB,KAAL,CAAWggB,uBAA1C,CAAP;AACA;AACD;;;uCAEmByD,K,EAAQ;AAAA;;AAC3B,aAAOrlB,mDAAI,CAAE,KAAKiC,KAAL,CAAWe,KAAb,EAAoB,UAAE6iB,IAAF,EAAY;AAC1C,eAAO,MAAI,CAACC,aAAL,CAAoBT,KAApB,MAAgC,MAAI,CAACS,aAAL,CAAoBD,IAApB,CAAvC;AACA,OAFU,CAAX;AAGA;;;sCAEiB;AACjB,aAAO,KAAK5jB,KAAL,CAAWe,KAAX,CAAiBrD,MAAjB,GAA0B,KAAKiC,KAAL,CAAW+f,kBAA5C;AACA;;;mCAEc;AACd,aAAO,KAAK/f,KAAL,CAAW8f,oBAAX,CAAgC/hB,MAAhC,KAA2C,CAAlD;AACA;;;yCAEoB;AACpB,aAAO,KAAKsC,KAAL,CAAW2iB,aAAX,CAA0B,KAAKhjB,KAAL,CAAW8f,oBAArC,EAA4D/hB,MAA5D,GAAqE,CAA5E;AACA;;;2CAEsB;AACtB,UAAM2mB,UAAU,GAAGpiB,kDAAG,CAAE,KAAKjC,KAAL,CAAWe,KAAb,EAAoB,KAAKsf,WAAzB,CAAtB;AACAgE,gBAAU,CAACf,MAAX,CAAmB,KAAKR,eAAL,EAAnB,EAA2C,CAA3C,EAA8C,KAAKwB,WAAL,EAA9C;AAEA,aAAOD,UAAP;AACA;;;gCAEYjB,K,EAAO1e,K,EAAOwe,M,EAAS;AACnC,UAAMniB,KAAK,GAAG,KAAK8iB,aAAL,CAAoBT,KAApB,CAAd;AACA,UAAMmB,MAAM,GAAGnB,KAAK,CAACmB,MAAN,GAAenB,KAAK,CAACmB,MAArB,GAA8B1lB,SAA7C;AACA,UAAM2lB,YAAY,GAAG9f,KAAK,GAAG,CAA7B;AACA,UAAM+f,UAAU,GAAGvB,MAAM,CAACxlB,MAA1B;AAEA,aACC,yEAAC,+CAAD;AACC,WAAG,EAAG,WAAWqD,KADlB;AAEC,aAAK,EAAGA,KAFT;AAGC,cAAM,EAAGwjB,MAHV;AAIC,aAAK,EAAGnB,KAAK,CAAC7G,KAJf;AAKC,wBAAgB,EAAG,KAAKvc,KAAL,CAAW0kB,gBAL/B;AAMC,qBAAa,EAAG,KAAKpE,kBANtB;AAOC,oBAAY,EAAG8C,KAAK,CAACuB,YAAN,IAAsB,KAAK3kB,KAAL,CAAW2kB,YAPjD;AAQC,oBAAY,EAAGvB,KAAK,CAACwB,YARtB;AASC,oBAAY,EAAGxB,KAAK,CAACyB,YATtB;AAUC,gBAAQ,EAAG,YAAYN,MAAZ,IAAsB,KAAKvkB,KAAL,CAAWoH,QAV7C;AAWC,gBAAQ,EAAG,KAAKpH,KAAL,CAAWyjB,QAXvB;AAYC,kBAAU,EAAGgB,UAZd;AAaC,oBAAY,EAAGD;AAbhB,QADD;AAiBA;;;kCAEa;AAAA,wBAC0D,KAAKxkB,KAD/D;AAAA,UACL8kB,cADK,eACLA,cADK;AAAA,UACWC,YADX,eACWA,YADX;AAAA,UACyBC,SADzB,eACyBA,SADzB;AAAA,UACoCjkB,KADpC,eACoCA,KADpC;AAAA,UAC2CuE,UAD3C,eAC2CA,UAD3C;AAGb,UAAItF,KAAK,GAAG;AACXsF,kBAAU,EAAVA,UADW;AAEXwf,sBAAc,EAAdA,cAFW;AAGXC,oBAAY,EAAZA,YAHW;AAIXve,WAAG,EAAE,KAAKwY,SAJC;AAKX5c,WAAG,EAAE,OALM;AAMXgF,gBAAQ,EAAE,KAAKpH,KAAL,CAAWoH,QANV;AAOXrG,aAAK,EAAE,KAAKpB,KAAL,CAAW8f,oBAPP;AAQXO,cAAM,EAAE,KAAKA,MARF;AASXva,kBAAU,EAAE,KAAK9F,KAAL,CAAW8F,UATZ;AAUXka,+BAAuB,EAAE,KAAKhgB,KAAL,CAAWggB;AAVzB,OAAZ;;AAaA,UAAK,EAAIqF,SAAS,IAAIjkB,KAAK,CAACrD,MAAN,IAAgBsnB,SAAjC,CAAL,EAAoD;AACnDhlB,aAAK,GAAG,4FAAKA,KAAR;AAAeE,kBAAQ,EAAE,KAAKugB;AAA9B,UAAL;AACA;;AAED,aACC,yEAAC,qDAAD,EAAiBzgB,KAAjB,CADD;AAGA;;;6BAEQ;AAAA,yBAMJ,KAAKA,KAND;AAAA,UAEPoH,QAFO,gBAEPA,QAFO;AAAA,4CAGPvJ,KAHO;AAAA,UAGPA,KAHO,mCAGC2D,2DAAE,CAAE,UAAF,CAHH;AAAA,UAIP8D,UAJO,gBAIPA,UAJO;AAAA,UAKPE,SALO,gBAKPA,SALO;AAAA,UAOAC,UAPA,GAOe,KAAK9F,KAPpB,CAOA8F,UAPA;AAQR,UAAMa,OAAO,GAAGV,kDAAU,CAAEJ,SAAF,EAAa,8CAAb,EAA6D;AACtF,qBAAa,KAAK7F,KAAL,CAAW2c,QAD8D;AAEtF,uBAAelV;AAFuE,OAA7D,CAA1B;AAKA,UAAI6d,eAAe,GAAG;AACrBzf,iBAAS,EAAE,6BADU;AAErB0f,gBAAQ,EAAE;AAFW,OAAtB;AAIA,UAAM/C,mBAAmB,GAAG,KAAKR,sBAAL,EAA5B;;AAEA,UAAK,CAAEva,QAAP,EAAkB;AACjB6d,uBAAe,GAAGE,MAAM,CAACC,MAAP,CAAe,EAAf,EAAmBH,eAAnB,EAAoC;AACrDnF,mBAAS,EAAE,KAAKA,SADqC;AAErDC,oBAAU,EAAE,KAAKA,UAFoC;AAGrD9B,iBAAO,EAAE,KAAKA;AAHuC,SAApC,CAAlB;AAKA,OAzBO,CA2BR;AACA;AACA;;AACA;;;AACA,aACC,gFAAUgH,eAAV,EACC;AACC,eAAO,wCAAmC3f,UAAnC,CADR;AAEC,iBAAS,EAAC;AAFX,SAIGzH,KAJH,CADD,EAOC;AAAK,WAAG,EAAG,KAAK6iB,kBAAhB;AACC,iBAAS,EAAGpa,OADb;AAEC,gBAAQ,EAAC,IAFV;AAGC,mBAAW,EAAG,KAAK8Z,kBAHpB;AAIC,oBAAY,EAAG,KAAKA;AAJrB,SAMG,KAAKiF,oBAAL,EANH,EAOG5f,UAAU,IACX,yEAAC,0DAAD;AACC,kBAAU,EAAGH,UADd;AAEC,aAAK,EAAG,KAAKtF,KAAL,CAAW2iB,aAAX,CAA0B,KAAKhjB,KAAL,CAAW8f,oBAArC,CAFT;AAGC,wBAAgB,EAAG,KAAKzf,KAAL,CAAW0kB,gBAH/B;AAIC,mBAAW,EAAGvC,mBAJf;AAKC,qBAAa,EAAG,KAAKxiB,KAAL,CAAWggB,uBAL5B;AAMC,sBAAc,EAAG,KAAKhgB,KAAL,CAAWigB,wBAN7B;AAOC,eAAO,EAAG,KAAKW,mBAPhB;AAQC,gBAAQ,EAAG,KAAKC;AARjB,QARF,CAPD,EA2BC;AAAK,UAAE,oDAA+Clb,UAA/C,CAAP;AAAsE,iBAAS,EAAC;AAAhF,SACG9D,2DAAE,CAAE,sBAAF,CADL,CA3BD,CADD;AAiCA;AACA;;;6CAphBgCxB,K,EAAOL,K,EAAQ;AAC/C,UAAK,CAAEK,KAAK,CAACoH,QAAR,IAAoB,CAAEzH,KAAK,CAAC2c,QAAjC,EAA4C;AAC3C,eAAO,IAAP;AACA;;AAED,aAAO;AACNA,gBAAQ,EAAE,KADJ;AAENmD,4BAAoB,EAAE;AAFhB,OAAP;AAIA;;;;EArC2B5Z,4D;;AAmjB7Bga,cAAc,CAACyF,YAAf,GAA8B;AAC7B7C,aAAW,EAAE0C,MAAM,CAACI,MAAP,CAAe,EAAf,CADgB;AAE7B7C,gBAAc,EAAE,GAFa;AAG7B3hB,OAAK,EAAEokB,MAAM,CAACI,MAAP,CAAe,EAAf,CAHsB;AAI7Bb,kBAAgB,EAAEc,+CAJW;AAK7B7C,eAAa,EAAE,uBAAES,KAAF;AAAA,WAAaA,KAAK,CAAClB,IAAN,EAAb;AAAA,GALc;AAM7BhiB,UAAQ,EAAE,oBAAM,CAAE,CANW;AAO7BugB,eAAa,EAAE,yBAAM,CAAE,CAPM;AAQ7BkE,cAAY,EAAE,KARe;AAS7Bvd,UAAQ,EAAE,KATmB;AAU7Bia,iBAAe,EAAE,KAVY;AAW7BoC,UAAQ,EAAE;AACTC,SAAK,EAAEliB,2DAAE,CAAE,aAAF,CADA;AAETsiB,WAAO,EAAEtiB,2DAAE,CAAE,eAAF,CAFF;AAGTkX,UAAM,EAAElX,2DAAE,CAAE,aAAF;AAHD;AAXmB,CAA9B;AAkBeuE,kJAAkB,CAAEC,0EAAc,CAAE6Z,cAAF,CAAhB,CAAjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpmBA;;;AAGA;AACA;AACA;AAEA;;;;AAGA;;IAEM4F,e;;;;;AACL,6BAAc;AAAA;;AAAA;;AACb,8OAAUxmB,SAAV;AACA,UAAKyL,eAAL,GAAuB,MAAKA,eAAL,CAAqBvL,IAArB,2MAAvB;AACA,UAAKumB,QAAL,GAAgB,MAAKA,QAAL,CAAcvmB,IAAd,2MAAhB;AAHa;AAIb;;;;yCAEoB;AAAA;;AACpB;AACA;AACA,UAAK,KAAKa,KAAL,CAAWrB,aAAX,GAA2B,CAAC,CAA5B,IAAiC,KAAKqB,KAAL,CAAW2lB,cAAjD,EAAkE;AACjE,aAAKC,iBAAL,GAAyB,IAAzB;AACAD,mEAAc,CAAE,KAAKE,IAAL,CAAUxgB,QAAV,CAAoB,KAAKrF,KAAL,CAAWrB,aAA/B,CAAF,EAAkD,KAAKknB,IAAvD,EAA6D;AAC1EC,4BAAkB,EAAE;AADsD,SAA7D,CAAd;AAIA/c,kBAAU,CAAE,YAAM;AACjB,gBAAI,CAAC6c,iBAAL,GAAyB,KAAzB;AACA,SAFS,EAEP,GAFO,CAAV;AAGA;AACD;;;6BAESpf,G,EAAM;AACf,WAAKqf,IAAL,GAAYrf,GAAZ;AACA;;;gCAEYkb,U,EAAa;AAAA;;AACzB,aAAO,YAAM;AACZ,YAAK,CAAE,MAAI,CAACkE,iBAAZ,EAAgC;AAC/B,gBAAI,CAAC5lB,KAAL,CAAW+lB,OAAX,CAAoBrE,UAApB;AACA;AACD,OAJD;AAKA;;;gCAEYA,U,EAAa;AAAA;;AACzB,aAAO,YAAM;AACZ,cAAI,CAAC1hB,KAAL,CAAWgmB,QAAX,CAAqBtE,UAArB;AACA,OAFD;AAGA;;;oCAEgBlW,C,EAAI;AACpB;AACAA,OAAC,CAACxI,cAAF;AACA;;;2CAEuB0e,U,EAAa;AACpC,UAAM5c,KAAK,GAAG,KAAK9E,KAAL,CAAW0kB,gBAAX,CAA6B,KAAK1kB,KAAL,CAAW8E,KAAX,IAAoB,EAAjD,EAAsDqf,iBAAtD,EAAd;;AACA,UAAKrf,KAAK,CAACpH,MAAN,KAAiB,CAAtB,EAA0B;AACzB,eAAO,IAAP;AACA;;AAEDgkB,gBAAU,GAAG,KAAK1hB,KAAL,CAAW0kB,gBAAX,CAA6BhD,UAA7B,CAAb;AACA,UAAMuE,YAAY,GAAGvE,UAAU,CAACyC,iBAAX,GAA+BpJ,OAA/B,CAAwCjW,KAAxC,CAArB;AAEA,aAAO;AACNohB,6BAAqB,EAAExE,UAAU,CAACyE,SAAX,CAAsB,CAAtB,EAAyBF,YAAzB,CADjB;AAENG,uBAAe,EAAE1E,UAAU,CAACyE,SAAX,CAAsBF,YAAtB,EAAoCA,YAAY,GAAGnhB,KAAK,CAACpH,MAAzD,CAFX;AAGN2oB,4BAAoB,EAAE3E,UAAU,CAACyE,SAAX,CAAsBF,YAAY,GAAGnhB,KAAK,CAACpH,MAA3C;AAHhB,OAAP;AAKA;;;6BAEQ;AAAA;;AACR;AACA;AACA;AACA;AACA,aACC;AACC,WAAG,EAAG,KAAKgoB,QADZ;AAEC,iBAAS,EAAC,+CAFX;AAGC,UAAE,8CAAyC,KAAK1lB,KAAL,CAAWsF,UAApD,CAHH;AAIC,YAAI,EAAC;AAJN,SAOErD,kDAAG,CAAE,KAAKjC,KAAL,CAAWyiB,WAAb,EAA0B,UAAEf,UAAF,EAAchd,KAAd,EAAyB;AACrD,YAAMI,KAAK,GAAG,MAAI,CAACwhB,sBAAL,CAA6B5E,UAA7B,CAAd;;AACA,YAAM6E,UAAU,GAAG3gB,iDAAU,CAAE,yCAAF,EAA6C;AACzE,yBAAelB,KAAK,KAAK,MAAI,CAAC1E,KAAL,CAAWrB;AADqC,SAA7C,CAA7B;AAIA;;AACA,eACC;AACC,YAAE,8CAAyC,MAAI,CAACqB,KAAL,CAAWsF,UAApD,cAAoEZ,KAApE,CADH;AAEC,cAAI,EAAC,QAFN;AAGC,mBAAS,EAAG6hB,UAHb;AAIC,aAAG,EAAG7E,UAJP;AAKC,qBAAW,EAAG,MAAI,CAAChX,eALpB;AAMC,iBAAO,EAAG,MAAI,CAAC8b,WAAL,CAAkB9E,UAAlB,CANX;AAOC,sBAAY,EAAG,MAAI,CAAC+E,WAAL,CAAkB/E,UAAlB,CAPhB;AAQC,2BAAgBhd,KAAK,KAAK,MAAI,CAAC1E,KAAL,CAAWrB;AARtC,WAUGmG,KAAK,GAEL;AAAM,wBAAa,MAAI,CAAC9E,KAAL,CAAW0kB,gBAAX,CAA6BhD,UAA7B;AAAnB,WACG5c,KAAK,CAACohB,qBADT,EAEC;AAAQ,mBAAS,EAAC;AAAlB,WACGphB,KAAK,CAACshB,eADT,CAFD,EAKGthB,KAAK,CAACuhB,oBALT,CAFK,GAUN,MAAI,CAACrmB,KAAL,CAAW0kB,gBAAX,CAA6BhD,UAA7B,CApBF,CADD;AAyBA;AACA,OAjCE,CAPL,CADD;AA6CA;;;;EA/G4B7b,4D;;AAkH9B4f,eAAe,CAACH,YAAhB,GAA+B;AAC9BxgB,OAAK,EAAE,EADuB;AAE9BihB,SAAO,EAAE,mBAAM,CAAE,CAFa;AAG9BC,UAAQ,EAAE,oBAAM,CAAE,CAHY;AAI9BvD,aAAW,EAAE0C,MAAM,CAACI,MAAP,CAAe,EAAf;AAJiB,CAA/B;AAOeE,8EAAf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrIA;;;AAGA;;IAEMiB,U;;;;;AACL,wBAAc;AAAA;;AAAA;;AACb,yOAAUznB,SAAV;AACA,UAAKiB,QAAL,GAAgB,MAAKA,QAAL,CAAcf,IAAd,2MAAhB;AACA,UAAK6f,SAAL,GAAiB,MAAKA,SAAL,CAAe7f,IAAf,2MAAjB;AAHa;AAIb;;;;4BAEO;AACP,WAAK8f,KAAL,CAAW5V,KAAX;AACA;;;+BAEU;AACV,aAAO,KAAK4V,KAAL,KAAe7I,QAAQ,CAACyH,aAA/B;AACA;;;8BAEUrX,G,EAAM;AAChB,WAAKyY,KAAL,GAAazY,GAAb;AACA;;;6BAES/D,K,EAAQ;AACjB,WAAKzC,KAAL,CAAWE,QAAX,CAAqB;AACpBa,aAAK,EAAE0B,KAAK,CAACiE,MAAN,CAAa3F;AADA,OAArB;AAGA;;;6BAEQ;AAAA,wBACqE,KAAKf,KAD1E;AAAA,UACAe,KADA,eACAA,KADA;AAAA,UACO0E,UADP,eACOA,UADP;AAAA,UACmBH,UADnB,eACmBA,UADnB;AAAA,UAC+Bqa,uBAD/B,eAC+BA,uBAD/B;AAAA,UAC2D3f,KAD3D;;AAER,UAAMqR,IAAI,GAAGtQ,KAAK,CAACrD,MAAN,GAAe,CAA5B;AAEA,aACC;AACC,WAAG,EAAG,KAAKshB,SADZ;AAEC,UAAE,wCAAmC1Z,UAAnC,CAFH;AAGC,YAAI,EAAC;AAHN,SAIMtF,KAJN;AAKC,aAAK,EAAGe,KALT;AAMC,gBAAQ,EAAG,KAAKb,QANjB;AAOC,YAAI,EAAGmR,IAPR;AAQC,iBAAS,EAAC,oCARX;AASC,YAAI,EAAC,UATN;AAUC,yBAAgB5L,UAVjB;AAWC,6BAAkB,MAXnB;AAYC,qBAAYA,UAAU,+CAAyCH,UAAzC,IAAyDzG,SAZhF;AAaC,iCAAwB8gB,uBAAuB,KAAK,CAAC,CAA7B,+CAAuEra,UAAvE,cAAuFqa,uBAAvF,IAAoH9gB,SAb7I;AAcC,8EAA+DyG,UAA/D;AAdD,SADD;AAkBA;;;;EA/CuBO,4D;;AAkDV6gB,yEAAf;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvDA;;;AAGA;AACA;AAEA;;;;AAGA;AACA;AAEA;;;;AAGA;;AAEA,SAASC,KAAT,OAcI;AAAA,MAbH5lB,KAaG,QAbHA,KAaG;AAAA,MAZHwjB,MAYG,QAZHA,MAYG;AAAA,MAXHhI,KAWG,QAXHA,KAWG;AAAA,MAVHmI,gBAUG,QAVHA,gBAUG;AAAA,+BATHC,YASG;AAAA,MATHA,YASG,kCATY,KASZ;AAAA,2BARHvd,QAQG;AAAA,MARHA,QAQG,8BARQ,KAQR;AAAA,gCAPHwf,aAOG;AAAA,MAPHA,aAOG,mCAPa7b,2CAOb;AAAA,MANH6Z,YAMG,QANHA,YAMG;AAAA,MALHC,YAKG,QALHA,YAKG;AAAA,MAJHpB,QAIG,QAJHA,QAIG;AAAA,MAHHe,YAGG,QAHHA,YAGG;AAAA,MAFHC,UAEG,QAFHA,UAEG;AAAA,MADHnf,UACG,QADHA,UACG;AACH,MAAMuhB,YAAY,GAAGjhB,iDAAU,CAAE,oCAAF,EAAwC;AACtE,gBAAY,YAAY2e,MAD8C;AAEtE,kBAAc,cAAcA,MAF0C;AAGtE,qBAAiB,iBAAiBA,MAHoC;AAItE,qBAAiBI,YAJqD;AAKtE,mBAAevd;AALuD,GAAxC,CAA/B;;AAQA,MAAMiV,OAAO,GAAG,SAAVA,OAAU;AAAA,WAAMuK,aAAa,CAAE;AAAE7lB,WAAK,EAALA;AAAF,KAAF,CAAnB;AAAA,GAAhB;;AAEA,MAAM+lB,gBAAgB,GAAGpC,gBAAgB,CAAE3jB,KAAF,CAAzC;AACA,MAAMgmB,oBAAoB,GAAGzlB,+DAAO;AACnC;AACAE,4DAAE,CAAE,qBAAF,CAFiC,EAGnCslB,gBAHmC,EAInCtC,YAJmC,EAKnCC,UALmC,CAApC;AAQA,SACC;AACC,aAAS,EAAGoC,YADb;AAEC,gBAAY,EAAGjC,YAFhB;AAGC,gBAAY,EAAGC,YAHhB;AAIC,SAAK,EAAGtI;AAJT,KAMC;AACC,aAAS,EAAC,yCADX;AAEC,MAAE,oDAA+CjX,UAA/C;AAFH,KAIC;AAAM,aAAS,EAAC;AAAhB,KAAuCyhB,oBAAvC,CAJD,EAKC;AAAM,mBAAY;AAAlB,KAA2BD,gBAA3B,CALD,CAND,EAcC,yEAAC,oDAAD;AACC,aAAS,EAAC,2CADX;AAEC,QAAI,EAAC,SAFN;AAGC,WAAO,EAAG,CAAE1f,QAAF,IAAciV,OAHzB;AAIC,SAAK,EAAGoH,QAAQ,CAAC/K,MAJlB;AAKC,0EAA+DpT,UAA/D;AALD,IAdD,CADD;AAwBA;;AAEcU,wIAAc,CAAE2gB,KAAF,CAA7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7EA;;;AAGA;AAEA;;;;AAGA;AACA;AAEA;;;;AAGA;AAEeK,oJAA0B,CACxC,UAAEC,gBAAF,EAAwB;AACvB;AAAA;AAAA;AAAA;;AACC,wBAAc;AAAA;;AAAA;;AACb,yOAAUhoB,SAAV;AACA,cAAK+I,aAAL,GAAqB,MAAKA,aAAL,CAAmB7I,IAAnB,2MAArB;AACA,cAAK+nB,eAAL,GAAuB,MAAKC,WAAL,CAAiBhoB,IAAjB,4MAA6B,CAA7B,CAAvB;AACA,cAAKioB,mBAAL,GAA2B,MAAKD,WAAL,CAAiBhoB,IAAjB,4MAA6B,CAAC,CAA9B,CAA3B;AACA,cAAKkd,OAAL,GAAe,MAAKA,OAAL,CAAald,IAAb,2MAAf;AACA,cAAKQ,KAAL,GAAa;AACZ0nB,2BAAiB,EAAE;AADP,SAAb;AANa;AASb;;AAVF;AAAA;AAAA,sCAYgB7gB,GAZhB,EAYsB;AACpB,eAAK2B,SAAL,GAAiB3B,GAAjB;AACA;AAdF;AAAA;AAAA,oCAgBc8gB,MAhBd,EAgBuB;AACrB,cAAMC,OAAO,GAAG,6FAAK,KAAKpf,SAAL,CAAemO,gBAAf,CAAiC,iBAAjC,CAAR,CAAb;;AACA,cAAK,CAAEiR,OAAO,CAAC7pB,MAAf,EAAwB;AACvB;AACA;;AACD,cAAI8pB,UAAU,GAAGD,OAAO,CAAE,CAAF,CAAxB;AACA,cAAM5oB,aAAa,GAAG4oB,OAAO,CAACxM,OAAR,CAAiB3E,QAAQ,CAACyH,aAA1B,CAAtB;;AACA,cAAKlf,aAAa,KAAK,CAAC,CAAxB,EAA4B;AAC3B,gBAAI8oB,SAAS,GAAG9oB,aAAa,GAAG2oB,MAAhC;AACAG,qBAAS,GAAGA,SAAS,KAAK,CAAC,CAAf,GAAmBF,OAAO,CAAC7pB,MAAR,GAAiB,CAApC,GAAwC+pB,SAApD;AACAA,qBAAS,GAAGA,SAAS,KAAKF,OAAO,CAAC7pB,MAAtB,GAA+B,CAA/B,GAAmC+pB,SAA/C;AACAD,sBAAU,GAAGD,OAAO,CAAEE,SAAF,CAApB;AACA;;AAEDD,oBAAU,CAACne,KAAX;AACA,eAAKlI,QAAL,CAAe;AAAEkmB,6BAAiB,EAAE;AAArB,WAAf;AACA;AAhCF;AAAA;AAAA,kCAkCW;AACT,eAAKlmB,QAAL,CAAe;AAAEkmB,6BAAiB,EAAE;AAArB,WAAf;AACA;AApCF;AAAA;AAAA,iCAsCU;AACR,cAAM7hB,SAAS,GAAGI,iDAAU,CAAE,6BAAF,EAAiC;AAC5D,mCAAuB,KAAKjG,KAAL,CAAW0nB;AAD0B,WAAjC,CAA5B,CADQ,CAKR;;AACA;;AACA,iBACC;AAAK,eAAG,EAAG,KAAKrf,aAAhB;AAAgC,qBAAS,EAAGxC,SAA5C;AAAwD,mBAAO,EAAG,KAAK6W;AAAvE,aACC,yEAAC,4DAAD;AACC,sBAAU,MADX;AAEC,qBAAS,EAAG;AACX,wBAAU,KAAK6K,eADJ;AAEX,6BAAe,KAAKA,eAFT;AAGX,8BAAgB,KAAKE,mBAHV;AAIX,6BAAe,KAAKA;AAJT;AAFb,YADD,EAUC,yEAAC,gBAAD,EAAuB,KAAKpnB,KAA5B,CAVD,CADD;AAcA;AACA;AA5DF;;AAAA;AAAA,MAAqB6F,4DAArB;AAAA;AA8DA,CAhEuC,EAgErC,iBAhEqC,CAAzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChBA;;;AAGA;AACA;AACA;AACA;AAEA,IAAM6hB,sBAAsB,GAAGV,qFAA0B,CACxD,UAAEC,gBAAF;AAAA;AAAA;AAAA;AAAA;;AACC,wBAAc;AAAA;;AAAA;;AACb,yOAAUhoB,SAAV;AAEA,cAAK0oB,eAAL,GAAuBrd,oEAAS,EAAhC;AACA,cAAKsd,kBAAL,GAA0B,MAAKA,kBAAL,CAAwBzoB,IAAxB,2MAA1B;AAJa;AAKb;;AANF;AAAA;AAAA,2CAQqBsD,KARrB,EAQ6B;AAC3B,cAAKA,KAAK,CAACC,OAAN,KAAkBkJ,uDAAvB,EAA6B;AAC5B;AACA;;AAED,cAAMic,SAAS,GAAGxe,oDAAK,CAACye,QAAN,CAAetjB,IAAf,CAAqB,KAAKmjB,eAAL,CAAqBjc,OAA1C,CAAlB;;AACA,cAAK,CAAEmc,SAAS,CAACnqB,MAAjB,EAA0B;AACzB;AACA;;AACD,cAAMqqB,aAAa,GAAGF,SAAS,CAAE,CAAF,CAA/B;AACA,cAAMG,YAAY,GAAGH,SAAS,CAAEA,SAAS,CAACnqB,MAAV,GAAmB,CAArB,CAA9B;;AAEA,cAAK+E,KAAK,CAACI,QAAN,IAAkBJ,KAAK,CAACiE,MAAN,KAAiBqhB,aAAxC,EAAwD;AACvDtlB,iBAAK,CAACO,cAAN;AACAglB,wBAAY,CAAC3e,KAAb;AACA,WAHD,MAGO,IAAK,CAAE5G,KAAK,CAACI,QAAR,IAAoBJ,KAAK,CAACiE,MAAN,KAAiBshB,YAA1C,EAAyD;AAC/DvlB,iBAAK,CAACO,cAAN;AACA+kB,yBAAa,CAAC1e,KAAd;AACD;;;;AAIC,WAPM,MAOA,IAAK,CAAEwe,SAAS,CAACtS,QAAV,CAAoB9S,KAAK,CAACiE,MAA1B,CAAP,EAA4C;AAClDjE,iBAAK,CAACO,cAAN;AACA+kB,yBAAa,CAAC1e,KAAd;AACA;AACD;AAlCF;AAAA;AAAA,iCAoCU;AACR;AACA;;AACA;AACA,iBACC;AACC,qBAAS,EAAG,KAAKue,kBADlB;AAEC,eAAG,EAAG,KAAKD,eAFZ;AAGC,oBAAQ,EAAC;AAHV,aAKC,yEAAC,gBAAD,EAAuB,KAAK3nB,KAA5B,CALD,CADD;AASA;AACA;AAlDF;;AAAA;AAAA,MAAsC6F,4DAAtC;AAAA;AAAA,CADwD,EAqDxD,wBArDwD,CAAzD;AAwDe6hB,qFAAf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChEA;;;AAGA;AAEA;;;;AAGA;AACA;AAEe,yEAAEO,cAAF;AAAA,SAAsBjB,qFAA0B,CAC9D,UAAEC,gBAAF,EAAwB;AACvB;AAAA;AAAA;AAAA;;AACC,0BAAc;AAAA;;AAAA;;AACb,2OAAUhoB,SAAV;AACA,gBAAKipB,OAAL,GAAe,MAAKloB,KAAL,CAAWF,IAA1B;AACA,gBAAKH,KAAL,GAAa;AACZwoB,0BAAc,EAAEtpB,SADJ;AAEZupB,+BAAmB,EAAE;AAFT,WAAb;AAKA,gBAAKC,OAAL,GAAe,MAAKA,OAAL,CAAalpB,IAAb,2MAAf;AARa;AASb;;AAVF;AAAA;AAAA,kCAYUW,IAZV,EAYiB;AACf,gBAAK,CAAEA,IAAP,EAAc;AACb;AACA;;AACD,iBAAKooB,OAAL,GAAepoB,IAAf;AACA;AAjBF;AAAA;AAAA,8CAmBqB;AACnB,iBAAKwoB,kBAAL;AACA;AArBF;AAAA;AAAA,+CAuBsB;AACpB,iBAAKA,kBAAL;AACA;AAzBF;AAAA;AAAA,+CA2BsB;AAAA,8BAC4B,KAAK3oB,KADjC;AAAA,gBACZyoB,mBADY,eACZA,mBADY;AAAA,gBACSD,cADT,eACSA,cADT;;AAEpB,gBAAK,KAAKD,OAAL,IAAgB,CAAEE,mBAAvB,EAA6C;AAC5C,kBAAMG,iBAAiB,GAAGN,cAAc,CAAE,KAAKC,OAAP,EAAgB,KAAKloB,KAArB,CAAxC;;AACA,kBAAK,CAAEib,sDAAO,CAAEsN,iBAAF,EAAqBJ,cAArB,CAAd,EAAsD;AACrD,qBAAKhnB,QAAL,CAAe;AACdgnB,gCAAc,EAAEI,iBADF;AAEdH,qCAAmB,EAAE,CAAC,CAAEI,oDAAK,CAAED,iBAAF;AAFf,iBAAf;AAIA;AACD;AACD;AAtCF;AAAA;AAAA,mCAwCU;AACR,gBAAME,gBAAgB,GAAG,yEAAC,gBAAD,yFAAuB,KAAKzoB,KAA5B,EAAyC,KAAKL,KAAL,CAAWwoB,cAApD,EAAzB;AACA,mBAAO,KAAKnoB,KAAL,CAAWF,IAAX,GAAkB2oB,gBAAlB,GAAqC;AAAK,iBAAG,EAAG,KAAKJ;AAAhB,oBAA6BI,gBAA7B,MAA5C;AACA;AA3CF;;AAAA;AAAA,QAAqB5iB,4DAArB;AAAA;AA6CA,GA/C6D,EAgD9D,oBAhD8D,CAAhD;AAAA,CAAf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACXA;;;AAGA;AAEA;;;;AAGA;AACA;AACA;AAEA,IAAM6iB,sBAAsB,GAAG,EAA/B;AAEA;;;;;;;;;;;AAUe,SAASC,WAAT,CAAsBC,QAAtB,EAAiC;AAC/C,SAAO5B,qFAA0B,CAAE,UAAE6B,iBAAF,EAAyB;AAC3D;AAAA;AAAA;AAAA;;AACC;AACA,mCAAa7oB,KAAb,EAAqB;AAAA;;AAAA;;AACpB,qPAAOA,KAAP;AAEA,gBAAK8oB,cAAL,GAAsB,MAAKA,cAAL,CAAoB3pB,IAApB,2MAAtB;AACA,gBAAK0G,SAAL,GAAiBkjB,qEAAY,CAAEH,QAAF,EAAYC,iBAAZ,CAA7B;AACA,gBAAKG,SAAL,GAAiBC,uDAAQ,CAAE,8BAAF,CAAzB;AACA,gBAAKC,oBAAL,GAA4BzpB,uDAAQ,CAAE,YAAM;AAC3C,kBAAKoG,SAAL,GAAiBkjB,qEAAY,CAAEH,QAAF,EAAYC,iBAAZ,CAA7B;;AACA,kBAAKM,WAAL;AACA,WAHmC,EAGjCT,sBAHiC,CAApC;AAKAU,4EAAS,CAAE,aAAF,EAAiB,MAAKJ,SAAtB,EAAiC,MAAKF,cAAtC,CAAT;AACAM,4EAAS,CAAE,WAAF,EAAe,MAAKJ,SAApB,EAA+B,MAAKF,cAApC,CAAT;AAZoB;AAapB;AAED;;;AAjBD;AAAA;AAAA,iDAkBwB;AACtB,iBAAKI,oBAAL,CAA0B9jB,MAA1B;AACAikB,iFAAY,CAAE,aAAF,EAAiB,KAAKL,SAAtB,CAAZ;AACAK,iFAAY,CAAE,WAAF,EAAe,KAAKL,SAApB,CAAZ;AACA;AAED;;;;;;AAxBD;AAAA;AAAA,yCA6BiBM,eA7BjB,EA6BmC;AACjC,gBAAKA,eAAe,KAAKV,QAAzB,EAAoC;AACnC,mBAAKM,oBAAL;AACA;AACD;AAED;;AAnCD;AAAA;AAAA,mCAoCU;AACR,mBAAO,8EAAM,SAAN,EAAqB,KAAKlpB,KAA1B,CAAP;AACA;AAtCF;;AAAA;AAAA,QAAuC6F,4DAAvC;AAAA;AAwCA,GAzCgC,EAyC9B,aAzC8B,CAAjC;AA0CA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnED;;;AAGA;AAEA;;;;AAGA;AACA;AAEA;;;;;;;AAMA,IAAM0jB,kBAAkB,GAAG,CAC1B,QAD0B,EAE1B,QAF0B,CAA3B;AAKA;;;;;;;;;;;AAUA,SAASC,uBAAT,CAAkCnS,OAAlC,EAA4C;AAC3C,UAASA,OAAO,CAAC7B,QAAjB;AACC,SAAK,GAAL;AACA,SAAK,QAAL;AACC,aAAO,IAAP;;AAED,SAAK,OAAL;AACC,aAAOD,uDAAQ,CAAEgU,kBAAF,EAAsBlS,OAAO,CAAC7P,IAA9B,CAAf;AANF;;AASA,SAAO,KAAP;AACA;;AAEcwf,oJAA0B,CACxC,UAAEC,gBAAF,EAAwB;AACvB;AAAA;AAAA;AAAA;;AACC,wBAAc;AAAA;;AAAA;;AACb,yOAAUhoB,SAAV;AAEA,cAAKC,QAAL,GAAgB,MAAKA,QAAL,CAAcC,IAAd,2MAAhB;AACA,cAAKsqB,eAAL,GAAuB,MAAKA,eAAL,CAAqBtqB,IAArB,2MAAvB;AACA,cAAKuqB,cAAL,GAAsB,MAAKA,cAAL,CAAoBvqB,IAApB,2MAAtB;AACA,cAAKwqB,oBAAL,GAA4B,MAAKA,oBAAL,CAA0BxqB,IAA1B,2MAA5B;AANa;AAOb;;AARF;AAAA;AAAA,+CAUwB;AACtB,eAAKsqB,eAAL;AACA;AAZF;AAAA;AAAA,iCAcW3pB,IAdX,EAckB;AAChB,cAAKA,IAAL,EAAY;AACX,iBAAKA,IAAL,GAAYA,IAAZ;AACA,WAFD,MAEO;AACN,mBAAO,KAAKA,IAAZ;AACA,iBAAK2pB,eAAL;AACA;AACD;AArBF;AAAA;AAAA,uCAuBiBhnB,KAvBjB,EAuByB;AAAA;;AACvB;AACA;AACAA,eAAK,CAACmnB,OAAN,GAHuB,CAKvB;;AACA,cAAK,KAAKC,gBAAV,EAA6B;AAC5B;AACA;;AAED,eAAKC,gBAAL,GAAwB/gB,UAAU,CAAE,YAAM;AACzC,gBAAK,eAAe,OAAO,MAAI,CAACjJ,IAAL,CAAUiqB,kBAArC,EAA0D;AACzD,oBAAI,CAACjqB,IAAL,CAAUiqB,kBAAV,CAA8BtnB,KAA9B;AACA;AACD,WAJiC,EAI/B,CAJ+B,CAAlC;AAKA;AAtCF;AAAA;AAAA,0CAwCmB;AACjBiG,sBAAY,CAAE,KAAKohB,gBAAP,CAAZ;AACA;AAED;;;;;;;;;;;;AA5CD;AAAA;AAAA,6CAuDuBrnB,KAvDvB,EAuD+B;AAAA,cACrB+E,IADqB,GACJ/E,KADI,CACrB+E,IADqB;AAAA,cACfd,MADe,GACJjE,KADI,CACfiE,MADe;AAG7B,cAAMsjB,gBAAgB,GAAGzU,uDAAQ,CAAE,CAAE,SAAF,EAAa,UAAb,CAAF,EAA6B/N,IAA7B,CAAjC;;AAEA,cAAKwiB,gBAAL,EAAwB;AACvB,iBAAKH,gBAAL,GAAwB,KAAxB;AACA,WAFD,MAEO,IAAKL,uBAAuB,CAAE9iB,MAAF,CAA5B,EAAyC;AAC/C,iBAAKmjB,gBAAL,GAAwB,IAAxB;AACA;AACD;AAjEF;AAAA;AAAA,iCAmEU;AACR;AACA;;AAEA;AACA,iBACC;AACC,mBAAO,EAAG,KAAKJ,eADhB;AAEC,uBAAW,EAAG,KAAKE,oBAFpB;AAGC,qBAAS,EAAG,KAAKA,oBAHlB;AAIC,wBAAY,EAAG,KAAKA,oBAJrB;AAKC,sBAAU,EAAG,KAAKA,oBALnB;AAMC,kBAAM,EAAG,KAAKD;AANf,aAQC,yEAAC,gBAAD;AACC,eAAG,EAAG,KAAKxqB;AADZ,aAEM,KAAKc,KAFX,EARD,CADD;AAcA;AACA;AAvFF;;AAAA;AAAA,MAAqB6F,4DAArB;AAAA;AAyFA,CA3FuC,EA2FrC,kBA3FqC,CAAzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7CA;;;AAGA;AACA;AAEA;;;;;;;;;;;AAUemhB,oJAA0B,CACxC,UAAEC,gBAAF,EAAwB;AACvB;AAAA;AAAA;AAAA;;AACC,wBAAc;AAAA;;AAAA;;AACb,yOAAUhoB,SAAV;;AAEA,cAAKgrB,gBAAL,GAAwB;AAAA,iBAAM,MAAKC,SAAL,GAAiB,IAAvB;AAAA,SAAxB;;AACA,cAAKC,iBAAL,GAAyB;AAAA,iBAAM,MAAKD,SAAL,GAAiB,KAAvB;AAAA,SAAzB;;AACA,cAAKE,oBAAL,GAA4BhU,QAAQ,CAACyH,aAArC;AALa;AAMb;;AAPF;AAAA;AAAA,+CASwB;AAAA,cACduM,oBADc,GACsB,IADtB,CACdA,oBADc;AAAA,cACQF,SADR,GACsB,IADtB,CACQA,SADR;;AAEtB,cAAK,CAAEE,oBAAP,EAA8B;AAC7B;AACA;;AAJqB,0BAMUhU,QANV;AAAA,cAMduB,IANc,aAMdA,IANc;AAAA,cAMRkG,aANQ,aAMRA,aANQ;;AAOtB,cAAKqM,SAAS,IAAI,SAASrM,aAAtB,IAAuClG,IAAI,KAAKkG,aAArD,EAAqE;AACpEuM,gCAAoB,CAAC/gB,KAArB;AACA;AACD;AAnBF;AAAA;AAAA,iCAqBU;AACR,iBACC;AACC,mBAAO,EAAG,KAAK4gB,gBADhB;AAEC,kBAAM,EAAG,KAAKE;AAFf,aAIC,yEAAC,gBAAD,EAAuB,KAAKnqB,KAA5B,CAJD,CADD;AAQA;AA9BF;;AAAA;AAAA,MAAqB6F,4DAArB;AAAA;AAgCA,CAlCuC,EAkCrC,iBAlCqC,CAAzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChBA;;;AAGA;AAEA;;;;AAGA;AACA;AAEA;;;;AAGA;AAEA;;;;;;;AAMemhB,qJAA0B,CAAE,UAAE6B,iBAAF,EAAyB;AACnE;AAAA;AAAA;AAAA;;AACC,kCAAc;AAAA;;AAAA;;AACb,mPAAU5pB,SAAV;AAEA,cAAKorB,YAAL,GAAoB,MAAKA,YAAL,CAAkBlrB,IAAlB,2MAApB;AACA,cAAKmrB,iBAAL,GAAyB,MAAKA,iBAAL,CAAuBnrB,IAAvB,2MAAzB;AACA,cAAKorB,YAAL,GAAoB,MAAKA,YAAL,CAAkBprB,IAAlB,2MAApB;AACA,cAAKqrB,gBAAL,GAAwB,MAAKA,gBAAL,CAAsBrrB,IAAtB,2MAAxB;AAEA,cAAKQ,KAAL,GAAa;AACZ8qB,oBAAU,EAAE;AADA,SAAb;AAIA,cAAKC,gBAAL,GAAwB;AACvBL,sBAAY,EAAE,MAAKA,YADI;AAEvBC,2BAAiB,EAAE,MAAKA,iBAFD;AAGvBE,0BAAgB,EAAE,MAAKA,gBAHA;AAIvBD,sBAAY,EAAE,MAAKA;AAJI,SAAxB;AAZa;AAkBb;AAED;;;;;;;AArBD;AAAA;AAAA,qCA0BeI,MA1Bf,EA0BwB;AACtB,cAAMC,WAAW,GAAGD,MAAM,CAACxkB,EAAP,GAAYwkB,MAAZ,+FAA0BA,MAA1B;AAAkCxkB,cAAE,EAAE0kB,+CAAI;AAA1C,YAApB;AACA,eAAK1pB,QAAL,CAAe,UAAExB,KAAF;AAAA,mBAAe;AAC7B8qB,wBAAU,EAAE,6FAAK9qB,KAAK,CAAC8qB,UAAb,UAAyBG,WAAzB;AADmB,aAAf;AAAA,WAAf;AAGA;AAED;;;;;;AAjCD;AAAA;AAAA,0CAsCoBE,GAtCpB,EAsC0B;AACxB,eAAKT,YAAL,CAAmB;AAAE9F,kBAAM,EAAE,OAAV;AAAmBwG,mBAAO,EAAED;AAA5B,WAAnB;AACA;AAED;;;;;;AA1CD;AAAA;AAAA,qCA+Ce3kB,EA/Cf,EA+CoB;AAClB,eAAKhF,QAAL,CAAe,UAAExB,KAAF;AAAA,mBAAe;AAC7B8qB,wBAAU,EAAE9qB,KAAK,CAAC8qB,UAAN,CAAiBjZ,MAAjB,CAAyB,UAAEmZ,MAAF;AAAA,uBAAcA,MAAM,CAACxkB,EAAP,KAAcA,EAA5B;AAAA,eAAzB;AADiB,aAAf;AAAA,WAAf;AAGA;AAED;;;;AArDD;AAAA;AAAA,2CAwDoB;AAClB,eAAKhF,QAAL,CAAe;AACdspB,sBAAU,EAAE;AADE,WAAf;AAGA;AA5DF;AAAA;AAAA,iCA8DU;AACR,iBACC,yEAAC,iBAAD;AACC,sBAAU,EAAG,KAAK9qB,KAAL,CAAW8qB,UADzB;AAEC,4BAAgB,EAAG,KAAKC,gBAFzB;AAGC,oBAAQ,EACP,KAAK/qB,KAAL,CAAW8qB,UAAX,CAAsB/sB,MAAtB,GAA+B,CAA/B,IAAoC,yEAAC,qDAAD;AACnC,uBAAS,EAAC,4BADyB;AAEnC,qBAAO,EAAG,KAAKiC,KAAL,CAAW8qB,UAFc;AAGnC,sBAAQ,EAAG,KAAKF;AAHmB;AAJtC,aAUM,KAAKvqB,KAVX,EADD;AAcA;AA7EF;;AAAA;AAAA,MAAsC6F,4DAAtC;AAAA;AA+EA,CAhFwC,CAAzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtBA;;;AAGA;AAEA;;;;AAGA;AACA;AACA;AAEA;;;;;;;;;AAQemhB,qJAA0B,CAAE,UAAEC,gBAAF,EAAwB;AAClE;AAAA;AAAA;AAAA;;AACC,wBAAc;AAAA;;AAAA;;AACb,yOAAUhoB,SAAV;AACA,cAAKoC,cAAL,GAAsB5B,uDAAQ,CAAE,MAAK8O,KAAL,CAAWpP,IAAX,2MAAF,EAA2B,GAA3B,CAA9B;AAFa;AAGb;;AAJF;AAAA;AAAA,8BAMQ6rB,OANR,EAMmC;AAAA,cAAlBxjB,IAAkB,uEAAX,QAAW;;AACjC+G,uEAAK,CAAEyc,OAAF,EAAWxjB,IAAX,CAAL;AACA;AARF;AAAA;AAAA,+CAUwB;AACtB,eAAKnG,cAAL,CAAoB+D,MAApB;AACA;AAZF;AAAA;AAAA,iCAcU;AACR,iBACC,yEAAC,gBAAD,yFAAuB,KAAKpF,KAA5B;AACC,iBAAK,EAAG,KAAKuO,KADd;AAEC,0BAAc,EAAG,KAAKlN;AAFvB,aADD;AAMA;AArBF;;AAAA;AAAA,MAAqBwE,4DAArB;AAAA;AAuBA,CAxBwC,EAwBtC,oBAxBsC,CAAzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpBA;;;AAGA;AACA;AAEA;;;;AAGA;AAEA;;;;AAGA;AACA;CAGA;AACA;;IACMsD,U;;;;;;;;;;;;;6BACI;AAAA,wBAC4E,KAAKnJ,KADjF;AAAA,UACAiJ,IADA,eACAA,IADA;AAAA,UACM5D,QADN,eACMA,QADN;AAAA,UACgBxH,KADhB,eACgBA,KADhB;AAAA,UACuB2H,SADvB,eACuBA,SADvB;AAAA,UACkCylB,OADlC,eACkCA,OADlC;AAAA,UAC2CC,QAD3C,eAC2CA,QAD3C;AAAA,UACwD7jB,eADxD;;AAER,UAAMf,OAAO,GAAGV,iDAAU,CAAE,wBAAF,EAA4BJ,SAA5B,CAA1B;AACA,UAAM2lB,WAAW,GAAGF,OAAO,IAAIptB,KAA/B,CAHQ,CAKR;;AACA,UAAMutB,WAAW,GAChB;AACAH,aAAO,IACP;AACAC,cAFA,IAIC;AACA,OAAC,CAAErtB,KAAH,MACA;AACE,OAAEwH,QAAF,IAAgBwW,sDAAO,CAAExW,QAAF,CAAP,IAAuB,CAAEA,QAAQ,CAAC3H,MAFpD,KAGA;AACA,gBAAUutB,OAXZ;AAeA,UAAI5T,OAAO,GACV,yEAAC,gDAAD;AAAQ,sBAAaxZ;AAArB,SAAkCwJ,eAAlC;AAAoD,iBAAS,EAAGf;AAAhE,UACG+kB,uDAAQ,CAAEpiB,IAAF,CAAR,GAAmB,yEAAC,kDAAD;AAAU,YAAI,EAAGA;AAAjB,QAAnB,GAAgDA,IADnD,EAEG5D,QAFH,CADD;;AAOA,UAAK+lB,WAAL,EAAmB;AAClB/T,eAAO,GACN,yEAAC,iDAAD;AAAS,cAAI,EAAG8T,WAAhB;AAA8B,kBAAQ,EAAGD;AAAzC,WACG7T,OADH,CADD;AAKA;;AAED,aAAOA,OAAP;AACA;;;;EAtCuBxR,4D;;AAyCVsD,yEAAf;;;;;;;;;;;;;;;;;;;;AC7DA;;;AAGA;AACA;;AAEA,SAASmiB,IAAT,OAAkD;AAAA,uBAAjCriB,IAAiC;AAAA,MAAjCA,IAAiC,0BAA1B,IAA0B;AAAA,MAApBoI,IAAoB,QAApBA,IAAoB;AAAA,MAAd7L,SAAc,QAAdA,SAAc;AACjD,MAAI+lB,QAAJ;;AAEA,MAAK,aAAa,OAAOtiB,IAAzB,EAAgC;AAC/B;AACAsiB,YAAQ,GAAGla,IAAI,IAAI,EAAnB;AACA,WAAO,yEAAC,0CAAD;AAAU,UAAI,EAAGpI,IAAjB;AAAwB,UAAI,EAAGsiB,QAA/B;AAA0C,eAAS,EAAG/lB;AAAtD,MAAP;AACA,GAPgD,CASjD;;;AACA+lB,UAAQ,GAAGla,IAAI,IAAI,EAAnB;;AAEA,MAAK,eAAe,OAAOpI,IAA3B,EAAkC;AACjC,QAAKA,IAAI,CAACuiB,SAAL,YAA0B3lB,4DAA/B,EAA2C;AAC1C,aAAO4B,wEAAa,CAAEwB,IAAF,EAAQ;AAAEzD,iBAAS,EAATA,SAAF;AAAa6L,YAAI,EAAEka;AAAnB,OAAR,CAApB;AACA;;AAED,WAAOtiB,IAAI,EAAX;AACA;;AAED,MAAKA,IAAI,KAAMA,IAAI,CAACzB,IAAL,KAAc,KAAd,IAAuByB,IAAI,CAACzB,IAAL,KAAcikB,qCAA3C,CAAT,EAA4D;AAC3D,QAAMC,YAAY,GAAG;AACpBlmB,eAAS,EAATA,SADiB;AAEjBwK,WAAK,EAAEub,QAFU;AAGjBtb,YAAM,EAAEsb;AAHS,OAIdtiB,IAAI,CAACjJ,KAJS,CAAlB;;AAOA,WAAO,yEAAC,qCAAD,EAAU0rB,YAAV,CAAP;AACA;;AAED,MAAKC,yEAAc,CAAE1iB,IAAF,CAAnB,EAA8B;AAC7B,WAAO2iB,uEAAY,CAAE3iB,IAAF,EAAQ;AAC1BzD,eAAS,EAATA,SAD0B;AAE1B6L,UAAI,EAAEka;AAFoB,KAAR,CAAnB;AAIA;;AAED,SAAOtiB,IAAP;AACA;;AAEcqiB,mEAAf;;;;;;;;;;;;;AC/CA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;CAEA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;CAGA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvEA;;;AAGA;AACA;AACA;AAEA;;;;AAGA;;IAEMO,iB;;;;;AACL,+BAAc;AAAA;;AAAA;;AACb,gPAAU5sB,SAAV;AAEA,UAAK6sB,aAAL,GAAqB,MAAKA,aAAL,CAAmB3sB,IAAnB,2MAArB;AAHa;AAIb;;;;wCAEmB;AAAA;;AAAA,4BACc,IADd,CACX4sB,SADW;AAAA,UACXA,SADW,gCACC3V,QADD;AAGnB,WAAK4V,SAAL,GAAiB,IAAIC,gDAAJ,CAAeF,SAAf,CAAjB;AACAzW,4DAAO,CAAE,KAAKtV,KAAL,CAAWsM,SAAb,EAAwB,UAAE4f,QAAF,EAAY9pB,GAAZ,EAAqB;AAAA,2BACjB,MAAI,CAACpC,KADY;AAAA,YAC3CmsB,UAD2C,gBAC3CA,UAD2C;AAAA,YAC/BC,SAD+B,gBAC/BA,SAD+B;AAEnD,YAAMC,MAAM,GAAGF,UAAU,GAAG,YAAH,GAAkB,MAA3C;;AACA,cAAI,CAACH,SAAL,CAAgBK,MAAhB,EAA0BjqB,GAA1B,EAA+B8pB,QAA/B,EAAyCE,SAAzC;AACA,OAJM,CAAP;AAKA;;;2CAEsB;AACtB,WAAKJ,SAAL,CAAe3sB,KAAf;AACA;AAED;;;;;;;;;kCAMeS,I,EAAO;AACrB,WAAKisB,SAAL,GAAiBjsB,IAAjB;AACA;;;6BAEQ;AACR;AACA;AAFQ,UAGAuF,QAHA,GAGa,KAAKrF,KAHlB,CAGAqF,QAHA;;AAIR,UAAK,CAAEinB,2DAAQ,CAACC,KAAT,CAAgBlnB,QAAhB,CAAP,EAAoC;AACnC,eAAO,IAAP;AACA;;AAED,aAAO;AAAK,WAAG,EAAG,KAAKymB;AAAhB,SAAkCzmB,QAAlC,CAAP;AACA;;;;EAzC8BQ,4D;;AA4CjBgmB,gFAAf;;;;;;;;;;;;;;;;;;;;;;;;ACxDA;;;AAGA;AAEA;;;;AAGA;AACA;AAEA;;;;AAGA;AAEO,SAASW,SAAT,OAKH;AAAA,MAJHnnB,QAIG,QAJHA,QAIG;AAAA,4BAHHG,SAGG;AAAA,MAHHA,SAGG,+BAHS,EAGT;AAAA,MAFHF,UAEG,QAFHA,UAEG;AAAA,MADHzH,KACG,QADHA,KACG;;AACH,MAAK,CAAEyuB,2DAAQ,CAACC,KAAT,CAAgBlnB,QAAhB,CAAP,EAAoC;AACnC,WAAO,IAAP;AACA;;AAED,MAAMonB,OAAO,yCAAmCnnB,UAAnC,CAAb;AACA,MAAMonB,UAAU,GAAG9mB,iDAAU,CAC5BJ,SAD4B,EAE5B,uBAF4B,CAA7B;AAKA,SACC;AAAK,aAAS,EAAGknB;AAAjB,KACG7uB,KAAK,IACN;AAAK,aAAS,EAAC,8BAAf;AAA8C,MAAE,EAAG4uB;AAAnD,KAA+D5uB,KAA/D,CAFF,EAIC,yEAAC,kEAAD;AAAe,eAAW,EAAC,UAA3B;AAAsC,uBAAkB4uB;AAAxD,KACGpnB,QADH,CAJD,CADD;AAUA;AAEcW,wIAAc,CAAEwmB,SAAF,CAA7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5CA;;;AAGA;AACA;AAEA;;;;AAGA;AACA;AAEA;;;;AAGA;AACA;AACA;AAEA;;;;;;AAKO,SAASG,QAAT,OAWH;AAAA,MAVHtnB,QAUG,QAVHA,QAUG;AAAA,wBATHxH,KASG;AAAA,MATHA,KASG,2BATKwH,QASL;AAAA,MARHunB,IAQG,QARHA,IAQG;AAAA,MAPHpnB,SAOG,QAPHA,SAOG;AAAA,MANHyD,IAMG,QANHA,IAMG;AAAA,MALHiiB,QAKG,QALHA,QAKG;AAAA,MAJH2B,UAIG,QAJHA,UAIG;AAAA,uBAHHC,IAGG;AAAA,MAHHA,IAGG,0BAHI,UAGJ;AAAA,MAFHxnB,UAEG,QAFHA,UAEG;AAAA,MADAtF,KACA;;AACHwF,WAAS,GAAGI,iDAAU,CAAE,8BAAF,EAAkCJ,SAAlC,EAA6C;AAClE,gBAAYyD;AADsD,GAA7C,CAAtB,CADG,CAKH;;AACApL,OAAK,GAAGwtB,uDAAQ,CAAExtB,KAAF,CAAR,GAAoBA,KAApB,GAA4BgB,SAApC;;AAEA,MAAK+tB,IAAL,EAAY;AACX,QAAMG,MAAM,GAAG,oCAAoCznB,UAAnD,CADW,CAGX;;AACAtF,SAAK,CAAE,kBAAF,CAAL,GAA8B+sB,MAA9B;AAEA1nB,YAAQ,GACP;AAAM,eAAS,EAAC;AAAhB,OACGA,QADH,EAEC;AACC,QAAE,EAAG0nB,MADN;AAEC,eAAS,EAAC;AAFX,OAGGH,IAHH,CAFD,CADD;AAUA;;AAED,MAAII,OAAO,GAAGzmB,+CAAd;;AAEA,MAAK0C,IAAL,EAAY;AACX,QAAK,CAAEoiB,uDAAQ,CAAEpiB,IAAF,CAAf,EAA0B;AACzBA,UAAI,GAAG2iB,uEAAY,CAAE3iB,IAAF,EAAQ;AAC1BzD,iBAAS,EAAE,kCADe;AAE1ByK,cAAM,EAAE,EAFkB;AAG1BD,aAAK,EAAE;AAHmB,OAAR,CAAnB;AAKA;;AAEDgd,WAAO,GAAG7jB,oDAAV;AACAnJ,SAAK,CAACiJ,IAAN,GAAaA,IAAb;AACA;;AAED,SAAOxB,wEAAa,CACnBulB,OADmB;AAGlB,kBAAcnvB,KAHI;AAIlB,oBAAgBgvB,UAJE;AAKlBC,QAAI,EAAJA,IALkB;AAMlBtnB,aAAS,EAATA;AANkB,KAOfxF,KAPe,GASnBqF,QATmB,EAUnB,yEAAC,iDAAD;AAAU,aAAS,EAAC,gCAApB;AAAqD,YAAQ,EAAG6lB;AAAhE,IAVmB,CAApB;AAYA;AAEcllB,wIAAc,CAAE2mB,QAAF,CAA7B;;;;;;;;;;;;;;;;;;;;AC1FA;;;AAGA;AAEe,SAASM,eAAT,OAIX;AAAA,0BAHHC,OAGG;AAAA,MAHHA,OAGG,6BAHO,EAGP;AAAA,MAFHlH,QAEG,QAFHA,QAEG;AAAA,MADHjlB,KACG,QADHA,KACG;AACH,SAAOmsB,OAAO,CAACjrB,GAAR,CAAa,UAAE2hB,IAAF,EAAY;AAC/B,QAAMiJ,UAAU,GAAG9rB,KAAK,KAAK6iB,IAAI,CAAC7iB,KAAlC;AACA,WACC,yEAAC,kDAAD;AACC,SAAG,EAAG6iB,IAAI,CAAC7iB,KADZ;AAEC,UAAI,EAAC,eAFN;AAGC,UAAI,EAAG8rB,UAAU,IAAI,KAHtB;AAIC,gBAAU,EAAGA,UAJd;AAKC,cAAQ,EAAGjJ,IAAI,CAACsH,QALjB;AAMC,aAAO,EAAG,mBAAM;AACf,YAAK,CAAE2B,UAAP,EAAoB;AACnB7G,kBAAQ,CAAEpC,IAAI,CAAC7iB,KAAP,CAAR;AACA;AACD;AAVF,OAYG6iB,IAAI,CAAC/lB,KAZR,CADD;AAgBA,GAlBM,CAAP;AAmBA;;;;;;;;;;;;;AC7BD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;AAGA;AAEA,IAAMsvB,sBAAsB,GAAG,IAAIC,GAAJ,CAAS,CACvC,OADuC,EAEvC,QAFuC,EAGvC,KAHuC,EAIvC,SAJuC,EAKvC,OALuC,CAAT,CAA/B;AAQA,IAAIC,cAAc,GAAG,EAArB;AAAA,IACCC,QAAQ,GAAG,KADZ;AAGA;;;;;;;;;;;;;AAYO,SAASC,OAAT,CAAkBC,eAAlB,EAAoC;AAC1C,MAAKF,QAAL,EAAgB;AACf;AACA;;AACD,MAAMG,QAAQ,GAAGrX,QAAQ,CAACuB,IAAT,CAActS,QAA/B;AACAiQ,wDAAO,CAAEmY,QAAF,EAAY,UAAEpW,OAAF,EAAe;AACjC,QACCA,OAAO,KAAKmW,eADb,EAEE;AACD;AACA;;AACD,QAAKE,qBAAqB,CAAErW,OAAF,CAA1B,EAAwC;AACvCA,aAAO,CAAC5B,YAAR,CAAsB,aAAtB,EAAqC,MAArC;AACA4X,oBAAc,CAAClvB,IAAf,CAAqBkZ,OAArB;AACA;AACD,GAVM,CAAP;AAWAiW,UAAQ,GAAG,IAAX;AACA;AAED;;;;;;;;AAOO,SAASI,qBAAT,CAAgCrW,OAAhC,EAA0C;AAChD,MAAMyV,IAAI,GAAGzV,OAAO,CAACsW,YAAR,CAAsB,MAAtB,CAAb;AACA,SAAO,EACNtW,OAAO,CAAC2V,OAAR,KAAoB,QAApB,IACA3V,OAAO,CAAC3B,YAAR,CAAsB,aAAtB,CADA,IAEA2B,OAAO,CAAC3B,YAAR,CAAsB,WAAtB,CAFA,IAGAyX,sBAAsB,CAACS,GAAvB,CAA4Bd,IAA5B,CAJM,CAAP;AAMA;AAED;;;;;AAIO,SAASe,OAAT,GAAmB;AACzB,MAAK,CAAEP,QAAP,EAAkB;AACjB;AACA;;AACDhY,wDAAO,CAAE+X,cAAF,EAAkB,UAAEhW,OAAF,EAAe;AACvCA,WAAO,CAAC1B,eAAR,CAAyB,aAAzB;AACA,GAFM,CAAP;AAGA0X,gBAAc,GAAG,EAAjB;AACAC,UAAQ,GAAG,KAAX;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7ED;;;AAGA;AACA;AACA;AACA;AAEA;;;;AAGA;AAEA;;;;AAGA;AACA;;IAEMQ,U;;;;;AACL,wBAAc;AAAA;;AAAA;;AACb,yOAAU7uB,SAAV;AAEA,UAAK8uB,YAAL,GAAoBzjB,oEAAS,EAA7B;AACA,UAAK/K,aAAL,GAAqB,MAAKA,aAAL,CAAmBJ,IAAnB,2MAArB;AACA,UAAK6uB,kBAAL,GAA0B,MAAKA,kBAAL,CAAwB7uB,IAAxB,2MAA1B;AACA,UAAK8uB,kBAAL,GAA0B,MAAKA,kBAAL,CAAwB9uB,IAAxB,2MAA1B;AANa;AAOb;AAED;;;;;;;wCAGoB;AACnB;AACA,UAAK,KAAKa,KAAL,CAAWkuB,YAAhB,EAA+B;AAC9B,aAAKD,kBAAL;AACA;AACD;AAED;;;;;;yCAGqB;AACpB,UAAMpG,SAAS,GAAGxe,oDAAK,CAACye,QAAN,CAAetjB,IAAf,CAAqB,KAAKupB,YAAL,CAAkBriB,OAAvC,CAAlB;;AACA,UAAKmc,SAAS,CAACnqB,MAAf,EAAwB;AACvBmqB,iBAAS,CAAE,CAAF,CAAT,CAAexe,KAAf;AACA;AACD;AAED;;;;;;;;uCAKoB5G,K,EAAQ;AAC3B,UAAK,KAAKzC,KAAL,CAAWmuB,yBAAhB,EAA4C;AAC3C,aAAKC,cAAL,CAAqB3rB,KAArB;AACA;AACD;AAED;;;;;;;;kCAKeA,K,EAAQ;AACtB,UAAKA,KAAK,CAACC,OAAN,KAAkBa,0DAAvB,EAAgC;AAC/B,aAAK8qB,mBAAL,CAA0B5rB,KAA1B;AACA;AACD;AAED;;;;;;;;;;wCAOqBA,K,EAAQ;AAC5B,UAAK,KAAKzC,KAAL,CAAWsuB,gBAAhB,EAAmC;AAClC7rB,aAAK,CAACO,cAAN;AACA,aAAKorB,cAAL,CAAqB3rB,KAArB;AACA;AACD;AAED;;;;;;;;mCAKgBA,K,EAAQ;AAAA,UACf2rB,cADe,GACI,KAAKpuB,KADT,CACfouB,cADe;;AAEvB,UAAKA,cAAL,EAAsB;AACrBA,sBAAc,CAAE3rB,KAAF,CAAd;AACA;AACD;AAED;;;;;;;;6BAKS;AAAA,wBAWJ,KAAKzC,KAXD;AAAA,UAEPuuB,YAFO,eAEPA,YAFO;AAAA,yCAGPC,IAHO;AAAA,UAINC,WAJM,oBAINA,WAJM;AAAA,UAKNC,UALM,oBAKNA,UALM;AAAA,UAOPrpB,QAPO,eAOPA,QAPO;AAAA,UAQPG,SARO,eAQPA,SARO;AAAA,UASPsnB,IATO,eASPA,IATO;AAAA,UAUP9iB,KAVO,eAUPA,KAVO;AAaR,aACC;AACC,iBAAS,EAAGxE,SADb;AAEC,aAAK,EAAGwE,KAFT;AAGC,WAAG,EAAG,KAAK+jB,YAHZ;AAIC,YAAI,EAAGjB,IAJR;AAKC,sBAAayB,YALd;AAMC,2BAAkBA,YAAY,GAAG,IAAH,GAAUG,UANzC;AAOC,4BAAmBD,WAPpB;AAQC,gBAAQ,EAAC;AARV,SAUGppB,QAVH,CADD;AAcA;;;;EA9GuBQ,4D;;AAiHVC,iIAAO,CAAE,CACvB6oB,wEADuB,EAEvBjH,+EAFuB,EAGvB/K,2DAHuB,EAIvBuB,2EAAgB,CAAE;AACjB0Q,SAAO,EAAE;AADQ,CAAF,CAJO,CAAF,CAAP,CAOVd,UAPU,CAAf;;;;;;;;;;;;;;;;;;;;;ACpIA;;;AAGA;AAEA;;;;AAGA;;AAEA,IAAMe,WAAW,GAAG,SAAdA,WAAc,OAAsE;AAAA,MAAlE5lB,IAAkE,QAAlEA,IAAkE;AAAA,MAA5DsT,KAA4D,QAA5DA,KAA4D;AAAA,MAArDR,OAAqD,QAArDA,OAAqD;AAAA,MAA5C+S,UAA4C,QAA5CA,UAA4C;AAAA,MAAhCC,SAAgC,QAAhCA,SAAgC;AAAA,MAArBC,aAAqB,QAArBA,aAAqB;AACzF,MAAMnxB,KAAK,GAAGixB,UAAU,GAAGA,UAAH,GAAgBttB,0DAAE,CAAE,cAAF,CAA1C;AAEA,SACC;AACC,aAAS,EAAC;AADX,KAGC;AAAK,aAAS,EAAC;AAAf,KACGyH,IAAI,IACL;AAAM,aAAS,EAAC,kCAAhB;AAAmD;AAAnD,KACGA,IADH,CAFF,EAMGsT,KAAK,IACN;AAAI,MAAE,EAAGwS,SAAT;AACC,aAAS,EAAC;AADX,KAEGxS,KAFH,CAPF,CAHD,EAgBGyS,aAAa,IACd,yEAAC,oDAAD;AACC,WAAO,EAAGjT,OADX;AAEC,QAAI,EAAC,QAFN;AAGC,SAAK,EAAGle;AAHT,IAjBF,CADD;AA0BA,CA7BD;;AA+BegxB,0EAAf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzCA;;;AAGA;AACA;AAEA;;;;AAGA;AACA;AAEA;;;;AAGA;AACA;CAGA;;AACA,IAAIjU,aAAJ;AAAA,IACCqU,cAAc,GAAG,CADlB;;IAGMC,K;;;;;AACL,iBAAalvB,KAAb,EAAqB;AAAA;;AAAA;;AACpB,mOAAOA,KAAP;;AAEA,UAAKmvB,UAAL;;AACA,UAAKC,gCAAL,GAAwC,MAAKA,gCAAL,CAAsCjwB,IAAtC,2MAAxC;AAJoB;AAKpB;AAED;;;;;;;;;wCAKoB;AACnB8vB,oBAAc;;AAEd,UAAKA,cAAc,KAAK,CAAxB,EAA4B;AAC3B,aAAKI,cAAL;AACA;AACD;AAED;;;;;;;2CAIuB;AACtBJ,oBAAc;;AAEd,UAAKA,cAAc,KAAK,CAAxB,EAA4B;AAC3B,aAAKK,cAAL;AACA;;AAED,WAAKC,QAAL;AACA;AAED;;;;;;;;;;;;iCASa;AACZ,UAAK,CAAE3U,aAAP,EAAuB;AACtBA,qBAAa,GAAGxE,QAAQ,CAAC3O,aAAT,CAAwB,KAAxB,CAAhB;AACA2O,gBAAQ,CAACuB,IAAT,CAAcC,WAAd,CAA2BgD,aAA3B;AACA;;AACD,WAAK9a,IAAL,GAAYsW,QAAQ,CAAC3O,aAAT,CAAwB,KAAxB,CAAZ;AACAmT,mBAAa,CAAChD,WAAd,CAA2B,KAAK9X,IAAhC;AACA;AAED;;;;;;+BAGW;AACV8a,mBAAa,CAAC/C,WAAd,CAA2B,KAAK/X,IAAhC;AACA;AAED;;;;;;;;;;qCAOiB;AAChB0vB,2DAAA,CAAoB5U,aAApB;AACAxE,cAAQ,CAACuB,IAAT,CAAcF,SAAd,CAAwBC,GAAxB,CAA6B,KAAK1X,KAAL,CAAWyvB,iBAAxC;AACA;AAED;;;;;;;qCAIiB;AAChBrZ,cAAQ,CAACuB,IAAT,CAAcF,SAAd,CAAwBiB,MAAxB,CAAgC,KAAK1Y,KAAL,CAAWyvB,iBAA3C;AACAD,2DAAA;AACA;AAED;;;;;;;qDAIkC/sB,K,EAAQ;AACzCA,WAAK,CAACQ,eAAN;AACA;AAED;;;;;;;;6BAKS;AAAA,wBAaJ,KAAKjD,KAbD;AAAA,UAEP0vB,gBAFO,eAEPA,gBAFO;AAAA,UAGPlqB,SAHO,eAGPA,SAHO;AAAA,UAIP4oB,cAJO,eAIPA,cAJO;AAAA,UAKP7R,KALO,eAKPA,KALO;AAAA,UAMPtT,IANO,eAMPA,IANO;AAAA,UAOP0mB,gBAPO,eAOPA,gBAPO;AAAA,UAQPtqB,QARO,eAQPA,QARO;AAAA,UASPmpB,IATO,eASPA,IATO;AAAA,UAUPlpB,UAVO,eAUPA,UAVO;AAAA,UAWP0pB,aAXO,eAWPA,aAXO;AAAA,UAYJY,UAZI;;AAeR,UAAMb,SAAS,GAAGP,IAAI,CAACE,UAAL,sCAA+CppB,UAA/C,CAAlB,CAfQ,CAiBR;AACA;;AACA;;AACA,aAAOuqB,uEAAY,CAClB;AACC,iBAAS,EAAGjqB,iDAAU,CAAE,kCAAF,EAAsC8pB,gBAAtC,CADvB;AAEC,mBAAW,EAAG,KAAKN;AAFpB,SAIC,yEAAC,+CAAD;AACC,iBAAS,EAAGxpB,iDAAU,CACrB,yBADqB,EAErBJ,SAFqB,CADvB;AAKC,sBAAc,EAAG4oB,cALlB;AAMC,YAAI,EAAG;AACNM,oBAAU,EAAEnS,KAAK,GAAGwS,SAAH,GAAe,IAD1B;AAENN,qBAAW,EAAED,IAAI,CAACC;AAFZ;AANR,SAUMmB,UAVN,GAYC;AAAK,iBAAS,EAAG,2BAAjB;AAA+C,gBAAQ,EAAC;AAAxD,SACC,yEAAC,gDAAD;AACC,kBAAU,EAAGD,gBADd;AAEC,iBAAS,EAAGZ,SAFb;AAGC,YAAI,EAAG9lB,IAHR;AAIC,qBAAa,EAAG+lB,aAJjB;AAKC,eAAO,EAAGZ,cALX;AAMC,aAAK,EAAG7R;AANT,QADD,EASGlX,QATH,CAZD,CAJD,CADkB,EA8BlB,KAAKvF,IA9Ba,CAAnB;AAgCA;AACA;;;;EAnJkB+F,4D;;AAsJpBqpB,KAAK,CAAC5J,YAAN,GAAqB;AACpBmK,mBAAiB,EAAE,YADC;AAEpB3C,MAAI,EAAE,QAFc;AAGpBvQ,OAAK,EAAE,IAHa;AAIpB6R,gBAAc,EAAErjB,4CAJI;AAKpBmjB,cAAY,EAAE,IALM;AAMpBI,kBAAgB,EAAE,IANE;AAOpBH,2BAAyB,EAAE,IAPP;AAQpBa,eAAa,EAAE,IARK;;AASpB;AACAR,MAAI,EAAE;AACLE,cAAU,EAAE,IADP;AAELD,eAAW,EAAE;AAFR;AAVc,CAArB;AAgBezoB,yIAAc,CAAEkpB,KAAF,CAA7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7LA;;;AAGA;AAEA;;;;AAGA;AACA;AACA;;AAEA,SAASY,UAAT,CAAqB/uB,KAArB,EAA4BgvB,KAA5B,EAAmCzI,MAAnC,EAA4C;AAC3C,MAAM0I,SAAS,GAAGjvB,KAAK,GAAGumB,MAA1B;;AACA,MAAK0I,SAAS,GAAG,CAAjB,EAAqB;AACpB,WAAOD,KAAK,GAAGC,SAAf;AACA,GAFD,MAEO,IAAKA,SAAS,IAAID,KAAlB,EAA0B;AAChC,WAAOC,SAAS,GAAGD,KAAnB;AACA;;AAED,SAAOC,SAAP;AACA;;IAEKC,kB;;;;;AACL,gCAAc;AAAA;;AAAA;;AACb,iPAAUhxB,SAAV;AACA,UAAK+I,aAAL,GAAqB,MAAKA,aAAL,CAAmB7I,IAAnB,2MAArB;AACA,UAAK2gB,SAAL,GAAiB,MAAKA,SAAL,CAAe3gB,IAAf,2MAAjB;AAEA,UAAK+wB,mBAAL,GAA2B,MAAKA,mBAAL,CAAyB/wB,IAAzB,2MAA3B;AACA,UAAKgxB,iBAAL,GAAyB,MAAKA,iBAAL,CAAuBhxB,IAAvB,2MAAzB;AANa;AAOb;;;;kCAEcqH,G,EAAM;AACpB,WAAK2B,SAAL,GAAiB3B,GAAjB;AACA;;;wCAEoBE,M,EAAS;AAAA,UACrB0pB,mBADqB,GACG,KAAKpwB,KADR,CACrBowB,mBADqB;AAE7B,UAAMC,MAAM,GAAGD,mBAAmB,GAAG/mB,qDAAK,CAACye,QAAT,GAAoBze,qDAAK,CAACgM,SAA5D;AACA,UAAMib,UAAU,GAAGD,MAAM,CAAC7rB,IAAP,CAAa,KAAK2D,SAAlB,CAAnB;AAEA,UAAMzD,KAAK,GAAG,KAAKyrB,iBAAL,CAAwBG,UAAxB,EAAoC5pB,MAApC,CAAd;;AACA,UAAKhC,KAAK,GAAG,CAAC,CAAT,IAAcgC,MAAnB,EAA4B;AAC3B,eAAO;AAAEhC,eAAK,EAALA,KAAF;AAASgC,gBAAM,EAANA,MAAT;AAAiB4pB,oBAAU,EAAVA;AAAjB,SAAP;AACA;;AACD,aAAO,IAAP;AACA;;;sCAEkBA,U,EAAY5pB,M,EAAS;AACvC,UAAM6pB,WAAW,GAAGD,UAAU,CAACvV,OAAX,CAAoBrU,MAApB,CAApB;;AACA,UAAK6pB,WAAW,KAAK,CAAC,CAAtB,EAA0B;AACzB,eAAOA,WAAP;AACA;AACD;;;8BAEU9tB,K,EAAQ;AAClB,UAAK,KAAKzC,KAAL,CAAW8f,SAAhB,EAA4B;AAC3B,aAAK9f,KAAL,CAAW8f,SAAX,CAAsBrd,KAAtB;AACA;;AAHiB,UAKVytB,mBALU,GAKc,IALd,CAKVA,mBALU;AAAA,wBAM+D,KAAKlwB,KANpE;AAAA,0CAMVwwB,KANU;AAAA,UAMVA,KANU,kCAMF,IANE;AAAA,UAMIC,aANJ,eAMIA,aANJ;AAAA,8CAMmBC,UANnB;AAAA,UAMmBA,UANnB,sCAMgC3lB,2CANhC;AAAA,UAMsC4lB,oBANtC,eAMsCA,oBANtC;AAQlB,UAAMrJ,MAAM,GAAGmJ,aAAa,CAAEhuB,KAAF,CAA5B,CARkB,CAUlB;;AACA,UAAK6kB,MAAM,KAAKzoB,SAAX,IAAwB8xB,oBAA7B,EAAoD;AACnD;AACAluB,aAAK,CAACmuB,WAAN,CAAkBC,wBAAlB,GAFmD,CAInD;AACA;;AACA,YAAKpuB,KAAK,CAACiE,MAAN,CAAainB,YAAb,CAA2B,MAA3B,MAAwC,UAA7C,EAA0D;AACzDlrB,eAAK,CAACO,cAAN;AACA;;AAEDP,aAAK,CAACQ,eAAN;AACA;;AAED,UAAK,CAAEqkB,MAAP,EAAgB;AACf;AACA;;AAED,UAAMwJ,OAAO,GAAGZ,mBAAmB,CAAE9Z,QAAQ,CAACyH,aAAX,CAAnC;;AACA,UAAK,CAAEiT,OAAP,EAAiB;AAChB;AACA;;AA/BiB,UAiCVpsB,KAjCU,GAiCYosB,OAjCZ,CAiCVpsB,KAjCU;AAAA,UAiCH4rB,UAjCG,GAiCYQ,OAjCZ,CAiCHR,UAjCG;AAkClB,UAAM7I,SAAS,GAAG+I,KAAK,GAAGV,UAAU,CAAEprB,KAAF,EAAS4rB,UAAU,CAAC5yB,MAApB,EAA4B4pB,MAA5B,CAAb,GAAoD5iB,KAAK,GAAG4iB,MAAnF;;AACA,UAAKG,SAAS,IAAI,CAAb,IAAkBA,SAAS,GAAG6I,UAAU,CAAC5yB,MAA9C,EAAuD;AACtD4yB,kBAAU,CAAE7I,SAAF,CAAV,CAAwBpe,KAAxB;AACAqnB,kBAAU,CAAEjJ,SAAF,EAAa6I,UAAU,CAAE7I,SAAF,CAAvB,CAAV;AACA;AACD;;;6BAEQ;AAAA,yBACuB,KAAKznB,KAD5B;AAAA,UACAqF,QADA,gBACAA,QADA;AAAA,UACarF,KADb,mIAGR;;AACA;;;AACA,aACC;AAAK,WAAG,EAAG,KAAKgI;AAAhB,SACMmG,mDAAI,CAAEnO,KAAF,EAAS,CACjB,sBADiB,EAEjB,eAFiB,EAGjB,YAHiB,EAIjB,OAJiB,EAKjB,qBALiB,CAAT,CADV;AAQC,iBAAS,EAAG,KAAK8f,SARlB;AASC,eAAO,EAAG,KAAK7B;AAThB,UAUG5Y,QAVH,CADD;AAcA;;;;EA7F+BQ,4D;;AAgG1B,IAAMkrB,aAAb;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA,6BACU;AAAA,yBACqD,KAAK/wB,KAD1D;AAAA,2CACA8sB,IADA;AAAA,UACAA,IADA,kCACO,MADP;AAAA,+CACekE,WADf;AAAA,UACeA,WADf,sCAC6B,UAD7B;AAAA,UAC4CC,IAD5C;;AAGR,UAAMR,aAAa,GAAG,SAAhBA,aAAgB,CAAES,GAAF,EAAW;AAAA,YACxBxuB,OADwB,GACZwuB,GADY,CACxBxuB,OADwB;AAGhC,YAAIyuB,IAAI,GAAG,CAAEhuB,yDAAF,CAAX;AACA,YAAIiuB,QAAQ,GAAG,CAAEluB,uDAAF,CAAf;;AAEA,YAAK8tB,WAAW,KAAK,YAArB,EAAoC;AACnCG,cAAI,GAAG,CAAE9tB,0DAAF,CAAP;AACA+tB,kBAAQ,GAAG,CAAEhuB,yDAAF,CAAX;AACA;;AAED,YAAK4tB,WAAW,KAAK,MAArB,EAA8B;AAC7BG,cAAI,GAAG,CAAE9tB,0DAAF,EAASF,yDAAT,CAAP;AACAiuB,kBAAQ,GAAG,CAAEhuB,yDAAF,EAAQF,uDAAR,CAAX;AACA;;AAED,YAAKqS,uDAAQ,CAAE4b,IAAF,EAAQzuB,OAAR,CAAb,EAAiC;AAChC,iBAAO,CAAP;AACA,SAFD,MAEO,IAAK6S,uDAAQ,CAAE6b,QAAF,EAAY1uB,OAAZ,CAAb,EAAqC;AAC3C,iBAAO,CAAC,CAAR;AACA;AACD,OArBD;;AAuBA,aACC,yEAAC,kBAAD;AACC,4BAAoB,MADrB;AAEC,2BAAmB,EAAG,KAFvB;AAGC,YAAI,EAAGoqB,IAHR;AAIC,4BAAmBkE,WAJpB;AAKC,qBAAa,EAAGP;AALjB,SAMMQ,IANN,EADD;AAUA;AArCF;;AAAA;AAAA,EAAmCprB,4DAAnC;AAwCO,IAAMwrB,iBAAb;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA,6BACU;AAAA;;AACR,UAAMZ,aAAa,GAAG,SAAhBA,aAAgB,CAAES,GAAF,EAAW;AAAA,YACxBxuB,OADwB,GACFwuB,GADE,CACxBxuB,OADwB;AAAA,YACfG,QADe,GACFquB,GADE,CACfruB,QADe;;AAEhC,YAAK+I,wDAAG,KAAKlJ,OAAb,EAAuB;AACtB,iBAAOG,QAAQ,GAAG,CAAC,CAAJ,GAAQ,CAAvB;AACA,SAJ+B,CAMhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,YAAK,MAAI,CAAC7C,KAAL,CAAWywB,aAAhB,EAAgC;AAC/B,iBAAO,MAAI,CAACzwB,KAAL,CAAWywB,aAAX,CAA0BS,GAA1B,CAAP;AACA;AACD,OApBD;;AAsBA,aACC,yEAAC,kBAAD;AACC,4BAAoB,MADrB;AAEC,2BAAmB,MAFpB;AAGC,qBAAa,EAAGT;AAHjB,SAIM,KAAKzwB,KAJX,EADD;AAQA;AAhCF;;AAAA;AAAA,EAAuC6F,4DAAvC;;;;;;;;;;;;;;;;;;;;;;;;;AC/JA;;;AAGA;AACA;AAEA;;;;AAGA;AAEA;;;;AAGA;;AAEA,SAASyrB,MAAT,OAOI;AAAA,MANH9rB,SAMG,QANHA,SAMG;AAAA,MALH+e,MAKG,QALHA,MAKG;AAAA,MAJHlf,QAIG,QAJHA,QAIG;AAAA,2BAHHksB,QAGG;AAAA,MAHHA,QAGG,8BAHQxmB,2CAGR;AAAA,gCAFHymB,aAEG;AAAA,MAFHA,aAEG,mCAFa,IAEb;AAAA,0BADHC,OACG;AAAA,MADHA,OACG,6BADO,EACP;AACH,MAAMnrB,OAAO,GAAGV,iDAAU,CAAEJ,SAAF,EAAa,mBAAb,EAAkC,QAAQ+e,MAA1C,EAAkD;AAC3E,sBAAkBiN;AADyD,GAAlD,CAA1B;AAIA,SACC;AAAK,aAAS,EAAGlrB;AAAjB,KACC;AAAK,aAAS,EAAC;AAAf,KACGjB,QADH,EAEGosB,OAAO,CAACxvB,GAAR,CAAa,iBAA2ByC,KAA3B;AAAA,QAAI7G,KAAJ,SAAIA,KAAJ;AAAA,QAAW6zB,GAAX,SAAWA,GAAX;AAAA,QAAgBrV,OAAhB,SAAgBA,OAAhB;AAAA,WACd,yEAAC,wCAAD;AACC,SAAG,EAAG3X,KADP;AAEC,UAAI,EAAGgtB,GAFR;AAGC,YAAM,EAAG,CAAC,CAAEA,GAHb;AAIC,aAAO,EAAGrV,OAJX;AAKC,eAAS,EAAC;AALX,OAOGxe,KAPH,CADc;AAAA,GAAb,CAFH,CADD,EAeG2zB,aAAa,IACd,yEAAC,4CAAD;AACC,aAAS,EAAC,4BADX;AAEC,QAAI,EAAC,IAFN;AAGC,SAAK,EAAGhwB,0DAAE,CAAE,qBAAF,CAHX;AAIC,WAAO,EAAG+vB,QAJX;AAKC,WAAO,EAAG;AALX,IAhBF,CADD;AA2BA;;AAEcD,qEAAf;;;;;;;;;;;;;;;;;;;;;;;;;ACzDA;;;AAGA;AAEA;;;;AAGA;AAEA;;;;;;;;;;;AAUA,SAASK,UAAT,OAAoG;AAAA,MAA7EC,OAA6E,QAA7EA,OAA6E;AAAA,2BAApEL,QAAoE;AAAA,MAApEA,QAAoE,8BAAzDxmB,2CAAyD;AAAA,4BAAnDvF,SAAmD;AAAA,MAAnDA,SAAmD,+BAAvC,wBAAuC;AAAA,MAAbH,QAAa,QAAbA,QAAa;;AACnG,MAAMklB,YAAY,GAAG,SAAfA,YAAe,CAAEpkB,EAAF;AAAA,WAAU;AAAA,aAAMorB,QAAQ,CAAEprB,EAAF,CAAd;AAAA,KAAV;AAAA,GAArB;;AAEA,SACC;AAAK,aAAS,EAAGX;AAAjB,KACGH,QADH,EAEG,6FAAKusB,OAAL,EAAeC,OAAf,GAAyB5vB,GAAzB,CAA8B,UAAE0oB,MAAF;AAAA,WAC/B,yEAAC,yCAAD,yFAAaxc,mDAAI,CAAEwc,MAAF,EAAU,SAAV,CAAjB;AAAyC,SAAG,EAAGA,MAAM,CAACxkB,EAAtD;AAA2D,cAAQ,EAAGokB,YAAY,CAAEI,MAAM,CAACxkB,EAAT;AAAlF,QACGwkB,MAAM,CAACI,OADV,CAD+B;AAAA,GAA9B,CAFH,CADD;AAUA;;AAEc4G,yEAAf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnCA;;;AAGA;AAEA;;;;AAGA;AAEA;;;;AAGA;AACA;AACA;;IAEMG,S;;;;;AACL,qBAAa9xB,KAAb,EAAqB;AAAA;;AAAA;;AACpB,wOAAUf,SAAV;AACA,UAAKU,KAAL,GAAa;AACZoyB,YAAM,EAAE/xB,KAAK,CAACgyB,WAAN,KAAsBnzB,SAAtB,GAAkC,IAAlC,GAAyCmB,KAAK,CAACgyB;AAD3C,KAAb;AAGA,UAAKvV,MAAL,GAAc,MAAKA,MAAL,CAAYtd,IAAZ,2MAAd;AALoB;AAMpB;;;;2BAEOsD,K,EAAQ;AACfA,WAAK,CAACO,cAAN;;AACA,UAAK,KAAKhD,KAAL,CAAW+xB,MAAX,KAAsBlzB,SAA3B,EAAuC;AACtC,aAAKsC,QAAL,CAAe,UAAExB,KAAF;AAAA,iBAAe;AAC7BoyB,kBAAM,EAAE,CAAEpyB,KAAK,CAACoyB;AADa,WAAf;AAAA,SAAf;AAGA;;AAED,UAAK,KAAK/xB,KAAL,CAAWmK,QAAhB,EAA2B;AAC1B,aAAKnK,KAAL,CAAWmK,QAAX;AACA;AACD;;;6BAEQ;AAAA,wBAC6C,KAAKnK,KADlD;AAAA,UACAuc,KADA,eACAA,KADA;AAAA,UACOlX,QADP,eACOA,QADP;AAAA,UACiB0sB,MADjB,eACiBA,MADjB;AAAA,UACyBvsB,SADzB,eACyBA,SADzB;AAAA,UACoCyD,IADpC,eACoCA,IADpC;AAER,UAAMgpB,QAAQ,GAAGF,MAAM,KAAKlzB,SAAX,GAAuB,KAAKc,KAAL,CAAWoyB,MAAlC,GAA2CA,MAA5D;AACA,UAAMzrB,OAAO,GAAGV,iDAAU,CAAE,wBAAF,EAA4BJ,SAA5B,EAAuC;AAAE,qBAAaysB;AAAf,OAAvC,CAA1B;AAEA,aACC;AAAK,iBAAS,EAAG3rB;AAAjB,SACG,CAAC,CAAEiW,KAAH,IACD;AAAI,iBAAS,EAAC;AAAd,SACC,yEAAC,+CAAD;AACC,iBAAS,EAAC,+BADX;AAEC,eAAO,EAAG,KAAKE,MAFhB;AAGC,yBAAgBwV;AAHjB,SAKGA,QAAQ,GACT,yEAAC,gDAAD;AAAK,iBAAS,EAAC,yBAAf;AAAyC,aAAK,EAAC,MAA/C;AAAsD,cAAM,EAAC,MAA7D;AAAoE,eAAO,EAAC,WAA5E;AAAwF,aAAK,EAAC;AAA9F,SACC,yEAAC,8CAAD,QAAG,yEAAC,iDAAD;AAAM,YAAI,EAAC,MAAX;AAAkB,SAAC,EAAC;AAApB,QAAH,CADD,EAEC,yEAAC,8CAAD,QAAG,yEAAC,iDAAD;AAAM,SAAC,EAAC;AAAR,QAAH,CAFD,CADS,GAKT,yEAAC,gDAAD;AAAK,iBAAS,EAAC,yBAAf;AAAyC,aAAK,EAAC,MAA/C;AAAsD,cAAM,EAAC,MAA7D;AAAoE,eAAO,EAAC,WAA5E;AAAwF,aAAK,EAAC;AAA9F,SACC,yEAAC,8CAAD,QAAG,yEAAC,iDAAD;AAAM,YAAI,EAAC,MAAX;AAAkB,SAAC,EAAC;AAApB,QAAH,CADD,EAEC,yEAAC,8CAAD,QAAG,yEAAC,iDAAD;AAAM,SAAC,EAAC;AAAR,QAAH,CAFD,CAVF,EAeG1V,KAfH,EAgBGtT,IAAI,IAAI,yEAAC,6CAAD;AAAM,YAAI,EAAGA,IAAb;AAAoB,iBAAS,EAAC,wBAA9B;AAAuD,YAAI,EAAG;AAA9D,QAhBX,CADD,CAFF,EAuBGgpB,QAAQ,IAAI5sB,QAvBf,CADD;AA2BA;;;;EAtDsBQ,4D;;AAyDTisB,wEAAf;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1EA;;;AAGA;AACA;AAEA;;;;AAGA;AACA;;AAEA,SAASI,UAAT,OAAkE;AAAA,MAA3C3oB,UAA2C,QAA3CA,UAA2C;AAAA,MAA/B4oB,SAA+B,QAA/BA,SAA+B;AAAA,MAApB5V,KAAoB,QAApBA,KAAoB;AAAA,MAAVvc,KAAU;;AACjEoyB,8DAAU,CAAE,0BAAF,EAA8B;AACvCC,WAAO,EAAE,KAD8B;AAEvCC,eAAW,EAAE,8BAF0B;AAGvCC,UAAM,EAAE;AAH+B,GAA9B,CAAV,CADiE,CAOjE;;AACA,MAAMC,iBAAiB,GAAGlxB,+DAAO,CAAEE,0DAAE,CAAE,qBAAF,CAAJ,EAA+B2wB,SAAS,IAAI5oB,UAA5C,CAAjC;AACA,SACC,yEAAC,6CAAD,yFACMvJ,KADN;AAEC,SAAK,EAAG,CACP;AAAM,eAAS,EAAC,+BAAhB;AAAgD,SAAG,EAAC;AAApD,OAA8Duc,KAA9D,CADO,EAEPhT,UAAU,IACT,yEAAC,wDAAD;AACC,SAAG,EAAC,OADL;AAEC,eAAS,EAAC,mCAFX;AAGC,oBAAaipB,iBAHd;AAIC,gBAAU,EAAGjpB;AAJd,MAHM;AAFT,KADD;AAgBA;;AAEc2oB,yEAAf;;;;;;;;;;;;;;;;;;ACvCA,SAASO,WAAT,OAA4C;AAAA,MAApB50B,KAAoB,QAApBA,KAAoB;AAAA,MAAbwH,QAAa,QAAbA,QAAa;AAC3C,SACC;AAAK,aAAS,EAAC;AAAf,KACGxH,KAAK,IAAI,qFAAMA,KAAN,CADZ,EAEGwH,QAFH,CADD;AAMA;;AAEcotB,0EAAf;;;;;;;;;;;;;;;;;;;;;ACTA;;;AAGA;AAEA;;;;AAGA;;AAEA,SAASC,KAAT,OAAkD;AAAA,MAAhCC,MAAgC,QAAhCA,MAAgC;AAAA,MAAxBntB,SAAwB,QAAxBA,SAAwB;AAAA,MAAbH,QAAa,QAAbA,QAAa;AACjD,MAAMqnB,UAAU,GAAG9mB,iDAAU,CAAEJ,SAAF,EAAa,kBAAb,CAA7B;AACA,SACC;AAAK,aAAS,EAAGknB;AAAjB,KACGiG,MAAM,IAAI,yEAAC,+CAAD;AAAa,SAAK,EAAGA;AAArB,IADb,EAEGttB,QAFH,CADD;AAMA;;AAEcqtB,oEAAf;;;;;;;;;;;;;;;;;;;;ACpBA;;;AAGA;;AAEA,SAASE,QAAT,OAA6C;AAAA,MAAxBptB,SAAwB,QAAxBA,SAAwB;AAAA,MAAbH,QAAa,QAAbA,QAAa;AAC5C,MAAMiB,OAAO,GAAGV,iDAAU,CAAE,uBAAF,EAA2BJ,SAA3B,CAA1B;AAEA,SACC;AAAK,aAAS,EAAGc;AAAjB,KACGjB,QADH,CADD;AAKA;;AAEcutB,uEAAf;;;;;;;;;;;;;;;;;;;;;;;;;;;ACfA;;;AAGA;AACA;AAEA;;;;AAGA;AAEA;;;;;;;AAMA,SAASC,WAAT,OAAwG;AAAA,MAAhF5pB,IAAgF,QAAhFA,IAAgF;AAAA,MAA1E5D,QAA0E,QAA1EA,QAA0E;AAAA,MAAhExH,KAAgE,QAAhEA,KAAgE;AAAA,MAAzDi1B,YAAyD,QAAzDA,YAAyD;AAAA,MAA3CttB,SAA2C,QAA3CA,SAA2C;AAAA,MAAhCosB,OAAgC,QAAhCA,OAAgC;AAAA,MAApBvqB,eAAoB;;AACvG,MAAMf,OAAO,GAAGV,iDAAU,CAAE,wBAAF,EAA4BJ,SAA5B,CAA1B;AAEA,SACC,uKAAU6B,eAAV;AAA4B,aAAS,EAAGf;AAAxC,MACGsrB,OADH,EAEC;AAAK,aAAS,EAAC;AAAf,KACGvG,uDAAQ,CAAEpiB,IAAF,CAAR,GAAmB,yEAAC,iDAAD;AAAU,QAAI,EAAGA;AAAjB,IAAnB,GAAgDA,IADnD,EAEGpL,KAFH,CAFD,EAMG,CAAC,CAAEi1B,YAAH,IAAmB;AAAK,aAAS,EAAC;AAAf,KAAwDA,YAAxD,CANtB,EAOC;AAAK,aAAS,EAAC;AAAf,KACGztB,QADH,CAPD,CADD;AAaA;;AAEcwtB,0EAAf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnCA;;;AAGA;AAEA;;;;AAGA;;IAEME,oB;;;;;;;;;;;;;uCACetwB,K,EAAQ;AAAA,UACnBuwB,cADmB,GACA,KAAKhzB,KADL,CACnBgzB,cADmB;;AAE3B,UAAKA,cAAL,EAAsB;AACrBA,sBAAc,CAAEvwB,KAAF,CAAd;AACA;AACD;;;6BAEQ;AACR,aAAO,KAAKzC,KAAL,CAAWqF,QAAlB;AACA;;;;EAViCQ,4D;;AAapB8W,yHAAY,CAAEoW,oBAAF,CAA3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvBA;;;AAGA;AACA;AAEA;;;;AAGA;AACA;AACA;AAEA;;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,IAAME,YAAY,GAAGvL,uFAAsB,CAAEiH,gFAAe,CAAE;AAAA,MAAItpB,QAAJ,QAAIA,QAAJ;AAAA,SAAoBA,QAApB;AAAA,CAAF,CAAjB,CAA3C;AAEA;;;;;;AAKA,IAAM6tB,SAAS,GAAG,SAAlB;;IAEMC,O;;;;;AACL,qBAAc;AAAA;;AAAA;;AACb,sOAAUl0B,SAAV;AAEA,UAAKoK,KAAL,GAAa,MAAKA,KAAL,CAAWlK,IAAX,2MAAb;AACA,UAAKyd,OAAL,GAAe,MAAKA,OAAL,CAAazd,IAAb,2MAAf;AACA,UAAKi0B,aAAL,GAAqB,MAAKA,aAAL,CAAmBj0B,IAAnB,2MAArB;AACA,UAAKk0B,iBAAL,GAAyB,MAAKA,iBAAL,CAAuBl0B,IAAvB,2MAAzB;AACA,UAAKm0B,sBAAL,GAA8B,MAAKA,sBAAL,CAA4Bn0B,IAA5B,2MAA9B;AACA,UAAKo0B,+BAAL,GAAuC,MAAKA,+BAAL,CAAqCp0B,IAArC,2MAAvC;AACA,UAAKq0B,UAAL,GAAkB,MAAKA,UAAL,CAAgBr0B,IAAhB,2MAAlB;AAEA,UAAKs0B,WAAL,GAAmBnpB,oEAAS,EAA5B;AACA,UAAKopB,UAAL,GAAkBppB,oEAAS,EAA3B;AAEA,UAAK3K,KAAL,GAAa;AACZg0B,iBAAW,EAAE,IADD;AAEZC,gBAAU,EAAE,IAFA;AAGZC,WAAK,EAAE,KAHK;AAIZC,WAAK,EAAE,QAJK;AAKZC,mBAAa,EAAE,IALH;AAMZC,kBAAY,EAAE,IANF;AAOZC,cAAQ,EAAE,KAPE;AAQZC,iBAAW,EAAE;AARD,KAAb;AAda;AAwBb;;;;wCAEmB;AAAA;;AACnB,WAAKC,kBAAL,CAAyB,IAAzB;AACA,WAAKvX,OAAL;AAEA;;;;;;;AAMA,WAAKwX,YAAL,GAAoBrrB,UAAU,CAAE,YAAM;AACrC,cAAI,CAACM,KAAL;AACA,OAF6B,EAE3B,CAF2B,CAA9B;AAGA;;;uCAEmB1F,S,EAAY;AAC/B,UAAKA,SAAS,CAAC6V,QAAV,KAAuB,KAAKxZ,KAAL,CAAWwZ,QAAvC,EAAkD;AACjD,aAAK8Z,sBAAL;AACA;AACD;;;2CAEsB;AACtB,WAAKa,kBAAL,CAAyB,KAAzB;AAEAzrB,kBAAY,CAAE,KAAK0rB,YAAP,CAAZ;AACA;;;uCAEmB3wB,W,EAAc;AACjC,UAAMC,OAAO,GAAGD,WAAW,GAAG,kBAAH,GAAwB,qBAAnD;AAEAnF,YAAM,CAAC+1B,oBAAP,CAA6B,KAAKC,SAAlC;AACAh2B,YAAM,CAAEoF,OAAF,CAAN,CAAmB,QAAnB,EAA6B,KAAK6vB,+BAAlC;AACAj1B,YAAM,CAAEoF,OAAF,CAAN,CAAmB,QAAnB,EAA6B,KAAK6vB,+BAAlC,EAAmE,IAAnE;AACA;;;oDAEgC9wB,K,EAAQ;AAAA;;AACxC,UAAKA,KAAK,CAAC+E,IAAN,KAAe,QAAf,IAA2B,KAAKisB,WAAL,CAAiB/nB,OAAjB,CAAyBmP,QAAzB,CAAmCpY,KAAK,CAACiE,MAAzC,CAAhC,EAAoF;AACnF;AACA;;AACD,WAAK4tB,SAAL,GAAiBh2B,MAAM,CAACi2B,qBAAP,CAA8B;AAAA,eAAM,MAAI,CAACjB,sBAAL,EAAN;AAAA,OAA9B,CAAjB;AACA;AAED;;;;;;;;;;8BAOU;AACT,UAAMY,WAAW,GAAG,KAAKb,iBAAL,EAApB;AACA,WAAKC,sBAAL,CAA6BY,WAA7B;AACA;;;4BAEO;AAAA,UACChG,YADD,GACkB,KAAKluB,KADvB,CACCkuB,YADD;;AAGP,UAAK,CAAEA,YAAF,IAAkB,CAAE,KAAKuF,WAAL,CAAiB/nB,OAA1C,EAAoD;AACnD;AACA;;AAED,UAAKwiB,YAAY,KAAK,cAAtB,EAAuC;AACtC;AACA;AACA,YAAMnG,aAAa,GAAG1e,qDAAK,CAACye,QAAN,CAAetjB,IAAf,CAAqB,KAAKivB,WAAL,CAAiB/nB,OAAtC,EAAiD,CAAjD,CAAtB;;AAEA,YAAKqc,aAAL,EAAqB;AACpBA,uBAAa,CAAC1e,KAAd;AACA,SAFD,MAEO;AACN,eAAKoqB,WAAL,CAAiB/nB,OAAjB,CAAyBrC,KAAzB;AACA;;AAED;AACA;;AAED,UAAK6kB,YAAY,KAAK,WAAtB,EAAoC;AACnC;AACA;AACA,aAAKuF,WAAL,CAAiB/nB,OAAjB,CAAyBrC,KAAzB;AACA;AACD;;;kCAEcmrB,M,EAAS;AACvB,UAAK,CAAEA,MAAF,IAAY,CAAEA,MAAM,CAACrc,UAA1B,EAAuC;AACtC;AACA;;AACD,UAAM0B,IAAI,GAAG2a,MAAM,CAACrc,UAAP,CAAkBtI,qBAAlB,EAAb,CAJuB,CAKvB;;AALuB,kCAMevR,MAAM,CAACm2B,gBAAP,CAAyBD,MAAM,CAACrc,UAAhC,CANf;AAAA,UAMfuc,UANe,yBAMfA,UANe;AAAA,UAMHC,aANG,yBAMHA,aANG;;AAOvB,UAAMC,MAAM,GAAG5pB,QAAQ,CAAE0pB,UAAF,EAAc,EAAd,CAAvB;AACA,UAAMG,SAAS,GAAG7pB,QAAQ,CAAE2pB,aAAF,EAAiB,EAAjB,CAA1B;AACA,aAAO;AACNzkB,SAAC,EAAE2J,IAAI,CAACxN,IADF;AAENgE,SAAC,EAAEwJ,IAAI,CAACxK,GAAL,GAAWulB,MAFR;AAGN5kB,aAAK,EAAE6J,IAAI,CAAC7J,KAHN;AAINC,cAAM,EAAE4J,IAAI,CAAC5J,MAAL,GAAc2kB,MAAd,GAAuBC,SAJzB;AAKNxoB,YAAI,EAAEwN,IAAI,CAACxN,IALL;AAMNG,aAAK,EAAEqN,IAAI,CAACrN,KANN;AAON6C,WAAG,EAAEwK,IAAI,CAACxK,GAAL,GAAWulB,MAPV;AAQN9a,cAAM,EAAED,IAAI,CAACC,MAAL,GAAc+a;AARhB,OAAP;AAUA;;;wCAEmB;AACnB,UAAMhb,IAAI,GAAG,KAAK4Z,WAAL,CAAiB/nB,OAAjB,CAAyBmE,qBAAzB,EAAb;;AACA,UACC,CAAE,KAAKlQ,KAAL,CAAWu0B,WAAb,IACAra,IAAI,CAAC7J,KAAL,KAAe,KAAKrQ,KAAL,CAAWu0B,WAAX,CAAuBlkB,KADtC,IAEA6J,IAAI,CAAC5J,MAAL,KAAgB,KAAKtQ,KAAL,CAAWu0B,WAAX,CAAuBjkB,MAHxC,EAIE;AACD,YAAMikB,WAAW,GAAG;AACnBjkB,gBAAM,EAAE4J,IAAI,CAAC5J,MADM;AAEnBD,eAAK,EAAE6J,IAAI,CAAC7J;AAFO,SAApB;AAIA,aAAK7O,QAAL,CAAe;AAAE+yB,qBAAW,EAAXA;AAAF,SAAf;AACA,eAAOA,WAAP;AACA;;AACD,aAAO,KAAKv0B,KAAL,CAAWu0B,WAAlB;AACA;;;2CAEuBA,W,EAAc;AAAA,wBAC4C,KAAKl0B,KADjD;AAAA,8CAC7BozB,aAD6B;AAAA,UAC7BA,aAD6B,sCACb,KAAKA,aADQ;AAAA,6CACO5Z,QADP;AAAA,UACOA,QADP,qCACkB,KADlB;AAAA,UACyByD,cADzB,eACyBA,cADzB;;AAErC,UAAM6X,kBAAkB,GAAGxB,sEAAsB,CAChDF,aAAa,CAAE,KAAKM,UAAL,CAAgBhoB,OAAlB,CADmC,EAEhDwoB,WAAW,IAAI,KAAKv0B,KAAL,CAAWu0B,WAFsB,EAGhD1a,QAHgD,EAIhDyD,cAJgD,CAAjD;;AAOA,UACC,KAAKtd,KAAL,CAAWk0B,KAAX,KAAqBiB,kBAAkB,CAACjB,KAAxC,IACA,KAAKl0B,KAAL,CAAWm0B,KAAX,KAAqBgB,kBAAkB,CAAChB,KADxC,IAEA,KAAKn0B,KAAL,CAAWg0B,WAAX,KAA2BmB,kBAAkB,CAACnB,WAF9C,IAGA,KAAKh0B,KAAL,CAAWi0B,UAAX,KAA0BkB,kBAAkB,CAAClB,UAH7C,IAIA,KAAKj0B,KAAL,CAAWo0B,aAAX,KAA6Be,kBAAkB,CAACf,aAJhD,IAKA,KAAKp0B,KAAL,CAAWq0B,YAAX,KAA4Bc,kBAAkB,CAACd,YAL/C,IAMA,KAAKr0B,KAAL,CAAWs0B,QAAX,KAAwBa,kBAAkB,CAACb,QAP5C,EAQE;AACD,aAAK9yB,QAAL,CAAe2zB,kBAAf;AACA;AACD;;;+BAEWryB,K,EAAQ;AAAA,yBACY,KAAKzC,KADjB;AAAA,UACX8f,SADW,gBACXA,SADW;AAAA,UACA/D,OADA,gBACAA,OADA,EAGnB;;AACA,UAAKtZ,KAAK,CAACC,OAAN,KAAkBa,2DAAlB,IAA4BwY,OAAjC,EAA2C;AAC1CtZ,aAAK,CAACQ,eAAN;AACA8Y,eAAO;AACP,OAPkB,CASnB;;;AACA,UAAK+D,SAAL,EAAiB;AAChBA,iBAAS,CAAErd,KAAF,CAAT;AACA;AACD;;;6BAEQ;AAAA,yBAkBJ,KAAKzC,KAlBD;AAAA,UAEPkd,WAFO,gBAEPA,WAFO;AAAA,UAGPnB,OAHO,gBAGPA,OAHO;AAAA,UAIP1W,QAJO,gBAIPA,QAJO;AAAA,UAKPG,SALO,gBAKPA,SALO;AAAA,+CAMPwtB,cANO;AAAA,UAMPA,cANO,sCAMUjX,OANV;AAAA,UAOPgZ,OAPO,gBAOPA,OAPO;AAAA,UAWPvb,QAXO,gBAWPA,QAXO;AAAA,UAYPnb,KAZO,gBAYPA,KAZO;AAAA,UAaP6vB,YAbO,gBAaPA,YAbO;AAAA,UAcPkF,aAdO,gBAcPA,aAdO;AAAA,UAePnW,cAfO,gBAePA,cAfO;AAAA,UAiBJ+X,YAjBI;;AAAA,wBA4BJ,KAAKr1B,KA5BD;AAAA,UAoBPg0B,WApBO,eAoBPA,WApBO;AAAA,UAqBPC,UArBO,eAqBPA,UArBO;AAAA,UAsBPC,KAtBO,eAsBPA,KAtBO;AAAA,UAuBPC,KAvBO,eAuBPA,KAvBO;AAAA,UAwBPC,aAxBO,eAwBPA,aAxBO;AAAA,UAyBPC,YAzBO,eAyBPA,YAzBO;AAAA,UA0BPE,WA1BO,eA0BPA,WA1BO;AAAA,UA2BPD,QA3BO,eA2BPA,QA3BO;AA8BR,UAAM3tB,OAAO,GAAGV,iDAAU,CACzB,oBADyB,EAEzBJ,SAFyB,EAGzB,QAAQquB,KAHiB,EAIzB,QAAQC,KAJiB,EAKzB;AACC,qBAAaG,QADd;AAEC,4BAAoBc,OAAO,IAAMjB,KAAK,KAAK,QAAV,IAAsBD,KAAK,KAAK;AAFlE,OALyB,CAA1B,CA9BQ,CAyCR;AACA;;AAEA;;AACA,UAAI9I,OAAO,GACV,yEAAC,wDAAD;AAAsB,sBAAc,EAAGiI;AAAvC,SACC;AACC,iBAAS,EAAG1sB,OADb;AAEC,aAAK,EAAG;AACP+I,aAAG,EAAE,CAAE4kB,QAAF,IAAcL,UAAd,GAA2BA,UAAU,GAAG,IAAxC,GAA+C/0B,SAD7C;AAEPwN,cAAI,EAAE,CAAE4nB,QAAF,IAAcN,WAAd,GAA4BA,WAAW,GAAG,IAA1C,GAAiD90B,SAFhD;AAGPo2B,oBAAU,EAAEf,WAAW,GAAGr1B,SAAH,GAAe;AAH/B;AAFT,SAOMm2B,YAPN;AAQC,iBAAS,EAAG,KAAKxB;AARlB,UAUGS,QAAQ,IACT;AAAK,iBAAS,EAAC;AAAf,SACC;AAAM,iBAAS,EAAC;AAAhB,SACG/W,WADH,CADD,EAIC,yEAAC,qDAAD;AAAY,iBAAS,EAAC,2BAAtB;AAAkD,YAAI,EAAC,QAAvD;AAAgE,eAAO,EAAGnB;AAA1E,QAJD,CAXF,EAkBC;AACC,WAAG,EAAG,KAAK0X,WADZ;AAEC,iBAAS,EAAC,6BAFX;AAGC,aAAK,EAAG;AACPyB,mBAAS,EAAE,CAAEjB,QAAF,IAAcF,aAAd,GAA8BA,aAAa,GAAG,IAA9C,GAAqDl1B,SADzD;AAEPs2B,kBAAQ,EAAE,CAAElB,QAAF,IAAcD,YAAd,GAA6BA,YAAY,GAAG,IAA5C,GAAmDn1B;AAFtD,SAHT;AAOC,gBAAQ,EAAC;AAPV,SASGwG,QATH,CAlBD,CADD,CADD;AAkCA;AAEA;AACA;;AACA,UAAK6oB,YAAL,EAAoB;AACnBnD,eAAO,GAAG,yEAAC,YAAD,QAAgBA,OAAhB,CAAV;AACA,OArFO,CAuFR;AACA;;;AAxFQ,UAyFAqK,OAzFA,GAyFY,KAAKtE,OAzFjB,CAyFAsE,OAzFA;;AA0FR,UAAKA,OAAO,IAAIA,OAAO,CAAElC,SAAF,CAAvB,EAAuC;AACtCnI,eAAO,GAAG,yEAAC,gDAAD;AAAM,cAAI,EAAGmI;AAAb,WAA2BnI,OAA3B,CAAV;AACA;;AAED,aAAO;AAAM,WAAG,EAAG,KAAK2I;AAAjB,SACJ3I,OADI,EAEJkJ,QAAQ,IAAIhX,cAAZ,IAA8B,yEAAC,qDAAD,OAF1B,CAAP;AAIA;;;;EA1RoBpX,4D;;AA6RtBstB,OAAO,CAAC7N,YAAR,GAAuB;AACtB4I,cAAY,EAAE,cADQ;AAEtB6G,SAAO,EAAE;AAFa,CAAvB;AAKA,IAAMM,gBAAgB,GAAGlC,OAAzB;AAEAkC,gBAAgB,CAACC,YAAjB,GAAgC;AAC/BF,SAAO,EAAErqB,4CAAIA;AADkB,CAAhC;;AAIAsqB,gBAAgB,CAACE,IAAjB,GAAwB;AAAA,SAAM,yEAAC,gDAAD;AAAM,oBAAgB,MAAtB;AAAuB,QAAI,EAAGrC;AAA9B,IAAN;AAAA,CAAxB;;AAEemC,+EAAf;;;;;;;;;;;;;;;;;;;;;;AC1UA;;;AAGA,IAAMG,aAAa,GAAG,EAAtB,C,CAA0B;;AAC1B,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB;AAAA,SAAMn3B,MAAM,CAACo3B,UAAP,GAAoB,GAA1B;AAAA,CAAzB;AAEA;;;;;;;;;;;;;AAWO,SAASC,2BAAT,CAAsCC,UAAtC,EAAkDC,WAAlD,EAA+D/B,KAA/D,EAAsEgC,WAAtE,EAAoF;AAAA,MAClF9lB,KADkF,GACxE6lB,WADwE,CAClF7lB,KADkF,EAG1F;;AACA,MAAM+lB,cAAc,GAAGtnB,IAAI,CAACC,KAAL,CAAYknB,UAAU,CAACvpB,IAAX,GAAoBupB,UAAU,CAAC5lB,KAAX,GAAmB,CAAnD,CAAvB;AACA,MAAMgmB,eAAe,GAAG;AACvBrC,eAAW,EAAEoC,cADU;AAEvB/B,gBAAY,EACX,CAAE+B,cAAc,GAAK/lB,KAAK,GAAG,CAA3B,GAAiC,CAAjC,GAAuCA,KAAK,GAAG,CAA/C,GAAqD+lB,cAAvD,KACEA,cAAc,GAAK/lB,KAAK,GAAG,CAA3B,GAAiC1R,MAAM,CAACo3B,UAAxC,GAAqDp3B,MAAM,CAACo3B,UAAP,GAAoBK,cAAzE,GAA4F/lB,KAAK,GAAG,CADtG;AAHsB,GAAxB;AAOA,MAAMimB,cAAc,GAAGH,WAAW,KAAK,QAAhB,GAA2BF,UAAU,CAACvpB,IAAtC,GAA6C0pB,cAApE;AACA,MAAMG,aAAa,GAAG;AACrBvC,eAAW,EAAEsC,cADQ;AAErBjC,gBAAY,EAAEiC,cAAc,GAAGjmB,KAAjB,GAAyB,CAAzB,GAA6BA,KAA7B,GAAqCimB;AAF9B,GAAtB;AAIA,MAAME,eAAe,GAAGL,WAAW,KAAK,QAAhB,GAA2BF,UAAU,CAACppB,KAAtC,GAA8CupB,cAAtE;AACA,MAAMK,cAAc,GAAG;AACtBzC,eAAW,EAAEwC,eADS;AAEtBnC,gBAAY,EAAEmC,eAAe,GAAGnmB,KAAlB,GAA0B1R,MAAM,CAACo3B,UAAjC,GAA8Cp3B,MAAM,CAACo3B,UAAP,GAAoBS,eAAlE,GAAoFnmB;AAF5E,GAAvB,CAlB0F,CAuB1F;;AACA,MAAIqmB,WAAJ;AACA,MAAIrC,YAAY,GAAG,IAAnB;;AACA,MAAKF,KAAK,KAAK,QAAV,IAAsBkC,eAAe,CAAChC,YAAhB,KAAiChkB,KAA5D,EAAoE;AACnEqmB,eAAW,GAAG,QAAd;AACA,GAFD,MAEO,IAAKvC,KAAK,KAAK,MAAV,IAAoBoC,aAAa,CAAClC,YAAd,KAA+BhkB,KAAxD,EAAgE;AACtEqmB,eAAW,GAAG,MAAd;AACA,GAFM,MAEA,IAAKvC,KAAK,KAAK,OAAV,IAAqBsC,cAAc,CAACpC,YAAf,KAAgChkB,KAA1D,EAAkE;AACxEqmB,eAAW,GAAG,OAAd;AACA,GAFM,MAEA;AACNA,eAAW,GAAGH,aAAa,CAAClC,YAAd,GAA6BoC,cAAc,CAACpC,YAA5C,GAA2D,MAA3D,GAAoE,OAAlF;AACA,QAAMsC,WAAW,GAAGD,WAAW,KAAK,MAAhB,GAAyBH,aAAa,CAAClC,YAAvC,GAAsDoC,cAAc,CAACpC,YAAzF;AACAA,gBAAY,GAAGsC,WAAW,KAAKtmB,KAAhB,GAAwBsmB,WAAxB,GAAsC,IAArD;AACA;;AAED,MAAI3C,WAAJ;;AACA,MAAK0C,WAAW,KAAK,QAArB,EAAgC;AAC/B1C,eAAW,GAAGqC,eAAe,CAACrC,WAA9B;AACA,GAFD,MAEO,IAAK0C,WAAW,KAAK,MAArB,EAA8B;AACpC1C,eAAW,GAAGuC,aAAa,CAACvC,WAA5B;AACA,GAFM,MAEA;AACNA,eAAW,GAAGyC,cAAc,CAACzC,WAA7B;AACA;;AAED,SAAO;AACNG,SAAK,EAAEuC,WADD;AAEN1C,eAAW,EAAXA,WAFM;AAGNK,gBAAY,EAAZA;AAHM,GAAP;AAKA;AAED;;;;;;;;;;;AAUO,SAASuC,2BAAT,CAAsCX,UAAtC,EAAkDC,WAAlD,EAA+DhC,KAA/D,EAAuE;AAAA,MACrE5jB,MADqE,GAC1D4lB,WAD0D,CACrE5lB,MADqE,EAG7E;;AACA,MAAM8lB,cAAc,GAAGH,UAAU,CAACvmB,GAAX,GAAmBumB,UAAU,CAAC3lB,MAAX,GAAoB,CAA9D;AACA,MAAMumB,eAAe,GAAG;AACvB5C,cAAU,EAAEmC,cADW;AAEvBhC,iBAAa,EACZ,CAAEgC,cAAc,GAAK9lB,MAAM,GAAG,CAA5B,GAAkC,CAAlC,GAAwCA,MAAM,GAAG,CAAjD,GAAuD8lB,cAAzD,KACEA,cAAc,GAAK9lB,MAAM,GAAG,CAA5B,GAAkC3R,MAAM,CAACm4B,WAAzC,GAAuDn4B,MAAM,CAACm4B,WAAP,GAAqBV,cAA5E,GAA+F9lB,MAAM,GAAG,CAD1G;AAHsB,GAAxB;AAOA,MAAMymB,YAAY,GAAG;AACpB9C,cAAU,EAAEgC,UAAU,CAACvmB,GADH;AAEpB0kB,iBAAa,EAAE6B,UAAU,CAACvmB,GAAX,GAAiBmmB,aAAjB,GAAiCvlB,MAAjC,GAA0C,CAA1C,GAA8CA,MAA9C,GAAuD2lB,UAAU,CAACvmB,GAAX,GAAiBmmB;AAFnE,GAArB;AAIA,MAAMmB,eAAe,GAAG;AACvB/C,cAAU,EAAEgC,UAAU,CAAC9b,MADA;AAEvBia,iBAAa,EAAE6B,UAAU,CAAC9b,MAAX,GAAoB0b,aAApB,GAAoCvlB,MAApC,GAA6C3R,MAAM,CAACm4B,WAApD,GAAkEn4B,MAAM,CAACm4B,WAAP,GAAqBjB,aAArB,GAAqCI,UAAU,CAAC9b,MAAlH,GAA2H7J;AAFnH,GAAxB,CAhB6E,CAqB7E;;AACA,MAAI6lB,WAAJ;AACA,MAAI/B,aAAa,GAAG,IAApB;;AACA,MAAKF,KAAK,KAAK,QAAV,IAAsB2C,eAAe,CAACzC,aAAhB,KAAkC9jB,MAA7D,EAAsE;AACrE6lB,eAAW,GAAG,QAAd;AACA,GAFD,MAEO,IAAKjC,KAAK,KAAK,KAAV,IAAmB6C,YAAY,CAAC3C,aAAb,KAA+B9jB,MAAvD,EAAgE;AACtE6lB,eAAW,GAAG,KAAd;AACA,GAFM,MAEA,IAAKjC,KAAK,KAAK,QAAV,IAAsB8C,eAAe,CAAC5C,aAAhB,KAAkC9jB,MAA7D,EAAsE;AAC5E6lB,eAAW,GAAG,QAAd;AACA,GAFM,MAEA;AACNA,eAAW,GAAGY,YAAY,CAAC3C,aAAb,GAA6B4C,eAAe,CAAC5C,aAA7C,GAA6D,KAA7D,GAAqE,QAAnF;AACA,QAAM6C,YAAY,GAAGd,WAAW,KAAK,KAAhB,GAAwBY,YAAY,CAAC3C,aAArC,GAAqD4C,eAAe,CAAC5C,aAA1F;AACAA,iBAAa,GAAG6C,YAAY,KAAK3mB,MAAjB,GAA0B2mB,YAA1B,GAAyC,IAAzD;AACA;;AAED,MAAIhD,UAAJ;;AACA,MAAKkC,WAAW,KAAK,QAArB,EAAgC;AAC/BlC,cAAU,GAAG4C,eAAe,CAAC5C,UAA7B;AACA,GAFD,MAEO,IAAKkC,WAAW,KAAK,KAArB,EAA6B;AACnClC,cAAU,GAAG8C,YAAY,CAAC9C,UAA1B;AACA,GAFM,MAEA;AACNA,cAAU,GAAG+C,eAAe,CAAC/C,UAA7B;AACA;;AAED,SAAO;AACNC,SAAK,EAAEiC,WADD;AAENlC,cAAU,EAAVA,UAFM;AAGNG,iBAAa,EAAbA;AAHM,GAAP;AAKA;AAED;;;;;;;;;;;;AAWO,SAAST,sBAAT,CAAiCsC,UAAjC,EAA6CC,WAA7C,EAAqG;AAAA,MAA3Crc,QAA2C,uEAAhC,KAAgC;AAAA,MAAzByD,cAAyB,uEAAR,KAAQ;;AAAA,wBACvEzD,QAAQ,CAAC+D,KAAT,CAAgB,GAAhB,CADuE;AAAA;AAAA,MACnGsW,KADmG;AAAA;AAAA,MAC5FC,KAD4F,kCACpF,QADoF;;AAG3G,MAAM+C,aAAa,GAAGN,2BAA2B,CAAEX,UAAF,EAAcC,WAAd,EAA2BhC,KAA3B,CAAjD;AACA,MAAMiD,aAAa,GAAGnB,2BAA2B,CAAEC,UAAF,EAAcC,WAAd,EAA2B/B,KAA3B,EAAkC+C,aAAa,CAAChD,KAAhD,CAAjD;AAEA;AACCI,YAAQ,EAAEwB,gBAAgB,MAAMxY;AADjC,KAEI6Z,aAFJ,EAGID,aAHJ;AAKA;;;;;;;;;;;;;AC5JD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;ACAA;;;AAGA;AAEO,IAAME,MAAM,GAAG,SAATA,MAAS,CAAE/2B,KAAF;AAAA,SAAayH,wEAAa,CAAE,QAAF,EAAYzH,KAAZ,CAA1B;AAAA,CAAf;AACA,IAAMg3B,CAAC,GAAG,SAAJA,CAAI,CAAEh3B,KAAF;AAAA,SAAayH,wEAAa,CAAE,GAAF,EAAOzH,KAAP,CAA1B;AAAA,CAAV;AACA,IAAMi3B,IAAI,GAAG,SAAPA,IAAO,CAAEj3B,KAAF;AAAA,SAAayH,wEAAa,CAAE,MAAF,EAAUzH,KAAV,CAA1B;AAAA,CAAb;AACA,IAAMk3B,OAAO,GAAG,SAAVA,OAAU,CAAEl3B,KAAF;AAAA,SAAayH,wEAAa,CAAE,SAAF,EAAazH,KAAb,CAA1B;AAAA,CAAhB;AACA,IAAMm3B,IAAI,GAAG,SAAPA,IAAO,CAAEn3B,KAAF;AAAA,SAAayH,wEAAa,CAAE,MAAF,EAAUzH,KAAV,CAA1B;AAAA,CAAb;AAEA,IAAMyrB,GAAG,GAAG,SAANA,GAAM,CAAEzrB,KAAF,EAAa;AAC/B,MAAM0rB,YAAY,GAAG,4FACjB1rB,KADc;AAEjB8sB,QAAI,EAAE,KAFW;AAGjB,mBAAe,MAHE;AAIjBzX,aAAS,EAAE;AAJM,IAAlB,CAD+B,CAQ/B;AACA;;;AACA,SAAO,gFAAUqW,YAAV,CAAP;AACA,CAXM;;;;;;;;;;;;;;;;;;;;;;;ACXP;;;AAGA;AACA;AAEe,SAAS0L,cAAT,OAAkG;AAAA,MAAvEv5B,KAAuE,QAAvEA,KAAuE;AAAA,MAAhEw5B,aAAgE,QAAhEA,aAAgE;AAAA,MAAjDC,cAAiD,QAAjDA,cAAiD;AAAA,MAAjCC,kBAAiC,QAAjCA,kBAAiC;AAAA,MAAbr3B,QAAa,QAAbA,QAAa;AAChH,MAAMs3B,SAAS,GAAGC,6DAAc,CAAEH,cAAF,CAAhC;AACA,SACC,yEAAC,oDAAD,qFACM;AAAEz5B,SAAK,EAALA,KAAF;AAASw5B,iBAAa,EAAbA,aAAT;AAAwBn3B,YAAQ,EAARA;AAAxB,GADN;AAEC,QAAI,EAAGs3B,SAFR;AAGC,cAAU,EAAGD;AAHd,KADD;AAOA;;;;;;;;;;;;;;;;;;;;;;;;;ACfD;;;AAGA;AAEA;;;;AAGA;AACA;AAEA,IAAMG,iBAAiB,GAAG,CAA1B;AACA,IAAMC,iBAAiB,GAAG,GAA1B;AAEe,SAASC,aAAT,OAYX;AAAA,MAXHN,cAWG,QAXHA,cAWG;AAAA,MAVHC,kBAUG,QAVHA,kBAUG;AAAA,MATHM,aASG,QATHA,aASG;AAAA,MARHC,KAQG,QARHA,KAQG;AAAA,MAPHC,OAOG,QAPHA,OAOG;AAAA,2BANHC,QAMG;AAAA,MANHA,QAMG,8BANQL,iBAMR;AAAA,2BALHM,QAKG;AAAA,MALHA,QAKG,8BALQP,iBAKR;AAAA,MAJHQ,gBAIG,QAJHA,gBAIG;AAAA,MAHHC,qBAGG,QAHHA,qBAGG;AAAA,MAFHC,aAEG,QAFHA,aAEG;AAAA,MADHC,eACG,QADHA,eACG;AACH,SAAO,CACJD,aAAa,IAAIC,eAAnB,IACC,yEAAC,+CAAD;AACC,OAAG,EAAC,6BADL;AAEC,SAAK,EAAG72B,0DAAE,CAAE,UAAF,CAFX;AAGC,SAAK,YAAOu2B,OAAP,cAAoBD,KAApB,CAHN;AAIC,WAAO,EAAG,CACT;AACCj6B,WAAK,EAAE2D,0DAAE,CAAE,kBAAF,CADV;AAECT,WAAK,EAAE;AAFR,KADS,EAKT;AACClD,WAAK,EAAE2D,0DAAE,CAAE,kBAAF,CADV;AAECT,WAAK,EAAE;AAFR,KALS,EAST;AACC;AACAlD,WAAK,EAAE2D,0DAAE,CAAE,OAAF,CAFV;AAGCT,WAAK,EAAE;AAHR,KATS,EAcT;AACC;AACAlD,WAAK,EAAE2D,0DAAE,CAAE,OAAF,CAFV;AAGCT,WAAK,EAAE;AAHR,KAdS,CAJX;AAwBC,YAAQ,EAAG,kBAAEA,KAAF,EAAa;AAAA,yBACUA,KAAK,CAACwc,KAAN,CAAa,GAAb,CADV;AAAA;AAAA,UACf+a,UADe;AAAA,UACHC,QADG;;AAEvB,UAAKA,QAAQ,KAAKT,KAAlB,EAA0B;AACzBM,qBAAa,CAAEG,QAAF,CAAb;AACA;;AACD,UAAKD,UAAU,KAAKP,OAApB,EAA8B;AAC7BM,uBAAe,CAAEC,UAAF,CAAf;AACA;AACD;AAhCF,IAFK,EAqCNJ,gBAAgB,IACf,yEAAC,wDAAD;AACC,OAAG,EAAC,gCADL;AAEC,kBAAc,EAAGZ,cAFlB;AAGC,SAAK,EAAG91B,0DAAE,CAAE,UAAF,CAHX;AAIC,iBAAa,EAAGA,0DAAE,CAAE,KAAF,CAJnB;AAKC,sBAAkB,EAAG+1B,kBALtB;AAMC,YAAQ,EAAGW;AANZ,IAtCK,EA8CNC,qBAAqB,IACpB,yEAAC,8CAAD;AACC,OAAG,EAAC,8BADL;AAEC,SAAK,EAAG32B,0DAAE,CAAE,iBAAF,CAFX;AAGC,SAAK,EAAGq2B,aAHT;AAIC,YAAQ,EAAGM,qBAJZ;AAKC,OAAG,EAAGF,QALP;AAMC,OAAG,EAAGD;AANP,IA/CK,CAAP;AAyDA;;;;;;;;;;;;;;;;;;;;ACpFD;;;AAGA;AAEA;;;;;;;;AAOO,SAASP,cAAT,CAAyBe,SAAzB,EAAqC;AAC3C,MAAMC,aAAa,GAAGC,sDAAO,CAAEF,SAAF,EAAa,QAAb,CAA7B;;AACA,MAAMG,gBAAgB,GAAG,SAAnBA,gBAAmB,CAAEC,KAAF,EAAa;AACrC,WAAOA,KAAK,CAAC32B,GAAN,CAAW,UAAE42B,IAAF,EAAY;AAC7B,UAAMxzB,QAAQ,GAAGozB,aAAa,CAAEI,IAAI,CAAC1yB,EAAP,CAA9B;AACA,yGACI0yB,IADJ;AAECxzB,gBAAQ,EAAEA,QAAQ,IAAIA,QAAQ,CAAC3H,MAArB,GACTi7B,gBAAgB,CAAEtzB,QAAF,CADP,GAET;AAJF;AAMA,KARM,CAAP;AASA,GAVD;;AAYA,SAAOszB,gBAAgB,CAAEF,aAAa,CAAE,GAAF,CAAb,IAAwB,EAA1B,CAAvB;AACA;;;;;;;;;;;;;;;;;;;;;;;;;AC3BD;;;AAGA;AACA;AAEA;;;;AAGA;AAEA;;;;AAGA;;AAEA,SAASK,YAAT,OAAkG;AAAA,MAAzEj7B,KAAyE,QAAzEA,KAAyE;AAAA,MAAlE2H,SAAkE,QAAlEA,SAAkE;AAAA,MAAvDwO,QAAuD,QAAvDA,QAAuD;AAAA,MAA7C5N,IAA6C,QAA7CA,IAA6C;AAAA,MAAvCd,UAAuC,QAAvCA,UAAuC;AAAA,MAA3BpF,QAA2B,QAA3BA,QAA2B;AAAA,0BAAjB5C,OAAiB;AAAA,MAAjBA,OAAiB,6BAAP,EAAO;AACjG,MAAM6I,EAAE,qCAA+Bb,UAA/B,CAAR;;AACA,MAAMwC,aAAa,GAAG,SAAhBA,aAAgB,CAAErF,KAAF;AAAA,WAAavC,QAAQ,CAAEuC,KAAK,CAACiE,MAAN,CAAa3F,KAAf,CAArB;AAAA,GAAtB;;AAEA,SAAO,CAAEg4B,sDAAO,CAAEz7B,OAAF,CAAT,IACN,yEAAC,qDAAD;AAAa,SAAK,EAAGO,KAArB;AAA6B,MAAE,EAAGsI,EAAlC;AAAuC,QAAI,EAAGC,IAA9C;AAAqD,aAAS,EAAGR,iDAAU,CAAEJ,SAAF,EAAa,0BAAb;AAA3E,KACGlI,OAAO,CAAC2E,GAAR,CAAa,UAAEtE,MAAF,EAAU+G,KAAV;AAAA,WACd;AACC,SAAG,YAAOyB,EAAP,cAAezB,KAAf,CADJ;AAEC,eAAS,EAAC;AAFX,OAIC;AACC,QAAE,YAAOyB,EAAP,cAAezB,KAAf,CADH;AAEC,eAAS,EAAC,iCAFX;AAGC,UAAI,EAAC,OAHN;AAIC,UAAI,EAAGyB,EAJR;AAKC,WAAK,EAAGxI,MAAM,CAACoD,KALhB;AAMC,cAAQ,EAAG+G,aANZ;AAOC,aAAO,EAAGnK,MAAM,CAACoD,KAAP,KAAiBiT,QAP5B;AAQC,0BAAmB,CAAC,CAAE5N,IAAH,aAAcD,EAAd,cAA4BtH;AARhD,MAJD,EAcC;AAAO,aAAO,YAAOsH,EAAP,cAAezB,KAAf;AAAd,OACG/G,MAAM,CAACE,KADV,CAdD,CADc;AAAA,GAAb,CADH,CADD;AAwBA;;AAEcmI,wIAAc,CAAE8yB,YAAF,CAA7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9CA;;;AAGA;AACA;AAEA;;;;AAGA;AACA;AAEA;;;;AAGA;;AAEA,SAASE,YAAT,OAYI;AAAA,MAXHxzB,SAWG,QAXHA,SAWG;AAAA,MAVH3H,KAUG,QAVHA,KAUG;AAAA,MATHkD,KASG,QATHA,KASG;AAAA,MARHuE,UAQG,QARHA,UAQG;AAAA,MAPHpF,QAOG,QAPHA,QAOG;AAAA,MANH+4B,UAMG,QANHA,UAMG;AAAA,MALHC,SAKG,QALHA,SAKG;AAAA,MAJH9yB,IAIG,QAJHA,IAIG;AAAA,MAHH+yB,UAGG,QAHHA,UAGG;AAAA,MAFHC,eAEG,QAFHA,eAEG;AAAA,MADAp5B,KACA;;AACH,MAAMmG,EAAE,qCAA+Bb,UAA/B,CAAR;;AACA,MAAM+zB,UAAU,GAAG,SAAbA,UAAa;AAAA,WAAMn5B,QAAQ,EAAd;AAAA,GAAnB;;AACA,MAAM4H,aAAa,GAAG,SAAhBA,aAAgB,CAAErF,KAAF,EAAa;AAClC,QAAMyL,QAAQ,GAAGzL,KAAK,CAACiE,MAAN,CAAa3F,KAA9B;;AACA,QAAKmN,QAAQ,KAAK,EAAlB,EAAuB;AACtBmrB,gBAAU;AACV;AACA;;AACDn5B,YAAQ,CAAEue,MAAM,CAAEvQ,QAAF,CAAR,CAAR;AACA,GAPD;;AAQA,MAAMorB,kBAAkB,GAAGC,uDAAQ,CAAEx4B,KAAF,CAAR,GAAoBA,KAApB,GAA4Bq4B,eAAe,IAAI,EAA1E;AAEA,SACC,yEAAC,6CAAD;AACC,SAAK,EAAGv7B,KADT;AAEC,MAAE,EAAGsI,EAFN;AAGC,QAAI,EAAGC,IAHR;AAIC,aAAS,EAAGR,iDAAU,CAAE,0BAAF,EAA8BJ,SAA9B;AAJvB,KAMGyzB,UAAU,IAAI,yEAAC,0CAAD;AAAU,QAAI,EAAGA;AAAjB,IANjB,EAOC;AACC,aAAS,EAAC,kCADX;AAEC,MAAE,EAAG9yB,EAFN;AAGC,QAAI,EAAC,OAHN;AAIC,SAAK,EAAGmzB,kBAJT;AAKC,YAAQ,EAAGxxB,aALZ;AAMC,wBAAmB,CAAC,CAAE1B,IAAH,GAAUD,EAAE,GAAG,QAAf,GAA0BtH;AAN9C,KAOMmB,KAPN,EAPD,EAeGk5B,SAAS,IAAI,yEAAC,0CAAD;AAAU,QAAI,EAAGA;AAAjB,IAfhB,EAgBC;AACC,aAAS,EAAC,kCADX;AAEC,QAAI,EAAC,QAFN;AAGC,YAAQ,EAAGpxB,aAHZ;AAIC,kBAAajK,KAJd;AAKC,SAAK,EAAGkD;AALT,KAMMf,KANN,EAhBD,EAwBGm5B,UAAU,IACX,yEAAC,wCAAD;AAAQ,WAAO,EAAGE,UAAlB;AAA+B,YAAQ,EAAGt4B,KAAK,KAAKlC;AAApD,KACG2C,0DAAE,CAAE,OAAF,CADL,CAzBF,CADD;AAgCA;;AAEcwE,wIAAc,CAAEgzB,YAAF,CAA7B;;;;;;;;;;;;;;;;;;;;;;;;;AC5EA;;;AAGA;AACA;;AAEA,SAASQ,YAAT,OAAiD;AAAA,MAAxBh0B,SAAwB,QAAxBA,SAAwB;AAAA,MAAVxF,KAAU;;AAChD;AACA,MAAMy5B,qBAAqB,GAAG;AAC7BzpB,SAAK,EAAE,IADsB;AAE7BC,UAAM,EAAE,IAFqB;AAG7BZ,OAAG,EAAE,IAHwB;AAI7B7C,SAAK,EAAE,IAJsB;AAK7BsN,UAAM,EAAE,IALqB;AAM7BzN,QAAI,EAAE;AANuB,GAA9B;AASA,MAAMqtB,eAAe,GAAG,kCAAxB;AAEA,SACC,yEAAC,oDAAD;AACC,aAAS,EAAG9zB,iDAAU,CACrB,qCADqB,EAErBJ,SAFqB,CADvB;AAKC,iBAAa,EAAG;AACf6J,SAAG,EAAEzJ,iDAAU,CACd8zB,eADc,EAEd,sCAFc,CADA;AAKfltB,WAAK,EAAE5G,iDAAU,CAChB8zB,eADgB,EAEhB,wCAFgB,CALF;AASf5f,YAAM,EAAElU,iDAAU,CACjB8zB,eADiB,EAEjB,yCAFiB,CATH;AAafrtB,UAAI,EAAEzG,iDAAU,CACf8zB,eADe,EAEf,uCAFe;AAbD,KALjB;AAuBC,gBAAY,EAAG;AACdrqB,SAAG,EAAEoqB,qBADS;AAEdjtB,WAAK,EAAEitB,qBAFO;AAGd3f,YAAM,EAAE2f,qBAHM;AAIdptB,UAAI,EAAEotB;AAJQ;AAvBhB,KA6BMz5B,KA7BN,EADD;AAiCA;;AAEcw5B,2EAAf;;;;;;;;;;;;;;;;;;;;ACtDA;;;AAGA;AAEA;;;;AAGA;;AAEA,SAASG,iBAAT,OAAwE;AAAA,MAA1CC,YAA0C,QAA1CA,YAA0C;AAAA,MAA5BC,aAA4B,QAA5BA,aAA4B;AAAA,MAAbx0B,QAAa,QAAbA,QAAa;;AACvE,MAAKinB,2DAAQ,CAACC,KAAT,CAAgBlnB,QAAhB,MAA+B,CAApC,EAAwC;AACvC,WAAO,IAAP;AACA;;AACD,MAAMy0B,UAAU,GAAG;AAClBnF,iBAAa,EAAIkF,aAAa,GAAGD,YAAhB,GAA+B,GAAjC,GAAyC;AADtC,GAAnB;AAGA,SACC;AAAK,aAAS,EAAC;AAAf,KACC;AAAK,SAAK,EAAGE;AAAb,IADD,EAEGlO,uEAAY,CAAEvmB,QAAF,EAAY;AACzBG,aAAS,EAAEI,iDAAU,CAAE,wCAAF,EAA4CP,QAAQ,CAACrF,KAAT,CAAewF,SAA3D;AADI,GAAZ,CAFf,CADD;AAQA;;AAEcm0B,gFAAf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3BA;;;AAGA;AACA;AAEA;;;;AAGA;;IAEMI,O;;;;;AACL,qBAAc;AAAA;;AAAA;;AACb,sOAAU96B,SAAV;AAEA,UAAK+6B,UAAL,GAAkB,MAAKA,UAAL,CAAgB76B,IAAhB,2MAAlB;AACA,UAAK86B,qBAAL,GAA6B,MAAKA,qBAAL,CAA2B96B,IAA3B,2MAA7B;AAEA,UAAKye,MAAL,GAActT,oEAAS,EAAvB;AAEA,UAAK3K,KAAL,GAAa;AACZqQ,WAAK,EAAE,CADK;AAEZC,YAAM,EAAE;AAFI,KAAb;AARa;AAYb;;;;wCAEmB;AACnB,WAAK+pB,UAAL;AACA;;;yCAEoB;AACpB,WAAKA,UAAL;AACA;;;wCAEmB;AACnB,UAAI;AACH,eAAO,CAAC,CAAE,KAAKpc,MAAL,CAAYlS,OAAZ,CAAoBwuB,eAApB,CAAoCviB,IAA9C;AACA,OAFD,CAEE,OAAQnM,CAAR,EAAY;AACb,eAAO,KAAP;AACA;AACD;;;0CAEsB/I,K,EAAQ;AAC9B,UAAMmb,MAAM,GAAG,KAAKA,MAAL,CAAYlS,OAA3B,CAD8B,CAG9B;;AACA,UAAIwB,IAAI,GAAGzK,KAAK,CAACyK,IAAN,IAAc,EAAzB;;AACA,UAAK,aAAa,OAAOA,IAAzB,EAAgC;AAC/B,YAAI;AACHA,cAAI,GAAG6K,IAAI,CAACoiB,KAAL,CAAYjtB,IAAZ,CAAP;AACA,SAFD,CAEE,OAAQ1B,CAAR,EAAY,CAAE,CAHe,CAGd;;AACjB,OAT6B,CAW9B;;;AACA,UAAK,CAAEoS,MAAF,IAAYA,MAAM,CAACwc,aAAP,KAAyB33B,KAAK,CAAC6I,MAAhD,EAAyD;AACxD;AACA,OAd6B,CAgB9B;AACA;;;AAjB8B,kBAkBI4B,IAlBJ;AAAA,UAkBtBlM,MAlBsB,SAkBtBA,MAlBsB;AAAA,UAkBdgP,KAlBc,SAkBdA,KAlBc;AAAA,UAkBPC,MAlBO,SAkBPA,MAlBO;AAAA,wBAmBiB,KAAKtQ,KAnBtB;AAAA,UAmBf06B,QAnBe,eAmBtBrqB,KAnBsB;AAAA,UAmBGsqB,SAnBH,eAmBLrqB,MAnBK;;AAqB9B,UAAK,aAAajP,MAAb,KAAyBq5B,QAAQ,KAAKrqB,KAAb,IAAsBsqB,SAAS,KAAKrqB,MAA7D,CAAL,EAA6E;AAC5E,aAAK9O,QAAL,CAAe;AAAE6O,eAAK,EAALA,KAAF;AAASC,gBAAM,EAANA;AAAT,SAAf;AACA;AACD;;;iCAEY;AACZ,UAAK,CAAE,KAAKsqB,iBAAL,EAAP,EAAkC;AACjC;AACA;;AAED,UAAM5iB,IAAI,GAAG,KAAKiG,MAAL,CAAYlS,OAAZ,CAAoBwuB,eAApB,CAAoCviB,IAAjD;;AACA,UAAK,SAASA,IAAI,CAACgW,YAAL,CAAmB,iCAAnB,CAAd,EAAuE;AACtE;AACA;;AAED,UAAM6M,kBAAkB,2kEAAxB;AAyDA,UAAMxwB,KAAK,4kBAAX,CAnEY,CA0FZ;AACA;AACA;AACA;;AACA,UAAMywB,OAAO,GACZ;AAAM,YAAI,EAAGrkB,QAAQ,CAACskB,eAAT,CAAyBC,IAAtC;AAA6C,iBAAS,EAAG,KAAK36B,KAAL,CAAWwH;AAApE,SACC,uFACC,wFAAS,KAAKxH,KAAL,CAAWuc,KAApB,CADD,EAEC;AAAO,+BAAuB,EAAG;AAAEqe,gBAAM,EAAE5wB;AAAV;AAAjC,QAFD,CADD,EAKC;AAAM,2CAAgC,iCAAtC;AAAwE,iBAAS,EAAG,KAAKhK,KAAL,CAAWwH;AAA/F,SACC;AAAK,+BAAuB,EAAG;AAAEozB,gBAAM,EAAE,KAAK56B,KAAL,CAAWQ;AAArB;AAA/B,QADD,EAEC;AAAQ,YAAI,EAAC,iBAAb;AAA+B,+BAAuB,EAAG;AAAEo6B,gBAAM,EAAEJ;AAAV;AAAzD,QAFD,EAGK,KAAKx6B,KAAL,CAAW66B,OAAX,IAAsB,KAAK76B,KAAL,CAAW66B,OAAX,CAAmB54B,GAAnB,CACzB,UAAE64B,GAAF;AAAA,eAAW;AAAQ,aAAG,EAAGA,GAAd;AAAoB,aAAG,EAAGA;AAA1B,UAAX;AAAA,OADyB,CAH3B,CALD,CADD,CA9FY,CA8GZ;AACA;AACA;;AACA,UAAMC,cAAc,GAAG,KAAKnd,MAAL,CAAYlS,OAAZ,CAAoB0uB,aAApB,CAAkChkB,QAAzD;AACA2kB,oBAAc,CAACj8B,IAAf;AACAi8B,oBAAc,CAACC,KAAf,CAAsB,oBAAoBv6B,yEAAc,CAAEg6B,OAAF,CAAxD;AACAM,oBAAc,CAACre,KAAf;AACA;;;6BASQ;AAAA,UACAH,KADA,GACU,KAAKvc,KADf,CACAuc,KADA;AAGR,aACC,yEAAC,yDAAD;AACC,iBAAS,EAAG,KAAKqB,MADlB;AAEC,aAAK,EAAGrB,KAFT;AAGC,iBAAS,EAAC,oBAHX;AAIC,eAAO,EAAC,oDAJT;AAKC,cAAM,EAAG,KAAKyd,UALf;AAMC,aAAK,EAAGvrB,IAAI,CAACwsB,IAAL,CAAW,KAAKt7B,KAAL,CAAWqQ,KAAtB,CANT;AAOC,cAAM,EAAGvB,IAAI,CAACwsB,IAAL,CAAW,KAAKt7B,KAAL,CAAWsQ,MAAtB;AAPV,QADD;AAUA;;;wBApByB;AACzB,aAAO;AACNzP,YAAI,EAAE,EADA;AAEN+b,aAAK,EAAE;AAFD,OAAP;AAIA;;;;EArLoB1W,4D;;AAuMtBk0B,OAAO,GAAG7b,2EAAgB,CAAE;AAC3B8M,SAAO,EAAE;AADkB,CAAF,CAAhB,CAEL+O,OAFK,CAAV;AAIeA,sEAAf;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtNA;;;AAGA;AAEA;;;;;;;;;;;;AAWO,SAASmB,yBAAT,GAGE;AAAA,iFAAL,EAAK;AAAA,+BAFRC,YAEQ;AAAA,MAFRA,YAEQ,kCAFO/kB,QAEP;AAAA,4BADR5Q,SACQ;AAAA,MADRA,SACQ,+BADI,YACJ;;AACR,MAAI41B,WAAW,GAAG,CAAlB;AAEA;;;;;;;;AAOA,MAAIC,iBAAiB,GAAG,CAAxB;AAEA;;;;;;AAKA,WAASC,SAAT,CAAoBC,MAApB,EAA6B;AAC5B,QAAMC,gBAAgB,GAAGL,YAAY,CAACK,gBAAb,IAAiCL,YAAY,CAACxjB,IAAvE;;AAEA,QAAK4jB,MAAL,EAAc;AACbF,uBAAiB,GAAGG,gBAAgB,CAACC,SAArC;AACA;;AAED,QAAMC,UAAU,GAAGH,MAAM,GAAG,KAAH,GAAW,QAApC;AACAC,oBAAgB,CAAC/jB,SAAjB,CAA4BikB,UAA5B,EAA0Cl2B,SAA1C,EAR4B,CAU5B;;AACA21B,gBAAY,CAACT,eAAb,CAA6BjjB,SAA7B,CAAwCikB,UAAxC,EAAsDl2B,SAAtD;;AAEA,QAAK,CAAE+1B,MAAP,EAAgB;AACfC,sBAAgB,CAACC,SAAjB,GAA6BJ,iBAA7B;AACA;AACD;AAED;;;;;;;;;AAOA,WAASM,WAAT,GAAuB;AACtB,QAAKP,WAAW,KAAK,CAArB,EAAyB;AACxBE,eAAS,CAAE,IAAF,CAAT;AACA;;AAED,MAAEF,WAAF;AACA;AAED;;;;;;;;AAMA,WAASQ,WAAT,GAAuB;AACtB,QAAKR,WAAW,KAAK,CAArB,EAAyB;AACxBE,eAAS,CAAE,KAAF,CAAT;AACA;;AAED,MAAEF,WAAF;AACA;;AAED;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;;AACC;;;AADD,4CAIqB;AACnBO,qBAAW;AACX;AACD;;;;AAPD;AAAA;AAAA,+CAUwB;AACtBC,qBAAW;AACX;AAED;;;;;;AAdD;AAAA;AAAA,iCAmBU;AACR,iBAAO,IAAP;AACA;AArBF;;AAAA;AAAA,MAAgC/1B,4DAAhC;AAAA;AAuBA;AAEcq1B,wFAAyB,EAAxC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5GA;;;AAGA;AAEA;;;;AAGA;AAEA;;;;AAGA;;AAEA,SAASW,aAAT,OASI;AAAA,MARHz1B,IAQG,QARHA,IAQG;AAAA,MAPHd,UAOG,QAPHA,UAOG;AAAA,MANHzH,KAMG,QANHA,KAMG;AAAA,2BALHshB,QAKG;AAAA,MALHA,QAKG,8BALQ,KAKR;AAAA,MAJHjf,QAIG,QAJHA,QAIG;AAAA,0BAHH5C,OAGG;AAAA,MAHHA,OAGG,6BAHO,EAGP;AAAA,MAFHkI,SAEG,QAFHA,SAEG;AAAA,MADAxF,KACA;;AACH,MAAMmG,EAAE,sCAAgCb,UAAhC,CAAR;;AACA,MAAMwC,aAAa,GAAG,SAAhBA,aAAgB,CAAErF,KAAF,EAAa;AAClC,QAAK0c,QAAL,EAAgB;AACf,UAAM2c,eAAe,GAAG,6FAAKr5B,KAAK,CAACiE,MAAN,CAAapJ,OAAlB,EAA4BkU,MAA5B,CAAoC;AAAA,YAAIwC,QAAJ,SAAIA,QAAJ;AAAA,eAAoBA,QAApB;AAAA,OAApC,CAAxB;;AACA,UAAM+nB,SAAS,GAAGD,eAAe,CAAC75B,GAAhB,CAAqB;AAAA,YAAIlB,KAAJ,SAAIA,KAAJ;AAAA,eAAiBA,KAAjB;AAAA,OAArB,CAAlB;AACAb,cAAQ,CAAE67B,SAAF,CAAR;AACA;AACA;;AACD77B,YAAQ,CAAEuC,KAAK,CAACiE,MAAN,CAAa3F,KAAf,CAAR;AACA,GARD,CAFG,CAYH;;AAEA;;;AACA,SAAO,CAAEg4B,sDAAO,CAAEz7B,OAAF,CAAT,IACN,yEAAC,qDAAD;AAAa,SAAK,EAAGO,KAArB;AAA6B,MAAE,EAAGsI,EAAlC;AAAuC,QAAI,EAAGC,IAA9C;AAAqD,aAAS,EAAGZ;AAAjE,KACC;AACC,MAAE,EAAGW,EADN;AAEC,aAAS,EAAC,kCAFX;AAGC,YAAQ,EAAG2B,aAHZ;AAIC,wBAAmB,CAAC,CAAE1B,IAAH,aAAcD,EAAd,cAA4BtH,SAJhD;AAKC,YAAQ,EAAGsgB;AALZ,KAMMnf,KANN,GAQG1C,OAAO,CAAC2E,GAAR,CAAa,UAAEtE,MAAF,EAAU+G,KAAV;AAAA,WACd;AACC,SAAG,YAAO/G,MAAM,CAACE,KAAd,cAAyBF,MAAM,CAACoD,KAAhC,cAA2C2D,KAA3C,CADJ;AAEC,WAAK,EAAG/G,MAAM,CAACoD;AAFhB,OAIGpD,MAAM,CAACE,KAJV,CADc;AAAA,GAAb,CARH,CADD,CADD;AAqBA;AACA;;AAEcmI,wIAAc,CAAE61B,aAAF,CAA7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/DA;;;AAGA;AAEA;;;;AAGA;AAIA;AACA;AACA;AAEA;;;;AAGA;AACA;AAEO,SAASG,YAAT,CAAuBC,KAAvB,EAAqE;AAAA,MAAvC/mB,UAAuC,uEAA1B,IAA0B;AAAA,MAApBgnB,YAAoB,uEAAL,EAAK;AAC3E,SAAOC,oEAAY,iCAA4BF,KAA5B;AAClBnL,WAAO,EAAE;AADS,KAEb,SAAS5b,UAAT,GAAsB;AAAEA,cAAU,EAAVA;AAAF,GAAtB,GAAuC,EAF1B,EAGfgnB,YAHe,EAAnB;AAKA;AAEM,IAAME,gBAAb;AAAA;AAAA;AAAA;;AACC,4BAAap8B,KAAb,EAAqB;AAAA;;AAAA;;AACpB,8OAAOA,KAAP;AACA,UAAKL,KAAL,GAAa;AACZ08B,cAAQ,EAAE;AADE,KAAb;AAFoB;AAKpB;;AANF;AAAA;AAAA,wCAQqB;AACnB,WAAKC,cAAL,GAAsB,IAAtB;AACA,WAAKC,KAAL,CAAY,KAAKv8B,KAAjB;AACA;AAXF;AAAA;AAAA,2CAawB;AACtB,WAAKs8B,cAAL,GAAsB,KAAtB;AACA;AAfF;AAAA;AAAA,uCAiBqB34B,SAjBrB,EAiBiC;AAC/B,UAAK,CAAEsX,sDAAO,CAAEtX,SAAF,EAAa,KAAK3D,KAAlB,CAAd,EAA0C;AACzC,aAAKu8B,KAAL,CAAY,KAAKv8B,KAAjB;AACA;AACD;AArBF;AAAA;AAAA,0BAuBQA,KAvBR,EAuBgB;AAAA;;AACd,UAAK,SAAS,KAAKL,KAAL,CAAW08B,QAAzB,EAAoC;AACnC,aAAKl7B,QAAL,CAAe;AAAEk7B,kBAAQ,EAAE;AAAZ,SAAf;AACA;;AAHa,UAINJ,KAJM,GAI0Cj8B,KAJ1C,CAINi8B,KAJM;AAAA,8BAI0Cj8B,KAJ1C,CAICkV,UAJD;AAAA,UAICA,UAJD,kCAIc,IAJd;AAAA,gCAI0ClV,KAJ1C,CAIoBk8B,YAJpB;AAAA,UAIoBA,YAJpB,oCAImC,EAJnC;AAMd,UAAM5qB,IAAI,GAAG0qB,YAAY,CAAEC,KAAF,EAAS/mB,UAAT,EAAqBgnB,YAArB,CAAzB;AAEA,aAAOM,2DAAQ,CAAE;AAAElrB,YAAI,EAAJA;AAAF,OAAF,CAAR,CACLxP,IADK,CACC,UAAEu6B,QAAF,EAAgB;AACtB,YAAK,MAAI,CAACC,cAAL,IAAuBD,QAAvB,IAAmCA,QAAQ,CAACI,QAAjD,EAA4D;AAC3D,gBAAI,CAACt7B,QAAL,CAAe;AAAEk7B,oBAAQ,EAAEA,QAAQ,CAACI;AAArB,WAAf;AACA;AACD,OALK,EAMLC,KANK,CAME,UAAEC,KAAF,EAAa;AACpB,YAAK,MAAI,CAACL,cAAV,EAA2B;AAC1B,gBAAI,CAACn7B,QAAL,CAAe;AAAEk7B,oBAAQ,EAAE;AAC1BM,mBAAK,EAAE,IADmB;AAE1BC,sBAAQ,EAAED,KAAK,CAAC3R;AAFU;AAAZ,WAAf;AAIA;AACD,OAbK,CAAP;AAcA;AA7CF;AAAA;AAAA,6BA+CU;AACR,UAAMqR,QAAQ,GAAG,KAAK18B,KAAL,CAAW08B,QAA5B;;AACA,UAAK,CAAEA,QAAP,EAAkB;AACjB,eACC,yEAAC,qDAAD,QAAa,yEAAC,iDAAD,OAAb,CADD;AAGA,OAJD,MAIO,IAAKA,QAAQ,CAACM,KAAd,EAAsB;AAC5B;AACA,YAAME,YAAY,GAAGv7B,+DAAO,CAAEE,0DAAE,CAAE,yBAAF,CAAJ,EAAmC66B,QAAQ,CAACO,QAA5C,CAA5B;AACA,eACC,yEAAC,qDAAD,QAAeC,YAAf,CADD;AAGA,OANM,MAMA,IAAK,CAAER,QAAQ,CAAC3+B,MAAhB,EAAyB;AAC/B,eACC,yEAAC,qDAAD,QAAe8D,0DAAE,CAAE,mBAAF,CAAjB,CADD;AAGA;;AAED,aACC,yEAAC,0DAAD;AAAS,WAAG,EAAC;AAAb,SAAsB66B,QAAtB,CADD;AAGA;AApEF;;AAAA;AAAA,EAAsCx2B,4DAAtC;AAuEeu2B,+EAAf;;;;;;;;;;;;;;;;;;;;ACrGA;;;AAGA;;AAEA,SAASU,QAAT,OAA6C;AAAA,MAAxB5R,QAAwB,QAAxBA,QAAwB;AAAA,MAAd1lB,SAAc,QAAdA,SAAc;;AAC5C,MAAK,CAAE0lB,QAAP,EAAkB;AACjB,WAAO,IAAP;AACA;;AAED,MAAI6R,WAAJ;AACA,MAAIC,SAAJ;;AAEA,MAAK3R,uDAAQ,CAAEH,QAAF,CAAb,EAA4B;AAC3B6R,eAAW,GAAG7R,QAAd;AACA;;AAED,MAAK+R,uDAAQ,CAAE/R,QAAF,CAAb,EAA4B;AAC3B6R,eAAW,GAAG7R,QAAQ,CAAC7L,OAAvB;AACA2d,aAAS,GAAG9R,QAAQ,CAAC8R,SAArB;AACA;;AAED,SACC;AAAM,aAAS,EAAGx3B,SAAlB;AAA8B,kBAAaw3B;AAA3C,KACGD,WADH,CADD;AAKA;;AAEcD,uEAAf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7BA;;;AAGA;AAEA;;;;AAGA;AAEA,IAAII,WAAW,GAAG,CAAlB;;IAEMC,I;;;;;AACL,kBAAc;AAAA;;AAAA;;AACb,mOAAUl+B,SAAV;AACA,UAAKm+B,UAAL,GAAkB,EAAEF,WAApB;AAFa;AAGb;;;;wCAEmB;AAAA,kCACa,KAAKpM,OADlB,CACXuM,YADW;AAAA,UACXA,YADW,sCACItyB,2CADJ;AAGnBsyB,kBAAY,CAAE,KAAKr9B,KAAL,CAAW+J,IAAb,EAAmB,IAAnB,CAAZ;AACA;;;0CAEqB;AACrB,UAAK,CAAE,KAAKqzB,UAAZ,EAAyB;AACxB,aAAKA,UAAL,GAAkB,EAAEF,WAApB;AACA;;AAHoB,kCAIM,KAAKpM,OAJX,CAIbsE,OAJa;AAAA,UAIbA,OAJa,sCAIHrqB,2CAJG;AAKrB,UAAMuyB,IAAI,GAAGlI,OAAO,CAAE,KAAKp1B,KAAL,CAAW+J,IAAb,CAApB;;AACA,UAAKuzB,IAAI,IAAI,CAAEA,IAAI,CAACt9B,KAAL,CAAWu9B,gBAA1B,EAA6C;AAC5CD,YAAI,CAACnU,WAAL;AACA;AACD;;;2CAEsB;AAAA,kCACY,KAAK2H,OADjB,CACd0M,cADc;AAAA,UACdA,cADc,sCACGzyB,2CADH;AAGtByyB,oBAAc,CAAE,KAAKx9B,KAAL,CAAW+J,IAAb,EAAmB,IAAnB,CAAd;AACA;;;uCAEmBpG,S,EAAY;AAAA,UACvBoG,IADuB,GACd,KAAK/J,KADS,CACvB+J,IADuB;AAAA,0BAK3B,KAAK+mB,OALsB;AAAA,iDAG9B0M,cAH8B;AAAA,UAG9BA,cAH8B,uCAGbzyB,2CAHa;AAAA,iDAI9BsyB,YAJ8B;AAAA,UAI9BA,YAJ8B,uCAIftyB,2CAJe;;AAO/B,UAAKpH,SAAS,CAACoG,IAAV,KAAmBA,IAAxB,EAA+B;AAC9ByzB,sBAAc,CAAE75B,SAAS,CAACoG,IAAZ,EAAkB,IAAlB,CAAd;AACAszB,oBAAY,CAAEtzB,IAAF,EAAQ,IAAR,CAAZ;AACA;AACD;;;sCAEiB;AACjB,WAAKqzB,UAAL,GAAkB,IAAlB;AACA;;;6BAEQ;AAAA,mCACmB,KAAKtM,OADxB,CACAsE,OADA;AAAA,UACAA,OADA,uCACUrqB,2CADV;AAAA,UAEAhB,IAFA,GAES,KAAK/J,KAFd,CAEA+J,IAFA;AAAA,UAGF1E,QAHE,GAGW,KAAKrF,KAHhB,CAGFqF,QAHE;AAIR,UAAMi4B,IAAI,GAAGlI,OAAO,CAAErrB,IAAF,CAApB;;AAEA,UAAK,CAAEuzB,IAAF,IAAU,CAAEA,IAAI,CAACt9B,KAAL,CAAWu9B,gBAA5B,EAA+C;AAC9C,eAAO,IAAP;AACA,OARO,CAUR;;;AACA,UAAKE,yDAAU,CAAEp4B,QAAF,CAAf,EAA8B;AAC7BA,gBAAQ,GAAGA,QAAQ,CAAEi4B,IAAI,CAACt9B,KAAL,CAAW09B,SAAb,CAAnB;AACA;;AAED,aAAO7N,uEAAY,CAAExqB,QAAF,EAAYi4B,IAAI,CAACx9B,IAAjB,CAAnB;AACA;;;;EA9DiB+F,4D;;AAiEnBs3B,IAAI,CAAC7H,YAAL,GAAoB;AACnBF,SAAO,EAAErqB,2CADU;AAEnBsyB,cAAY,EAAEtyB,2CAFK;AAGnByyB,gBAAc,EAAEzyB,2CAAIA;AAHD,CAApB;AAMeoyB,mEAAf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnFA;;;AAGA;AACA;AACA;AAEA;AACA;AACA;AAEO,SAASQ,cAAT,CAAyB5zB,IAAzB,EAAgC;AACtC,MAAM6zB,aAAa,GAAG,SAAhBA,aAAgB,CAAE59B,KAAF;AAAA,WAAa,yEAAC,6CAAD;AAAM,UAAI,EAAG+J;AAAb,OAAyB/J,KAAzB,EAAb;AAAA,GAAtB;;AACA49B,eAAa,CAACC,WAAd,GAA4B9zB,IAAI,GAAG,MAAnC;;AAEA,MAAM+zB,aAAa,GAAG,SAAhBA,aAAgB,CAAE99B,KAAF;AAAA,WAAa,yEAAC,6CAAD;AAAM,UAAI,EAAG+J;AAAb,OAAyB/J,KAAzB,EAAb;AAAA,GAAtB;;AACA89B,eAAa,CAACD,WAAd,GAA4B9zB,IAAI,GAAG,MAAnC;AAEA,SAAO;AACNozB,QAAI,EAAES,aADA;AAENrI,QAAI,EAAEuI;AAFA,GAAP;AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtBD;;;AAGA;AAEA;;;;AAGA;;IAEMC,gB;;;;;AACL,8BAAc;AAAA;;AAAA;;AACb,+OAAU9+B,SAAV;AAEA,UAAK++B,YAAL,GAAoB,MAAKA,YAAL,CAAkB7+B,IAAlB,2MAApB;AACA,UAAKk+B,YAAL,GAAoB,MAAKA,YAAL,CAAkBl+B,IAAlB,2MAApB;AACA,UAAK8+B,cAAL,GAAsB,MAAKA,cAAL,CAAoB9+B,IAApB,2MAAtB;AACA,UAAKq+B,cAAL,GAAsB,MAAKA,cAAL,CAAoBr+B,IAApB,2MAAtB;AACA,UAAKi2B,OAAL,GAAe,MAAKA,OAAL,CAAaj2B,IAAb,2MAAf;AACA,UAAK++B,QAAL,GAAgB,MAAKA,QAAL,CAAc/+B,IAAd,2MAAhB;AAEA,UAAKg/B,KAAL,GAAa,EAAb;AACA,UAAKC,KAAL,GAAa,EAAb;AAXa;AAYb;;;;sCAEiB;AACjB,aAAOC,mDAAI,CAAE,IAAF,EAAQ,CAClB,cADkB,EAElB,cAFkB,EAGlB,gBAHkB,EAIlB,gBAJkB,EAKlB,SALkB,EAMlB,UANkB,CAAR,CAAX;AAQA;;;iCAEat0B,I,EAAMuzB,I,EAAO;AAC1B,WAAKa,KAAL,CAAYp0B,IAAZ,IAAqBuzB,IAArB;AACA,WAAKgB,gBAAL,CAAuBv0B,IAAvB,EAF0B,CAI1B;AACA;;AACA,WAAKw0B,eAAL,CAAsBx0B,IAAtB;AACA;;;iCAEaA,I,EAAMy0B,Q,EAAW;AAC9B,WAAKJ,KAAL,CAAYr0B,IAAZ,iGACM,KAAKq0B,KAAL,CAAYr0B,IAAZ,KAAsB,EAD5B,UAECy0B,QAFD;AAIA,WAAKD,eAAL,CAAsBx0B,IAAtB;AACA;;;mCAEeA,I,EAAO;AACtB,aAAO,KAAKo0B,KAAL,CAAYp0B,IAAZ,CAAP;AACA,WAAKu0B,gBAAL,CAAuBv0B,IAAvB;AACA;;;mCAEeA,I,EAAMy0B,Q,EAAW;AAChC,WAAKJ,KAAL,CAAYr0B,IAAZ,IAAqB00B,sDAAO,CAC3B,KAAKL,KAAL,CAAYr0B,IAAZ,CAD2B,EAE3By0B,QAF2B,CAA5B;AAIA,WAAKE,mBAAL,CAA0B30B,IAA1B;AACA,WAAKw0B,eAAL,CAAsBx0B,IAAtB;AACA;;;4BAEQA,I,EAAO;AACf,aAAO,KAAKo0B,KAAL,CAAYp0B,IAAZ,CAAP;AACA;;;6BAESA,I,EAAO;AAChB,aAAO40B,qDAAM,CAAE,KAAKP,KAAL,CAAYr0B,IAAZ,CAAF,EAAsB,YAAtB,CAAb;AACA;;;wCAEoBA,I,EAAO;AAC3BuL,4DAAO,CAAE,KAAK8oB,KAAL,CAAYr0B,IAAZ,CAAF,EAAsB,UAAEy0B,QAAF,EAAgB;AAC5CA,gBAAQ,CAACI,eAAT;AACA,OAFM,CAAP;AAGA;;;qCAEiB70B,I,EAAO;AACxBuL,4DAAO,CAAE,KAAK8oB,KAAL,CAAYr0B,IAAZ,CAAF,EAAsB,UAAEy0B,QAAF,EAAgB;AAC5CA,gBAAQ,CAACrV,WAAT;AACA,OAFM,CAAP;AAGA;;;oCAEgBpf,I,EAAO;AACvB,UAAMuzB,IAAI,GAAG,KAAKlI,OAAL,CAAcrrB,IAAd,CAAb;;AAEA,UAAKuzB,IAAL,EAAY;AACXA,YAAI,CAACnU,WAAL;AACA;AACD;;;6BAEQ;AACR,aAAO,KAAKnpB,KAAL,CAAWqF,QAAlB;AACA;;;;EAvF6BQ,4D;;AA0F/Bk4B,gBAAgB,CAACc,iBAAjB,GAAqC;AACpCb,cAAY,EAAEjzB,2CADsB;AAEpCkzB,gBAAc,EAAElzB,2CAFoB;AAGpCsyB,cAAY,EAAEtyB,2CAHsB;AAIpCyyB,gBAAc,EAAEzyB,2CAJoB;AAKpCqqB,SAAO,EAAErqB,2CAL2B;AAMpCmzB,UAAQ,EAAEnzB,2CAAIA;AANsB,CAArC;AASegzB,+EAAf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7GA;;;AAGA;AAQA;;;;AAGA;;IAQMxI,I;;;;;AACL,kBAAc;AAAA;;AAAA;;AACb,mOAAUt2B,SAAV;AAEA,UAAKC,QAAL,GAAgB,MAAKA,QAAL,CAAcC,IAAd,2MAAhB;AAHa;AAIb;;;;wCAEmB;AAAA,kCACa,KAAK2xB,OADlB,CACXkN,YADW;AAAA,UACXA,YADW,sCACIjzB,2CADJ;AAGnBizB,kBAAY,CAAE,KAAKh+B,KAAL,CAAW+J,IAAb,EAAmB,IAAnB,CAAZ;AACA;;;2CAEsB;AAAA,kCACY,KAAK+mB,OADjB,CACdmN,cADc;AAAA,UACdA,cADc,sCACGlzB,2CADH;AAGtBkzB,oBAAc,CAAE,KAAKj+B,KAAL,CAAW+J,IAAb,EAAmB,IAAnB,CAAd;AACA;;;uCAEmBpG,S,EAAY;AAAA,UACvBoG,IADuB,GACd,KAAK/J,KADS,CACvB+J,IADuB;AAAA,0BAK3B,KAAK+mB,OALsB;AAAA,iDAG9BmN,cAH8B;AAAA,UAG9BA,cAH8B,uCAGblzB,2CAHa;AAAA,iDAI9BizB,YAJ8B;AAAA,UAI9BA,YAJ8B,uCAIfjzB,2CAJe;;AAO/B,UAAKpH,SAAS,CAACoG,IAAV,KAAmBA,IAAxB,EAA+B;AAC9Bk0B,sBAAc,CAAEt6B,SAAS,CAACoG,IAAZ,CAAd;AACAi0B,oBAAY,CAAEj0B,IAAF,EAAQ,IAAR,CAAZ;AACA;AACD;;;6BAESjK,I,EAAO;AAChB,WAAKA,IAAL,GAAYA,IAAZ;AACA;;;6BAEQ;AAAA,wBAC6D,KAAKE,KADlE;AAAA,UACAqF,QADA,eACAA,QADA;AAAA,UACU0E,IADV,eACUA,IADV;AAAA,8CACgBwzB,gBADhB;AAAA,UACgBA,gBADhB,sCACmC,KADnC;AAAA,8CAC0CG,SAD1C;AAAA,UAC0CA,SAD1C,sCACsD,EADtD;AAAA,kCAEoB,KAAK5M,OAFzB,CAEAoN,QAFA;AAAA,UAEAA,QAFA,sCAEWnzB,2CAFX;;AAIR,UAAKwyB,gBAAL,EAAwB;AACvB,eAAO;AAAK,aAAG,EAAG,KAAKr+B;AAAhB,UAAP;AACA;;AAED,UAAMk/B,KAAK,GAAGn8B,kDAAG,CAAEi8B,QAAQ,CAAEn0B,IAAF,CAAV,EAAoB,UAAE+0B,IAAF,EAAY;AAChD,YAAMC,OAAO,GAAGD,IAAI,CAAC1B,UAArB;AACA,YAAM4B,YAAY,GAAGvB,yDAAU,CAAEqB,IAAI,CAAC9+B,KAAL,CAAWqF,QAAb,CAAV,GAAoCy5B,IAAI,CAAC9+B,KAAL,CAAWqF,QAAX,CAAqBq4B,SAArB,CAApC,GAAuEoB,IAAI,CAAC9+B,KAAL,CAAWqF,QAAvG;AAEA,eAAOinB,2DAAQ,CAACrqB,GAAT,CAAc+8B,YAAd,EAA4B,UAAEvmB,KAAF,EAASwmB,UAAT,EAAyB;AAC3D,cAAK,CAAExmB,KAAF,IAAW4S,uDAAQ,CAAE5S,KAAF,CAAxB,EAAoC;AACnC,mBAAOA,KAAP;AACA;;AAED,cAAMymB,QAAQ,aAAOH,OAAP,gBAAsBtmB,KAAK,CAACrW,GAAN,IAAa68B,UAAnC,CAAd;AACA,iBAAOrT,uEAAY,CAAEnT,KAAF,EAAS;AAAErW,eAAG,EAAE88B;AAAP,WAAT,CAAnB;AACA,SAPM,CAAP;AAQA,OAZgB,CAAH,CAYV1tB,MAZU,EAab;AACA;AACA;AACA2tB,2DAAM,CAAEC,iEAAF,CAhBO,CAAd;AAmBA,aACC,yEAAC,2DAAD,QACG3B,yDAAU,CAAEp4B,QAAF,CAAV,GAAyBA,QAAQ,CAAE+4B,KAAF,CAAjC,GAA6CA,KADhD,CADD;AAKA;;;;EApEiBv4B,4D;;AAuEnB0vB,IAAI,CAACD,YAAL,GAAoB;AACnB0I,cAAY,EAAEjzB,2CADK;AAEnBkzB,gBAAc,EAAElzB,2CAFG;AAGnBmzB,UAAQ,EAAEnzB,2CAAIA;AAHK,CAApB;AAMewqB,mEAAf;;;;;;;;;;;;;;;;;;ACnGe,SAAS8J,OAAT,GAAmB;AACjC,SAAO;AAAM,aAAS,EAAC;AAAhB,IAAP;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACFD;;;AAGA;AAEA;;;;AAGA;AACA;AAEA;;;;AAGA;;AAEA,IAAMC,SAAS,GAAG,SAAZA,SAAY;AAAA,MAAIC,KAAJ,QAAIA,KAAJ;AAAA,MAAWljB,OAAX,QAAWA,OAAX;AAAA,MAAoBhX,QAApB,QAAoBA,QAApB;AAAA,MAA8B2O,QAA9B,QAA8BA,QAA9B;AAAA,MAA2Cid,IAA3C;;AAAA,SACjB;AAAQ,QAAI,EAAC,KAAb;AACC,YAAQ,EAAGjd,QAAQ,GAAG,IAAH,GAAU,CAAC,CAD/B;AAEC,qBAAgBA,QAFjB;AAGC,MAAE,EAAGurB,KAHN;AAIC,WAAO,EAAGljB;AAJX,KAKM4U,IALN,GAOG5rB,QAPH,CADiB;AAAA,CAAlB;;IAYMm6B,Q;;;;;AACL,sBAAc;AAAA;;AAAA;;AACb,uOAAUvgC,SAAV;AADa,sBAEoB,MAAKe,KAFzB;AAAA,QAELy/B,IAFK,eAELA,IAFK;AAAA,QAECC,cAFD,eAECA,cAFD;AAIb,UAAKlZ,WAAL,GAAmB,MAAKA,WAAL,CAAiBrnB,IAAjB,2MAAnB;AACA,UAAKuxB,UAAL,GAAkB,MAAKA,UAAL,CAAgBvxB,IAAhB,2MAAlB;AAEA,UAAKQ,KAAL,GAAa;AACZqU,cAAQ,EAAE0rB,cAAc,KAAMD,IAAI,CAAC/hC,MAAL,GAAc,CAAd,GAAkB+hC,IAAI,CAAE,CAAF,CAAJ,CAAU11B,IAA5B,GAAmC,IAAzC;AADZ,KAAb;AAPa;AAUb;;;;gCAEY41B,M,EAAS;AAAA,iCACO,KAAK3/B,KADZ,CACbgmB,QADa;AAAA,UACbA,QADa,qCACFjb,2CADE;AAErB,WAAK5J,QAAL,CAAe;AACd6S,gBAAQ,EAAE2rB;AADI,OAAf;AAGA3Z,cAAQ,CAAE2Z,MAAF,CAAR;AACA;;;+BAEWV,U,EAAYxmB,K,EAAQ;AAC/BA,WAAK,CAACyG,KAAN;AACA;;;6BAEQ;AAAA;;AAAA,UACAlL,QADA,GACa,KAAKrU,KADlB,CACAqU,QADA;AAAA,yBAQJ,KAAKhU,KARD;AAAA,+CAGP4/B,WAHO;AAAA,UAGPA,WAHO,sCAGO,WAHP;AAAA,UAIPp6B,SAJO,gBAIPA,SAJO;AAAA,UAKPF,UALO,gBAKPA,UALO;AAAA,+CAMP0rB,WANO;AAAA,UAMPA,WANO,sCAMO,YANP;AAAA,UAOPyO,IAPO,gBAOPA,IAPO;AAUR,UAAMI,WAAW,GAAGr7B,mDAAI,CAAEi7B,IAAF,EAAQ;AAAE11B,YAAI,EAAEiK;AAAR,OAAR,CAAxB;AACA,UAAM8rB,UAAU,GAAGx6B,UAAU,GAAG,GAAb,GAAmBu6B,WAAW,CAAC91B,IAAlD;AAEA,aACC;AAAK,iBAAS,EAAGvE;AAAjB,SACC,yEAAC,mEAAD;AACC,YAAI,EAAC,SADN;AAEC,mBAAW,EAAGwrB,WAFf;AAGC,kBAAU,EAAG,KAAKN,UAHnB;AAIC,iBAAS,EAAC;AAJX,SAMG+O,IAAI,CAACx9B,GAAL,CAAU,UAAE89B,GAAF;AAAA,eACX,yEAAC,SAAD;AAAW,mBAAS,YAAOA,GAAG,CAACv6B,SAAX,cAA0Bu6B,GAAG,CAACh2B,IAAJ,KAAaiK,QAAb,GAAwB4rB,WAAxB,GAAsC,EAAhE,CAApB;AACC,eAAK,EAAGt6B,UAAU,GAAG,GAAb,GAAmBy6B,GAAG,CAACh2B,IADhC;AAEC,2BAAgBzE,UAAU,GAAG,GAAb,GAAmBy6B,GAAG,CAACh2B,IAAvB,GAA8B,OAF/C;AAGC,kBAAQ,EAAGg2B,GAAG,CAACh2B,IAAJ,KAAaiK,QAHzB;AAIC,aAAG,EAAG+rB,GAAG,CAACh2B,IAJX;AAKC,iBAAO,EAAGwD,sDAAO,CAAE,MAAI,CAACiZ,WAAP,EAAoBuZ,GAAG,CAACh2B,IAAxB;AALlB,WAOGg2B,GAAG,CAACxjB,KAPP,CADW;AAAA,OAAV,CANH,CADD,EAmBGsjB,WAAW,IACZ;AAAK,2BAAkBC,UAAvB;AACC,YAAI,EAAC,UADN;AAEC,UAAE,EAAGA,UAAU,GAAG,OAFnB;AAGC,iBAAS,EAAC,mCAHX;AAIC,gBAAQ,EAAC;AAJV,SAMG,KAAK9/B,KAAL,CAAWqF,QAAX,CAAqBw6B,WAArB,CANH,CApBF,CADD;AAgCA;;;;EAtEqBh6B,4D;;AAyERG,yIAAc,CAAEw5B,QAAF,CAA7B;;;;;;;;;;;;;;;;;;;;;;;;;ACrGA;;;AAGA;AAEA;;;;AAGA;;AAEA,SAASQ,WAAT,OAAyG;AAAA,MAAjFniC,KAAiF,QAAjFA,KAAiF;AAAA,MAA1EkD,KAA0E,QAA1EA,KAA0E;AAAA,MAAnEqF,IAAmE,QAAnEA,IAAmE;AAAA,MAA7DZ,SAA6D,QAA7DA,SAA6D;AAAA,MAAlDF,UAAkD,QAAlDA,UAAkD;AAAA,MAAtCpF,QAAsC,QAAtCA,QAAsC;AAAA,uBAA5BsH,IAA4B;AAAA,MAA5BA,IAA4B,0BAArB,MAAqB;AAAA,MAAVxH,KAAU;;AACxG,MAAMmG,EAAE,oCAA8Bb,UAA9B,CAAR;;AACA,MAAMwC,aAAa,GAAG,SAAhBA,aAAgB,CAAErF,KAAF;AAAA,WAAavC,QAAQ,CAAEuC,KAAK,CAACiE,MAAN,CAAa3F,KAAf,CAArB;AAAA,GAAtB;;AAEA,SACC,yEAAC,qDAAD;AAAa,SAAK,EAAGlD,KAArB;AAA6B,MAAE,EAAGsI,EAAlC;AAAuC,QAAI,EAAGC,IAA9C;AAAqD,aAAS,EAAGZ;AAAjE,KACC;AAAO,aAAS,EAAC,gCAAjB;AACC,QAAI,EAAGgC,IADR;AAEC,MAAE,EAAGrB,EAFN;AAGC,SAAK,EAAGpF,KAHT;AAIC,YAAQ,EAAG+G,aAJZ;AAKC,wBAAmB,CAAC,CAAE1B,IAAH,GAAUD,EAAE,GAAG,QAAf,GAA0BtH;AAL9C,KAMMmB,KANN,EADD,CADD;AAYA;;AAEcgG,wIAAc,CAAEg6B,WAAF,CAA7B;;;;;;;;;;;;;;;;;;;;;;;;;AC5BA;;;AAGA;AAEA;;;;AAGA;;AAEA,SAASC,eAAT,OAAwG;AAAA,MAA5EpiC,KAA4E,QAA5EA,KAA4E;AAAA,MAArEkD,KAAqE,QAArEA,KAAqE;AAAA,MAA9DqF,IAA8D,QAA9DA,IAA8D;AAAA,MAAxDd,UAAwD,QAAxDA,UAAwD;AAAA,MAA5CpF,QAA4C,QAA5CA,QAA4C;AAAA,uBAAlCggC,IAAkC;AAAA,MAAlCA,IAAkC,0BAA3B,CAA2B;AAAA,MAAxB16B,SAAwB,QAAxBA,SAAwB;AAAA,MAAVxF,KAAU;;AACvG,MAAMmG,EAAE,wCAAkCb,UAAlC,CAAR;;AACA,MAAMwC,aAAa,GAAG,SAAhBA,aAAgB,CAAErF,KAAF;AAAA,WAAavC,QAAQ,CAAEuC,KAAK,CAACiE,MAAN,CAAa3F,KAAf,CAArB;AAAA,GAAtB;;AAEA,SACC,yEAAC,qDAAD;AAAa,SAAK,EAAGlD,KAArB;AAA6B,MAAE,EAAGsI,EAAlC;AAAuC,QAAI,EAAGC,IAA9C;AAAqD,aAAS,EAAGZ;AAAjE,KACC;AACC,aAAS,EAAC,oCADX;AAEC,MAAE,EAAGW,EAFN;AAGC,QAAI,EAAG+5B,IAHR;AAIC,YAAQ,EAAGp4B,aAJZ;AAKC,wBAAmB,CAAC,CAAE1B,IAAH,GAAUD,EAAE,GAAG,QAAf,GAA0BtH,SAL9C;AAMC,SAAK,EAAGkC;AANT,KAOMf,KAPN,EADD,CADD;AAaA;;AAEcgG,wIAAc,CAAEi6B,eAAF,CAA7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7BA;;;AAGA;AAEA;;;;AAGA;AACA;AAEA;;;;AAGA;AACA;;IAEME,a;;;;;AACL,2BAAc;AAAA;;AAAA;;AACb,4OAAUlhC,SAAV;AAEA,UAAKiB,QAAL,GAAgB,MAAKA,QAAL,CAAcf,IAAd,2MAAhB;AAHa;AAIb;;;;6BAESsD,K,EAAQ;AACjB,UAAK,KAAKzC,KAAL,CAAWE,QAAhB,EAA2B;AAC1B,aAAKF,KAAL,CAAWE,QAAX,CAAqBuC,KAAK,CAACiE,MAAN,CAAamB,OAAlC;AACA;AACD;;;6BAEQ;AAAA,wBACqC,KAAK7H,KAD1C;AAAA,UACAnC,KADA,eACAA,KADA;AAAA,UACOgK,OADP,eACOA,OADP;AAAA,UACgBzB,IADhB,eACgBA,IADhB;AAAA,UACsBd,UADtB,eACsBA,UADtB;AAER,UAAMa,EAAE,sCAAgCb,UAAhC,CAAR;AAEA,UAAI86B,WAAJ,EAAiBC,SAAjB;;AACA,UAAKj6B,IAAL,EAAY;AACXg6B,mBAAW,GAAGj6B,EAAE,GAAG,QAAnB;AACAk6B,iBAAS,GAAG5C,yDAAU,CAAEr3B,IAAF,CAAV,GAAqBA,IAAI,CAAEyB,OAAF,CAAzB,GAAuCzB,IAAnD;AACA;;AAED,aACC,yEAAC,sDAAD;AACC,UAAE,EAAGD,EADN;AAEC,YAAI,EAAGk6B,SAFR;AAGC,iBAAS,EAAC;AAHX,SAKC,yEAAC,oDAAD;AACC,UAAE,EAAGl6B,EADN;AAEC,eAAO,EAAG0B,OAFX;AAGC,gBAAQ,EAAG,KAAK3H,QAHjB;AAIC,4BAAmBkgC;AAJpB,QALD,EAWC;AACC,eAAO,EAAGj6B,EADX;AAEC,iBAAS,EAAC;AAFX,SAIGtI,KAJH,CAXD,CADD;AAoBA;;;;EA3C0BgI,4D;;AA8CbG,wIAAc,CAAEm6B,aAAF,CAA7B;;;;;;;;;;;;;;;;;;;;;;;;AC/DA;;;AAGA;AAEA;;;;AAGA;AACA;;AAEA,SAASG,aAAT,OAYI;AAAA,MAXHC,kBAWG,QAXHA,kBAWG;AAAA,MAVHt3B,IAUG,QAVHA,IAUG;AAAA,MATHsT,KASG,QATHA,KASG;AAAA,MARH2O,QAQG,QARHA,QAQG;AAAA,MAPHsV,SAOG,QAPHA,SAOG;AAAA,MANHnkB,QAMG,QANHA,OAMG;AAAA,MALH7W,SAKG,QALHA,SAKG;AAAA,MAJH8W,QAIG,QAJHA,QAIG;AAAA,MAHHzb,UAGG,QAHHA,UAGG;AAAA,MAFH4/B,UAEG,QAFHA,UAEG;AAAA,MADHp7B,QACG,QADHA,QACG;AACH,SACC,yEAAC,iEAAD;AAAwB,aAAS,EAAGk7B;AAApC,KACC,yEAAC,oDAAD;AACC,QAAI,EAAGt3B,IADR;AAEC,SAAK,EAAGsT,KAFT;AAGC,YAAQ,EAAG2O,QAHZ;AAIC,sBAAiBsV,SAJlB;AAKC,WAAO,EAAG,iBAAE/9B,KAAF,EAAa;AACtBA,WAAK,CAACQ,eAAN;;AACAoZ,cAAO;AACP,KARF;AASC,aAAS,EAAGzW,iDAAU,CACrB,6BADqB,EAErBJ,SAFqB,EAGrB;AAAE,mBAAa8W;AAAf,KAHqB,CATvB;AAcC,oBAAeA,QAdhB;AAeC,YAAQ,EAAGzb;AAfZ,KAgBM4/B,UAhBN,EADD,EAmBGp7B,QAnBH,CADD;AAuBA;;AAEci7B,4EAAf;;;;;;;;;;;;;;;;;;ACjDA,IAAMI,sBAAsB,GAAG,SAAzBA,sBAAyB,CAAE1gC,KAAF;AAAA,SAC9B;AACC,aAAS,EAAGA,KAAK,CAACwF;AADnB,KAGGxF,KAAK,CAACqF,QAHT,CAD8B;AAAA,CAA/B;;AAOeq7B,qFAAf;;;;;;;;;;;;;;;;;;;;;;;;;;;ACPA;;;AAGA;AACA;AAEA;;;;AAGA;AACA;AACA;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BA,SAASC,OAAT,OAAqF;AAAA,2BAAjEjlB,QAAiE;AAAA,MAAjEA,QAAiE,8BAAtD,EAAsD;AAAA,MAAlDrW,QAAkD,QAAlDA,QAAkD;AAAA,MAAxCG,SAAwC,QAAxCA,SAAwC;AAAA,MAA7BvB,WAA6B,QAA7BA,WAA6B;AAAA,MAAhBgF,IAAgB,QAAhBA,IAAgB;AAAA,MAAVpL,KAAU,QAAVA,KAAU;;AACpF,MACC,CAAE,CAAE6d,QAAF,IAAc,CAAEA,QAAQ,CAAChe,MAA3B,KACA,CAAE2H,QAFH,EAGE;AACD,WAAO,IAAP;AACA,GANmF,CAQpF;;;AACA,MAAIsW,WAAW,GAAGD,QAAlB;;AACA,MAAK,CAAEE,KAAK,CAACC,OAAN,CAAeF,WAAW,CAAE,CAAF,CAA1B,CAAP,EAA2C;AAC1CA,eAAW,GAAG,CAAEA,WAAF,CAAd;AACA;;AAED,MAAK1X,WAAL,EAAmB;AAClB,WACC,yEAAC,sDAAD;AACC,UAAI,EAAGgF,IADR;AAEC,WAAK,EAAGpL,KAFT;AAGC,cAAQ,EAAG8d,WAHZ;AAIC,eAAS,EAAG/V,iDAAU,CAAE,oBAAF,EAAwBJ,SAAxB;AAJvB,MADD;AAQA;;AAED,SACC,yEAAC,0DAAD;AAAkB,aAAS,EAAGI,iDAAU,CAAE,oBAAF,EAAwBJ,SAAxB;AAAxC,KACGwW,sDAAO,CAAEL,WAAF,EAAe,UAAEM,UAAF,EAAcC,UAAd;AAAA,WACvBD,UAAU,CAACha,GAAX,CAAgB,UAAEka,OAAF,EAAWC,cAAX;AAAA,aACf,yEAAC,uDAAD;AACC,WAAG,EAAG,CAAEF,UAAF,EAAcE,cAAd,EAA+B1K,IAA/B,EADP;AAEC,0BAAkB,EAAGwK,UAAU,GAAG,CAAb,IAAkBE,cAAc,KAAK,CAArC,GAAyC,kBAAzC,GAA8D;AAFpF,SAGMD,OAHN,EADe;AAAA,KAAhB,CADuB;AAAA,GAAf,CADV,EAUG9W,QAVH,CADD;AAcA;;AAEcs7B,sEAAf;;;;;;;;;;;;;;;;;;;;ACpFA;;;AAGA;;AAEA,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB,CAAE5gC,KAAF;AAAA,SACxB;AAAK,aAAS,EAAG4F,iDAAU,CAAE,oBAAF,EAAwB5F,KAAK,CAACwF,SAA9B;AAA3B,KACGxF,KAAK,CAACqF,QADT,CADwB;AAAA,CAAzB;;AAKeu7B,+EAAf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACVA;;;AAGA;AAEA;;;;AAGA;AAQA;;;;AAGA;AACA;AAEA;;;;;;AAKA,IAAMC,aAAa,GAAG,GAAtB;;IAEMC,O;;;;;AACL,qBAAc;AAAA;;AAAA;;AACb,sOAAU7hC,SAAV;AAEA,UAAKC,QAAL,GAAgB,MAAKA,QAAL,CAAcC,IAAd,2MAAhB;AACA,UAAK4hC,gBAAL,GAAwBthC,uDAAQ,CAC/B,UAAEuhC,MAAF;AAAA,aAAc,MAAK7/B,QAAL,CAAe;AAAE6/B,cAAM,EAANA;AAAF,OAAf,CAAd;AAAA,KAD+B,EAE/BH,aAF+B,CAAhC;AAKA,UAAKlhC,KAAL,GAAa;AACZqhC,YAAM,EAAE;AADI,KAAb;AATa;AAYb;;;;2CAEsB;AACtB,WAAKD,gBAAL,CAAsB37B,MAAtB;AACA,WAAK67B,mCAAL;AACA;;;uCAEmBt9B,S,EAAWC,S,EAAY;AAAA,UAClCo9B,MADkC,GACvB,KAAKrhC,KADkB,CAClCqhC,MADkC;;AAE1C,UAAKA,MAAM,KAAKp9B,SAAS,CAACo9B,MAA1B,EAAmC;AAClC,YAAKA,MAAL,EAAc;AACb,eAAKE,wBAAL;AACA,SAFD,MAEO;AACN,eAAKD,mCAAL;AACA;AACD;AACD;AAED;;;;;;;;6BAKUz6B,G,EAAM;AACf;AACA;AACA;AACA;AACA,WAAK1G,IAAL,GAAYsa,sEAAW,CAAE5T,GAAF,CAAvB;AACA;AAED;;;;;;0DAGsC;AACrC,UAAK,KAAKsO,QAAV,EAAqB;AACpB,aAAKA,QAAL,CAAcM,UAAd;AACA;AACD;AAED;;;;;;;+CAI2B;AAAA;;AAC1B,UAAK,CAAE9W,MAAM,CAACyW,gBAAT,IAA6B,CAAE,KAAKjV,IAAzC,EAAgD;AAC/C;AACA;;AAED,WAAKgV,QAAL,GAAgB,IAAIxW,MAAM,CAACyW,gBAAX,CAA6B,gBAAoB;AAAA;AAAA,YAAhBosB,QAAgB;;AAChE,YAAKA,QAAQ,CAACz6B,MAAT,CAAgBU,QAArB,EAAgC;AAC/B;AACA;AACA,gBAAI,CAACjG,QAAL,CAAe;AAAE6/B,kBAAM,EAAE;AAAV,WAAf;AACA;AACD,OANe,CAAhB,CAL0B,CAa1B;;AACA,WAAKlsB,QAAL,CAAcE,OAAd,CAAuB,KAAKlV,IAA5B,EAAkC;AACjCqV,eAAO,EAAE,IADwB;AAEjCD,kBAAU,EAAE,IAFqB;AAGjCksB,uBAAe,EAAE,CAAE,UAAF;AAHgB,OAAlC;AAKA;;;gCAEYhV,S,EAAW3pB,K,EAAQ;AAAA,UACvB4C,QADuB,GACV,KAAKrF,KADK,CACvBqF,QADuB;;AAE/B,UAAKinB,2DAAQ,CAACC,KAAT,CAAgBlnB,QAAhB,MAA+B,CAApC,EAAwC;AACvC;AACA;;AAED,UAAMoT,KAAK,GAAG6T,2DAAQ,CAAC+U,IAAT,CAAeh8B,QAAf,CAAd;;AACA,UAAK,OAAOoT,KAAK,CAACzY,KAAN,CAAaosB,SAAb,CAAP,KAAoC,UAAzC,EAAsD;AACrD3T,aAAK,CAACzY,KAAN,CAAaosB,SAAb,EAA0B3pB,KAA1B;AACA;AACD;;;uCAEmB2pB,S,EAAWkV,S,EAAY;AAAA;;AAC1C,aAAO,UAAE7+B,KAAF,EAAa;AACnB;AACA,cAAI,CAAC8+B,WAAL,CAAkBnV,SAAlB,EAA6B3pB,KAA7B,EAFmB,CAInB;AACA;AACA;AACA;AACA;AACA;;;AACA,YAAKA,KAAK,CAAC++B,aAAN,CAAoBp6B,QAAzB,EAAoC;AACnC;AACA,SAZkB,CAcnB;AACA;;;AACA,cAAI,CAAC25B,gBAAL,CAAsB37B,MAAtB;;AAEA,YAAM47B,MAAM,GAAGzrB,uDAAQ,CAAE,CAAE,OAAF,EAAW,YAAX,CAAF,EAA6B9S,KAAK,CAAC+E,IAAnC,CAAvB;;AACA,YAAKw5B,MAAM,KAAK,MAAI,CAACrhC,KAAL,CAAWqhC,MAA3B,EAAoC;AACnC;AACA;;AAED,YAAKM,SAAL,EAAiB;AAChB,gBAAI,CAACP,gBAAL,CAAuBC,MAAvB;AACA,SAFD,MAEO;AACN,gBAAI,CAAC7/B,QAAL,CAAe;AAAE6/B,kBAAM,EAANA;AAAF,WAAf;AACA;AACD,OA5BD;AA6BA;;;6BAEQ;AAAA,wBACuC,KAAKhhC,KAD5C;AAAA,UACAqF,QADA,eACAA,QADA;AAAA,UACUmU,QADV,eACUA,QADV;AAAA,UACoBtV,IADpB,eACoBA,IADpB;AAAA,UAC0BgnB,QAD1B,eAC0BA,QAD1B;;AAER,UAAKoB,2DAAQ,CAACC,KAAT,CAAgBlnB,QAAhB,MAA+B,CAApC,EAAwC;AACvC,YAAK,IAAL,EAA8C;AAC7C;AACAo8B,iBAAO,CAAC9E,KAAR,CAAe,4DAAf;AACA;;AAED,eAAOt3B,QAAP;AACA;;AAED,UAAMoT,KAAK,GAAG6T,2DAAQ,CAAC+U,IAAT,CAAeh8B,QAAf,CAAd;AAXQ,UAYA27B,MAZA,GAYW,KAAKrhC,KAZhB,CAYAqhC,MAZA;AAaR,aAAOpV,uEAAY,CAAEnT,KAAF,EAAS;AAC3BjS,WAAG,EAAE,KAAKtH,QADiB;AAE3B0lB,oBAAY,EAAE,KAAK8c,kBAAL,CAAyB,cAAzB,EAAyC,IAAzC,CAFa;AAG3B7c,oBAAY,EAAE,KAAK6c,kBAAL,CAAyB,cAAzB,CAHa;AAI3BrlB,eAAO,EAAE,KAAKqlB,kBAAL,CAAyB,SAAzB,CAJkB;AAK3BzjB,eAAO,EAAE,KAAKyjB,kBAAL,CAAyB,SAAzB,CALkB;AAM3B1hB,cAAM,EAAE,KAAK0hB,kBAAL,CAAyB,QAAzB,CANmB;AAO3Br8B,gBAAQ,EAAEs8B,yEAAc,CACvBlpB,KAAK,CAACzY,KAAN,CAAYqF,QADW,EAEvB27B,MAAM,IACL,yEAAC,gDAAD;AACC,sBAAY,EAAG,KADhB;AAEC,kBAAQ,EAAGxnB,QAFZ;AAGC,mBAAS,EAAC,oBAHX;AAIC,yBAAY;AAJb,WAMGtV,IANH,EAOC,yEAAC,kDAAD;AAAU,mBAAS,EAAC,8BAApB;AAAmD,kBAAQ,EAAGgnB;AAA9D,UAPD,CAHsB;AAPG,OAAT,CAAnB;AAsBA;;;;EA7JoBrlB,4D;;AAgKPi7B,sEAAf;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7LA;;;AAGA;AAEA;;;;AAGA;;AAEA,SAASc,gBAAT,CAA2BC,IAA3B,EAA6C;AAAA,MAAZC,KAAY,uEAAJ,CAAI;AAC5C,SAAO9lB,sDAAO,CAAE6lB,IAAF,EAAQ,UAAEE,QAAF;AAAA,YACrB;AACChhC,WAAK,EAAEghC,QAAQ,CAAC57B,EADjB;AAECtI,WAAK,EAAEmkC,qDAAM,CAAE,MAAF,EAAYF,KAAK,GAAG,CAApB,CAAN,GAAgCG,uDAAc,CAAEF,QAAQ,CAACh4B,IAAX;AAFtD,KADqB,sGAKlB63B,gBAAgB,CAAEG,QAAQ,CAAC18B,QAAT,IAAqB,EAAvB,EAA2By8B,KAAK,GAAG,CAAnC,CALE;AAAA,GAAR,CAAd;AAOA;;AAEc,SAASI,UAAT,OAOX;AAAA,MANHrkC,KAMG,QANHA,KAMG;AAAA,MALHw5B,aAKG,QALHA,aAKG;AAAA,MAJHn3B,QAIG,QAJHA,QAIG;AAAA,MAHH4/B,UAGG,QAHHA,UAGG;AAAA,MAFH+B,IAEG,QAFHA,IAEG;AAAA,MADA7hC,KACA;;AACH,MAAM1C,OAAO,GAAGggB,sDAAO,EACtB+Z,aAAa,IAAI;AAAEt2B,SAAK,EAAE,EAAT;AAAalD,SAAK,EAAEw5B;AAApB,GADK,sGAEnBuK,gBAAgB,CAAEC,IAAF,CAFG,GAAvB;AAIA,SACC,yEAAC,+CAAD,qFACM;AAAEhkC,SAAK,EAALA,KAAF;AAASP,WAAO,EAAPA,OAAT;AAAkB4C,YAAQ,EAARA;AAAlB,GADN;AAEC,SAAK,EAAG4/B;AAFT,KAGM9/B,KAHN,EADD;AAOA;;;;;;;;;;;;;;;qBCrCuBmiC,Y;;AAFxB;;;;;;AAEe,SAASA,YAAT,CAAsBC,UAAtB,EAAgD;AAAA,MAAdr4B,IAAc,uEAAP,KAAO;;AAC7D,MAAI,CAAC6R,MAAMC,OAAN,CAAcumB,UAAd,CAAL,EAAgC;AAC9B,UAAM,IAAIC,SAAJ,CAAc,wCAAd,CAAN;AACD;AACD,MAAID,WAAW1kC,MAAX,IAAqB,CAAzB,EAA4B;AAC1B,UAAM,IAAI4kC,UAAJ,CAAe,wCAAf,CAAN;AACD;;AAED,MAAMC;AAAY,aAASC,GAAT,GAAsB;AAAA,wCAAN55B,IAAM;AAANA,YAAM;AAAA;;AACtC,UAAI65B,aAAa,IAAjB;AACAL,iBAAWrkC,IAAX,CAAgB,UAAC2kC,WAAD,EAAiB;AAC/BD,qBAAaC,6BAAe95B,IAAf,CAAb;AACA,eAAO65B,cAAc,IAArB;AACD,OAHD;AAIA,aAAOA,cAAc,IAAd,GAAqB,IAArB,GAA4BA,UAAnC;AACD;;AAPK,WAAqBD,GAArB;AAAA,KAAN;;AASAD,YAAUI,UAAV;AAAuB,aAASC,aAAT,GAAgC;AAAA,yCAANh6B,IAAM;AAANA,YAAM;AAAA;;AACrD,UAAI65B,aAAa,IAAjB;AACAL,iBAAWrkC,IAAX,CAAgB,UAAC2kC,WAAD,EAAiB;AAC/BD,qBAAaC,YAAYC,UAAZ,oBAA0B/5B,IAA1B,CAAb;AACA,eAAO65B,cAAc,IAArB;AACD,OAHD;AAIA,aAAOA,cAAc,IAAd,GAAqB,IAArB,GAA4BA,UAAnC;AACD;;AAPD,WAAgCG,aAAhC;AAAA;;AASA,SAAO,gCAAcL,SAAd,EAAyBx4B,IAAzB,EAA+Bq4B,UAA/B,CAAP;AACD;;;;;;;;;;;;;;;;;;;;qBC2EuBS,gB;;;;;;AAxGxB;;;;AAEA;;;;AACA;;;;AACA;;;;;;;;AAEA,SAASC,MAAT,CAAgB9iC,KAAhB,EAAuB+iC,QAAvB,EAAiCC,aAAjC,EAAgD;AAC9C,MAAMjiC,QAAQf,MAAM+iC,QAAN,CAAd;AACA,MAAI,OAAOhiC,KAAP,KAAiB,QAAjB,IAA6B,CAACiQ,MAAMjQ,KAAN,CAAlC,EAAgD;AAC9C,WAAO,IAAP;AACD;;AAED,SAAO,IAAIshC,SAAJ,QAAiBW,aAAjB,kBAAmCD,QAAnC,iCAAP;AACD;;AAED,SAASE,iBAAT,CAA2BjjC,KAA3B,EAAkC+iC,QAAlC,EAA4C;AAC1C,MAAMhiC,QAAQf,MAAM+iC,QAAN,CAAd;;AAEA,MAAI,OAAOhiC,KAAP,KAAiB,UAArB,EAAiC;AAC/B,WAAO,IAAP;AACD;;AAED,MAAI,OAAOA,KAAP,KAAiB,QAAjB,IAA6B,CAACiQ,MAAMjQ,KAAN,CAAlC,EAAgD;AAC9C,WAAO,IAAP;AACD;;AAED,SAAO,IAAIshC,SAAJ,QAAiBU,QAAjB,oDAAP;AACD;;AAED,SAASG,YAAT,CAAsBniC,KAAtB,QAA0C;AAAA,MAAXoiC,EAAW,QAAXA,EAAW;AAAA,MAAPC,GAAO,QAAPA,GAAO;;AACxC,MAAI,OAAOD,EAAP,KAAc,QAAlB,EAA4B;AAC1B,WAAOpiC,QAAQoiC,EAAf;AACD;AACD,MAAI,OAAOC,GAAP,KAAe,QAAnB,EAA6B;AAC3B,WAAOriC,SAASqiC,GAAhB;AACD;AACD,SAAO,IAAP;AACD;;AAED,SAASC,YAAT,CAAsBtiC,KAAtB,SAA0C;AAAA,MAAXuiC,EAAW,SAAXA,EAAW;AAAA,MAAPC,GAAO,SAAPA,GAAO;;AACxC,MAAI,OAAOD,EAAP,KAAc,QAAlB,EAA4B;AAC1B,WAAOviC,QAAQuiC,EAAf;AACD;AACD,MAAI,OAAOC,GAAP,KAAe,QAAnB,EAA6B;AAC3B,WAAOxiC,SAASwiC,GAAhB;AACD;AACD,SAAO,IAAP;AACD;;AAED,SAASC,gBAAT,QAAuC;AAAA,MAAXL,EAAW,SAAXA,EAAW;AAAA,MAAPC,GAAO,SAAPA,GAAO;;AACrC,MAAI,OAAOD,EAAP,KAAc,QAAlB,EAA4B;AAC1B,6BAAuBA,EAAvB;AACD;AACD,MAAI,OAAOC,GAAP,KAAe,QAAnB,EAA6B;AAC3B,yCAAmCA,GAAnC;AACD;AACD,SAAO,EAAP;AACD;;AAED,SAASK,aAAT,QAAoC;AAAA,MAAXH,EAAW,SAAXA,EAAW;AAAA,MAAPC,GAAO,SAAPA,GAAO;;AAClC,MAAI,OAAOD,EAAP,KAAc,QAAlB,EAA4B;AAC1B,0BAAoBA,EAApB;AACD;AACD,MAAI,OAAOC,GAAP,KAAe,QAAnB,EAA6B;AAC3B,sCAAgCA,GAAhC;AACD;AACD,SAAO,EAAP;AACD;;AAED,SAAS1G,YAAT,CAAsBmG,aAAtB,EAAqCD,QAArC,EAA+CW,IAA/C,EAAqD;AACnD,MAAMC,SAAS,CAACH,iBAAiBE,IAAjB,CAAD,EAAyBD,cAAcC,IAAd,CAAzB,EAA8ClyB,MAA9C,CAAqDC,OAArD,EAA8DC,IAA9D,CAAmE,OAAnE,CAAf;AACA,gBAAUsxB,aAAV,kBAA4BD,QAA5B,yBAAgDY,MAAhD;AACD;;AAED,SAASC,aAAT,CAAuBF,IAAvB,EAA6B;AAC3B,SAAO,yBAAQA,IAAR,EAAcG,MAAd,CAAqB,UAACC,GAAD,SAAuB;AAAA;AAAA,QAAhB1hC,GAAgB;AAAA,QAAXrB,KAAW;;AACjD,QAAMgjC,cAAc,OAAOhjC,KAAP,KAAiB,QAAjB,GAA4B;AAAA,aAAMA,KAAN;AAAA,KAA5B,GAA0CA,KAA9D;AACA,wCAAY+iC,GAAZ,sBAAkB1hC,GAAlB,EAAwB2hC,WAAxB;AACD,GAHM,EAGJ,EAHI,CAAP;AAID;;AAED,SAASC,eAAT,CAAyBC,UAAzB,EAAqCjkC,KAArC,EAA4C;AAC1C,SAAO,yBAAQikC,UAAR,EAAoBJ,MAApB,CAA2B,UAACC,GAAD,SAAuB;AAAA;AAAA,QAAhB1hC,GAAgB;AAAA,QAAX8hC,KAAW;;AACvD,QAAMnjC,QAAQmjC,MAAMlkC,KAAN,CAAd;AACA,wCAAY8jC,GAAZ,sBAAkB1hC,GAAlB,EAAwBrB,KAAxB;AACD,GAHM,EAGJ,EAHI,CAAP;AAID;;AAED,IAAMojC,gBAAgB,CACpB,wBAAM,EAAEb,IAAIL,iBAAN,EAAyBE,IAAIF,iBAA7B,EAAN,EAAwDN,UADpC,EAEpB,wBAAM,EAAEY,KAAKN,iBAAP,EAA0BE,IAAIF,iBAA9B,EAAN,EAAyDN,UAFrC,EAGpB,wBAAM,EAAEW,IAAIL,iBAAN,EAAyBG,KAAKH,iBAA9B,EAAN,EAAyDN,UAHrC,EAIpB,wBAAM,EAAEY,KAAKN,iBAAP,EAA0BG,KAAKH,iBAA/B,EAAN,EAA0DN,UAJtC,EAKpB,wBAAM,EAAEW,IAAIL,iBAAN,EAAN,EAAiCN,UALb,EAMpB,wBAAM,EAAEY,KAAKN,iBAAP,EAAN,EAAkCN,UANd,EAOpB,wBAAM,EAAEQ,IAAIF,iBAAN,EAAN,EAAiCN,UAPb,EAQpB,wBAAM,EAAES,KAAKH,iBAAP,EAAN,EAAkCN,UARd,CAAtB;AAUA,SAASyB,YAAT,CAAsBpkC,KAAtB,EAA6B+iC,QAA7B,EAAuC;AACrC,SAAOoB,cAAc3b,KAAd,CAAoB;AAAA,WAAa,CAAC,CAAC+Z,UAAUviC,KAAV,EAAiB+iC,QAAjB,CAAf;AAAA,GAApB,CAAP;AACD;;AAED,IAAMsB,sBAAsB,2BAASvB,MAAT,EAAiBH,UAA7C;;AAEe,SAASE,gBAAT,CAA0BvlC,OAA1B,EAAmC;AAChD,MAAMgnC,WAAWF,aAAa,EAAE9mC,gBAAF,EAAb,EAA0B,SAA1B,CAAjB;AACA,MAAIgnC,QAAJ,EAAc;AACZ,UAAM,IAAIjC,SAAJ,CAAc,wHAAd,CAAN;AACD;;AAED,MAAM4B,aAAaL,cAActmC,OAAd,CAAnB;;AAEA,MAAMilC;AAAY,aAASgC,OAAT,CAAiBvkC,KAAjB,EAAwB+iC,QAAxB,EAAkCC,aAAlC,EAA0D;AAAA,UACtDwB,SADsD,GACxCxkC,KADwC,CACjE+iC,QADiE;;AAE1E,UAAIyB,aAAa,IAAjB,EAAuB;AACrB,eAAO,IAAP;AACD;;AAED,UAAI,OAAOA,SAAP,KAAqB,QAAzB,EAAmC;AACjC,eAAO,IAAIlC,UAAJ,QAAkBU,aAAlB,kBAAoCD,QAApC,yCAA8EyB,SAA9E,yCAA8EA,SAA9E,SAAP;AACD;;AAED,UAAMd,OAAOM,gBAAgBC,UAAhB,EAA4BjkC,KAA5B,CAAb;;AAV0E,wCAANixB,IAAM;AAANA,YAAM;AAAA;;AAW1E,UAAMwT,mBAAmBJ,0DACpBtB,QADoB,EACTW,IADS,GAEvBX,QAFuB,EAGvBC,aAHuB,SAIpB/R,IAJoB,EAAzB;AAMA,UAAIwT,gBAAJ,EAAsB;AACpB,eAAOA,gBAAP;AACD;;AAED,UAAI,CAACvB,aAAasB,SAAb,EAAwBd,IAAxB,CAAD,IAAkC,CAACL,aAAamB,SAAb,EAAwBd,IAAxB,CAAvC,EAAsE;AACpE,eAAO,IAAIpB,UAAJ,CAAezF,aAAamG,aAAb,EAA4BD,QAA5B,EAAsCW,IAAtC,CAAf,CAAP;AACD;;AAED,aAAO,IAAP;AACD;;AA1BK,WAAqBa,OAArB;AAAA,KAAN;AA2BAhC,YAAUI,UAAV;AAAuB,aAAS+B,eAAT,CAAyB1kC,KAAzB,EAAgC+iC,QAAhC,EAA0CC,aAA1C,EAAkE;AAAA,UACnEwB,SADmE,GACrDxkC,KADqD,CAC9E+iC,QAD8E;;AAEvF,UAAI,OAAOyB,SAAP,KAAqB,QAAzB,EAAmC;AACjC,eAAO,IAAIlC,UAAJ,QAAkBU,aAAlB,kBAAoCD,QAApC,yCAA8EyB,SAA9E,yCAA8EA,SAA9E,SAAP;AACD;;AAED,UAAMd,OAAOM,gBAAgBC,UAAhB,EAA4BjkC,KAA5B,CAAb;;AANuF,yCAANixB,IAAM;AAANA,YAAM;AAAA;;AAOvF,UAAMwT,mBAAmBJ,0DACpBtB,QADoB,EACTW,IADS,GAEvBX,QAFuB,EAGvBC,aAHuB,SAIpB/R,IAJoB,EAAzB;AAMA,UAAIwT,gBAAJ,EAAsB;AACpB,eAAOA,gBAAP;AACD;;AAED,UAAI,CAACvB,aAAasB,SAAb,EAAwBd,IAAxB,CAAD,IAAkC,CAACL,aAAamB,SAAb,EAAwBd,IAAxB,CAAvC,EAAsE;AACpE,eAAO,IAAIpB,UAAJ,CAAezF,aAAamG,aAAb,EAA4BD,QAA5B,EAAsCW,IAAtC,CAAf,CAAP;AACD;;AAED,aAAO,IAAP;AACD;;AAtBD,WAAgCgB,eAAhC;AAAA;;AAwBA,SAAO,gCAAcnC,SAAd,EAAyB,SAAzB,EAAoCjlC,OAApC,CAAP;AACD;;;;;;;;;;;;;;;qBCjKuBqnC,oB;;AAHxB;;AACA;;;;;;AAEe,SAASA,oBAAT,GAAmD;AAAA,oCAAlBC,gBAAkB;AAAlBA,oBAAkB;AAAA;;AAChE,MAAIA,iBAAiBlnC,MAAjB,GAA0B,CAA9B,EAAiC;AAC/B,UAAM,IAAI2kC,SAAJ,CAAc,6DAAd,CAAN;AACD;AACD,MAAI,CAACuC,iBAAiBpc,KAAjB,CAAuB;AAAA,WAAK,OAAOtY,CAAP,KAAa,QAAlB;AAAA,GAAvB,CAAL,EAAyD;AACvD,UAAM,IAAImyB,SAAJ,CAAc,uCAAd,CAAN;AACD;;AAED,MAAMwC,YAAYD,iBAAiBlzB,IAAjB,CAAsB,OAAtB,CAAlB;;AAEA,MAAM6wB;AAAY,aAASuC,WAAT,CAAqB9kC,KAArB,EAA4B+iC,QAA5B,EAAsCC,aAAtC,EAA8D;AAC9E,UAAM+B;AAAa,iBAAbA,UAAa,CAACxY,KAAD,EAAQyY,IAAR;AAAA,iBAAkBzY,SAASvsB,MAAMglC,IAAN,MAAgB,KAAhB,GAAwB,CAAxB,GAA4B,CAArC,CAAlB;AAAA;;AAAb;AAAA,SAAN;;AAEA,UAAMC,iBAAiBL,iBAAiBf,MAAjB,CAAwBkB,UAAxB,EAAoC,CAApC,CAAvB;AACA,UAAIE,mBAAmBL,iBAAiBlnC,MAAxC,EAAgD;AAC9C,eAAO,IAAIwnC,KAAJ,eAAelC,aAAf,0EAA2F6B,SAA3F,EAAP;AACD;;AAN6E,yCAAN5T,IAAM;AAANA,YAAM;AAAA;;AAO9E,aAAOkU,kCAAKnlC,KAAL,EAAY+iC,QAAZ,EAAsBC,aAAtB,SAAwC/R,IAAxC,EAAP;AACD;;AARK,WAAqB6T,WAArB;AAAA,KAAN;;AAUAvC,YAAUI,UAAV;AAAuB,aAASyC,mBAAT,CACrBplC,KADqB,EAErB+iC,QAFqB,EAGrBC,aAHqB,EAKrB;AACA,UAAM+B;AAAa,iBAAbA,UAAa,CAACxY,KAAD,EAAQyY,IAAR;AAAA,iBAAkBzY,SAASvsB,MAAMglC,IAAN,MAAgB,KAAhB,GAAwB,CAAxB,GAA4B,CAArC,CAAlB;AAAA;;AAAb;AAAA,SAAN;;AAEA,UAAMC,iBAAiBL,iBAAiBf,MAAjB,CAAwBkB,UAAxB,EAAoC,CAApC,CAAvB;AACA,UAAIE,mBAAmBL,iBAAiBlnC,MAAxC,EAAgD;AAC9C,eAAO,IAAIwnC,KAAJ,eAAelC,aAAf,0EAA2F6B,SAA3F,EAAP;AACD;;AAND,yCADG5T,IACH;AADGA,YACH;AAAA;;AAOA,aAAOkU,gBAAKxC,UAAL,yBAAgB3iC,KAAhB,EAAuB+iC,QAAvB,EAAiCC,aAAjC,SAAmD/R,IAAnD,EAAP;AACD;;AAbD,WAAgCmU,mBAAhC;AAAA;;AAeA,SAAO,gCAAc7C,SAAd,2BAAyCsC,SAAzC,GAAsDD,gBAAtD,CAAP;AACD;;;;;;;;;;;;;;;;;;qBCpCuBS,2B;;AAHxB;;;;AACA;;;;;;AAEe,SAASA,2BAAT,CAAqCL,IAArC,EAA2C;AACxD,MAAI,OAAOA,IAAP,KAAgB,QAAhB,IAA4B,QAAOA,IAAP,yCAAOA,IAAP,OAAgB,QAAhD,EAA0D;AACxD,UAAM,IAAI3C,SAAJ,CAAc,wCAAd,CAAN;AACD;;AAED,MAAME;AAAY,aAAS+C,mCAAT,OAA2DC,CAA3D,EAA8DvC,aAA9D,EAA6E;AAAA,UAA9B39B,QAA8B,QAA9BA,QAA8B;;AAC7F,UAAImgC,sBAAsB,CAA1B;AACA,UAAIC,YAAY,CAAhB;AACA,UAAIC,qBAAqB,CAAzB;;AAEAC,yBAAMrZ,QAAN,CAAehX,OAAf,CAAuBjQ,QAAvB,EAAiC,UAACoT,KAAD,EAAW;AAC1C,YAAI,CAACA,KAAL,EAAY;AACV;AACD;;AAED+sB,+BAAuB,CAAvB;;AAEA,YAAI/sB,MAAMzY,KAAN,CAAYglC,IAAZ,CAAJ,EAAuB;AACrBS,uBAAa,CAAb;AACD;;AAED,YAAIE,mBAAMrZ,QAAN,CAAeC,KAAf,CAAqB9T,MAAMzY,KAAN,CAAYqF,QAAjC,CAAJ,EAAgD;AAC9CqgC,gCAAsB,CAAtB;AACD;AACF,OAdD;;AAgBA,UACGD,cAAcD,mBAAd,IAAqCE,uBAAuB,CAA7D,IACID,cAAc,CAAd,IAAmBC,uBAAuBF,mBAD9C,IAEIC,cAAc,CAAd,IAAmBC,uBAAuB,CAHhD,EAIE;AACA,eAAO,IAAP;AACD;;AAED,aAAO,IAAIrD,SAAJ,cAAmBW,aAAnB,2DAA0EgC,IAA1E,sDAAP;AACD;;AA9BK,WAAqBM,mCAArB;AAAA,KAAN;AA+BA/C,YAAUI,UAAV,GAAuBJ,SAAvB;;AAEA,SAAO,gCAAcA,SAAd,kDAAgEyC,IAAhE,GAAwEA,IAAxE,CAAP;AACD;;;;;;;;;;;;;;;qBC7BuBY,U;;;;;;AAbxB;;;;AACA;;;;;;AAEA,SAASC,gBAAT,CAA0BC,QAA1B,EAAoCzgC,QAApC,EAA8CrF,KAA9C,EAA8D;AAAA,oCAANixB,IAAM;AAANA,QAAM;AAAA;;AAC5D,MAAI0L,cAAJ;AACAt3B,WAAStH,IAAT,CAAc,UAAC0a,KAAD,EAAW;AACvBkkB,YAAQmJ,wDAAc9lC,KAAd,IAAqBqF,UAAUoT,KAA/B,KAAwC,UAAxC,SAAuDwY,IAAvD,EAAR;AACA,WAAO0L,KAAP;AACD,GAHD;;AAKA,SAAOA,SAAS,IAAhB;AACD;;AAEc,SAASiJ,UAAT,CAAoBE,QAApB,EAA8B;AAC3C,WAASC,kBAAT,CAA4B/lC,KAA5B,EAAmC+iC,QAAnC,EAA6CC,aAA7C,EAAqE;AACnE,QAAID,aAAa,UAAjB,EAA6B;AAC3B,aAAO,IAAIV,SAAJ,QAAiBW,aAAjB,yEAA0FD,QAA1F,QAAP;AACD;;AAHkE,QAK/CyB,SAL+C,GAKjCxkC,KALiC,CAK1D+iC,QAL0D;;;AAOnE,QAAIyB,aAAa,IAAjB,EAAuB;AACrB,aAAO,IAAP;AACD;AACD,QAAMn/B,WAAW,qCAAmBm/B,SAAnB,CAAjB;AACA,QAAIn/B,SAAS3H,MAAT,KAAoB,CAAxB,EAA2B;AACzB,aAAO,IAAP;AACD;;AAbkE,uCAANuzB,IAAM;AAANA,UAAM;AAAA;;AAenE,WAAO4U,mCAAiBC,QAAjB,EAA2BzgC,QAA3B,EAAqCrF,KAArC,EAA4CgjC,aAA5C,SAA8D/R,IAA9D,EAAP;AACD;;AAED8U,qBAAmBpD,UAAnB,GAAgC,UAAC3iC,KAAD,EAAQ+iC,QAAR,EAAkBC,aAAlB,EAA6C;AAAA,uCAAT/R,IAAS;AAATA,UAAS;AAAA;;AAC3E,QAAI8R,aAAa,UAAjB,EAA6B;AAC3B,aAAO,IAAIV,SAAJ,QAAiBW,aAAjB,yEAA0FD,QAA1F,QAAP;AACD;;AAED,QAAM19B,WAAW,qCAAmBrF,MAAM+iC,QAAN,CAAnB,CAAjB;AACA,QAAI19B,SAAS3H,MAAT,KAAoB,CAAxB,EAA2B;AACzB,aAAO,IAAI2kC,SAAJ,cAAmBW,aAAnB,qDAAyE8C,SAASE,QAAT,IAAqBF,SAAS/7B,IAAvG,EAAP;AACD;;AAED,WAAO87B,mCAAiBC,QAAjB,EAA2BzgC,QAA3B,EAAqCrF,KAArC,EAA4CgjC,aAA5C,SAA8D/R,IAA9D,EAAP;AACD,GAXD;;AAaA,SAAO,gCAAc8U,kBAAd,EAAkC,YAAlC,EAAgDD,QAAhD,CAAP;AACD;;;;;;;;;;;;;;;;AC9CD;;;;AAEA;;;;AACA;;;;AACA;;;;;;AAEA,SAASG,SAAT,CAAmBvsB,KAAnB,EAA0BrU,QAA1B,EAAoC29B,aAApC,EAAmD;AACjD,MAAI,CAAC39B,SAASmjB,KAAT,CAAe;AAAA,WAAS/P,SAAS,iCAAKiB,KAAL,EAAY;AAAA,aAAQwsB,SAAS,GAAT,IAAgBztB,MAAMjR,IAAN,KAAe0+B,IAAvC;AAAA,KAAZ,CAAlB;AAAA,GAAf,CAAL,EAAiG;AAC/F,QAAMC,YAAYzsB,MAAMzX,GAAN,CAAUmkC,6BAAV,EAA4B10B,IAA5B,CAAiC,OAAjC,CAAlB;AACA,WAAO,IAAI2wB,SAAJ,cACAW,aADA,gDACiDmD,SADjD,EAAP;AAGD;AACD,SAAO,IAAP;AACD;;AAED,SAASxD,UAAT,CAAoBjpB,KAApB,EAA2BrU,QAA3B,EAAqC29B,aAArC,EAAoD;AAClD,MAAI39B,SAAS3H,MAAT,KAAoB,CAAxB,EAA2B;AACzB,QAAMyoC,YAAYzsB,MAAMzX,GAAN,CAAUmkC,6BAAV,EAA4B10B,IAA5B,CAAiC,OAAjC,CAAlB;AACA,WAAO,IAAI2wB,SAAJ,cAAmBW,aAAnB,qDAAyEmD,SAAzE,EAAP;AACD;AACD,SAAO,IAAP;AACD;;AAED,SAASE,cAAT,GAAkC;AAAA,oCAAP3sB,KAAO;AAAPA,SAAO;AAAA;;AAChC,MAAIA,MAAMhc,MAAN,GAAe,CAAnB,EAAsB;AACpB,UAAM,IAAI2kC,SAAJ,CAAc,6CAAd,CAAN;AACD;;AAED,WAASE,SAAT,CAAmBviC,KAAnB,EAA0B+iC,QAA1B,EAAoCC,aAApC,EAAmD;AACjD,WAAOiD,UAAUvsB,KAAV,EAAiB,qCAAmB1Z,MAAM+iC,QAAN,CAAnB,CAAjB,EAAsDC,aAAtD,CAAP;AACD;;AAEDT,YAAUI,UAAV,GAAuB,UAAC3iC,KAAD,EAAQ+iC,QAAR,EAAkBC,aAAlB,EAAoC;AACzD,QAAM39B,WAAW,qCAAmBrF,MAAM+iC,QAAN,CAAnB,CAAjB;AACA,WAAOJ,WAAWjpB,KAAX,EAAkBrU,QAAlB,EAA4B29B,aAA5B,KAA8CiD,UAAUvsB,KAAV,EAAiBrU,QAAjB,EAA2B29B,aAA3B,CAArD;AACD,GAHD;;AAKA,SAAO,gCAAcT,SAAd,EAAyB,gBAAzB,EAA2C7oB,KAA3C,CAAP;AACD;;qBAEc2sB,c;;;;;;;;;;;;;;;qBCrCSC,2B;;;;;;AAJxB;;;;AACA;;;;AACA;;;;;;AAEe,SAASA,2BAAT,GAAoD;AAAA,oCAAZC,UAAY;AAAZA,cAAY;AAAA;;AACjE,MAAMC,MAAMC,yCAAcF,UAAd,CAAZ;;AAEA,MAAMhE;AAAY,aAASmE,kBAAT,CAA4B1mC,KAA5B,EAAmC+iC,QAAnC,EAA6CC,aAA7C,EAAqE;AACrF,UAAID,aAAa,UAAjB,EAA6B;AAC3B,eAAO,IAAIV,SAAJ,QAAiBW,aAAjB,iFAAkGD,QAAlG,QAAP;AACD;;AAHoF,UAKjEyB,SALiE,GAKnDxkC,KALmD,CAK5E+iC,QAL4E;;AAMrF,UAAM19B,WAAW,qCAAmBm/B,SAAnB,CAAjB;AACA,UAAIn/B,SAAS3H,MAAT,KAAoB,CAAxB,EAA2B;AACzB,eAAO,IAAP;AACD;;AAToF,yCAANuzB,IAAM;AAANA,YAAM;AAAA;;AAUrF,aAAOuV,mDAASxmC,KAAT,IAAgBqF,kBAAhB,KAA4B09B,QAA5B,EAAsCC,aAAtC,SAAwD/R,IAAxD,EAAP;AACD;;AAXK,WAAqByV,kBAArB;AAAA,KAAN;;AAaAnE,YAAUI,UAAV;AAAuB,aAASgE,0BAAT,CACrB3mC,KADqB,EAErB+iC,QAFqB,EAGrBC,aAHqB,EAKrB;AACA,UAAID,aAAa,UAAjB,EAA6B;AAC3B,eAAO,IAAIV,SAAJ,QAAiBW,aAAjB,iFAAkGD,QAAlG,QAAP;AACD;;AAHD,UAKoByB,SALpB,GAKkCxkC,KALlC,CAKS+iC,QALT;;AAMA,UAAM19B,WAAW,qCAAmBm/B,SAAnB,CAAjB;AACA,UAAIn/B,SAAS3H,MAAT,KAAoB,CAAxB,EAA2B;AACzB,eAAO,IAAI2kC,SAAJ,QAAiBW,aAAjB,0CAAP;AACD;;AATD,yCADG/R,IACH;AADGA,YACH;AAAA;;AAUA,aAAOuV,IAAI7D,UAAJ,0CAAoB3iC,KAApB,IAA2BqF,kBAA3B,KAAuC09B,QAAvC,EAAiDC,aAAjD,SAAmE/R,IAAnE,EAAP;AACD;;AAhBD,WAAgC0V,0BAAhC;AAAA;;AAkBA,SAAO,gCAAcpE,SAAd,EAAyB,oBAAzB,EAA+CgE,UAA/C,CAAP;AACD;;;;;;;;;;;;;;;qBC4BuBK,iB;;AAnExB;;;;AACA;;;;AACA;;;;AAEA;;;;AACA;;;;;;AAEA,SAASC,SAAT,CAAmBC,QAAnB,EAA6BC,kBAA7B,EAAiD;AAC/C,MAAIC,YAAYF,QAAhB;AACA,SAAQ,aAAD,CAAgB7oC,IAAhB,CAAqB+oC,SAArB,CAAP,EAAwC;AACtC,QAAIC,MAAMD,SAAV;AACA,QAAIE,oBAAJ;AACA,OAAG;AACDA,oBAAcD,GAAd;AACAA,YAAMC,YAAYC,OAAZ,CAAoB,aAApB,EAAmC,EAAnC,CAAN;AACD,KAHD,QAGSD,gBAAgBD,GAHzB;;AAKA,QAAIF,mBAAmBhsB,OAAnB,CAA2BksB,GAA3B,MAAoC,CAAC,CAAzC,EAA4C;AAC1C,aAAOD,SAAP;AACD;AACDA,gBAAYA,UAAUG,OAAV,CAAkBpiC,oBAAWkiC,GAAX,gBAA0B,GAA1B,CAAlB,EAAkD,EAAlD,CAAZ;AACD;AACD,SAAOD,SAAP;AACD;;AAED,SAASI,OAAT,CAAiBr9B,IAAjB,EAAuBg9B,kBAAvB,EAA2CvC,SAA3C,EAAsDzB,QAAtD,EAAgEC,aAAhE,EAAwF;AAAA,oCAAN/R,IAAM;AAANA,QAAM;AAAA;;AACtF,MAAIrV,MAAMC,OAAN,CAAc2oB,SAAd,CAAJ,EAA8B;AAC5B,WAAO,iCACLA,UAAUviC,GAAV,CAAc;AAAA,aAAQmlC,0BACpBr9B,IADoB,EAEpBg9B,kBAFoB,EAGpBnjB,IAHoB,EAIpBmf,QAJoB,EAKpBC,aALoB,SAMjB/R,IANiB,EAAR;AAAA,KAAd,CADK,EASLxf,OATK,KAUF,IAVL;AAWD;;AAED,MAAI,CAACk0B,mBAAMha,cAAN,CAAqB6Y,SAArB,CAAL,EAAsC;AACpC,WAAO,IAAInC,SAAJ,QACFW,aADE,iBACeD,QADf,oCAAP;AAGD;;AAnBqF,MAqB9Ev7B,IArB8E,GAqBrEg9B,SArBqE,CAqB9Eh9B,IArB8E;;AAsBtF,MAAM6/B,wBAAwB,mCAAiB7/B,IAAjB,CAA9B;AACA,MAAM8/B,qBAAqBP,mBAAmBrpC,MAAnB,GAA4B,CAA5B,GACvBmpC,UAAUQ,qBAAV,EAAiCN,kBAAjC,CADuB,GAEvBM,qBAFJ;;AAIA,MAAI,0BAAQt9B,IAAR,KAAiB,CAACA,KAAK9L,IAAL,CAAUqpC,kBAAV,CAAtB,EAAqD;AACnD,WAAO,IAAIjF,SAAJ,cACAW,aADA,iBACiBD,QADjB,0EACuFh5B,IADvF,EAAP;AAGD;;AAED,MAAI,CAAC,0BAAQA,IAAR,CAAD,IAAkBu9B,uBAAuBv9B,IAA7C,EAAmD;AACjD,WAAO,IAAIs4B,SAAJ,cACAW,aADA,iBACiBD,QADjB,gDAC6Dh5B,IAD7D,sBAC0Eu9B,kBAD1E,EAAP;AAGD;;AAED,SAAO,IAAP;AACD;;AAEc,SAASV,iBAAT,CACb78B,IADa,EAGb;AAAA,MADAzM,OACA,uEADU,EACV;;AACA,MAAI,OAAOyM,IAAP,KAAgB,QAAhB,IAA4B,CAAC,0BAAQA,IAAR,CAAjC,EAAgD;AAC9C,UAAM,IAAIs4B,SAAJ,CAAc,kCAAd,CAAN;AACD;;AAED,MAAMkF,gBAAgBpiB,OAAOqiB,IAAP,CAAYlqC,OAAZ,CAAtB;AACA,MAAIiqC,cAAc7pC,MAAd,GAAuB,CAAvB,IAA6B6pC,cAAc7pC,MAAd,KAAyB,CAAzB,IAA8B6pC,cAAc,CAAd,MAAqB,WAApF,EAAkG;AAChG,UAAM,IAAIlF,SAAJ,+EAAoEkF,cAAc71B,IAAd,CAAmB,MAAnB,CAApE,aAAN;AACD;AARD,2BAS+CpU,OAT/C,CASQupC,SATR;AAAA,MASmBE,kBATnB,sCASwC,EATxC;;;AAWA,MAAMU,sBAAsBV,mBAAmBve,KAAnB,CAAyB,UAACtY,CAAD,EAAO;AAC1D,QAAI,OAAOA,CAAP,KAAa,QAAb,IAAyB,QAAQjS,IAAR,CAAaiS,CAAb,CAA7B,EAA8C;AAC5C,aAAO,KAAP;AACD;AACD,WAAO,kDAAiDjS,IAAjD,CAAsDiS,CAAtD;AAAP;AACD,GAL2B,CAA5B;AAMA,MAAI,CAACu3B,mBAAL,EAA0B;AACxB,UAAM,IAAIpF,SAAJ,CAAc,2EAAd,CAAN;AACD;;AAED,WAASqF,0BAAT,CAAoC1nC,KAApC,EAA2C+iC,QAA3C,EAAqDC,aAArD,EAA6E;AAAA,QACvDwB,SADuD,GACzCxkC,KADyC,CAClE+iC,QADkE;;AAE3E,QAAI/iC,MAAM+iC,QAAN,KAAmB,IAAvB,EAA6B;AAC3B,aAAO,IAAP;AACD;;AAJ0E,uCAAN9R,IAAM;AAANA,UAAM;AAAA;;AAK3E,WAAOmW,0BAAQr9B,IAAR,EAAcg9B,kBAAd,EAAkCvC,SAAlC,EAA6CzB,QAA7C,EAAuDC,aAAvD,SAAyE/R,IAAzE,EAAP;AACD;;AAEDyW,6BAA2B/E,UAA3B;AAAwC,aAASgF,yBAAT,CACtC3nC,KADsC,EAEtC+iC,QAFsC,EAGtCC,aAHsC,EAKtC;AAAA,UACoBwB,SADpB,GACkCxkC,KADlC,CACS+iC,QADT;;AAEA,UAAIyB,aAAa,IAAjB,EAAuB;AACrB,eAAO,IAAInC,SAAJ,cAAmBW,aAAnB,iBAAoCD,QAApC,wDAAwFh5B,IAAxF,EAAP;AACD;;AAJD,yCADGknB,IACH;AADGA,YACH;AAAA;;AAKA,aAAOmW,0BAAQr9B,IAAR,EAAcg9B,kBAAd,EAAkCvC,SAAlC,EAA6CzB,QAA7C,EAAuDC,aAAvD,SAAyE/R,IAAzE,EAAP;AACD;;AAXD,WAAiD0W,yBAAjD;AAAA;;AAaA,SAAO,gCAAcD,0BAAd,gCAA+D39B,IAA/D,GAAuEA,IAAvE,CAAP;AACD;;;;;;;;;;;;;;;qBC/GuB69B,Y;;AAFxB;;;;;;AAEe,SAASA,YAAT,CAAsB9B,QAAtB,EAAgC+B,aAAhC,EAA+CC,aAA/C,EAA8D;AAC3E,MAAI,OAAOhC,QAAP,KAAoB,UAApB,IAAkC,OAAOA,SAASnD,UAAhB,KAA+B,UAArE,EAAiF;AAC/E,UAAM,IAAIN,SAAJ,CAAc,uFAAd,CAAN;AACD;;AAED,MAAI,OAAOwF,aAAP,KAAyB,QAA7B,EAAuC;AACrC,UAAM,IAAIxF,SAAJ,CAAc,kCAAd,CAAN;AACD;;AAED,MAAI,OAAOyF,aAAP,KAAyB,UAA7B,EAAyC;AACvC,UAAM,IAAIzF,SAAJ,CAAc,uCAAd,CAAN;AACD;;AAED,WAAS0F,oBAAT,CAA8B/nC,KAA9B,EAAqC+iC,QAArC,EAA+CC,aAA/C,EAAuE;AAAA,sCAAN/R,IAAM;AAANA,UAAM;AAAA;;AACrE,QAAM0L,QAAQmJ,SAASnD,UAAT,kBAAoB3iC,KAApB,EAA2B+iC,QAA3B,EAAqCC,aAArC,SAAuD/R,IAAvD,EAAd;AACA,QAAI0L,KAAJ,EAAW;AACT,aAAOA,KAAP;AACD;;AAED,QAAI38B,MAAM6nC,aAAN,KAAwB,IAA5B,EAAkC;AAChC,aAAO,IAAP;AACD;;AAED,QAAMG,aAAaF,gCAAc9nC,KAAd,EAAqB6nC,aAArB,EAAoC7E,aAApC,SAAsD/R,IAAtD,EAAnB;AACA,QAAI+W,UAAJ,EAAgB;AACd,aAAO,IAAP;AACD;AACD,WAAO,IAAI9C,KAAJ,wBAAmBnC,QAAnB,gDAAoD8E,aAApD,4CAAP;AACD;;AAED,MAAMtF;AAAY,aAAS0F,oBAAT,CAA8BjoC,KAA9B,EAAqC+iC,QAArC,EAAwD;AACxE,UAAI/iC,MAAM+iC,QAAN,KAAmB,IAAvB,EAA6B;AAC3B,eAAO,IAAP;AACD;;AAHuE,yCAAN9R,IAAM;AAANA,YAAM;AAAA;;AAIxE,aAAO8W,uCAAqB/nC,KAArB,EAA4B+iC,QAA5B,SAAyC9R,IAAzC,EAAP;AACD;;AALK,WAAqBgX,oBAArB;AAAA,KAAN;;AAOA1F,YAAUI,UAAV,GAAuBoF,oBAAvB;;AAEA,SAAO,gCAAcxF,SAAd,EAAyB,cAAzB,EAAyC,EAAEuD,kBAAF,EAAY+B,4BAAZ,EAA2BC,4BAA3B,EAAzC,CAAP;AACD;;;;;;;;;;;;;;;;;;qBCjBuBI,oB;;AAzBxB;;AACA;;;;AACA;;;;AACA;;;;;;AAEA,SAASC,WAAT,CAAqBjC,IAArB,EAA2B;AACzB,MAAI,OAAOA,IAAP,KAAgB,QAApB,EAA8B;AAC5B,WAAOA,IAAP;AACD;AACD,MAAM1+B,OAAO,mCAAiB0+B,IAAjB,CAAb;;AAEA,4BANyB,CAME;AAC3B,SAAO1+B,QAAQ,qBAAf;AACD;;AAED,SAAS4gC,mBAAT,CAA6BlC,IAA7B,EAAmClmC,KAAnC,EAA0C+iC,QAA1C,EAAoDC,aAApD,EAAmE;AAAA,MACzDx7B,IADyD,GAChDxH,MAAM+iC,QAAN,CADgD,CACzDv7B,IADyD;;;AAGjE,MAAIA,SAAS0+B,IAAb,EAAmB;AACjB,WAAO,IAAP;AACD;;AAED,SAAO,IAAI7D,SAAJ,QAAiBW,aAAjB,iBAAkCD,QAAlC,iDAA8EoF,YAAYjC,IAAZ,CAA9E,EAAP;AACD;;AAEc,SAASgC,oBAAT,CAA8BhC,IAA9B,EAAoC;AACjD,MAAIA,SAAS,GAAb,EAAkB;AAChB,WAAO,gCAAc7uB,kBAAd,EAAuB,gBAAvB,EAAyC6uB,IAAzC,CAAP;AACD;;AAED,MAAI,OAAOA,IAAP,KAAgB,QAAhB,IAA4B,OAAOA,IAAP,KAAgB,UAAhD,EAA4D;AAC1D,UAAM,IAAI7D,SAAJ,uFAAiG6D,IAAjG,yCAAiGA,IAAjG,GAAN;AACD;;AAED,WAASmC,WAAT,CAAqBroC,KAArB,EAA4B+iC,QAA5B,EAAsCC,aAAtC,EAA8D;AAC5D,QAAIhjC,MAAM+iC,QAAN,KAAmB,IAAvB,EAA6B;AAC3B,aAAO,IAAP;AACD;;AAH2D,sCAAN9R,IAAM;AAANA,UAAM;AAAA;;AAI5D,WAAOmX,sCAAoBlC,IAApB,EAA0BlmC,KAA1B,EAAiC+iC,QAAjC,EAA2CC,aAA3C,SAA6D/R,IAA7D,EAAP;AACD;AACDoX,cAAY1F,UAAZ,GAAyB0F,WAAzB,CAfiD,CAeX;;AAEtC,MAAMrC,WAAWmC,YAAYjC,IAAZ,CAAjB;AACA,MAAMoC,wCAA+BtC,QAA/B,OAAN;AACA,SAAO,gCAAc,sBAAI,CAAC3uB,kBAAD,EAAUgxB,WAAV,CAAJ,EAA4BC,aAA5B,CAAd,EAA0DA,aAA1D,EAAyEpC,IAAzE,CAAP;AACD;;;;;;;;;;;;;;;;;;AC7CD;;;;;;AAEA,SAASqC,YAAT,CAAsBvoC,KAAtB,EAA6B+iC,QAA7B,EAAuCC,aAAvC,EAAsD;AACpD,MAAIhjC,MAAM+iC,QAAN,KAAmB,IAAvB,EAA6B;AAC3B,WAAO,IAAP;AACD;AACD,SAAO,IAAIV,SAAJ,QAAiBW,aAAjB,6BAAyCD,QAAzC,4DAAiG/iC,MAAM+iC,QAAN,CAAjG,EAAP;AACD;AACDwF,aAAa5F,UAAb;AAA0B,WAAS6F,oBAAT,CAA8BxoC,KAA9B,EAAqC+iC,QAArC,EAA+CC,aAA/C,EAA8D;AACtF,QAAIhjC,MAAM+iC,QAAN,MAAoB,IAAxB,EAA8B;AAC5B,aAAO,IAAP;AACD;AACD,WAAO,IAAIV,SAAJ,QAAiBW,aAAjB,6BAAyCD,QAAzC,+CAAoF/iC,MAAM+iC,QAAN,CAApF,EAAP;AACD;;AALD,SAAmCyF,oBAAnC;AAAA;;qBAOe;AAAA,SAAM,gCAAcD,YAAd,EAA4B,cAA5B,CAAN;AAAA,C;;;;;;;;;;;;;;;qBCbSnC,gB;;AAFxB;;;;;;AAEe,SAASA,gBAAT,CAA0BvgC,SAA1B,EAAqC;AAClD,MAAI,OAAOA,SAAP,KAAqB,QAAzB,EAAmC;AACjC,WAAOA,SAAP;AACD;AACD,MAAI,OAAOA,SAAP,KAAqB,UAAzB,EAAqC;AACnC,WAAOA,UAAUg4B,WAAV,IAAyB,oCAAgBh4B,SAAhB,CAAhC;AACD;AACD,SAAO,IAAP;AACD;;;;;;;;;;;;;;;ICVO4iC,K,GAAUh6B,I,CAAVg6B,K;;AACR,IAAMC,SAASnP,QAAf;;qBAEe9a,OAAOxK,SAAP,IAAoB,0BAA4B;AAAA,SAAM,OAAO/D,CAAP,KAAa,QAAb,IAAyBw4B,OAAOx4B,CAAP,CAAzB,IAAsCu4B,MAAMv4B,CAAN,MAAaA,CAAzD;AAAA,C;;;;;;;;;;;;;;;;ACH/D;;;;;;qBAEey4B,0B;;;;;;;;;;;;;;;;;;qBCFSC,W;AAAT,SAASA,WAAT,CAAqB14B,CAArB,EAAwB;AACrC,SAAO,CAACA,CAAD,IAAO,QAAOA,CAAP,yCAAOA,CAAP,OAAa,QAAb,IAAyB,OAAOA,CAAP,KAAa,UAApD;AACD;;;;;;;;;;;;;;;qBCAuB24B,kB;;AAFxB;;;;;;AAEe,SAASA,kBAAT,CAA4BC,YAA5B,EAA0C;AACvD,SAAOnD,mBAAMrZ,QAAN,CAAeyc,OAAf,CAAuBD,YAAvB,EAAqCt3B,MAArC,CAA4C;AAAA,WAASiH,UAAU,CAAV,IAAeA,KAAxB;AAAA,GAA5C,CAAP;AACD;;;;;;;;;;;;;;;;;;qBCFuBuwB,M;;AAFxB;;;;;;AAEe,SAASA,MAAT,CAAgBvwB,KAAhB,EAAuB;AACpC,MAAIA,UAAU,IAAd,EAAoB;AAClB,WAAO,MAAP;AACD;AACD,MAAImD,MAAMC,OAAN,CAAcpD,KAAd,CAAJ,EAA0B;AACxB,WAAO,OAAP;AACD;AACD,MAAI,QAAOA,KAAP,yCAAOA,KAAP,OAAiB,QAArB,EAA+B;AAC7B,kBAAcA,KAAd,yCAAcA,KAAd;AACD;AACD,MAAIktB,mBAAMha,cAAN,CAAqBlT,KAArB,CAAJ,EAAiC;AAC/B,WAAOA,MAAMjR,IAAb;AACD;AACD,SAAOiR,KAAP;AACD;;;;;;;;;;;;;;;qBChBuBwwB,a;;;;;;;;AAAT,SAASA,aAAT,CAAuB1G,SAAvB,EAAkCyD,QAAlC,EAAgE;AAAA,MAApBkD,WAAoB,uEAAN,IAAM;;AAC7E,SAAO,yBAAc3G,UAAUpjC,IAAV,EAAd,EAAgC;AACrC6mC,sBADqC;AAErCkD,4BAFqC;AAGrCvG,gBAAY,yBAAcJ,UAAUI,UAAV,CAAqBxjC,IAArB,EAAd,EAA2C;AACrD6mC,wBADqD;AAErDkD,8BAFqD;AAGrDC,oBAAc;AAHuC,KAA3C;AAHyB,GAAhC,CAAP;AASD;;;;;;;;;;;;ACVD;;;;AAEA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;;;AAEAC,OAAOC,OAAP,GAAiB;AACf7G,uBADe;AAEf+B,+BAFe;AAGfO,uCAHe;AAIfO,uEAJe;AAKfO,qCALe;AAMfS,6CANe;AAOfK,qDAPe;AAQfE,mDARe;AASfgB,yCATe;AAUfS,uCAVe;AAWfE,yCAXe;AAYfe,+CAZe;AAafC,+BAbe;AAcfC,6BAde;AAefC,6DAfe;AAgBfC,qEAhBe;AAiBfC,mCAjBe;AAkBfC,qDAlBe;AAmBfC,mDAnBe;AAoBfC,2CApBe;AAqBfC,6BArBe;AAsBfC,qBAtBe;AAuBf3rC,2BAvBe;AAwBf4rC,qCAxBe;AAyBfC,6CAzBe;AA0BfzD,qCA1Be;AA2Bf0D,2BA3Be;AA4BfC,iDA5Be;AA6BfC,uCA7Be;AA8BfC,2CA9Be;AA+BfC,iCA/Be;AAgCfC;AAhCe,CAAjB;;;;;;;;;;;;;;;;AClCA;;;;AACA;;;;;;AAEA,SAASC,eAAT,CAAyBzqC,KAAzB,EAAgC+iC,QAAhC,EAA0CC,aAA1C,EAAyD;AAAA,MACnCwB,SADmC,GACrBxkC,KADqB,CAC9C+iC,QAD8C;;AAEvD,MAAIyB,aAAa,IAAb,IAAqB,CAAC,4BAAUA,SAAV,CAA1B,EAAgD;AAC9C,WAAO,IAAIlC,UAAJ,QAAkBS,QAAlB,oBAAiCC,aAAjC,0BAAP;AACD;AACD,SAAO,IAAP;AACD;;AAED,IAAMT;AAAY,WAASgH,OAAT,CAAiBvpC,KAAjB,EAAwB+iC,QAAxB,EAA2C;AAAA,QACvCyB,SADuC,GACzBxkC,KADyB,CAClD+iC,QADkD;;;AAG3D,QAAIyB,aAAa,IAAjB,EAAuB;AACrB,aAAO,IAAP;AACD;;AAL0D,sCAANvT,IAAM;AAANA,UAAM;AAAA;;AAO3D,WAAOwZ,kCAAgBzqC,KAAhB,EAAuB+iC,QAAvB,SAAoC9R,IAApC,EAAP;AACD;;AARK,SAAqBsY,OAArB;AAAA,GAAN;;AAUAhH,UAAUI,UAAV,GAAuB8H,eAAvB;;qBAEe;AAAA,SAAM,gCAAclI,SAAd,EAAyB,SAAzB,CAAN;AAAA,C;;;;;;;;;;;;;;;qBCpBSmI,e;;AAHxB;;;;AACA;;;;;;;;AAEe,SAASA,eAAT,CAAyB5E,QAAzB,EAAoD;AAAA,MAAjB/7B,IAAiB,uEAAV,QAAU;;AACjE,MAAI,OAAO+7B,QAAP,KAAoB,UAAxB,EAAoC;AAClC,UAAM,IAAIzD,SAAJ,CAAc,sDAAd,CAAN;AACD;;AAED,MAAME;AAAY,aAASiH,MAAT,CAChBxpC,KADgB,EAEhB+iC,QAFgB,EAGhBC,aAHgB,EAIhB2H,QAJgB,EAKhBC,YALgB,EAOhB;AAAA,wCADG3Z,IACH;AADGA,YACH;AAAA;;AAAA,UACoBuT,SADpB,GACkCxkC,KADlC,CACS+iC,QADT;;;AAGA,UAAIyB,aAAa,IAAb,IAAqB,8BAAYA,SAAZ,CAAzB,EAAiD;AAC/C,eAAO,IAAP;AACD;;AAED,UAAI/B,aAAa,IAAjB;AACAtd,aAAOqiB,IAAP,CAAYhD,SAAZ,EAAuBzmC,IAAvB,CAA4B,UAACqE,GAAD,EAAS;AACnCqgC,qBAAaqD,+CACR1jC,GADQ,EACFA,GADE,GAEXA,GAFW,EAGX4gC,aAHW,EAIX2H,QAJW,eAKPC,YALO,kBAKUxoC,GALV,UAMR6uB,IANQ,EAAb;AAQA,eAAOwR,cAAc,IAArB;AACD,OAVD;AAWA,aAAOA,cAAc,IAArB;AACD;;AA3BK,WAAqB+G,MAArB;AAAA,KAAN;;AA6BAjH,YAAUI,UAAV;AAAuB,aAASkI,eAAT,CAAyB7qC,KAAzB,EAAgC+iC,QAAhC,EAA0CC,aAA1C,EAAkE;AAAA,UACnEwB,SADmE,GACrDxkC,KADqD,CAC9E+iC,QAD8E;;;AAGvF,UAAIyB,aAAa,IAAjB,EAAuB;AACrB,eAAO,IAAInC,SAAJ,QAAiBW,aAAjB,kBAAmCD,QAAnC,2CAAyEyB,SAAzE,EAAP;AACD;;AALsF,yCAANvT,IAAM;AAANA,YAAM;AAAA;;AAOvF,aAAOsR,4BAAUviC,KAAV,EAAiB+iC,QAAjB,EAA2BC,aAA3B,SAA6C/R,IAA7C,EAAP;AACD;;AARD,WAAgC4Z,eAAhC;AAAA;;AAUA,SAAO,gCAActI,SAAd,EAAyBx4B,IAAzB,EAA+B+7B,QAA/B,CAAP;AACD;;;;;;;;;;;;;;;qBC9CuBgF,uB;;;;;;AAFxB;;;;;;;;AAEe,SAASA,uBAAT,CAAiChF,QAAjC,EAA8D;AAC3E,MAAI,OAAOA,QAAP,KAAoB,UAAxB,EAAoC;AAClC,UAAM,IAAIzD,SAAJ,CAAc,wBAAd,CAAN;AACD;;AAH0E,oCAAhB0I,cAAgB;AAAhBA,kBAAgB;AAAA;;AAK3E,MAAIA,eAAertC,MAAf,GAAwB,CAA5B,EAA+B;AAC7B,UAAM,IAAI2kC,SAAJ,CAAc,6EAAd,CAAN;AACD;;AAED,MAAM2I,WAAWD,eAAer5B,IAAf,CAAoB,OAApB,CAAjB;;AAEA,MAAMzP,MAAM8oC,eAAelH,MAAf,CAAsB,UAACC,GAAD,EAAMkB,IAAN;AAAA,wCAAqBlB,GAArB,sBAA2BkB,IAA3B,EAAkC,IAAlC;AAAA,GAAtB,EAAiE,EAAjE,CAAZ;AACA,MAAMiG,aAAa,SAAbA,UAAa,CAAC1e,KAAD,EAAQyY,IAAR;AAAA,WAAkBzY,SAAStqB,IAAI+iC,IAAJ,IAAY,CAAZ,GAAgB,CAAzB,CAAlB;AAAA,GAAnB;;AAEA,MAAMzC;AAAY,aAASkH,sBAAT,CAAgCzpC,KAAhC,EAAuC+iC,QAAvC,EAAiDC,aAAjD,EAAyE;AACzF,UAAMkI,qBAAqB/lB,OAAOqiB,IAAP,CAAYxnC,KAAZ,EACxBwR,MADwB,CACjB;AAAA,eAAQxR,MAAMglC,IAAN,KAAe,IAAvB;AAAA,OADiB,EAExBnB,MAFwB,CAEjBoH,UAFiB,EAEL,CAFK,CAA3B;AAGA,UAAIC,qBAAqB,CAAzB,EAA4B;AAC1B,eAAO,IAAIhG,KAAJ,eAAelC,aAAf,2DAA0EgI,QAA1E,EAAP;AACD;;AANwF,yCAAN/Z,IAAM;AAANA,YAAM;AAAA;;AAOzF,aAAO6U,2BAAS9lC,KAAT,EAAgB+iC,QAAhB,EAA0BC,aAA1B,SAA4C/R,IAA5C,EAAP;AACD;;AARK,WAAqBwY,sBAArB;AAAA,KAAN;;AAUAlH,YAAUI,UAAV;AAAuB,aAASwI,8BAAT,CACrBnrC,KADqB,EAErB+iC,QAFqB,EAGrBC,aAHqB,EAKrB;AACA,UAAMkI,qBAAqB/lB,OAAOqiB,IAAP,CAAYxnC,KAAZ,EACxBwR,MADwB,CACjB;AAAA,eAAQwzB,SAASjC,QAAT,IAAqB/iC,MAAMglC,IAAN,KAAe,IAA5C;AAAA,OADiB,EAExBnB,MAFwB,CAEjBoH,UAFiB,EAEL,CAFK,CAA3B;AAGA,UAAIC,qBAAqB,CAAzB,EAA4B;AAC1B,eAAO,IAAIhG,KAAJ,eAAelC,aAAf,2DAA0EgI,QAA1E,EAAP;AACD;;AAND,yCADG/Z,IACH;AADGA,YACH;AAAA;;AAOA,aAAO6U,2BAAS9lC,KAAT,EAAgB+iC,QAAhB,EAA0BC,aAA1B,SAA4C/R,IAA5C,EAAP;AACD;;AAbD,WAAgCka,8BAAhC;AAAA;;AAeA,SAAO,gCAAc5I,SAAd,qCAAmDyI,QAAnD,GAA+DD,cAA/D,CAAP;AACD;;;;;;;;;;;;;;;qBCvCuBK,qB;;AAHxB;;AACA;;;;;;AAEe,SAASA,qBAAT,GAAkD;AAAA,oCAAhBL,cAAgB;AAAhBA,kBAAgB;AAAA;;AAC/D,MAAIA,eAAertC,MAAf,GAAwB,CAA5B,EAA+B;AAC7B,UAAM,IAAI2kC,SAAJ,CAAc,0DAAd,CAAN;AACD;AACD,MAAI,CAAC0I,eAAeviB,KAAf,CAAqB;AAAA,WAAK,OAAOtY,CAAP,KAAa,QAAlB;AAAA,GAArB,CAAL,EAAuD;AACrD,UAAM,IAAImyB,SAAJ,CAAc,0CAAd,CAAN;AACD;;AAED,MAAMwC,YAAYkG,eAAer5B,IAAf,CAAoB,OAApB,CAAlB;;AAEA,MAAM6wB;AAAY,aAASmH,0BAAT,CAAoC1pC,KAApC,EAA2C+iC,QAA3C,EAAqDC,aAArD,EAA6E;AAC7F,UAAMiI;AAAa,iBAAbA,UAAa,CAAC1e,KAAD,EAAQyY,IAAR;AAAA,iBAAkBzY,SAASvsB,MAAMglC,IAAN,IAAc,CAAd,GAAkB,CAA3B,CAAlB;AAAA;;AAAb;AAAA,SAAN;;AAEA,UAAMkG,qBAAqBH,eAAelH,MAAf,CAAsBoH,UAAtB,EAAkC,CAAlC,CAA3B;AACA,UAAIC,qBAAqB,CAAzB,EAA4B;AAC1B,eAAO,IAAIhG,KAAJ,eAAelC,aAAf,2EAA0F6B,SAA1F,EAAP;AACD;;AAN4F,yCAAN5T,IAAM;AAANA,YAAM;AAAA;;AAO7F,aAAOkU,kCAAKnlC,KAAL,EAAY+iC,QAAZ,EAAsBC,aAAtB,SAAwC/R,IAAxC,EAAP;AACD;;AARK,WAAqByY,0BAArB;AAAA,KAAN;;AAUAnH,YAAUI,UAAV;AAAuB,aAAS0I,kCAAT,CACrBrrC,KADqB,EAErB+iC,QAFqB,EAGrBC,aAHqB,EAKrB;AACA,UAAMiI;AAAa,iBAAbA,UAAa,CAAC1e,KAAD,EAAQyY,IAAR;AAAA,iBAAkBzY,SAASvsB,MAAMglC,IAAN,IAAc,CAAd,GAAkB,CAA3B,CAAlB;AAAA;;AAAb;AAAA,SAAN;;AAEA,UAAMkG,qBAAqBH,eAAelH,MAAf,CAAsBoH,UAAtB,EAAkC,CAAlC,CAA3B;AACA,UAAIC,qBAAqB,CAAzB,EAA4B;AAC1B,eAAO,IAAIhG,KAAJ,eAAelC,aAAf,2EAA0F6B,SAA1F,EAAP;AACD;;AAND,yCADG5T,IACH;AADGA,YACH;AAAA;;AAOA,aAAOkU,gBAAKxC,UAAL,yBAAgB3iC,KAAhB,EAAuB+iC,QAAvB,EAAiCC,aAAjC,SAAmD/R,IAAnD,EAAP;AACD;;AAbD,WAAgCoa,kCAAhC;AAAA;;AAeA,SAAO,gCAAc9I,SAAd,0CAAwDsC,SAAxD,GAAqEkG,cAArE,CAAP;AACD;;;;;;;;;;;;;;;qBCnCuBpB,S;;AAJxB;;;;AACA;;AACA;;;;;;AAEe,SAASA,SAAT,CAAmB2B,CAAnB,EAAuC;AAAA,MAAjBxF,QAAiB,uEAANhmC,eAAM;;AACpD,MAAI,OAAOwrC,CAAP,KAAa,QAAb,IAAyBt6B,MAAMs6B,CAAN,CAAzB,IAAqCA,IAAI,CAA7C,EAAgD;AAC9C,UAAM,IAAIjJ,SAAJ,CAAc,mCAAd,CAAN;AACD;;AAED,MAAME;AAAY,aAASgJ,kBAAT,CAA4BvrC,KAA5B,EAAmC+iC,QAAnC,EAA6CC,aAA7C,EAAqE;AACrF,UAAID,aAAa,UAAjB,EAA6B;AAC3B,eAAO,IAAIV,SAAJ,QAAiBW,aAAjB,+DAAP;AACD;;AAHoF,UAK7E39B,QAL6E,GAKhErF,KALgE,CAK7EqF,QAL6E;;AAMrF,UAAMmmC,gBAAgB7F,mBAAMrZ,QAAN,CAAeC,KAAf,CAAqBlnB,QAArB,CAAtB;;AAEA,UAAImmC,kBAAkBF,CAAtB,EAAyB;AACvB,eAAO,IAAIhJ,UAAJ,QACFU,aADE,oCACkCsI,CADlC,wCAC8DE,aAD9D,iBAAP;AAGD;;AAZoF,wCAANva,IAAM;AAANA,YAAM;AAAA;;AAarF,aAAO6U,2BAAS9lC,KAAT,EAAgB+iC,QAAhB,EAA0BC,aAA1B,SAA4C/R,IAA5C,EAAP;AACD;;AAdK,WAAqBsa,kBAArB;AAAA,KAAN;AAeAhJ,YAAUI,UAAV,GAAuBJ,SAAvB;;AAEA,SAAO,gCAAcA,SAAd,wBAAsC+I,CAAtC,GAA2CA,CAA3C,CAAP;AACD;;;;;;;;;;;;;;;;AC3BD;;;;AACA;;;;AACA;;;;;;qBAEe,sBAAI,CAAC,2BAAD,EAAY,qCAAZ,CAAJ,EAAsC,oBAAtC,C;;;;;;;;;;;;;;;;ACJf;;;;AACA;;;;;;AAEA,SAASG,aAAT,CAAuBv7B,CAAvB,EAA0B;AACxB,SAAO,OAAOA,CAAP,KAAa,QAAb,IAAyBqpB,SAASrpB,CAAT,CAAzB,IAAwCA,KAAK,CAA7C,IAAkD,CAAC,2BAAGA,CAAH,EAAM,CAAC,CAAP,CAA1D;AACD;;AAED,SAAS25B,iBAAT,CAA2B7pC,KAA3B,EAAkC+iC,QAAlC,EAA4CC,aAA5C,EAA2D;AACzD,MAAMjiC,QAAQf,MAAM+iC,QAAN,CAAd;;AAEA,MAAIhiC,SAAS,IAAT,IAAiB0qC,cAAc1qC,KAAd,CAArB,EAA2C;AACzC,WAAO,IAAP;AACD;;AAED,SAAO,IAAIuhC,UAAJ,QAAkBS,QAAlB,oBAAiCC,aAAjC,qCAAP;AACD;;AAED,SAAS0I,yBAAT,CAAmC1rC,KAAnC,EAA0C+iC,QAA1C,EAAoDC,aAApD,EAAmE;AACjE,MAAMjiC,QAAQf,MAAM+iC,QAAN,CAAd;;AAEA,MAAI0I,cAAc1qC,KAAd,CAAJ,EAA0B;AACxB,WAAO,IAAP;AACD;;AAED,SAAO,IAAIuhC,UAAJ,QAAkBS,QAAlB,oBAAiCC,aAAjC,qCAAP;AACD;;AAED6G,kBAAkBlH,UAAlB,GAA+B+I,yBAA/B;;qBAEe;AAAA,SAAM,gCAAc7B,iBAAd,EAAiC,mBAAjC,CAAN;AAAA,C;;;;;;;;;;;;;;;;AC7Bf;;AACA;;;;;;AAEA,IAAM8B,oBAAoB,iDAA1B;;AAEA,IAAMpJ;AAAY,WAASuH,aAAT,CAAuB9pC,KAAvB,EAA8B+iC,QAA9B,EAAwCC,aAAxC,EAAgE;AAChF,QAAIhjC,MAAM+iC,QAAN,KAAmB,IAAvB,EAA6B;AAC3B,aAAO,IAAP;AACD;;AAH+E,sCAAN9R,IAAM;AAANA,UAAM;AAAA;;AAKhF,QAAM2a,cAAcC,oCAAO7rC,KAAP,EAAc+iC,QAAd,EAAwBC,aAAxB,SAA0C/R,IAA1C,EAApB;AACA,QAAI2a,WAAJ,EAAiB;AACf,aAAOA,WAAP;AACD;;AAED,QAAM7qC,QAAQf,MAAM+iC,QAAN,CAAd;;AAEA,QAAM+I,cAAcH,kBAAkB1tC,IAAlB,CAAuB8C,KAAvB,CAApB;AACA,QAAI+qC,WAAJ,EAAiB;AACf,aAAO,IAAP;AACD;;AAED,WAAO,IAAIzJ,SAAJ,QAAiBW,aAAjB,wBAAyCD,QAAzC,0BAA8DhiC,KAA9D,iSAAP;AAOD;;AAxBK,SAAqB+oC,aAArB;AAAA,GAAN;;AA0BAvH,UAAUI,UAAV;AAAuB,WAASoJ,qBAAT,CAA+B/rC,KAA/B,EAAsC+iC,QAAtC,EAAgDC,aAAhD,EAAwE;AAC7F,QAAIhjC,MAAM+iC,QAAN,KAAmB,IAAvB,EAA6B;AAC3B,aAAO,IAAIV,SAAJ,QAAiBW,aAAjB,kBAAmCD,QAAnC,mBAAP;AACD;;AAH4F,uCAAN9R,IAAM;AAANA,UAAM;AAAA;;AAI7F,WAAOsR,4BAAUviC,KAAV,EAAiB+iC,QAAjB,EAA2BC,aAA3B,SAA6C/R,IAA7C,EAAP;AACD;;AALD,SAAgC8a,qBAAhC;AAAA;;qBAOe;AAAA,SAAM,gCAAcxJ,SAAd,EAAyB,eAAzB,CAAN;AAAA,C;;;;;;;;;;;;;;;;ACtCf;;;;AACA;;;;AACA;;;;;;AAEA;;;;;AAKA,IAAMyJ,6BAA6B;AACjChH,QAAM,MAD2B;AAEjClU,WAAS,SAFwB;AAGjCmb,gBAAc;AAHmB,CAAnC;;AAMA,SAASlC,MAAT,CAAgB/pC,KAAhB,EAAuB+iC,QAAvB,EAAiCC,aAAjC,EAAgD2H,QAAhD,EAA0DC,YAA1D,EAAwE;AAAA,MAClDpG,SADkD,GACpCxkC,KADoC,CAC7D+iC,QAD6D;;AAEtE,MAAIyB,aAAa,IAAjB,EAAuB;AACrB,WAAO,IAAP;AACD;;AAED,MAAI,gCAAcA,SAAd,CAAJ,EAA8B;AAC5B,WAAO,IAAP;AACD;AACD,MAAM0H,eAAeF,2BAA2BrB,QAA3B,KAAwCA,QAA7D;AACA,SAAO,IAAItI,SAAJ,qBAAyB6J,YAAzB,kBAA2CtB,YAA3C,2BAAuE,yBAAOpG,SAAP,CAAvE,+BAA4GxB,aAA5G,4BAAP;AACD;AACD+G,OAAOpH,UAAP;AAAoB,WAASwJ,cAAT,CAClBnsC,KADkB,EAElB+iC,QAFkB,EAGlBC,aAHkB,EAIlB2H,QAJkB,EAKlBC,YALkB,EAOlB;AAAA,QACoBpG,SADpB,GACkCxkC,KADlC,CACS+iC,QADT;;AAEA,QAAIyB,aAAa,IAAjB,EAAuB;AACrB,UAAM0H,eAAeF,2BAA2BrB,QAA3B,KAAwCA,QAA7D;AACA,aAAO,IAAItI,SAAJ,iBAAqB6J,YAArB,kBAAuCtB,YAAvC,4CAAoF5H,aAApF,qCAA2HwB,SAA3H,SAAP;AACD;;AALD,sCADGvT,IACH;AADGA,UACH;AAAA;;AAMA,WAAO8Y,yBAAO/pC,KAAP,EAAc+iC,QAAd,EAAwBC,aAAxB,EAAuC2H,QAAvC,EAAiDC,YAAjD,SAAkE3Z,IAAlE,EAAP;AACD;;AAdD,SAA6Bkb,cAA7B;AAAA;;qBAgBe;AAAA,SAAM,gCAAcpC,MAAd,EAAsB,QAAtB,CAAN;AAAA,C;;;;;;;;;;;;;;;qBCNSC,E;;AArCxB;;AACA;;;;;;;;AAEA,SAASoC,kBAAT,CAA4BhK,UAA5B,EAAwC;AACtC,MAAMG;AAAY,aAAS8J,SAAT,CAAmBrsC,KAAnB,EAA0B+iC,QAA1B,EAAoCC,aAApC,EAA4D;AAAA,wCAAN/R,IAAM;AAANA,YAAM;AAAA;;AAAA,UACxDuT,SADwD,GAC1CxkC,KAD0C,CACnE+iC,QADmE;;AAE5E,UAAI,OAAOyB,SAAP,KAAqB,WAAzB,EAAsC;AACpC,eAAO,IAAP;AACD;;AAED,UAAMb,SAASvB,WACZngC,GADY,CACR;AAAA,eAAKkN,oBAAEnP,KAAF,EAAS+iC,QAAT,EAAmBC,aAAnB,SAAqC/R,IAArC,EAAL;AAAA,OADQ,EAEZzf,MAFY,CAELC,OAFK,CAAf;;AAIA,UAAIkyB,OAAOjmC,MAAP,GAAgB0kC,WAAW1kC,MAA/B,EAAuC;AACrC,eAAO,IAAP;AACD;AACD,aAAO,IAAI2kC,SAAJ,QAAiBW,aAAjB,4CAA6DD,QAA7D,QAAP;AACD;;AAdK,WAAqBsJ,SAArB;AAAA,KAAN;AAeA9J,YAAUI,UAAV;AAAuB,aAAS2J,iBAAT,CAA2BtsC,KAA3B,EAAkC+iC,QAAlC,EAA4CC,aAA5C,EAAoE;AAAA,yCAAN/R,IAAM;AAANA,YAAM;AAAA;;AAAA,UACrEuT,SADqE,GACvDxkC,KADuD,CAChF+iC,QADgF;;AAEzF,UAAI,OAAOyB,SAAP,KAAqB,WAAzB,EAAsC;AACpC,eAAO,IAAInC,SAAJ,QAAiBW,aAAjB,6CAA8DD,QAA9D,QAAP;AACD;;AAED,UAAMY,SAASvB,WACZngC,GADY,CACR;AAAA,eAAKkN,oBAAEnP,KAAF,EAAS+iC,QAAT,EAAmBC,aAAnB,SAAqC/R,IAArC,EAAL;AAAA,OADQ,EAEZzf,MAFY,CAELC,OAFK,CAAf;;AAIA,UAAIkyB,OAAOjmC,MAAP,KAAkB0kC,WAAW1kC,MAAjC,EAAyC;AACvC,eAAO,IAAI2kC,SAAJ,QAAiBW,aAAjB,gCAAiDW,MAAjD,sCAAgFZ,QAAhF,QAAP;AACD;AACD,aAAO,IAAP;AACD;;AAdD,WAAgCuJ,iBAAhC;AAAA;AAeA,SAAO,gCAAc/J,SAAd,EAAyB,WAAzB,EAAsCH,UAAtC,CAAP;AACD;;AAEc,SAAS4H,EAAT,CAAY5H,UAAZ,EAAqC;AAAA,MAAbr4B,IAAa,uEAAN,IAAM;;AAClD,MAAI,CAAC6R,MAAMC,OAAN,CAAcumB,UAAd,CAAL,EAAgC;AAC9B,UAAM,IAAIC,SAAJ,CAAc,uCAAd,CAAN;AACD;AACD,MAAID,WAAW1kC,MAAX,IAAqB,CAAzB,EAA4B;AAC1B,UAAM,IAAI4kC,UAAJ,CAAe,uCAAf,CAAN;AACD;;AAED,MAAMC,YAAY6J,oBAChB,wBAAQA,mBAAmBhK,UAAnB,CAAR,CADgB,4BAEbA,UAFa,GAAlB;;AAKA,SAAO,gCAAcG,SAAd,EAAyBx4B,IAAzB,EAA+Bq4B,UAA/B,CAAP;AACD;;;;;;;;;;;;;;;qBCvCuB/jC,K;;AAZxB;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;;;AAEA,IAAMkuC,mBAAmB9tB,OAAO8tB,gBAAP,IAA2B,0BAA2B,SAAC,CAAD,EAAM,EAAN,IAAY,CAA3F;;AAEA,SAASC,aAAT,CAAuBt8B,CAAvB,EAA0B;AACxB,SAAO,4BAAUA,CAAV,KAAgBzB,KAAKg+B,GAAL,CAASv8B,CAAT,IAAcq8B,gBAArC;AACD;;AAEc,SAASluC,KAAT,CAAewkB,GAAf,EAAoBD,GAApB,EAAyB;AACtC,MAAI,CAAC4pB,cAAc3pB,GAAd,CAAD,IAAuB,CAAC2pB,cAAc5pB,GAAd,CAA5B,EAAgD;AAC9C,UAAM,IAAI0f,UAAJ,4CAAiDzf,GAAjD,qBAA4DD,GAA5D,aAAN;AACD;AACD,MAAIC,QAAQD,GAAZ,EAAiB;AACf,UAAM,IAAI0f,UAAJ,CAAe,kCAAf,CAAN;AACD;AACD,SAAO,gCAAc,sBAAI,CAAC,2BAAD,EAAY,0BAAQ,EAAEc,KAAKvgB,GAAP,EAAYygB,IAAI1gB,GAAhB,EAAR,CAAZ,CAAJ,EAAiD,OAAjD,CAAd,EAAyE,OAAzE,EAAkF,EAAEC,QAAF,EAAOD,QAAP,EAAlF,CAAP;AACD;;;;;;;;;;;;;;;qBCjBuB8pB,a;;AAHxB;;;;AACA;;;;;;AAEe,SAASA,aAAT,CAAuBC,kBAAvB,EAA2C7G,QAA3C,EAA0E;AAAA,MAArB8G,YAAqB,uEAAN,IAAM;;AACvF,WAAS3C,UAAT,CAAoBjqC,KAApB,EAA2B+iC,QAA3B,EAAqCC,aAArC,EAA6D;AAC3D,QAAIhjC,MAAM2sC,kBAAN,CAAJ,EAA+B;AAAA,UACTnI,SADS,GACKxkC,KADL,CACpB+iC,QADoB;;AAE7B,UAAI,2BAAGyB,SAAH,EAAcoI,YAAd,KAA+B,OAAOpI,SAAP,KAAqB,WAAxD,EAAqE;AACnE,eAAO,IAAInC,SAAJ,QACFW,aADE,uBACqB2J,kBADrB,qCAC0D5J,QAD1D,8BAAP;AAGD;AACF;;AAR0D,sCAAN9R,IAAM;AAANA,UAAM;AAAA;;AAS3D,WAAO6U,2BAAS9lC,KAAT,EAAgB+iC,QAAhB,EAA0BC,aAA1B,SAA4C/R,IAA5C,EAAP;AACD;AACDgZ,aAAWtH,UAAX;AAAwB,aAASkK,kBAAT,CAA4B7sC,KAA5B,EAAmC+iC,QAAnC,EAA6CC,aAA7C,EAAqE;AAAA,UACvEwB,SADuE,GACzDxkC,KADyD,CAClF+iC,QADkF;;AAE3F,UAAI,2BAAGyB,SAAH,EAAcoI,YAAd,CAAJ,EAAiC;AAC/B,eAAO,IAAIvK,SAAJ,QAAiBW,aAAjB,6BAAyCD,QAAzC,8BAAP;AACD;;AAJ0F,yCAAN9R,IAAM;AAANA,YAAM;AAAA;;AAK3F,aAAO6U,SAASnD,UAAT,kBAAoB3iC,KAApB,EAA2B+iC,QAA3B,EAAqCC,aAArC,SAAuD/R,IAAvD,EAAP;AACD;;AAND,WAAiC4b,kBAAjC;AAAA;;AAQA,SAAO,gCACL5C,UADK,+BAEU0C,kBAFV,cAGL,CAACA,kBAAD,EAAqBC,YAArB,CAHK,CAAP;AAKD;;;;;;;;;;;;;;;;AC5BD;;;;;;AAEA,SAASE,oBAAT,CAA8BC,gBAA9B,EAAgD;AAC9C,WAAS7C,cAAT,CAAwBlqC,KAAxB,EAA+B+iC,QAA/B,EAAyCC,aAAzC,EAAwD2H,QAAxD,EAA2E;AACzE,QAAI3qC,MAAM+iC,QAAN,KAAmB,IAAvB,EAA6B;AAC3B,aAAO,IAAP;AACD;;AAED,QAAIgK,oBAAoB,OAAOA,gBAAP,KAA4B,UAApD,EAAgE;AAAA,wCALG9b,IAKH;AALGA,YAKH;AAAA;;AAC9D,aAAO,IAAIoR,SAAJ,CAAc0K,mCAAiB/sC,KAAjB,EAAwB+iC,QAAxB,EAAkCC,aAAlC,EAAiD2H,QAAjD,SAA8D1Z,IAA9D,EAAd,CAAP;AACD;AACD,WAAO,IAAIoR,SAAJ,iBAAqBU,QAArB,iBAAiC4H,QAAjC,oBAAgD3H,aAAhD,uBAAP;AACD;AACDkH,iBAAevH,UAAf,GAA4BuH,cAA5B;AACA,SAAOA,cAAP;AACD;;qBAEc;AAAA,MAAC6C,gBAAD,uEAAoB,IAApB;AAAA,SAA6B,gCAAcD,qBAAqBC,gBAArB,CAAd,EAAsD,gBAAtD,CAA7B;AAAA,C;;;;;;;;;;;;;;;qBC4GSC,mB;;;;;;AA7HxB;;AAEA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;;;;;AAEA,IAAMC,eAAerD,+BAArB;AACA,IAAMsD,eAAe,sBAAI,CAACtD,+BAAD,EAAqB,0BAAQ,EAAExG,KAAK,CAAP,EAAR,CAArB,CAAJ,CAArB;;AAEA,SAAS+J,aAAT,CAAuBtqB,GAAvB,EAA4BD,GAA5B,EAAiC;AAC/B,MAAI,OAAOA,GAAP,KAAe,QAAf,IAA2B,OAAOC,GAAP,KAAe,QAA9C,EAAwD;AACtD,WAAO,IAAP,CADsD,CACzC;AACd;;AAED,MAAIA,OAAOD,GAAX,EAAgB;AACd,WAAO,IAAP;AACD;AACD,SAAO,IAAI0f,UAAJ,CAAe,uCAAf,CAAP;AACD;;AAED,IAAM8K,iBAAiB;AACrB7K,WADqB;AAAA,uBACXviC,KADW,EACJ+iC,QADI,EACM;AAAA,UACLyB,SADK,GACSxkC,KADT,CAChB+iC,QADgB;;AAEzB,UAAI,OAAOyB,SAAP,KAAqB,UAAzB,EAAqC;AACnC,eAAO,IAAInC,SAAJ,CAAc,mDAAd,CAAP;AACD;AACD,aAAO,IAAP;AACD;;AAPoB;AAAA;AASrBxf,KATqB;AAAA,iBASjB7iB,KATiB,EASV+iC,QATU,EASA;AACnB,aAAOkK,aAAajtC,KAAb,EAAoB+iC,QAApB,KAAiCoK,cAAcntC,MAAM6iB,GAApB,EAAyB7iB,MAAM4iB,GAA/B,CAAxC;AACD;;AAXoB;AAAA;AAarBA,KAbqB;AAAA,iBAajB5iB,KAbiB,EAaV+iC,QAbU,EAaA;AACnB,aAAOmK,aAAaltC,KAAb,EAAoB+iC,QAApB,KAAiCoK,cAAcntC,MAAM6iB,GAApB,EAAyB7iB,MAAM4iB,GAA/B,CAAxC;AACD;;AAfoB;AAAA;AAAA,CAAvB;;AAkBA,SAASyqB,SAAT,OAAiC;AAAA,MAAZxqB,GAAY,QAAZA,GAAY;AAAA,MAAPD,GAAO,QAAPA,GAAO;;AAC/B,MAAI0qB,gBAAJ;AACA,MAAIC,gBAAJ;AACA,MAAI,OAAO1qB,GAAP,KAAe,QAAf,IAA2B,OAAOD,GAAP,KAAe,QAA9C,EAAwD;AACtD;AACA0qB,cAAU,CAAV;AACAC,cAAU,CAAV;AACD,GAJD,MAIO;AACLD,cAAU,OAAOzqB,GAAP,KAAe,QAAf,GAA0BA,GAA1B,GAAgC,CAA1C;AACA0qB,cAAU,OAAO3qB,GAAP,KAAe,QAAf,GAA0BA,GAA1B,GAAgC4qB,QAA1C;AACD;AACD,SAAO,EAAEF,gBAAF,EAAWC,gBAAX,EAAP;AACD;;AAED,SAASE,WAAT,CAAqB3rB,KAArB,EAA4B;AAC1B,MAAI4rB,QAAQ,EAAZ;AACA,MAAIC,iBAAJ;AACA,SAAO7rB,MAAM+hB,MAAN,CAAa,UAAC+J,MAAD,EAAShqB,IAAT,EAAkB;AACpC,QAAMiqB,WAAW,yBAAOjqB,IAAP,CAAjB;AACA,QAAI,CAAC+pB,QAAD,IAAaE,aAAaF,QAA9B,EAAwC;AACtCD,YAAMvvC,IAAN,CAAWylB,IAAX;AACD,KAFD,MAEO;AACLgqB,aAAOzvC,IAAP,CAAYuvC,KAAZ;AACAA,cAAQ,CAAC9pB,IAAD,CAAR;AACD;AACD+pB,eAAWE,QAAX;AACA,WAAOD,MAAP;AACD,GAVM,EAUJ,EAVI,EAUApqB,MAVA,CAUOkqB,MAAMhwC,MAAN,GAAe,CAAf,GAAmB,CAACgwC,KAAD,CAAnB,GAA6B,EAVpC,CAAP;AAWD;;AAED,SAASI,cAAT,CAAwBvH,UAAxB,EAAoCvmC,KAApC,EAA2C+iC,QAA3C,EAAqDC,aAArD,EAA6E;AAAA,MACvDlhB,KADuD,GAC7C9hB,KAD6C,CAClE+iC,QADkE;;AAE3E,MAAM6K,SAASH,YAAY3rB,KAAZ,CAAf;;AAF2E,oCAANmP,IAAM;AAANA,QAAM;AAAA;;AAI3E,OAAK,IAAIxzB,IAAI,CAAb,EAAgBA,IAAI8oC,WAAW7oC,MAA/B,EAAuCD,KAAK,CAA5C,EAA+C;AAAA,wBACb8oC,WAAW9oC,CAAX,CADa;AAAA,QACrC8kC,SADqC,iBACrCA,SADqC;AAAA,QAC1B1f,GAD0B,iBAC1BA,GAD0B;AAAA,QACrBD,GADqB,iBACrBA,GADqB;;AAAA,qBAGhByqB,UAAU,EAAExqB,QAAF,EAAOD,QAAP,EAAV,CAHgB;AAAA,QAGrC0qB,OAHqC,cAGrCA,OAHqC;AAAA,QAG5BC,OAH4B,cAG5BA,OAH4B;;AAK7C,QAAIK,OAAOlwC,MAAP,KAAkB,CAAlB,IAAuB4vC,YAAY,CAAvC,EAA0C;AACxC;AACA,eAFwC,CAE9B;AACX;;AAED,QAAMS,mBAAmB,wBAAQxL,SAAR,EAAmBI,UAA5C;;AAEA,QAAM+K,QAAQE,OAAOI,KAAP,EAAd,CAZ6C,CAYf;;AAE9B,QAAMC,aAAaF,gEACZ/tC,KADY,sBACJ+iC,QADI,EACO2K,KADP,IAEjB3K,QAFiB,EAGjBC,aAHiB,SAId/R,IAJc,EAAnB;;AAOA,QAAIgd,UAAJ,EAAgB;AAAE;AAChB,UAAIX,YAAY,CAAhB,EAAmB;AAAE;AACnBM,eAAOM,OAAP,CAAeR,KAAf,EADiB,CACM;AACvB,iBAFiB,CAEP;AACX;AACD,aAAOO,UAAP;AACD;;AAED;;AAEA,QAAIP,MAAMhwC,MAAN,GAAe4vC,OAAnB,EAA4B;AAC1B,aAAO,IAAIhL,UAAJ,QAAkBU,aAAlB,2BAAoDvlC,CAApD,sCAA+EolB,GAA/E,qCAA0G6qB,MAAMhwC,MAAhH,QAAP;AACD;;AAED,QAAIgwC,MAAMhwC,MAAN,GAAe6vC,OAAnB,EAA4B;AAC1B,aAAO,IAAIjL,UAAJ,QAAkBU,aAAlB,2BAAoDvlC,CAApD,sCAA+EmlB,GAA/E,gCAAqG8qB,MAAMhwC,MAA3G,QAAP;AACD;AACF;;AAED,MAAIkwC,OAAOlwC,MAAP,GAAgB,CAApB,EAAuB;AACrB,WAAO,IAAI2kC,SAAJ,QAAiBW,aAAjB,4BAA6CuD,WAAW7oC,MAAxD,qCAAsFkwC,OAAOlwC,MAA7F,sCAAP;AACD;;AAED,SAAO,IAAP;AACD;;AAED,IAAMywC,qBAAqB,4BAAU,0BAAV,EAAoBf,cAApB,EAAoCzK,UAA/D;;AAEe,SAASqK,mBAAT,GAA4C;AAAA,qCAAZzG,UAAY;AAAZA,cAAY;AAAA;;AACzD,MAAIA,WAAW7oC,MAAX,KAAsB,CAA1B,EAA6B;AAC3B,UAAM,IAAI4kC,UAAJ,CAAe,gDAAf,CAAN;AACD;;AAED,MAAMqB,SAAS4C,WAAWtkC,GAAX,CAAe,UAACmsC,SAAD,EAAY3wC,CAAZ;AAAA,WAAkB0wC,mBAC9C,EAAEC,oBAAF,EAD8C,EAE9C,WAF8C,EAG9C,sBAH8C,2CAId3wC,CAJc,gCAK1BA,CAL0B,EAAlB;AAAA,GAAf,CAAf;AAOA,MAAIkmC,OAAO5lC,IAAP,CAAY0T,OAAZ,CAAJ,EAA0B;AACxB,UAAM,IAAI4wB,SAAJ,4GAIAsB,OAAO1hC,GAAP,CAAW,UAACuJ,CAAD,EAAI/N,CAAJ;AAAA,2CAA+BA,CAA/B,kBAAqC+N,EAAEwf,OAAvC;AAAA,KAAX,EAA6DtZ,IAA7D,CAAkE,aAAlE,CAJA,aAAN;AAMD;;AAED,MAAM6wB;AAAY,aAASkE,UAAT,CAAoBzmC,KAApB,EAA2B+iC,QAA3B,EAA8C;AAAA,UAC1CyB,SAD0C,GAC5BxkC,KAD4B,CACrD+iC,QADqD;;;AAG9D,UAAIyB,aAAa,IAAjB,EAAuB;AACrB,eAAO,IAAP;AACD;;AAL6D,yCAANvT,IAAM;AAANA,YAAM;AAAA;;AAO9D,UAAM0L,QAAQ0R,mCAAMruC,KAAN,EAAa+iC,QAAb,SAA0B9R,IAA1B,EAAd;AACA,UAAI0L,KAAJ,EAAW;AACT,eAAOA,KAAP;AACD;;AAED,aAAOmR,iCAAevH,UAAf,EAA2BvmC,KAA3B,EAAkC+iC,QAAlC,SAA+C9R,IAA/C,EAAP;AACD;;AAbK,WAAqBwV,UAArB;AAAA,KAAN;;AAeAlE,YAAUI,UAAV;AAAuB,aAAS2L,kBAAT,CAA4BtuC,KAA5B,EAAmC+iC,QAAnC,EAA6CC,aAA7C,EAAqE;AAAA,yCAAN/R,IAAM;AAANA,YAAM;AAAA;;AAC1F,UAAM0L,QAAQ0R,iBAAM1L,UAAN,0BAAiB3iC,KAAjB,EAAwB+iC,QAAxB,EAAkCC,aAAlC,SAAoD/R,IAApD,EAAd;AACA,UAAI0L,KAAJ,EAAW;AACT,eAAOA,KAAP;AACD;;AAED,aAAOmR,iCAAevH,UAAf,EAA2BvmC,KAA3B,EAAkC+iC,QAAlC,EAA4CC,aAA5C,SAA8D/R,IAA9D,EAAP;AACD;;AAPD,WAAgCqd,kBAAhC;AAAA;;AASA,SAAO,gCAAc/L,SAAd,EAAyB,YAAzB,EAAuCgE,UAAvC,CAAP;AACD;;;;;;;;;;;;;;;qBCxKuBgI,c;;AAHxB;;;;AACA;;;;;;AAEe,SAASA,cAAT,CAAwBC,UAAxB,EAAoC;AACjD,MAAI,CAAC,gCAAcA,UAAd,CAAL,EAAgC;AAC9B,UAAM,IAAInM,SAAJ,CAAc,+BAAd,CAAN;AACD;;AAED,WAAS8H,KAAT,CAAenqC,KAAf,EAAsB+iC,QAAtB,EAAgCC,aAAhC,EAA+C2H,QAA/C,EAAkE;AAAA,QAC5CnG,SAD4C,GAC9BxkC,KAD8B,CACvD+iC,QADuD;;AAEhE,QAAIyB,aAAa,IAAjB,EAAuB;AACrB,aAAO,IAAP;AACD;AACD;AACA;;AANgE,sCAANvT,IAAM;AAANA,UAAM;AAAA;;AAOhE,SAAK,IAAM7uB,GAAX,IAAkBosC,UAAlB,EAA8B;AAC5B,UAAMC,UAAUD,WAAWpsC,GAAX,CAAhB;AACA,UAAIqsC,OAAJ,EAAa;AACX,YAAM9R,QAAQ8R,0BACZjK,SADY,EAEZpiC,GAFY,EAGZ4gC,aAHY,EAIZ2H,QAJY,SAKT1Z,IALS,EAAd;AAOA,YAAI0L,KAAJ,EAAW;AACT,iBAAOA,KAAP;AACD;AACF;AACF;AACD,WAAO,IAAP;AACD;;AAEDwN,QAAMxH,UAAN;AAAmB,aAAS+L,aAAT,CAAuB1uC,KAAvB,EAA8B+iC,QAA9B,EAAwCC,aAAxC,EAAgE;AAAA,UAC7DwB,SAD6D,GAC/CxkC,KAD+C,CACxE+iC,QADwE;;AAEjF,UAAIyB,aAAa,IAAjB,EAAuB;AACrB,eAAO,IAAInC,SAAJ,QAAiBW,aAAjB,kBAAmCD,QAAnC,oBAAP;AACD;;AAJgF,yCAAN9R,IAAM;AAANA,YAAM;AAAA;;AAKjF,aAAOkZ,wBAAMnqC,KAAN,EAAa+iC,QAAb,EAAuBC,aAAvB,SAAyC/R,IAAzC,EAAP;AACD;;AAND,WAA4Byd,aAA5B;AAAA;;AAQA,SAAO,gCAAcvE,KAAd,EAAqB,OAArB,EAA8BqE,UAA9B,CAAP;AACD;;;;;;;;;;;;;;;qBCvCuBG,yB;;AAHxB;;AACA;;;;;;AAEe,SAASA,yBAAT,CAAmCvuC,KAAnC,EAA0C;AACvD,MAAI,OAAOA,KAAP,KAAiB,QAAjB,IAA6BA,MAAM1C,MAAN,KAAiB,CAAlD,EAAqD;AACnD,UAAM,IAAI2kC,SAAJ,CAAc,gCAAd,CAAN;AACD;;AAED,MAAME;AAAY,aAAS6H,gBAAT,CAA0BpqC,KAA1B,EAAiC+iC,QAAjC,EAA2CC,aAA3C,EAAmE;AAAA,UAC/DwB,SAD+D,GACjDxkC,KADiD,CAC1E+iC,QAD0E;;;AAGnF,UAAIyB,aAAa,IAAjB,EAAuB;AACrB,eAAO,IAAP;AACD;;AALkF,wCAANvT,IAAM;AAANA,YAAM;AAAA;;AAOnF,UAAM2a,cAAcC,oCAAO7rC,KAAP,EAAc+iC,QAAd,EAAwBC,aAAxB,SAA0C/R,IAA1C,EAApB;AACA,UAAI2a,WAAJ,EAAiB;AACf,eAAOA,WAAP;AACD;;AAED,UAAI,CAACpH,UAAUoK,UAAV,CAAqBxuC,KAArB,CAAD,IAAgCokC,UAAU9mC,MAAV,IAAoB0C,MAAM1C,MAA9D,EAAsE;AACpE,eAAO,IAAI2kC,SAAJ,QAAiBW,aAAjB,kBAAmCD,QAAnC,sCAAoE3iC,KAApE,QAAP;AACD;AACD,aAAO,IAAP;AACD;;AAhBK,WAAqBgqC,gBAArB;AAAA,KAAN;;AAkBA7H,YAAUI,UAAV;AAAuB,aAASkM,wBAAT,GAA2C;AAChE,UAAMjD,cAAcC,kBAAOlJ,UAAP,oCAApB;AACA,UAAIiJ,WAAJ,EAAiB;AACf,eAAOA,WAAP;AACD;AACD,aAAOrJ,qCAAP;AACD;;AAND,WAAgCsM,wBAAhC;AAAA;;AAQA,SAAO,gCAActM,SAAd,gCAA8CniC,KAA9C,EAAP;AACD;;;;;;;;;;;;;;;;ACnCD;;AACA;;;;;;AAEA,SAAS0uC,kBAAT,CAA4BC,GAA5B,EAAiC;AAAE,SAAO,IAAI3hB,GAAJ,CAAQ2hB,GAAR,EAAa19B,IAApB;AAA2B;AAC9D;AACA,SAAS29B,iBAAT,CAA2BD,GAA3B,EAAgC;AAC9B,MAAME,OAAO,EAAb;AACAF,MAAIz5B,OAAJ,CAAY,UAACsO,IAAD,EAAU;AACpB,QAAIqrB,KAAKl0B,OAAL,CAAa6I,IAAb,MAAuB,CAAC,CAA5B,EAA+B;AAC7BqrB,WAAK9wC,IAAL,CAAUylB,IAAV;AACD;AACF,GAJD;AAKA,SAAOqrB,KAAKvxC,MAAZ;AACD;;AAED,IAAMwxC,iBAAiB,OAAO9hB,GAAP,KAAe,UAAf,GAA4B0hB,kBAA5B,GAAiD,0BAA2BE,iBAAnG;;AAEA,SAASG,mBAAT,CAA6BnvC,KAA7B,EAAoC+iC,QAApC,EAA8CC,aAA9C,EAAsE;AAAA,oCAAN/R,IAAM;AAANA,QAAM;AAAA;;AACpE,MAAMme,SAASf,iBAAM1L,UAAN,0BAAiB3iC,KAAjB,EAAwB+iC,QAAxB,EAAkCC,aAAlC,SAAoD/R,IAApD,EAAf;AACA,MAAIme,UAAU,IAAd,EAAoB;AAClB,WAAOA,MAAP;AACD;;AAJmE,MAMhD5K,SANgD,GAMlCxkC,KANkC,CAM3D+iC,QAN2D;;AAOpE,MAAMsM,cAAcH,eAAe1K,SAAf,CAApB;AACA,MAAI6K,gBAAgB7K,UAAU9mC,MAA9B,EAAsC;AACpC,WAAO,IAAI4kC,UAAJ,QAAkBU,aAAlB,mCAA2DwB,UAAU9mC,MAAV,GAAmB2xC,WAA9E,+BAAP;AACD;AACD,SAAO,IAAP;AACD;;AAED,SAAShF,WAAT,CAAqBrqC,KAArB,EAA4B+iC,QAA5B,EAA+C;AAAA,MACzByB,SADyB,GACXxkC,KADW,CACpC+iC,QADoC;;AAE7C,MAAIyB,aAAa,IAAjB,EAAuB;AACrB,WAAO,IAAP;AACD;;AAJ4C,qCAANvT,IAAM;AAANA,QAAM;AAAA;;AAM7C,SAAOke,sCAAoBnvC,KAApB,EAA2B+iC,QAA3B,SAAwC9R,IAAxC,EAAP;AACD;AACDoZ,YAAY1H,UAAZ,GAAyBwM,mBAAzB;;qBAEe;AAAA,SAAM,gCAAc9E,WAAd,EAA2B,aAA3B,CAAN;AAAA,C;;;;;;;;;;;;;;;qBCnCSiF,0B;;;;;;AANxB;;AACA;;;;AACA;;;;;;;;AAEA,IAAMC,SAAS,+BAAf;;AAEe,SAASD,0BAAT,CAAoC9nC,IAApC,EAAmD;AAChE,MAAI,OAAOA,IAAP,KAAgB,UAApB,EAAgC;AAC9B,UAAM,IAAI66B,SAAJ,CAAc,mCAAd,CAAN;AACD;;AAED,MAAImN,SAAS,IAAb;AACA,MAAIzlC,OAAO,mBAAX;;AANgE,oCAANknB,IAAM;AAANA,QAAM;AAAA;;AAQhE,MAAIA,KAAKvzB,MAAL,KAAgB,CAApB,EAAuB;AACrB,QAAI,OAAOuzB,KAAK,CAAL,CAAP,KAAmB,UAAvB,EAAmC;AAC/Bue,YAD+B,GACrBve,IADqB;AAElC,KAFD,MAEO,IAAI,OAAOA,KAAK,CAAL,CAAP,KAAmB,QAAvB,EAAiC;AACpClnB,UADoC,GAC5BknB,IAD4B;AAEvC,KAFM,MAEA;AACL,YAAM,IAAIoR,SAAJ,CAAc,gDAAd,CAAN;AACD;AACF,GARD,MAQO,IAAIpR,KAAKvzB,MAAL,KAAgB,CAApB,EAAuB;AAC5B,QAAI,OAAOuzB,KAAK,CAAL,CAAP,KAAmB,UAAnB,IAAiC,OAAOA,KAAK,CAAL,CAAP,KAAmB,QAAxD,EAAkE;AAC9Due,YAD8D,GAC9Cve,IAD8C;AACtDlnB,UADsD,GAC9CknB,IAD8C;AAEjE,KAFD,MAEO;AACL,YAAM,IAAIoR,SAAJ,CAAc,qDAAd,CAAN;AACD;AACF,GANM,MAMA,IAAIpR,KAAKvzB,MAAL,GAAc,CAAlB,EAAqB;AAC1B,UAAM,IAAI2kC,SAAJ,CAAc,gEAAd,CAAN;AACD;;AAED,WAASoN,mBAAT,CAA6BzvC,KAA7B,EAAoC+iC,QAApC,EAAuD;AAAA,QACjCyB,SADiC,GACnBxkC,KADmB,CAC5C+iC,QAD4C;;AAErD,QAAIyB,aAAa,IAAjB,EAAuB;AACrB,aAAO,IAAP;AACD;;AAED,QAAMkL,SAASlL,UAAUviC,GAAV,CAAcutC,MAAd,CAAf;;AANqD,uCAAN5mC,IAAM;AAANA,UAAM;AAAA;;AAOrD,WAAO2mC,sDAAYvvC,KAAZ,sBAAoB+iC,QAApB,EAA+B2M,MAA/B,IAAyC3M,QAAzC,SAAsDn6B,IAAtD,EAAP;AACD;;AAED6mC,sBAAoB9M,UAApB;AAAiC,aAASA,UAAT,CAAoB3iC,KAApB,EAA2B+iC,QAA3B,EAA8C;AAAA,UACzDyB,SADyD,GAC3CxkC,KAD2C,CACpE+iC,QADoE;;AAAA,yCAANn6B,IAAM;AAANA,YAAM;AAAA;;AAE7E,UAAI47B,aAAa,IAAjB,EAAuB;AACrB,eAAO6J,iBAAM1L,UAAN,0BAAiB3iC,KAAjB,EAAwB+iC,QAAxB,SAAqCn6B,IAArC,EAAP;AACD;AACD,aAAO6mC,sCAAoBzvC,KAApB,EAA2B+iC,QAA3B,SAAwCn6B,IAAxC,EAAP;AACD;;AAND,WAA0C+5B,UAA1C;AAAA;;AAQA,MAAMgN,iBAAiB,wBAAQnoC,IAAR,CAAvB;;AAEA,MAAMooC,kBAAkBJ,SAASC,mBAAT,GAA+BF,MAAvD;;AAEA,MAAMhN,YAAY,sBAAI,CAACoN,cAAD,EAAiBC,eAAjB,CAAJ,EAAuC7lC,IAAvC,CAAlB;AACAw4B,YAAUI,UAAV,GAAuB,sBAAI,CACzBiN,gBAAgBjN,UADS,EAEzBgN,eAAehN,UAFU,CAAJ,SAGjB54B,IAHiB,kBAAvB;;AAKA,SAAOw4B,SAAP;AACD;;;;;;;;;;;;;;;qBCxDuBsN,iB;;AALxB;;;;AACA;;;;;;AAEA;;AAEe,SAASA,iBAAT,CAA2B/J,QAA3B,EAAqC;AAClD,MAAI,OAAOA,QAAP,KAAoB,UAAxB,EAAoC;AAClC,UAAM,IAAIzD,SAAJ,CAAc,uCAAd,CAAN;AACD;;AAED,MAAME;AAAY,aAASgI,QAAT,CAChBvqC,KADgB,EAEhB+iC,QAFgB,EAGhBC,aAHgB,EAIhB2H,QAJgB,EAKhBC,YALgB,EAOhB;AAAA,wCADG3Z,IACH;AADGA,YACH;AAAA;;AAAA,UACoBuT,SADpB,GACkCxkC,KADlC,CACS+iC,QADT;;AAEA,UAAIyB,aAAa,IAAb,IAAqB,8BAAYA,SAAZ,CAAzB,EAAiD;AAC/C,eAAO,IAAP;AACD;;AAED,UAAI/B,mBAAJ;AACAtd,aAAOqiB,IAAP,CAAYhD,SAAZ,EAAuBzmC,IAAvB,CAA4B,UAACqE,GAAD,EAAS;AACnCqgC,qBAAaqD,2BACXtB,SADW,EAEXpiC,GAFW,EAGX4gC,aAHW,EAIX2H,QAJW,SAKRC,YALQ,iBAKQxoC,GALR,UAMR6uB,IANQ,EAAb;AAQA,eAAOwR,UAAP;AACD,OAVD;AAWA,aAAOA,cAAc,IAArB;AACD;;AA1BK,WAAqB8H,QAArB;AAAA,KAAN;AA2BAhI,YAAUI,UAAV;AAAuB,aAASmN,gBAAT,CAA0B9vC,KAA1B,EAAiC+iC,QAAjC,EAA2CC,aAA3C,EAAmE;AAAA,UACpEwB,SADoE,GACtDxkC,KADsD,CAC/E+iC,QAD+E;;AAExF,UAAIyB,aAAa,IAAjB,EAAuB;AACrB,eAAO,IAAInC,SAAJ,QAAiBW,aAAjB,kBAAmCD,QAAnC,oBAAP;AACD;;AAJuF,yCAAN9R,IAAM;AAANA,YAAM;AAAA;;AAKxF,aAAOsR,4BAAUviC,KAAV,EAAiB+iC,QAAjB,EAA2BC,aAA3B,SAA6C/R,IAA7C,EAAP;AACD;;AAND,WAAgC6e,gBAAhC;AAAA;;AAQA,SAAO,gCAAcvN,SAAd,EAAyB,UAAzB,EAAqCuD,QAArC,CAAP;AACD;;;;;;;;;;;;;;;qBC3CuB0E,S;;AAHxB;;;;AACA;;;;;;AAEe,SAASA,SAAT,CAAmBhjC,IAAnB,EAAyBgnC,UAAzB,EAAqC;AAClD,MAAI,OAAOhnC,IAAP,KAAgB,UAApB,EAAgC;AAC9B,UAAM,IAAI66B,SAAJ,CAAc,+BAAd,CAAN;AACD;AACD,MAAMkM,iBAAiB,wBAAMC,UAAN,CAAvB;AACA,SAAO,sBAAI,CAAChnC,IAAD,EAAO+mC,cAAP,CAAJ,EAA4B,WAA5B,CAAP;AACD;;;;;;;;;;;;ACTD,OAAO,OAAP,GAAiB,SAAwC,SAAxC,GAAmE,mBAAO,CAAC,gEAAR,CAApF;;;;;;;;;;;;;;ACAa;;AAEb,SAAS,mBAAO,CAAC,0DAAiB;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,YAAY;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACrBa;;AAEb,aAAa,mBAAO,CAAC,oEAAmB;AACxC,SAAS,mBAAO,CAAC,0DAAiB;;AAElC,qBAAqB,mBAAO,CAAC,+EAAkB;AAC/C,kBAAkB,mBAAO,CAAC,mEAAY;AACtC,WAAW,mBAAO,CAAC,2DAAQ;;AAE3B;;AAEA;;AAEA,qDAAqD;AACrD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;;;;;;ACzBa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA,6CAA6C,mBAAO,CAAC,+EAAkB;AACvE;;;;;;;;;;;;;ACZa;;AAEb,aAAa,mBAAO,CAAC,oEAAmB;AACxC,kBAAkB,mBAAO,CAAC,mEAAY;;AAEtC;AACA;;AAEA,0BAA0B,iBAAiB;AAC3C;AACA;AACA;AACA,EAAE;;AAEF;AACA;;;;;;;;;;;;;ACfa;;AAEb,SAAS,mBAAO,CAAC,gEAAoB;;AAErC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;AChEa;;AAEb,aAAa,mBAAO,CAAC,oEAAmB;AACxC,WAAW,mBAAO,CAAC,4DAAe;;AAElC,qBAAqB,mBAAO,CAAC,+EAAkB;AAC/C,kBAAkB,mBAAO,CAAC,mEAAY;AACtC;AACA,WAAW,mBAAO,CAAC,2DAAQ;;AAE3B;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;;;;;;AClBa;;AAEb,qBAAqB,mBAAO,CAAC,+EAAkB;;AAE/C;AACA;AACA;;;;;;;;;;;;;ACNa;;AAEb,aAAa,mBAAO,CAAC,oEAAmB;AACxC,kBAAkB,mBAAO,CAAC,mEAAY;;AAEtC;AACA;AACA;AACA;AACA,GAAG,iBAAiB;AACpB,GAAG,oBAAoB,0CAA0C,EAAE;AACnE;AACA;AACA;;;;;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,gBAAgB;;AAEhB;AACA;;AAEA,iBAAiB,sBAAsB;AACvC;AACA;;AAEA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,KAAK,KAA6B;AAClC;AACA;AACA,EAAE,UAAU,IAA4E;AACxF;AACA,EAAE,iCAAqB,EAAE,mCAAE;AAC3B;AACA,GAAG;AAAA,oGAAC;AACJ,EAAE,MAAM,EAEN;AACF,CAAC;;;;;;;;;;;;ACnDD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAyD;AAC7D;AACA,MAAM,EAK4B;AAClC,CAAC;AACD,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,gCAAgC;AAClF;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,kBAAkB;AAClF;AACA,yDAAyD,cAAc;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,iCAAiC;AAClF,wHAAwH,mBAAmB,EAAE;AAC7I;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,0BAA0B,EAAE;AAC/D,yCAAyC,eAAe;AACxD;AACA;AACA;AACA;AACA;AACA,8DAA8D,+DAA+D;AAC7H;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;;;AAGA,oGAAoG,mBAAmB,EAAE,mBAAmB,8HAA8H;;AAE1Q,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ,iDAAiD,aAAa,uFAAuF,EAAE,uFAAuF;;AAE9O,0CAA0C,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAE5e;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,2CAA2C;AAC1D,eAAe,OAAO;AACtB;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,2CAA2C;AAC9D;;AAEA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA,mBAAmB,MAAM;AACzB;;AAEA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA,mBAAmB,QAAQ;AAC3B;;AAEA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,QAAQ;AAC3B;;AAEA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B;;AAEA,KAAK;AACL;;;AAGA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA,CAAC;;AAED;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB;;;AAGA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,OAAO;AACP;AACA;;AAEA;;;AAGA,oGAAoG,mBAAmB,EAAE,mBAAmB,8HAA8H;;AAE1Q,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB;;AAEA;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,eAAe,OAAO;AACtB;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,KAAK;AACL;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;;AAEA;AACA;AACA,mBAAmB,QAAQ;AAC3B;;AAEA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;;AAEA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,mBAAmB,OAAO;AAC1B;;AAEA,KAAK;AACL;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;;AAEA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,CAAC;;AAED;;AAEA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;;AAGA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC;;AAElC;AACA;AACA;AACA,KAAK;;AAEL;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA,yCAAyC;AACzC;AACA;;AAEA,WAAW,SAAS;AACpB;AACA;;AAEA;AACA,GAAG;;AAEH;AACA,kCAAkC;AAClC;AACA;;AAEA;AACA,wCAAwC,SAAS;AACjD;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;AAGA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,2CAA2C;AACtD,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,YAAY;AACZ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,wBAAwB;AACnC,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,YAAY;AACZ;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,YAAY;AACZ;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;AACA;;AAEA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,qBAAqB;AAChC,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;AACP;AACA,CAAC,E;;;;;;;;;;;;ACj9BD;AAAA;AAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;;AAEA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAE4B;;;;;;;;;;;;;AC7Mf;;AAEb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,sCAAsC;AACtC;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;;;;;;;;;;;;;AChGa;;AAEb,WAAW,mBAAO,CAAC,wDAAa;AAChC,cAAc,mBAAO,CAAC,gDAAS;AAC/B;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,mCAAmC,gCAAgC;AACnE;AACA,4BAA4B,cAAc;AAC1C;AACA;AACA,EAAE,YAAY;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;;AAEA;;;;;;;;;;;;;ACvDa;;AAEb,WAAW,mBAAO,CAAC,+DAAQ;;AAE3B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA,gC;;;;;;;;;;;;AChIa;;AAEb,iBAAiB,mBAAO,CAAC,+FAAwB,E;;;;;;;;;;;;ACFpC;;AAEb,mDAAmD,gBAAgB,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,2BAA2B,EAAE,EAAE,EAAE,eAAe;;AAE9P,oGAAoG,mBAAmB,EAAE,mBAAmB,kGAAkG;;AAE9O;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,kBAAkB;AAC/B;AACA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,SAAS,OAAO;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,CAAC,Y;;;;;;;;;;;;ACtbY;;AAEb;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc;;AAEd;AACA,iBAAiB,iEAAiE,EAAE;AACpF,gBAAgB,uBAAuB;;AAEvC;;AAEA,sDAAsD,oBAAoB,GAAG;;AAE7E,cAAc;AACd;AACA,YAAY;AACZ;AACA,aAAa;AACb;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AChLa;;AAEb,UAAU,mBAAO,CAAC,4CAAK;AACvB,kBAAkB,mBAAO,CAAC,kEAAqB;;AAE/C,mBAAmB,mBAAO,CAAC,kEAAgB;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,aAAa,mBAAO,CAAC,oEAAiB;AACtC,gBAAgB,mBAAO,CAAC,0EAAoB;AAC5C;;AAEA,aAAa,mBAAO,CAAC,sEAAkB;AACvC,WAAW,mBAAO,CAAC,kEAAgB;AACnC,UAAU,mBAAO,CAAC,gEAAe;AACjC,kBAAkB,mBAAO,CAAC,gFAAuB;AACjD;AACA,WAAW,mBAAO,CAAC,4DAAe;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAU,mBAAO,CAAC,gDAAO;;AAEzB,uBAAuB,mBAAO,CAAC,kDAAU;;AAEzC;AACA,0BAA0B;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,6DAA6D,UAAU;AACvE;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,sCAAsC,UAAU;AAChD,uBAAuB,aAAa;AACpC;AACA,yBAAyB,cAAc;AACvC,yBAAyB,UAAU;AACnC,oBAAoB,cAAc;AAClC;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,iBAAiB,UAAU,EAAE;AAC7B,+BAA+B,yBAAyB;AACxD;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,0BAA0B,WAAW;AACrC;AACA,mDAAmD,UAAU;AAC7D;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA,gEAAgE;AAChE,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,aAAa,EAAE;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,0BAA0B;;AAE1B;AACA;AACA;AACA,uCAAuC;AACvC,yBAAyB;;AAEzB;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED,gCAAgC;;AAEhC;;;;;;;;;;;;;ACprBa;;AAEb,aAAa,mBAAO,CAAC,sDAAU;AAC/B,aAAa,mBAAO,CAAC,sEAAkB;;AAEvC,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;;;;;;ACfa;;AAEb,aAAa,mBAAO,CAAC,sDAAU;AAC/B,aAAa,mBAAO,CAAC,sEAAkB;;AAEvC,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,iCAAiC;;AAEjC;;;;;;;;;;;;;ACxBa;;AAEb,mBAAmB,mBAAO,CAAC,kEAAgB;;AAE3C;AACA;AACA;;AAEA,aAAa,mBAAO,CAAC,oEAAiB;AACtC,gBAAgB,mBAAO,CAAC,0EAAoB;;AAE5C,WAAW,mBAAO,CAAC,kEAAgB;AACnC,UAAU,mBAAO,CAAC,gEAAe;;AAEjC,iBAAiB,mBAAO,CAAC,wDAAa;AACtC,kBAAkB,mBAAO,CAAC,kEAAqB;;AAE/C,UAAU,mBAAO,CAAC,4CAAK;;AAEvB;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA,gBAAgB;AAChB,EAAE;AACF;AACA;AACA,uBAAuB,UAAU;AACjC,2CAA2C,eAAe;AAC1D;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,6DAA6D,UAAU;AACvE;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,gBAAgB;AAChB,iBAAiB,wBAAwB;AACzC;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;ACjPa;;AAEb,iBAAiB,mBAAO,CAAC,sDAAU;;;;;;;;;;;;;ACFtB;;AAEb,iBAAiB,mBAAO,CAAC,sDAAU;;;;;;;;;;;;ACFnC,WAAW,mBAAO,CAAC,4DAAe;AAClC;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AChBA,2CAA2C,gBAAgB;;AAE3D,kDAAkD,iFAAiF;;;;;;;;;;;;ACFnI;AACA;AACA;;;;;;;;;;;;ACFA;AACA;AACA;;;;;;;;;;;;ACFA;AACA;AACA;AACA;;;;;;;;;;;;ACHA;AACA;AACA;;;;;;;;;;;;;ACFa;;AAEb;;AAEA,kBAAkB,mBAAO,CAAC,oFAAuB;AACjD,iBAAiB,mBAAO,CAAC,wDAAa;AACtC,aAAa,mBAAO,CAAC,8DAAgB;AACrC,eAAe,mBAAO,CAAC,oDAAW;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wBAAwB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC1Ea;;AAEb;;AAEA,kBAAkB,mBAAO,CAAC,oFAAuB;;AAEjD,iBAAiB,mBAAO,CAAC,wDAAa;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,cAAc,oBAAoB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC5Ca;;AAEb,iBAAiB,mBAAO,CAAC,0DAAU;;;;;;;;;;;;ACFnC;AACA;AACA;;;;;;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEa;;AAEb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;;AAEA;AACA;;AAEA,8B;;;;;;;;;;;;AC/DA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;ACpBa;;AAEb;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;;AAEA,8EAA8E,qCAAqC,EAAE;;AAErH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;ACnDa;;AAEb,qBAAqB,mBAAO,CAAC,wEAAkB;;AAE/C;;;;;;;;;;;;ACJA,yCAAyC,mBAAmB;;;;;;;;;;;;;ACA/C;;AAEb,iBAAiB,mBAAO,CAAC,wDAAa;AACtC,yBAAyB,mBAAO,CAAC,0GAA8B;AAC/D,WAAW,mBAAO,CAAC,4DAAe;AAClC;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC1Ca;;AAEb,aAAa,mBAAO,CAAC,oEAAmB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AE;AACF;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;ACtCa;;AAEb;AACA,iBAAiB,mBAAO,CAAC,wDAAa;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,SAAS,MAAK,IAAI,KAAK;AACvB;AACA;;;;;;;;;;;;AClCA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,oC;;;;;;;;;;;ACPA,WAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;;ACLA,aAAa,mBAAO,CAAC,mDAAW;AAChC,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,qBAAqB,mBAAO,CAAC,mEAAmB;;AAEhD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC3BA;AACA;;AAEA;;;;;;;;;;;;;ACHA,aAAa,mBAAO,CAAC,mDAAW;;AAEhC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7CA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACrBA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;ACRA,eAAe,mBAAO,CAAC,qDAAY;AACnC,UAAU,mBAAO,CAAC,2CAAO;AACzB,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,OAAO,YAAY;AAC9B,WAAW,QAAQ;AACnB;AACA,WAAW,OAAO;AAClB;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,8CAA8C,kBAAkB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC5BA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC5BA,WAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACtBA,eAAe,mBAAO,CAAC,qDAAY;AACnC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,OAAO,YAAY;AAC9B,WAAW,QAAQ;AACnB;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,oBAAoB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;;;;;;ACpEA,eAAe,mBAAO,CAAC,qDAAY;AACnC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;;AAEvB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,qBAAqB;AACpC,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,eAAe,MAAM;AACrB,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,MAAM;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,MAAM;AACrB,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,MAAM;AACrB,eAAe,QAAQ;AACvB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;;AAEA,8CAA8C,EAAE;AAChD;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB,QAAQ;AACxB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,mBAAmB,iBAAiB;AACpC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B,mBAAmB,MAAM;AACzB,mBAAmB,aAAa;AAChC,mBAAmB,QAAQ;AAC3B,mBAAmB,QAAQ;AAC3B,mBAAmB,QAAQ;AAC3B,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB,uCAAuC;AAC9D;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B,mBAAmB,MAAM;AACzB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B,mBAAmB,MAAM;AACzB,mBAAmB,MAAM;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,sBAAsB;;AAE7C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,MAAM;AACzB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B,mBAAmB,MAAM;AACzB,mBAAmB,SAAS;AAC5B,mBAAmB,QAAQ;AAC3B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,uBAAuB,MAAM;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B,mBAAmB,SAAS;AAC5B,mBAAmB,QAAQ;AAC3B,mBAAmB,QAAQ;AAC3B,mBAAmB,QAAQ;AAC3B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,mDAAmD,kBAAkB;;AAErE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA,mBAAmB,MAAM;AACzB,mBAAmB,SAAS;AAC5B,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA,2BAA2B,yBAAyB;AACpD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA,uDAAuD;AACvD;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,QAAQ;AACvB,gBAAgB;AAChB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,QAAQ,KAA6B;AACrC;AACA;;AAEA;AACA,QAAQ,IAA0C;AAClD,QAAQ,mCAAO;AACf;AACA,SAAS;AAAA,oGAAC;AACV;AACA,CAAC;;;;;;;;;;;;ACnhCD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;AC1CD;AACA;AACA;AACA;AACA;;AAEa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH,kCAAkC;AAClC;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,gBAAgB,sBAAsB;AACtC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,oBAAoB;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;ACzFa;;AAEb;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA;AACA;AACA;;;;;;;;;;;;;;ACjBa;;AAEb;AACA;AACA;AACA;AACA,aAAa,mBAAO,CAAC,gEAAe;AACpC;AACA,yCAAyC,iBAAiB;AAC1D,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,cAAc;AACnD;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,mBAAmB;AACpC;AACA;AACA;;AAEA;AACA,iBAAiB,mBAAmB;AACpC;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,iBAAiB,sBAAsB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;AC3Ia;;AAEb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AChBa;;AAEb;AACA,WAAW,mBAAO,CAAC,wDAAa;AAChC,WAAW,mBAAO,CAAC,4DAAe;AAClC;AACA;AACA;AACA,iBAAiB,mBAAO,CAAC,8DAAmB;AAC5C;AACA;AACA;AACA;;AAEA;AACA,4BAA4B,iDAAiD;AAC7E;AACA;AACA,YAAY,sBAAsB;AAClC;AACA;AACA;AACA;AACA;AACA,cAAc,iBAAiB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,kBAAkB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACxCa;;AAEb,uBAAuB,mBAAO,CAAC,oEAAmB;;AAElD,qBAAqB,mBAAO,CAAC,wEAAkB;AAC/C,kBAAkB,mBAAO,CAAC,4DAAY;AACtC,WAAW,mBAAO,CAAC,oDAAQ;;AAE3B;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;;;;;;AChBa;;AAEb,qBAAqB,mBAAO,CAAC,wEAAkB;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oBAAoB;AACpC;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;;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AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,6BAA6B;AAC7B,QAAQ;AACR;AACA;AACA;AACA;AACA,+BAA+B,KAAK;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,4BAA4B;AAC5B,OAAO;AACP;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,UAAU,KAAqC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,sBAAsB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM,KAAqC,wFAAwF,SAAM;AACzI;AACA;;AAEA;AACA;AACA,qBAAqB,2BAA2B;AAChD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM,KAAqC,4FAA4F,SAAM;AAC7I;AACA;;AAEA,mBAAmB,gCAAgC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,gCAAgC;AACrD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;;;;;AC1iBA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAI,IAAqC;AACzC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,mBAAO,CAAC,uFAA2B;AACtD,CAAC,MAAM,EAIN;;;;;;;;;;;;;AC3BD;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;;AAEA;;;;;;;;;;;;;ACXA;AAAA;AAAA;AAAiD;;AAEjD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA,iBAAiB,sBAAsB;AACvC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS,2DAAa;AACtB;AACA;AACA;AACA,wBAAwB,iEAAiE;AACzF;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAI;AACX;AACA,GAAG;AACH;AACA;AACA;;AAEA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,yBAAyB,iCAAiC;AAC1D;AACA;AACA,yBAAyB,+BAA+B;AACxD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,0CAA0C;AAC/D;AACA,GAAG;AACH;AACA;AACA,qBAAqB,yCAAyC;AAC9D;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,2DAAa;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,sDAAsD,2DAAa;AACnE;AACA;AACA;AACA,OAAO;AACP;AACA,aAAa,2DAAa;AAC1B;AACA,SAAS,2DAA2D;AACpE;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA,aAAa,2DAAa;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,SAAS;AACT,iCAAiC,2DAAa;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,qBAAqB,qBAAqB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,GAAG;AACH;AACA,CAAC,CAAC,+CAAS;;AAEX;AACA,4CAA4C;AAC5C,kCAAkC;AAClC,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;;AAEe,wEAAS,EAAC;;;;;;;;;;;;;ACjuBzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,mBAAmB,mBAAO,CAAC,sEAAuB;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;ACzBa;;AAEb,mDAAmD,gBAAgB,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,2BAA2B,EAAE,EAAE,EAAE,eAAe;;AAE9P,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB,8CAA8C,iBAAiB,qBAAqB,oCAAoC,6DAA6D,oBAAoB,EAAE,eAAe;;AAE1N,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ,iDAAiD,aAAa,uFAAuF,EAAE,uFAAuF;;AAE9O,0CAA0C,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAE5e,0BAA0B,mBAAO,CAAC,2GAAyB;AAC3D,YAAY,mBAAO,CAAC,oBAAO;AAC3B,eAAe,mBAAO,CAAC,4BAAW;;AAElC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA,gEAAgE;AAChE;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;AACA,GAAG;;AAEH;;AAEA;AACA,E;;;;;;;;;;;AC5EA;AACA,iBAAiB,mBAAO,CAAC,sDAAO;;;;;;;;;;;;ACDhC;AACA,mBAAO,CAAC,sEAAkB;;;;;;;;;;;;;ACDb;;AAEb;AACA;AACA,CAAC;AACD;;AAEA,mDAAmD,gBAAgB,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,2BAA2B,EAAE,EAAE,EAAE,eAAe;;AAE9P,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB,cAAc,mBAAO,CAAC,4DAAe;;AAErC;;AAEA,aAAa,mBAAO,CAAC,oBAAO;;AAE5B;;AAEA,iBAAiB,mBAAO,CAAC,sDAAY;;AAErC;;AAEA,iCAAiC,mBAAO,CAAC,0FAA8B;;AAEvE;;AAEA,4BAA4B,mBAAO,CAAC,kFAAwB;;AAE5D;;AAEA,uBAAuB,mBAAO,CAAC,oEAAmB;;AAElD,uBAAuB,mBAAO,CAAC,6EAAmB;;AAElD,cAAc,mBAAO,CAAC,sBAAQ;;AAE9B;;AAEA,sBAAsB,mBAAO,CAAC,2EAAmB;;AAEjD,0BAA0B,mBAAO,CAAC,+FAA6B;;AAE/D;;AAEA,8BAA8B,mBAAO,CAAC,uGAAiC;;AAEvE;;AAEA,sBAAsB,mBAAO,CAAC,yFAA0B;;AAExD;;AAEA,iBAAiB,mBAAO,CAAC,iEAAc;;AAEvC,sCAAsC,uCAAuC,kBAAkB;;AAE/F,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ,iDAAiD,aAAa,uFAAuF,EAAE,uFAAuF;;AAE9O,0CAA0C,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAE5e,kFAAkF;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA,mEAAmE,aAAa;AAChF;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL,mCAAmC;AACnC,iCAAiC;AACjC,0BAA0B;AAC1B,mCAAmC;AACnC;AACA;AACA,CAAC,e;;;;;;;;;;;;AC3dY;;AAEb;AACA;AACA,CAAC;;AAED,aAAa,mBAAO,CAAC,oBAAO;;AAE5B;;AAEA,sCAAsC,uCAAuC,kBAAkB;;AAE/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA,kC;;;;;;;;;;;;AC7Ba;;AAEb;AACA;AACA,CAAC;;AAED,mDAAmD,gBAAgB,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,2BAA2B,EAAE,EAAE,EAAE,eAAe;;AAE9P,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB,cAAc,mBAAO,CAAC,4DAAe;;AAErC;;AAEA,aAAa,mBAAO,CAAC,oBAAO;;AAE5B;;AAEA,iBAAiB,mBAAO,CAAC,sDAAY;;AAErC;;AAEA,iCAAiC,mBAAO,CAAC,0FAA8B;;AAEvE;;AAEA,4BAA4B,mBAAO,CAAC,kFAAwB;;AAE5D;;AAEA,uBAAuB,mBAAO,CAAC,oEAAmB;;AAElD,uBAAuB,mBAAO,CAAC,6EAAmB;;AAElD,cAAc,mBAAO,CAAC,sBAAQ;;AAE9B;;AAEA,sBAAsB,mBAAO,CAAC,2EAAmB;;AAEjD,0BAA0B,mBAAO,CAAC,+FAA6B;;AAE/D;;AAEA,oBAAoB,mBAAO,CAAC,iFAAgB;;AAE5C;;AAEA,mBAAmB,mBAAO,CAAC,+EAAe;;AAE1C;;AAEA,0BAA0B,mBAAO,CAAC,+FAA6B;;AAE/D;;AAEA,6BAA6B,mBAAO,CAAC,qGAAgC;;AAErE;;AAEA,iBAAiB,mBAAO,CAAC,6EAAoB;;AAE7C;;AAEA,uBAAuB,mBAAO,CAAC,yFAA0B;;AAEzD;;AAEA,sBAAsB,mBAAO,CAAC,yFAA0B;;AAExD;;AAEA,kCAAkC,mBAAO,CAAC,iHAAsC;;AAEhF;;AAEA,sBAAsB,mBAAO,CAAC,yFAA0B;;AAExD;;AAEA,iBAAiB,mBAAO,CAAC,iEAAc;;AAEvC,sCAAsC,uCAAuC,kBAAkB;;AAE/F,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ,iDAAiD,aAAa,uFAAuF,EAAE,uFAAuF;;AAE9O,0CAA0C,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH,EAAE;;AAE9e,kFAAkF;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAE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AEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA,SAAS;AACT;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,qBAAqB;AACrB;AACA,WAAW,6BAA6B;AACxC;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA,eAAe;AACf;AACA;AACA,eAAe;AACf;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;;AAEA;AACA,KAAK;AACL,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,CAAC,qB;;;;;;;;;;;;AC/iBY;;AAEb;AACA;AACA,CAAC;AACD;;AAEA,aAAa,mBAAO,CAAC,oBAAO;;AAE5B;;AAEA,uBAAuB,mBAAO,CAAC,oEAAmB;;AAElD,mBAAmB,mBAAO,CAAC,+EAAe;;AAE1C;;AAEA,+BAA+B,mBAAO,CAAC,uGAA2B;;AAElE;;AAEA,sCAAsC,uCAAuC,kBAAkB;;AAE/F;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,mC;;;;;;;;;;;;ACrCa;;AAEb;AACA;AACA,CAAC;;AAED,aAAa,mBAAO,CAAC,oBAAO;;AAE5B;;AAEA,sCAAsC,uCAAuC,kBAAkB;;AAE/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA,iC;;;;;;;;;;;;AC7Ba;;AAEb;AACA;AACA,CAAC;;AAED,aAAa,mBAAO,CAAC,oBAAO;;AAE5B;;AAEA,sCAAsC,uCAAuC,kBAAkB;;AAE/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA,+B;;;;;;;;;;;;AC7Ba;;AAEb;AACA;AACA,CAAC;;AAED,aAAa,mBAAO,CAAC,oBAAO;;AAE5B;;AAEA,sCAAsC,uCAAuC,kBAAkB;;AAE/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA,iC;;;;;;;;;;;;AC9Ba;;AAEb;AACA;AACA,CAAC;AACD;;AAEA,mDAAmD,gBAAgB,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,2BAA2B,EAAE,EAAE,EAAE,eAAe;;AAE9P,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB,cAAc,mBAAO,CAAC,4DAAe;;AAErC;;AAEA,aAAa,mBAAO,CAAC,oBAAO;;AAE5B;;AAEA,iBAAiB,mBAAO,CAAC,sDAAY;;AAErC;;AAEA,iCAAiC,mBAAO,CAAC,0FAA8B;;AAEvE;;AAEA,4BAA4B,mBAAO,CAAC,kFAAwB;;AAE5D;;AAEA,uBAAuB,mBAAO,CAAC,oEAAmB;;AAElD,uBAAuB,mBAAO,CAAC,6EAAmB;;AAElD,cAAc,mBAAO,CAAC,sBAAQ;;AAE9B;;AAEA,sBAAsB,mBAAO,CAAC,2EAAmB;;AAEjD,0BAA0B,mBAAO,CAAC,+FAA6B;;AAE/D;;AAEA,8BAA8B,mBAAO,CAAC,uGAAiC;;AAEvE;;AAEA,iBAAiB,mBAAO,CAAC,iEAAc;;AAEvC,oBAAoB,mBAAO,CAAC,mFAAuB;;AAEnD;;AAEA,sCAAsC,uCAAuC,kBAAkB;;AAE/F,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ,iDAAiD,aAAa,uFAAuF,EAAE,uFAAuF;;AAE9O,0CAA0C,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAE5e;;;AAGA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;AAED,kFAAkF;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,uBAAuB;AACvB,6BAA6B;AAC7B,0BAA0B;AAC1B,yBAAyB;;AAEzB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA,mEAAmE,aAAa;AAChF;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;;AAEA,uBAAuB,kBAAkB;AACzC;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;;AAEA,uBAAuB,mBAAmB;AAC1C;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,CAAC,2B;;;;;;;;;;;;ACvfY;;AAEb;AACA;AACA,CAAC;;AAED,mDAAmD,gBAAgB,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,2BAA2B,EAAE,EAAE,EAAE,eAAe;;AAE9P,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB,cAAc,mBAAO,CAAC,4DAAe;;AAErC;;AAEA,aAAa,mBAAO,CAAC,oBAAO;;AAE5B;;AAEA,iBAAiB,mBAAO,CAAC,sDAAY;;AAErC;;AAEA,uBAAuB,mBAAO,CAAC,oEAAmB;;AAElD,uBAAuB,mBAAO,CAAC,6EAAmB;;AAElD,gBAAgB,mBAAO,CAAC,0DAAiB;;AAEzC;;AAEA,qBAAqB,mBAAO,CAAC,sEAAiB;;AAE9C;;AAEA,sBAAsB,mBAAO,CAAC,uFAAyB;;AAEvD;;AAEA,0BAA0B,mBAAO,CAAC,iGAA8B;;AAEhE;;AAEA,iBAAiB,mBAAO,CAAC,iEAAc;;AAEvC,sCAAsC,uCAAuC,kBAAkB;;AAE/F,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ,iDAAiD,aAAa,uFAAuF,EAAE,uFAAuF;;AAE9O,0CAA0C,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAE5e;AACA;AACA;AACA;;AAEA,kFAAkF;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA,GAAG;;;AAGH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oFAAoF,kBAAkB;AACtG;AACA;;AAEA;AACA;AACA;AACA;AACA,uBAAuB,mDAAmD;AAC1E;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,yBAAyB,yBAAyB;AAClD;AACA,WAAW;AACX;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb,gEAAgE;AAChE;AACA,aAAa;AACb,gEAAgE;AAChE;AACA,aAAa;AACb;AACA;AACA;AACA,uBAAuB,oEAAoE,4BAA4B;AACvH;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,CAAC,a;;;;;;;;;;;;ACzdY;;AAEb;AACA;AACA,CAAC;AACD;;AAEA,mDAAmD,gBAAgB,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,2BAA2B,EAAE,EAAE,EAAE,eAAe;;AAE9P,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB,cAAc,mBAAO,CAAC,4DAAe;;AAErC;;AAEA,aAAa,mBAAO,CAAC,oBAAO;;AAE5B;;AAEA,iCAAiC,mBAAO,CAAC,0FAA8B;;AAEvE;;AAEA,cAAc,mBAAO,CAAC,sBAAQ;;AAE9B;;AAEA,uBAAuB,mBAAO,CAAC,6EAAmB;;AAElD,mBAAmB,mBAAO,CAAC,6DAAc;;AAEzC,uBAAuB,mBAAO,CAAC,oEAAmB;;AAElD,0BAA0B,mBAAO,CAAC,gFAAqB;;AAEvD,qBAAqB,mBAAO,CAAC,sEAAiB;;AAE9C;;AAEA,gCAAgC,mBAAO,CAAC,wFAA6B;;AAErE;;AAEA,4BAA4B,mBAAO,CAAC,qGAAgC;;AAEpE;;AAEA,sBAAsB,mBAAO,CAAC,2EAAmB;;AAEjD,oCAAoC,mBAAO,CAAC,mHAAuC;;AAEnF;;AAEA,kCAAkC,mBAAO,CAAC,+GAAqC;;AAE/E;;AAEA,sBAAsB,mBAAO,CAAC,uFAAyB;;AAEvD;;AAEA,6BAA6B,mBAAO,CAAC,qGAAgC;;AAErE;;AAEA,sBAAsB,mBAAO,CAAC,qFAAwB;;AAEtD;;AAEA,sCAAsC,mBAAO,CAAC,qHAAkC;;AAEhF;;AAEA,gCAAgC,mBAAO,CAAC,yGAA4B;;AAEpE;;AAEA,mBAAmB,mBAAO,CAAC,+EAAe;;AAE1C;;AAEA,iBAAiB,mBAAO,CAAC,iEAAc;;AAEvC,sCAAsC,uCAAuC,kBAAkB;;AAE/F,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ,iDAAiD,aAAa,uFAAuF,EAAE,uFAAuF;;AAE9O,0CAA0C,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAE5e,kFAAkF;;AAElF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA,GAAG;;;AAGH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iIAAiI,gBAAgB;AACjJ;AACA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA,iBAAiB,yCAAyC;AAC1D;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,uBAAuB,6BAA6B,EAAE;;AAEtD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA,iEAAiE;AACjE,WAAW;AACX;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,oBAAoB;AACpB;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,aAAa,sCAAsC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,mB;;;;;;;;;;;;AC/zBY;;AAEb;AACA;AACA,CAAC;;AAED,mDAAmD,gBAAgB,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,2BAA2B,EAAE,EAAE,EAAE,eAAe;;AAE9P,cAAc,mBAAO,CAAC,4DAAe;;AAErC;;AAEA,aAAa,mBAAO,CAAC,oBAAO;;AAE5B;;AAEA,iBAAiB,mBAAO,CAAC,sDAAY;;AAErC;;AAEA,uBAAuB,mBAAO,CAAC,oEAAmB;;AAElD,uBAAuB,mBAAO,CAAC,6EAAmB;;AAElD,sBAAsB,mBAAO,CAAC,2EAAmB;;AAEjD,0BAA0B,mBAAO,CAAC,+FAA6B;;AAE/D;;AAEA,0BAA0B,mBAAO,CAAC,iGAA8B;;AAEhE;;AAEA,iBAAiB,mBAAO,CAAC,2EAAa;;AAEtC;;AAEA,yBAAyB,mBAAO,CAAC,+FAA6B;;AAE9D;;AAEA,qBAAqB,mBAAO,CAAC,uFAAyB;;AAEtD;;AAEA,kBAAkB,mBAAO,CAAC,6EAAc;;AAExC;;AAEA,iBAAiB,mBAAO,CAAC,2EAAa;;AAEtC;;AAEA,mBAAmB,mBAAO,CAAC,+EAAe;;AAE1C;;AAEA,oBAAoB,mBAAO,CAAC,iFAAgB;;AAE5C;;AAEA,iBAAiB,mBAAO,CAAC,iEAAc;;AAEvC,sCAAsC,uCAAuC,kBAAkB;;AAE/F,kFAAkF;AAClF;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA,GAAG;;;AAGH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,iBAAiB;AACjB;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,wB;;;;;;;;;;;;ACjcY;;AAEb;AACA;AACA,CAAC;;AAED,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB,aAAa,mBAAO,CAAC,oBAAO;;AAE5B;;AAEA,iBAAiB,mBAAO,CAAC,sDAAY;;AAErC;;AAEA,cAAc,mBAAO,CAAC,sBAAQ;;AAE9B;;AAEA,4BAA4B,mBAAO,CAAC,kFAAwB;;AAE5D;;AAEA,uBAAuB,mBAAO,CAAC,oEAAmB;;AAElD,0BAA0B,mBAAO,CAAC,iGAA8B;;AAEhE;;AAEA,sBAAsB,mBAAO,CAAC,2EAAmB;;AAEjD,0BAA0B,mBAAO,CAAC,+FAA6B;;AAE/D;;AAEA,4BAA4B,mBAAO,CAAC,iGAAwB;;AAE5D;;AAEA,yBAAyB,mBAAO,CAAC,+FAA6B;;AAE9D;;AAEA,qBAAqB,mBAAO,CAAC,uFAAyB;;AAEtD;;AAEA,sBAAsB,mBAAO,CAAC,uFAAyB;;AAEvD;;AAEA,6BAA6B,mBAAO,CAAC,qGAAgC;;AAErE;;AAEA,6BAA6B,mBAAO,CAAC,qGAAgC;;AAErE;;AAEA,mBAAmB,mBAAO,CAAC,iFAAsB;;AAEjD;;AAEA,iBAAiB,mBAAO,CAAC,iEAAc;;AAEvC,sCAAsC,uCAAuC,kBAAkB;;AAE/F,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ,iDAAiD,aAAa,uFAAuF,EAAE,uFAAuF;;AAE9O,0CAA0C,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAE5e;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA,GAAG;;;AAGH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA,iBAAiB,yCAAyC;AAC1D;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA,yBAAyB,yCAAyC;AAClE;AACA,SAAS;AACT;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,yBAAyB,yCAAyC;AAClE;AACA,SAAS;AACT;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,iCAAiC;AACxD;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA,KAAK;AACL,GAAG;;AAEH;AACA,CAAC;;AAED;;;AAGA;AACA,2D;;;;;;;;;;;;AC9da;;AAEb;AACA;AACA,CAAC;AACD;;AAEA,mDAAmD,gBAAgB,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,2BAA2B,EAAE,EAAE,EAAE,eAAe;;AAE9P,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB,cAAc,mBAAO,CAAC,4DAAe;;AAErC;;AAEA,aAAa,mBAAO,CAAC,oBAAO;;AAE5B;;AAEA,iBAAiB,mBAAO,CAAC,sDAAY;;AAErC;;AAEA,iCAAiC,mBAAO,CAAC,0FAA8B;;AAEvE;;AAEA,uBAAuB,mBAAO,CAAC,oEAAmB;;AAElD,uBAAuB,mBAAO,CAAC,6EAAmB;;AAElD,cAAc,mBAAO,CAAC,sBAAQ;;AAE9B;;AAEA,gBAAgB,mBAAO,CAAC,0DAAiB;;AAEzC;;AAEA,qBAAqB,mBAAO,CAAC,sEAAiB;;AAE9C;;AAEA,gCAAgC,mBAAO,CAAC,wFAA6B;;AAErE;;AAEA,sBAAsB,mBAAO,CAAC,2EAAmB;;AAEjD,0BAA0B,mBAAO,CAAC,+FAA6B;;AAE/D;;AAEA,yBAAyB,mBAAO,CAAC,2FAAqB;;AAEtD;;AAEA,2BAA2B,mBAAO,CAAC,+FAAuB;;AAE1D;;AAEA,kCAAkC,mBAAO,CAAC,6GAA8B;;AAExE;;AAEA,qCAAqC,mBAAO,CAAC,qHAAwC;;AAErF;;AAEA,6BAA6B,mBAAO,CAAC,qGAAgC;;AAErE;;AAEA,0BAA0B,mBAAO,CAAC,+FAA6B;;AAE/D;;AAEA,wBAAwB,mBAAO,CAAC,2FAA2B;;AAE3D;;AAEA,oBAAoB,mBAAO,CAAC,mFAAuB;;AAEnD;;AAEA,sBAAsB,mBAAO,CAAC,yFAA0B;;AAExD;;AAEA,kCAAkC,mBAAO,CAAC,iHAAsC;;AAEhF;;AAEA,sBAAsB,mBAAO,CAAC,yFAA0B;;AAExD;;AAEA,iCAAiC,mBAAO,CAAC,+GAAqC;;AAE9E;;AAEA,iBAAiB,mBAAO,CAAC,iEAAc;;AAEvC,sCAAsC,uCAAuC,kBAAkB;;AAE/F,kCAAkC,0BAA0B,0CAA0C,gBAAgB,OAAO,kBAAkB,EAAE,aAAa,EAAE,OAAO,wBAAwB,EAAE;;AAEjM,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ,iDAAiD,aAAa,uFAAuF,EAAE,uFAAuF;;AAE9O,0CAA0C,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAE5e;AACA;AACA;AACA;AACA;;AAEA,kFAAkF;;AAElF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA,GAAG;;;AAGH;AACA;AACA;;AAEA;AACA,eAAe;AACf;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA,GAAG;;;AAGH;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,oFAAoF,kBAAkB;AACtG;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT,yBAAyB,mDAAmD;AAC5E;;AAEA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,WAAW;AACX,2BAA2B,oBAAoB;AAC/C;AACA;;AAEA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA,uBAAuB,+BAA+B;;AAEtD;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,uBAAuB,wBAAwB;AAC/C;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,+BAA+B,qBAAqB;AACpD,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAiC;AACjC;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA,sBAAsB,SAAS,6DAA6D,iBAAiB;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,8MAA8M,wDAAwD;AAC3R;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,aAAa,iCAAiC;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,uCAAuC,8BAA8B;AACrE;;AAEA;AACA,mBAAmB;AACnB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC,a;;;;;;;;;;;;ACviDY;;AAEb;AACA;AACA,CAAC;AACD;;AAEA,mDAAmD,gBAAgB,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,2BAA2B,EAAE,EAAE,EAAE,eAAe;;AAE9P,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB,cAAc,mBAAO,CAAC,4DAAe;;AAErC;;AAEA,aAAa,mBAAO,CAAC,oBAAO;;AAE5B;;AAEA,iBAAiB,mBAAO,CAAC,sDAAY;;AAErC;;AAEA,uBAAuB,mBAAO,CAAC,oEAAmB;;AAElD,uBAAuB,mBAAO,CAAC,6EAAmB;;AAElD,sBAAsB,mBAAO,CAAC,2EAAmB;;AAEjD,0BAA0B,mBAAO,CAAC,+FAA6B;;AAE/D;;AAEA,2BAA2B,mBAAO,CAAC,+FAAuB;;AAE1D;;AAEA,mBAAmB,mBAAO,CAAC,+EAAe;;AAE1C;;AAEA,sCAAsC,uCAAuC,kBAAkB;;AAE/F,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ,iDAAiD,aAAa,uFAAuF,EAAE,uFAAuF;;AAE9O,0CAA0C,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAE5e;AACA;AACA;;AAEA,kFAAkF;AAClF;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA,mEAAmE,aAAa;AAChF;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,SAAS;AACT;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;;AAEA;AACA,eAAe;AACf;AACA;AACA;AACA;;AAEA;AACA,eAAe;AACf,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,yBAAyB;AACzB;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,eAAe;AACf;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA,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AAuH;;AAE5e;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA,GAAG;;;AAGH;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA,GAAG;;;AAGH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA,GAAG;;;AAGH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;AACX;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA,eAAe;AACf;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb,WAAW;AACX;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oDAAoD;AACpD,WAAW;AACX;;AAEA;AACA;AACA;;AAEA;AACA,gDAAgD;AAChD;AACA,aAAa;AACb,WAAW;AACX;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,yCAAyC;AAC9D;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,yCAAyC;AAC9D,WAAW;AACX;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,uBAAuB,yCAAyC;AAChE;AACA,WAAW;AACX;AACA;AACA;AACA;;AAEA,uBAAuB,yCAAyC;AAChE;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oDAAoD;AACpD,WAAW;AACX;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kDAAkD;AAClD,SAAS;AACT;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA,kDAAkD;AAClD,SAAS;AACT;AACA,SAAS;AACT;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA,kDAAkD;AAClD,SAAS;AACT;AACA,SAAS;AACT;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA,kDAAkD;AAClD,SAAS;AACT;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW;;AAEX;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;;AAET;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,kEAAkE;AAClE;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA;AACA,8CAA8C,0BAA0B,uCAAuC,2BAA2B;AAC1I,WAAW;AACX,SAAS;AACT;AACA;;AAEA;AACA;AACA,gEAAgE,8CAA8C,uCAAuC,2BAA2B;AAChL;;AAEA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,kEAAkE;AAClE;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA;AACA,8CAA8C,0BAA0B,uCAAuC,2BAA2B;AAC1I,WAAW;AACX,SAAS;AACT;AACA;;AAEA;AACA;AACA,gEAAgE,8CAA8C,uCAAuC,2BAA2B;AAChL;;AAEA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mCAAmC;AACnC;;AAEA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA,oCAAoC;AACpC;;AAEA;;AAEA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA,oCAAoC;AACpC;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA,KAAK;AACL,GAAG;;AAEH;AACA,CAAC;;AAED;;;AAGA;AACA,qD;;;;;;;;;;;;ACh+Ca;;AAEb;AACA;AACA,CAAC;;AAED,kCAAkC,iCAAiC,eAAe,eAAe,gBAAgB,oBAAoB,MAAM,0CAA0C,+BAA+B,aAAa,qBAAqB,mCAAmC,EAAE,EAAE,cAAc,WAAW,UAAU,EAAE,UAAU,MAAM,yCAAyC,EAAE,UAAU,kBAAkB,EAAE,EAAE,aAAa,EAAE,2BAA2B,0BAA0B,YAAY,EAAE,2CAA2C,8BAA8B,EAAE,OAAO,6EAA6E,EAAE,GAAG,EAAE;;AAErpB,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB,cAAc,mBAAO,CAAC,4DAAe;;AAErC;;AAEA,aAAa,mBAAO,CAAC,oBAAO;;AAE5B;;AAEA,iBAAiB,mBAAO,CAAC,sDAAY;;AAErC;;AAEA,4BAA4B,mBAAO,CAAC,kFAAwB;;AAE5D;;AAEA,uBAAuB,mBAAO,CAAC,oEAAmB;;AAElD,cAAc,mBAAO,CAAC,sBAAQ;;AAE9B;;AAEA,eAAe,mBAAO,CAAC,4DAAe;;AAEtC;;AAEA,qBAAqB,mBAAO,CAAC,sEAAiB;;AAE9C;;AAEA,sBAAsB,mBAAO,CAAC,2EAAmB;;AAEjD,0BAA0B,mBAAO,CAAC,+FAA6B;;AAE/D;;AAEA,iBAAiB,mBAAO,CAAC,6EAAoB;;AAE7C;;AAEA,kBAAkB,mBAAO,CAAC,+EAAqB;;AAE/C;;AAEA,sBAAsB,mBAAO,CAAC,uFAAyB;;AAEvD;;AAEA,oBAAoB,mBAAO,CAAC,mFAAuB;;AAEnD;;AAEA,uBAAuB,mBAAO,CAAC,yFAA0B;;AAEzD;;AAEA,wBAAwB,mBAAO,CAAC,2FAA2B;;AAE3D;;AAEA,kCAAkC,mBAAO,CAAC,iHAAsC;;AAEhF;;AAEA,sBAAsB,mBAAO,CAAC,yFAA0B;;AAExD;;AAEA,iCAAiC,mBAAO,CAAC,+GAAqC;;AAE9E;;AAEA,iBAAiB,mBAAO,CAAC,iEAAc;;AAEvC,iBAAiB,mBAAO,CAAC,2EAAa;;AAEtC;;AAEA,sCAAsC,uCAAuC,kBAAkB;;AAE/F,2CAA2C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAE/M,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ,iDAAiD,aAAa,uFAAuF,EAAE,uFAAuF;;AAE9O,0CAA0C,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAE5e;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA,GAAG;;;AAGH;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA,GAAG;;;AAGH;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA,GAAG;;;AAGH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA,GAAG;;;AAGH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oDAAoD;AACpD,WAAW;AACX;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA,yBAAyB,iBAAiB;AAC1C,mBAAmB,YAAY;AAC/B;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,8CAA8C;AAC9C;;AAEA;AACA;AACA,kDAAkD;AAClD,SAAS;AACT;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,8CAA8C;;AAE9C;AACA;AACA,kDAAkD;AAClD,SAAS;AACT;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA,kDAAkD;AAClD,SAAS;AACT;AACA,SAAS;AACT;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA,kDAAkD;AAClD,SAAS;AACT;AACA,SAAS;AACT;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;;AAET;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,kEAAkE;AAClE;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA;AACA,8CAA8C,0BAA0B,uCAAuC,2BAA2B;AAC1I,WAAW;AACX,SAAS;AACT;AACA;;AAEA;AACA;AACA,gEAAgE,8CAA8C,uCAAuC,2BAA2B;AAChL;;AAEA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,kEAAkE;AAClE;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA;AACA,8CAA8C,0BAA0B,uCAAuC,2BAA2B;AAC1I,WAAW;AACX,SAAS;AACT;AACA;;AAEA;AACA;AACA,gEAAgE,8CAA8C,uCAAuC,2BAA2B;AAChL;;AAEA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA,mCAAmC;AACnC;;AAEA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,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yEAAyE,EAAE,EAAE,uHAAuH;;AAE5e,kFAAkF;;AAElF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA,GAAG;;;AAGH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA,iIAAiI,gBAAgB;AACjJ;AACA;;AAEA;;;AAGA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,2BAA2B,iBAAiB;AAC5C,qBAAqB,gBAAgB;AACrC;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA,yBAAyB,gBAAgB;AACzC;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET,uBAAuB,iBAAiB;AACxC,iBAAiB,aAAa;AAC9B;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,gBAAgB;AACzC;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,uBAAuB,6BAA6B,EAAE;;AAEtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iEAAiE;AACjE,WAAW;AACX;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,oBAAoB;AACpB;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,aAAa,oCAAoC;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,oB;;;;;;;;;;;;ACp2BY;;AAEb;AACA;AACA,CAAC;;AAED,mDAAmD,gBAAgB,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,2BAA2B,EAAE,EAAE,EAAE,eAAe;;AAE9P,cAAc,mBAAO,CAAC,4DAAe;;AAErC;;AAEA,aAAa,mBAAO,CAAC,oBAAO;;AAE5B;;AAEA,iBAAiB,mBAAO,CAAC,sDAAY;;AAErC;;AAEA,uBAAuB,mBAAO,CAAC,oEAAmB;;AAElD,uBAAuB,mBAAO,CAAC,6EAAmB;;AAElD,sBAAsB,mBAAO,CAAC,2EAAmB;;AAEjD,0BAA0B,mBAAO,CAAC,+FAA6B;;AAE/D;;AAEA,iBAAiB,mBAAO,CAAC,2EAAa;;AAEtC;;AAEA,yBAAyB,mBAAO,CAAC,+FAA6B;;AAE9D;;AAEA,mBAAmB,mBAAO,CAAC,+EAAe;;AAE1C;;AAEA,oBAAoB,mBAAO,CAAC,iFAAgB;;AAE5C;;AAEA,0BAA0B,mBAAO,CAAC,iGAA8B;;AAEhE;;AAEA,iBAAiB,mBAAO,CAAC,iEAAc;;AAEvC,sCAAsC,uCAAuC,kBAAkB;;AAE/F,kFAAkF;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA,GAAG;;;AAGH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,yB;;;;;;;;;;;;ACjWY;;AAEb;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,mG;;;;;;;;;;;;ACtCa;;AAEb;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,E;;;;;;;;;;;;ACpNa;;AAEb;AACA;AACA,CAAC;;AAED,mBAAmB,mBAAO,CAAC,0FAA0B;;AAErD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH,CAAC;;AAED,qBAAqB,mBAAO,CAAC,8FAA4B;;AAEzD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH,CAAC;;AAED,yBAAyB,mBAAO,CAAC,sGAAgC;;AAEjE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH,CAAC;;AAED,uBAAuB,mBAAO,CAAC,kGAA8B;;AAE7D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH,CAAC;;AAED,4BAA4B,mBAAO,CAAC,4GAAmC;;AAEvE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH,CAAC;;AAED,sCAAsC,mBAAO,CAAC,gIAA6C;;AAE3F;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH,CAAC;;AAED,4BAA4B,mBAAO,CAAC,oGAA+B;;AAEnE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH,CAAC;;AAED,iBAAiB,mBAAO,CAAC,sFAAwB;;AAEjD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH,CAAC;;AAED,gCAAgC,mBAAO,CAAC,oHAAuC;;AAE/E;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH,CAAC;;AAED,qCAAqC,mBAAO,CAAC,8HAA4C;;AAEzF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH,CAAC;;AAED,wBAAwB,mBAAO,CAAC,oGAA+B;;AAE/D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH,CAAC;;AAED,6BAA6B,mBAAO,CAAC,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AwB;;AAE5D;;AAEA,uBAAuB,mBAAO,CAAC,oEAAmB;;AAElD,sBAAsB,mBAAO,CAAC,2EAAmB;;AAEjD,0BAA0B,mBAAO,CAAC,+FAA6B;;AAE/D;;AAEA,yBAAyB,mBAAO,CAAC,uFAAqB;;AAEtD;;AAEA,wBAAwB,mBAAO,CAAC,qFAAoB;;AAEpD;;AAEA,4BAA4B,mBAAO,CAAC,6FAAwB;;AAE5D;;AAEA,0BAA0B,mBAAO,CAAC,yFAAsB;;AAExD;;AAEA,sBAAsB,mBAAO,CAAC,iFAAkB;;AAEhD;;AAEA,iCAAiC,mBAAO,CAAC,uGAA6B;;AAEtE;;AAEA,sCAAsC,uCAAuC,kBAAkB;;AAE/F;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;;;;;;;AC1Ha;;AAEb;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;;;;;;;ACvMa;;AAEb;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,C;;;;;;;;;;;;ACrCa;;AAEb;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,YAAY,YAAY;AACxB;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,wBAAwB;AACnC,YAAY,wBAAwB;AACpC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,C;;;;;;;;;;;;AClFa;;AAEb;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,C;;;;;;;;;;;;ACRa;;AAEb;AACA;AACA,CAAC;AACD;;AAEA,iBAAiB,mBAAO,CAAC,sEAAa;;AAEtC;;AAEA,iBAAiB,mBAAO,CAAC,iEAAc;;AAEvC,sCAAsC,uCAAuC,kBAAkB;;AAE/F;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,uBAAuB;;AAEvB;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;;;;;;;;;;;;ACnDa;;AAEb;AACA;AACA,CAAC;AACD;;AAEA,cAAc,mBAAO,CAAC,sBAAQ;;AAE9B;;AAEA,iBAAiB,mBAAO,CAAC,iEAAc;;AAEvC,sCAAsC,uCAAuC,kBAAkB;;AAE/F;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,iBAAiB,eAAe;AAChC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,C;;;;;;;;;;;;ACzDa;;AAEb;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,C;;;;;;;;;;;;ACRa;;AAEb;AACA;AACA,CAAC;AACD;;AAEA,iBAAiB,mBAAO,CAAC,iEAAc;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,YAAY;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,C;;;;;;;;;;;;AC7Ca;;AAEb;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA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AEA;AACA;;AAEA;;AAEA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,eAAe;AACpC;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,qBAAqB,gBAAgB;AACrC;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,4CAAK;AAClB,QAAQ,qDAAM;AACd;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,4CAAK;;AAEP;AACA,YAAY,iDAAS;AACrB,eAAe,iDAAS;AACxB,QAAQ,iDAAS;AACjB,cAAc,iDAAS;AACvB,uBAAuB,iDAAS;AAChC,UAAU,iDAAS;AACnB,WAAW,iDAAS;AACpB;;AAEA;AACA,8BAA8B;AAC9B;AACA;;AAEe,8EAAe,E;;;;;;;;;;;;AC9I9B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAoC;AACY;;;;;;;;;;;;;;ACDhD;AAAA;AAAO,sG;;;;;;;;;;;ACAP;AACA;AACA,CAAC;AACD;;AAEA;AACA;AACA;AACA,E;;;;;;;;;;;ACRA;AACA;AACA,CAAC;;AAED,iBAAiB,mBAAO,CAAC,sDAAY;;AAErC;;AAEA,sCAAsC,uCAAuC,kBAAkB;;AAE/F;AACA;AACA;AACA;AACA,CAAC,E;;;;;;;;;;;ACdD;AACA;AACA,CAAC;;AAED,sBAAsB,mBAAO,CAAC,0EAAsB;;AAEpD;;AAEA,mBAAmB,mBAAO,CAAC,0DAAc;;AAEzC;;AAEA,iBAAiB,mBAAO,CAAC,iGAAmB;;AAE5C,oBAAoB,mBAAO,CAAC,uGAAsB;;AAElD;;AAEA,uBAAuB,mBAAO,CAAC,2GAAwB;;AAEvD;;AAEA,sCAAsC,uCAAuC,kBAAkB;;AAE/F;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,MAAM;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA,gBAAgB;AAChB;AACA;AACA;;AAEA,sBAAsB,oC;;;;;;;;;;;ACzEtB;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA,0C;;;;;;;;;;;ACPA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,C;;;;;;;;;;;ACfA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,wBAAwB;AACzC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,oC;;;;;;;;;;;AC1CA;AACA,iBAAiB,mBAAO,CAAC,qFAAiB;;;;;;;;;;;;ACD1C;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,MAAM,KAAqC;AAC3C;AACA;;AAEA,mEAAmE,aAAa;AAChF;AACA;;AAEA;;AAEA,MAAM,KAAqC;AAC3C;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,sEAAsE,eAAe;AACrF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,sEAAsE,eAAe;AACrF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;;;;;;AC9FA;AACA;AACA,CAAC;AACD;;AAEA,mDAAmD,gBAAgB,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,2BAA2B,EAAE,EAAE,EAAE,eAAe;;AAE9P,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB;;AAEA,aAAa,mBAAO,CAAC,oBAAO;;AAE5B;;AAEA,iBAAiB,mBAAO,CAAC,sDAAY;;AAErC;;AAEA,4BAA4B,mBAAO,CAAC,2GAAyB;;AAE7D;;AAEA,iBAAiB,mBAAO,CAAC,uDAAW;;AAEpC;;AAEA,iBAAiB,mBAAO,CAAC,kGAAqC;;AAE9D,cAAc,mBAAO,CAAC,gHAA4C;;AAElE;;AAEA,wBAAwB,mBAAO,CAAC,oFAAoB;;AAEpD;;AAEA,sCAAsC,uCAAuC,kBAAkB;;AAE/F,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ,iDAAiD,aAAa,uFAAuF,EAAE,uFAAuF;;AAE9O,0CAA0C,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAE5e,2CAA2C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAE/M;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,qCAAqC;;AAErC;;AAEA;AACA,mFAAmF;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,QAAQ,KAAqC;AAC7C;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA,QAAQ,KAAqC;AAC7C;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA,mFAAmF,yBAAyB;AAC5G;;AAEA;AACA,WAAW;AACX,SAAS;;AAET;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA,gEAAgE;AAChE;;AAEA;AACA;;AAEA;AACA,GAAG;AACH,C;;;;;;;;;;;ACxPA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,oBAAoB;;AAEpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,8BAA8B;AACpD,sBAAsB,8BAA8B;AACpD,sBAAsB,8BAA8B;;AAEpD;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,+BAA+B,mBAAmB,OAAO;AACzD,+BAA+B,mBAAmB,OAAO;AACzD,+BAA+B,mBAAmB,OAAO;AACzD;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,gBAAgB;AAChB,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,gBAAgB;AAChB,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,UAAU;AACzB;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD,wCAAwC;AACxC,wCAAwC;AACxC;;AAEA;AACA;;AAEA,YAAY;AACZ;;AAEA;AACA;AACA;AACA,eAAe,UAAU;AACzB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,YAAY;AACZ;;AAEA;AACA;AACA;AACA,eAAe,UAAU;AACzB;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA,sDAAsD;AACtD,wCAAwC;AACxC,wCAAwC;AACxC;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA,eAAe,UAAU;AACzB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,6BAA6B,cAAc;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yCAAyC;AAC5D,mBAAmB,yCAAyC;AAC5D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,wCAAwC;AAC3D,mBAAmB,yCAAyC;AAC5D,mBAAmB,yCAAyC;AAC5D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,uCAAuC;AAC1D,mBAAmB,wCAAwC;AAC3D;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,+DAA+D,WAAW;AAC1E;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4BAA4B,kBAAkB;AAC9C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,2DAA2D,wBAAwB;;AAEnF;AACA;AACA,2CAA2C,wBAAwB;AACnE;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,8EAA8E,4BAA4B,gBAAgB;AAC1H,8EAA8E,2BAA2B,gBAAgB;AACzH,qDAAqD,oDAAoD,gBAAgB;AACzH,qDAAqD,oDAAoD,gBAAgB;AACzH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,uBAAuB;AACzC;AACA;AACA;AACA;AACA;AACA;;AAEA,oDAAoD,0BAA0B;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;;AAEA,KAAK,kBAAkB,YAAY,kBAAkB;AACrD;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,4BAA4B,YAAY;;AAExC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE,cAAc,EAAE,cAAc,EAAE;AACjE,+BAA+B,EAAE,cAAc,EAAE,cAAc,EAAE;AACjE,+BAA+B,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE;AACjF,+BAA+B,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE;AACjF;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wCAAwC,UAAU,OAAO,UAAU,OAAO,SAAS;AACnF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,2CAA2C;AAC3C;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA,IAAI,KAA6B;AACjC;AACA;AACA;AACA,SAAS,IAA0C;AACnD,IAAI,mCAAO,aAAa,kBAAkB;AAAA,oGAAC;AAC3C;AACA;AACA,KAAK,EAEJ;;AAED,CAAC;;;;;;;;;;;;AC1qCD;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACvBA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,iCAAiC;;AAEjC;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA,sBAAsB,QAAQ;AAC9B;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;ACjCA,UAAU,mBAAO,CAAC,yDAAW;AAC7B,kBAAkB,mBAAO,CAAC,iEAAmB;;AAE7C;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;AC5BA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;;AAE5C;;;;;;;;;;;;ACnBA,aAAa,qCAAqC,EAAE,I;;;;;;;;;;;ACApD,aAAa,yCAAyC,EAAE,I;;;;;;;;;;;ACAxD,aAAa,wCAAwC,EAAE,I;;;;;;;;;;;ACAvD,aAAa,2CAA2C,EAAE,I;;;;;;;;;;;ACA1D,aAAa,oCAAoC,EAAE,I;;;;;;;;;;;ACAnD,aAAa,wCAAwC,EAAE,I;;;;;;;;;;;ACAvD,aAAa,sCAAsC,EAAE,I;;;;;;;;;;;ACArD,aAAa,qCAAqC,EAAE,I;;;;;;;;;;;ACApD,aAAa,+CAA+C,EAAE,I;;;;;;;;;;;ACA9D,aAAa,yCAAyC,EAAE,I;;;;;;;;;;;ACAxD,aAAa,yCAAyC,EAAE,I;;;;;;;;;;;ACAxD,aAAa,oCAAoC,EAAE,I;;;;;;;;;;;ACAnD,aAAa,iCAAiC,EAAE,I;;;;;;;;;;;ACAhD,aAAa,iCAAiC,EAAE,I;;;;;;;;;;;ACAhD,aAAa,gCAAgC,EAAE,I;;;;;;;;;;;ACA/C,aAAa,mCAAmC,EAAE,I","file":"components.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./node_modules/@wordpress/components/build-module/index.js\");\n","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import setPrototypeOf from \"./setPrototypeOf\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}","export default function _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}","import defineProperty from \"./defineProperty\";\nexport default function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","import _typeof from \"../../helpers/esm/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import arrayWithHoles from \"./arrayWithHoles\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit\";\nimport nonIterableRest from \"./nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest();\n}","import arrayWithoutHoles from \"./arrayWithoutHoles\";\nimport iterableToArray from \"./iterableToArray\";\nimport nonIterableSpread from \"./nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();\n}","function _typeof2(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nexport default function _typeof(obj) {\n if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\n}","/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { escapeRegExp, find, map, debounce, deburr } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { Component, renderToString } from '@wordpress/element';\nimport { ENTER, ESCAPE, UP, DOWN, LEFT, RIGHT, SPACE } from '@wordpress/keycodes';\nimport { __, _n, sprintf } from '@wordpress/i18n';\nimport { withInstanceId, compose } from '@wordpress/compose';\nimport {\n\tcreate,\n\tslice,\n\tinsert,\n\tisCollapsed,\n\tgetTextContent,\n} from '@wordpress/rich-text';\nimport { getRectangleFromRange } from '@wordpress/dom';\n\n/**\n * Internal dependencies\n */\nimport withFocusOutside from '../higher-order/with-focus-outside';\nimport Button from '../button';\nimport Popover from '../popover';\nimport withSpokenMessages from '../higher-order/with-spoken-messages';\n\n/**\n * A raw completer option.\n * @typedef {*} CompleterOption\n */\n\n/**\n * @callback FnGetOptions\n *\n * @returns {(CompleterOption[]|Promise.<CompleterOption[]>)} The completer options or a promise for them.\n */\n\n/**\n * @callback FnGetOptionKeywords\n * @param {CompleterOption} option a completer option.\n *\n * @returns {string[]} list of key words to search.\n */\n\n/**\n * @callback FnIsOptionDisabled\n * @param {CompleterOption} option a completer option.\n *\n * @returns {string[]} whether or not the given option is disabled.\n */\n\n/**\n * @callback FnGetOptionLabel\n * @param {CompleterOption} option a completer option.\n *\n * @returns {(string|Array.<(string|Component)>)} list of react components to render.\n */\n\n/**\n * @callback FnAllowNode\n * @param {Node} textNode check if the completer can handle this text node.\n *\n * @returns {boolean} true if the completer can handle this text node.\n */\n\n/**\n * @callback FnAllowContext\n * @param {Range} before the range before the auto complete trigger and query.\n * @param {Range} after the range after the autocomplete trigger and query.\n *\n * @returns {boolean} true if the completer can handle these ranges.\n */\n\n/**\n * @typedef {Object} OptionCompletion\n * @property {('insert-at-caret', 'replace')} action the intended placement of the completion.\n * @property {OptionCompletionValue} value the completion value.\n */\n\n/**\n * A completion value.\n * @typedef {(String|WPElement|Object)} OptionCompletionValue\n */\n\n/**\n * @callback FnGetOptionCompletion\n * @param {CompleterOption} value the value of the completer option.\n * @param {Range} range the nodes included in the autocomplete trigger and query.\n * @param {String} query the text value of the autocomplete query.\n *\n * @returns {(OptionCompletion|OptionCompletionValue)} the completion for the given option. If an\n * \t\t\t\t\t\t\t\t\t\t\t\t\t OptionCompletionValue is returned, the\n * \t\t\t\t\t\t\t\t\t\t\t\t\t completion action defaults to `insert-at-caret`.\n */\n\n/**\n * @typedef {Object} Completer\n * @property {String} name a way to identify a completer, useful for selective overriding.\n * @property {?String} className A class to apply to the popup menu.\n * @property {String} triggerPrefix the prefix that will display the menu.\n * @property {(CompleterOption[]|FnGetOptions)} options the completer options or a function to get them.\n * @property {?FnGetOptionKeywords} getOptionKeywords get the keywords for a given option.\n * @property {?FnIsOptionDisabled} isOptionDisabled get whether or not the given option is disabled.\n * @property {FnGetOptionLabel} getOptionLabel get the label for a given option.\n * @property {?FnAllowNode} allowNode filter the allowed text nodes in the autocomplete.\n * @property {?FnAllowContext} allowContext filter the context under which the autocomplete activates.\n * @property {FnGetOptionCompletion} getOptionCompletion get the completion associated with a given option.\n */\n\nfunction filterOptions( search, options = [], maxResults = 10 ) {\n\tconst filtered = [];\n\tfor ( let i = 0; i < options.length; i++ ) {\n\t\tconst option = options[ i ];\n\n\t\t// Merge label into keywords\n\t\tlet { keywords = [] } = option;\n\t\tif ( 'string' === typeof option.label ) {\n\t\t\tkeywords = [ ...keywords, option.label ];\n\t\t}\n\n\t\tconst isMatch = keywords.some( ( keyword ) => search.test( deburr( keyword ) ) );\n\t\tif ( ! isMatch ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tfiltered.push( option );\n\n\t\t// Abort early if max reached\n\t\tif ( filtered.length === maxResults ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn filtered;\n}\n\nfunction getCaretRect() {\n\tconst range = window.getSelection().getRangeAt( 0 );\n\n\tif ( range ) {\n\t\treturn getRectangleFromRange( range );\n\t}\n}\n\nexport class Autocomplete extends Component {\n\tstatic getInitialState() {\n\t\treturn {\n\t\t\tsearch: /./,\n\t\t\tselectedIndex: 0,\n\t\t\tsuppress: undefined,\n\t\t\topen: undefined,\n\t\t\tquery: undefined,\n\t\t\tfilteredOptions: [],\n\t\t};\n\t}\n\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.bindNode = this.bindNode.bind( this );\n\t\tthis.select = this.select.bind( this );\n\t\tthis.reset = this.reset.bind( this );\n\t\tthis.resetWhenSuppressed = this.resetWhenSuppressed.bind( this );\n\t\tthis.handleKeyDown = this.handleKeyDown.bind( this );\n\t\tthis.debouncedLoadOptions = debounce( this.loadOptions, 250 );\n\n\t\tthis.state = this.constructor.getInitialState();\n\t}\n\n\tbindNode( node ) {\n\t\tthis.node = node;\n\t}\n\n\tinsertCompletion( replacement ) {\n\t\tconst { open, query } = this.state;\n\t\tconst { record, onChange } = this.props;\n\t\tconst end = record.start;\n\t\tconst start = end - open.triggerPrefix.length - query.length;\n\t\tconst toInsert = create( { html: renderToString( replacement ) } );\n\n\t\tonChange( insert( record, toInsert, start, end ) );\n\t}\n\n\tselect( option ) {\n\t\tconst { onReplace } = this.props;\n\t\tconst { open, query } = this.state;\n\t\tconst { getOptionCompletion } = open || {};\n\n\t\tif ( option.isDisabled ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( getOptionCompletion ) {\n\t\t\tconst completion = getOptionCompletion( option.value, query );\n\n\t\t\tconst { action, value } =\n\t\t\t\t( undefined === completion.action || undefined === completion.value ) ?\n\t\t\t\t\t{ action: 'insert-at-caret', value: completion } :\n\t\t\t\t\tcompletion;\n\n\t\t\tif ( 'replace' === action ) {\n\t\t\t\tonReplace( [ value ] );\n\t\t\t} else if ( 'insert-at-caret' === action ) {\n\t\t\t\tthis.insertCompletion( value );\n\t\t\t}\n\t\t}\n\n\t\t// Reset autocomplete state after insertion rather than before\n\t\t// so insertion events don't cause the completion menu to redisplay.\n\t\tthis.reset();\n\t}\n\n\treset() {\n\t\tconst isMounted = !! this.node;\n\n\t\t// Autocompletions may replace the block containing this component,\n\t\t// so we make sure it is mounted before resetting the state.\n\t\tif ( isMounted ) {\n\t\t\tthis.setState( this.constructor.getInitialState() );\n\t\t}\n\t}\n\n\tresetWhenSuppressed() {\n\t\tconst { open, suppress } = this.state;\n\t\tif ( open && suppress === open.idx ) {\n\t\t\tthis.reset();\n\t\t}\n\t}\n\n\thandleFocusOutside() {\n\t\tthis.reset();\n\t}\n\n\tannounce( filteredOptions ) {\n\t\tconst { debouncedSpeak } = this.props;\n\t\tif ( ! debouncedSpeak ) {\n\t\t\treturn;\n\t\t}\n\t\tif ( !! filteredOptions.length ) {\n\t\t\tdebouncedSpeak( sprintf( _n(\n\t\t\t\t'%d result found, use up and down arrow keys to navigate.',\n\t\t\t\t'%d results found, use up and down arrow keys to navigate.',\n\t\t\t\tfilteredOptions.length\n\t\t\t), filteredOptions.length ), 'assertive' );\n\t\t} else {\n\t\t\tdebouncedSpeak( __( 'No results.' ), 'assertive' );\n\t\t}\n\t}\n\n\t/**\n\t * Load options for an autocompleter.\n\t *\n\t * @param {Completer} completer The autocompleter.\n\t * @param {string} query The query, if any.\n\t */\n\tloadOptions( completer, query ) {\n\t\tconst { options } = completer;\n\n\t\t/*\n\t\t * We support both synchronous and asynchronous retrieval of completer options\n\t\t * but internally treat all as async so we maintain a single, consistent code path.\n\t\t *\n\t\t * Because networks can be slow, and the internet is wonderfully unpredictable,\n\t\t * we don't want two promises updating the state at once. This ensures that only\n\t\t * the most recent promise will act on `optionsData`. This doesn't use the state\n\t\t * because `setState` is batched, and so there's no guarantee that setting\n\t\t * `activePromise` in the state would result in it actually being in `this.state`\n\t\t * before the promise resolves and we check to see if this is the active promise or not.\n\t\t */\n\t\tconst promise = this.activePromise = Promise.resolve(\n\t\t\ttypeof options === 'function' ? options( query ) : options\n\t\t).then( ( optionsData ) => {\n\t\t\tif ( promise !== this.activePromise ) {\n\t\t\t\t// Another promise has become active since this one was asked to resolve, so do nothing,\n\t\t\t\t// or else we might end triggering a race condition updating the state.\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst keyedOptions = optionsData.map( ( optionData, optionIndex ) => ( {\n\t\t\t\tkey: `${ completer.idx }-${ optionIndex }`,\n\t\t\t\tvalue: optionData,\n\t\t\t\tlabel: completer.getOptionLabel( optionData ),\n\t\t\t\tkeywords: completer.getOptionKeywords ? completer.getOptionKeywords( optionData ) : [],\n\t\t\t\tisDisabled: completer.isOptionDisabled ? completer.isOptionDisabled( optionData ) : false,\n\t\t\t} ) );\n\n\t\t\tconst filteredOptions = filterOptions( this.state.search, keyedOptions );\n\t\t\tconst selectedIndex = filteredOptions.length === this.state.filteredOptions.length ? this.state.selectedIndex : 0;\n\t\t\tthis.setState( {\n\t\t\t\t[ 'options_' + completer.idx ]: keyedOptions,\n\t\t\t\tfilteredOptions,\n\t\t\t\tselectedIndex,\n\t\t\t} );\n\t\t\tthis.announce( filteredOptions );\n\t\t} );\n\t}\n\n\thandleKeyDown( event ) {\n\t\tconst { open, suppress, selectedIndex, filteredOptions } = this.state;\n\t\tif ( ! open ) {\n\t\t\treturn;\n\t\t}\n\t\tif ( suppress === open.idx ) {\n\t\t\tswitch ( event.keyCode ) {\n\t\t\t\t// cancel popup suppression on CTRL+SPACE\n\t\t\t\tcase SPACE:\n\t\t\t\t\tconst { ctrlKey, shiftKey, altKey, metaKey } = event;\n\t\t\t\t\tif ( ctrlKey && ! ( shiftKey || altKey || metaKey ) ) {\n\t\t\t\t\t\tthis.setState( { suppress: undefined } );\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\t// reset on cursor movement\n\t\t\t\tcase UP:\n\t\t\t\tcase DOWN:\n\t\t\t\tcase LEFT:\n\t\t\t\tcase RIGHT:\n\t\t\t\t\tthis.reset();\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tif ( filteredOptions.length === 0 ) {\n\t\t\treturn;\n\t\t}\n\t\tlet nextSelectedIndex;\n\t\tswitch ( event.keyCode ) {\n\t\t\tcase UP:\n\t\t\t\tnextSelectedIndex = ( selectedIndex === 0 ? filteredOptions.length : selectedIndex ) - 1;\n\t\t\t\tthis.setState( { selectedIndex: nextSelectedIndex } );\n\t\t\t\tbreak;\n\n\t\t\tcase DOWN:\n\t\t\t\tnextSelectedIndex = ( selectedIndex + 1 ) % filteredOptions.length;\n\t\t\t\tthis.setState( { selectedIndex: nextSelectedIndex } );\n\t\t\t\tbreak;\n\n\t\t\tcase ESCAPE:\n\t\t\t\tthis.setState( { suppress: open.idx } );\n\t\t\t\tbreak;\n\n\t\t\tcase ENTER:\n\t\t\t\tthis.select( filteredOptions[ selectedIndex ] );\n\t\t\t\tbreak;\n\n\t\t\tcase LEFT:\n\t\t\tcase RIGHT:\n\t\t\t\tthis.reset();\n\t\t\t\treturn;\n\n\t\t\tdefault:\n\t\t\t\treturn;\n\t\t}\n\n\t\t// Any handled keycode should prevent original behavior. This relies on\n\t\t// the early return in the default case.\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t}\n\n\ttoggleKeyEvents( isListening ) {\n\t\t// This exists because we must capture ENTER key presses before RichText.\n\t\t// It seems that react fires the simulated capturing events after the\n\t\t// native browser event has already bubbled so we can't stopPropagation\n\t\t// and avoid RichText getting the event from TinyMCE, hence we must\n\t\t// register a native event handler.\n\t\tconst handler = isListening ? 'addEventListener' : 'removeEventListener';\n\t\tthis.node[ handler ]( 'keydown', this.handleKeyDown, true );\n\t}\n\n\tcomponentDidUpdate( prevProps, prevState ) {\n\t\tconst { record, completers } = this.props;\n\t\tconst { record: prevRecord } = prevProps;\n\t\tconst { open: prevOpen } = prevState;\n\n\t\tif ( ( ! this.state.open ) !== ( ! prevOpen ) ) {\n\t\t\tthis.toggleKeyEvents( ! ! this.state.open );\n\t\t}\n\n\t\tif ( isCollapsed( record ) ) {\n\t\t\tconst text = deburr( getTextContent( slice( record, 0 ) ) );\n\t\t\tconst prevText = deburr( getTextContent( slice( prevRecord, 0 ) ) );\n\n\t\t\tif ( text !== prevText ) {\n\t\t\t\tconst textAfterSelection = getTextContent( slice( record, undefined, getTextContent( record ).length ) );\n\t\t\t\tconst allCompleters = map( completers, ( completer, idx ) => ( { ...completer, idx } ) );\n\t\t\t\tconst open = find( allCompleters, ( { triggerPrefix, allowContext } ) => {\n\t\t\t\t\tconst index = text.lastIndexOf( triggerPrefix );\n\n\t\t\t\t\tif ( index === -1 ) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( allowContext && ! allowContext( text.slice( 0, index ), textAfterSelection ) ) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn /^\\S*$/.test( text.slice( index + triggerPrefix.length ) );\n\t\t\t\t} );\n\n\t\t\t\tif ( ! open ) {\n\t\t\t\t\tthis.reset();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst safeTrigger = escapeRegExp( open.triggerPrefix );\n\t\t\t\tconst match = text.match( new RegExp( `${ safeTrigger }(\\\\S*)$` ) );\n\t\t\t\tconst query = match && match[ 1 ];\n\t\t\t\tconst { open: wasOpen, suppress: wasSuppress, query: wasQuery } = this.state;\n\n\t\t\t\tif ( open && ( ! wasOpen || open.idx !== wasOpen.idx || query !== wasQuery ) ) {\n\t\t\t\t\tif ( open.isDebounced ) {\n\t\t\t\t\t\tthis.debouncedLoadOptions( open, query );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.loadOptions( open, query );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// create a regular expression to filter the options\n\t\t\t\tconst search = open ? new RegExp( '(?:\\\\b|\\\\s|^)' + escapeRegExp( query ), 'i' ) : /./;\n\t\t\t\t// filter the options we already have\n\t\t\t\tconst filteredOptions = open ? filterOptions( search, this.state[ 'options_' + open.idx ] ) : [];\n\t\t\t\t// check if we should still suppress the popover\n\t\t\t\tconst suppress = ( open && wasSuppress === open.idx ) ? wasSuppress : undefined;\n\t\t\t\t// update the state\n\t\t\t\tif ( wasOpen || open ) {\n\t\t\t\t\tthis.setState( { selectedIndex: 0, filteredOptions, suppress, search, open, query } );\n\t\t\t\t}\n\t\t\t\t// announce the count of filtered options but only if they have loaded\n\t\t\t\tif ( open && this.state[ 'options_' + open.idx ] ) {\n\t\t\t\t\tthis.announce( filteredOptions );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis.toggleKeyEvents( false );\n\t\tthis.debouncedLoadOptions.cancel();\n\t}\n\n\trender() {\n\t\tconst { children, instanceId } = this.props;\n\t\tconst { open, suppress, selectedIndex, filteredOptions } = this.state;\n\t\tconst { key: selectedKey = '' } = filteredOptions[ selectedIndex ] || {};\n\t\tconst { className, idx } = open || {};\n\t\tconst isExpanded = suppress !== idx && filteredOptions.length > 0;\n\t\tconst listBoxId = isExpanded ? `components-autocomplete-listbox-${ instanceId }` : null;\n\t\tconst activeId = isExpanded ? `components-autocomplete-item-${ instanceId }-${ selectedKey }` : null;\n\n\t\t// Disable reason: Clicking the editor should reset the autocomplete when the menu is suppressed\n\t\t/* eslint-disable jsx-a11y/no-static-element-interactions, jsx-a11y/onclick-has-role, jsx-a11y/click-events-have-key-events */\n\t\treturn (\n\t\t\t<div\n\t\t\t\tref={ this.bindNode }\n\t\t\t\tonClick={ this.resetWhenSuppressed }\n\t\t\t\tclassName=\"components-autocomplete\"\n\t\t\t>\n\t\t\t\t{ children( { isExpanded, listBoxId, activeId } ) }\n\t\t\t\t{ isExpanded && (\n\t\t\t\t\t<Popover\n\t\t\t\t\t\tfocusOnMount={ false }\n\t\t\t\t\t\tonClose={ this.reset }\n\t\t\t\t\t\tposition=\"top right\"\n\t\t\t\t\t\tclassName=\"components-autocomplete__popover\"\n\t\t\t\t\t\tgetAnchorRect={ getCaretRect }\n\t\t\t\t\t>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tid={ listBoxId }\n\t\t\t\t\t\t\trole=\"listbox\"\n\t\t\t\t\t\t\tclassName=\"components-autocomplete__results\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ isExpanded && map( filteredOptions, ( option, index ) => (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tkey={ option.key }\n\t\t\t\t\t\t\t\t\tid={ `components-autocomplete-item-${ instanceId }-${ option.key }` }\n\t\t\t\t\t\t\t\t\trole=\"option\"\n\t\t\t\t\t\t\t\t\taria-selected={ index === selectedIndex }\n\t\t\t\t\t\t\t\t\tdisabled={ option.isDisabled }\n\t\t\t\t\t\t\t\t\tclassName={ classnames( 'components-autocomplete__result', className, {\n\t\t\t\t\t\t\t\t\t\t'is-selected': index === selectedIndex,\n\t\t\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\t\t\tonClick={ () => this.select( option ) }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ option.label }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</Popover>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t);\n\t\t/* eslint-enable jsx-a11y/no-static-element-interactions, jsx-a11y/onclick-has-role, jsx-a11y/click-events-have-key-events */\n\t}\n}\n\nexport default compose( [\n\twithSpokenMessages,\n\twithInstanceId,\n\twithFocusOutside, // this MUST be the innermost HOC as it calls handleFocusOutside\n] )( Autocomplete );\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\nfunction BaseControl( { id, label, help, className, children } ) {\n\treturn (\n\t\t<div className={ classnames( 'components-base-control', className ) }>\n\t\t\t<div className=\"components-base-control__field\">\n\t\t\t\t{ label && id && <label className=\"components-base-control__label\" htmlFor={ id }>{ label }</label> }\n\t\t\t\t{ label && ! id && <span className=\"components-base-control__label\">{ label }</span> }\n\t\t\t\t{ children }\n\t\t\t</div>\n\t\t\t{ !! help && <p id={ id + '__help' } className=\"components-base-control__help\">{ help }</p> }\n\t\t</div>\n\t);\n}\n\nexport default BaseControl;\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\nfunction ButtonGroup( { className, ...props } ) {\n\tconst classes = classnames( 'components-button-group', className );\n\n\treturn (\n\t\t<div { ...props } className={ classes } role=\"group\" />\n\t);\n}\n\nexport default ButtonGroup;\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { createElement, forwardRef } from '@wordpress/element';\n\nexport function Button( props, ref ) {\n\tconst {\n\t\thref,\n\t\ttarget,\n\t\tisPrimary,\n\t\tisLarge,\n\t\tisSmall,\n\t\tisTertiary,\n\t\tisToggled,\n\t\tisBusy,\n\t\tisDefault,\n\t\tisLink,\n\t\tisDestructive,\n\t\tclassName,\n\t\tdisabled,\n\t\t...additionalProps\n\t} = props;\n\n\tconst classes = classnames( 'components-button', className, {\n\t\t'is-button': isDefault || isPrimary || isLarge || isSmall,\n\t\t'is-default': isDefault || isLarge || isSmall,\n\t\t'is-primary': isPrimary,\n\t\t'is-large': isLarge,\n\t\t'is-small': isSmall,\n\t\t'is-tertiary': isTertiary,\n\t\t'is-toggled': isToggled,\n\t\t'is-busy': isBusy,\n\t\t'is-link': isLink,\n\t\t'is-destructive': isDestructive,\n\t} );\n\n\tconst tag = href !== undefined && ! disabled ? 'a' : 'button';\n\tconst tagProps = tag === 'a' ? { href, target } : { type: 'button', disabled };\n\n\treturn createElement( tag, {\n\t\t...tagProps,\n\t\t...additionalProps,\n\t\tclassName: classes,\n\t\tref,\n\t} );\n}\n\nexport default forwardRef( Button );\n","/**\n * External dependencies\n */\nimport { withInstanceId } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BaseControl from '../base-control';\n\nfunction CheckboxControl( { label, className, heading, checked, help, instanceId, onChange, ...props } ) {\n\tconst id = `inspector-checkbox-control-${ instanceId }`;\n\tconst onChangeValue = ( event ) => onChange( event.target.checked );\n\n\treturn (\n\t\t<BaseControl label={ heading } id={ id } help={ help } className={ className }>\n\t\t\t<input\n\t\t\t\tid={ id }\n\t\t\t\tclassName=\"components-checkbox-control__input\"\n\t\t\t\ttype=\"checkbox\"\n\t\t\t\tvalue=\"1\"\n\t\t\t\tonChange={ onChangeValue }\n\t\t\t\tchecked={ checked }\n\t\t\t\taria-describedby={ !! help ? id + '__help' : undefined }\n\t\t\t\t{ ...props }\n\t\t\t/>\n\t\t\t<label className=\"components-checkbox-control__label\" htmlFor={ id }>\n\t\t\t\t{ label }\n\t\t\t</label>\n\t\t</BaseControl>\n\t);\n}\n\nexport default withInstanceId( CheckboxControl );\n","/**\n * External dependencies\n */\nimport Clipboard from 'clipboard';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport IconButton from '../icon-button';\nimport Button from '../button';\n\nclass ClipboardButton extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.bindContainer = this.bindContainer.bind( this );\n\t\tthis.onCopy = this.onCopy.bind( this );\n\t\tthis.getText = this.getText.bind( this );\n\t}\n\n\tcomponentDidMount() {\n\t\tconst { container, getText, onCopy } = this;\n\t\tconst button = container.firstChild;\n\n\t\tthis.clipboard = new Clipboard( button,\t{\n\t\t\ttext: getText,\n\t\t\tcontainer,\n\t\t} );\n\n\t\tthis.clipboard.on( 'success', onCopy );\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis.clipboard.destroy();\n\t\tdelete this.clipboard;\n\t\tclearTimeout( this.onCopyTimeout );\n\t}\n\n\tbindContainer( container ) {\n\t\tthis.container = container;\n\t}\n\n\tonCopy( args ) {\n\t\t// Clearing selection will move focus back to the triggering button,\n\t\t// ensuring that it is not reset to the body, and further that it is\n\t\t// kept within the rendered node.\n\t\targs.clearSelection();\n\n\t\tconst { onCopy, onFinishCopy } = this.props;\n\t\tif ( onCopy ) {\n\t\t\tonCopy();\n\t\t\t// For convenience and consistency, ClipboardButton offers to call\n\t\t\t// a secondary callback with delay. This is useful to reset\n\t\t\t// consumers' state, e.g. to revert a label from \"Copied\" to\n\t\t\t// \"Copy\".\n\t\t\tif ( onFinishCopy ) {\n\t\t\t\tclearTimeout( this.onCopyTimeout );\n\t\t\t\tthis.onCopyTimeout = setTimeout( onFinishCopy, 4000 );\n\t\t\t}\n\t\t}\n\t}\n\n\tgetText() {\n\t\tlet text = this.props.text;\n\t\tif ( 'function' === typeof text ) {\n\t\t\ttext = text();\n\t\t}\n\n\t\treturn text;\n\t}\n\n\trender() {\n\t\t// Disable reason: Exclude from spread props passed to Button\n\t\t// eslint-disable-next-line no-unused-vars\n\t\tconst { className, children, onCopy, onFinishCopy, text, ...buttonProps } = this.props;\n\t\tconst { icon } = buttonProps;\n\t\tconst classes = classnames( 'components-clipboard-button', className );\n\t\tconst ComponentToUse = icon ? IconButton : Button;\n\n\t\t// Workaround for inconsistent behavior in Safari, where <textarea> is not\n\t\t// the document.activeElement at the moment when the copy event fires.\n\t\t// This causes documentHasSelection() in the copy-handler component to\n\t\t// mistakenly override the ClipboardButton, and copy a serialized string\n\t\t// of the current block instead.\n\t\tconst focusOnCopyEventTarget = ( event ) => {\n\t\t\tevent.target.focus();\n\t\t};\n\n\t\treturn (\n\t\t\t<span ref={ this.bindContainer } onCopy={ focusOnCopyEventTarget }>\n\t\t\t\t<ComponentToUse { ...buttonProps } className={ classes }>\n\t\t\t\t\t{ children }\n\t\t\t\t</ComponentToUse>\n\t\t\t</span>\n\t\t);\n\t}\n}\n\nexport default ClipboardButton;\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\nconst ColorIndicator = ( { className, colorValue, ...props } ) => (\n\t<span\n\t\tclassName={ classnames( 'component-color-indicator', className ) }\n\t\tstyle={ { background: colorValue } }\n\t\t{ ...props }\n\t/>\n);\n\nexport default ColorIndicator;\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { map } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport Button from '../button';\nimport Dropdown from '../dropdown';\nimport Tooltip from '../tooltip';\nimport ColorPicker from '../color-picker';\n\nexport default function ColorPalette( { colors, disableCustomColors = false, value, onChange, className } ) {\n\tfunction applyOrUnset( color ) {\n\t\treturn () => onChange( value === color ? undefined : color );\n\t}\n\tconst customColorPickerLabel = __( 'Custom color picker' );\n\tconst classes = classnames( 'components-color-palette', className );\n\treturn (\n\t\t<div className={ classes }>\n\t\t\t{ map( colors, ( { color, name } ) => {\n\t\t\t\tconst style = { color: color };\n\t\t\t\tconst itemClasses = classnames( 'components-color-palette__item', { 'is-active': value === color } );\n\n\t\t\t\treturn (\n\t\t\t\t\t<div key={ color } className=\"components-color-palette__item-wrapper\">\n\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\ttext={ name ||\n\t\t\t\t\t\t\t\t// translators: %s: color hex code e.g: \"#f00\".\n\t\t\t\t\t\t\t\tsprintf( __( 'Color code: %s' ), color )\n\t\t\t\t\t\t\t}>\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\tclassName={ itemClasses }\n\t\t\t\t\t\t\t\tstyle={ style }\n\t\t\t\t\t\t\t\tonClick={ applyOrUnset( color ) }\n\t\t\t\t\t\t\t\taria-label={ name ?\n\t\t\t\t\t\t\t\t\t// translators: %s: The name of the color e.g: \"vivid red\".\n\t\t\t\t\t\t\t\t\tsprintf( __( 'Color: %s' ), name ) :\n\t\t\t\t\t\t\t\t\t// translators: %s: color hex code e.g: \"#f00\".\n\t\t\t\t\t\t\t\t\tsprintf( __( 'Color code: %s' ), color ) }\n\t\t\t\t\t\t\t\taria-pressed={ value === color }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t</div>\n\t\t\t\t);\n\t\t\t} ) }\n\n\t\t\t{ ! disableCustomColors &&\n\t\t\t\t<Dropdown\n\t\t\t\t\tclassName=\"components-color-palette__item-wrapper components-color-palette__custom-color\"\n\t\t\t\t\tcontentClassName=\"components-color-palette__picker\"\n\t\t\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t\t\t<Tooltip text={ customColorPickerLabel }>\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t\t\tclassName=\"components-color-palette__item\"\n\t\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t\t\taria-label={ customColorPickerLabel }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<span className=\"components-color-palette__custom-color-gradient\" />\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t) }\n\t\t\t\t\trenderContent={ () => (\n\t\t\t\t\t\t<ColorPicker\n\t\t\t\t\t\t\tcolor={ value }\n\t\t\t\t\t\t\tonChangeComplete={ ( color ) => onChange( color.hex ) }\n\t\t\t\t\t\t\tdisableAlpha\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t}\n\n\t\t\t<Button\n\t\t\t\tclassName=\"components-color-palette__clear\"\n\t\t\t\ttype=\"button\"\n\t\t\t\tonClick={ () => onChange( undefined ) }\n\t\t\t\tisSmall\n\t\t\t\tisDefault\n\t\t\t>\n\t\t\t\t{ __( 'Clear' ) }\n\t\t\t</Button>\n\t\t</div>\n\t);\n}\n","/**\n * Parts of this source were derived and modified from react-color,\n * released under the MIT license.\n *\n * https://github.com/casesandberg/react-color/\n *\n * Copyright (c) 2015 Case Sandberg\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\n/**\n * External dependencies\n */\nimport { noop } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Component, createRef } from '@wordpress/element';\nimport { TAB } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport { calculateAlphaChange } from './utils';\nimport KeyboardShortcuts from '../keyboard-shortcuts';\n\nexport class Alpha extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.container = createRef();\n\t\tthis.increase = this.increase.bind( this );\n\t\tthis.decrease = this.decrease.bind( this );\n\t\tthis.handleChange = this.handleChange.bind( this );\n\t\tthis.handleMouseDown = this.handleMouseDown.bind( this );\n\t\tthis.handleMouseUp = this.handleMouseUp.bind( this );\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis.unbindEventListeners();\n\t}\n\n\tincrease( amount = 0.01 ) {\n\t\tconst { hsl, onChange = noop } = this.props;\n\t\tamount = parseInt( amount * 100, 10 );\n\t\tconst change = {\n\t\t\th: hsl.h,\n\t\t\ts: hsl.s,\n\t\t\tl: hsl.l,\n\t\t\ta: ( parseInt( hsl.a * 100, 10 ) + amount ) / 100,\n\t\t\tsource: 'rgb',\n\t\t};\n\t\tonChange( change );\n\t}\n\n\tdecrease( amount = 0.01 ) {\n\t\tconst { hsl, onChange = noop } = this.props;\n\t\tconst intValue = parseInt( hsl.a * 100, 10 ) - parseInt( amount * 100, 10 );\n\t\tconst change = {\n\t\t\th: hsl.h,\n\t\t\ts: hsl.s,\n\t\t\tl: hsl.l,\n\t\t\ta: hsl.a <= amount ? 0 : intValue / 100,\n\t\t\tsource: 'rgb',\n\t\t};\n\t\tonChange( change );\n\t}\n\n\thandleChange( e ) {\n\t\tconst { onChange = noop } = this.props;\n\t\tconst change = calculateAlphaChange( e, this.props, this.container.current );\n\t\tif ( change ) {\n\t\t\tonChange( change, e );\n\t\t}\n\t}\n\n\thandleMouseDown( e ) {\n\t\tthis.handleChange( e );\n\t\twindow.addEventListener( 'mousemove', this.handleChange );\n\t\twindow.addEventListener( 'mouseup', this.handleMouseUp );\n\t}\n\n\thandleMouseUp() {\n\t\tthis.unbindEventListeners();\n\t}\n\n\tpreventKeyEvents( event ) {\n\t\tif ( event.keyCode === TAB ) {\n\t\t\treturn;\n\t\t}\n\t\tevent.preventDefault();\n\t}\n\n\tunbindEventListeners() {\n\t\twindow.removeEventListener( 'mousemove', this.handleChange );\n\t\twindow.removeEventListener( 'mouseup', this.handleMouseUp );\n\t}\n\n\trender() {\n\t\tconst { rgb } = this.props;\n\t\tconst rgbString = `${ rgb.r },${ rgb.g },${ rgb.b }`;\n\t\tconst gradient = {\n\t\t\tbackground: `linear-gradient(to right, rgba(${ rgbString }, 0) 0%, rgba(${ rgbString }, 1) 100%)`,\n\t\t};\n\t\tconst pointerLocation = { left: `${ rgb.a * 100 }%` };\n\n\t\tconst shortcuts = {\n\t\t\tup: () => this.increase(),\n\t\t\tright: () => this.increase(),\n\t\t\t'shift+up': () => this.increase( 0.1 ),\n\t\t\t'shift+right': () => this.increase( 0.1 ),\n\t\t\tpageup: () => this.increase( 0.1 ),\n\t\t\tend: () => this.increase( 1 ),\n\t\t\tdown: () => this.decrease(),\n\t\t\tleft: () => this.decrease(),\n\t\t\t'shift+down': () => this.decrease( 0.1 ),\n\t\t\t'shift+left': () => this.decrease( 0.1 ),\n\t\t\tpagedown: () => this.decrease( 0.1 ),\n\t\t\thome: () => this.decrease( 1 ),\n\t\t};\n\n\t\treturn (\n\t\t\t<KeyboardShortcuts shortcuts={ shortcuts }>\n\t\t\t\t<div className=\"components-color-picker__alpha\">\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName=\"components-color-picker__alpha-gradient\"\n\t\t\t\t\t\tstyle={ gradient }\n\t\t\t\t\t/>\n\t\t\t\t\t{ /* eslint-disable jsx-a11y/no-static-element-interactions */ }\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName=\"components-color-picker__alpha-bar\"\n\t\t\t\t\t\tref={ this.container }\n\t\t\t\t\t\tonMouseDown={ this.handleMouseDown }\n\t\t\t\t\t\tonTouchMove={ this.handleChange }\n\t\t\t\t\t\tonTouchStart={ this.handleChange }>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\ttabIndex=\"0\"\n\t\t\t\t\t\t\trole=\"slider\"\n\t\t\t\t\t\t\taria-valuemax=\"1\"\n\t\t\t\t\t\t\taria-valuemin=\"0\"\n\t\t\t\t\t\t\taria-valuenow={ rgb.a }\n\t\t\t\t\t\t\taria-orientation=\"horizontal\"\n\t\t\t\t\t\t\taria-label={ __(\n\t\t\t\t\t\t\t\t'Alpha value, from 0 (transparent) to 1 (fully opaque).'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tclassName=\"components-color-picker__alpha-pointer\"\n\t\t\t\t\t\t\tstyle={ pointerLocation }\n\t\t\t\t\t\t\tonKeyDown={ this.preventKeyEvents }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t\t{ /* eslint-enable jsx-a11y/no-static-element-interactions */ }\n\t\t\t\t</div>\n\t\t\t</KeyboardShortcuts>\n\t\t);\n\t}\n}\n\nexport default Alpha;\n","/**\n * Parts of this source were derived and modified from react-color,\n * released under the MIT license.\n *\n * https://github.com/casesandberg/react-color/\n *\n * Copyright (c) 2015 Case Sandberg\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\n/**\n * External dependencies\n */\nimport { noop } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { withInstanceId } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { Component, createRef } from '@wordpress/element';\nimport { TAB } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport { calculateHueChange } from './utils';\nimport KeyboardShortcuts from '../keyboard-shortcuts';\n\nexport class Hue extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.container = createRef();\n\t\tthis.increase = this.increase.bind( this );\n\t\tthis.decrease = this.decrease.bind( this );\n\t\tthis.handleChange = this.handleChange.bind( this );\n\t\tthis.handleMouseDown = this.handleMouseDown.bind( this );\n\t\tthis.handleMouseUp = this.handleMouseUp.bind( this );\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis.unbindEventListeners();\n\t}\n\n\tincrease( amount = 1 ) {\n\t\tconst { hsl, onChange = noop } = this.props;\n\t\tconst change = {\n\t\t\th: hsl.h + amount >= 359 ? 359 : hsl.h + amount,\n\t\t\ts: hsl.s,\n\t\t\tl: hsl.l,\n\t\t\ta: hsl.a,\n\t\t\tsource: 'rgb',\n\t\t};\n\t\tonChange( change );\n\t}\n\n\tdecrease( amount = 1 ) {\n\t\tconst { hsl, onChange = noop } = this.props;\n\t\tconst change = {\n\t\t\th: hsl.h <= amount ? 0 : hsl.h - amount,\n\t\t\ts: hsl.s,\n\t\t\tl: hsl.l,\n\t\t\ta: hsl.a,\n\t\t\tsource: 'rgb',\n\t\t};\n\t\tonChange( change );\n\t}\n\n\thandleChange( e ) {\n\t\tconst { onChange = noop } = this.props;\n\t\tconst change = calculateHueChange( e, this.props, this.container.current );\n\t\tif ( change ) {\n\t\t\tonChange( change, e );\n\t\t}\n\t}\n\n\thandleMouseDown( e ) {\n\t\tthis.handleChange( e );\n\t\twindow.addEventListener( 'mousemove', this.handleChange );\n\t\twindow.addEventListener( 'mouseup', this.handleMouseUp );\n\t}\n\n\thandleMouseUp() {\n\t\tthis.unbindEventListeners();\n\t}\n\n\tpreventKeyEvents( event ) {\n\t\tif ( event.keyCode === TAB ) {\n\t\t\treturn;\n\t\t}\n\t\tevent.preventDefault();\n\t}\n\n\tunbindEventListeners() {\n\t\twindow.removeEventListener( 'mousemove', this.handleChange );\n\t\twindow.removeEventListener( 'mouseup', this.handleMouseUp );\n\t}\n\n\trender() {\n\t\tconst { hsl = {}, instanceId } = this.props;\n\n\t\tconst pointerLocation = { left: `${ ( hsl.h * 100 ) / 360 }%` };\n\t\tconst shortcuts = {\n\t\t\tup: () => this.increase(),\n\t\t\tright: () => this.increase(),\n\t\t\t'shift+up': () => this.increase( 10 ),\n\t\t\t'shift+right': () => this.increase( 10 ),\n\t\t\tpageup: () => this.increase( 10 ),\n\t\t\tend: () => this.increase( 359 ),\n\t\t\tdown: () => this.decrease(),\n\t\t\tleft: () => this.decrease(),\n\t\t\t'shift+down': () => this.decrease( 10 ),\n\t\t\t'shift+left': () => this.decrease( 10 ),\n\t\t\tpagedown: () => this.decrease( 10 ),\n\t\t\thome: () => this.decrease( 359 ),\n\t\t};\n\n\t\treturn (\n\t\t\t<KeyboardShortcuts shortcuts={ shortcuts }>\n\t\t\t\t<div className=\"components-color-picker__hue\">\n\t\t\t\t\t<div className=\"components-color-picker__hue-gradient\" />\n\t\t\t\t\t{ /* eslint-disable jsx-a11y/no-static-element-interactions */ }\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName=\"components-color-picker__hue-bar\"\n\t\t\t\t\t\tref={ this.container }\n\t\t\t\t\t\tonMouseDown={ this.handleMouseDown }\n\t\t\t\t\t\tonTouchMove={ this.handleChange }\n\t\t\t\t\t\tonTouchStart={ this.handleChange }>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\ttabIndex=\"0\"\n\t\t\t\t\t\t\trole=\"slider\"\n\t\t\t\t\t\t\taria-valuemax=\"1\"\n\t\t\t\t\t\t\taria-valuemin=\"359\"\n\t\t\t\t\t\t\taria-valuenow={ hsl.h }\n\t\t\t\t\t\t\taria-orientation=\"horizontal\"\n\t\t\t\t\t\t\taria-label={ __( 'Hue value in degrees, from 0 to 359.' ) }\n\t\t\t\t\t\t\taria-describedby={ `components-color-picker__hue-description-${ instanceId }` }\n\t\t\t\t\t\t\tclassName=\"components-color-picker__hue-pointer\"\n\t\t\t\t\t\t\tstyle={ pointerLocation }\n\t\t\t\t\t\t\tonKeyDown={ this.preventKeyEvents }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<p\n\t\t\t\t\t\t\tclassName=\"components-color-picker__hue-description screen-reader-text\"\n\t\t\t\t\t\t\tid={ `components-color-picker__hue-description-${ instanceId }` }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Move the arrow left or right to change hue.' ) }\n\t\t\t\t\t\t</p>\n\t\t\t\t\t</div>\n\t\t\t\t\t{ /* eslint-enable jsx-a11y/no-static-element-interactions */ }\n\t\t\t\t</div>\n\t\t\t</KeyboardShortcuts>\n\t\t);\n\t}\n}\n\nexport default withInstanceId( Hue );\n","/**\n * Parts of this source were derived and modified from react-color,\n * released under the MIT license.\n *\n * https://github.com/casesandberg/react-color/\n *\n * Copyright (c) 2015 Case Sandberg\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\n/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { debounce, noop, partial } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport Alpha from './alpha';\nimport Hue from './hue';\nimport Inputs from './inputs';\nimport Saturation from './saturation';\nimport { colorToState, simpleCheckForValidColor } from './utils';\n\nexport default class ColorPicker extends Component {\n\tconstructor( { color = '0071a1' } ) {\n\t\tsuper( ...arguments );\n\t\tthis.state = colorToState( color );\n\t\tthis.handleChange = this.handleChange.bind( this );\n\t}\n\n\thandleChange( data ) {\n\t\tconst { oldHue, onChangeComplete = noop } = this.props;\n\t\tconst isValidColor = simpleCheckForValidColor( data );\n\t\tif ( isValidColor ) {\n\t\t\tconst colors = colorToState( data, data.h || oldHue );\n\t\t\tthis.setState(\n\t\t\t\tcolors,\n\t\t\t\tdebounce( partial( onChangeComplete, colors ), 100 )\n\t\t\t);\n\t\t}\n\t}\n\n\trender() {\n\t\tconst { className, disableAlpha } = this.props;\n\t\tconst { color, hex, hsl, hsv, rgb } = this.state;\n\t\tconst classes = classnames( className, {\n\t\t\t'components-color-picker': true,\n\t\t\t'is-alpha-disabled': disableAlpha,\n\t\t\t'is-alpha-enabled': ! disableAlpha,\n\t\t} );\n\n\t\treturn (\n\t\t\t<div className={ classes }>\n\t\t\t\t<div className=\"components-color-picker__saturation\">\n\t\t\t\t\t<Saturation\n\t\t\t\t\t\thsl={ hsl }\n\t\t\t\t\t\thsv={ hsv }\n\t\t\t\t\t\tonChange={ this.handleChange }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\n\t\t\t\t<div className=\"components-color-picker__body\">\n\t\t\t\t\t<div className=\"components-color-picker__controls\">\n\t\t\t\t\t\t<div className=\"components-color-picker__swatch\">\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclassName=\"components-color-picker__active\"\n\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\tbackgroundColor: color && color.toRgbString(),\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div className=\"components-color-picker__toggles\">\n\t\t\t\t\t\t\t<Hue hsl={ hsl } onChange={ this.handleChange } />\n\t\t\t\t\t\t\t{ disableAlpha ? null : (\n\t\t\t\t\t\t\t\t<Alpha\n\t\t\t\t\t\t\t\t\trgb={ rgb }\n\t\t\t\t\t\t\t\t\thsl={ hsl }\n\t\t\t\t\t\t\t\t\tonChange={ this.handleChange }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<Inputs\n\t\t\t\t\t\trgb={ rgb }\n\t\t\t\t\t\thsl={ hsl }\n\t\t\t\t\t\thex={ hex }\n\t\t\t\t\t\tonChange={ this.handleChange }\n\t\t\t\t\t\tdisableAlpha={ disableAlpha }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n}\n","/**\n * External dependencies\n */\nimport { omit } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { speak } from '@wordpress/a11y';\nimport { __ } from '@wordpress/i18n';\nimport { Component } from '@wordpress/element';\nimport { DOWN, ENTER, UP } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport IconButton from '../icon-button';\nimport { isValidHex } from './utils';\nimport TextControl from '../text-control';\n\n/* Wrapper for TextControl, only used to handle intermediate state while typing. */\nclass Input extends Component {\n\tconstructor( { value } ) {\n\t\tsuper( ...arguments );\n\t\tthis.state = { value: String( value ).toLowerCase() };\n\t\tthis.handleBlur = this.handleBlur.bind( this );\n\t\tthis.handleChange = this.handleChange.bind( this );\n\t\tthis.handleKeyDown = this.handleKeyDown.bind( this );\n\t}\n\n\tcomponentWillReceiveProps( nextProps ) {\n\t\tif ( nextProps.value !== this.props.value ) {\n\t\t\tthis.setState( {\n\t\t\t\tvalue: String( nextProps.value ).toLowerCase(),\n\t\t\t} );\n\t\t}\n\t}\n\n\thandleBlur() {\n\t\tconst { valueKey, onChange } = this.props;\n\t\tconst { value } = this.state;\n\t\tonChange( { [ valueKey ]: value } );\n\t}\n\n\thandleChange( value ) {\n\t\tconst { valueKey, onChange } = this.props;\n\t\t// Protect against expanding a value while we're typing.\n\t\tif ( value.length > 4 ) {\n\t\t\tonChange( { [ valueKey ]: value } );\n\t\t}\n\t\tthis.setState( { value } );\n\t}\n\n\thandleKeyDown( { keyCode } ) {\n\t\tif ( keyCode !== ENTER && keyCode !== UP && keyCode !== DOWN ) {\n\t\t\treturn;\n\t\t}\n\t\tconst { value } = this.state;\n\t\tconst { valueKey, onChange } = this.props;\n\t\tonChange( { [ valueKey ]: value } );\n\t}\n\n\trender() {\n\t\tconst { label, ...props } = this.props;\n\t\tconst { value } = this.state;\n\t\treturn (\n\t\t\t<TextControl\n\t\t\t\tclassName=\"components-color-picker__inputs-field\"\n\t\t\t\tlabel={ label }\n\t\t\t\tvalue={ value }\n\t\t\t\tonChange={ ( newValue ) => this.handleChange( newValue ) }\n\t\t\t\tonBlur={ this.handleBlur }\n\t\t\t\tonKeyDown={ this.handleKeyDown }\n\t\t\t\t{ ...omit( props, [ 'onChange', 'value', 'valueKey' ] ) }\n\t\t\t/>\n\t\t);\n\t}\n}\n\nexport class Inputs extends Component {\n\tconstructor( { hsl } ) {\n\t\tsuper( ...arguments );\n\n\t\tconst view = hsl.a === 1 ? 'hex' : 'rgb';\n\t\tthis.state = { view };\n\n\t\tthis.toggleViews = this.toggleViews.bind( this );\n\t\tthis.handleChange = this.handleChange.bind( this );\n\t}\n\n\tstatic getDerivedStateFromProps( props, state ) {\n\t\tif ( props.hsl.a !== 1 && state.view === 'hex' ) {\n\t\t\treturn { view: 'rgb' };\n\t\t}\n\t\treturn null;\n\t}\n\n\ttoggleViews() {\n\t\tif ( this.state.view === 'hex' ) {\n\t\t\tthis.setState( { view: 'rgb' } );\n\n\t\t\tspeak( __( 'RGB mode active' ) );\n\t\t} else if ( this.state.view === 'rgb' ) {\n\t\t\tthis.setState( { view: 'hsl' } );\n\n\t\t\tspeak( __( 'Hue/saturation/lightness mode active' ) );\n\t\t} else if ( this.state.view === 'hsl' ) {\n\t\t\tif ( this.props.hsl.a === 1 ) {\n\t\t\t\tthis.setState( { view: 'hex' } );\n\n\t\t\t\tspeak( __( 'Hex color mode active' ) );\n\t\t\t} else {\n\t\t\t\tthis.setState( { view: 'rgb' } );\n\n\t\t\t\tspeak( __( 'RGB mode active' ) );\n\t\t\t}\n\t\t}\n\t}\n\n\thandleChange( data ) {\n\t\tif ( data.hex ) {\n\t\t\tif ( isValidHex( data.hex ) ) {\n\t\t\t\tthis.props.onChange( {\n\t\t\t\t\thex: data.hex,\n\t\t\t\t\tsource: 'hex',\n\t\t\t\t} );\n\t\t\t}\n\t\t} else if ( data.r || data.g || data.b ) {\n\t\t\tthis.props.onChange( {\n\t\t\t\tr: data.r || this.props.rgb.r,\n\t\t\t\tg: data.g || this.props.rgb.g,\n\t\t\t\tb: data.b || this.props.rgb.b,\n\t\t\t\tsource: 'rgb',\n\t\t\t} );\n\t\t} else if ( data.a ) {\n\t\t\tif ( data.a < 0 ) {\n\t\t\t\tdata.a = 0;\n\t\t\t} else if ( data.a > 1 ) {\n\t\t\t\tdata.a = 1;\n\t\t\t}\n\n\t\t\tthis.props.onChange( {\n\t\t\t\th: this.props.hsl.h,\n\t\t\t\ts: this.props.hsl.s,\n\t\t\t\tl: this.props.hsl.l,\n\t\t\t\ta: Math.round( data.a * 100 ) / 100,\n\t\t\t\tsource: 'rgb',\n\t\t\t} );\n\t\t} else if ( data.h || data.s || data.l ) {\n\t\t\tthis.props.onChange( {\n\t\t\t\th: data.h || this.props.hsl.h,\n\t\t\t\ts: data.s || this.props.hsl.s,\n\t\t\t\tl: data.l || this.props.hsl.l,\n\t\t\t\tsource: 'hsl',\n\t\t\t} );\n\t\t}\n\t}\n\n\trenderFields() {\n\t\tconst { disableAlpha = false } = this.props;\n\t\tif ( this.state.view === 'hex' ) {\n\t\t\treturn (\n\t\t\t\t<div className=\"components-color-picker__inputs-fields\">\n\t\t\t\t\t<Input\n\t\t\t\t\t\tlabel={ __( 'Color value in hexadecimal' ) }\n\t\t\t\t\t\tvalueKey=\"hex\"\n\t\t\t\t\t\tvalue={ this.props.hex }\n\t\t\t\t\t\tonChange={ this.handleChange }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t);\n\t\t} else if ( this.state.view === 'rgb' ) {\n\t\t\treturn (\n\t\t\t\t<fieldset>\n\t\t\t\t\t<legend className=\"screen-reader-text\">\n\t\t\t\t\t\t{ __( 'Color value in RGB' ) }\n\t\t\t\t\t</legend>\n\t\t\t\t\t<div className=\"components-color-picker__inputs-fields\">\n\t\t\t\t\t\t<Input\n\t\t\t\t\t\t\tlabel=\"r\"\n\t\t\t\t\t\t\tvalueKey=\"r\"\n\t\t\t\t\t\t\tvalue={ this.props.rgb.r }\n\t\t\t\t\t\t\tonChange={ this.handleChange }\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tmin=\"0\"\n\t\t\t\t\t\t\tmax=\"255\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<Input\n\t\t\t\t\t\t\tlabel=\"g\"\n\t\t\t\t\t\t\tvalueKey=\"g\"\n\t\t\t\t\t\t\tvalue={ this.props.rgb.g }\n\t\t\t\t\t\t\tonChange={ this.handleChange }\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tmin=\"0\"\n\t\t\t\t\t\t\tmax=\"255\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<Input\n\t\t\t\t\t\t\tlabel=\"b\"\n\t\t\t\t\t\t\tvalueKey=\"b\"\n\t\t\t\t\t\t\tvalue={ this.props.rgb.b }\n\t\t\t\t\t\t\tonChange={ this.handleChange }\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tmin=\"0\"\n\t\t\t\t\t\t\tmax=\"255\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ disableAlpha ? null : (\n\t\t\t\t\t\t\t<Input\n\t\t\t\t\t\t\t\tlabel=\"a\"\n\t\t\t\t\t\t\t\tvalueKey=\"a\"\n\t\t\t\t\t\t\t\tvalue={ this.props.rgb.a }\n\t\t\t\t\t\t\t\tonChange={ this.handleChange }\n\t\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\t\tmin=\"0\"\n\t\t\t\t\t\t\t\tmax=\"1\"\n\t\t\t\t\t\t\t\tstep=\"0.05\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</div>\n\t\t\t\t</fieldset>\n\t\t\t);\n\t\t} else if ( this.state.view === 'hsl' ) {\n\t\t\treturn (\n\t\t\t\t<fieldset>\n\t\t\t\t\t<legend className=\"screen-reader-text\">\n\t\t\t\t\t\t{ __( 'Color value in HSL' ) }\n\t\t\t\t\t</legend>\n\t\t\t\t\t<div className=\"components-color-picker__inputs-fields\">\n\t\t\t\t\t\t<Input\n\t\t\t\t\t\t\tlabel=\"h\"\n\t\t\t\t\t\t\tvalueKey=\"h\"\n\t\t\t\t\t\t\tvalue={ this.props.hsl.h }\n\t\t\t\t\t\t\tonChange={ this.handleChange }\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tmin=\"0\"\n\t\t\t\t\t\t\tmax=\"359\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<Input\n\t\t\t\t\t\t\tlabel=\"s\"\n\t\t\t\t\t\t\tvalueKey=\"s\"\n\t\t\t\t\t\t\tvalue={ this.props.hsl.s }\n\t\t\t\t\t\t\tonChange={ this.handleChange }\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tmin=\"0\"\n\t\t\t\t\t\t\tmax=\"100\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<Input\n\t\t\t\t\t\t\tlabel=\"l\"\n\t\t\t\t\t\t\tvalueKey=\"l\"\n\t\t\t\t\t\t\tvalue={ this.props.hsl.l }\n\t\t\t\t\t\t\tonChange={ this.handleChange }\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tmin=\"0\"\n\t\t\t\t\t\t\tmax=\"100\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ disableAlpha ? null : (\n\t\t\t\t\t\t\t<Input\n\t\t\t\t\t\t\t\tlabel=\"a\"\n\t\t\t\t\t\t\t\tvalueKey=\"a\"\n\t\t\t\t\t\t\t\tvalue={ this.props.hsl.a }\n\t\t\t\t\t\t\t\tonChange={ this.handleChange }\n\t\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\t\tmin=\"0\"\n\t\t\t\t\t\t\t\tmax=\"1\"\n\t\t\t\t\t\t\t\tstep=\"0.05\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</div>\n\t\t\t\t</fieldset>\n\t\t\t);\n\t\t}\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<div className=\"components-color-picker__inputs-wrapper\">\n\t\t\t\t{ this.renderFields() }\n\t\t\t\t<div className=\"components-color-picker__inputs-toggle\">\n\t\t\t\t\t<IconButton\n\t\t\t\t\t\ticon=\"arrow-down-alt2\"\n\t\t\t\t\t\tlabel={ __( 'Change color format' ) }\n\t\t\t\t\t\tonClick={ this.toggleViews }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nexport default Inputs;\n","/**\n * Parts of this source were derived and modified from react-color,\n * released under the MIT license.\n *\n * https://github.com/casesandberg/react-color/\n *\n * Copyright (c) 2015 Case Sandberg\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\n/**\n * External dependencies\n */\nimport { clamp, noop, throttle } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Component, createRef } from '@wordpress/element';\nimport { TAB } from '@wordpress/keycodes';\nimport { withInstanceId } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { calculateSaturationChange } from './utils';\nimport KeyboardShortcuts from '../keyboard-shortcuts';\n\nexport class Saturation extends Component {\n\tconstructor( props ) {\n\t\tsuper( props );\n\n\t\tthis.throttle = throttle( ( fn, data, e ) => {\n\t\t\tfn( data, e );\n\t\t}, 50 );\n\n\t\tthis.container = createRef();\n\t\tthis.saturate = this.saturate.bind( this );\n\t\tthis.brighten = this.brighten.bind( this );\n\t\tthis.handleChange = this.handleChange.bind( this );\n\t\tthis.handleMouseDown = this.handleMouseDown.bind( this );\n\t\tthis.handleMouseUp = this.handleMouseUp.bind( this );\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis.throttle.cancel();\n\t\tthis.unbindEventListeners();\n\t}\n\n\tsaturate( amount = 0.01 ) {\n\t\tconst { hsv, onChange = noop } = this.props;\n\t\tconst intSaturation = clamp(\n\t\t\thsv.s + Math.round( amount * 100 ),\n\t\t\t0,\n\t\t\t100\n\t\t);\n\t\tconst change = {\n\t\t\th: hsv.h,\n\t\t\ts: intSaturation,\n\t\t\tv: hsv.v,\n\t\t\ta: hsv.a,\n\t\t\tsource: 'rgb',\n\t\t};\n\n\t\tonChange( change );\n\t}\n\n\tbrighten( amount = 0.01 ) {\n\t\tconst { hsv, onChange = noop } = this.props;\n\t\tconst intValue = clamp(\n\t\t\thsv.v + Math.round( amount * 100 ),\n\t\t\t0,\n\t\t\t100\n\t\t);\n\t\tconst change = {\n\t\t\th: hsv.h,\n\t\t\ts: hsv.s,\n\t\t\tv: intValue,\n\t\t\ta: hsv.a,\n\t\t\tsource: 'rgb',\n\t\t};\n\n\t\tonChange( change );\n\t}\n\n\thandleChange( e ) {\n\t\tconst { onChange = noop } = this.props;\n\t\tconst change = calculateSaturationChange( e, this.props, this.container.current );\n\t\tthis.throttle( onChange, change, e );\n\t}\n\n\thandleMouseDown( e ) {\n\t\tthis.handleChange( e );\n\t\twindow.addEventListener( 'mousemove', this.handleChange );\n\t\twindow.addEventListener( 'mouseup', this.handleMouseUp );\n\t}\n\n\thandleMouseUp() {\n\t\tthis.unbindEventListeners();\n\t}\n\n\tpreventKeyEvents( event ) {\n\t\tif ( event.keyCode === TAB ) {\n\t\t\treturn;\n\t\t}\n\t\tevent.preventDefault();\n\t}\n\n\tunbindEventListeners() {\n\t\twindow.removeEventListener( 'mousemove', this.handleChange );\n\t\twindow.removeEventListener( 'mouseup', this.handleMouseUp );\n\t}\n\n\trender() {\n\t\tconst { hsv, hsl, instanceId } = this.props;\n\t\tconst pointerLocation = {\n\t\t\ttop: `${ -( hsv.v ) + 100 }%`,\n\t\t\tleft: `${ hsv.s }%`,\n\t\t};\n\t\tconst shortcuts = {\n\t\t\tup: () => this.brighten(),\n\t\t\t'shift+up': () => this.brighten( 0.1 ),\n\t\t\tpageup: () => this.brighten( 1 ),\n\t\t\tdown: () => this.brighten( -0.01 ),\n\t\t\t'shift+down': () => this.brighten( -0.1 ),\n\t\t\tpagedown: () => this.brighten( -1 ),\n\t\t\tright: () => this.saturate(),\n\t\t\t'shift+right': () => this.saturate( 0.1 ),\n\t\t\tend: () => this.saturate( 1 ),\n\t\t\tleft: () => this.saturate( -0.01 ),\n\t\t\t'shift+left': () => this.saturate( -0.1 ),\n\t\t\thome: () => this.saturate( -1 ),\n\t\t};\n\n\t\t/* eslint-disable jsx-a11y/no-static-element-interactions, jsx-a11y/no-noninteractive-element-interactions */\n\t\treturn (\n\t\t\t<KeyboardShortcuts shortcuts={ shortcuts }>\n\t\t\t\t<div\n\t\t\t\t\tstyle={ { background: `hsl(${ hsl.h },100%, 50%)` } }\n\t\t\t\t\tclassName=\"components-color-picker__saturation-color\"\n\t\t\t\t\tref={ this.container }\n\t\t\t\t\tonMouseDown={ this.handleMouseDown }\n\t\t\t\t\tonTouchMove={ this.handleChange }\n\t\t\t\t\tonTouchStart={ this.handleChange }\n\t\t\t\t\trole=\"application\"\n\t\t\t\t>\n\t\t\t\t\t<div className=\"components-color-picker__saturation-white\" />\n\t\t\t\t\t<div className=\"components-color-picker__saturation-black\" />\n\t\t\t\t\t<button\n\t\t\t\t\t\taria-label={ __( 'Choose a shade' ) }\n\t\t\t\t\t\taria-describedby={ `color-picker-saturation-${ instanceId }` }\n\t\t\t\t\t\tclassName=\"components-color-picker__saturation-pointer\"\n\t\t\t\t\t\tstyle={ pointerLocation }\n\t\t\t\t\t\tonKeyDown={ this.preventKeyEvents }\n\t\t\t\t\t/>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName=\"screen-reader-text\"\n\t\t\t\t\t\tid={ `color-picker-saturation-${ instanceId }` }>\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'Use your arrow keys to change the base color. Move up to lighten the color, down to darken, left to increase saturation, and right to decrease saturation.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</KeyboardShortcuts>\n\t\t);\n\t\t/* eslint-enable jsx-a11y/no-static-element-interactions, jsx-a11y/no-noninteractive-element-interactions */\n\t}\n}\n\nexport default withInstanceId( Saturation );\n","/**\n * Parts of this source were derived and modified from react-color,\n * released under the MIT license.\n *\n * https://github.com/casesandberg/react-color/\n *\n * Copyright (c) 2015 Case Sandberg\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\n/**\n * External dependencies\n */\nimport { each } from 'lodash';\nimport tinycolor from 'tinycolor2';\n\n/**\n * Given a hex color, get all other color properties (rgb, alpha, etc).\n *\n * @param {Object|string} data A hex color string or an object with a hex property\n * @param {string} oldHue A reference to the hue of the previous color, otherwise dragging the saturation to zero will reset the current hue to zero as well. See https://github.com/casesandberg/react-color/issues/29#issuecomment-132686909.\n * @return {Object} An object of different color representations.\n */\nexport function colorToState( data = {}, oldHue = false ) {\n\tconst color = data.hex ? tinycolor( data.hex ) : tinycolor( data );\n\tconst hsl = color.toHsl();\n\thsl.h = Math.round( hsl.h );\n\thsl.s = Math.round( hsl.s * 100 );\n\thsl.l = Math.round( hsl.l * 100 );\n\tconst hsv = color.toHsv();\n\thsv.h = Math.round( hsv.h );\n\thsv.s = Math.round( hsv.s * 100 );\n\thsv.v = Math.round( hsv.v * 100 );\n\tconst rgb = color.toRgb();\n\tconst hex = color.toHex();\n\tif ( hsl.s === 0 ) {\n\t\thsl.h = oldHue || 0;\n\t\thsv.h = oldHue || 0;\n\t}\n\tconst transparent = hex === '000000' && rgb.a === 0;\n\n\treturn {\n\t\tcolor,\n\t\thex: transparent ? 'transparent' : `#${ hex }`,\n\t\thsl,\n\t\thsv,\n\t\toldHue: data.h || oldHue || hsl.h,\n\t\trgb,\n\t\tsource: data.source,\n\t};\n}\n\n/**\n * Get the top/left offsets of a point in a container, also returns the container width/height.\n *\n * @param {Event} e Mouse or touch event with a location coordinate.\n * @param {HTMLElement} container The container div, returned point is relative to this container.\n * @return {Object} An object of the offset positions & container size.\n */\nfunction getPointOffset( e, container ) {\n\te.preventDefault();\n\tconst {\n\t\tleft: containerLeft,\n\t\ttop: containerTop,\n\t\twidth,\n\t\theight,\n\t} = container.getBoundingClientRect();\n\tconst x = typeof e.pageX === 'number' ? e.pageX : e.touches[ 0 ].pageX;\n\tconst y = typeof e.pageY === 'number' ? e.pageY : e.touches[ 0 ].pageY;\n\tlet left = x - ( containerLeft + window.pageXOffset );\n\tlet top = y - ( containerTop + window.pageYOffset );\n\n\tif ( left < 0 ) {\n\t\tleft = 0;\n\t} else if ( left > width ) {\n\t\tleft = width;\n\t} else if ( top < 0 ) {\n\t\ttop = 0;\n\t} else if ( top > height ) {\n\t\ttop = height;\n\t}\n\n\treturn { top, left, width, height };\n}\n\n/**\n * Check if a string is a valid hex color code.\n *\n * @param {string} hex A possible hex color.\n * @return {boolean} True if the color is a valid hex color.\n */\nexport function isValidHex( hex ) {\n\t// disable hex4 and hex8\n\tconst lh = String( hex ).charAt( 0 ) === '#' ? 1 : 0;\n\treturn (\n\t\thex.length !== 4 + lh && hex.length < 7 + lh && tinycolor( hex ).isValid()\n\t);\n}\n\n/**\n * Check an object for any valid color properties.\n *\n * @param {Object} data A possible object representing a color.\n * @return {Object|boolean} If a valid representation of color, returns the data object. Otherwise returns false.\n */\nexport function simpleCheckForValidColor( data ) {\n\tconst keysToCheck = [ 'r', 'g', 'b', 'a', 'h', 's', 'l', 'v' ];\n\tlet checked = 0;\n\tlet passed = 0;\n\teach( keysToCheck, ( letter ) => {\n\t\tif ( data[ letter ] ) {\n\t\t\tchecked += 1;\n\t\t\tif ( ! isNaN( data[ letter ] ) ) {\n\t\t\t\tpassed += 1;\n\t\t\t}\n\t\t}\n\t} );\n\treturn checked === passed ? data : false;\n}\n\n/**\n * Calculate the current alpha based on a mouse or touch event\n *\n * @param {Event} e A mouse or touch event on the alpha bar.\n * @param {Object} props The current component props\n * @param {HTMLElement} container The container div for the alpha bar graph.\n * @return {Object|null} If the alpha value has changed, returns a new color object.\n */\nexport function calculateAlphaChange( e, props, container ) {\n\tconst { left, width } = getPointOffset( e, container );\n\tconst a = left < 0 ? 0 : Math.round( ( left * 100 ) / width ) / 100;\n\n\tif ( props.hsl.a !== a ) {\n\t\treturn {\n\t\t\th: props.hsl.h,\n\t\t\ts: props.hsl.s,\n\t\t\tl: props.hsl.l,\n\t\t\ta,\n\t\t\tsource: 'rgb',\n\t\t};\n\t}\n\treturn null;\n}\n\n/**\n * Calculate the current hue based on a mouse or touch event\n *\n * @param {Event} e A mouse or touch event on the hue bar.\n * @param {Object} props The current component props\n * @param {HTMLElement} container The container div for the hue bar graph.\n * @return {Object|null} If the hue value has changed, returns a new color object.\n */\nexport function calculateHueChange( e, props, container ) {\n\tconst { left, width } = getPointOffset( e, container );\n\tconst percent = ( left * 100 ) / width;\n\tconst h = left >= width ? 359 : ( 360 * percent ) / 100;\n\n\tif ( props.hsl.h !== h ) {\n\t\treturn {\n\t\t\th,\n\t\t\ts: props.hsl.s,\n\t\t\tl: props.hsl.l,\n\t\t\ta: props.hsl.a,\n\t\t\tsource: 'rgb',\n\t\t};\n\t}\n\treturn null;\n}\n\n/**\n * Calculate the current saturation & brightness based on a mouse or touch event\n *\n * @param {Event} e A mouse or touch event on the saturation graph.\n * @param {Object} props The current component props\n * @param {HTMLElement} container The container div for the 2D saturation graph.\n * @return {Object} Returns a new color object.\n */\nexport function calculateSaturationChange( e, props, container ) {\n\tconst { top, left, width, height } = getPointOffset( e, container );\n\tconst saturation = left < 0 ? 0 : ( left * 100 ) / width;\n\tlet bright = top >= height ? 0 : -( ( top * 100 ) / height ) + 100;\n\t// `v` values less than 1 are considered in the [0,1] range, causing unexpected behavior at the bottom\n\t// of the chart. To fix this, we assume any value less than 1 should be 0 brightness.\n\tif ( bright < 1 ) {\n\t\tbright = 0;\n\t}\n\n\treturn {\n\t\th: props.hsl.h,\n\t\ts: saturation,\n\t\tv: bright,\n\t\ta: props.hsl.a,\n\t\tsource: 'rgb',\n\t};\n}\n","/* !!!\nIF YOU ARE EDITING dashicon/index.jsx\nTHEN YOU ARE EDITING A FILE THAT GETS OUTPUT FROM THE DASHICONS REPO!\nDO NOT EDIT THAT FILE! EDIT index-header.jsx and index-footer.jsx instead\nOR if you're looking to change now SVGs get output, you'll need to edit strings in the Gruntfile :)\n!!! */\n\n/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { Path, SVG } from '../primitives';\n\nexport default class Dashicon extends Component {\n\tshouldComponentUpdate( nextProps ) {\n\t\treturn (\n\t\t\tthis.props.icon !== nextProps.icon ||\n\t\t\tthis.props.size !== nextProps.size ||\n\t\t\tthis.props.className !== nextProps.className\n\t\t);\n\t}\n\n\trender() {\n\t\tconst { icon, className, size = 20 } = this.props;\n\t\tlet path;\n\n\t\tswitch ( icon ) {\n\t\t\tcase 'admin-appearance':\n\t\t\t\tpath = 'M14.48 11.06L7.41 3.99l1.5-1.5c.5-.56 2.3-.47 3.51.32 1.21.8 1.43 1.28 2.91 2.1 1.18.64 2.45 1.26 4.45.85zm-.71.71L6.7 4.7 4.93 6.47c-.39.39-.39 1.02 0 1.41l1.06 1.06c.39.39.39 1.03 0 1.42-.6.6-1.43 1.11-2.21 1.69-.35.26-.7.53-1.01.84C1.43 14.23.4 16.08 1.4 17.07c.99 1 2.84-.03 4.18-1.36.31-.31.58-.66.85-1.02.57-.78 1.08-1.61 1.69-2.21.39-.39 1.02-.39 1.41 0l1.06 1.06c.39.39 1.02.39 1.41 0z';\n\t\t\t\tbreak;\n\t\t\tcase 'admin-collapse':\n\t\t\t\tpath = 'M10 2.16c4.33 0 7.84 3.51 7.84 7.84s-3.51 7.84-7.84 7.84S2.16 14.33 2.16 10 5.71 2.16 10 2.16zm2 11.72V6.12L6.18 9.97z';\n\t\t\t\tbreak;\n\t\t\tcase 'admin-comments':\n\t\t\t\tpath = 'M5 2h9c1.1 0 2 .9 2 2v7c0 1.1-.9 2-2 2h-2l-5 5v-5H5c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2z';\n\t\t\t\tbreak;\n\t\t\tcase 'admin-customizer':\n\t\t\t\tpath = 'M18.33 3.57s.27-.8-.31-1.36c-.53-.52-1.22-.24-1.22-.24-.61.3-5.76 3.47-7.67 5.57-.86.96-2.06 3.79-1.09 4.82.92.98 3.96-.17 4.79-1 2.06-2.06 5.21-7.17 5.5-7.79zM1.4 17.65c2.37-1.56 1.46-3.41 3.23-4.64.93-.65 2.22-.62 3.08.29.63.67.8 2.57-.16 3.46-1.57 1.45-4 1.55-6.15.89z';\n\t\t\t\tbreak;\n\t\t\tcase 'admin-generic':\n\t\t\t\tpath = 'M18 12h-2.18c-.17.7-.44 1.35-.81 1.93l1.54 1.54-2.1 2.1-1.54-1.54c-.58.36-1.23.63-1.91.79V19H8v-2.18c-.68-.16-1.33-.43-1.91-.79l-1.54 1.54-2.12-2.12 1.54-1.54c-.36-.58-.63-1.23-.79-1.91H1V9.03h2.17c.16-.7.44-1.35.8-1.94L2.43 5.55l2.1-2.1 1.54 1.54c.58-.37 1.24-.64 1.93-.81V2h3v2.18c.68.16 1.33.43 1.91.79l1.54-1.54 2.12 2.12-1.54 1.54c.36.59.64 1.24.8 1.94H18V12zm-8.5 1.5c1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3 1.34 3 3 3z';\n\t\t\t\tbreak;\n\t\t\tcase 'admin-home':\n\t\t\t\tpath = 'M16 8.5l1.53 1.53-1.06 1.06L10 4.62l-6.47 6.47-1.06-1.06L10 2.5l4 4v-2h2v4zm-6-2.46l6 5.99V18H4v-5.97zM12 17v-5H8v5h4z';\n\t\t\t\tbreak;\n\t\t\tcase 'admin-links':\n\t\t\t\tpath = 'M17.74 2.76c1.68 1.69 1.68 4.41 0 6.1l-1.53 1.52c-1.12 1.12-2.7 1.47-4.14 1.09l2.62-2.61.76-.77.76-.76c.84-.84.84-2.2 0-3.04-.84-.85-2.2-.85-3.04 0l-.77.76-3.38 3.38c-.37-1.44-.02-3.02 1.1-4.14l1.52-1.53c1.69-1.68 4.42-1.68 6.1 0zM8.59 13.43l5.34-5.34c.42-.42.42-1.1 0-1.52-.44-.43-1.13-.39-1.53 0l-5.33 5.34c-.42.42-.42 1.1 0 1.52.44.43 1.13.39 1.52 0zm-.76 2.29l4.14-4.15c.38 1.44.03 3.02-1.09 4.14l-1.52 1.53c-1.69 1.68-4.41 1.68-6.1 0-1.68-1.68-1.68-4.42 0-6.1l1.53-1.52c1.12-1.12 2.7-1.47 4.14-1.1l-4.14 4.15c-.85.84-.85 2.2 0 3.05.84.84 2.2.84 3.04 0z';\n\t\t\t\tbreak;\n\t\t\tcase 'admin-media':\n\t\t\t\tpath = 'M13 11V4c0-.55-.45-1-1-1h-1.67L9 1H5L3.67 3H2c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1h10c.55 0 1-.45 1-1zM7 4.5c1.38 0 2.5 1.12 2.5 2.5S8.38 9.5 7 9.5 4.5 8.38 4.5 7 5.62 4.5 7 4.5zM14 6h5v10.5c0 1.38-1.12 2.5-2.5 2.5S14 17.88 14 16.5s1.12-2.5 2.5-2.5c.17 0 .34.02.5.05V9h-3V6zm-4 8.05V13h2v3.5c0 1.38-1.12 2.5-2.5 2.5S7 17.88 7 16.5 8.12 14 9.5 14c.17 0 .34.02.5.05z';\n\t\t\t\tbreak;\n\t\t\tcase 'admin-multisite':\n\t\t\t\tpath = 'M14.27 6.87L10 3.14 5.73 6.87 5 6.14l5-4.38 5 4.38zM14 8.42l-4.05 3.43L6 8.38v-.74l4-3.5 4 3.5v.78zM11 9.7V8H9v1.7h2zm-1.73 4.03L5 10 .73 13.73 0 13l5-4.38L10 13zm10 0L15 10l-4.27 3.73L10 13l5-4.38L20 13zM5 11l4 3.5V18H1v-3.5zm10 0l4 3.5V18h-8v-3.5zm-9 6v-2H4v2h2zm10 0v-2h-2v2h2z';\n\t\t\t\tbreak;\n\t\t\tcase 'admin-network':\n\t\t\t\tpath = 'M16.95 2.58c1.96 1.95 1.96 5.12 0 7.07-1.51 1.51-3.75 1.84-5.59 1.01l-1.87 3.31-2.99.31L5 18H2l-1-2 7.95-7.69c-.92-1.87-.62-4.18.93-5.73 1.95-1.96 5.12-1.96 7.07 0zm-2.51 3.79c.74 0 1.33-.6 1.33-1.34 0-.73-.59-1.33-1.33-1.33-.73 0-1.33.6-1.33 1.33 0 .74.6 1.34 1.33 1.34z';\n\t\t\t\tbreak;\n\t\t\tcase 'admin-page':\n\t\t\t\tpath = 'M6 15V2h10v13H6zm-1 1h8v2H3V5h2v11z';\n\t\t\t\tbreak;\n\t\t\tcase 'admin-plugins':\n\t\t\t\tpath = 'M13.11 4.36L9.87 7.6 8 5.73l3.24-3.24c.35-.34 1.05-.2 1.56.32.52.51.66 1.21.31 1.55zm-8 1.77l.91-1.12 9.01 9.01-1.19.84c-.71.71-2.63 1.16-3.82 1.16H6.14L4.9 17.26c-.59.59-1.54.59-2.12 0-.59-.58-.59-1.53 0-2.12l1.24-1.24v-3.88c0-1.13.4-3.19 1.09-3.89zm7.26 3.97l3.24-3.24c.34-.35 1.04-.21 1.55.31.52.51.66 1.21.31 1.55l-3.24 3.25z';\n\t\t\t\tbreak;\n\t\t\tcase 'admin-post':\n\t\t\t\tpath = 'M10.44 3.02l1.82-1.82 6.36 6.35-1.83 1.82c-1.05-.68-2.48-.57-3.41.36l-.75.75c-.92.93-1.04 2.35-.35 3.41l-1.83 1.82-2.41-2.41-2.8 2.79c-.42.42-3.38 2.71-3.8 2.29s1.86-3.39 2.28-3.81l2.79-2.79L4.1 9.36l1.83-1.82c1.05.69 2.48.57 3.4-.36l.75-.75c.93-.92 1.05-2.35.36-3.41z';\n\t\t\t\tbreak;\n\t\t\tcase 'admin-settings':\n\t\t\t\tpath = 'M18 16V4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h13c.55 0 1-.45 1-1zM8 11h1c.55 0 1 .45 1 1s-.45 1-1 1H8v1.5c0 .28-.22.5-.5.5s-.5-.22-.5-.5V13H6c-.55 0-1-.45-1-1s.45-1 1-1h1V5.5c0-.28.22-.5.5-.5s.5.22.5.5V11zm5-2h-1c-.55 0-1-.45-1-1s.45-1 1-1h1V5.5c0-.28.22-.5.5-.5s.5.22.5.5V7h1c.55 0 1 .45 1 1s-.45 1-1 1h-1v5.5c0 .28-.22.5-.5.5s-.5-.22-.5-.5V9z';\n\t\t\t\tbreak;\n\t\t\tcase 'admin-site-alt':\n\t\t\t\tpath = 'M9 0C4.03 0 0 4.03 0 9s4.03 9 9 9 9-4.03 9-9-4.03-9-9-9zm7.5 6.48c-.274.896-.908 1.64-1.75 2.05-.45-1.69-1.658-3.074-3.27-3.75.13-.444.41-.83.79-1.09-.43-.28-1-.42-1.34.07-.53.69 0 1.61.21 2v.14c-.555-.337-.99-.84-1.24-1.44-.966-.03-1.922.208-2.76.69-.087-.565-.032-1.142.16-1.68.733.07 1.453-.23 1.92-.8.46-.52-.13-1.18-.59-1.58h.36c1.36-.01 2.702.335 3.89 1 1.36 1.005 2.194 2.57 2.27 4.26.24 0 .7-.55.91-.92.172.34.32.69.44 1.05zM9 16.84c-2.05-2.08.25-3.75-1-5.24-.92-.85-2.29-.26-3.11-1.23-.282-1.473.267-2.982 1.43-3.93.52-.44 4-1 5.42.22.83.715 1.415 1.674 1.67 2.74.46.035.918-.066 1.32-.29.41 2.98-3.15 6.74-5.73 7.73zM5.15 2.09c.786-.3 1.676-.028 2.16.66-.42.38-.94.63-1.5.72.02-.294.085-.584.19-.86l-.85-.52z';\n\t\t\t\tbreak;\n\t\t\tcase 'admin-site-alt2':\n\t\t\t\tpath = 'M9 0C4.03 0 0 4.03 0 9s4.03 9 9 9 9-4.03 9-9-4.03-9-9-9zm2.92 12.34c0 .35.14.63.36.66.22.03.47-.22.58-.6l.2.08c.718.384 1.07 1.22.84 2-.15.69-.743 1.198-1.45 1.24-.49-1.21-2.11.06-3.56-.22-.612-.154-1.11-.6-1.33-1.19 1.19-.11 2.85-1.73 4.36-1.97zM8 11.27c.918 0 1.695-.68 1.82-1.59.44.54.41 1.324-.07 1.83-.255.223-.594.325-.93.28-.335-.047-.635-.236-.82-.52zm3-.76c.41.39 3-.06 3.52 1.09-.95-.2-2.95.61-3.47-1.08l-.05-.01zM9.73 5.45v.27c-.65-.77-1.33-1.07-1.61-.57-.28.5 1 1.11.76 1.88-.24.77-1.27.56-1.88 1.61-.61 1.05-.49 2.42 1.24 3.67-1.192-.132-2.19-.962-2.54-2.11-.4-1.2-.09-2.26-.78-2.46C4 7.46 3 8.71 3 9.8c-1.26-1.26.05-2.86-1.2-4.18C3.5 1.998 7.644.223 11.44 1.49c-1.1 1.02-1.722 2.458-1.71 3.96z';\n\t\t\t\tbreak;\n\t\t\tcase 'admin-site-alt3':\n\t\t\t\tpath = 'M9 0C4.03 0 0 4.03 0 9s4.03 9 9 9 9-4.03 9-9-4.03-9-9-9zM1.11 9.68h2.51c.04.91.167 1.814.38 2.7H1.84c-.403-.85-.65-1.764-.73-2.7zm8.57-5.4V1.19c.964.366 1.756 1.08 2.22 2 .205.347.386.708.54 1.08l-2.76.01zm3.22 1.35c.232.883.37 1.788.41 2.7H9.68v-2.7h3.22zM8.32 1.19v3.09H5.56c.154-.372.335-.733.54-1.08.462-.924 1.255-1.64 2.22-2.01zm0 4.44v2.7H4.7c.04-.912.178-1.817.41-2.7h3.21zm-4.7 2.69H1.11c.08-.936.327-1.85.73-2.7H4c-.213.886-.34 1.79-.38 2.7zM4.7 9.68h3.62v2.7H5.11c-.232-.883-.37-1.788-.41-2.7zm3.63 4v3.09c-.964-.366-1.756-1.08-2.22-2-.205-.347-.386-.708-.54-1.08l2.76-.01zm1.35 3.09v-3.04h2.76c-.154.372-.335.733-.54 1.08-.464.92-1.256 1.634-2.22 2v-.04zm0-4.44v-2.7h3.62c-.04.912-.178 1.817-.41 2.7H9.68zm4.71-2.7h2.51c-.08.936-.327 1.85-.73 2.7H14c.21-.87.337-1.757.38-2.65l.01-.05zm0-1.35c-.046-.894-.176-1.78-.39-2.65h2.16c.403.85.65 1.764.73 2.7l-2.5-.05zm1-4H13.6c-.324-.91-.793-1.76-1.39-2.52 1.244.56 2.325 1.426 3.14 2.52h.04zm-9.6-2.52c-.597.76-1.066 1.61-1.39 2.52H2.65c.815-1.094 1.896-1.96 3.14-2.52zm-3.15 12H4.4c.324.91.793 1.76 1.39 2.52-1.248-.567-2.33-1.445-3.14-2.55l-.01.03zm9.56 2.52c.597-.76 1.066-1.61 1.39-2.52h1.76c-.82 1.08-1.9 1.933-3.14 2.48l-.01.04z';\n\t\t\t\tbreak;\n\t\t\tcase 'admin-site':\n\t\t\t\tpath = 'M9 0C4.03 0 0 4.03 0 9s4.03 9 9 9 9-4.03 9-9-4.03-9-9-9zm3.46 11.95c0 1.47-.8 3.3-4.06 4.7.3-4.17-2.52-3.69-3.2-5 .126-1.1.804-2.063 1.8-2.55-1.552-.266-3-.96-4.18-2 .05.47.28.904.64 1.21-.782-.295-1.458-.817-1.94-1.5.977-3.225 3.883-5.482 7.25-5.63-.84 1.38-1.5 4.13 0 5.57C7.23 7 6.26 5 5.41 5.79c-1.13 1.06.33 2.51 3.42 3.08 3.29.59 3.66 1.58 3.63 3.08zm1.34-4c-.32-1.11.62-2.23 1.69-3.14 1.356 1.955 1.67 4.45.84 6.68-.77-1.89-2.17-2.32-2.53-3.57v.03z';\n\t\t\t\tbreak;\n\t\t\tcase 'admin-tools':\n\t\t\t\tpath = 'M16.68 9.77c-1.34 1.34-3.3 1.67-4.95.99l-5.41 6.52c-.99.99-2.59.99-3.58 0s-.99-2.59 0-3.57l6.52-5.42c-.68-1.65-.35-3.61.99-4.95 1.28-1.28 3.12-1.62 4.72-1.06l-2.89 2.89 2.82 2.82 2.86-2.87c.53 1.58.18 3.39-1.08 4.65zM3.81 16.21c.4.39 1.04.39 1.43 0 .4-.4.4-1.04 0-1.43-.39-.4-1.03-.4-1.43 0-.39.39-.39 1.03 0 1.43z';\n\t\t\t\tbreak;\n\t\t\tcase 'admin-users':\n\t\t\t\tpath = 'M10 9.25c-2.27 0-2.73-3.44-2.73-3.44C7 4.02 7.82 2 9.97 2c2.16 0 2.98 2.02 2.71 3.81 0 0-.41 3.44-2.68 3.44zm0 2.57L12.72 10c2.39 0 4.52 2.33 4.52 4.53v2.49s-3.65 1.13-7.24 1.13c-3.65 0-7.24-1.13-7.24-1.13v-2.49c0-2.25 1.94-4.48 4.47-4.48z';\n\t\t\t\tbreak;\n\t\t\tcase 'album':\n\t\t\t\tpath = 'M0 18h10v-.26c1.52.4 3.17.35 4.76-.24 4.14-1.52 6.27-6.12 4.75-10.26-1.43-3.89-5.58-6-9.51-4.98V2H0v16zM9 3v14H1V3h8zm5.45 8.22c-.68 1.35-2.32 1.9-3.67 1.23-.31-.15-.57-.35-.78-.59V8.13c.8-.86 2.11-1.13 3.22-.58 1.35.68 1.9 2.32 1.23 3.67zm-2.75-.82c.22.16.53.12.7-.1.16-.22.12-.53-.1-.7s-.53-.12-.7.1c-.16.21-.12.53.1.7zm3.01 3.67c-1.17.78-2.56.99-3.83.69-.27-.06-.44-.34-.37-.61s.34-.43.62-.36l.17.04c.96.17 1.98-.01 2.86-.59.47-.32.86-.72 1.14-1.18.15-.23.45-.3.69-.16.23.15.3.46.16.69-.36.57-.84 1.08-1.44 1.48zm1.05 1.57c-1.48.99-3.21 1.32-4.84 1.06-.28-.05-.47-.32-.41-.6.05-.27.32-.45.61-.39l.22.04c1.31.15 2.68-.14 3.87-.94.71-.47 1.27-1.07 1.7-1.74.14-.24.45-.31.68-.16.24.14.31.45.16.69-.49.79-1.16 1.49-1.99 2.04z';\n\t\t\t\tbreak;\n\t\t\tcase 'align-center':\n\t\t\t\tpath = 'M3 5h14V3H3v2zm12 8V7H5v6h10zM3 17h14v-2H3v2z';\n\t\t\t\tbreak;\n\t\t\tcase 'align-full-width':\n\t\t\t\tpath = 'M17 13V3H3v10h14zM5 17h10v-2H5v2z';\n\t\t\t\tbreak;\n\t\t\tcase 'align-left':\n\t\t\t\tpath = 'M3 5h14V3H3v2zm9 8V7H3v6h9zm2-4h3V7h-3v2zm0 4h3v-2h-3v2zM3 17h14v-2H3v2z';\n\t\t\t\tbreak;\n\t\t\tcase 'align-none':\n\t\t\t\tpath = 'M3 5h14V3H3v2zm10 8V7H3v6h10zM3 17h14v-2H3v2z';\n\t\t\t\tbreak;\n\t\t\tcase 'align-pull-left':\n\t\t\t\tpath = 'M9 16V4H3v12h6zm2-7h6V7h-6v2zm0 4h6v-2h-6v2z';\n\t\t\t\tbreak;\n\t\t\tcase 'align-pull-right':\n\t\t\t\tpath = 'M17 16V4h-6v12h6zM9 7H3v2h6V7zm0 4H3v2h6v-2z';\n\t\t\t\tbreak;\n\t\t\tcase 'align-right':\n\t\t\t\tpath = 'M3 5h14V3H3v2zm0 4h3V7H3v2zm14 4V7H8v6h9zM3 13h3v-2H3v2zm0 4h14v-2H3v2z';\n\t\t\t\tbreak;\n\t\t\tcase 'align-wide':\n\t\t\t\tpath = 'M5 5h10V3H5v2zm12 8V7H3v6h14zM5 17h10v-2H5v2z';\n\t\t\t\tbreak;\n\t\t\tcase 'analytics':\n\t\t\t\tpath = 'M18 18V2H2v16h16zM16 5H4V4h12v1zM7 7v3h3c0 1.66-1.34 3-3 3s-3-1.34-3-3 1.34-3 3-3zm1 2V7c1.1 0 2 .9 2 2H8zm8-1h-4V7h4v1zm0 3h-4V9h4v2zm0 2h-4v-1h4v1zm0 3H4v-1h12v1z';\n\t\t\t\tbreak;\n\t\t\tcase 'archive':\n\t\t\t\tpath = 'M19 4v2H1V4h18zM2 7h16v10H2V7zm11 3V9H7v1h6z';\n\t\t\t\tbreak;\n\t\t\tcase 'arrow-down-alt':\n\t\t\t\tpath = 'M9 2h2v12l4-4 2 1-7 7-7-7 2-1 4 4V2z';\n\t\t\t\tbreak;\n\t\t\tcase 'arrow-down-alt2':\n\t\t\t\tpath = 'M5 6l5 5 5-5 2 1-7 7-7-7z';\n\t\t\t\tbreak;\n\t\t\tcase 'arrow-down':\n\t\t\t\tpath = 'M15 8l-4.03 6L7 8h8z';\n\t\t\t\tbreak;\n\t\t\tcase 'arrow-left-alt':\n\t\t\t\tpath = 'M18 9v2H6l4 4-1 2-7-7 7-7 1 2-4 4h12z';\n\t\t\t\tbreak;\n\t\t\tcase 'arrow-left-alt2':\n\t\t\t\tpath = 'M14 5l-5 5 5 5-1 2-7-7 7-7z';\n\t\t\t\tbreak;\n\t\t\tcase 'arrow-left':\n\t\t\t\tpath = 'M13 14L7 9.97 13 6v8z';\n\t\t\t\tbreak;\n\t\t\tcase 'arrow-right-alt':\n\t\t\t\tpath = 'M2 11V9h12l-4-4 1-2 7 7-7 7-1-2 4-4H2z';\n\t\t\t\tbreak;\n\t\t\tcase 'arrow-right-alt2':\n\t\t\t\tpath = 'M6 15l5-5-5-5 1-2 7 7-7 7z';\n\t\t\t\tbreak;\n\t\t\tcase 'arrow-right':\n\t\t\t\tpath = 'M8 6l6 4.03L8 14V6z';\n\t\t\t\tbreak;\n\t\t\tcase 'arrow-up-alt':\n\t\t\t\tpath = 'M11 18H9V6l-4 4-2-1 7-7 7 7-2 1-4-4v12z';\n\t\t\t\tbreak;\n\t\t\tcase 'arrow-up-alt2':\n\t\t\t\tpath = 'M15 14l-5-5-5 5-2-1 7-7 7 7z';\n\t\t\t\tbreak;\n\t\t\tcase 'arrow-up':\n\t\t\t\tpath = 'M7 13l4.03-6L15 13H7z';\n\t\t\t\tbreak;\n\t\t\tcase 'art':\n\t\t\t\tpath = 'M8.55 3.06c1.01.34-1.95 2.01-.1 3.13 1.04.63 3.31-2.22 4.45-2.86.97-.54 2.67-.65 3.53 1.23 1.09 2.38.14 8.57-3.79 11.06-3.97 2.5-8.97 1.23-10.7-2.66-2.01-4.53 3.12-11.09 6.61-9.9zm1.21 6.45c.73 1.64 4.7-.5 3.79-2.8-.59-1.49-4.48 1.25-3.79 2.8z';\n\t\t\t\tbreak;\n\t\t\tcase 'awards':\n\t\t\t\tpath = 'M4.46 5.16L5 7.46l-.54 2.29 2.01 1.24L7.7 13l2.3-.54 2.3.54 1.23-2.01 2.01-1.24L15 7.46l.54-2.3-2-1.24-1.24-2.01-2.3.55-2.29-.54-1.25 2zm5.55 6.34C7.79 11.5 6 9.71 6 7.49c0-2.2 1.79-3.99 4.01-3.99 2.2 0 3.99 1.79 3.99 3.99 0 2.22-1.79 4.01-3.99 4.01zm-.02-1C8.33 10.5 7 9.16 7 7.5c0-1.65 1.33-3 2.99-3S13 5.85 13 7.5c0 1.66-1.35 3-3.01 3zm3.84 1.1l-1.28 2.24-2.08-.47L13 19.2l1.4-2.2h2.5zm-7.7.07l1.25 2.25 2.13-.51L7 19.2 5.6 17H3.1z';\n\t\t\t\tbreak;\n\t\t\tcase 'backup':\n\t\t\t\tpath = 'M13.65 2.88c3.93 2.01 5.48 6.84 3.47 10.77s-6.83 5.48-10.77 3.47c-1.87-.96-3.2-2.56-3.86-4.4l1.64-1.03c.45 1.57 1.52 2.95 3.08 3.76 3.01 1.54 6.69.35 8.23-2.66 1.55-3.01.36-6.69-2.65-8.24C9.78 3.01 6.1 4.2 4.56 7.21l1.88.97-4.95 3.08-.39-5.82 1.78.91C4.9 2.4 9.75.89 13.65 2.88zm-4.36 7.83C9.11 10.53 9 10.28 9 10c0-.07.03-.12.04-.19h-.01L10 5l.97 4.81L14 13l-4.5-2.12.02-.02c-.08-.04-.16-.09-.23-.15z';\n\t\t\t\tbreak;\n\t\t\tcase 'block-default':\n\t\t\t\tpath = 'M15 6V4h-3v2H8V4H5v2H4c-.6 0-1 .4-1 1v8h14V7c0-.6-.4-1-1-1h-1z';\n\t\t\t\tbreak;\n\t\t\tcase 'book-alt':\n\t\t\t\tpath = 'M5 17h13v2H5c-1.66 0-3-1.34-3-3V4c0-1.66 1.34-3 3-3h13v14H5c-.55 0-1 .45-1 1s.45 1 1 1zm2-3.5v-11c0-.28-.22-.5-.5-.5s-.5.22-.5.5v11c0 .28.22.5.5.5s.5-.22.5-.5z';\n\t\t\t\tbreak;\n\t\t\tcase 'book':\n\t\t\t\tpath = 'M16 3h2v16H5c-1.66 0-3-1.34-3-3V4c0-1.66 1.34-3 3-3h9v14H5c-.55 0-1 .45-1 1s.45 1 1 1h11V3z';\n\t\t\t\tbreak;\n\t\t\tcase 'buddicons-activity':\n\t\t\t\tpath = 'M8 1v7h2V6c0-1.52 1.45-3 3-3v.86c.55-.52 1.26-.86 2-.86v3h1c1.1 0 2 .9 2 2s-.9 2-2 2h-1v6c0 .55-.45 1-1 1s-1-.45-1-1v-2.18c-.31.11-.65.18-1 .18v2c0 .55-.45 1-1 1s-1-.45-1-1v-2H8v2c0 .55-.45 1-1 1s-1-.45-1-1v-2c-.35 0-.69-.07-1-.18V16c0 .55-.45 1-1 1s-1-.45-1-1v-4H2v-1c0-1.66 1.34-3 3-3h2V1h1zm5 7c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1z';\n\t\t\t\tbreak;\n\t\t\tcase 'buddicons-bbpress-logo':\n\t\t\t\tpath = 'M8.5 12.6c.3-1.3 0-2.3-1.1-2.3-.8 0-1.6.6-1.8 1.5l-.3 1.7c-.3 1 .3 1.5 1 1.5 1.2 0 1.9-1.1 2.2-2.4zm-4-6.4C3.7 7.3 3.3 8.6 3.3 10c0 1 .2 1.9.6 2.8l1-4.6c.3-1.7.4-2-.4-2zm9.3 6.4c.3-1.3 0-2.3-1.1-2.3-.8 0-1.6.6-1.8 1.5l-.4 1.7c-.2 1.1.4 1.6 1.1 1.6 1.1-.1 1.9-1.2 2.2-2.5zM10 3.3c-2 0-3.9.9-5.1 2.3.6-.1 1.4-.2 1.8-.3.2 0 .2.1.2.2 0 .2-1 4.8-1 4.8.5-.3 1.2-.7 1.8-.7.9 0 1.5.4 1.9.9l.5-2.4c.4-1.6.4-1.9-.4-1.9-.4 0-.4-.5 0-.6.6-.1 1.8-.2 2.3-.3.2 0 .2.1.2.2l-1 4.8c.5-.4 1.2-.7 1.9-.7 1.7 0 2.5 1.3 2.1 3-.3 1.7-2 3-3.8 3-1.3 0-2.1-.7-2.3-1.4-.7.8-1.7 1.3-2.8 1.4 1.1.7 2.4 1.1 3.7 1.1 3.7 0 6.7-3 6.7-6.7s-3-6.7-6.7-6.7zM10 2c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zm0 15.5c-2.1 0-4-.8-5.3-2.2-.3-.4-.7-.8-1-1.2-.7-1.2-1.2-2.6-1.2-4.1 0-4.1 3.4-7.5 7.5-7.5s7.5 3.4 7.5 7.5-3.4 7.5-7.5 7.5z';\n\t\t\t\tbreak;\n\t\t\tcase 'buddicons-buddypress-logo':\n\t\t\t\tpath = 'M10 0c5.52 0 10 4.48 10 10s-4.48 10-10 10S0 15.52 0 10 4.48 0 10 0zm0 .5C4.75.5.5 4.75.5 10s4.25 9.5 9.5 9.5 9.5-4.25 9.5-9.5S15.25.5 10 .5zm0 1c4.7 0 8.5 3.8 8.5 8.5s-3.8 8.5-8.5 8.5-8.5-3.8-8.5-8.5S5.3 1.5 10 1.5zm1.8 1.71c-.57 0-1.1.17-1.55.45 1.56.37 2.73 1.77 2.73 3.45 0 .69-.21 1.33-.55 1.87 1.31-.29 2.29-1.45 2.29-2.85 0-1.61-1.31-2.92-2.92-2.92zm-2.38 1c-1.61 0-2.92 1.31-2.92 2.93 0 1.61 1.31 2.92 2.92 2.92 1.62 0 2.93-1.31 2.93-2.92 0-1.62-1.31-2.93-2.93-2.93zm4.25 5.01l-.51.59c2.34.69 2.45 3.61 2.45 3.61h1.28c0-4.71-3.22-4.2-3.22-4.2zm-2.1.8l-2.12 2.09-2.12-2.09C3.12 10.24 3.89 15 3.89 15h11.08c.47-4.98-3.4-4.98-3.4-4.98z';\n\t\t\t\tbreak;\n\t\t\tcase 'buddicons-community':\n\t\t\t\tpath = 'M9 3c0-.67-.47-1.43-1-2-.5.5-1 1.38-1 2 0 .48.45 1 1 1s1-.47 1-1zm4 0c0-.67-.47-1.43-1-2-.5.5-1 1.38-1 2 0 .48.45 1 1 1s1-.47 1-1zM9 9V5.5c0-.55-.45-1-1-1-.57 0-1 .49-1 1V9c0 .55.45 1 1 1 .57 0 1-.49 1-1zm4 0V5.5c0-.55-.45-1-1-1-.57 0-1 .49-1 1V9c0 .55.45 1 1 1 .57 0 1-.49 1-1zm4 1c0-1.48-1.41-2.77-3.5-3.46V9c0 .83-.67 1.5-1.5 1.5s-1.5-.67-1.5-1.5V6.01c-.17 0-.33-.01-.5-.01s-.33.01-.5.01V9c0 .83-.67 1.5-1.5 1.5S6.5 9.83 6.5 9V6.54C4.41 7.23 3 8.52 3 10c0 1.41.95 2.65 3.21 3.37 1.11.35 2.39 1.12 3.79 1.12s2.69-.78 3.79-1.13C16.04 12.65 17 11.41 17 10zm-7 5.43c1.43 0 2.74-.79 3.88-1.11 1.9-.53 2.49-1.34 3.12-2.32v3c0 2.21-3.13 4-7 4s-7-1.79-7-4v-3c.64.99 1.32 1.8 3.15 2.33 1.13.33 2.44 1.1 3.85 1.1z';\n\t\t\t\tbreak;\n\t\t\tcase 'buddicons-forums':\n\t\t\t\tpath = 'M13.5 7h-7C5.67 7 5 6.33 5 5.5S5.67 4 6.5 4h1.59C8.04 3.84 8 3.68 8 3.5 8 2.67 8.67 2 9.5 2h1c.83 0 1.5.67 1.5 1.5 0 .18-.04.34-.09.5h1.59c.83 0 1.5.67 1.5 1.5S14.33 7 13.5 7zM4 8h12c.55 0 1 .45 1 1s-.45 1-1 1H4c-.55 0-1-.45-1-1s.45-1 1-1zm1 3h10c.55 0 1 .45 1 1s-.45 1-1 1H5c-.55 0-1-.45-1-1s.45-1 1-1zm2 3h6c.55 0 1 .45 1 1s-.45 1-1 1h-1.09c.05.16.09.32.09.5 0 .83-.67 1.5-1.5 1.5h-1c-.83 0-1.5-.67-1.5-1.5 0-.18.04-.34.09-.5H7c-.55 0-1-.45-1-1s.45-1 1-1z';\n\t\t\t\tbreak;\n\t\t\tcase 'buddicons-friends':\n\t\t\t\tpath = 'M8.75 5.77C8.75 4.39 7 2 7 2S5.25 4.39 5.25 5.77 5.9 7.5 7 7.5s1.75-.35 1.75-1.73zm6 0C14.75 4.39 13 2 13 2s-1.75 2.39-1.75 3.77S11.9 7.5 13 7.5s1.75-.35 1.75-1.73zM9 17V9c0-.55-.45-1-1-1H6c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1h2c.55 0 1-.45 1-1zm6 0V9c0-.55-.45-1-1-1h-2c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1h2c.55 0 1-.45 1-1zm-9-6l2-1v2l-2 1v-2zm6 0l2-1v2l-2 1v-2zm-6 3l2-1v2l-2 1v-2zm6 0l2-1v2l-2 1v-2z';\n\t\t\t\tbreak;\n\t\t\tcase 'buddicons-groups':\n\t\t\t\tpath = 'M15.45 6.25c1.83.94 1.98 3.18.7 4.98-.8 1.12-2.33 1.88-3.46 1.78L10.05 18H9l-2.65-4.99c-1.13.16-2.73-.63-3.55-1.79-1.28-1.8-1.13-4.04.71-4.97.48-.24.96-.33 1.43-.31-.01.4.01.8.07 1.21.26 1.69 1.41 3.53 2.86 4.37-.19.55-.49.99-.88 1.25L9 16.58v-5.66C7.64 10.55 6.26 8.76 6 7c-.4-2.65 1-5 3.5-5s3.9 2.35 3.5 5c-.26 1.76-1.64 3.55-3 3.92v5.77l2.07-3.84c-.44-.23-.77-.71-.99-1.3 1.48-.83 2.65-2.69 2.91-4.4.06-.41.08-.82.07-1.22.46-.01.92.08 1.39.32z';\n\t\t\t\tbreak;\n\t\t\tcase 'buddicons-pm':\n\t\t\t\tpath = 'M10 2c3 0 8 5 8 5v11H2V7s5-5 8-5zm7 14.72l-3.73-2.92L17 11l-.43-.37-2.26 1.3.24-4.31-8.77-.52-.46 4.54-1.99-.95L3 11l3.73 2.8-3.44 2.85.4.43L10 13l6.53 4.15z';\n\t\t\t\tbreak;\n\t\t\tcase 'buddicons-replies':\n\t\t\t\tpath = 'M17.54 10.29c1.17 1.17 1.17 3.08 0 4.25-1.18 1.17-3.08 1.17-4.25 0l-.34-.52c0 3.66-2 4.38-2.95 4.98-.82-.6-2.95-1.28-2.95-4.98l-.34.52c-1.17 1.17-3.07 1.17-4.25 0-1.17-1.17-1.17-3.08 0-4.25 0 0 1.02-.67 2.1-1.3C3.71 7.84 3.2 6.42 3.2 4.88c0-.34.03-.67.08-1C3.53 5.66 4.47 7.22 5.8 8.3c.67-.35 1.85-.83 2.37-.92H8c-1.1 0-2-.9-2-2s.9-2 2-2v-.5c0-.28.22-.5.5-.5s.5.22.5.5v.5h2v-.5c0-.28.22-.5.5-.5s.5.22.5.5v.5c1.1 0 2 .9 2 2s-.9 2-2 2h-.17c.51.09 1.78.61 2.38.92 1.33-1.08 2.27-2.64 2.52-4.42.05.33.08.66.08 1 0 1.54-.51 2.96-1.36 4.11 1.08.63 2.09 1.3 2.09 1.3zM8.5 6.38c.5 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm3-2c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm-2.3 5.73c-.12.11-.19.26-.19.43.02.25.23.46.49.46h1c.26 0 .47-.21.49-.46 0-.15-.07-.29-.19-.43-.08-.06-.18-.11-.3-.11h-1c-.12 0-.22.05-.3.11zM12 12.5c0-.12-.06-.28-.19-.38-.09-.07-.19-.12-.31-.12h-3c-.12 0-.22.05-.31.12-.11.1-.19.25-.19.38 0 .28.22.5.5.5h3c.28 0 .5-.22.5-.5zM8.5 15h3c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-3c-.28 0-.5.22-.5.5s.22.5.5.5zm1 2h1c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-1c-.28 0-.5.22-.5.5s.22.5.5.5z';\n\t\t\t\tbreak;\n\t\t\tcase 'buddicons-topics':\n\t\t\t\tpath = 'M10.44 1.66c-.59-.58-1.54-.58-2.12 0L2.66 7.32c-.58.58-.58 1.53 0 2.12.6.6 1.56.56 2.12 0l5.66-5.66c.58-.58.59-1.53 0-2.12zm2.83 2.83c-.59-.59-1.54-.59-2.12 0l-5.66 5.66c-.59.58-.59 1.53 0 2.12.6.6 1.56.55 2.12 0l5.66-5.66c.58-.58.58-1.53 0-2.12zm1.06 6.72l4.18 4.18c.59.58.59 1.53 0 2.12s-1.54.59-2.12 0l-4.18-4.18-1.77 1.77c-.59.58-1.54.58-2.12 0-.59-.59-.59-1.54 0-2.13l5.66-5.65c.58-.59 1.53-.59 2.12 0 .58.58.58 1.53 0 2.12zM5 15c0-1.59-1.66-4-1.66-4S2 13.78 2 15s.6 2 1.34 2h.32C4.4 17 5 16.59 5 15z';\n\t\t\t\tbreak;\n\t\t\tcase 'buddicons-tracking':\n\t\t\t\tpath = 'M10.98 6.78L15.5 15c-1 2-3.5 3-5.5 3s-4.5-1-5.5-3L9 6.82c-.75-1.23-2.28-1.98-4.29-2.03l2.46-2.92c1.68 1.19 2.46 2.32 2.97 3.31.56-.87 1.2-1.68 2.7-2.12l1.83 2.86c-1.42-.34-2.64.08-3.69.86zM8.17 10.4l-.93 1.69c.49.11 1 .16 1.54.16 1.35 0 2.58-.36 3.55-.95l-1.01-1.82c-.87.53-1.96.86-3.15.92zm.86 5.38c1.99 0 3.73-.74 4.74-1.86l-.98-1.76c-1 1.12-2.74 1.87-4.74 1.87-.62 0-1.21-.08-1.76-.21l-.63 1.15c.94.5 2.1.81 3.37.81z';\n\t\t\t\tbreak;\n\t\t\tcase 'building':\n\t\t\t\tpath = 'M3 20h14V0H3v20zM7 3H5V1h2v2zm4 0H9V1h2v2zm4 0h-2V1h2v2zM7 6H5V4h2v2zm4 0H9V4h2v2zm4 0h-2V4h2v2zM7 9H5V7h2v2zm4 0H9V7h2v2zm4 0h-2V7h2v2zm-8 3H5v-2h2v2zm4 0H9v-2h2v2zm4 0h-2v-2h2v2zm-4 7H5v-6h6v6zm4-4h-2v-2h2v2zm0 3h-2v-2h2v2z';\n\t\t\t\tbreak;\n\t\t\tcase 'businessman':\n\t\t\t\tpath = 'M7.3 6l-.03-.19c-.04-.37-.05-.73-.03-1.08.02-.36.1-.71.25-1.04.14-.32.31-.61.52-.86s.49-.46.83-.6c.34-.15.72-.23 1.13-.23.69 0 1.26.2 1.71.59s.76.87.91 1.44.18 1.16.09 1.78l-.03.19c-.01.09-.05.25-.11.48-.05.24-.12.47-.2.69-.08.21-.19.45-.34.72-.14.27-.3.49-.47.69-.18.19-.4.34-.67.48-.27.13-.55.19-.86.19s-.59-.06-.87-.19c-.26-.13-.49-.29-.67-.5-.18-.2-.34-.42-.49-.66-.15-.25-.26-.49-.34-.73-.09-.25-.16-.47-.21-.67-.06-.21-.1-.37-.12-.5zm9.2 6.24c.41.7.5 1.41.5 2.14v2.49c0 .03-.12.08-.29.13-.18.04-.42.13-.97.27-.55.12-1.1.24-1.65.34s-1.19.19-1.95.27c-.75.08-1.46.12-2.13.12-.68 0-1.39-.04-2.14-.12-.75-.07-1.4-.17-1.98-.27-.58-.11-1.08-.23-1.56-.34-.49-.11-.8-.21-1.06-.29L3 16.87v-2.49c0-.75.07-1.46.46-2.15s.81-1.25 1.5-1.68C5.66 10.12 7.19 10 8 10l1.67 1.67L9 13v3l1.02 1.08L11 16v-3l-.68-1.33L11.97 10c.77 0 2.2.07 2.9.52.71.45 1.21 1.02 1.63 1.72z';\n\t\t\t\tbreak;\n\t\t\tcase 'button':\n\t\t\t\tpath = 'M17 5H3c-1.1 0-2 .9-2 2v6c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm1 7c0 .6-.4 1-1 1H3c-.6 0-1-.4-1-1V7c0-.6.4-1 1-1h14c.6 0 1 .4 1 1v5z';\n\t\t\t\tbreak;\n\t\t\tcase 'calendar-alt':\n\t\t\t\tpath = 'M15 4h3v15H2V4h3V3c0-.41.15-.76.44-1.06.29-.29.65-.44 1.06-.44s.77.15 1.06.44c.29.3.44.65.44 1.06v1h4V3c0-.41.15-.76.44-1.06.29-.29.65-.44 1.06-.44s.77.15 1.06.44c.29.3.44.65.44 1.06v1zM6 3v2.5c0 .14.05.26.15.36.09.09.21.14.35.14s.26-.05.35-.14c.1-.1.15-.22.15-.36V3c0-.14-.05-.26-.15-.35-.09-.1-.21-.15-.35-.15s-.26.05-.35.15c-.1.09-.15.21-.15.35zm7 0v2.5c0 .14.05.26.14.36.1.09.22.14.36.14s.26-.05.36-.14c.09-.1.14-.22.14-.36V3c0-.14-.05-.26-.14-.35-.1-.1-.22-.15-.36-.15s-.26.05-.36.15c-.09.09-.14.21-.14.35zm4 15V8H3v10h14zM7 9v2H5V9h2zm2 0h2v2H9V9zm4 2V9h2v2h-2zm-6 1v2H5v-2h2zm2 0h2v2H9v-2zm4 2v-2h2v2h-2zm-6 1v2H5v-2h2zm4 2H9v-2h2v2zm4 0h-2v-2h2v2z';\n\t\t\t\tbreak;\n\t\t\tcase 'calendar':\n\t\t\t\tpath = 'M15 4h3v14H2V4h3V3c0-.83.67-1.5 1.5-1.5S8 2.17 8 3v1h4V3c0-.83.67-1.5 1.5-1.5S15 2.17 15 3v1zM6 3v2.5c0 .28.22.5.5.5s.5-.22.5-.5V3c0-.28-.22-.5-.5-.5S6 2.72 6 3zm7 0v2.5c0 .28.22.5.5.5s.5-.22.5-.5V3c0-.28-.22-.5-.5-.5s-.5.22-.5.5zm4 14V8H3v9h14zM7 16V9H5v7h2zm4 0V9H9v7h2zm4 0V9h-2v7h2z';\n\t\t\t\tbreak;\n\t\t\tcase 'camera':\n\t\t\t\tpath = 'M6 5V3H3v2h3zm12 10V4H9L7 6H2v9h16zm-7-8c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3z';\n\t\t\t\tbreak;\n\t\t\tcase 'carrot':\n\t\t\t\tpath = 'M2 18.43c1.51 1.36 11.64-4.67 13.14-7.21.72-1.22-.13-3.01-1.52-4.44C15.2 5.73 16.59 9 17.91 8.31c.6-.32.99-1.31.7-1.92-.52-1.08-2.25-1.08-3.42-1.21.83-.2 2.82-1.05 2.86-2.25.04-.92-1.13-1.97-2.05-1.86-1.21.14-1.65 1.88-2.06 3-.05-.71-.2-2.27-.98-2.95-1.04-.91-2.29-.05-2.32 1.05-.04 1.33 2.82 2.07 1.92 3.67C11.04 4.67 9.25 4.03 8.1 4.7c-.49.31-1.05.91-1.63 1.69.89.94 2.12 2.07 3.09 2.72.2.14.26.42.11.62-.14.21-.42.26-.62.12-.99-.67-2.2-1.78-3.1-2.71-.45.67-.91 1.43-1.34 2.23.85.86 1.93 1.83 2.79 2.41.2.14.25.42.11.62-.14.21-.42.26-.63.12-.85-.58-1.86-1.48-2.71-2.32C2.4 13.69 1.1 17.63 2 18.43z';\n\t\t\t\tbreak;\n\t\t\tcase 'cart':\n\t\t\t\tpath = 'M6 13h9c.55 0 1 .45 1 1s-.45 1-1 1H5c-.55 0-1-.45-1-1V4H2c-.55 0-1-.45-1-1s.45-1 1-1h3c.55 0 1 .45 1 1v2h13l-4 7H6v1zm-.5 3c.83 0 1.5.67 1.5 1.5S6.33 19 5.5 19 4 18.33 4 17.5 4.67 16 5.5 16zm9 0c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5-1.5-.67-1.5-1.5.67-1.5 1.5-1.5z';\n\t\t\t\tbreak;\n\t\t\tcase 'category':\n\t\t\t\tpath = 'M5 7h13v10H2V4h7l2 2H4v9h1V7z';\n\t\t\t\tbreak;\n\t\t\tcase 'chart-area':\n\t\t\t\tpath = 'M18 18l.01-12.28c.59-.35.99-.99.99-1.72 0-1.1-.9-2-2-2s-2 .9-2 2c0 .8.47 1.48 1.14 1.8l-4.13 6.58c-.33-.24-.73-.38-1.16-.38-.84 0-1.55.51-1.85 1.24l-2.14-1.53c.09-.22.14-.46.14-.71 0-1.11-.89-2-2-2-1.1 0-2 .89-2 2 0 .73.4 1.36.98 1.71L1 18h17zM17 3c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zM5 10c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm5.85 3c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1z';\n\t\t\t\tbreak;\n\t\t\tcase 'chart-bar':\n\t\t\t\tpath = 'M18 18V2h-4v16h4zm-6 0V7H8v11h4zm-6 0v-8H2v8h4z';\n\t\t\t\tbreak;\n\t\t\tcase 'chart-line':\n\t\t\t\tpath = 'M18 3.5c0 .62-.38 1.16-.92 1.38v13.11H1.99l4.22-6.73c-.13-.23-.21-.48-.21-.76C6 9.67 6.67 9 7.5 9S9 9.67 9 10.5c0 .13-.02.25-.05.37l1.44.63c.27-.3.67-.5 1.11-.5.18 0 .35.04.51.09l3.58-6.41c-.36-.27-.59-.7-.59-1.18 0-.83.67-1.5 1.5-1.5.19 0 .36.04.53.1l.05-.09v.11c.54.22.92.76.92 1.38zm-1.92 13.49V5.85l-3.29 5.89c.13.23.21.48.21.76 0 .83-.67 1.5-1.5 1.5s-1.5-.67-1.5-1.5l.01-.07-1.63-.72c-.25.18-.55.29-.88.29-.18 0-.35-.04-.51-.1l-3.2 5.09h12.29z';\n\t\t\t\tbreak;\n\t\t\tcase 'chart-pie':\n\t\t\t\tpath = 'M10 10V3c3.87 0 7 3.13 7 7h-7zM9 4v7h7c0 3.87-3.13 7-7 7s-7-3.13-7-7 3.13-7 7-7z';\n\t\t\t\tbreak;\n\t\t\tcase 'clipboard':\n\t\t\t\tpath = 'M11.9.39l1.4 1.4c1.61.19 3.5-.74 4.61.37s.18 3 .37 4.61l1.4 1.4c.39.39.39 1.02 0 1.41l-9.19 9.2c-.4.39-1.03.39-1.42 0L1.29 11c-.39-.39-.39-1.02 0-1.42l9.2-9.19c.39-.39 1.02-.39 1.41 0zm.58 2.25l-.58.58 4.95 4.95.58-.58c-.19-.6-.2-1.22-.15-1.82.02-.31.05-.62.09-.92.12-1 .18-1.63-.17-1.98s-.98-.29-1.98-.17c-.3.04-.61.07-.92.09-.6.05-1.22.04-1.82-.15zm4.02.93c.39.39.39 1.03 0 1.42s-1.03.39-1.42 0-.39-1.03 0-1.42 1.03-.39 1.42 0zm-6.72.36l-.71.7L15.44 11l.7-.71zM8.36 5.34l-.7.71 6.36 6.36.71-.7zM6.95 6.76l-.71.7 6.37 6.37.7-.71zM5.54 8.17l-.71.71 6.36 6.36.71-.71zM4.12 9.58l-.71.71 6.37 6.37.71-.71z';\n\t\t\t\tbreak;\n\t\t\tcase 'clock':\n\t\t\t\tpath = 'M10 2c4.42 0 8 3.58 8 8s-3.58 8-8 8-8-3.58-8-8 3.58-8 8-8zm0 14c3.31 0 6-2.69 6-6s-2.69-6-6-6-6 2.69-6 6 2.69 6 6 6zm-.71-5.29c.07.05.14.1.23.15l-.02.02L14 13l-3.03-3.19L10 5l-.97 4.81h.01c0 .02-.01.05-.02.09S9 9.97 9 10c0 .28.1.52.29.71z';\n\t\t\t\tbreak;\n\t\t\tcase 'cloud-saved':\n\t\t\t\tpath = 'M14.8 9c.1-.3.2-.6.2-1 0-2.2-1.8-4-4-4-1.5 0-2.9.9-3.5 2.2-.3-.1-.7-.2-1-.2C5.1 6 4 7.1 4 8.5c0 .2 0 .4.1.5-1.8.3-3.1 1.7-3.1 3.5C1 14.4 2.6 16 4.5 16h10c1.9 0 3.5-1.6 3.5-3.5 0-1.8-1.4-3.3-3.2-3.5zm-6.3 5.9l-3.2-3.2 1.4-1.4 1.8 1.8 3.8-3.8 1.4 1.4-5.2 5.2z';\n\t\t\t\tbreak;\n\t\t\tcase 'cloud-upload':\n\t\t\t\tpath = 'M14.8 9c.1-.3.2-.6.2-1 0-2.2-1.8-4-4-4-1.5 0-2.9.9-3.5 2.2-.3-.1-.7-.2-1-.2C5.1 6 4 7.1 4 8.5c0 .2 0 .4.1.5-1.8.3-3.1 1.7-3.1 3.5C1 14.4 2.6 16 4.5 16H8v-3H5l4.5-4.5L14 13h-3v3h3.5c1.9 0 3.5-1.6 3.5-3.5 0-1.8-1.4-3.3-3.2-3.5z';\n\t\t\t\tbreak;\n\t\t\tcase 'cloud':\n\t\t\t\tpath = 'M14.9 9c1.8.2 3.1 1.7 3.1 3.5 0 1.9-1.6 3.5-3.5 3.5h-10C2.6 16 1 14.4 1 12.5 1 10.7 2.3 9.3 4.1 9 4 8.9 4 8.7 4 8.5 4 7.1 5.1 6 6.5 6c.3 0 .7.1.9.2C8.1 4.9 9.4 4 11 4c2.2 0 4 1.8 4 4 0 .4-.1.7-.1 1z';\n\t\t\t\tbreak;\n\t\t\tcase 'columns':\n\t\t\t\tpath = 'M3 15h6V5H3v10zm8 0h6V5h-6v10z';\n\t\t\t\tbreak;\n\t\t\tcase 'controls-back':\n\t\t\t\tpath = 'M2 10l10-6v3.6L18 4v12l-6-3.6V16z';\n\t\t\t\tbreak;\n\t\t\tcase 'controls-forward':\n\t\t\t\tpath = 'M18 10L8 16v-3.6L2 16V4l6 3.6V4z';\n\t\t\t\tbreak;\n\t\t\tcase 'controls-pause':\n\t\t\t\tpath = 'M5 16V4h3v12H5zm7-12h3v12h-3V4z';\n\t\t\t\tbreak;\n\t\t\tcase 'controls-play':\n\t\t\t\tpath = 'M5 4l10 6-10 6V4z';\n\t\t\t\tbreak;\n\t\t\tcase 'controls-repeat':\n\t\t\t\tpath = 'M5 7v3l-2 1.5V5h11V3l4 3.01L14 9V7H5zm10 6v-3l2-1.5V15H6v2l-4-3.01L6 11v2h9z';\n\t\t\t\tbreak;\n\t\t\tcase 'controls-skipback':\n\t\t\t\tpath = 'M11.98 7.63l6-3.6v12l-6-3.6v3.6l-8-4.8v4.8h-2v-12h2v4.8l8-4.8v3.6z';\n\t\t\t\tbreak;\n\t\t\tcase 'controls-skipforward':\n\t\t\t\tpath = 'M8 12.4L2 16V4l6 3.6V4l8 4.8V4h2v12h-2v-4.8L8 16v-3.6z';\n\t\t\t\tbreak;\n\t\t\tcase 'controls-volumeoff':\n\t\t\t\tpath = 'M2 7h4l5-4v14l-5-4H2V7z';\n\t\t\t\tbreak;\n\t\t\tcase 'controls-volumeon':\n\t\t\t\tpath = 'M2 7h4l5-4v14l-5-4H2V7zm12.69-2.46C14.82 4.59 18 5.92 18 10s-3.18 5.41-3.31 5.46c-.06.03-.13.04-.19.04-.2 0-.39-.12-.46-.31-.11-.26.02-.55.27-.65.11-.05 2.69-1.15 2.69-4.54 0-3.41-2.66-4.53-2.69-4.54-.25-.1-.38-.39-.27-.65.1-.25.39-.38.65-.27zM16 10c0 2.57-2.23 3.43-2.32 3.47-.06.02-.12.03-.18.03-.2 0-.39-.12-.47-.32-.1-.26.04-.55.29-.65.07-.02 1.68-.67 1.68-2.53s-1.61-2.51-1.68-2.53c-.25-.1-.38-.39-.29-.65.1-.25.39-.39.65-.29.09.04 2.32.9 2.32 3.47z';\n\t\t\t\tbreak;\n\t\t\tcase 'cover-image':\n\t\t\t\tpath = 'M2.2 1h15.5c.7 0 1.3.6 1.3 1.2v11.5c0 .7-.6 1.2-1.2 1.2H2.2c-.6.1-1.2-.5-1.2-1.1V2.2C1 1.6 1.6 1 2.2 1zM17 13V3H3v10h14zm-4-4s0-5 3-5v7c0 .6-.4 1-1 1H5c-.6 0-1-.4-1-1V7c2 0 3 4 3 4s1-4 3-4 3 2 3 2zM4 17h12v2H4z';\n\t\t\t\tbreak;\n\t\t\tcase 'dashboard':\n\t\t\t\tpath = 'M3.76 16h12.48c1.1-1.37 1.76-3.11 1.76-5 0-4.42-3.58-8-8-8s-8 3.58-8 8c0 1.89.66 3.63 1.76 5zM10 4c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zM6 6c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm8 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm-5.37 5.55L12 7v6c0 1.1-.9 2-2 2s-2-.9-2-2c0-.57.24-1.08.63-1.45zM4 10c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm12 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm-5 3c0-.55-.45-1-1-1s-1 .45-1 1 .45 1 1 1 1-.45 1-1z';\n\t\t\t\tbreak;\n\t\t\tcase 'desktop':\n\t\t\t\tpath = 'M3 2h14c.55 0 1 .45 1 1v10c0 .55-.45 1-1 1h-5v2h2c.55 0 1 .45 1 1v1H5v-1c0-.55.45-1 1-1h2v-2H3c-.55 0-1-.45-1-1V3c0-.55.45-1 1-1zm13 9V4H4v7h12zM5 5h9L5 9V5z';\n\t\t\t\tbreak;\n\t\t\tcase 'dismiss':\n\t\t\t\tpath = 'M10 2c4.42 0 8 3.58 8 8s-3.58 8-8 8-8-3.58-8-8 3.58-8 8-8zm5 11l-3-3 3-3-2-2-3 3-3-3-2 2 3 3-3 3 2 2 3-3 3 3z';\n\t\t\t\tbreak;\n\t\t\tcase 'download':\n\t\t\t\tpath = 'M14.01 4v6h2V2H4v8h2.01V4h8zm-2 2v6h3l-5 6-5-6h3V6h4z';\n\t\t\t\tbreak;\n\t\t\tcase 'edit':\n\t\t\t\tpath = 'M13.89 3.39l2.71 2.72c.46.46.42 1.24.03 1.64l-8.01 8.02-5.56 1.16 1.16-5.58s7.6-7.63 7.99-8.03c.39-.39 1.22-.39 1.68.07zm-2.73 2.79l-5.59 5.61 1.11 1.11 5.54-5.65zm-2.97 8.23l5.58-5.6-1.07-1.08-5.59 5.6z';\n\t\t\t\tbreak;\n\t\t\tcase 'editor-aligncenter':\n\t\t\t\tpath = 'M14 5V3H6v2h8zm3 4V7H3v2h14zm-3 4v-2H6v2h8zm3 4v-2H3v2h14z';\n\t\t\t\tbreak;\n\t\t\tcase 'editor-alignleft':\n\t\t\t\tpath = 'M12 5V3H3v2h9zm5 4V7H3v2h14zm-5 4v-2H3v2h9zm5 4v-2H3v2h14z';\n\t\t\t\tbreak;\n\t\t\tcase 'editor-alignright':\n\t\t\t\tpath = 'M17 5V3H8v2h9zm0 4V7H3v2h14zm0 4v-2H8v2h9zm0 4v-2H3v2h14z';\n\t\t\t\tbreak;\n\t\t\tcase 'editor-bold':\n\t\t\t\tpath = 'M6 4v13h4.54c1.37 0 2.46-.33 3.26-1 .8-.66 1.2-1.58 1.2-2.77 0-.84-.17-1.51-.51-2.01s-.9-.85-1.67-1.03v-.09c.57-.1 1.02-.4 1.36-.9s.51-1.13.51-1.91c0-1.14-.39-1.98-1.17-2.5C12.75 4.26 11.5 4 9.78 4H6zm2.57 5.15V6.26h1.36c.73 0 1.27.11 1.61.32.34.22.51.58.51 1.07 0 .54-.16.92-.47 1.15s-.82.35-1.51.35h-1.5zm0 2.19h1.6c1.44 0 2.16.53 2.16 1.61 0 .6-.17 1.05-.51 1.34s-.86.43-1.57.43H8.57v-3.38z';\n\t\t\t\tbreak;\n\t\t\tcase 'editor-break':\n\t\t\t\tpath = 'M16 4h2v9H7v3l-5-4 5-4v3h9V4z';\n\t\t\t\tbreak;\n\t\t\tcase 'editor-code':\n\t\t\t\tpath = 'M9 6l-4 4 4 4-1 2-6-6 6-6zm2 8l4-4-4-4 1-2 6 6-6 6z';\n\t\t\t\tbreak;\n\t\t\tcase 'editor-contract':\n\t\t\t\tpath = 'M15.75 6.75L18 3v14l-2.25-3.75L17 12h-4v4l1.25-1.25L18 17H2l3.75-2.25L7 16v-4H3l1.25 1.25L2 17V3l2.25 3.75L3 8h4V4L5.75 5.25 2 3h16l-3.75 2.25L13 4v4h4z';\n\t\t\t\tbreak;\n\t\t\tcase 'editor-customchar':\n\t\t\t\tpath = 'M10 5.4c1.27 0 2.24.36 2.91 1.08.66.71 1 1.76 1 3.13 0 1.28-.23 2.37-.69 3.27-.47.89-1.27 1.52-2.22 2.12v2h6v-2h-3.69c.92-.64 1.62-1.34 2.12-2.34.49-1.01.74-2.13.74-3.35 0-1.78-.55-3.19-1.65-4.22S11.92 3.54 10 3.54s-3.43.53-4.52 1.57c-1.1 1.04-1.65 2.44-1.65 4.2 0 1.21.24 2.31.73 3.33.48 1.01 1.19 1.71 2.1 2.36H3v2h6v-2c-.98-.64-1.8-1.28-2.24-2.17-.45-.89-.67-1.96-.67-3.22 0-1.37.33-2.41 1-3.13C7.75 5.76 8.72 5.4 10 5.4z';\n\t\t\t\tbreak;\n\t\t\tcase 'editor-expand':\n\t\t\t\tpath = 'M7 8h6v4H7zm-5 5v4h4l-1.2-1.2L7 12l-3.8 2.2M14 17h4v-4l-1.2 1.2L13 12l2.2 3.8M14 3l1.3 1.3L13 8l3.8-2.2L18 7V3M6 3H2v4l1.2-1.2L7 8 4.7 4.3';\n\t\t\t\tbreak;\n\t\t\tcase 'editor-help':\n\t\t\t\tpath = 'M17 10c0-3.87-3.14-7-7-7-3.87 0-7 3.13-7 7s3.13 7 7 7c3.86 0 7-3.13 7-7zm-6.3 1.48H9.14v-.43c0-.38.08-.7.24-.98s.46-.57.88-.89c.41-.29.68-.53.81-.71.14-.18.2-.39.2-.62 0-.25-.09-.44-.28-.58-.19-.13-.45-.19-.79-.19-.58 0-1.25.19-2 .57l-.64-1.28c.87-.49 1.8-.74 2.77-.74.81 0 1.45.2 1.92.58.48.39.71.91.71 1.55 0 .43-.09.8-.29 1.11-.19.32-.57.67-1.11 1.06-.38.28-.61.49-.71.63-.1.15-.15.34-.15.57v.35zm-1.47 2.74c-.18-.17-.27-.42-.27-.73 0-.33.08-.58.26-.75s.43-.25.77-.25c.32 0 .57.09.75.26s.27.42.27.74c0 .3-.09.55-.27.72-.18.18-.43.27-.75.27-.33 0-.58-.09-.76-.26z';\n\t\t\t\tbreak;\n\t\t\tcase 'editor-indent':\n\t\t\t\tpath = 'M3 5V3h9v2H3zm10-1V3h4v1h-4zm0 3h2V5l4 3.5-4 3.5v-2h-2V7zM3 8V6h9v2H3zm2 3V9h7v2H5zm-2 3v-2h9v2H3zm10 0v-1h4v1h-4zm-4 3v-2h3v2H9z';\n\t\t\t\tbreak;\n\t\t\tcase 'editor-insertmore':\n\t\t\t\tpath = 'M17 7V3H3v4h14zM6 11V9H3v2h3zm6 0V9H8v2h4zm5 0V9h-3v2h3zm0 6v-4H3v4h14z';\n\t\t\t\tbreak;\n\t\t\tcase 'editor-italic':\n\t\t\t\tpath = 'M14.78 6h-2.13l-2.8 9h2.12l-.62 2H4.6l.62-2h2.14l2.8-9H8.03l.62-2h6.75z';\n\t\t\t\tbreak;\n\t\t\tcase 'editor-justify':\n\t\t\t\tpath = 'M2 3h16v2H2V3zm0 4h16v2H2V7zm0 4h16v2H2v-2zm0 4h16v2H2v-2z';\n\t\t\t\tbreak;\n\t\t\tcase 'editor-kitchensink':\n\t\t\t\tpath = 'M19 2v6H1V2h18zm-1 5V3H2v4h16zM5 4v2H3V4h2zm3 0v2H6V4h2zm3 0v2H9V4h2zm3 0v2h-2V4h2zm3 0v2h-2V4h2zm2 5v9H1V9h18zm-1 8v-7H2v7h16zM5 11v2H3v-2h2zm3 0v2H6v-2h2zm3 0v2H9v-2h2zm6 0v2h-5v-2h5zm-6 3v2H3v-2h8zm3 0v2h-2v-2h2zm3 0v2h-2v-2h2z';\n\t\t\t\tbreak;\n\t\t\tcase 'editor-ltr':\n\t\t\t\tpath = 'M5.52 2h7.43c.55 0 1 .45 1 1s-.45 1-1 1h-1v13c0 .55-.45 1-1 1s-1-.45-1-1V5c0-.55-.45-1-1-1s-1 .45-1 1v12c0 .55-.45 1-1 1s-1-.45-1-1v-5.96h-.43C3.02 11.04 1 9.02 1 6.52S3.02 2 5.52 2zM14 14l5-4-5-4v8z';\n\t\t\t\tbreak;\n\t\t\tcase 'editor-ol-rtl':\n\t\t\t\tpath = 'M15.025 8.75a1.048 1.048 0 0 1 .45-.1.507.507 0 0 1 .35.11.455.455 0 0 1 .13.36.803.803 0 0 1-.06.3 1.448 1.448 0 0 1-.19.33c-.09.11-.29.32-.58.62l-.99 1v.58h2.76v-.7h-1.72v-.04l.51-.48a7.276 7.276 0 0 0 .7-.71 1.75 1.75 0 0 0 .3-.49 1.254 1.254 0 0 0 .1-.51.968.968 0 0 0-.16-.56 1.007 1.007 0 0 0-.44-.37 1.512 1.512 0 0 0-.65-.14 1.98 1.98 0 0 0-.51.06 1.9 1.9 0 0 0-.42.15 3.67 3.67 0 0 0-.48.35l.45.54a2.505 2.505 0 0 1 .45-.3zM16.695 15.29a1.29 1.29 0 0 0-.74-.3v-.02a1.203 1.203 0 0 0 .65-.37.973.973 0 0 0 .23-.65.81.81 0 0 0-.37-.71 1.72 1.72 0 0 0-1-.26 2.185 2.185 0 0 0-1.33.4l.4.6a1.79 1.79 0 0 1 .46-.23 1.18 1.18 0 0 1 .41-.07c.38 0 .58.15.58.46a.447.447 0 0 1-.22.43 1.543 1.543 0 0 1-.7.12h-.31v.66h.31a1.764 1.764 0 0 1 .75.12.433.433 0 0 1 .23.41.55.55 0 0 1-.2.47 1.084 1.084 0 0 1-.63.15 2.24 2.24 0 0 1-.57-.08 2.671 2.671 0 0 1-.52-.2v.74a2.923 2.923 0 0 0 1.18.22 1.948 1.948 0 0 0 1.22-.33 1.077 1.077 0 0 0 .43-.92.836.836 0 0 0-.26-.64zM15.005 4.17c.06-.05.16-.14.3-.28l-.02.42V7h.84V3h-.69l-1.29 1.03.4.51zM4.02 5h9v1h-9zM4.02 10h9v1h-9zM4.02 15h9v1h-9z';\n\t\t\t\tbreak;\n\t\t\tcase 'editor-ol':\n\t\t\t\tpath = 'M6 7V3h-.69L4.02 4.03l.4.51.46-.37c.06-.05.16-.14.3-.28l-.02.42V7H6zm2-2h9v1H8V5zm-1.23 6.95v-.7H5.05v-.04l.51-.48c.33-.31.57-.54.7-.71.14-.17.24-.33.3-.49.07-.16.1-.33.1-.51 0-.21-.05-.4-.16-.56-.1-.16-.25-.28-.44-.37s-.41-.14-.65-.14c-.19 0-.36.02-.51.06-.15.03-.29.09-.42.15-.12.07-.29.19-.48.35l.45.54c.16-.13.31-.23.45-.3.15-.07.3-.1.45-.1.14 0 .26.03.35.11s.13.2.13.36c0 .1-.02.2-.06.3s-.1.21-.19.33c-.09.11-.29.32-.58.62l-.99 1v.58h2.76zM8 10h9v1H8v-1zm-1.29 3.95c0-.3-.12-.54-.37-.71-.24-.17-.58-.26-1-.26-.52 0-.96.13-1.33.4l.4.6c.17-.11.32-.19.46-.23.14-.05.27-.07.41-.07.38 0 .58.15.58.46 0 .2-.07.35-.22.43s-.38.12-.7.12h-.31v.66h.31c.34 0 .59.04.75.12.15.08.23.22.23.41 0 .22-.07.37-.2.47-.14.1-.35.15-.63.15-.19 0-.38-.03-.57-.08s-.36-.12-.52-.2v.74c.34.15.74.22 1.18.22.53 0 .94-.11 1.22-.33.29-.22.43-.52.43-.92 0-.27-.09-.48-.26-.64s-.42-.26-.74-.3v-.02c.27-.06.49-.19.65-.37.15-.18.23-.39.23-.65zM8 15h9v1H8v-1z';\n\t\t\t\tbreak;\n\t\t\tcase 'editor-outdent':\n\t\t\t\tpath = 'M7 4V3H3v1h4zm10 1V3H8v2h9zM7 7H5V5L1 8.5 5 12v-2h2V7zm10 1V6H8v2h9zm-2 3V9H8v2h7zm2 3v-2H8v2h9zM7 14v-1H3v1h4zm4 3v-2H8v2h3z';\n\t\t\t\tbreak;\n\t\t\tcase 'editor-paragraph':\n\t\t\t\tpath = 'M15 2H7.54c-.83 0-1.59.2-2.28.6-.7.41-1.25.96-1.65 1.65C3.2 4.94 3 5.7 3 6.52s.2 1.58.61 2.27c.4.69.95 1.24 1.65 1.64.69.41 1.45.61 2.28.61h.43V17c0 .27.1.51.29.71.2.19.44.29.71.29.28 0 .51-.1.71-.29.2-.2.3-.44.3-.71V5c0-.27.09-.51.29-.71.2-.19.44-.29.71-.29s.51.1.71.29c.19.2.29.44.29.71v12c0 .27.1.51.3.71.2.19.43.29.71.29.27 0 .51-.1.71-.29.19-.2.29-.44.29-.71V4H15c.27 0 .5-.1.7-.3.2-.19.3-.43.3-.7s-.1-.51-.3-.71C15.5 2.1 15.27 2 15 2z';\n\t\t\t\tbreak;\n\t\t\tcase 'editor-paste-text':\n\t\t\t\tpath = 'M12.38 2L15 5v1H5V5l2.64-3h4.74zM10 5c.55 0 1-.44 1-1 0-.55-.45-1-1-1s-1 .45-1 1c0 .56.45 1 1 1zm5.45-1H17c.55 0 1 .45 1 1v12c0 .56-.45 1-1 1H3c-.55 0-1-.44-1-1V5c0-.55.45-1 1-1h1.55L4 4.63V7h12V4.63zM14 11V9H6v2h3v5h2v-5h3z';\n\t\t\t\tbreak;\n\t\t\tcase 'editor-paste-word':\n\t\t\t\tpath = 'M12.38 2L15 5v1H5V5l2.64-3h4.74zM10 5c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm8 12V5c0-.55-.45-1-1-1h-1.54l.54.63V7H4V4.62L4.55 4H3c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h14c.55 0 1-.45 1-1zm-3-8l-2 7h-2l-1-5-1 5H6.92L5 9h2l1 5 1-5h2l1 5 1-5h2z';\n\t\t\t\tbreak;\n\t\t\tcase 'editor-quote':\n\t\t\t\tpath = 'M9.49 13.22c0-.74-.2-1.38-.61-1.9-.62-.78-1.83-.88-2.53-.72-.29-1.65 1.11-3.75 2.92-4.65L7.88 4c-2.73 1.3-5.42 4.28-4.96 8.05C3.21 14.43 4.59 16 6.54 16c.85 0 1.56-.25 2.12-.75s.83-1.18.83-2.03zm8.05 0c0-.74-.2-1.38-.61-1.9-.63-.78-1.83-.88-2.53-.72-.29-1.65 1.11-3.75 2.92-4.65L15.93 4c-2.73 1.3-5.41 4.28-4.95 8.05.29 2.38 1.66 3.95 3.61 3.95.85 0 1.56-.25 2.12-.75s.83-1.18.83-2.03z';\n\t\t\t\tbreak;\n\t\t\tcase 'editor-removeformatting':\n\t\t\t\tpath = 'M14.29 4.59l1.1 1.11c.41.4.61.94.61 1.47v2.12c0 .53-.2 1.07-.61 1.47l-6.63 6.63c-.4.41-.94.61-1.47.61s-1.07-.2-1.47-.61l-1.11-1.1-1.1-1.11c-.41-.4-.61-.94-.61-1.47v-2.12c0-.54.2-1.07.61-1.48l6.63-6.62c.4-.41.94-.61 1.47-.61s1.06.2 1.47.61zm-6.21 9.7l6.42-6.42c.39-.39.39-1.03 0-1.43L12.36 4.3c-.19-.19-.45-.29-.72-.29s-.52.1-.71.29l-6.42 6.42c-.39.4-.39 1.04 0 1.43l2.14 2.14c.38.38 1.04.38 1.43 0z';\n\t\t\t\tbreak;\n\t\t\tcase 'editor-rtl':\n\t\t\t\tpath = 'M5.52 2h7.43c.55 0 1 .45 1 1s-.45 1-1 1h-1v13c0 .55-.45 1-1 1s-1-.45-1-1V5c0-.55-.45-1-1-1s-1 .45-1 1v12c0 .55-.45 1-1 1s-1-.45-1-1v-5.96h-.43C3.02 11.04 1 9.02 1 6.52S3.02 2 5.52 2zM19 6l-5 4 5 4V6z';\n\t\t\t\tbreak;\n\t\t\tcase 'editor-spellcheck':\n\t\t\t\tpath = 'M15.84 2.76c.25 0 .49.04.71.11.23.07.44.16.64.25l.35-.81c-.52-.26-1.08-.39-1.69-.39-.58 0-1.09.13-1.52.37-.43.25-.76.61-.99 1.08C13.11 3.83 13 4.38 13 5c0 .99.23 1.75.7 2.28s1.15.79 2.02.79c.6 0 1.13-.09 1.6-.26v-.84c-.26.08-.51.14-.74.19-.24.05-.49.08-.74.08-.59 0-1.04-.19-1.34-.57-.32-.37-.47-.93-.47-1.66 0-.7.16-1.25.48-1.65.33-.4.77-.6 1.33-.6zM6.5 8h1.04L5.3 2H4.24L2 8h1.03l.58-1.66H5.9zM8 2v6h2.17c.67 0 1.19-.15 1.57-.46.38-.3.56-.72.56-1.26 0-.4-.1-.72-.3-.95-.19-.24-.5-.39-.93-.47v-.04c.35-.06.6-.21.78-.44.18-.24.28-.53.28-.88 0-.52-.19-.9-.56-1.14-.36-.24-.96-.36-1.79-.36H8zm.98 2.48V2.82h.85c.44 0 .77.06.97.19.21.12.31.33.31.61 0 .31-.1.53-.29.66-.18.13-.48.2-.89.2h-.95zM5.64 5.5H3.9l.54-1.56c.14-.4.25-.76.32-1.1l.15.52c.07.23.13.4.17.51zm3.34-.23h.99c.44 0 .76.08.98.23.21.15.32.38.32.69 0 .34-.11.59-.32.75s-.52.24-.93.24H8.98V5.27zM4 13l5 5 9-8-1-1-8 6-4-3z';\n\t\t\t\tbreak;\n\t\t\tcase 'editor-strikethrough':\n\t\t\t\tpath = 'M15.82 12.25c.26 0 .5-.02.74-.07.23-.05.48-.12.73-.2v.84c-.46.17-.99.26-1.58.26-.88 0-1.54-.26-2.01-.79-.39-.44-.62-1.04-.68-1.79h-.94c.12.21.18.48.18.79 0 .54-.18.95-.55 1.26-.38.3-.9.45-1.56.45H8v-2.5H6.59l.93 2.5H6.49l-.59-1.67H3.62L3.04 13H2l.93-2.5H2v-1h1.31l.93-2.49H5.3l.92 2.49H8V7h1.77c1 0 1.41.17 1.77.41.37.24.55.62.55 1.13 0 .35-.09.64-.27.87l-.08.09h1.29c.05-.4.15-.77.31-1.1.23-.46.55-.82.98-1.06.43-.25.93-.37 1.51-.37.61 0 1.17.12 1.69.38l-.35.81c-.2-.1-.42-.18-.64-.25s-.46-.11-.71-.11c-.55 0-.99.2-1.31.59-.23.29-.38.66-.44 1.11H17v1h-2.95c.06.5.2.9.44 1.19.3.37.75.56 1.33.56zM4.44 8.96l-.18.54H5.3l-.22-.61c-.04-.11-.09-.28-.17-.51-.07-.24-.12-.41-.14-.51-.08.33-.18.69-.33 1.09zm4.53-1.09V9.5h1.19c.28-.02.49-.09.64-.18.19-.13.28-.35.28-.66 0-.28-.1-.48-.3-.61-.2-.12-.53-.18-.97-.18h-.84zm-3.33 2.64v-.01H3.91v.01h1.73zm5.28.01l-.03-.02H8.97v1.68h1.04c.4 0 .71-.08.92-.23.21-.16.31-.4.31-.74 0-.31-.11-.54-.32-.69z';\n\t\t\t\tbreak;\n\t\t\tcase 'editor-table':\n\t\t\t\tpath = 'M18 17V3H2v14h16zM16 7H4V5h12v2zm-7 4H4V9h5v2zm7 0h-5V9h5v2zm-7 4H4v-2h5v2zm7 0h-5v-2h5v2z';\n\t\t\t\tbreak;\n\t\t\tcase 'editor-textcolor':\n\t\t\t\tpath = 'M13.23 15h1.9L11 4H9L5 15h1.88l1.07-3h4.18zm-1.53-4.54H8.51L10 5.6z';\n\t\t\t\tbreak;\n\t\t\tcase 'editor-ul':\n\t\t\t\tpath = 'M5.5 7C4.67 7 4 6.33 4 5.5 4 4.68 4.67 4 5.5 4 6.32 4 7 4.68 7 5.5 7 6.33 6.32 7 5.5 7zM8 5h9v1H8V5zm-2.5 7c-.83 0-1.5-.67-1.5-1.5C4 9.68 4.67 9 5.5 9c.82 0 1.5.68 1.5 1.5 0 .83-.68 1.5-1.5 1.5zM8 10h9v1H8v-1zm-2.5 7c-.83 0-1.5-.67-1.5-1.5 0-.82.67-1.5 1.5-1.5.82 0 1.5.68 1.5 1.5 0 .83-.68 1.5-1.5 1.5zM8 15h9v1H8v-1z';\n\t\t\t\tbreak;\n\t\t\tcase 'editor-underline':\n\t\t\t\tpath = 'M14 5h-2v5.71c0 1.99-1.12 2.98-2.45 2.98-1.32 0-2.55-1-2.55-2.96V5H5v5.87c0 1.91 1 4.54 4.48 4.54 3.49 0 4.52-2.58 4.52-4.5V5zm0 13v-2H5v2h9z';\n\t\t\t\tbreak;\n\t\t\tcase 'editor-unlink':\n\t\t\t\tpath = 'M17.74 2.26c1.68 1.69 1.68 4.41 0 6.1l-1.53 1.52c-.32.33-.69.58-1.08.77L13 10l1.69-1.64.76-.77.76-.76c.84-.84.84-2.2 0-3.04-.84-.85-2.2-.85-3.04 0l-.77.76-.76.76L10 7l-.65-2.14c.19-.38.44-.75.77-1.07l1.52-1.53c1.69-1.68 4.42-1.68 6.1 0zM2 4l8 6-6-8zm4-2l4 8-2-8H6zM2 6l8 4-8-2V6zm7.36 7.69L10 13l.74 2.35-1.38 1.39c-1.69 1.68-4.41 1.68-6.1 0-1.68-1.68-1.68-4.42 0-6.1l1.39-1.38L7 10l-.69.64-1.52 1.53c-.85.84-.85 2.2 0 3.04.84.85 2.2.85 3.04 0zM18 16l-8-6 6 8zm-4 2l-4-8 2 8h2zm4-4l-8-4 8 2v2z';\n\t\t\t\tbreak;\n\t\t\tcase 'editor-video':\n\t\t\t\tpath = 'M16 2h-3v1H7V2H4v15h3v-1h6v1h3V2zM6 3v1H5V3h1zm9 0v1h-1V3h1zm-2 1v5H7V4h6zM6 5v1H5V5h1zm9 0v1h-1V5h1zM6 7v1H5V7h1zm9 0v1h-1V7h1zM6 9v1H5V9h1zm9 0v1h-1V9h1zm-2 1v5H7v-5h6zm-7 1v1H5v-1h1zm9 0v1h-1v-1h1zm-9 2v1H5v-1h1zm9 0v1h-1v-1h1zm-9 2v1H5v-1h1zm9 0v1h-1v-1h1z';\n\t\t\t\tbreak;\n\t\t\tcase 'ellipsis':\n\t\t\t\tpath = 'M5 10c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2zm12-2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-7 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z';\n\t\t\t\tbreak;\n\t\t\tcase 'email-alt':\n\t\t\t\tpath = 'M19 14.5v-9c0-.83-.67-1.5-1.5-1.5H3.49c-.83 0-1.5.67-1.5 1.5v9c0 .83.67 1.5 1.5 1.5H17.5c.83 0 1.5-.67 1.5-1.5zm-1.31-9.11c.33.33.15.67-.03.84L13.6 9.95l3.9 4.06c.12.14.2.36.06.51-.13.16-.43.15-.56.05l-4.37-3.73-2.14 1.95-2.13-1.95-4.37 3.73c-.13.1-.43.11-.56-.05-.14-.15-.06-.37.06-.51l3.9-4.06-4.06-3.72c-.18-.17-.36-.51-.03-.84s.67-.17.95.07l6.24 5.04 6.25-5.04c.28-.24.62-.4.95-.07z';\n\t\t\t\tbreak;\n\t\t\tcase 'email-alt2':\n\t\t\t\tpath = 'M18.01 11.18V2.51c0-1.19-.9-1.81-2-1.37L4 5.91c-1.1.44-2 1.77-2 2.97v8.66c0 1.2.9 1.81 2 1.37l12.01-4.77c1.1-.44 2-1.76 2-2.96zm-1.43-7.46l-6.04 9.33-6.65-4.6c-.1-.07-.36-.32-.17-.64.21-.36.65-.21.65-.21l6.3 2.32s4.83-6.34 5.11-6.7c.13-.17.43-.34.73-.13.29.2.16.49.07.63z';\n\t\t\t\tbreak;\n\t\t\tcase 'email':\n\t\t\t\tpath = 'M3.87 4h13.25C18.37 4 19 4.59 19 5.79v8.42c0 1.19-.63 1.79-1.88 1.79H3.87c-1.25 0-1.88-.6-1.88-1.79V5.79c0-1.2.63-1.79 1.88-1.79zm6.62 8.6l6.74-5.53c.24-.2.43-.66.13-1.07-.29-.41-.82-.42-1.17-.17l-5.7 3.86L4.8 5.83c-.35-.25-.88-.24-1.17.17-.3.41-.11.87.13 1.07z';\n\t\t\t\tbreak;\n\t\t\tcase 'embed-audio':\n\t\t\t\tpath = 'M17 4H3c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-7 3H7v4c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2c.4 0 .7.1 1 .3V5h4v2zm4 3.5L12.5 12l1.5 1.5V15l-3-3 3-3v1.5zm1 4.5v-1.5l1.5-1.5-1.5-1.5V9l3 3-3 3z';\n\t\t\t\tbreak;\n\t\t\tcase 'embed-generic':\n\t\t\t\tpath = 'M17 4H3c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-3 6.5L12.5 12l1.5 1.5V15l-3-3 3-3v1.5zm1 4.5v-1.5l1.5-1.5-1.5-1.5V9l3 3-3 3z';\n\t\t\t\tbreak;\n\t\t\tcase 'embed-photo':\n\t\t\t\tpath = 'M17 4H3c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-7 8H3V6h7v6zm4-1.5L12.5 12l1.5 1.5V15l-3-3 3-3v1.5zm1 4.5v-1.5l1.5-1.5-1.5-1.5V9l3 3-3 3zm-6-4V8.5L7.2 10 6 9.2 4 11h5zM4.6 8.6c.6 0 1-.4 1-1s-.4-1-1-1-1 .4-1 1 .4 1 1 1z';\n\t\t\t\tbreak;\n\t\t\tcase 'embed-post':\n\t\t\t\tpath = 'M17 4H3c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM8.6 9l-.4.3c-.4.4-.5 1.1-.2 1.6l-.8.8-1.1-1.1-1.3 1.3c-.2.2-1.6 1.3-1.8 1.1-.2-.2.9-1.6 1.1-1.8l1.3-1.3-1.1-1.1.8-.8c.5.3 1.2.3 1.6-.2l.3-.3c.5-.5.5-1.2.2-1.7L8 5l3 2.9-.8.8c-.5-.2-1.2-.2-1.6.3zm5.4 1.5L12.5 12l1.5 1.5V15l-3-3 3-3v1.5zm1 4.5v-1.5l1.5-1.5-1.5-1.5V9l3 3-3 3z';\n\t\t\t\tbreak;\n\t\t\tcase 'embed-video':\n\t\t\t\tpath = 'M17 4H3c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-7 6.5L8 9.1V11H3V6h5v1.8l2-1.3v4zm4 0L12.5 12l1.5 1.5V15l-3-3 3-3v1.5zm1 4.5v-1.5l1.5-1.5-1.5-1.5V9l3 3-3 3z';\n\t\t\t\tbreak;\n\t\t\tcase 'excerpt-view':\n\t\t\t\tpath = 'M19 18V2c0-.55-.45-1-1-1H2c-.55 0-1 .45-1 1v16c0 .55.45 1 1 1h16c.55 0 1-.45 1-1zM4 3c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm13 0v6H6V3h11zM4 11c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm13 0v6H6v-6h11z';\n\t\t\t\tbreak;\n\t\t\tcase 'exit':\n\t\t\t\tpath = 'M13 3v2h2v10h-2v2h4V3h-4zm0 8V9H5.4l4.3-4.3-1.4-1.4L1.6 10l6.7 6.7 1.4-1.4L5.4 11H13z';\n\t\t\t\tbreak;\n\t\t\tcase 'external':\n\t\t\t\tpath = 'M9 3h8v8l-2-1V6.92l-5.6 5.59-1.41-1.41L14.08 5H10zm3 12v-3l2-2v7H3V6h8L9 8H5v7h7z';\n\t\t\t\tbreak;\n\t\t\tcase 'facebook-alt':\n\t\t\t\tpath = 'M8.46 18h2.93v-7.3h2.45l.37-2.84h-2.82V6.04c0-.82.23-1.38 1.41-1.38h1.51V2.11c-.26-.03-1.15-.11-2.19-.11-2.18 0-3.66 1.33-3.66 3.76v2.1H6v2.84h2.46V18z';\n\t\t\t\tbreak;\n\t\t\tcase 'facebook':\n\t\t\t\tpath = 'M2.89 2h14.23c.49 0 .88.39.88.88v14.24c0 .48-.39.88-.88.88h-4.08v-6.2h2.08l.31-2.41h-2.39V7.85c0-.7.2-1.18 1.2-1.18h1.28V4.51c-.22-.03-.98-.09-1.86-.09-1.85 0-3.11 1.12-3.11 3.19v1.78H8.46v2.41h2.09V18H2.89c-.49 0-.89-.4-.89-.88V2.88c0-.49.4-.88.89-.88z';\n\t\t\t\tbreak;\n\t\t\tcase 'feedback':\n\t\t\t\tpath = 'M2 2h16c.55 0 1 .45 1 1v14c0 .55-.45 1-1 1H2c-.55 0-1-.45-1-1V3c0-.55.45-1 1-1zm15 14V7H3v9h14zM4 8v1h3V8H4zm4 0v3h8V8H8zm-4 4v1h3v-1H4zm4 0v3h8v-3H8z';\n\t\t\t\tbreak;\n\t\t\tcase 'filter':\n\t\t\t\tpath = 'M3 4.5v-2s3.34-1 7-1 7 1 7 1v2l-5 7.03v6.97s-1.22-.09-2.25-.59S8 16.5 8 16.5v-4.97z';\n\t\t\t\tbreak;\n\t\t\tcase 'flag':\n\t\t\t\tpath = 'M5 18V3H3v15h2zm1-6V4c3-1 7 1 11 0v8c-3 1.27-8-1-11 0z';\n\t\t\t\tbreak;\n\t\t\tcase 'format-aside':\n\t\t\t\tpath = 'M1 1h18v12l-6 6H1V1zm3 3v1h12V4H4zm0 4v1h12V8H4zm6 5v-1H4v1h6zm2 4l5-5h-5v5z';\n\t\t\t\tbreak;\n\t\t\tcase 'format-audio':\n\t\t\t\tpath = 'M6.99 3.08l11.02-2c.55-.08.99.45.99 1V14.5c0 1.94-1.57 3.5-3.5 3.5S12 16.44 12 14.5c0-1.93 1.57-3.5 3.5-3.5.54 0 1.04.14 1.5.35V5.08l-9 2V16c-.24 1.7-1.74 3-3.5 3C2.57 19 1 17.44 1 15.5 1 13.57 2.57 12 4.5 12c.54 0 1.04.14 1.5.35V4.08c0-.55.44-.91.99-1z';\n\t\t\t\tbreak;\n\t\t\tcase 'format-chat':\n\t\t\t\tpath = 'M11 6h-.82C9.07 6 8 7.2 8 8.16V10l-3 3v-3H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h6c1.1 0 2 .9 2 2v3zm0 1h6c1.1 0 2 .9 2 2v5c0 1.1-.9 2-2 2h-2v3l-3-3h-1c-1.1 0-2-.9-2-2V9c0-1.1.9-2 2-2z';\n\t\t\t\tbreak;\n\t\t\tcase 'format-gallery':\n\t\t\t\tpath = 'M16 4h1.96c.57 0 1.04.47 1.04 1.04v12.92c0 .57-.47 1.04-1.04 1.04H5.04C4.47 19 4 18.53 4 17.96V16H2.04C1.47 16 1 15.53 1 14.96V2.04C1 1.47 1.47 1 2.04 1h12.92c.57 0 1.04.47 1.04 1.04V4zM3 14h11V3H3v11zm5-8.5C8 4.67 7.33 4 6.5 4S5 4.67 5 5.5 5.67 7 6.5 7 8 6.33 8 5.5zm2 4.5s1-5 3-5v8H4V7c2 0 2 3 2 3s.33-2 2-2 2 2 2 2zm7 7V6h-1v8.96c0 .57-.47 1.04-1.04 1.04H6v1h11z';\n\t\t\t\tbreak;\n\t\t\tcase 'format-image':\n\t\t\t\tpath = 'M2.25 1h15.5c.69 0 1.25.56 1.25 1.25v15.5c0 .69-.56 1.25-1.25 1.25H2.25C1.56 19 1 18.44 1 17.75V2.25C1 1.56 1.56 1 2.25 1zM17 17V3H3v14h14zM10 6c0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2 2-.9 2-2zm3 5s0-6 3-6v10c0 .55-.45 1-1 1H5c-.55 0-1-.45-1-1V8c2 0 3 4 3 4s1-3 3-3 3 2 3 2z';\n\t\t\t\tbreak;\n\t\t\tcase 'format-quote':\n\t\t\t\tpath = 'M8.54 12.74c0-.87-.24-1.61-.72-2.22-.73-.92-2.14-1.03-2.96-.85-.34-1.93 1.3-4.39 3.42-5.45L6.65 1.94C3.45 3.46.31 6.96.85 11.37 1.19 14.16 2.8 16 5.08 16c1 0 1.83-.29 2.48-.88.66-.59.98-1.38.98-2.38zm9.43 0c0-.87-.24-1.61-.72-2.22-.73-.92-2.14-1.03-2.96-.85-.34-1.93 1.3-4.39 3.42-5.45l-1.63-2.28c-3.2 1.52-6.34 5.02-5.8 9.43.34 2.79 1.95 4.63 4.23 4.63 1 0 1.83-.29 2.48-.88.66-.59.98-1.38.98-2.38z';\n\t\t\t\tbreak;\n\t\t\tcase 'format-status':\n\t\t\t\tpath = 'M10 1c7 0 9 2.91 9 6.5S17 14 10 14s-9-2.91-9-6.5S3 1 10 1zM5.5 9C6.33 9 7 8.33 7 7.5S6.33 6 5.5 6 4 6.67 4 7.5 4.67 9 5.5 9zM10 9c.83 0 1.5-.67 1.5-1.5S10.83 6 10 6s-1.5.67-1.5 1.5S9.17 9 10 9zm4.5 0c.83 0 1.5-.67 1.5-1.5S15.33 6 14.5 6 13 6.67 13 7.5 13.67 9 14.5 9zM6 14.5c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5-1.5-.67-1.5-1.5.67-1.5 1.5-1.5zm-3 2c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1z';\n\t\t\t\tbreak;\n\t\t\tcase 'format-video':\n\t\t\t\tpath = 'M2 1h16c.55 0 1 .45 1 1v16l-18-.02V2c0-.55.45-1 1-1zm4 1L4 5h1l2-3H6zm4 0H9L7 5h1zm3 0h-1l-2 3h1zm3 0h-1l-2 3h1zm1 14V6H3v10h14zM8 7l6 4-6 4V7z';\n\t\t\t\tbreak;\n\t\t\tcase 'forms':\n\t\t\t\tpath = 'M2 2h7v7H2V2zm9 0v7h7V2h-7zM5.5 4.5L7 3H4zM12 8V3h5v5h-5zM4.5 5.5L3 4v3zM8 4L6.5 5.5 8 7V4zM5.5 6.5L4 8h3zM9 18v-7H2v7h7zm9 0h-7v-7h7v7zM8 12v5H3v-5h5zm6.5 1.5L16 12h-3zM12 16l1.5-1.5L12 13v3zm3.5-1.5L17 16v-3zm-1 1L13 17h3z';\n\t\t\t\tbreak;\n\t\t\tcase 'googleplus':\n\t\t\t\tpath = 'M6.73 10h5.4c.05.29.09.57.09.95 0 3.27-2.19 5.6-5.49 5.6-3.17 0-5.73-2.57-5.73-5.73 0-3.17 2.56-5.73 5.73-5.73 1.54 0 2.84.57 3.83 1.5l-1.55 1.5c-.43-.41-1.17-.89-2.28-.89-1.96 0-3.55 1.62-3.55 3.62 0 1.99 1.59 3.61 3.55 3.61 2.26 0 3.11-1.62 3.24-2.47H6.73V10zM19 10v1.64h-1.64v1.63h-1.63v-1.63h-1.64V10h1.64V8.36h1.63V10H19z';\n\t\t\t\tbreak;\n\t\t\tcase 'grid-view':\n\t\t\t\tpath = 'M2 1h16c.55 0 1 .45 1 1v16c0 .55-.45 1-1 1H2c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1zm7.01 7.99v-6H3v6h6.01zm8 0v-6h-6v6h6zm-8 8.01v-6H3v6h6.01zm8 0v-6h-6v6h6z';\n\t\t\t\tbreak;\n\t\t\tcase 'groups':\n\t\t\t\tpath = 'M8.03 4.46c-.29 1.28.55 3.46 1.97 3.46 1.41 0 2.25-2.18 1.96-3.46-.22-.98-1.08-1.63-1.96-1.63-.89 0-1.74.65-1.97 1.63zm-4.13.9c-.25 1.08.47 2.93 1.67 2.93s1.92-1.85 1.67-2.93c-.19-.83-.92-1.39-1.67-1.39s-1.48.56-1.67 1.39zm8.86 0c-.25 1.08.47 2.93 1.66 2.93 1.2 0 1.92-1.85 1.67-2.93-.19-.83-.92-1.39-1.67-1.39-.74 0-1.47.56-1.66 1.39zm-.59 11.43l1.25-4.3C14.2 10 12.71 8.47 10 8.47c-2.72 0-4.21 1.53-3.44 4.02l1.26 4.3C8.05 17.51 9 18 10 18c.98 0 1.94-.49 2.17-1.21zm-6.1-7.63c-.49.67-.96 1.83-.42 3.59l1.12 3.79c-.34.2-.77.31-1.2.31-.85 0-1.65-.41-1.85-1.03l-1.07-3.65c-.65-2.11.61-3.4 2.92-3.4.27 0 .54.02.79.06-.1.1-.2.22-.29.33zm8.35-.39c2.31 0 3.58 1.29 2.92 3.4l-1.07 3.65c-.2.62-1 1.03-1.85 1.03-.43 0-.86-.11-1.2-.31l1.11-3.77c.55-1.78.08-2.94-.42-3.61-.08-.11-.18-.23-.28-.33.25-.04.51-.06.79-.06z';\n\t\t\t\tbreak;\n\t\t\tcase 'hammer':\n\t\t\t\tpath = 'M17.7 6.32l1.41 1.42-3.47 3.41-1.42-1.42.84-.82c-.32-.76-.81-1.57-1.51-2.31l-4.61 6.59-5.26 4.7c-.39.39-1.02.39-1.42 0l-1.2-1.21c-.39-.39-.39-1.02 0-1.41l10.97-9.92c-1.37-.86-3.21-1.46-5.67-1.48 2.7-.82 4.95-.93 6.58-.3 1.7.66 2.82 2.2 3.91 3.58z';\n\t\t\t\tbreak;\n\t\t\tcase 'heading':\n\t\t\t\tpath = 'M12.5 4v5.2h-5V4H5v13h2.5v-5.2h5V17H15V4';\n\t\t\t\tbreak;\n\t\t\tcase 'heart':\n\t\t\t\tpath = 'M10 17.12c3.33-1.4 5.74-3.79 7.04-6.21 1.28-2.41 1.46-4.81.32-6.25-1.03-1.29-2.37-1.78-3.73-1.74s-2.68.63-3.63 1.46c-.95-.83-2.27-1.42-3.63-1.46s-2.7.45-3.73 1.74c-1.14 1.44-.96 3.84.34 6.25 1.28 2.42 3.69 4.81 7.02 6.21z';\n\t\t\t\tbreak;\n\t\t\tcase 'hidden':\n\t\t\t\tpath = 'M17.2 3.3l.16.17c.39.39.39 1.02 0 1.41L4.55 17.7c-.39.39-1.03.39-1.41 0l-.17-.17c-.39-.39-.39-1.02 0-1.41l1.59-1.6c-1.57-1-2.76-2.3-3.56-3.93.81-1.65 2.03-2.98 3.64-3.99S8.04 5.09 10 5.09c1.2 0 2.33.21 3.4.6l2.38-2.39c.39-.39 1.03-.39 1.42 0zm-7.09 4.01c-.23.25-.34.54-.34.88 0 .31.12.58.31.81l1.8-1.79c-.13-.12-.28-.21-.45-.26-.11-.01-.28-.03-.49-.04-.33.03-.6.16-.83.4zM2.4 10.59c.69 1.23 1.71 2.25 3.05 3.05l1.28-1.28c-.51-.69-.77-1.47-.77-2.36 0-1.06.36-1.98 1.09-2.76-1.04.27-1.96.7-2.76 1.26-.8.58-1.43 1.27-1.89 2.09zm13.22-2.13l.96-.96c1.02.86 1.83 1.89 2.42 3.09-.81 1.65-2.03 2.98-3.64 3.99s-3.4 1.51-5.36 1.51c-.63 0-1.24-.07-1.83-.18l1.07-1.07c.25.02.5.05.76.05 1.63 0 3.13-.4 4.5-1.21s2.4-1.84 3.1-3.09c-.46-.82-1.09-1.51-1.89-2.09-.03-.01-.06-.03-.09-.04zm-5.58 5.58l4-4c-.01 1.1-.41 2.04-1.18 2.81-.78.78-1.72 1.18-2.82 1.19z';\n\t\t\t\tbreak;\n\t\t\tcase 'html':\n\t\t\t\tpath = 'M4 16v-2H2v2H1v-5h1v2h2v-2h1v5H4zM7 16v-4H5.6v-1h3.7v1H8v4H7zM10 16v-5h1l1.4 3.4h.1L14 11h1v5h-1v-3.1h-.1l-1.1 2.5h-.6l-1.1-2.5H11V16h-1zM19 16h-3v-5h1v4h2v1zM9.4 4.2L7.1 6.5l2.3 2.3-.6 1.2-3.5-3.5L8.8 3l.6 1.2zm1.2 4.6l2.3-2.3-2.3-2.3.6-1.2 3.5 3.5-3.5 3.5-.6-1.2z';\n\t\t\t\tbreak;\n\t\t\tcase 'id-alt':\n\t\t\t\tpath = 'M18 18H2V2h16v16zM8.05 7.53c.13-.07.24-.15.33-.24.09-.1.17-.21.24-.34.07-.14.13-.26.17-.37s.07-.22.1-.34L8.95 6c0-.04.01-.07.01-.09.05-.32.03-.61-.04-.9-.08-.28-.23-.52-.46-.72C8.23 4.1 7.95 4 7.6 4c-.2 0-.39.04-.56.11-.17.08-.31.18-.41.3-.11.13-.2.27-.27.44-.07.16-.11.33-.12.51s0 .36.01.55l.02.09c.01.06.03.15.06.25s.06.21.1.33.1.25.17.37c.08.12.16.23.25.33s.2.19.34.25c.13.06.28.09.43.09s.3-.03.43-.09zM16 5V4h-5v1h5zm0 2V6h-5v1h5zM7.62 8.83l-1.38-.88c-.41 0-.79.11-1.14.32-.35.22-.62.5-.81.85-.19.34-.29.7-.29 1.07v1.25l.2.05c.13.04.31.09.55.14.24.06.51.12.8.17.29.06.62.1 1 .14.37.04.73.06 1.07.06s.69-.02 1.07-.06.7-.09.98-.14c.27-.05.54-.1.82-.17.27-.06.45-.11.54-.13.09-.03.16-.05.21-.06v-1.25c0-.36-.1-.72-.31-1.07s-.49-.64-.84-.86-.72-.33-1.11-.33zM16 9V8h-3v1h3zm0 2v-1h-3v1h3zm0 3v-1H4v1h12zm0 2v-1H4v1h12z';\n\t\t\t\tbreak;\n\t\t\tcase 'id':\n\t\t\t\tpath = 'M18 16H2V4h16v12zM7.05 8.53c.13-.07.24-.15.33-.24.09-.1.17-.21.24-.34.07-.14.13-.26.17-.37s.07-.22.1-.34L7.95 7c0-.04.01-.07.01-.09.05-.32.03-.61-.04-.9-.08-.28-.23-.52-.46-.72C7.23 5.1 6.95 5 6.6 5c-.2 0-.39.04-.56.11-.17.08-.31.18-.41.3-.11.13-.2.27-.27.44-.07.16-.11.33-.12.51s0 .36.01.55l.02.09c.01.06.03.15.06.25s.06.21.1.33.1.25.17.37c.08.12.16.23.25.33s.2.19.34.25c.13.06.28.09.43.09s.3-.03.43-.09zM17 9V5h-5v4h5zm-10.38.83l-1.38-.88c-.41 0-.79.11-1.14.32-.35.22-.62.5-.81.85-.19.34-.29.7-.29 1.07v1.25l.2.05c.13.04.31.09.55.14.24.06.51.12.8.17.29.06.62.1 1 .14.37.04.73.06 1.07.06s.69-.02 1.07-.06.7-.09.98-.14c.27-.05.54-.1.82-.17.27-.06.45-.11.54-.13.09-.03.16-.05.21-.06v-1.25c0-.36-.1-.72-.31-1.07s-.49-.64-.84-.86-.72-.33-1.11-.33zM17 11v-1h-5v1h5zm0 2v-1h-5v1h5zm0 2v-1H3v1h14z';\n\t\t\t\tbreak;\n\t\t\tcase 'image-crop':\n\t\t\t\tpath = 'M19 12v3h-4v4h-3v-4H4V7H0V4h4V0h3v4h7l3-3 1 1-3 3v7h4zm-8-5H7v4zm-3 5h4V8z';\n\t\t\t\tbreak;\n\t\t\tcase 'image-filter':\n\t\t\t\tpath = 'M14 5.87c0-2.2-1.79-4-4-4s-4 1.8-4 4c0 2.21 1.79 4 4 4s4-1.79 4-4zM3.24 10.66c-1.92 1.1-2.57 3.55-1.47 5.46 1.11 1.92 3.55 2.57 5.47 1.47 1.91-1.11 2.57-3.55 1.46-5.47-1.1-1.91-3.55-2.56-5.46-1.46zm9.52 6.93c1.92 1.1 4.36.45 5.47-1.46 1.1-1.92.45-4.36-1.47-5.47-1.91-1.1-4.36-.45-5.46 1.46-1.11 1.92-.45 4.36 1.46 5.47z';\n\t\t\t\tbreak;\n\t\t\tcase 'image-flip-horizontal':\n\t\t\t\tpath = 'M19 3v14h-8v3H9v-3H1V3h8V0h2v3h8zm-8.5 14V3h-1v14h1zM7 6.5L3 10l4 3.5v-7zM17 10l-4-3.5v7z';\n\t\t\t\tbreak;\n\t\t\tcase 'image-flip-vertical':\n\t\t\t\tpath = 'M20 9v2h-3v8H3v-8H0V9h3V1h14v8h3zM6.5 7h7L10 3zM17 9.5H3v1h14v-1zM13.5 13h-7l3.5 4z';\n\t\t\t\tbreak;\n\t\t\tcase 'image-rotate-left':\n\t\t\t\tpath = 'M7 5H5.05c0-1.74.85-2.9 2.95-2.9V0C4.85 0 2.96 2.11 2.96 5H1.18L3.8 8.39zm13-4v14h-5v5H1V10h9V1h10zm-2 2h-6v7h3v3h3V3zm-5 9H3v6h10v-6z';\n\t\t\t\tbreak;\n\t\t\tcase 'image-rotate-right':\n\t\t\t\tpath = 'M15.95 5H14l3.2 3.39L19.82 5h-1.78c0-2.89-1.89-5-5.04-5v2.1c2.1 0 2.95 1.16 2.95 2.9zM1 1h10v9h9v10H6v-5H1V1zm2 2v10h3v-3h3V3H3zm5 9v6h10v-6H8z';\n\t\t\t\tbreak;\n\t\t\tcase 'image-rotate':\n\t\t\t\tpath = 'M10.25 1.02c5.1 0 8.75 4.04 8.75 9s-3.65 9-8.75 9c-3.2 0-6.02-1.59-7.68-3.99l2.59-1.52c1.1 1.5 2.86 2.51 4.84 2.51 3.3 0 6-2.79 6-6s-2.7-6-6-6c-1.97 0-3.72 1-4.82 2.49L7 8.02l-6 2v-7L2.89 4.6c1.69-2.17 4.36-3.58 7.36-3.58z';\n\t\t\t\tbreak;\n\t\t\tcase 'images-alt':\n\t\t\t\tpath = 'M4 15v-3H2V2h12v3h2v3h2v10H6v-3H4zm7-12c-1.1 0-2 .9-2 2h4c0-1.1-.89-2-2-2zm-7 8V6H3v5h1zm7-3h4c0-1.1-.89-2-2-2-1.1 0-2 .9-2 2zm-5 6V9H5v5h1zm9-1c1.1 0 2-.89 2-2 0-1.1-.9-2-2-2s-2 .9-2 2c0 1.11.9 2 2 2zm2 4v-2c-5 0-5-3-10-3v5h10z';\n\t\t\t\tbreak;\n\t\t\tcase 'images-alt2':\n\t\t\t\tpath = 'M5 3h14v11h-2v2h-2v2H1V7h2V5h2V3zm13 10V4H6v9h12zm-3-4c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm1 6v-1H5V6H4v9h12zM7 6l10 6H7V6zm7 11v-1H3V8H2v9h12z';\n\t\t\t\tbreak;\n\t\t\tcase 'index-card':\n\t\t\t\tpath = 'M1 3.17V18h18V4H8v-.83c0-.32-.12-.6-.35-.83S7.14 2 6.82 2H2.18c-.33 0-.6.11-.83.34-.24.23-.35.51-.35.83zM10 6v2H3V6h7zm7 0v10h-5V6h5zm-7 4v2H3v-2h7zm0 4v2H3v-2h7z';\n\t\t\t\tbreak;\n\t\t\tcase 'info-outline':\n\t\t\t\tpath = 'M9 15h2V9H9v6zm1-10c-.5 0-1 .5-1 1s.5 1 1 1 1-.5 1-1-.5-1-1-1zm0-4c-5 0-9 4-9 9s4 9 9 9 9-4 9-9-4-9-9-9zm0 16c-3.9 0-7-3.1-7-7s3.1-7 7-7 7 3.1 7 7-3.1 7-7 7z';\n\t\t\t\tbreak;\n\t\t\tcase 'info':\n\t\t\t\tpath = 'M10 2c4.42 0 8 3.58 8 8s-3.58 8-8 8-8-3.58-8-8 3.58-8 8-8zm1 4c0-.55-.45-1-1-1s-1 .45-1 1 .45 1 1 1 1-.45 1-1zm0 9V9H9v6h2z';\n\t\t\t\tbreak;\n\t\t\tcase 'insert-after':\n\t\t\t\tpath = 'M9 12h2v-2h2V8h-2V6H9v2H7v2h2v2zm1 4c3.9 0 7-3.1 7-7s-3.1-7-7-7-7 3.1-7 7 3.1 7 7 7zm0-12c2.8 0 5 2.2 5 5s-2.2 5-5 5-5-2.2-5-5 2.2-5 5-5zM3 19h14v-2H3v2z';\n\t\t\t\tbreak;\n\t\t\tcase 'insert-before':\n\t\t\t\tpath = 'M11 8H9v2H7v2h2v2h2v-2h2v-2h-2V8zm-1-4c-3.9 0-7 3.1-7 7s3.1 7 7 7 7-3.1 7-7-3.1-7-7-7zm0 12c-2.8 0-5-2.2-5-5s2.2-5 5-5 5 2.2 5 5-2.2 5-5 5zM3 1v2h14V1H3z';\n\t\t\t\tbreak;\n\t\t\tcase 'insert':\n\t\t\t\tpath = 'M10 1c-5 0-9 4-9 9s4 9 9 9 9-4 9-9-4-9-9-9zm0 16c-3.9 0-7-3.1-7-7s3.1-7 7-7 7 3.1 7 7-3.1 7-7 7zm1-11H9v3H6v2h3v3h2v-3h3V9h-3V6z';\n\t\t\t\tbreak;\n\t\t\tcase 'instagram':\n\t\t\t\tpath = 'M12.67 10A2.67 2.67 0 1 0 10 12.67 2.68 2.68 0 0 0 12.67 10zm1.43 0A4.1 4.1 0 1 1 10 5.9a4.09 4.09 0 0 1 4.1 4.1zm1.13-4.27a1 1 0 1 1-1-1 1 1 0 0 1 1 1zM10 3.44c-1.17 0-3.67-.1-4.72.32a2.67 2.67 0 0 0-1.52 1.52c-.42 1-.32 3.55-.32 4.72s-.1 3.67.32 4.72a2.74 2.74 0 0 0 1.52 1.52c1 .42 3.55.32 4.72.32s3.67.1 4.72-.32a2.83 2.83 0 0 0 1.52-1.52c.42-1.05.32-3.55.32-4.72s.1-3.67-.32-4.72a2.74 2.74 0 0 0-1.52-1.52c-1.05-.42-3.55-.32-4.72-.32zM18 10c0 1.1 0 2.2-.05 3.3a4.84 4.84 0 0 1-1.29 3.36A4.8 4.8 0 0 1 13.3 18H6.7a4.84 4.84 0 0 1-3.36-1.29 4.84 4.84 0 0 1-1.29-3.41C2 12.2 2 11.1 2 10V6.7a4.84 4.84 0 0 1 1.34-3.36A4.8 4.8 0 0 1 6.7 2.05C7.8 2 8.9 2 10 2h3.3a4.84 4.84 0 0 1 3.36 1.29A4.8 4.8 0 0 1 18 6.7V10z';\n\t\t\t\tbreak;\n\t\t\tcase 'laptop':\n\t\t\t\tpath = 'M3 3h14c.6 0 1 .4 1 1v10c0 .6-.4 1-1 1H3c-.6 0-1-.4-1-1V4c0-.6.4-1 1-1zm13 2H4v8h12V5zm-3 1H5v4zm6 11v-1H1v1c0 .6.5 1 1.1 1h15.8c.6 0 1.1-.4 1.1-1z';\n\t\t\t\tbreak;\n\t\t\tcase 'layout':\n\t\t\t\tpath = 'M2 2h5v11H2V2zm6 0h5v5H8V2zm6 0h4v16h-4V2zM8 8h5v5H8V8zm-6 6h11v4H2v-4z';\n\t\t\t\tbreak;\n\t\t\tcase 'leftright':\n\t\t\t\tpath = 'M3 10.03L9 6v8zM11 6l6 4.03L11 14V6z';\n\t\t\t\tbreak;\n\t\t\tcase 'lightbulb':\n\t\t\t\tpath = 'M10 1c3.11 0 5.63 2.52 5.63 5.62 0 1.84-2.03 4.58-2.03 4.58-.33.44-.6 1.25-.6 1.8v1c0 .55-.45 1-1 1H8c-.55 0-1-.45-1-1v-1c0-.55-.27-1.36-.6-1.8 0 0-2.02-2.74-2.02-4.58C4.38 3.52 6.89 1 10 1zM7 16.87V16h6v.87c0 .62-.13 1.13-.75 1.13H12c0 .62-.4 1-1.02 1h-2c-.61 0-.98-.38-.98-1h-.25c-.62 0-.75-.51-.75-1.13z';\n\t\t\t\tbreak;\n\t\t\tcase 'list-view':\n\t\t\t\tpath = 'M2 19h16c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1H2c-.55 0-1 .45-1 1v16c0 .55.45 1 1 1zM4 3c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm13 0v2H6V3h11zM4 7c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm13 0v2H6V7h11zM4 11c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm13 0v2H6v-2h11zM4 15c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm13 0v2H6v-2h11z';\n\t\t\t\tbreak;\n\t\t\tcase 'location-alt':\n\t\t\t\tpath = 'M13 13.14l1.17-5.94c.79-.43 1.33-1.25 1.33-2.2 0-1.38-1.12-2.5-2.5-2.5S10.5 3.62 10.5 5c0 .95.54 1.77 1.33 2.2zm0-9.64c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5-1.5-.67-1.5-1.5.67-1.5 1.5-1.5zm1.72 4.8L18 6.97v9L13.12 18 7 15.97l-5 2v-9l5-2 4.27 1.41 1.73 7.3z';\n\t\t\t\tbreak;\n\t\t\tcase 'location':\n\t\t\t\tpath = 'M10 2C6.69 2 4 4.69 4 8c0 2.02 1.17 3.71 2.53 4.89.43.37 1.18.96 1.85 1.83.74.97 1.41 2.01 1.62 2.71.21-.7.88-1.74 1.62-2.71.67-.87 1.42-1.46 1.85-1.83C14.83 11.71 16 10.02 16 8c0-3.31-2.69-6-6-6zm0 2.56c1.9 0 3.44 1.54 3.44 3.44S11.9 11.44 10 11.44 6.56 9.9 6.56 8 8.1 4.56 10 4.56z';\n\t\t\t\tbreak;\n\t\t\tcase 'lock':\n\t\t\t\tpath = 'M14 9h1c.55 0 1 .45 1 1v7c0 .55-.45 1-1 1H5c-.55 0-1-.45-1-1v-7c0-.55.45-1 1-1h1V6c0-2.21 1.79-4 4-4s4 1.79 4 4v3zm-2 0V6c0-1.1-.9-2-2-2s-2 .9-2 2v3h4zm-1 7l-.36-2.15c.51-.24.86-.75.86-1.35 0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5c0 .6.35 1.11.86 1.35L9 16h2z';\n\t\t\t\tbreak;\n\t\t\tcase 'marker':\n\t\t\t\tpath = 'M10 2c4.42 0 8 3.58 8 8s-3.58 8-8 8-8-3.58-8-8 3.58-8 8-8zm0 13c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5z';\n\t\t\t\tbreak;\n\t\t\tcase 'media-archive':\n\t\t\t\tpath = 'M12 2l4 4v12H4V2h8zm0 4h3l-3-3v3zM8 3.5v2l1.8-1zM11 5L9.2 6 11 7V5zM8 6.5v2l1.8-1zM11 8L9.2 9l1.8 1V8zM8 9.5v2l1.8-1zm3 1.5l-1.8 1 1.8 1v-2zm-1.5 6c.83 0 1.62-.72 1.5-1.63-.05-.38-.49-1.61-.49-1.61l-1.99-1.1s-.45 1.95-.52 2.71c-.07.77.67 1.63 1.5 1.63zm0-2.39c.42 0 .76.34.76.76 0 .43-.34.77-.76.77s-.76-.34-.76-.77c0-.42.34-.76.76-.76z';\n\t\t\t\tbreak;\n\t\t\tcase 'media-audio':\n\t\t\t\tpath = 'M12 2l4 4v12H4V2h8zm0 4h3l-3-3v3zm1 7.26V8.09c0-.11-.04-.21-.12-.29-.07-.08-.16-.11-.27-.1 0 0-3.97.71-4.25.78C8.07 8.54 8 8.8 8 9v3.37c-.2-.09-.42-.07-.6-.07-.38 0-.7.13-.96.39-.26.27-.4.58-.4.96 0 .37.14.69.4.95.26.27.58.4.96.4.34 0 .7-.04.96-.26.26-.23.64-.65.64-1.12V10.3l3-.6V12c-.67-.2-1.17.04-1.44.31-.26.26-.39.58-.39.95 0 .38.13.69.39.96.27.26.71.39 1.08.39.38 0 .7-.13.96-.39.26-.27.4-.58.4-.96z';\n\t\t\t\tbreak;\n\t\t\tcase 'media-code':\n\t\t\t\tpath = 'M12 2l4 4v12H4V2h8zM9 13l-2-2 2-2-1-1-3 3 3 3zm3 1l3-3-3-3-1 1 2 2-2 2z';\n\t\t\t\tbreak;\n\t\t\tcase 'media-default':\n\t\t\t\tpath = 'M12 2l4 4v12H4V2h8zm0 4h3l-3-3v3z';\n\t\t\t\tbreak;\n\t\t\tcase 'media-document':\n\t\t\t\tpath = 'M12 2l4 4v12H4V2h8zM5 3v1h6V3H5zm7 3h3l-3-3v3zM5 5v1h6V5H5zm10 3V7H5v1h10zM5 9v1h4V9H5zm10 3V9h-5v3h5zM5 11v1h4v-1H5zm10 3v-1H5v1h10zm-3 2v-1H5v1h7z';\n\t\t\t\tbreak;\n\t\t\tcase 'media-interactive':\n\t\t\t\tpath = 'M12 2l4 4v12H4V2h8zm0 4h3l-3-3v3zm2 8V8H6v6h3l-1 2h1l1-2 1 2h1l-1-2h3zm-6-3c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm5-2v2h-3V9h3zm0 3v1H7v-1h6z';\n\t\t\t\tbreak;\n\t\t\tcase 'media-spreadsheet':\n\t\t\t\tpath = 'M12 2l4 4v12H4V2h8zm-1 4V3H5v3h6zM8 8V7H5v1h3zm3 0V7H9v1h2zm4 0V7h-3v1h3zm-7 2V9H5v1h3zm3 0V9H9v1h2zm4 0V9h-3v1h3zm-7 2v-1H5v1h3zm3 0v-1H9v1h2zm4 0v-1h-3v1h3zm-7 2v-1H5v1h3zm3 0v-1H9v1h2zm4 0v-1h-3v1h3zm-7 2v-1H5v1h3zm3 0v-1H9v1h2z';\n\t\t\t\tbreak;\n\t\t\tcase 'media-text':\n\t\t\t\tpath = 'M12 2l4 4v12H4V2h8zM5 3v1h6V3H5zm7 3h3l-3-3v3zM5 5v1h6V5H5zm10 3V7H5v1h10zm0 2V9H5v1h10zm0 2v-1H5v1h10zm-4 2v-1H5v1h6z';\n\t\t\t\tbreak;\n\t\t\tcase 'media-video':\n\t\t\t\tpath = 'M12 2l4 4v12H4V2h8zm0 4h3l-3-3v3zm-1 8v-3c0-.27-.1-.51-.29-.71-.2-.19-.44-.29-.71-.29H7c-.27 0-.51.1-.71.29-.19.2-.29.44-.29.71v3c0 .27.1.51.29.71.2.19.44.29.71.29h3c.27 0 .51-.1.71-.29.19-.2.29-.44.29-.71zm3 1v-5l-2 2v1z';\n\t\t\t\tbreak;\n\t\t\tcase 'megaphone':\n\t\t\t\tpath = 'M18.15 5.94c.46 1.62.38 3.22-.02 4.48-.42 1.28-1.26 2.18-2.3 2.48-.16.06-.26.06-.4.06-.06.02-.12.02-.18.02-.06.02-.14.02-.22.02h-6.8l2.22 5.5c.02.14-.06.26-.14.34-.08.1-.24.16-.34.16H6.95c-.1 0-.26-.06-.34-.16-.08-.08-.16-.2-.14-.34l-1-5.5H4.25l-.02-.02c-.5.06-1.08-.18-1.54-.62s-.88-1.08-1.06-1.88c-.24-.8-.2-1.56-.02-2.2.18-.62.58-1.08 1.06-1.3l.02-.02 9-5.4c.1-.06.18-.1.24-.16.06-.04.14-.08.24-.12.16-.08.28-.12.5-.18 1.04-.3 2.24.1 3.22.98s1.84 2.24 2.26 3.86zm-2.58 5.98h-.02c.4-.1.74-.34 1.04-.7.58-.7.86-1.76.86-3.04 0-.64-.1-1.3-.28-1.98-.34-1.36-1.02-2.5-1.78-3.24s-1.68-1.1-2.46-.88c-.82.22-1.4.96-1.7 2-.32 1.04-.28 2.36.06 3.72.38 1.36 1 2.5 1.8 3.24.78.74 1.62 1.1 2.48.88zm-2.54-7.08c.22-.04.42-.02.62.04.38.16.76.48 1.02 1s.42 1.2.42 1.78c0 .3-.04.56-.12.8-.18.48-.44.84-.86.94-.34.1-.8-.06-1.14-.4s-.64-.86-.78-1.5c-.18-.62-.12-1.24.02-1.72s.48-.84.82-.94z';\n\t\t\t\tbreak;\n\t\t\tcase 'menu-alt':\n\t\t\t\tpath = 'M3 4h14v2H3V4zm0 5h14v2H3V9zm0 5h14v2H3v-2z';\n\t\t\t\tbreak;\n\t\t\tcase 'menu':\n\t\t\t\tpath = 'M17 7V5H3v2h14zm0 4V9H3v2h14zm0 4v-2H3v2h14z';\n\t\t\t\tbreak;\n\t\t\tcase 'microphone':\n\t\t\t\tpath = 'M12 9V3c0-1.1-.89-2-2-2-1.12 0-2 .94-2 2v6c0 1.1.9 2 2 2 1.13 0 2-.94 2-2zm4 0c0 2.97-2.16 5.43-5 5.91V17h2c.56 0 1 .45 1 1s-.44 1-1 1H7c-.55 0-1-.45-1-1s.45-1 1-1h2v-2.09C6.17 14.43 4 11.97 4 9c0-.55.45-1 1-1 .56 0 1 .45 1 1 0 2.21 1.8 4 4 4 2.21 0 4-1.79 4-4 0-.55.45-1 1-1 .56 0 1 .45 1 1z';\n\t\t\t\tbreak;\n\t\t\tcase 'migrate':\n\t\t\t\tpath = 'M4 6h6V4H2v12.01h8V14H4V6zm2 2h6V5l6 5-6 5v-3H6V8z';\n\t\t\t\tbreak;\n\t\t\tcase 'minus':\n\t\t\t\tpath = 'M4 9h12v2H4V9z';\n\t\t\t\tbreak;\n\t\t\tcase 'money':\n\t\t\t\tpath = 'M0 3h20v12h-.75c0-1.79-1.46-3.25-3.25-3.25-1.31 0-2.42.79-2.94 1.91-.25-.1-.52-.16-.81-.16-.98 0-1.8.63-2.11 1.5H0V3zm8.37 3.11c-.06.15-.1.31-.11.47s-.01.33.01.5l.02.08c.01.06.02.14.05.23.02.1.06.2.1.31.03.11.09.22.15.33.07.12.15.22.23.31s.18.17.31.23c.12.06.25.09.4.09.14 0 .27-.03.39-.09s.22-.14.3-.22c.09-.09.16-.2.22-.32.07-.12.12-.23.16-.33s.07-.2.09-.31c.03-.11.04-.18.05-.22s.01-.07.01-.09c.05-.29.03-.56-.04-.82s-.21-.48-.41-.66c-.21-.18-.47-.27-.79-.27-.19 0-.36.03-.52.1-.15.07-.28.16-.38.28-.09.11-.17.25-.24.4zm4.48 6.04v-1.14c0-.33-.1-.66-.29-.98s-.45-.59-.77-.79c-.32-.21-.66-.31-1.02-.31l-1.24.84-1.28-.82c-.37 0-.72.1-1.04.3-.31.2-.56.46-.74.77-.18.32-.27.65-.27.99v1.14l.18.05c.12.04.29.08.51.14.23.05.47.1.74.15.26.05.57.09.91.13.34.03.67.05.99.05.3 0 .63-.02.98-.05.34-.04.64-.08.89-.13.25-.04.5-.1.76-.16l.5-.12c.08-.02.14-.04.19-.06zm3.15.1c1.52 0 2.75 1.23 2.75 2.75s-1.23 2.75-2.75 2.75c-.73 0-1.38-.3-1.87-.77.23-.35.37-.78.37-1.23 0-.77-.39-1.46-.99-1.86.43-.96 1.37-1.64 2.49-1.64zm-5.5 3.5c0-.96.79-1.75 1.75-1.75s1.75.79 1.75 1.75-.79 1.75-1.75 1.75-1.75-.79-1.75-1.75z';\n\t\t\t\tbreak;\n\t\t\tcase 'move':\n\t\t\t\tpath = 'M19 10l-4 4v-3h-4v4h3l-4 4-4-4h3v-4H5v3l-4-4 4-4v3h4V5H6l4-4 4 4h-3v4h4V6z';\n\t\t\t\tbreak;\n\t\t\tcase 'nametag':\n\t\t\t\tpath = 'M12 5V2c0-.55-.45-1-1-1H9c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h2c.55 0 1-.45 1-1zm-2-3c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm8 13V7c0-1.1-.9-2-2-2h-3v.33C13 6.25 12.25 7 11.33 7H8.67C7.75 7 7 6.25 7 5.33V5H4c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2zm-1-6v6H3V9h14zm-8 2c0-.55-.22-1-.5-1s-.5.45-.5 1 .22 1 .5 1 .5-.45.5-1zm3 0c0-.55-.22-1-.5-1s-.5.45-.5 1 .22 1 .5 1 .5-.45.5-1zm-5.96 1.21c.92.48 2.34.79 3.96.79s3.04-.31 3.96-.79c-.21 1-1.89 1.79-3.96 1.79s-3.75-.79-3.96-1.79z';\n\t\t\t\tbreak;\n\t\t\tcase 'networking':\n\t\t\t\tpath = 'M18 13h1c.55 0 1 .45 1 1.01v2.98c0 .56-.45 1.01-1 1.01h-4c-.55 0-1-.45-1-1.01v-2.98c0-.56.45-1.01 1-1.01h1v-2h-5v2h1c.55 0 1 .45 1 1.01v2.98c0 .56-.45 1.01-1 1.01H8c-.55 0-1-.45-1-1.01v-2.98c0-.56.45-1.01 1-1.01h1v-2H4v2h1c.55 0 1 .45 1 1.01v2.98C6 17.55 5.55 18 5 18H1c-.55 0-1-.45-1-1.01v-2.98C0 13.45.45 13 1 13h1v-2c0-1.1.9-2 2-2h5V7H8c-.55 0-1-.45-1-1.01V3.01C7 2.45 7.45 2 8 2h4c.55 0 1 .45 1 1.01v2.98C13 6.55 12.55 7 12 7h-1v2h5c1.1 0 2 .9 2 2v2z';\n\t\t\t\tbreak;\n\t\t\tcase 'no-alt':\n\t\t\t\tpath = 'M14.95 6.46L11.41 10l3.54 3.54-1.41 1.41L10 11.42l-3.53 3.53-1.42-1.42L8.58 10 5.05 6.47l1.42-1.42L10 8.58l3.54-3.53z';\n\t\t\t\tbreak;\n\t\t\tcase 'no':\n\t\t\t\tpath = 'M12.12 10l3.53 3.53-2.12 2.12L10 12.12l-3.54 3.54-2.12-2.12L7.88 10 4.34 6.46l2.12-2.12L10 7.88l3.54-3.53 2.12 2.12z';\n\t\t\t\tbreak;\n\t\t\tcase 'palmtree':\n\t\t\t\tpath = 'M8.58 2.39c.32 0 .59.05.81.14 1.25.55 1.69 2.24 1.7 3.97.59-.82 2.15-2.29 3.41-2.29s2.94.73 3.53 3.55c-1.13-.65-2.42-.94-3.65-.94-1.26 0-2.45.32-3.29.89.4-.11.86-.16 1.33-.16 1.39 0 2.9.45 3.4 1.31.68 1.16.47 3.38-.76 4.14-.14-2.1-1.69-4.12-3.47-4.12-.44 0-.88.12-1.33.38C8 10.62 7 14.56 7 19H2c0-5.53 4.21-9.65 7.68-10.79-.56-.09-1.17-.15-1.82-.15C6.1 8.06 4.05 8.5 2 10c.76-2.96 2.78-4.1 4.69-4.1 1.25 0 2.45.5 3.2 1.29-.66-2.24-2.49-2.86-4.08-2.86-.8 0-1.55.16-2.05.35.91-1.29 3.31-2.29 4.82-2.29zM13 11.5c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5.67 1.5 1.5 1.5 1.5-.67 1.5-1.5z';\n\t\t\t\tbreak;\n\t\t\tcase 'paperclip':\n\t\t\t\tpath = 'M17.05 2.7c1.93 1.94 1.93 5.13 0 7.07L10 16.84c-1.88 1.89-4.91 1.93-6.86.15-.06-.05-.13-.09-.19-.15-1.93-1.94-1.93-5.12 0-7.07l4.94-4.95c.91-.92 2.28-1.1 3.39-.58.3.15.59.33.83.58 1.17 1.17 1.17 3.07 0 4.24l-4.93 4.95c-.39.39-1.02.39-1.41 0s-.39-1.02 0-1.41l4.93-4.95c.39-.39.39-1.02 0-1.41-.38-.39-1.02-.39-1.4 0l-4.94 4.95c-.91.92-1.1 2.29-.57 3.4.14.3.32.59.57.84s.54.43.84.57c1.11.53 2.47.35 3.39-.57l7.05-7.07c1.16-1.17 1.16-3.08 0-4.25-.56-.55-1.28-.83-2-.86-.08.01-.16.01-.24 0-.22-.03-.43-.11-.6-.27-.39-.4-.38-1.05.02-1.45.16-.16.36-.24.56-.28.14-.02.27-.01.4.02 1.19.06 2.36.52 3.27 1.43z';\n\t\t\t\tbreak;\n\t\t\tcase 'performance':\n\t\t\t\tpath = 'M3.76 17.01h12.48C17.34 15.63 18 13.9 18 12c0-4.41-3.58-8-8-8s-8 3.59-8 8c0 1.9.66 3.63 1.76 5.01zM9 6c0-.55.45-1 1-1s1 .45 1 1c0 .56-.45 1-1 1s-1-.44-1-1zM4 8c0-.55.45-1 1-1s1 .45 1 1c0 .56-.45 1-1 1s-1-.44-1-1zm4.52 3.4c.84-.83 6.51-3.5 6.51-3.5s-2.66 5.68-3.49 6.51c-.84.84-2.18.84-3.02 0-.83-.83-.83-2.18 0-3.01zM3 13c0-.55.45-1 1-1s1 .45 1 1c0 .56-.45 1-1 1s-1-.44-1-1zm6 0c0-.55.45-1 1-1s1 .45 1 1c0 .56-.45 1-1 1s-1-.44-1-1zm6 0c0-.55.45-1 1-1s1 .45 1 1c0 .56-.45 1-1 1s-1-.44-1-1z';\n\t\t\t\tbreak;\n\t\t\tcase 'phone':\n\t\t\t\tpath = 'M12.06 6l-.21-.2c-.52-.54-.43-.79.08-1.3l2.72-2.75c.81-.82.96-1.21 1.73-.48l.21.2zm.53.45l4.4-4.4c.7.94 2.34 3.47 1.53 5.34-.73 1.67-1.09 1.75-2 3-1.85 2.11-4.18 4.37-6 6.07-1.26.91-1.31 1.33-3 2-1.8.71-4.4-.89-5.38-1.56l4.4-4.4 1.18 1.62c.34.46 1.2-.06 1.8-.66 1.04-1.05 3.18-3.18 4-4.07.59-.59 1.12-1.45.66-1.8zM1.57 16.5l-.21-.21c-.68-.74-.29-.9.52-1.7l2.74-2.72c.51-.49.75-.6 1.27-.11l.2.21z';\n\t\t\t\tbreak;\n\t\t\tcase 'playlist-audio':\n\t\t\t\tpath = 'M17 3V1H2v2h15zm0 4V5H2v2h15zm-7 4V9H2v2h8zm7.45-1.96l-6 1.12c-.16.02-.19.03-.29.13-.11.09-.16.22-.16.37v4.59c-.29-.13-.66-.14-.93-.14-.54 0-1 .19-1.38.57s-.56.84-.56 1.38c0 .53.18.99.56 1.37s.84.57 1.38.57c.49 0 .92-.16 1.29-.48s.59-.71.65-1.19v-4.95L17 11.27v3.48c-.29-.13-.56-.19-.83-.19-.54 0-1.11.19-1.49.57-.38.37-.57.83-.57 1.37s.19.99.57 1.37.84.57 1.38.57c.53 0 .99-.19 1.37-.57s.57-.83.57-1.37V9.6c0-.16-.05-.3-.16-.41-.11-.12-.24-.17-.39-.15zM8 15v-2H2v2h6zm-2 4v-2H2v2h4z';\n\t\t\t\tbreak;\n\t\t\tcase 'playlist-video':\n\t\t\t\tpath = 'M17 3V1H2v2h15zm0 4V5H2v2h15zM6 11V9H2v2h4zm2-2h9c.55 0 1 .45 1 1v8c0 .55-.45 1-1 1H8c-.55 0-1-.45-1-1v-8c0-.55.45-1 1-1zm3 7l3.33-2L11 12v4zm-5-1v-2H2v2h4zm0 4v-2H2v2h4z';\n\t\t\t\tbreak;\n\t\t\tcase 'plus-alt':\n\t\t\t\tpath = 'M15.8 4.2c3.2 3.21 3.2 8.39 0 11.6-3.21 3.2-8.39 3.2-11.6 0C1 12.59 1 7.41 4.2 4.2 7.41 1 12.59 1 15.8 4.2zm-4.3 11.3v-4h4v-3h-4v-4h-3v4h-4v3h4v4h3z';\n\t\t\t\tbreak;\n\t\t\tcase 'plus-light':\n\t\t\t\tpath = 'M17 9v2h-6v6H9v-6H3V9h6V3h2v6h6z';\n\t\t\t\tbreak;\n\t\t\tcase 'plus':\n\t\t\t\tpath = 'M17 7v3h-5v5H9v-5H4V7h5V2h3v5h5z';\n\t\t\t\tbreak;\n\t\t\tcase 'portfolio':\n\t\t\t\tpath = 'M4 5H.78c-.37 0-.74.32-.69.84l1.56 9.99S3.5 8.47 3.86 6.7c.11-.53.61-.7.98-.7H10s-.7-2.08-.77-2.31C9.11 3.25 8.89 3 8.45 3H5.14c-.36 0-.7.23-.8.64C4.25 4.04 4 5 4 5zm4.88 0h-4s.42-1 .87-1h2.13c.48 0 1 1 1 1zM2.67 16.25c-.31.47-.76.75-1.26.75h15.73c.54 0 .92-.31 1.03-.83.44-2.19 1.68-8.44 1.68-8.44.07-.5-.3-.73-.62-.73H16V5.53c0-.16-.26-.53-.66-.53h-3.76c-.52 0-.87.58-.87.58L10 7H5.59c-.32 0-.63.19-.69.5 0 0-1.59 6.7-1.72 7.33-.07.37-.22.99-.51 1.42zM15.38 7H11s.58-1 1.13-1h2.29c.71 0 .96 1 .96 1z';\n\t\t\t\tbreak;\n\t\t\tcase 'post-status':\n\t\t\t\tpath = 'M14 6c0 1.86-1.28 3.41-3 3.86V16c0 1-2 2-2 2V9.86c-1.72-.45-3-2-3-3.86 0-2.21 1.79-4 4-4s4 1.79 4 4zM8 5c0 .55.45 1 1 1s1-.45 1-1-.45-1-1-1-1 .45-1 1z';\n\t\t\t\tbreak;\n\t\t\tcase 'pressthis':\n\t\t\t\tpath = 'M14.76 1C16.55 1 18 2.46 18 4.25c0 1.78-1.45 3.24-3.24 3.24-.23 0-.47-.03-.7-.08L13 8.47V19H2V4h9.54c.13-2 1.52-3 3.22-3zm0 5.49C16 6.49 17 5.48 17 4.25 17 3.01 16 2 14.76 2s-2.24 1.01-2.24 2.25c0 .37.1.72.27 1.03L9.57 8.5c-.28.28-1.77 2.22-1.5 2.49.02.03.06.04.1.04.49 0 2.14-1.28 2.39-1.53l3.24-3.24c.29.14.61.23.96.23z';\n\t\t\t\tbreak;\n\t\t\tcase 'products':\n\t\t\t\tpath = 'M17 8h1v11H2V8h1V6c0-2.76 2.24-5 5-5 .71 0 1.39.15 2 .42.61-.27 1.29-.42 2-.42 2.76 0 5 2.24 5 5v2zM5 6v2h2V6c0-1.13.39-2.16 1.02-3H8C6.35 3 5 4.35 5 6zm10 2V6c0-1.65-1.35-3-3-3h-.02c.63.84 1.02 1.87 1.02 3v2h2zm-5-4.22C9.39 4.33 9 5.12 9 6v2h2V6c0-.88-.39-1.67-1-2.22z';\n\t\t\t\tbreak;\n\t\t\tcase 'randomize':\n\t\t\t\tpath = 'M18 6.01L14 9V7h-4l-5 8H2v-2h2l5-8h5V3zM2 5h3l1.15 2.17-1.12 1.8L4 7H2V5zm16 9.01L14 17v-2H9l-1.15-2.17 1.12-1.8L10 13h4v-2z';\n\t\t\t\tbreak;\n\t\t\tcase 'redo':\n\t\t\t\tpath = 'M8 5h5V2l6 4-6 4V7H8c-2.2 0-4 1.8-4 4s1.8 4 4 4h5v2H8c-3.3 0-6-2.7-6-6s2.7-6 6-6z';\n\t\t\t\tbreak;\n\t\t\tcase 'rest-api':\n\t\t\t\tpath = 'M3 4h2v12H3z';\n\t\t\t\tbreak;\n\t\t\tcase 'rss':\n\t\t\t\tpath = 'M14.92 18H18C18 9.32 10.82 2.25 2 2.25v3.02c7.12 0 12.92 5.71 12.92 12.73zm-5.44 0h3.08C12.56 12.27 7.82 7.6 2 7.6v3.02c2 0 3.87.77 5.29 2.16C8.7 14.17 9.48 16.03 9.48 18zm-5.35-.02c1.17 0 2.13-.93 2.13-2.09 0-1.15-.96-2.09-2.13-2.09-1.18 0-2.13.94-2.13 2.09 0 1.16.95 2.09 2.13 2.09z';\n\t\t\t\tbreak;\n\t\t\tcase 'saved':\n\t\t\t\tpath = 'M15.3 5.3l-6.8 6.8-2.8-2.8-1.4 1.4 4.2 4.2 8.2-8.2';\n\t\t\t\tbreak;\n\t\t\tcase 'schedule':\n\t\t\t\tpath = 'M2 2h16v4H2V2zm0 10V8h4v4H2zm6-2V8h4v2H8zm6 3V8h4v5h-4zm-6 5v-6h4v6H8zm-6 0v-4h4v4H2zm12 0v-3h4v3h-4z';\n\t\t\t\tbreak;\n\t\t\tcase 'screenoptions':\n\t\t\t\tpath = 'M9 9V3H3v6h6zm8 0V3h-6v6h6zm-8 8v-6H3v6h6zm8 0v-6h-6v6h6z';\n\t\t\t\tbreak;\n\t\t\tcase 'search':\n\t\t\t\tpath = 'M12.14 4.18c1.87 1.87 2.11 4.75.72 6.89.12.1.22.21.36.31.2.16.47.36.81.59.34.24.56.39.66.47.42.31.73.57.94.78.32.32.6.65.84 1 .25.35.44.69.59 1.04.14.35.21.68.18 1-.02.32-.14.59-.36.81s-.49.34-.81.36c-.31.02-.65-.04-.99-.19-.35-.14-.7-.34-1.04-.59-.35-.24-.68-.52-1-.84-.21-.21-.47-.52-.77-.93-.1-.13-.25-.35-.47-.66-.22-.32-.4-.57-.56-.78-.16-.2-.29-.35-.44-.5-2.07 1.09-4.69.76-6.44-.98-2.14-2.15-2.14-5.64 0-7.78 2.15-2.15 5.63-2.15 7.78 0zm-1.41 6.36c1.36-1.37 1.36-3.58 0-4.95-1.37-1.37-3.59-1.37-4.95 0-1.37 1.37-1.37 3.58 0 4.95 1.36 1.37 3.58 1.37 4.95 0z';\n\t\t\t\tbreak;\n\t\t\tcase 'share-alt':\n\t\t\t\tpath = 'M16.22 5.8c.47.69.29 1.62-.4 2.08-.69.47-1.62.29-2.08-.4-.16-.24-.35-.46-.55-.67-.21-.2-.43-.39-.67-.55s-.5-.3-.77-.41c-.27-.12-.55-.21-.84-.26-.59-.13-1.23-.13-1.82-.01-.29.06-.57.15-.84.27-.27.11-.53.25-.77.41s-.46.35-.66.55c-.21.21-.4.43-.56.67s-.3.5-.41.76c-.01.02-.01.03-.01.04-.1.24-.17.48-.23.72H1V6h2.66c.04-.07.07-.13.12-.2.27-.4.57-.77.91-1.11s.72-.65 1.11-.91c.4-.27.83-.51 1.28-.7s.93-.34 1.41-.43c.99-.21 2.03-.21 3.02 0 .48.09.96.24 1.41.43s.88.43 1.28.7c.39.26.77.57 1.11.91s.64.71.91 1.11zM12.5 10c0-1.38-1.12-2.5-2.5-2.5S7.5 8.62 7.5 10s1.12 2.5 2.5 2.5 2.5-1.12 2.5-2.5zm-8.72 4.2c-.47-.69-.29-1.62.4-2.09.69-.46 1.62-.28 2.08.41.16.24.35.46.55.67.21.2.43.39.67.55s.5.3.77.41c.27.12.55.2.84.26.59.13 1.23.12 1.82 0 .29-.06.57-.14.84-.26.27-.11.53-.25.77-.41s.46-.35.66-.55c.21-.21.4-.44.56-.67.16-.25.3-.5.41-.76.01-.02.01-.03.01-.04.1-.24.17-.48.23-.72H19v3h-2.66c-.04.06-.07.13-.12.2-.27.4-.57.77-.91 1.11s-.72.65-1.11.91c-.4.27-.83.51-1.28.7s-.93.33-1.41.43c-.99.21-2.03.21-3.02 0-.48-.1-.96-.24-1.41-.43s-.88-.43-1.28-.7c-.39-.26-.77-.57-1.11-.91s-.64-.71-.91-1.11z';\n\t\t\t\tbreak;\n\t\t\tcase 'share-alt2':\n\t\t\t\tpath = 'M18 8l-5 4V9.01c-2.58.06-4.88.45-7 2.99.29-3.57 2.66-5.66 7-5.94V3zM4 14h11v-2l2-1.6V16H2V5h9.43c-1.83.32-3.31 1-4.41 2H4v7z';\n\t\t\t\tbreak;\n\t\t\tcase 'share':\n\t\t\t\tpath = 'M14.5 12c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3c0-.24.03-.46.09-.69l-4.38-2.3c-.55.61-1.33.99-2.21.99-1.66 0-3-1.34-3-3s1.34-3 3-3c.88 0 1.66.39 2.21.99l4.38-2.3c-.06-.23-.09-.45-.09-.69 0-1.66 1.34-3 3-3s3 1.34 3 3-1.34 3-3 3c-.88 0-1.66-.39-2.21-.99l-4.38 2.3c.06.23.09.45.09.69s-.03.46-.09.69l4.38 2.3c.55-.61 1.33-.99 2.21-.99z';\n\t\t\t\tbreak;\n\t\t\tcase 'shield-alt':\n\t\t\t\tpath = 'M10 2s3 2 7 2c0 11-7 14-7 14S3 15 3 4c4 0 7-2 7-2z';\n\t\t\t\tbreak;\n\t\t\tcase 'shield':\n\t\t\t\tpath = 'M10 2s3 2 7 2c0 11-7 14-7 14S3 15 3 4c4 0 7-2 7-2zm0 8h5s1-1 1-5c0 0-5-1-6-2v7H5c1 4 5 7 5 7v-7z';\n\t\t\t\tbreak;\n\t\t\tcase 'shortcode':\n\t\t\t\tpath = 'M6 14H4V6h2V4H2v12h4M7.1 17h2.1l3.7-14h-2.1M14 4v2h2v8h-2v2h4V4';\n\t\t\t\tbreak;\n\t\t\tcase 'slides':\n\t\t\t\tpath = 'M5 14V6h10v8H5zm-3-1V7h2v6H2zm4-6v6h8V7H6zm10 0h2v6h-2V7zm-3 2V8H7v1h6zm0 3v-2H7v2h6z';\n\t\t\t\tbreak;\n\t\t\tcase 'smartphone':\n\t\t\t\tpath = 'M6 2h8c.55 0 1 .45 1 1v14c0 .55-.45 1-1 1H6c-.55 0-1-.45-1-1V3c0-.55.45-1 1-1zm7 12V4H7v10h6zM8 5h4l-4 5V5z';\n\t\t\t\tbreak;\n\t\t\tcase 'smiley':\n\t\t\t\tpath = 'M7 5.2c1.1 0 2 .89 2 2 0 .37-.11.71-.28 1C8.72 8.2 8 8 7 8s-1.72.2-1.72.2c-.17-.29-.28-.63-.28-1 0-1.11.9-2 2-2zm6 0c1.11 0 2 .89 2 2 0 .37-.11.71-.28 1 0 0-.72-.2-1.72-.2s-1.72.2-1.72.2c-.17-.29-.28-.63-.28-1 0-1.11.89-2 2-2zm-3 13.7c3.72 0 7.03-2.36 8.23-5.88l-1.32-.46C15.9 15.52 13.12 17.5 10 17.5s-5.9-1.98-6.91-4.94l-1.32.46c1.2 3.52 4.51 5.88 8.23 5.88z';\n\t\t\t\tbreak;\n\t\t\tcase 'sort':\n\t\t\t\tpath = 'M11 7H1l5 7zm-2 7h10l-5-7z';\n\t\t\t\tbreak;\n\t\t\tcase 'sos':\n\t\t\t\tpath = 'M18 10c0-4.42-3.58-8-8-8s-8 3.58-8 8 3.58 8 8 8 8-3.58 8-8zM7.23 3.57L8.72 7.3c-.62.29-1.13.8-1.42 1.42L3.57 7.23c.71-1.64 2.02-2.95 3.66-3.66zm9.2 3.66L12.7 8.72c-.29-.62-.8-1.13-1.42-1.42l1.49-3.73c1.64.71 2.95 2.02 3.66 3.66zM10 12c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm-6.43.77l3.73-1.49c.29.62.8 1.13 1.42 1.42l-1.49 3.73c-1.64-.71-2.95-2.02-3.66-3.66zm9.2 3.66l-1.49-3.73c.62-.29 1.13-.8 1.42-1.42l3.73 1.49c-.71 1.64-2.02 2.95-3.66 3.66z';\n\t\t\t\tbreak;\n\t\t\tcase 'star-empty':\n\t\t\t\tpath = 'M10 1L7 7l-6 .75 4.13 4.62L4 19l6-3 6 3-1.12-6.63L19 7.75 13 7zm0 2.24l2.34 4.69 4.65.58-3.18 3.56.87 5.15L10 14.88l-4.68 2.34.87-5.15-3.18-3.56 4.65-.58z';\n\t\t\t\tbreak;\n\t\t\tcase 'star-filled':\n\t\t\t\tpath = 'M10 1l3 6 6 .75-4.12 4.62L16 19l-6-3-6 3 1.13-6.63L1 7.75 7 7z';\n\t\t\t\tbreak;\n\t\t\tcase 'star-half':\n\t\t\t\tpath = 'M10 1L7 7l-6 .75 4.13 4.62L4 19l6-3 6 3-1.12-6.63L19 7.75 13 7zm0 2.24l2.34 4.69 4.65.58-3.18 3.56.87 5.15L10 14.88V3.24z';\n\t\t\t\tbreak;\n\t\t\tcase 'sticky':\n\t\t\t\tpath = 'M5 3.61V1.04l8.99-.01-.01 2.58c-1.22.26-2.16 1.35-2.16 2.67v.5c.01 1.31.93 2.4 2.17 2.66l-.01 2.58h-3.41l-.01 2.57c0 .6-.47 4.41-1.06 4.41-.6 0-1.08-3.81-1.08-4.41v-2.56L5 12.02l.01-2.58c1.23-.25 2.15-1.35 2.15-2.66v-.5c0-1.31-.92-2.41-2.16-2.67z';\n\t\t\t\tbreak;\n\t\t\tcase 'store':\n\t\t\t\tpath = 'M1 10c.41.29.96.43 1.5.43.55 0 1.09-.14 1.5-.43.62-.46 1-1.17 1-2 0 .83.37 1.54 1 2 .41.29.96.43 1.5.43.55 0 1.09-.14 1.5-.43.62-.46 1-1.17 1-2 0 .83.37 1.54 1 2 .41.29.96.43 1.51.43.54 0 1.08-.14 1.49-.43.62-.46 1-1.17 1-2 0 .83.37 1.54 1 2 .41.29.96.43 1.5.43.55 0 1.09-.14 1.5-.43.63-.46 1-1.17 1-2V7l-3-7H4L0 7v1c0 .83.37 1.54 1 2zm2 8.99h5v-5h4v5h5v-7c-.37-.05-.72-.22-1-.43-.63-.45-1-.73-1-1.56 0 .83-.38 1.11-1 1.56-.41.3-.95.43-1.49.44-.55 0-1.1-.14-1.51-.44-.63-.45-1-.73-1-1.56 0 .83-.38 1.11-1 1.56-.41.3-.95.43-1.5.44-.54 0-1.09-.14-1.5-.44-.63-.45-1-.73-1-1.57 0 .84-.38 1.12-1 1.57-.29.21-.63.38-1 .44v6.99z';\n\t\t\t\tbreak;\n\t\t\tcase 'table-col-after':\n\t\t\t\tpath = 'M14.08 12.864V9.216h3.648V7.424H14.08V3.776h-1.728v3.648H8.64v1.792h3.712v3.648zM0 17.92V0h20.48v17.92H0zM6.4 1.28H1.28v3.84H6.4V1.28zm0 5.12H1.28v3.84H6.4V6.4zm0 5.12H1.28v3.84H6.4v-3.84zM19.2 1.28H7.68v14.08H19.2V1.28z';\n\t\t\t\tbreak;\n\t\t\tcase 'table-col-before':\n\t\t\t\tpath = 'M6.4 3.776v3.648H2.752v1.792H6.4v3.648h1.728V9.216h3.712V7.424H8.128V3.776zM0 17.92V0h20.48v17.92H0zM12.8 1.28H1.28v14.08H12.8V1.28zm6.4 0h-5.12v3.84h5.12V1.28zm0 5.12h-5.12v3.84h5.12V6.4zm0 5.12h-5.12v3.84h5.12v-3.84z';\n\t\t\t\tbreak;\n\t\t\tcase 'table-col-delete':\n\t\t\t\tpath = 'M6.4 9.98L7.68 8.7v-.256L6.4 7.164V9.98zm6.4-1.532l1.28-1.28V9.92L12.8 8.64v-.192zm7.68 9.472V0H0v17.92h20.48zm-1.28-2.56h-5.12v-1.024l-.256.256-1.024-1.024v1.792H7.68v-1.792l-1.024 1.024-.256-.256v1.024H1.28V1.28H6.4v2.368l.704-.704.576.576V1.216h5.12V3.52l.96-.96.32.32V1.216h5.12V15.36zm-5.76-2.112l-3.136-3.136-3.264 3.264-1.536-1.536 3.264-3.264L5.632 5.44l1.536-1.536 3.136 3.136 3.2-3.2 1.536 1.536-3.2 3.2 3.136 3.136-1.536 1.536z';\n\t\t\t\tbreak;\n\t\t\tcase 'table-row-after':\n\t\t\t\tpath = 'M13.824 10.176h-2.88v-2.88H9.536v2.88h-2.88v1.344h2.88v2.88h1.408v-2.88h2.88zM0 17.92V0h20.48v17.92H0zM6.4 1.28H1.28v3.84H6.4V1.28zm6.4 0H7.68v3.84h5.12V1.28zm6.4 0h-5.12v3.84h5.12V1.28zm0 5.056H1.28v9.024H19.2V6.336z';\n\t\t\t\tbreak;\n\t\t\tcase 'table-row-before':\n\t\t\t\tpath = 'M6.656 6.464h2.88v2.88h1.408v-2.88h2.88V5.12h-2.88V2.24H9.536v2.88h-2.88zM0 17.92V0h20.48v17.92H0zm7.68-2.56h5.12v-3.84H7.68v3.84zm-6.4 0H6.4v-3.84H1.28v3.84zM19.2 1.28H1.28v9.024H19.2V1.28zm0 10.24h-5.12v3.84h5.12v-3.84z';\n\t\t\t\tbreak;\n\t\t\tcase 'table-row-delete':\n\t\t\t\tpath = 'M17.728 11.456L14.592 8.32l3.2-3.2-1.536-1.536-3.2 3.2L9.92 3.648 8.384 5.12l3.2 3.2-3.264 3.264 1.536 1.536 3.264-3.264 3.136 3.136 1.472-1.536zM0 17.92V0h20.48v17.92H0zm19.2-6.4h-.448l-1.28-1.28H19.2V6.4h-1.792l1.28-1.28h.512V1.28H1.28v3.84h6.208l1.28 1.28H1.28v3.84h7.424l-1.28 1.28H1.28v3.84H19.2v-3.84z';\n\t\t\t\tbreak;\n\t\t\tcase 'tablet':\n\t\t\t\tpath = 'M4 2h12c.55 0 1 .45 1 1v14c0 .55-.45 1-1 1H4c-.55 0-1-.45-1-1V3c0-.55.45-1 1-1zm11 14V4H5v12h10zM6 5h6l-6 5V5z';\n\t\t\t\tbreak;\n\t\t\tcase 'tag':\n\t\t\t\tpath = 'M11 2h7v7L8 19l-7-7zm3 6c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2z';\n\t\t\t\tbreak;\n\t\t\tcase 'tagcloud':\n\t\t\t\tpath = 'M11 3v4H1V3h10zm8 0v4h-7V3h7zM7 8v3H1V8h6zm12 0v3H8V8h11zM9 12v2H1v-2h8zm10 0v2h-9v-2h9zM6 15v1H1v-1h5zm5 0v1H7v-1h4zm3 0v1h-2v-1h2zm5 0v1h-4v-1h4z';\n\t\t\t\tbreak;\n\t\t\tcase 'testimonial':\n\t\t\t\tpath = 'M4 3h12c.55 0 1.02.2 1.41.59S18 4.45 18 5v7c0 .55-.2 1.02-.59 1.41S16.55 14 16 14h-1l-5 5v-5H4c-.55 0-1.02-.2-1.41-.59S2 12.55 2 12V5c0-.55.2-1.02.59-1.41S3.45 3 4 3zm11 2H4v1h11V5zm1 3H4v1h12V8zm-3 3H4v1h9v-1z';\n\t\t\t\tbreak;\n\t\t\tcase 'text':\n\t\t\t\tpath = 'M18 3v2H2V3h16zm-6 4v2H2V7h10zm6 0v2h-4V7h4zM8 11v2H2v-2h6zm10 0v2h-8v-2h8zm-4 4v2H2v-2h12z';\n\t\t\t\tbreak;\n\t\t\tcase 'thumbs-down':\n\t\t\t\tpath = 'M7.28 18c-.15.02-.26-.02-.41-.07-.56-.19-.83-.79-.66-1.35.17-.55 1-3.04 1-3.58 0-.53-.75-1-1.35-1h-3c-.6 0-1-.4-1-1s2-7 2-7c.17-.39.55-1 1-1H14v9h-2.14c-.41.41-3.3 4.71-3.58 5.27-.21.41-.6.68-1 .73zM18 12h-2V3h2v9z';\n\t\t\t\tbreak;\n\t\t\tcase 'thumbs-up':\n\t\t\t\tpath = 'M12.72 2c.15-.02.26.02.41.07.56.19.83.79.66 1.35-.17.55-1 3.04-1 3.58 0 .53.75 1 1.35 1h3c.6 0 1 .4 1 1s-2 7-2 7c-.17.39-.55 1-1 1H6V8h2.14c.41-.41 3.3-4.71 3.58-5.27.21-.41.6-.68 1-.73zM2 8h2v9H2V8z';\n\t\t\t\tbreak;\n\t\t\tcase 'tickets-alt':\n\t\t\t\tpath = 'M20 6.38L18.99 9.2v-.01c-.52-.19-1.03-.16-1.53.08s-.85.62-1.04 1.14-.16 1.03.07 1.53c.24.5.62.84 1.15 1.03v.01l-1.01 2.82-15.06-5.38.99-2.79c.52.19 1.03.16 1.53-.08.5-.23.84-.61 1.03-1.13s.16-1.03-.08-1.53c-.23-.49-.61-.83-1.13-1.02L4.93 1zm-4.97 5.69l1.37-3.76c.12-.31.1-.65-.04-.95s-.39-.53-.7-.65L8.14 3.98c-.64-.23-1.37.12-1.6.74L5.17 8.48c-.24.65.1 1.37.74 1.6l7.52 2.74c.14.05.28.08.43.08.52 0 1-.33 1.17-.83zM7.97 4.45l7.51 2.73c.19.07.34.21.43.39.08.18.09.38.02.57l-1.37 3.76c-.13.38-.58.59-.96.45L6.09 9.61c-.39-.14-.59-.57-.45-.96l1.37-3.76c.1-.29.39-.49.7-.49.09 0 .17.02.26.05zm6.82 12.14c.35.27.75.41 1.2.41H16v3H0v-2.96c.55 0 1.03-.2 1.41-.59.39-.38.59-.86.59-1.41s-.2-1.02-.59-1.41-.86-.59-1.41-.59V10h1.05l-.28.8 2.87 1.02c-.51.16-.89.62-.89 1.18v4c0 .69.56 1.25 1.25 1.25h8c.69 0 1.25-.56 1.25-1.25v-1.75l.83.3c.12.43.36.78.71 1.04zM3.25 17v-4c0-.41.34-.75.75-.75h.83l7.92 2.83V17c0 .41-.34.75-.75.75H4c-.41 0-.75-.34-.75-.75z';\n\t\t\t\tbreak;\n\t\t\tcase 'tickets':\n\t\t\t\tpath = 'M20 5.38L18.99 8.2v-.01c-1.04-.37-2.19.18-2.57 1.22-.37 1.04.17 2.19 1.22 2.56v.01l-1.01 2.82L1.57 9.42l.99-2.79c1.04.38 2.19-.17 2.56-1.21s-.17-2.18-1.21-2.55L4.93 0zm-5.45 3.37c.74-2.08-.34-4.37-2.42-5.12-2.08-.74-4.37.35-5.11 2.42-.74 2.08.34 4.38 2.42 5.12 2.07.74 4.37-.35 5.11-2.42zm-2.56-4.74c.89.32 1.57.94 1.97 1.71-.01-.01-.02-.01-.04-.02-.33-.12-.67.09-.78.4-.1.28-.03.57.05.91.04.27.09.62-.06 1.04-.1.29-.33.58-.65 1l-.74 1.01.08-4.08.4.11c.19.04.26-.24.08-.29 0 0-.57-.15-.92-.28-.34-.12-.88-.36-.88-.36-.18-.08-.3.19-.12.27 0 0 .16.08.34.16l.01 1.63L9.2 9.18l.08-4.11c.2.06.4.11.4.11.19.04.26-.23.07-.29 0 0-.56-.15-.91-.28-.07-.02-.14-.05-.22-.08.93-.7 2.19-.94 3.37-.52zM7.4 6.19c.17-.49.44-.92.78-1.27l.04 5c-.94-.95-1.3-2.39-.82-3.73zm4.04 4.75l2.1-2.63c.37-.41.57-.77.69-1.12.05-.12.08-.24.11-.35.09.57.04 1.18-.17 1.77-.45 1.25-1.51 2.1-2.73 2.33zm-.7-3.22l.02 3.22c0 .02 0 .04.01.06-.4 0-.8-.07-1.2-.21-.33-.12-.63-.28-.9-.48zm1.24 6.08l2.1.75c.24.84 1 1.45 1.91 1.45H16v3H0v-2.96c1.1 0 2-.89 2-2 0-1.1-.9-2-2-2V9h1.05l-.28.8 4.28 1.52C4.4 12.03 4 12.97 4 14c0 2.21 1.79 4 4 4s4-1.79 4-4c0-.07-.02-.13-.02-.2zm-6.53-2.33l1.48.53c-.14.04-.15.27.03.28 0 0 .18.02.37.03l.56 1.54-.78 2.36-1.31-3.9c.21-.01.41-.03.41-.03.19-.02.17-.31-.02-.3 0 0-.59.05-.96.05-.07 0-.15 0-.23-.01.13-.2.28-.38.45-.55zM4.4 14c0-.52.12-1.02.32-1.46l1.71 4.7C5.23 16.65 4.4 15.42 4.4 14zm4.19-1.41l1.72.62c.07.17.12.37.12.61 0 .31-.12.66-.28 1.16l-.35 1.2zM11.6 14c0 1.33-.72 2.49-1.79 3.11l1.1-3.18c.06-.17.1-.31.14-.46l.52.19c.02.11.03.22.03.34zm-4.62 3.45l1.08-3.14 1.11 3.03c.01.02.01.04.02.05-.37.13-.77.21-1.19.21-.35 0-.69-.06-1.02-.15z';\n\t\t\t\tbreak;\n\t\t\tcase 'tide':\n\t\t\t\tpath = 'M17 7.2V3H3v7.1c2.6-.5 4.5-1.5 6.4-2.6.2-.2.4-.3.6-.5v3c-1.9 1.1-4 2.2-7 2.8V17h14V9.9c-2.6.5-4.4 1.5-6.2 2.6-.3.1-.5.3-.8.4V10c2-1.1 4-2.2 7-2.8z';\n\t\t\t\tbreak;\n\t\t\tcase 'translation':\n\t\t\t\tpath = 'M11 7H9.49c-.63 0-1.25.3-1.59.7L7 5H4.13l-2.39 7h1.69l.74-2H7v4H2c-1.1 0-2-.9-2-2V5c0-1.1.9-2 2-2h7c1.1 0 2 .9 2 2v2zM6.51 9H4.49l1-2.93zM10 8h7c1.1 0 2 .9 2 2v7c0 1.1-.9 2-2 2h-7c-1.1 0-2-.9-2-2v-7c0-1.1.9-2 2-2zm7.25 5v-1.08h-3.17V9.75h-1.16v2.17H9.75V13h1.28c.11.85.56 1.85 1.28 2.62-.87.36-1.89.62-2.31.62-.01.02.22.97.2 1.46.84 0 2.21-.5 3.28-1.15 1.09.65 2.48 1.15 3.34 1.15-.02-.49.2-1.44.2-1.46-.43 0-1.49-.27-2.38-.63.7-.77 1.14-1.77 1.25-2.61h1.36zm-3.81 1.93c-.5-.46-.85-1.13-1.01-1.93h2.09c-.17.8-.51 1.47-1 1.93l-.04.03s-.03-.02-.04-.03z';\n\t\t\t\tbreak;\n\t\t\tcase 'trash':\n\t\t\t\tpath = 'M12 4h3c.6 0 1 .4 1 1v1H3V5c0-.6.5-1 1-1h3c.2-1.1 1.3-2 2.5-2s2.3.9 2.5 2zM8 4h3c-.2-.6-.9-1-1.5-1S8.2 3.4 8 4zM4 7h11l-.9 10.1c0 .5-.5.9-1 .9H5.9c-.5 0-.9-.4-1-.9L4 7z';\n\t\t\t\tbreak;\n\t\t\tcase 'twitter':\n\t\t\t\tpath = 'M18.94 4.46c-.49.73-1.11 1.38-1.83 1.9.01.15.01.31.01.47 0 4.85-3.69 10.44-10.43 10.44-2.07 0-4-.61-5.63-1.65.29.03.58.05.88.05 1.72 0 3.3-.59 4.55-1.57-1.6-.03-2.95-1.09-3.42-2.55.22.04.45.07.69.07.33 0 .66-.05.96-.13-1.67-.34-2.94-1.82-2.94-3.6v-.04c.5.27 1.06.44 1.66.46-.98-.66-1.63-1.78-1.63-3.06 0-.67.18-1.3.5-1.84 1.81 2.22 4.51 3.68 7.56 3.83-.06-.27-.1-.55-.1-.84 0-2.02 1.65-3.66 3.67-3.66 1.06 0 2.01.44 2.68 1.16.83-.17 1.62-.47 2.33-.89-.28.85-.86 1.57-1.62 2.02.75-.08 1.45-.28 2.11-.57z';\n\t\t\t\tbreak;\n\t\t\tcase 'undo':\n\t\t\t\tpath = 'M12 5H7V2L1 6l6 4V7h5c2.2 0 4 1.8 4 4s-1.8 4-4 4H7v2h5c3.3 0 6-2.7 6-6s-2.7-6-6-6z';\n\t\t\t\tbreak;\n\t\t\tcase 'universal-access-alt':\n\t\t\t\tpath = 'M19 10c0-4.97-4.03-9-9-9s-9 4.03-9 9 4.03 9 9 9 9-4.03 9-9zm-9-7.4c.83 0 1.5.67 1.5 1.5s-.67 1.51-1.5 1.51c-.82 0-1.5-.68-1.5-1.51s.68-1.5 1.5-1.5zM3.4 7.36c0-.65 6.6-.76 6.6-.76s6.6.11 6.6.76-4.47 1.4-4.47 1.4 1.69 8.14 1.06 8.38c-.62.24-3.19-5.19-3.19-5.19s-2.56 5.43-3.18 5.19c-.63-.24 1.06-8.38 1.06-8.38S3.4 8.01 3.4 7.36z';\n\t\t\t\tbreak;\n\t\t\tcase 'universal-access':\n\t\t\t\tpath = 'M10 2.6c.83 0 1.5.67 1.5 1.5s-.67 1.51-1.5 1.51c-.82 0-1.5-.68-1.5-1.51s.68-1.5 1.5-1.5zM3.4 7.36c0-.65 6.6-.76 6.6-.76s6.6.11 6.6.76-4.47 1.4-4.47 1.4 1.69 8.14 1.06 8.38c-.62.24-3.19-5.19-3.19-5.19s-2.56 5.43-3.18 5.19c-.63-.24 1.06-8.38 1.06-8.38S3.4 8.01 3.4 7.36z';\n\t\t\t\tbreak;\n\t\t\tcase 'unlock':\n\t\t\t\tpath = 'M12 9V6c0-1.1-.9-2-2-2s-2 .9-2 2H6c0-2.21 1.79-4 4-4s4 1.79 4 4v3h1c.55 0 1 .45 1 1v7c0 .55-.45 1-1 1H5c-.55 0-1-.45-1-1v-7c0-.55.45-1 1-1h7zm-1 7l-.36-2.15c.51-.24.86-.75.86-1.35 0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5c0 .6.35 1.11.86 1.35L9 16h2z';\n\t\t\t\tbreak;\n\t\t\tcase 'update':\n\t\t\t\tpath = 'M10.2 3.28c3.53 0 6.43 2.61 6.92 6h2.08l-3.5 4-3.5-4h2.32c-.45-1.97-2.21-3.45-4.32-3.45-1.45 0-2.73.71-3.54 1.78L4.95 5.66C6.23 4.2 8.11 3.28 10.2 3.28zm-.4 13.44c-3.52 0-6.43-2.61-6.92-6H.8l3.5-4c1.17 1.33 2.33 2.67 3.5 4H5.48c.45 1.97 2.21 3.45 4.32 3.45 1.45 0 2.73-.71 3.54-1.78l1.71 1.95c-1.28 1.46-3.15 2.38-5.25 2.38z';\n\t\t\t\tbreak;\n\t\t\tcase 'upload':\n\t\t\t\tpath = 'M8 14V8H5l5-6 5 6h-3v6H8zm-2 2v-6H4v8h12.01v-8H14v6H6z';\n\t\t\t\tbreak;\n\t\t\tcase 'vault':\n\t\t\t\tpath = 'M18 17V3c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1zm-1 0H3V3h14v14zM4.75 4h10.5c.41 0 .75.34.75.75V6h-1v3h1v2h-1v3h1v1.25c0 .41-.34.75-.75.75H4.75c-.41 0-.75-.34-.75-.75V4.75c0-.41.34-.75.75-.75zM13 10c0-2.21-1.79-4-4-4s-4 1.79-4 4 1.79 4 4 4 4-1.79 4-4zM9 7l.77 1.15C10.49 8.46 11 9.17 11 10c0 1.1-.9 2-2 2s-2-.9-2-2c0-.83.51-1.54 1.23-1.85z';\n\t\t\t\tbreak;\n\t\t\tcase 'video-alt':\n\t\t\t\tpath = 'M8 5c0-.55-.45-1-1-1H2c-.55 0-1 .45-1 1 0 .57.49 1 1 1h5c.55 0 1-.45 1-1zm6 5l4-4v10l-4-4v-2zm-1 4V8c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h8c.55 0 1-.45 1-1z';\n\t\t\t\tbreak;\n\t\t\tcase 'video-alt2':\n\t\t\t\tpath = 'M12 13V7c0-1.1-.9-2-2-2H3c-1.1 0-2 .9-2 2v6c0 1.1.9 2 2 2h7c1.1 0 2-.9 2-2zm1-2.5l6 4.5V5l-6 4.5v1z';\n\t\t\t\tbreak;\n\t\t\tcase 'video-alt3':\n\t\t\t\tpath = 'M19 15V5c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h13c1.1 0 2-.9 2-2zM8 14V6l6 4z';\n\t\t\t\tbreak;\n\t\t\tcase 'visibility':\n\t\t\t\tpath = 'M19.7 9.4C17.7 6 14 3.9 10 3.9S2.3 6 .3 9.4L0 10l.3.6c2 3.4 5.7 5.5 9.7 5.5s7.7-2.1 9.7-5.5l.3-.6-.3-.6zM10 14.1c-3.1 0-6-1.6-7.7-4.1C3.6 8 5.7 6.6 8 6.1c-.9.6-1.5 1.7-1.5 2.9 0 1.9 1.6 3.5 3.5 3.5s3.5-1.6 3.5-3.5c0-1.2-.6-2.3-1.5-2.9 2.3.5 4.4 1.9 5.7 3.9-1.7 2.5-4.6 4.1-7.7 4.1z';\n\t\t\t\tbreak;\n\t\t\tcase 'warning':\n\t\t\t\tpath = 'M10 2c4.42 0 8 3.58 8 8s-3.58 8-8 8-8-3.58-8-8 3.58-8 8-8zm1.13 9.38l.35-6.46H8.52l.35 6.46h2.26zm-.09 3.36c.24-.23.37-.55.37-.96 0-.42-.12-.74-.36-.97s-.59-.35-1.06-.35-.82.12-1.07.35-.37.55-.37.97c0 .41.13.73.38.96.26.23.61.34 1.06.34s.8-.11 1.05-.34z';\n\t\t\t\tbreak;\n\t\t\tcase 'welcome-add-page':\n\t\t\t\tpath = 'M17 7V4h-2V2h-3v1H3v15h11V9h1V7h2zm-1-2v1h-2v2h-1V6h-2V5h2V3h1v2h2z';\n\t\t\t\tbreak;\n\t\t\tcase 'welcome-comments':\n\t\t\t\tpath = 'M5 2h10c1.1 0 2 .9 2 2v8c0 1.1-.9 2-2 2h-2l-5 5v-5H5c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2zm8.5 8.5L11 8l2.5-2.5-1-1L10 7 7.5 4.5l-1 1L9 8l-2.5 2.5 1 1L10 9l2.5 2.5z';\n\t\t\t\tbreak;\n\t\t\tcase 'welcome-learn-more':\n\t\t\t\tpath = 'M10 10L2.54 7.02 3 18H1l.48-11.41L0 6l10-4 10 4zm0-5c-.55 0-1 .22-1 .5s.45.5 1 .5 1-.22 1-.5-.45-.5-1-.5zm0 6l5.57-2.23c.71.94 1.2 2.07 1.36 3.3-.3-.04-.61-.07-.93-.07-2.55 0-4.78 1.37-6 3.41C8.78 13.37 6.55 12 4 12c-.32 0-.63.03-.93.07.16-1.23.65-2.36 1.36-3.3z';\n\t\t\t\tbreak;\n\t\t\tcase 'welcome-view-site':\n\t\t\t\tpath = 'M18 14V4c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h14c.55 0 1-.45 1-1zm-8-8c2.3 0 4.4 1.14 6 3-1.6 1.86-3.7 3-6 3s-4.4-1.14-6-3c1.6-1.86 3.7-3 6-3zm2 3c0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2 2-.9 2-2zm2 8h3v1H3v-1h3v-1h8v1z';\n\t\t\t\tbreak;\n\t\t\tcase 'welcome-widgets-menus':\n\t\t\t\tpath = 'M19 16V3c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v13c0 .55.45 1 1 1h15c.55 0 1-.45 1-1zM4 4h13v4H4V4zm1 1v2h3V5H5zm4 0v2h3V5H9zm4 0v2h3V5h-3zm-8.5 5c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5zM6 10h4v1H6v-1zm6 0h5v5h-5v-5zm-7.5 2c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5zM6 12h4v1H6v-1zm7 0v2h3v-2h-3zm-8.5 2c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5zM6 14h4v1H6v-1z';\n\t\t\t\tbreak;\n\t\t\tcase 'welcome-write-blog':\n\t\t\t\tpath = 'M16.89 1.2l1.41 1.41c.39.39.39 1.02 0 1.41L14 8.33V18H3V3h10.67l1.8-1.8c.4-.39 1.03-.4 1.42 0zm-5.66 8.48l5.37-5.36-1.42-1.42-5.36 5.37-.71 2.12z';\n\t\t\t\tbreak;\n\t\t\tcase 'wordpress-alt':\n\t\t\t\tpath = 'M20 10c0-5.51-4.49-10-10-10C4.48 0 0 4.49 0 10c0 5.52 4.48 10 10 10 5.51 0 10-4.48 10-10zM7.78 15.37L4.37 6.22c.55-.02 1.17-.08 1.17-.08.5-.06.44-1.13-.06-1.11 0 0-1.45.11-2.37.11-.18 0-.37 0-.58-.01C4.12 2.69 6.87 1.11 10 1.11c2.33 0 4.45.87 6.05 2.34-.68-.11-1.65.39-1.65 1.58 0 .74.45 1.36.9 2.1.35.61.55 1.36.55 2.46 0 1.49-1.4 5-1.4 5l-3.03-8.37c.54-.02.82-.17.82-.17.5-.05.44-1.25-.06-1.22 0 0-1.44.12-2.38.12-.87 0-2.33-.12-2.33-.12-.5-.03-.56 1.2-.06 1.22l.92.08 1.26 3.41zM17.41 10c.24-.64.74-1.87.43-4.25.7 1.29 1.05 2.71 1.05 4.25 0 3.29-1.73 6.24-4.4 7.78.97-2.59 1.94-5.2 2.92-7.78zM6.1 18.09C3.12 16.65 1.11 13.53 1.11 10c0-1.3.23-2.48.72-3.59C3.25 10.3 4.67 14.2 6.1 18.09zm4.03-6.63l2.58 6.98c-.86.29-1.76.45-2.71.45-.79 0-1.57-.11-2.29-.33.81-2.38 1.62-4.74 2.42-7.1z';\n\t\t\t\tbreak;\n\t\t\tcase 'wordpress':\n\t\t\t\tpath = 'M20 10c0-5.52-4.48-10-10-10S0 4.48 0 10s4.48 10 10 10 10-4.48 10-10zM10 1.01c4.97 0 8.99 4.02 8.99 8.99s-4.02 8.99-8.99 8.99S1.01 14.97 1.01 10 5.03 1.01 10 1.01zM8.01 14.82L4.96 6.61c.49-.03 1.05-.08 1.05-.08.43-.05.38-1.01-.06-.99 0 0-1.29.1-2.13.1-.15 0-.33 0-.52-.01 1.44-2.17 3.9-3.6 6.7-3.6 2.09 0 3.99.79 5.41 2.09-.6-.08-1.45.35-1.45 1.42 0 .66.38 1.22.79 1.88.31.54.5 1.22.5 2.21 0 1.34-1.27 4.48-1.27 4.48l-2.71-7.5c.48-.03.75-.16.75-.16.43-.05.38-1.1-.05-1.08 0 0-1.3.11-2.14.11-.78 0-2.11-.11-2.11-.11-.43-.02-.48 1.06-.05 1.08l.84.08 1.12 3.04zm6.02 2.15L16.64 10s.67-1.69.39-3.81c.63 1.14.94 2.42.94 3.81 0 2.96-1.56 5.58-3.94 6.97zM2.68 6.77L6.5 17.25c-2.67-1.3-4.47-4.08-4.47-7.25 0-1.16.2-2.23.65-3.23zm7.45 4.53l2.29 6.25c-.75.27-1.57.42-2.42.42-.72 0-1.41-.11-2.06-.3z';\n\t\t\t\tbreak;\n\t\t\tcase 'yes-alt':\n\t\t\t\tpath = 'M10 2c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm-.615 12.66h-1.34l-3.24-4.54 1.34-1.25 2.57 2.4 5.14-5.93 1.34.94-5.81 8.38z';\n\t\t\t\tbreak;\n\t\t\tcase 'yes':\n\t\t\t\tpath = 'M14.83 4.89l1.34.94-5.81 8.38H9.02L5.78 9.67l1.34-1.25 2.57 2.4z';\n\t\t\t\tbreak;\n\t\t}\n\n\t\tif ( ! path ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst iconClass = [ 'dashicon', 'dashicons-' + icon, className ].filter( Boolean ).join( ' ' );\n\n\t\treturn (\n\t\t\t<SVG\n\t\t\t\taria-hidden\n\t\t\t\trole=\"img\"\n\t\t\t\tfocusable=\"false\"\n\t\t\t\tclassName={ iconClass }\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\twidth={ size }\n\t\t\t\theight={ size }\n\t\t\t\tviewBox=\"0 0 20 20\"\n\t\t\t>\n\t\t\t\t<Path d={ path } />\n\t\t\t</SVG>\n\t\t);\n\t}\n}\n","/**\n * External dependencies\n */\nimport moment from 'moment';\nimport { DayPickerSingleDateController } from 'react-dates';\n\n/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\n\n/**\n * Module Constants\n */\nconst TIMEZONELESS_FORMAT = 'YYYY-MM-DDTHH:mm:ss';\n\nclass DatePicker extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.onChangeMoment = this.onChangeMoment.bind( this );\n\t}\n\n\tonChangeMoment( newDate ) {\n\t\tconst { currentDate, onChange } = this.props;\n\n\t\tconst momentDate = currentDate ? moment( currentDate ) : moment();\n\t\tconst momentTime = {\n\t\t\thours: momentDate.hours(),\n\t\t\tminutes: momentDate.minutes(),\n\t\t\tseconds: momentDate.seconds(),\n\t\t};\n\n\t\tonChange( newDate.set( momentTime ).format( TIMEZONELESS_FORMAT ) );\n\t}\n\n\trender() {\n\t\tconst { currentDate } = this.props;\n\n\t\tconst momentDate = currentDate ? moment( currentDate ) : moment();\n\n\t\treturn (\n\t\t\t<div className=\"components-datetime__date\">\n\t\t\t\t<DayPickerSingleDateController\n\t\t\t\t\tblock\n\t\t\t\t\tdate={ momentDate }\n\t\t\t\t\tdaySize={ 30 }\n\t\t\t\t\tfocused\n\t\t\t\t\thideKeyboardShortcutsPanel\n\t\t\t\t\t// This is a hack to force the calendar to update on month or year change\n\t\t\t\t\t// https://github.com/airbnb/react-dates/issues/240#issuecomment-361776665\n\t\t\t\t\tkey={ `datepicker-controller-${ momentDate.format( 'MM-YYYY' ) }` }\n\t\t\t\t\tnoBorder\n\t\t\t\t\tnumberOfMonths={ 1 }\n\t\t\t\t\tonDateChange={ this.onChangeMoment }\n\t\t\t\t\ttransitionDuration={ 0 }\n\t\t\t\t\tweekDayFormat=\"ddd\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nexport default DatePicker;\n","/**\n * External dependencies\n */\n// Needed to initialise the default datepicker styles.\n// See: https://github.com/airbnb/react-dates#initialize\nimport 'react-dates/initialize';\n\n/**\n * WordPress dependencies\n */\nimport { Component, Fragment } from '@wordpress/element';\nimport { __, _x } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport Button from '../button';\nimport { default as DatePicker } from './date';\nimport { default as TimePicker } from './time';\n\nexport { DatePicker, TimePicker };\n\nexport class DateTimePicker extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.state = { calendarHelpIsVisible: false };\n\n\t\tthis.onClickDescriptionToggle = this.onClickDescriptionToggle.bind( this );\n\t}\n\n\tonClickDescriptionToggle() {\n\t\tthis.setState( { calendarHelpIsVisible: ! this.state.calendarHelpIsVisible } );\n\t}\n\n\trender() {\n\t\tconst { currentDate, is12Hour, locale, onChange } = this.props;\n\n\t\treturn (\n\t\t\t<div className=\"components-datetime\">\n\t\t\t\t{ ! this.state.calendarHelpIsVisible && (\n\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t<TimePicker\n\t\t\t\t\t\t\tcurrentTime={ currentDate }\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\tis12Hour={ is12Hour }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<DatePicker\n\t\t\t\t\t\t\tcurrentDate={ currentDate }\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\tlocale={ locale }\n\t\t\t\t\t\t\tis12Hour={ is12Hour }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Fragment>\n\t\t\t\t) }\n\n\t\t\t\t{ this.state.calendarHelpIsVisible && (\n\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t<div className=\"components-datetime__calendar-help\">\n\t\t\t\t\t\t\t<h4>{ __( 'Click to Select' ) }</h4>\n\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t<li>{ __( 'Click the right or left arrows to select other months in the past or the future.' ) }</li>\n\t\t\t\t\t\t\t\t<li>{ __( 'Click the desired day to select it.' ) }</li>\n\t\t\t\t\t\t\t</ul>\n\n\t\t\t\t\t\t\t<h4>{ __( 'Navigating with a keyboard' ) }</h4>\n\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t\t<abbr aria-label={ _x( 'Enter', 'keyboard button' ) }>↵</abbr>\n\t\t\t\t\t\t\t\t\t{ ' ' /* JSX removes whitespace, but a space is required for screen readers. */ }\n\t\t\t\t\t\t\t\t\t<span>{ __( 'Select the date in focus.' ) }</span>\n\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t\t<abbr aria-label={ __( 'Left and Right Arrows' ) }>←/→</abbr>\n\t\t\t\t\t\t\t\t\t{ ' ' /* JSX removes whitespace, but a space is required for screen readers. */ }\n\t\t\t\t\t\t\t\t\t{ __( 'Move backward (left) or forward (right) by one day.' ) }\n\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t\t<abbr aria-label={ __( 'Up and Down Arrows' ) }>↑/↓</abbr>\n\t\t\t\t\t\t\t\t\t{ ' ' /* JSX removes whitespace, but a space is required for screen readers. */ }\n\t\t\t\t\t\t\t\t\t{ __( 'Move backward (up) or forward (down) by one week.' ) }\n\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t\t<abbr aria-label={ __( 'Page Up and Page Down' ) }>{ __( 'PgUp/PgDn' ) }</abbr>\n\t\t\t\t\t\t\t\t\t{ ' ' /* JSX removes whitespace, but a space is required for screen readers. */ }\n\t\t\t\t\t\t\t\t\t{ __( 'Move backward (PgUp) or forward (PgDn) by one month.' ) }\n\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t\t<abbr aria-label={ __( 'Home and End' ) }>{ __( 'Home/End' ) }</abbr>\n\t\t\t\t\t\t\t\t\t{ ' ' /* JSX removes whitespace, but a space is required for screen readers. */ }\n\t\t\t\t\t\t\t\t\t{ __( 'Go to the first (home) or last (end) day of a week.' ) }\n\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t</ul>\n\n\t\t\t\t\t\t\t<Button isSmall onClick={ this.onClickDescriptionToggle }>\n\t\t\t\t\t\t\t\t{ __( 'Close' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</Fragment>\n\t\t\t\t) }\n\n\t\t\t\t{ ! this.state.calendarHelpIsVisible && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName=\"components-datetime__date-help-button\"\n\t\t\t\t\t\tisLink\n\t\t\t\t\t\tonClick={ this.onClickDescriptionToggle }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Calendar Help' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t);\n\t}\n}\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { isInteger } from 'lodash';\nimport moment from 'moment';\n\n/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport Button from '../button';\n\n/**\n * Module Constants\n */\nconst TIMEZONELESS_FORMAT = 'YYYY-MM-DDTHH:mm:ss';\n\nclass TimePicker extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\t\tthis.state = {\n\t\t\tday: '',\n\t\t\tmonth: '',\n\t\t\tyear: '',\n\t\t\thours: '',\n\t\t\tminutes: '',\n\t\t\tam: true,\n\t\t\tdate: null,\n\t\t};\n\t\tthis.updateMonth = this.updateMonth.bind( this );\n\t\tthis.onChangeMonth = this.onChangeMonth.bind( this );\n\t\tthis.updateDay = this.updateDay.bind( this );\n\t\tthis.onChangeDay = this.onChangeDay.bind( this );\n\t\tthis.updateYear = this.updateYear.bind( this );\n\t\tthis.onChangeYear = this.onChangeYear.bind( this );\n\t\tthis.updateHours = this.updateHours.bind( this );\n\t\tthis.updateMinutes = this.updateMinutes.bind( this );\n\t\tthis.onChangeHours = this.onChangeHours.bind( this );\n\t\tthis.onChangeMinutes = this.onChangeMinutes.bind( this );\n\t}\n\n\tcomponentDidMount() {\n\t\tthis.syncState( this.props );\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\tconst { currentTime, is12Hour } = this.props;\n\t\tif (\n\t\t\tcurrentTime !== prevProps.currentTime ||\n\t\t\tis12Hour !== prevProps.is12Hour\n\t\t) {\n\t\t\tthis.syncState( this.props );\n\t\t}\n\t}\n\n\tgetMaxHours() {\n\t\treturn this.props.is12Hour ? 12 : 23;\n\t}\n\n\tgetMinHours() {\n\t\treturn this.props.is12Hour ? 1 : 0;\n\t}\n\n\tsyncState( { currentTime, is12Hour } ) {\n\t\tconst selected = currentTime ? moment( currentTime ) : moment();\n\t\tconst day = selected.format( 'DD' );\n\t\tconst month = selected.format( 'MM' );\n\t\tconst year = selected.format( 'YYYY' );\n\t\tconst minutes = selected.format( 'mm' );\n\t\tconst am = selected.format( 'A' );\n\t\tconst hours = selected.format( is12Hour ? 'hh' : 'HH' );\n\t\tconst date = currentTime ? moment( currentTime ) : moment();\n\t\tthis.setState( { day, month, year, minutes, hours, am, date } );\n\t}\n\n\tupdateHours() {\n\t\tconst { is12Hour, onChange } = this.props;\n\t\tconst { am, hours, date } = this.state;\n\t\tconst value = parseInt( hours, 10 );\n\t\tif (\n\t\t\t! isInteger( value ) ||\n\t\t\t( is12Hour && ( value < 1 || value > 12 ) ) ||\n\t\t\t( ! is12Hour && ( value < 0 || value > 23 ) )\n\t\t) {\n\t\t\tthis.syncState( this.props );\n\t\t\treturn;\n\t\t}\n\n\t\tconst newDate = is12Hour ?\n\t\t\tdate.clone().hours( am === 'AM' ? value % 12 : ( ( ( value % 12 ) + 12 ) % 24 ) ) :\n\t\t\tdate.clone().hours( value );\n\t\tthis.setState( { date: newDate } );\n\t\tonChange( newDate.format( TIMEZONELESS_FORMAT ) );\n\t}\n\n\tupdateMinutes() {\n\t\tconst { onChange } = this.props;\n\t\tconst { minutes, date } = this.state;\n\t\tconst value = parseInt( minutes, 10 );\n\t\tif ( ! isInteger( value ) || value < 0 || value > 59 ) {\n\t\t\tthis.syncState( this.props );\n\t\t\treturn;\n\t\t}\n\t\tconst newDate = date.clone().minutes( value );\n\t\tthis.setState( { date: newDate } );\n\t\tonChange( newDate.format( TIMEZONELESS_FORMAT ) );\n\t}\n\n\tupdateDay() {\n\t\tconst { onChange } = this.props;\n\t\tconst { day, date } = this.state;\n\t\tconst value = parseInt( day, 10 );\n\t\tif ( ! isInteger( value ) || value < 1 || value > 31 ) {\n\t\t\tthis.syncState( this.props );\n\t\t\treturn;\n\t\t}\n\t\tconst newDate = date.clone().date( value );\n\t\tthis.setState( { date: newDate } );\n\t\tonChange( newDate.format( TIMEZONELESS_FORMAT ) );\n\t}\n\n\tupdateMonth() {\n\t\tconst { onChange } = this.props;\n\t\tconst { month, date } = this.state;\n\t\tconst value = parseInt( month, 10 );\n\t\tif ( ! isInteger( value ) || value < 1 || value > 12 ) {\n\t\t\tthis.syncState( this.props );\n\t\t\treturn;\n\t\t}\n\t\tconst newDate = date.clone().month( value - 1 );\n\t\tthis.setState( { date: newDate } );\n\t\tonChange( newDate.format( TIMEZONELESS_FORMAT ) );\n\t}\n\n\tupdateYear() {\n\t\tconst { onChange } = this.props;\n\t\tconst { year, date } = this.state;\n\t\tconst value = parseInt( year, 10 );\n\t\tif ( ! isInteger( value ) || value < 1970 || value > 9999 ) {\n\t\t\tthis.syncState( this.props );\n\t\t\treturn;\n\t\t}\n\t\tconst newDate = date.clone().year( value );\n\t\tthis.setState( { date: newDate } );\n\t\tonChange( newDate.format( TIMEZONELESS_FORMAT ) );\n\t}\n\n\tupdateAmPm( value ) {\n\t\treturn () => {\n\t\t\tconst { onChange } = this.props;\n\t\t\tconst { am, date, hours } = this.state;\n\t\t\tif ( am === value ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tlet newDate;\n\t\t\tif ( value === 'PM' ) {\n\t\t\t\tnewDate = date.clone().hours( ( ( parseInt( hours, 10 ) % 12 ) + 12 ) % 24 );\n\t\t\t} else {\n\t\t\t\tnewDate = date.clone().hours( parseInt( hours, 10 ) % 12 );\n\t\t\t}\n\t\t\tthis.setState( { date: newDate } );\n\t\t\tonChange( newDate.format( TIMEZONELESS_FORMAT ) );\n\t\t};\n\t}\n\n\tonChangeDay( event ) {\n\t\tthis.setState( { day: event.target.value } );\n\t}\n\n\tonChangeMonth( event ) {\n\t\tthis.setState( { month: event.target.value } );\n\t}\n\n\tonChangeYear( event ) {\n\t\tthis.setState( { year: event.target.value } );\n\t}\n\n\tonChangeHours( event ) {\n\t\tthis.setState( { hours: event.target.value } );\n\t}\n\n\tonChangeMinutes( event ) {\n\t\tthis.setState( { minutes: event.target.value } );\n\t}\n\n\trender() {\n\t\tconst { is12Hour } = this.props;\n\t\tconst { day, month, year, minutes, hours, am } = this.state;\n\n\t\treturn (\n\t\t\t<div className={ classnames( 'components-datetime__time', {\n\t\t\t\t'is-12-hour': is12Hour,\n\t\t\t\t'is-24-hour': ! is12Hour,\n\t\t\t} ) }>\n\t\t\t\t<fieldset>\n\t\t\t\t\t<legend className=\"components-datetime__time-legend invisible\">{ __( 'Date' ) }</legend>\n\t\t\t\t\t<div className=\"components-datetime__time-wrapper\">\n\t\t\t\t\t\t<div className=\"components-datetime__time-field components-datetime__time-field-month\">\n\t\t\t\t\t\t\t<select\n\t\t\t\t\t\t\t\taria-label={ __( 'Month' ) }\n\t\t\t\t\t\t\t\tclassName=\"components-datetime__time-field-month-select\"\n\t\t\t\t\t\t\t\tvalue={ month }\n\t\t\t\t\t\t\t\tonChange={ this.onChangeMonth }\n\t\t\t\t\t\t\t\tonBlur={ this.updateMonth }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<option value=\"01\">{ __( 'January' ) }</option>\n\t\t\t\t\t\t\t\t<option value=\"02\">{ __( 'February' ) }</option>\n\t\t\t\t\t\t\t\t<option value=\"03\">{ __( 'March' ) }</option>\n\t\t\t\t\t\t\t\t<option value=\"04\">{ __( 'April' ) }</option>\n\t\t\t\t\t\t\t\t<option value=\"05\">{ __( 'May' ) }</option>\n\t\t\t\t\t\t\t\t<option value=\"06\">{ __( 'June' ) }</option>\n\t\t\t\t\t\t\t\t<option value=\"07\">{ __( 'July' ) }</option>\n\t\t\t\t\t\t\t\t<option value=\"08\">{ __( 'August' ) }</option>\n\t\t\t\t\t\t\t\t<option value=\"09\">{ __( 'September' ) }</option>\n\t\t\t\t\t\t\t\t<option value=\"10\">{ __( 'October' ) }</option>\n\t\t\t\t\t\t\t\t<option value=\"11\">{ __( 'November' ) }</option>\n\t\t\t\t\t\t\t\t<option value=\"12\">{ __( 'December' ) }</option>\n\t\t\t\t\t\t\t</select>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div className=\"components-datetime__time-field components-datetime__time-field-day\">\n\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\taria-label={ __( 'Day' ) }\n\t\t\t\t\t\t\t\tclassName=\"components-datetime__time-field-day-input\"\n\t\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\t\tvalue={ day }\n\t\t\t\t\t\t\t\tstep={ 1 }\n\t\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\t\tonChange={ this.onChangeDay }\n\t\t\t\t\t\t\t\tonBlur={ this.updateDay }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div className=\"components-datetime__time-field components-datetime__time-field-year\">\n\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\taria-label={ __( 'Year' ) }\n\t\t\t\t\t\t\t\tclassName=\"components-datetime__time-field-year-input\"\n\t\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\t\tstep={ 1 }\n\t\t\t\t\t\t\t\tvalue={ year }\n\t\t\t\t\t\t\t\tonChange={ this.onChangeYear }\n\t\t\t\t\t\t\t\tonBlur={ this.updateYear }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</fieldset>\n\n\t\t\t\t<fieldset>\n\t\t\t\t\t<legend className=\"components-datetime__time-legend invisible\">{ __( 'Time' ) }</legend>\n\t\t\t\t\t<div className=\"components-datetime__time-wrapper\">\n\t\t\t\t\t\t<div className=\"components-datetime__time-field components-datetime__time-field-time\">\n\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\taria-label={ __( 'Hours' ) }\n\t\t\t\t\t\t\t\tclassName=\"components-datetime__time-field-hours-input\"\n\t\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\t\tstep={ 1 }\n\t\t\t\t\t\t\t\tmin={ this.getMinHours() }\n\t\t\t\t\t\t\t\tmax={ this.getMaxHours() }\n\t\t\t\t\t\t\t\tvalue={ hours }\n\t\t\t\t\t\t\t\tonChange={ this.onChangeHours }\n\t\t\t\t\t\t\t\tonBlur={ this.updateHours }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\tclassName=\"components-datetime__time-separator\"\n\t\t\t\t\t\t\t\taria-hidden=\"true\">:</span>\n\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\taria-label={ __( 'Minutes' ) }\n\t\t\t\t\t\t\t\tclassName=\"components-datetime__time-field-minutes-input\"\n\t\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\t\t\tmax={ 59 }\n\t\t\t\t\t\t\t\tvalue={ minutes }\n\t\t\t\t\t\t\t\tonChange={ this.onChangeMinutes }\n\t\t\t\t\t\t\t\tonBlur={ this.updateMinutes }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{ is12Hour && (\n\t\t\t\t\t\t\t<div className=\"components-datetime__time-field components-datetime__time-field-am-pm\">\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\taria-pressed={ am === 'AM' }\n\t\t\t\t\t\t\t\t\tisDefault\n\t\t\t\t\t\t\t\t\tclassName=\"components-datetime__time-am-button\"\n\t\t\t\t\t\t\t\t\tisToggled={ am === 'AM' }\n\t\t\t\t\t\t\t\t\tonClick={ this.updateAmPm( 'AM' ) }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __( 'AM' ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\taria-pressed={ am === 'PM' }\n\t\t\t\t\t\t\t\t\tisDefault\n\t\t\t\t\t\t\t\t\tclassName=\"components-datetime__time-pm-button\"\n\t\t\t\t\t\t\t\t\tisToggled={ am === 'PM' }\n\t\t\t\t\t\t\t\t\tonClick={ this.updateAmPm( 'PM' ) }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __( 'PM' ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</div>\n\t\t\t\t</fieldset>\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nexport default TimePicker;\n","/**\n * External dependencies\n */\nimport { includes, debounce } from 'lodash';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { createContext, Component } from '@wordpress/element';\nimport { focus } from '@wordpress/dom';\n\nconst { Consumer, Provider } = createContext( false );\n\n/**\n * Names of control nodes which qualify for disabled behavior.\n *\n * See WHATWG HTML Standard: 4.10.18.5: \"Enabling and disabling form controls: the disabled attribute\".\n *\n * @link https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#enabling-and-disabling-form-controls:-the-disabled-attribute\n *\n * @type {string[]}\n */\nconst DISABLED_ELIGIBLE_NODE_NAMES = [\n\t'BUTTON',\n\t'FIELDSET',\n\t'INPUT',\n\t'OPTGROUP',\n\t'OPTION',\n\t'SELECT',\n\t'TEXTAREA',\n];\n\nclass Disabled extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.bindNode = this.bindNode.bind( this );\n\t\tthis.disable = this.disable.bind( this );\n\n\t\t// Debounce re-disable since disabling process itself will incur\n\t\t// additional mutations which should be ignored.\n\t\tthis.debouncedDisable = debounce( this.disable, { leading: true } );\n\t}\n\n\tcomponentDidMount() {\n\t\tthis.disable();\n\n\t\tthis.observer = new window.MutationObserver( this.debouncedDisable );\n\t\tthis.observer.observe( this.node, {\n\t\t\tchildList: true,\n\t\t\tattributes: true,\n\t\t\tsubtree: true,\n\t\t} );\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis.observer.disconnect();\n\t\tthis.debouncedDisable.cancel();\n\t}\n\n\tbindNode( node ) {\n\t\tthis.node = node;\n\t}\n\n\tdisable() {\n\t\tfocus.focusable.find( this.node ).forEach( ( focusable ) => {\n\t\t\tif ( includes( DISABLED_ELIGIBLE_NODE_NAMES, focusable.nodeName ) ) {\n\t\t\t\tfocusable.setAttribute( 'disabled', '' );\n\t\t\t}\n\n\t\t\tif ( focusable.hasAttribute( 'tabindex' ) ) {\n\t\t\t\tfocusable.removeAttribute( 'tabindex' );\n\t\t\t}\n\n\t\t\tif ( focusable.hasAttribute( 'contenteditable' ) ) {\n\t\t\t\tfocusable.setAttribute( 'contenteditable', 'false' );\n\t\t\t}\n\t\t} );\n\t}\n\n\trender() {\n\t\tconst { className, ...props } = this.props;\n\t\treturn (\n\t\t\t<Provider value={ true }>\n\t\t\t\t<div\n\t\t\t\t\tref={ this.bindNode }\n\t\t\t\t\tclassName={ classnames( className, 'components-disabled' ) }\n\t\t\t\t\t{ ...props }\n\t\t\t\t>\n\t\t\t\t\t{ this.props.children }\n\t\t\t\t</div>\n\t\t\t</Provider>\n\t\t);\n\t}\n}\n\nDisabled.Consumer = Consumer;\n\nexport default Disabled;\n","/**\n * External dependencies\n */\nimport { noop } from 'lodash';\n\n/**\n * WordPress Dependencies\n */\nimport { Component } from '@wordpress/element';\nimport { withSafeTimeout } from '@wordpress/compose';\n\nconst dragImageClass = 'components-draggable__invisible-drag-image';\nconst cloneWrapperClass = 'components-draggable__clone';\nconst cloneHeightTransformationBreakpoint = 700;\nconst clonePadding = 20;\n\nconst isChromeUA = ( ) => /Chrome/i.test( window.navigator.userAgent );\nconst documentHasIframes = ( ) => [ ...document.getElementById( 'editor' ).querySelectorAll( 'iframe' ) ].length > 0;\n\nclass Draggable extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.onDragStart = this.onDragStart.bind( this );\n\t\tthis.onDragOver = this.onDragOver.bind( this );\n\t\tthis.onDrop = this.onDrop.bind( this );\n\t\tthis.onDragEnd = this.onDragEnd.bind( this );\n\t\tthis.resetDragState = this.resetDragState.bind( this );\n\n\t\tthis.isChromeAndHasIframes = false;\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis.resetDragState();\n\t}\n\n\t/**\n\t * Removes the element clone, resets cursor, and removes drag listener.\n\t * @param {Object} event The non-custom DragEvent.\n\t */\n\tonDragEnd( event ) {\n\t\tconst { onDragEnd = noop } = this.props;\n\t\tif ( event ) {\n\t\t\tevent.preventDefault();\n\t\t}\n\n\t\tthis.resetDragState();\n\t\tthis.props.setTimeout( onDragEnd );\n\t}\n\n\t/*\n\t * Updates positioning of element clone based on mouse movement during dragging.\n\t * @param {Object} event The non-custom DragEvent.\n\t */\n\tonDragOver( event ) {\n\t\tthis.cloneWrapper.style.top =\n\t\t\t`${ parseInt( this.cloneWrapper.style.top, 10 ) + event.clientY - this.cursorTop }px`;\n\t\tthis.cloneWrapper.style.left =\n\t\t\t`${ parseInt( this.cloneWrapper.style.left, 10 ) + event.clientX - this.cursorLeft }px`;\n\n\t\t// Update cursor coordinates.\n\t\tthis.cursorLeft = event.clientX;\n\t\tthis.cursorTop = event.clientY;\n\t}\n\n\tonDrop( ) {\n\t\t// As per https://html.spec.whatwg.org/multipage/dnd.html#dndevents\n\t\t// the target node for the dragend is the source node that started the drag operation,\n\t\t// while drop event's target is the current target element.\n\t\tthis.onDragEnd( null );\n\t}\n\n\t/**\n\t * - Clones the current element and spawns clone over original element.\n\t * - Adds a fake temporary drag image to avoid browser defaults.\n\t * - Sets transfer data.\n\t * - Adds dragover listener.\n\t * @param {Object} event\t\t\t\t\tThe non-custom DragEvent.\n\t * @param {string} elementId\t\t\t\tThe HTML id of the element to be dragged.\n\t * @param {Object} transferData\t\t\tThe data to be set to the event's dataTransfer - to be accessible in any later drop logic.\n\t */\n\tonDragStart( event ) {\n\t\tconst { elementId, transferData, onDragStart = noop } = this.props;\n\t\tconst element = document.getElementById( elementId );\n\t\tif ( ! element ) {\n\t\t\tevent.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\t// Set a fake drag image to avoid browser defaults. Remove from DOM\n\t\t// right after. event.dataTransfer.setDragImage is not supported yet in\n\t\t// IE, we need to check for its existence first.\n\t\tif ( 'function' === typeof event.dataTransfer.setDragImage ) {\n\t\t\tconst dragImage = document.createElement( 'div' );\n\t\t\tdragImage.id = `drag-image-${ elementId }`;\n\t\t\tdragImage.classList.add( dragImageClass );\n\t\t\tdocument.body.appendChild( dragImage );\n\t\t\tevent.dataTransfer.setDragImage( dragImage, 0, 0 );\n\t\t\tthis.props.setTimeout( () => {\n\t\t\t\tdocument.body.removeChild( dragImage );\n\t\t\t} );\n\t\t}\n\n\t\tevent.dataTransfer.setData( 'text', JSON.stringify( transferData ) );\n\n\t\t// Prepare element clone and append to element wrapper.\n\t\tconst elementRect = element.getBoundingClientRect();\n\t\tconst elementWrapper = element.parentNode;\n\t\tconst elementTopOffset = parseInt( elementRect.top, 10 );\n\t\tconst elementLeftOffset = parseInt( elementRect.left, 10 );\n\t\tconst clone = element.cloneNode( true );\n\t\tclone.id = `clone-${ elementId }`;\n\t\tthis.cloneWrapper = document.createElement( 'div' );\n\t\tthis.cloneWrapper.classList.add( cloneWrapperClass );\n\t\tthis.cloneWrapper.style.width = `${ elementRect.width + ( clonePadding * 2 ) }px`;\n\n\t\tif ( elementRect.height > cloneHeightTransformationBreakpoint ) {\n\t\t\t// Scale down clone if original element is larger than 700px.\n\t\t\tthis.cloneWrapper.style.transform = 'scale(0.5)';\n\t\t\tthis.cloneWrapper.style.transformOrigin = 'top left';\n\t\t\t// Position clone near the cursor.\n\t\t\tthis.cloneWrapper.style.top = `${ event.clientY - 100 }px`;\n\t\t\tthis.cloneWrapper.style.left = `${ event.clientX }px`;\n\t\t} else {\n\t\t\t// Position clone right over the original element (20px padding).\n\t\t\tthis.cloneWrapper.style.top = `${ elementTopOffset - clonePadding }px`;\n\t\t\tthis.cloneWrapper.style.left = `${ elementLeftOffset - clonePadding }px`;\n\t\t}\n\n\t\t// Hack: Remove iFrames as it's causing the embeds drag clone to freeze\n\t\t[ ...clone.querySelectorAll( 'iframe' ) ].forEach( ( child ) => child.parentNode.removeChild( child ) );\n\n\t\tthis.cloneWrapper.appendChild( clone );\n\t\telementWrapper.appendChild( this.cloneWrapper );\n\n\t\t// Mark the current cursor coordinates.\n\t\tthis.cursorLeft = event.clientX;\n\t\tthis.cursorTop = event.clientY;\n\t\t// Update cursor to 'grabbing', document wide.\n\t\tdocument.body.classList.add( 'is-dragging-components-draggable' );\n\t\tdocument.addEventListener( 'dragover', this.onDragOver );\n\n\t\t// Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=737691#c8\n\t\t// dragend event won't be dispatched in the chrome browser\n\t\t// when iframes are affected by the drag operation. So, in that case,\n\t\t// we use the drop event to wrap up the dragging operation.\n\t\t// This way the hack is contained to a specific use case and the external API\n\t\t// still relies mostly on the dragend event.\n\t\tif ( isChromeUA() && documentHasIframes() ) {\n\t\t\tthis.isChromeAndHasIframes = true;\n\t\t\tdocument.addEventListener( 'drop', this.onDrop );\n\t\t}\n\n\t\tthis.props.setTimeout( onDragStart );\n\t}\n\n\t/**\n\t * Cleans up drag state when drag has completed, or component unmounts\n\t * while dragging.\n\t */\n\tresetDragState() {\n\t\t// Remove drag clone\n\t\tdocument.removeEventListener( 'dragover', this.onDragOver );\n\t\tif ( this.cloneWrapper && this.cloneWrapper.parentNode ) {\n\t\t\tthis.cloneWrapper.parentNode.removeChild( this.cloneWrapper );\n\t\t\tthis.cloneWrapper = null;\n\t\t}\n\n\t\tif ( this.isChromeAndHasIframes ) {\n\t\t\tthis.isChromeAndHasIframes = false;\n\t\t\tdocument.removeEventListener( 'drop', this.onDrop );\n\t\t}\n\n\t\t// Reset cursor.\n\t\tdocument.body.classList.remove( 'is-dragging-components-draggable' );\n\t}\n\n\trender() {\n\t\tconst { children } = this.props;\n\n\t\treturn children( {\n\t\t\tonDraggableStart: this.onDragStart,\n\t\t\tonDraggableEnd: this.onDragEnd,\n\t\t} );\n\t}\n}\n\nexport default withSafeTimeout( Draggable );\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Component, createRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport Dashicon from '../dashicon';\nimport { DropZoneConsumer } from './provider';\n\nconst DropZone = ( props ) => (\n\t<DropZoneConsumer>\n\t\t{ ( { addDropZone, removeDropZone } ) => (\n\t\t\t<DropZoneComponent\n\t\t\t\taddDropZone={ addDropZone }\n\t\t\t\tremoveDropZone={ removeDropZone }\n\t\t\t\t{ ...props }\n\t\t\t/>\n\t\t) }\n\t</DropZoneConsumer>\n);\n\nclass DropZoneComponent extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.dropZoneElement = createRef();\n\t\tthis.dropZone = {\n\t\t\telement: null,\n\t\t\tonDrop: this.props.onDrop,\n\t\t\tonFilesDrop: this.props.onFilesDrop,\n\t\t\tonHTMLDrop: this.props.onHTMLDrop,\n\t\t\tsetState: this.setState.bind( this ),\n\t\t};\n\t\tthis.state = {\n\t\t\tisDraggingOverDocument: false,\n\t\t\tisDraggingOverElement: false,\n\t\t\tposition: null,\n\t\t\ttype: null,\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\t// Set element after the component has a node assigned in the DOM\n\t\tthis.dropZone.element = this.dropZoneElement.current;\n\t\tthis.props.addDropZone( this.dropZone );\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis.props.removeDropZone( this.dropZone );\n\t}\n\n\trender() {\n\t\tconst { className, label } = this.props;\n\t\tconst { isDraggingOverDocument, isDraggingOverElement, position, type } = this.state;\n\t\tconst classes = classnames( 'components-drop-zone', className, {\n\t\t\t'is-active': isDraggingOverDocument || isDraggingOverElement,\n\t\t\t'is-dragging-over-document': isDraggingOverDocument,\n\t\t\t'is-dragging-over-element': isDraggingOverElement,\n\t\t\t'is-close-to-top': position && position.y === 'top',\n\t\t\t'is-close-to-bottom': position && position.y === 'bottom',\n\t\t\t'is-close-to-left': position && position.x === 'left',\n\t\t\t'is-close-to-right': position && position.x === 'right',\n\t\t\t[ `is-dragging-${ type }` ]: !! type,\n\t\t} );\n\n\t\treturn (\n\t\t\t<div ref={ this.dropZoneElement } className={ classes }>\n\t\t\t\t<div className=\"components-drop-zone__content\">\n\t\t\t\t\t{ [\n\t\t\t\t\t\t<Dashicon\n\t\t\t\t\t\t\tkey=\"icon\"\n\t\t\t\t\t\t\ticon=\"upload\"\n\t\t\t\t\t\t\tsize=\"40\"\n\t\t\t\t\t\t\tclassName=\"components-drop-zone__content-icon\"\n\t\t\t\t\t\t/>,\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tkey=\"text\"\n\t\t\t\t\t\t\tclassName=\"components-drop-zone__content-text\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ label ? label : __( 'Drop files to upload' ) }\n\t\t\t\t\t\t</span>,\n\t\t\t\t\t] }\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nexport default DropZone;\n","/**\n * External dependencies\n */\nimport { isEqual, find, some, filter, throttle, includes } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { Component, createContext, findDOMNode } from '@wordpress/element';\nimport isShallowEqual from '@wordpress/is-shallow-equal';\n\nconst { Provider, Consumer } = createContext( {\n\taddDropZone: () => {},\n\tremoveDropZone: () => {},\n} );\n\nconst getDragEventType = ( { dataTransfer } ) => {\n\tif ( dataTransfer ) {\n\t\t// Use lodash `includes` here as in the Edge browser `types` is implemented\n\t\t// as a DomStringList, whereas in other browsers it's an array. `includes`\n\t\t// happily works with both types.\n\t\tif ( includes( dataTransfer.types, 'Files' ) ) {\n\t\t\treturn 'file';\n\t\t}\n\n\t\tif ( includes( dataTransfer.types, 'text/html' ) ) {\n\t\t\treturn 'html';\n\t\t}\n\t}\n\n\treturn 'default';\n};\n\nconst isTypeSupportedByDropZone = ( type, dropZone ) => {\n\treturn ( type === 'file' && dropZone.onFilesDrop ) ||\n\t\t( type === 'html' && dropZone.onHTMLDrop ) ||\n\t\t( type === 'default' && dropZone.onDrop );\n};\n\nconst isWithinElementBounds = ( element, x, y ) => {\n\tconst rect = element.getBoundingClientRect();\n\t/// make sure the rect is a valid rect\n\tif ( rect.bottom === rect.top || rect.left === rect.right ) {\n\t\treturn false;\n\t}\n\n\treturn x >= rect.left && x <= rect.right && y >= rect.top && y <= rect.bottom;\n};\n\nclass DropZoneProvider extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\t// Event listeners\n\t\tthis.onDragOver = this.onDragOver.bind( this );\n\t\tthis.onDrop = this.onDrop.bind( this );\n\t\t// Context methods so this component can receive data from consumers\n\t\tthis.addDropZone = this.addDropZone.bind( this );\n\t\tthis.removeDropZone = this.removeDropZone.bind( this );\n\t\t// Utility methods\n\t\tthis.resetDragState = this.resetDragState.bind( this );\n\t\tthis.toggleDraggingOverDocument = throttle( this.toggleDraggingOverDocument.bind( this ), 200 );\n\n\t\tthis.dropZones = [];\n\t\tthis.dropZoneCallbacks = {\n\t\t\taddDropZone: this.addDropZone,\n\t\t\tremoveDropZone: this.removeDropZone,\n\t\t};\n\t\tthis.state = {\n\t\t\thoveredDropZone: -1,\n\t\t\tisDraggingOverDocument: false,\n\t\t\tisDraggingOverElement: false,\n\t\t\tposition: null,\n\t\t\ttype: null,\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\twindow.addEventListener( 'dragover', this.onDragOver );\n\t\twindow.addEventListener( 'drop', this.onDrop );\n\t\twindow.addEventListener( 'mouseup', this.resetDragState );\n\n\t\t// Disable reason: Can't use a ref since this component just renders its children\n\t\t// eslint-disable-next-line react/no-find-dom-node\n\t\tthis.container = findDOMNode( this );\n\t}\n\n\tcomponentWillUnmount() {\n\t\twindow.removeEventListener( 'dragover', this.onDragOver );\n\t\twindow.removeEventListener( 'drop', this.onDrop );\n\t\twindow.removeEventListener( 'mouseup', this.resetDragState );\n\t}\n\n\taddDropZone( dropZone ) {\n\t\tthis.dropZones.push( dropZone );\n\t}\n\n\tremoveDropZone( dropZone ) {\n\t\tthis.dropZones = filter( this.dropZones, ( dz ) => dz !== dropZone );\n\t}\n\n\tresetDragState() {\n\t\t// Avoid throttled drag over handler calls\n\t\tthis.toggleDraggingOverDocument.cancel();\n\n\t\tconst { isDraggingOverDocument, hoveredDropZone } = this.state;\n\t\tif ( ! isDraggingOverDocument && hoveredDropZone === -1 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.setState( {\n\t\t\thoveredDropZone: -1,\n\t\t\tisDraggingOverDocument: false,\n\t\t\tisDraggingOverElement: false,\n\t\t\tposition: null,\n\t\t\ttype: null,\n\t\t} );\n\n\t\tthis.dropZones.forEach( ( dropZone ) => dropZone.setState( {\n\t\t\tisDraggingOverDocument: false,\n\t\t\tisDraggingOverElement: false,\n\t\t\tposition: null,\n\t\t\ttype: null,\n\t\t} ) );\n\t}\n\n\ttoggleDraggingOverDocument( event, dragEventType ) {\n\t\t// In some contexts, it may be necessary to capture and redirect the\n\t\t// drag event (e.g. atop an `iframe`). To accommodate this, you can\n\t\t// create an instance of CustomEvent with the original event specified\n\t\t// as the `detail` property.\n\t\t//\n\t\t// See: https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Creating_and_triggering_events\n\t\tconst detail = window.CustomEvent && event instanceof window.CustomEvent ? event.detail : event;\n\n\t\t// Index of hovered dropzone.\n\t\tconst hoveredDropZones = filter( this.dropZones, ( dropZone ) =>\n\t\t\tisTypeSupportedByDropZone( dragEventType, dropZone ) &&\n\t\t\tisWithinElementBounds( dropZone.element, detail.clientX, detail.clientY )\n\t\t);\n\n\t\t// Find the leaf dropzone not containing another dropzone\n\t\tconst hoveredDropZone = find( hoveredDropZones, ( zone ) => (\n\t\t\t! some( hoveredDropZones, ( subZone ) => subZone !== zone && zone.element.parentElement.contains( subZone.element ) )\n\t\t) );\n\n\t\tconst hoveredDropZoneIndex = this.dropZones.indexOf( hoveredDropZone );\n\n\t\tlet position = null;\n\n\t\tif ( hoveredDropZone ) {\n\t\t\tconst rect = hoveredDropZone.element.getBoundingClientRect();\n\n\t\t\tposition = {\n\t\t\t\tx: detail.clientX - rect.left < rect.right - detail.clientX ? 'left' : 'right',\n\t\t\t\ty: detail.clientY - rect.top < rect.bottom - detail.clientY ? 'top' : 'bottom',\n\t\t\t};\n\t\t}\n\n\t\t// Optimisation: Only update the changed dropzones\n\t\tlet toUpdate = [];\n\n\t\tif ( ! this.state.isDraggingOverDocument ) {\n\t\t\ttoUpdate = this.dropZones;\n\t\t} else if ( hoveredDropZoneIndex !== this.state.hoveredDropZone ) {\n\t\t\tif ( this.state.hoveredDropZone !== -1 ) {\n\t\t\t\ttoUpdate.push( this.dropZones[ this.state.hoveredDropZone ] );\n\t\t\t}\n\t\t\tif ( hoveredDropZone ) {\n\t\t\t\ttoUpdate.push( hoveredDropZone );\n\t\t\t}\n\t\t} else if (\n\t\t\thoveredDropZone &&\n\t\t\thoveredDropZoneIndex === this.state.hoveredDropZone &&\n\t\t\t! isEqual( position, this.state.position )\n\t\t) {\n\t\t\ttoUpdate.push( hoveredDropZone );\n\t\t}\n\n\t\t// Notifying the dropzones\n\t\ttoUpdate.map( ( dropZone ) => {\n\t\t\tconst index = this.dropZones.indexOf( dropZone );\n\t\t\tconst isDraggingOverDropZone = index === hoveredDropZoneIndex;\n\t\t\tdropZone.setState( {\n\t\t\t\tisDraggingOverDocument: isTypeSupportedByDropZone( dragEventType, dropZone ),\n\t\t\t\tisDraggingOverElement: isDraggingOverDropZone,\n\t\t\t\tposition: isDraggingOverDropZone ? position : null,\n\t\t\t\ttype: isDraggingOverDropZone ? dragEventType : null,\n\t\t\t} );\n\t\t} );\n\n\t\tconst newState = {\n\t\t\tisDraggingOverDocument: true,\n\t\t\thoveredDropZone: hoveredDropZoneIndex,\n\t\t\tposition,\n\t\t};\n\t\tif ( ! isShallowEqual( newState, this.state ) ) {\n\t\t\tthis.setState( newState );\n\t\t}\n\t}\n\n\tonDragOver( event ) {\n\t\tthis.toggleDraggingOverDocument( event, getDragEventType( event ) );\n\t\tevent.preventDefault();\n\t}\n\n\tonDrop( event ) {\n\t\t// This seemingly useless line has been shown to resolve a Safari issue\n\t\t// where files dragged directly from the dock are not recognized\n\t\tevent.dataTransfer && event.dataTransfer.files.length; // eslint-disable-line no-unused-expressions\n\n\t\tconst { position, hoveredDropZone } = this.state;\n\t\tconst dragEventType = getDragEventType( event );\n\t\tconst dropZone = this.dropZones[ hoveredDropZone ];\n\t\tconst isValidDropzone = !! dropZone && this.container.contains( event.target );\n\t\tthis.resetDragState();\n\n\t\tif ( isValidDropzone ) {\n\t\t\tswitch ( dragEventType ) {\n\t\t\t\tcase 'file':\n\t\t\t\t\tdropZone.onFilesDrop( [ ...event.dataTransfer.files ], position );\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'html':\n\t\t\t\t\tdropZone.onHTMLDrop( event.dataTransfer.getData( 'text/html' ), position );\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'default':\n\t\t\t\t\tdropZone.onDrop( event, position );\n\t\t\t}\n\t\t}\n\n\t\tevent.stopPropagation();\n\t\tevent.preventDefault();\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Provider value={ this.dropZoneCallbacks }>\n\t\t\t\t{ this.props.children }\n\t\t\t</Provider>\n\t\t);\n\t}\n}\n\nexport default DropZoneProvider;\nexport { Consumer as DropZoneConsumer };\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { flatMap } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { DOWN } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport IconButton from '../icon-button';\nimport Dropdown from '../dropdown';\nimport { NavigableMenu } from '../navigable-container';\n\nfunction DropdownMenu( {\n\ticon = 'menu',\n\tlabel,\n\tmenuLabel,\n\tcontrols,\n\tclassName,\n} ) {\n\tif ( ! controls || ! controls.length ) {\n\t\treturn null;\n\t}\n\n\t// Normalize controls to nested array of objects (sets of controls)\n\tlet controlSets = controls;\n\tif ( ! Array.isArray( controlSets[ 0 ] ) ) {\n\t\tcontrolSets = [ controlSets ];\n\t}\n\n\treturn (\n\t\t<Dropdown\n\t\t\tclassName={ classnames( 'components-dropdown-menu', className ) }\n\t\t\tcontentClassName=\"components-dropdown-menu__popover\"\n\t\t\trenderToggle={ ( { isOpen, onToggle } ) => {\n\t\t\t\tconst openOnArrowDown = ( event ) => {\n\t\t\t\t\tif ( ! isOpen && event.keyCode === DOWN ) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\tonToggle();\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\treturn (\n\t\t\t\t\t<IconButton\n\t\t\t\t\t\tclassName=\"components-dropdown-menu__toggle\"\n\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\tonKeyDown={ openOnArrowDown }\n\t\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\ttooltip={ label }\n\t\t\t\t\t>\n\t\t\t\t\t\t<span className=\"components-dropdown-menu__indicator\" />\n\t\t\t\t\t</IconButton>\n\t\t\t\t);\n\t\t\t} }\n\t\t\trenderContent={ ( { onClose } ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<NavigableMenu\n\t\t\t\t\t\tclassName=\"components-dropdown-menu__menu\"\n\t\t\t\t\t\trole=\"menu\"\n\t\t\t\t\t\taria-label={ menuLabel }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ flatMap( controlSets, ( controlSet, indexOfSet ) => (\n\t\t\t\t\t\t\tcontrolSet.map( ( control, indexOfControl ) => (\n\t\t\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\t\t\tkey={ [ indexOfSet, indexOfControl ].join() }\n\t\t\t\t\t\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\tif ( control.onClick ) {\n\t\t\t\t\t\t\t\t\t\t\tcontrol.onClick();\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t\t\t'components-dropdown-menu__menu-item',\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t'has-separator': indexOfSet > 0 && indexOfControl === 0,\n\t\t\t\t\t\t\t\t\t\t\t'is-active': control.isActive,\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\ticon={ control.icon }\n\t\t\t\t\t\t\t\t\trole=\"menuitem\"\n\t\t\t\t\t\t\t\t\tdisabled={ control.isDisabled }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ control.title }\n\t\t\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t\t\t) )\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t</NavigableMenu>\n\t\t\t\t);\n\t\t\t} }\n\t\t/>\n\t);\n}\n\nexport default DropdownMenu;\n","/**\n * WordPress dependencies\n */\nimport { Component, createRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport Popover from '../popover';\n\nclass Dropdown extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\t\tthis.toggle = this.toggle.bind( this );\n\t\tthis.close = this.close.bind( this );\n\t\tthis.clickOutside = this.clickOutside.bind( this );\n\t\tthis.bindContainer = this.bindContainer.bind( this );\n\t\tthis.refresh = this.refresh.bind( this );\n\t\tthis.popoverRef = createRef();\n\t\tthis.state = {\n\t\t\tisOpen: false,\n\t\t};\n\t}\n\n\tcomponentWillUnmount() {\n\t\tconst { isOpen } = this.state;\n\t\tconst { onToggle } = this.props;\n\t\tif ( isOpen && onToggle ) {\n\t\t\tonToggle( false );\n\t\t}\n\t}\n\n\tcomponentDidUpdate( prevProps, prevState ) {\n\t\tconst { isOpen } = this.state;\n\t\tconst { onToggle } = this.props;\n\t\tif ( prevState.isOpen !== isOpen && onToggle ) {\n\t\t\tonToggle( isOpen );\n\t\t}\n\t}\n\n\tbindContainer( ref ) {\n\t\tthis.container = ref;\n\t}\n\n\t/**\n\t * When contents change height due to user interaction,\n\t * `refresh` can be called to re-render Popover with correct\n\t * attributes which allow scroll, if need be.\n\t */\n\trefresh() {\n\t\tif ( this.popoverRef.current ) {\n\t\t\tthis.popoverRef.current.refresh();\n\t\t}\n\t}\n\n\ttoggle() {\n\t\tthis.setState( ( state ) => ( {\n\t\t\tisOpen: ! state.isOpen,\n\t\t} ) );\n\t}\n\n\tclickOutside( event ) {\n\t\tif ( ! this.container.contains( event.target ) ) {\n\t\t\tthis.close();\n\t\t}\n\t}\n\n\tclose() {\n\t\tthis.setState( { isOpen: false } );\n\t}\n\n\trender() {\n\t\tconst { isOpen } = this.state;\n\t\tconst {\n\t\t\trenderContent,\n\t\t\trenderToggle,\n\t\t\tposition = 'bottom',\n\t\t\tclassName,\n\t\t\tcontentClassName,\n\t\t\texpandOnMobile,\n\t\t\theaderTitle,\n\t\t} = this.props;\n\n\t\tconst args = { isOpen, onToggle: this.toggle, onClose: this.close };\n\n\t\treturn (\n\t\t\t<div className={ className } ref={ this.bindContainer }>\n\t\t\t\t{ renderToggle( args ) }\n\t\t\t\t{ isOpen && (\n\t\t\t\t\t<Popover\n\t\t\t\t\t\tclassName={ contentClassName }\n\t\t\t\t\t\tref={ this.popoverRef }\n\t\t\t\t\t\tposition={ position }\n\t\t\t\t\t\tonClose={ this.close }\n\t\t\t\t\t\tonClickOutside={ this.clickOutside }\n\t\t\t\t\t\texpandOnMobile={ expandOnMobile }\n\t\t\t\t\t\theaderTitle={ headerTitle }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ renderContent( args ) }\n\t\t\t\t\t</Popover>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nexport default Dropdown;\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { compact, uniq } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { forwardRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport Dashicon from '../dashicon';\n\nexport function ExternalLink( { href, children, className, rel = '', ...additionalProps }, ref ) {\n\trel = uniq( compact( [\n\t\t...rel.split( ' ' ),\n\t\t'external',\n\t\t'noreferrer',\n\t\t'noopener',\n\t] ) ).join( ' ' );\n\tconst classes = classnames( 'components-external-link', className );\n\treturn (\n\t\t<a { ...additionalProps } className={ classes } href={ href } target=\"_blank\" rel={ rel } ref={ ref }>\n\t\t\t{ children }\n\t\t\t<span className=\"screen-reader-text\">\n\t\t\t\t{\n\t\t\t\t\t/* translators: accessibility text */\n\t\t\t\t\t__( '(opens in a new tab)' )\n\t\t\t\t}\n\t\t\t</span>\n\t\t\t<Dashicon icon=\"external\" className=\"components-external-link__icon\" />\n\t\t</a>\n\t);\n}\n\nexport default forwardRef( ExternalLink );\n","/**\n * External dependencies\n */\nimport { omit } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { Component, createRef } from '@wordpress/element';\nimport { withGlobalEvents } from '@wordpress/compose';\n\n/**\n * Browser dependencies\n */\n\nconst { FocusEvent } = window;\n\nclass FocusableIframe extends Component {\n\tconstructor( props ) {\n\t\tsuper( ...arguments );\n\n\t\tthis.checkFocus = this.checkFocus.bind( this );\n\n\t\tthis.node = props.iframeRef || createRef();\n\t}\n\n\t/**\n\t * Checks whether the iframe is the activeElement, inferring that it has\n\t * then received focus, and calls the `onFocus` prop callback.\n\t */\n\tcheckFocus() {\n\t\tconst iframe = this.node.current;\n\n\t\tif ( document.activeElement !== iframe ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst focusEvent = new FocusEvent( 'focus', { bubbles: true } );\n\t\tiframe.dispatchEvent( focusEvent );\n\n\t\tconst { onFocus } = this.props;\n\t\tif ( onFocus ) {\n\t\t\tonFocus( focusEvent );\n\t\t}\n\t}\n\n\trender() {\n\t\t// Disable reason: The rendered iframe is a pass-through component,\n\t\t// assigning props inherited from the rendering parent. It's the\n\t\t// responsibility of the parent to assign a title.\n\n\t\t/* eslint-disable jsx-a11y/iframe-has-title */\n\t\treturn (\n\t\t\t<iframe\n\t\t\t\tref={ this.node }\n\t\t\t\t{ ...omit( this.props, [ 'iframeRef', 'onFocus' ] ) }\n\t\t\t/>\n\t\t);\n\t\t/* eslint-enable jsx-a11y/iframe-has-title */\n\t}\n}\n\nexport default withGlobalEvents( {\n\tblur: 'checkFocus',\n} )( FocusableIframe );\n","/**\n * External dependencies\n */\nimport { map } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport { withInstanceId } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport Dashicon from '../dashicon';\nimport BaseControl from '../base-control';\nimport Button from '../button';\nimport Dropdown from '../dropdown';\nimport RangeControl from '../range-control';\nimport { NavigableMenu } from '../navigable-container';\n\nfunction FontSizePicker( {\n\tfallbackFontSize,\n\tfontSizes = [],\n\tdisableCustomFontSizes = false,\n\tonChange,\n\tvalue,\n\twithSlider,\n} ) {\n\tconst onChangeValue = ( event ) => {\n\t\tconst newValue = event.target.value;\n\t\tif ( newValue === '' ) {\n\t\t\tonChange( undefined );\n\t\t\treturn;\n\t\t}\n\t\tonChange( Number( newValue ) );\n\t};\n\n\tconst currentFont = fontSizes.find( ( font ) => font.size === value );\n\n\treturn (\n\t\t<BaseControl label={ __( 'Font Size' ) }>\n\t\t\t<div className=\"components-font-size-picker__buttons\">\n\t\t\t\t<Dropdown\n\t\t\t\t\tclassName=\"components-font-size-picker__dropdown\"\n\t\t\t\t\tcontentClassName=\"components-font-size-picker__dropdown-content\"\n\t\t\t\t\tposition=\"bottom\"\n\t\t\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName=\"components-font-size-picker__selector\"\n\t\t\t\t\t\t\tisLarge\n\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t\taria-label={ __( 'Custom font size' ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ ( currentFont && currentFont.name ) || ( ! value && _x( 'Normal', 'font size name' ) ) || _x( 'Custom', 'font size name' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t) }\n\t\t\t\t\trenderContent={ () => (\n\t\t\t\t\t\t<NavigableMenu>\n\t\t\t\t\t\t\t{ map( fontSizes, ( { name, size, slug } ) => (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tkey={ slug }\n\t\t\t\t\t\t\t\t\tonClick={ () => onChange( slug === 'normal' ? undefined : size ) }\n\t\t\t\t\t\t\t\t\tclassName={ 'is-font-' + slug }\n\t\t\t\t\t\t\t\t\trole=\"menuitem\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ ( value === size || ( ! value && slug === 'normal' ) ) &&\t<Dashicon icon=\"saved\" /> }\n\t\t\t\t\t\t\t\t\t<span className=\"components-font-size-picker__dropdown-text-size\" style={ { fontSize: size } }>\n\t\t\t\t\t\t\t\t\t\t{ name }\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t</NavigableMenu>\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t\t{ ( ! withSlider && ! disableCustomFontSizes ) &&\n\t\t\t\t\t<input\n\t\t\t\t\t\tclassName=\"components-range-control__number\"\n\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\tonChange={ onChangeValue }\n\t\t\t\t\t\taria-label={ __( 'Custom font size' ) }\n\t\t\t\t\t\tvalue={ value || '' }\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t\t<Button\n\t\t\t\t\tclassName=\"components-color-palette__clear\"\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tdisabled={ value === undefined }\n\t\t\t\t\tonClick={ () => onChange( undefined ) }\n\t\t\t\t\tisSmall\n\t\t\t\t\tisDefault\n\t\t\t\t\taria-label={ __( 'Reset font size' ) }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Reset' ) }\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t\t{ withSlider &&\n\t\t\t\t<RangeControl\n\t\t\t\t\tclassName=\"components-font-size-picker__custom-input\"\n\t\t\t\t\tlabel={ __( 'Custom Size' ) }\n\t\t\t\t\tvalue={ value || '' }\n\t\t\t\t\tinitialPosition={ fallbackFontSize }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tmin={ 12 }\n\t\t\t\t\tmax={ 100 }\n\t\t\t\t\tbeforeIcon=\"editor-textcolor\"\n\t\t\t\t\tafterIcon=\"editor-textcolor\"\n\t\t\t\t/>\n\t\t\t}\n\t\t</BaseControl>\n\t);\n}\n\nexport default withInstanceId( FontSizePicker );\n","/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport IconButton from '../icon-button';\n\nclass FormFileUpload extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\t\tthis.openFileDialog = this.openFileDialog.bind( this );\n\t\tthis.bindInput = this.bindInput.bind( this );\n\t}\n\n\topenFileDialog() {\n\t\tthis.input.click();\n\t}\n\n\tbindInput( ref ) {\n\t\tthis.input = ref;\n\t}\n\n\trender() {\n\t\tconst { children, multiple = false, accept, onChange, icon = 'upload', ...props } = this.props;\n\n\t\treturn (\n\t\t\t<div className=\"components-form-file-upload\">\n\t\t\t\t<IconButton\n\t\t\t\t\ticon={ icon }\n\t\t\t\t\tonClick={ this.openFileDialog }\n\t\t\t\t\t{ ...props }\n\t\t\t\t>\n\t\t\t\t\t{ children }\n\t\t\t\t</IconButton>\n\t\t\t\t<input\n\t\t\t\t\ttype=\"file\"\n\t\t\t\t\tref={ this.bindInput }\n\t\t\t\t\tmultiple={ multiple }\n\t\t\t\t\tstyle={ { display: 'none' } }\n\t\t\t\t\taccept={ accept }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nexport default FormFileUpload;\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { noop } from 'lodash';\n\n/**\n * Internal dependencies\n */\nimport { Path, SVG } from '../primitives';\n\nfunction FormToggle( { className, checked, id, onChange = noop, ...props } ) {\n\tconst wrapperClasses = classnames(\n\t\t'components-form-toggle',\n\t\tclassName,\n\t\t{ 'is-checked': checked },\n\t);\n\n\treturn (\n\t\t<span className={ wrapperClasses }>\n\t\t\t<input\n\t\t\t\tclassName=\"components-form-toggle__input\"\n\t\t\t\tid={ id }\n\t\t\t\ttype=\"checkbox\"\n\t\t\t\tchecked={ checked }\n\t\t\t\tonChange={ onChange }\n\t\t\t\t{ ...props }\n\t\t\t/>\n\t\t\t<span className=\"components-form-toggle__track\"></span>\n\t\t\t<span className=\"components-form-toggle__thumb\"></span>\n\t\t\t{ checked ?\n\t\t\t\t<SVG className=\"components-form-toggle__on\" width=\"2\" height=\"6\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 2 6\"><Path d=\"M0 0h2v6H0z\" /></SVG> :\n\t\t\t\t<SVG className=\"components-form-toggle__off\" width=\"6\" height=\"6\" aria-hidden=\"true\" role=\"img\" focusable=\"false\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 6 6\"><Path d=\"M3 1.5c.8 0 1.5.7 1.5 1.5S3.8 4.5 3 4.5 1.5 3.8 1.5 3 2.2 1.5 3 1.5M3 0C1.3 0 0 1.3 0 3s1.3 3 3 3 3-1.3 3-3-1.3-3-3-3z\" /></SVG>\n\t\t\t}\n\t\t</span>\n\t);\n}\n\nexport default FormToggle;\n","/**\n * External dependencies\n */\nimport { last, take, clone, uniq, map, difference, each, identity, some } from 'lodash';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __, _n, sprintf } from '@wordpress/i18n';\nimport { Component } from '@wordpress/element';\nimport { withInstanceId } from '@wordpress/compose';\nimport { BACKSPACE, ENTER, UP, DOWN, LEFT, RIGHT, SPACE, DELETE, ESCAPE } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport Token from './token';\nimport TokenInput from './token-input';\nimport SuggestionsList from './suggestions-list';\nimport withSpokenMessages from '../higher-order/with-spoken-messages';\n\nconst initialState = {\n\tincompleteTokenValue: '',\n\tinputOffsetFromEnd: 0,\n\tisActive: false,\n\tisExpanded: false,\n\tselectedSuggestionIndex: -1,\n\tselectedSuggestionScroll: false,\n};\n\nclass FormTokenField extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\t\tthis.state = initialState;\n\t\tthis.onKeyDown = this.onKeyDown.bind( this );\n\t\tthis.onKeyPress = this.onKeyPress.bind( this );\n\t\tthis.onFocus = this.onFocus.bind( this );\n\t\tthis.onBlur = this.onBlur.bind( this );\n\t\tthis.deleteTokenBeforeInput = this.deleteTokenBeforeInput.bind( this );\n\t\tthis.deleteTokenAfterInput = this.deleteTokenAfterInput.bind( this );\n\t\tthis.addCurrentToken = this.addCurrentToken.bind( this );\n\t\tthis.onContainerTouched = this.onContainerTouched.bind( this );\n\t\tthis.renderToken = this.renderToken.bind( this );\n\t\tthis.onTokenClickRemove = this.onTokenClickRemove.bind( this );\n\t\tthis.onSuggestionHovered = this.onSuggestionHovered.bind( this );\n\t\tthis.onSuggestionSelected = this.onSuggestionSelected.bind( this );\n\t\tthis.onInputChange = this.onInputChange.bind( this );\n\t\tthis.bindInput = this.bindInput.bind( this );\n\t\tthis.bindTokensAndInput = this.bindTokensAndInput.bind( this );\n\t}\n\n\tcomponentDidUpdate() {\n\t\t// Make sure to focus the input when the isActive state is true.\n\t\tif ( this.state.isActive && ! this.input.hasFocus() ) {\n\t\t\tthis.input.focus();\n\t\t}\n\t}\n\n\tstatic getDerivedStateFromProps( props, state ) {\n\t\tif ( ! props.disabled || ! state.isActive ) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn {\n\t\t\tisActive: false,\n\t\t\tincompleteTokenValue: '',\n\t\t};\n\t}\n\n\tbindInput( ref ) {\n\t\tthis.input = ref;\n\t}\n\n\tbindTokensAndInput( ref ) {\n\t\tthis.tokensAndInput = ref;\n\t}\n\n\tonFocus( event ) {\n\t\t// If focus is on the input or on the container, set the isActive state to true.\n\t\tif ( this.input.hasFocus() || event.target === this.tokensAndInput ) {\n\t\t\tthis.setState( { isActive: true } );\n\t\t} else {\n\t\t\t/*\n\t\t\t * Otherwise, focus is on one of the token \"remove\" buttons and we\n\t\t\t * set the isActive state to false to prevent the input to be\n\t\t\t * re-focused, see componentDidUpdate().\n\t\t\t */\n\t\t\tthis.setState( { isActive: false } );\n\t\t}\n\n\t\tif ( 'function' === typeof this.props.onFocus ) {\n\t\t\tthis.props.onFocus( event );\n\t\t}\n\t}\n\n\tonBlur() {\n\t\tif ( this.inputHasValidValue() ) {\n\t\t\tthis.setState( { isActive: false } );\n\t\t} else {\n\t\t\tthis.setState( initialState );\n\t\t}\n\t}\n\n\tonKeyDown( event ) {\n\t\tlet preventDefault = false;\n\n\t\tswitch ( event.keyCode ) {\n\t\t\tcase BACKSPACE:\n\t\t\t\tpreventDefault = this.handleDeleteKey( this.deleteTokenBeforeInput );\n\t\t\t\tbreak;\n\t\t\tcase ENTER:\n\t\t\t\tpreventDefault = this.addCurrentToken();\n\t\t\t\tbreak;\n\t\t\tcase LEFT:\n\t\t\t\tpreventDefault = this.handleLeftArrowKey();\n\t\t\t\tbreak;\n\t\t\tcase UP:\n\t\t\t\tpreventDefault = this.handleUpArrowKey();\n\t\t\t\tbreak;\n\t\t\tcase RIGHT:\n\t\t\t\tpreventDefault = this.handleRightArrowKey();\n\t\t\t\tbreak;\n\t\t\tcase DOWN:\n\t\t\t\tpreventDefault = this.handleDownArrowKey();\n\t\t\t\tbreak;\n\t\t\tcase DELETE:\n\t\t\t\tpreventDefault = this.handleDeleteKey( this.deleteTokenAfterInput );\n\t\t\t\tbreak;\n\t\t\tcase SPACE:\n\t\t\t\tif ( this.props.tokenizeOnSpace ) {\n\t\t\t\t\tpreventDefault = this.addCurrentToken();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase ESCAPE:\n\t\t\t\tpreventDefault = this.handleEscapeKey( event );\n\t\t\t\tevent.stopPropagation();\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\n\t\tif ( preventDefault ) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n\n\tonKeyPress( event ) {\n\t\tlet preventDefault = false;\n\t\tswitch ( event.charCode ) {\n\t\t\tcase 44: // comma\n\t\t\t\tpreventDefault = this.handleCommaKey();\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\n\t\tif ( preventDefault ) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n\n\tonContainerTouched( event ) {\n\t\t// Prevent clicking/touching the tokensAndInput container from blurring\n\t\t// the input and adding the current token.\n\t\tif ( event.target === this.tokensAndInput && this.state.isActive ) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n\n\tonTokenClickRemove( event ) {\n\t\tthis.deleteToken( event.value );\n\t\tthis.input.focus();\n\t}\n\n\tonSuggestionHovered( suggestion ) {\n\t\tconst index = this.getMatchingSuggestions().indexOf( suggestion );\n\n\t\tif ( index >= 0 ) {\n\t\t\tthis.setState( {\n\t\t\t\tselectedSuggestionIndex: index,\n\t\t\t\tselectedSuggestionScroll: false,\n\t\t\t} );\n\t\t}\n\t}\n\n\tonSuggestionSelected( suggestion ) {\n\t\tthis.addNewToken( suggestion );\n\t}\n\n\tonInputChange( event ) {\n\t\tconst text = event.value;\n\t\tconst separator = this.props.tokenizeOnSpace ? /[ ,\\t]+/ : /[,\\t]+/;\n\t\tconst items = text.split( separator );\n\t\tconst tokenValue = last( items ) || '';\n\t\tconst inputHasMinimumChars = tokenValue.trim().length > 1;\n\t\tconst matchingSuggestions = this.getMatchingSuggestions( tokenValue );\n\t\tconst hasVisibleSuggestions = inputHasMinimumChars && !! matchingSuggestions.length;\n\n\t\tif ( items.length > 1 ) {\n\t\t\tthis.addNewTokens( items.slice( 0, -1 ) );\n\t\t}\n\n\t\tthis.setState( {\n\t\t\tincompleteTokenValue: tokenValue,\n\t\t\tselectedSuggestionIndex: -1,\n\t\t\tselectedSuggestionScroll: false,\n\t\t\tisExpanded: false,\n\t\t} );\n\n\t\tthis.props.onInputChange( tokenValue );\n\n\t\tif ( inputHasMinimumChars ) {\n\t\t\tthis.setState( {\n\t\t\t\tisExpanded: hasVisibleSuggestions,\n\t\t\t} );\n\n\t\t\tif ( !! matchingSuggestions.length ) {\n\t\t\t\tthis.props.debouncedSpeak( sprintf( _n(\n\t\t\t\t\t'%d result found, use up and down arrow keys to navigate.',\n\t\t\t\t\t'%d results found, use up and down arrow keys to navigate.',\n\t\t\t\t\tmatchingSuggestions.length\n\t\t\t\t), matchingSuggestions.length ), 'assertive' );\n\t\t\t} else {\n\t\t\t\tthis.props.debouncedSpeak( __( 'No results.' ), 'assertive' );\n\t\t\t}\n\t\t}\n\t}\n\n\thandleDeleteKey( deleteToken ) {\n\t\tlet preventDefault = false;\n\t\tif ( this.input.hasFocus() && this.isInputEmpty() ) {\n\t\t\tdeleteToken();\n\t\t\tpreventDefault = true;\n\t\t}\n\n\t\treturn preventDefault;\n\t}\n\n\thandleLeftArrowKey() {\n\t\tlet preventDefault = false;\n\t\tif ( this.isInputEmpty() ) {\n\t\t\tthis.moveInputBeforePreviousToken();\n\t\t\tpreventDefault = true;\n\t\t}\n\n\t\treturn preventDefault;\n\t}\n\n\thandleRightArrowKey() {\n\t\tlet preventDefault = false;\n\t\tif ( this.isInputEmpty() ) {\n\t\t\tthis.moveInputAfterNextToken();\n\t\t\tpreventDefault = true;\n\t\t}\n\n\t\treturn preventDefault;\n\t}\n\n\thandleUpArrowKey() {\n\t\tthis.setState( ( state, props ) => ( {\n\t\t\tselectedSuggestionIndex: (\n\t\t\t\t( state.selectedSuggestionIndex === 0 ? this.getMatchingSuggestions(\n\t\t\t\t\tstate.incompleteTokenValue,\n\t\t\t\t\tprops.suggestions,\n\t\t\t\t\tprops.value,\n\t\t\t\t\tprops.maxSuggestions,\n\t\t\t\t\tprops.saveTransform\n\t\t\t\t).length : state.selectedSuggestionIndex ) - 1\n\t\t\t),\n\t\t\tselectedSuggestionScroll: true,\n\t\t} ) );\n\n\t\treturn true; // preventDefault\n\t}\n\n\thandleDownArrowKey() {\n\t\tthis.setState( ( state, props ) => ( {\n\t\t\tselectedSuggestionIndex: (\n\t\t\t\t( state.selectedSuggestionIndex + 1 ) % this.getMatchingSuggestions(\n\t\t\t\t\tstate.incompleteTokenValue,\n\t\t\t\t\tprops.suggestions,\n\t\t\t\t\tprops.value,\n\t\t\t\t\tprops.maxSuggestions,\n\t\t\t\t\tprops.saveTransform\n\t\t\t\t).length\n\t\t\t),\n\t\t\tselectedSuggestionScroll: true,\n\t\t} ) );\n\n\t\treturn true; // preventDefault\n\t}\n\n\thandleEscapeKey( event ) {\n\t\tthis.setState( {\n\t\t\tincompleteTokenValue: event.target.value,\n\t\t\tisExpanded: false,\n\t\t\tselectedSuggestionIndex: -1,\n\t\t\tselectedSuggestionScroll: false,\n\t\t} );\n\t\treturn true; // preventDefault\n\t}\n\n\thandleCommaKey() {\n\t\tif ( this.inputHasValidValue() ) {\n\t\t\tthis.addNewToken( this.state.incompleteTokenValue );\n\t\t}\n\n\t\treturn true; // preventDefault\n\t}\n\n\tmoveInputToIndex( index ) {\n\t\tthis.setState( ( state, props ) => ( {\n\t\t\tinputOffsetFromEnd: props.value.length - Math.max( index, -1 ) - 1,\n\t\t} ) );\n\t}\n\n\tmoveInputBeforePreviousToken() {\n\t\tthis.setState( ( state, props ) => ( {\n\t\t\tinputOffsetFromEnd: Math.min( state.inputOffsetFromEnd + 1, props.value.length ),\n\t\t} ) );\n\t}\n\n\tmoveInputAfterNextToken() {\n\t\tthis.setState( ( state ) => ( {\n\t\t\tinputOffsetFromEnd: Math.max( state.inputOffsetFromEnd - 1, 0 ),\n\t\t} ) );\n\t}\n\n\tdeleteTokenBeforeInput() {\n\t\tconst index = this.getIndexOfInput() - 1;\n\n\t\tif ( index > -1 ) {\n\t\t\tthis.deleteToken( this.props.value[ index ] );\n\t\t}\n\t}\n\n\tdeleteTokenAfterInput() {\n\t\tconst index = this.getIndexOfInput();\n\n\t\tif ( index < this.props.value.length ) {\n\t\t\tthis.deleteToken( this.props.value[ index ] );\n\t\t\t// update input offset since it's the offset from the last token\n\t\t\tthis.moveInputToIndex( index );\n\t\t}\n\t}\n\n\taddCurrentToken() {\n\t\tlet preventDefault = false;\n\t\tconst selectedSuggestion = this.getSelectedSuggestion();\n\n\t\tif ( selectedSuggestion ) {\n\t\t\tthis.addNewToken( selectedSuggestion );\n\t\t\tpreventDefault = true;\n\t\t} else if ( this.inputHasValidValue() ) {\n\t\t\tthis.addNewToken( this.state.incompleteTokenValue );\n\t\t\tpreventDefault = true;\n\t\t}\n\n\t\treturn preventDefault;\n\t}\n\n\taddNewTokens( tokens ) {\n\t\tconst tokensToAdd = uniq(\n\t\t\ttokens\n\t\t\t\t.map( this.props.saveTransform )\n\t\t\t\t.filter( Boolean )\n\t\t\t\t.filter( ( token ) => ! this.valueContainsToken( token ) )\n\t\t);\n\n\t\tif ( tokensToAdd.length > 0 ) {\n\t\t\tconst newValue = clone( this.props.value );\n\t\t\tnewValue.splice.apply(\n\t\t\t\tnewValue,\n\t\t\t\t[ this.getIndexOfInput(), 0 ].concat( tokensToAdd )\n\t\t\t);\n\t\t\tthis.props.onChange( newValue );\n\t\t}\n\t}\n\n\taddNewToken( token ) {\n\t\tthis.addNewTokens( [ token ] );\n\t\tthis.props.speak( this.props.messages.added, 'assertive' );\n\n\t\tthis.setState( {\n\t\t\tincompleteTokenValue: '',\n\t\t\tselectedSuggestionIndex: -1,\n\t\t\tselectedSuggestionScroll: false,\n\t\t\tisExpanded: false,\n\t\t} );\n\n\t\tif ( this.state.isActive ) {\n\t\t\tthis.input.focus();\n\t\t}\n\t}\n\n\tdeleteToken( token ) {\n\t\tconst newTokens = this.props.value.filter( ( item ) => {\n\t\t\treturn this.getTokenValue( item ) !== this.getTokenValue( token );\n\t\t} );\n\t\tthis.props.onChange( newTokens );\n\t\tthis.props.speak( this.props.messages.removed, 'assertive' );\n\t}\n\n\tgetTokenValue( token ) {\n\t\tif ( 'object' === typeof token ) {\n\t\t\treturn token.value;\n\t\t}\n\n\t\treturn token;\n\t}\n\n\tgetMatchingSuggestions(\n\t\tsearchValue = this.state.incompleteTokenValue,\n\t\tsuggestions = this.props.suggestions,\n\t\tvalue = this.props.value,\n\t\tmaxSuggestions = this.props.maxSuggestions,\n\t\tsaveTransform = this.props.saveTransform,\n\t) {\n\t\tlet match = saveTransform( searchValue );\n\t\tconst startsWithMatch = [];\n\t\tconst containsMatch = [];\n\n\t\tif ( match.length === 0 ) {\n\t\t\tsuggestions = difference( suggestions, value );\n\t\t} else {\n\t\t\tmatch = match.toLocaleLowerCase();\n\n\t\t\teach( suggestions, ( suggestion ) => {\n\t\t\t\tconst index = suggestion.toLocaleLowerCase().indexOf( match );\n\t\t\t\tif ( value.indexOf( suggestion ) === -1 ) {\n\t\t\t\t\tif ( index === 0 ) {\n\t\t\t\t\t\tstartsWithMatch.push( suggestion );\n\t\t\t\t\t} else if ( index > 0 ) {\n\t\t\t\t\t\tcontainsMatch.push( suggestion );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tsuggestions = startsWithMatch.concat( containsMatch );\n\t\t}\n\n\t\treturn take( suggestions, maxSuggestions );\n\t}\n\n\tgetSelectedSuggestion() {\n\t\tif ( this.state.selectedSuggestionIndex !== -1 ) {\n\t\t\treturn this.getMatchingSuggestions()[ this.state.selectedSuggestionIndex ];\n\t\t}\n\t}\n\n\tvalueContainsToken( token ) {\n\t\treturn some( this.props.value, ( item ) => {\n\t\t\treturn this.getTokenValue( token ) === this.getTokenValue( item );\n\t\t} );\n\t}\n\n\tgetIndexOfInput() {\n\t\treturn this.props.value.length - this.state.inputOffsetFromEnd;\n\t}\n\n\tisInputEmpty() {\n\t\treturn this.state.incompleteTokenValue.length === 0;\n\t}\n\n\tinputHasValidValue() {\n\t\treturn this.props.saveTransform( this.state.incompleteTokenValue ).length > 0;\n\t}\n\n\trenderTokensAndInput() {\n\t\tconst components = map( this.props.value, this.renderToken );\n\t\tcomponents.splice( this.getIndexOfInput(), 0, this.renderInput() );\n\n\t\treturn components;\n\t}\n\n\trenderToken( token, index, tokens ) {\n\t\tconst value = this.getTokenValue( token );\n\t\tconst status = token.status ? token.status : undefined;\n\t\tconst termPosition = index + 1;\n\t\tconst termsCount = tokens.length;\n\n\t\treturn (\n\t\t\t<Token\n\t\t\t\tkey={ 'token-' + value }\n\t\t\t\tvalue={ value }\n\t\t\t\tstatus={ status }\n\t\t\t\ttitle={ token.title }\n\t\t\t\tdisplayTransform={ this.props.displayTransform }\n\t\t\t\tonClickRemove={ this.onTokenClickRemove }\n\t\t\t\tisBorderless={ token.isBorderless || this.props.isBorderless }\n\t\t\t\tonMouseEnter={ token.onMouseEnter }\n\t\t\t\tonMouseLeave={ token.onMouseLeave }\n\t\t\t\tdisabled={ 'error' !== status && this.props.disabled }\n\t\t\t\tmessages={ this.props.messages }\n\t\t\t\ttermsCount={ termsCount }\n\t\t\t\ttermPosition={ termPosition }\n\t\t\t/>\n\t\t);\n\t}\n\n\trenderInput() {\n\t\tconst { autoCapitalize, autoComplete, maxLength, value, instanceId } = this.props;\n\n\t\tlet props = {\n\t\t\tinstanceId,\n\t\t\tautoCapitalize,\n\t\t\tautoComplete,\n\t\t\tref: this.bindInput,\n\t\t\tkey: 'input',\n\t\t\tdisabled: this.props.disabled,\n\t\t\tvalue: this.state.incompleteTokenValue,\n\t\t\tonBlur: this.onBlur,\n\t\t\tisExpanded: this.state.isExpanded,\n\t\t\tselectedSuggestionIndex: this.state.selectedSuggestionIndex,\n\t\t};\n\n\t\tif ( ! ( maxLength && value.length >= maxLength ) ) {\n\t\t\tprops = { ...props, onChange: this.onInputChange };\n\t\t}\n\n\t\treturn (\n\t\t\t<TokenInput { ...props } />\n\t\t);\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tdisabled,\n\t\t\tlabel = __( 'Add item' ),\n\t\t\tinstanceId,\n\t\t\tclassName,\n\t\t} = this.props;\n\t\tconst { isExpanded } = this.state;\n\t\tconst classes = classnames( className, 'components-form-token-field__input-container', {\n\t\t\t'is-active': this.state.isActive,\n\t\t\t'is-disabled': disabled,\n\t\t} );\n\n\t\tlet tokenFieldProps = {\n\t\t\tclassName: 'components-form-token-field',\n\t\t\ttabIndex: '-1',\n\t\t};\n\t\tconst matchingSuggestions = this.getMatchingSuggestions();\n\n\t\tif ( ! disabled ) {\n\t\t\ttokenFieldProps = Object.assign( {}, tokenFieldProps, {\n\t\t\t\tonKeyDown: this.onKeyDown,\n\t\t\t\tonKeyPress: this.onKeyPress,\n\t\t\t\tonFocus: this.onFocus,\n\t\t\t} );\n\t\t}\n\n\t\t// Disable reason: There is no appropriate role which describes the\n\t\t// input container intended accessible usability.\n\t\t// TODO: Refactor click detection to use blur to stop propagation.\n\t\t/* eslint-disable jsx-a11y/no-static-element-interactions */\n\t\treturn (\n\t\t\t<div { ...tokenFieldProps }>\n\t\t\t\t<label\n\t\t\t\t\thtmlFor={ `components-form-token-input-${ instanceId }` }\n\t\t\t\t\tclassName=\"components-form-token-field__label\"\n\t\t\t\t>\n\t\t\t\t\t{ label }\n\t\t\t\t</label>\n\t\t\t\t<div ref={ this.bindTokensAndInput }\n\t\t\t\t\tclassName={ classes }\n\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t\tonMouseDown={ this.onContainerTouched }\n\t\t\t\t\tonTouchStart={ this.onContainerTouched }\n\t\t\t\t>\n\t\t\t\t\t{ this.renderTokensAndInput() }\n\t\t\t\t\t{ isExpanded && (\n\t\t\t\t\t\t<SuggestionsList\n\t\t\t\t\t\t\tinstanceId={ instanceId }\n\t\t\t\t\t\t\tmatch={ this.props.saveTransform( this.state.incompleteTokenValue ) }\n\t\t\t\t\t\t\tdisplayTransform={ this.props.displayTransform }\n\t\t\t\t\t\t\tsuggestions={ matchingSuggestions }\n\t\t\t\t\t\t\tselectedIndex={ this.state.selectedSuggestionIndex }\n\t\t\t\t\t\t\tscrollIntoView={ this.state.selectedSuggestionScroll }\n\t\t\t\t\t\t\tonHover={ this.onSuggestionHovered }\n\t\t\t\t\t\t\tonSelect={ this.onSuggestionSelected }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t\t<div id={ `components-form-token-suggestions-howto-${ instanceId }` } className=\"screen-reader-text\">\n\t\t\t\t\t{ __( 'Separate with commas' ) }\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t\t/* eslint-enable jsx-a11y/no-static-element-interactions */\n\t}\n}\n\nFormTokenField.defaultProps = {\n\tsuggestions: Object.freeze( [] ),\n\tmaxSuggestions: 100,\n\tvalue: Object.freeze( [] ),\n\tdisplayTransform: identity,\n\tsaveTransform: ( token ) => token.trim(),\n\tonChange: () => {},\n\tonInputChange: () => {},\n\tisBorderless: false,\n\tdisabled: false,\n\ttokenizeOnSpace: false,\n\tmessages: {\n\t\tadded: __( 'Item added.' ),\n\t\tremoved: __( 'Item removed.' ),\n\t\tremove: __( 'Remove item' ),\n\t},\n};\n\nexport default withSpokenMessages( withInstanceId( FormTokenField ) );\n","/**\n * External dependencies\n */\nimport { map } from 'lodash';\nimport scrollIntoView from 'dom-scroll-into-view';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\n\nclass SuggestionsList extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\t\tthis.handleMouseDown = this.handleMouseDown.bind( this );\n\t\tthis.bindList = this.bindList.bind( this );\n\t}\n\n\tcomponentDidUpdate() {\n\t\t// only have to worry about scrolling selected suggestion into view\n\t\t// when already expanded\n\t\tif ( this.props.selectedIndex > -1 && this.props.scrollIntoView ) {\n\t\t\tthis.scrollingIntoView = true;\n\t\t\tscrollIntoView( this.list.children[ this.props.selectedIndex ], this.list, {\n\t\t\t\tonlyScrollIfNeeded: true,\n\t\t\t} );\n\n\t\t\tsetTimeout( () => {\n\t\t\t\tthis.scrollingIntoView = false;\n\t\t\t}, 100 );\n\t\t}\n\t}\n\n\tbindList( ref ) {\n\t\tthis.list = ref;\n\t}\n\n\thandleHover( suggestion ) {\n\t\treturn () => {\n\t\t\tif ( ! this.scrollingIntoView ) {\n\t\t\t\tthis.props.onHover( suggestion );\n\t\t\t}\n\t\t};\n\t}\n\n\thandleClick( suggestion ) {\n\t\treturn () => {\n\t\t\tthis.props.onSelect( suggestion );\n\t\t};\n\t}\n\n\thandleMouseDown( e ) {\n\t\t// By preventing default here, we will not lose focus of <input> when clicking a suggestion\n\t\te.preventDefault();\n\t}\n\n\tcomputeSuggestionMatch( suggestion ) {\n\t\tconst match = this.props.displayTransform( this.props.match || '' ).toLocaleLowerCase();\n\t\tif ( match.length === 0 ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tsuggestion = this.props.displayTransform( suggestion );\n\t\tconst indexOfMatch = suggestion.toLocaleLowerCase().indexOf( match );\n\n\t\treturn {\n\t\t\tsuggestionBeforeMatch: suggestion.substring( 0, indexOfMatch ),\n\t\t\tsuggestionMatch: suggestion.substring( indexOfMatch, indexOfMatch + match.length ),\n\t\t\tsuggestionAfterMatch: suggestion.substring( indexOfMatch + match.length ),\n\t\t};\n\t}\n\n\trender() {\n\t\t// We set `tabIndex` here because otherwise Firefox sets focus on this\n\t\t// div when tabbing off of the input in `TokenField` -- not really sure\n\t\t// why, since usually a div isn't focusable by default\n\t\t// TODO does this still apply now that it's a <ul> and not a <div>?\n\t\treturn (\n\t\t\t<ul\n\t\t\t\tref={ this.bindList }\n\t\t\t\tclassName=\"components-form-token-field__suggestions-list\"\n\t\t\t\tid={ `components-form-token-suggestions-${ this.props.instanceId }` }\n\t\t\t\trole=\"listbox\"\n\t\t\t>\n\t\t\t\t{\n\t\t\t\t\tmap( this.props.suggestions, ( suggestion, index ) => {\n\t\t\t\t\t\tconst match = this.computeSuggestionMatch( suggestion );\n\t\t\t\t\t\tconst classeName = classnames( 'components-form-token-field__suggestion', {\n\t\t\t\t\t\t\t'is-selected': index === this.props.selectedIndex,\n\t\t\t\t\t\t} );\n\n\t\t\t\t\t\t/* eslint-disable jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<li\n\t\t\t\t\t\t\t\tid={ `components-form-token-suggestions-${ this.props.instanceId }-${ index }` }\n\t\t\t\t\t\t\t\trole=\"option\"\n\t\t\t\t\t\t\t\tclassName={ classeName }\n\t\t\t\t\t\t\t\tkey={ suggestion }\n\t\t\t\t\t\t\t\tonMouseDown={ this.handleMouseDown }\n\t\t\t\t\t\t\t\tonClick={ this.handleClick( suggestion ) }\n\t\t\t\t\t\t\t\tonMouseEnter={ this.handleHover( suggestion ) }\n\t\t\t\t\t\t\t\taria-selected={ index === this.props.selectedIndex }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ match ?\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t<span aria-label={ this.props.displayTransform( suggestion ) }>\n\t\t\t\t\t\t\t\t\t\t\t{ match.suggestionBeforeMatch }\n\t\t\t\t\t\t\t\t\t\t\t<strong className=\"components-form-token-field__suggestion-match\">\n\t\t\t\t\t\t\t\t\t\t\t\t{ match.suggestionMatch }\n\t\t\t\t\t\t\t\t\t\t\t</strong>\n\t\t\t\t\t\t\t\t\t\t\t{ match.suggestionAfterMatch }\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t) :\n\t\t\t\t\t\t\t\t\tthis.props.displayTransform( suggestion )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t);\n\t\t\t\t\t\t/* eslint-enable jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */\n\t\t\t\t\t} )\n\t\t\t\t}\n\t\t\t</ul>\n\t\t);\n\t}\n}\n\nSuggestionsList.defaultProps = {\n\tmatch: '',\n\tonHover: () => {},\n\tonSelect: () => {},\n\tsuggestions: Object.freeze( [] ),\n};\n\nexport default SuggestionsList;\n","/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\n\nclass TokenInput extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\t\tthis.onChange = this.onChange.bind( this );\n\t\tthis.bindInput = this.bindInput.bind( this );\n\t}\n\n\tfocus() {\n\t\tthis.input.focus();\n\t}\n\n\thasFocus() {\n\t\treturn this.input === document.activeElement;\n\t}\n\n\tbindInput( ref ) {\n\t\tthis.input = ref;\n\t}\n\n\tonChange( event ) {\n\t\tthis.props.onChange( {\n\t\t\tvalue: event.target.value,\n\t\t} );\n\t}\n\n\trender() {\n\t\tconst { value, isExpanded, instanceId, selectedSuggestionIndex, ...props } = this.props;\n\t\tconst size = value.length + 1;\n\n\t\treturn (\n\t\t\t<input\n\t\t\t\tref={ this.bindInput }\n\t\t\t\tid={ `components-form-token-input-${ instanceId }` }\n\t\t\t\ttype=\"text\"\n\t\t\t\t{ ...props }\n\t\t\t\tvalue={ value }\n\t\t\t\tonChange={ this.onChange }\n\t\t\t\tsize={ size }\n\t\t\t\tclassName=\"components-form-token-field__input\"\n\t\t\t\trole=\"combobox\"\n\t\t\t\taria-expanded={ isExpanded }\n\t\t\t\taria-autocomplete=\"list\"\n\t\t\t\taria-owns={ isExpanded ? `components-form-token-suggestions-${ instanceId }` : undefined }\n\t\t\t\taria-activedescendant={ selectedSuggestionIndex !== -1 ? `components-form-token-suggestions-${ instanceId }-${ selectedSuggestionIndex }` : undefined }\n\t\t\t\taria-describedby={ `components-form-token-suggestions-howto-${ instanceId }` }\n\t\t\t/>\n\t\t);\n\t}\n}\n\nexport default TokenInput;\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { noop } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { withInstanceId } from '@wordpress/compose';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport IconButton from '../icon-button';\n\nfunction Token( {\n\tvalue,\n\tstatus,\n\ttitle,\n\tdisplayTransform,\n\tisBorderless = false,\n\tdisabled = false,\n\tonClickRemove = noop,\n\tonMouseEnter,\n\tonMouseLeave,\n\tmessages,\n\ttermPosition,\n\ttermsCount,\n\tinstanceId,\n} ) {\n\tconst tokenClasses = classnames( 'components-form-token-field__token', {\n\t\t'is-error': 'error' === status,\n\t\t'is-success': 'success' === status,\n\t\t'is-validating': 'validating' === status,\n\t\t'is-borderless': isBorderless,\n\t\t'is-disabled': disabled,\n\t} );\n\n\tconst onClick = () => onClickRemove( { value } );\n\n\tconst transformedValue = displayTransform( value );\n\tconst termPositionAndCount = sprintf(\n\t\t/* translators: 1: term name, 2: term position in a set of terms, 3: total term set count. */\n\t\t__( '%1$s (%2$s of %3$s)' ),\n\t\ttransformedValue,\n\t\ttermPosition,\n\t\ttermsCount\n\t);\n\n\treturn (\n\t\t<span\n\t\t\tclassName={ tokenClasses }\n\t\t\tonMouseEnter={ onMouseEnter }\n\t\t\tonMouseLeave={ onMouseLeave }\n\t\t\ttitle={ title }\n\t\t>\n\t\t\t<span\n\t\t\t\tclassName=\"components-form-token-field__token-text\"\n\t\t\t\tid={ `components-form-token-field__token-text-${ instanceId }` }\n\t\t\t>\n\t\t\t\t<span className=\"screen-reader-text\">{ termPositionAndCount }</span>\n\t\t\t\t<span aria-hidden=\"true\">{ transformedValue }</span>\n\t\t\t</span>\n\n\t\t\t<IconButton\n\t\t\t\tclassName=\"components-form-token-field__remove-token\"\n\t\t\t\ticon=\"dismiss\"\n\t\t\t\tonClick={ ! disabled && onClick }\n\t\t\t\tlabel={ messages.remove }\n\t\t\t\taria-describedby={ `components-form-token-field__token-text-${ instanceId }` }\n\t\t\t/>\n\t\t</span>\n\t);\n}\n\nexport default withInstanceId( Token );\n","/**\n * External Dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress Dependencies\n */\nimport { Component } from '@wordpress/element';\nimport { createHigherOrderComponent } from '@wordpress/compose';\n\n/**\n * Internal Dependencies\n */\nimport KeyboardShortcuts from '../../keyboard-shortcuts';\n\nexport default createHigherOrderComponent(\n\t( WrappedComponent ) => {\n\t\treturn class extends Component {\n\t\t\tconstructor() {\n\t\t\t\tsuper( ...arguments );\n\t\t\t\tthis.bindContainer = this.bindContainer.bind( this );\n\t\t\t\tthis.focusNextRegion = this.focusRegion.bind( this, 1 );\n\t\t\t\tthis.focusPreviousRegion = this.focusRegion.bind( this, -1 );\n\t\t\t\tthis.onClick = this.onClick.bind( this );\n\t\t\t\tthis.state = {\n\t\t\t\t\tisFocusingRegions: false,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tbindContainer( ref ) {\n\t\t\t\tthis.container = ref;\n\t\t\t}\n\n\t\t\tfocusRegion( offset ) {\n\t\t\t\tconst regions = [ ...this.container.querySelectorAll( '[role=\"region\"]' ) ];\n\t\t\t\tif ( ! regions.length ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tlet nextRegion = regions[ 0 ];\n\t\t\t\tconst selectedIndex = regions.indexOf( document.activeElement );\n\t\t\t\tif ( selectedIndex !== -1 ) {\n\t\t\t\t\tlet nextIndex = selectedIndex + offset;\n\t\t\t\t\tnextIndex = nextIndex === -1 ? regions.length - 1 : nextIndex;\n\t\t\t\t\tnextIndex = nextIndex === regions.length ? 0 : nextIndex;\n\t\t\t\t\tnextRegion = regions[ nextIndex ];\n\t\t\t\t}\n\n\t\t\t\tnextRegion.focus();\n\t\t\t\tthis.setState( { isFocusingRegions: true } );\n\t\t\t}\n\n\t\t\tonClick() {\n\t\t\t\tthis.setState( { isFocusingRegions: false } );\n\t\t\t}\n\n\t\t\trender() {\n\t\t\t\tconst className = classnames( 'components-navigate-regions', {\n\t\t\t\t\t'is-focusing-regions': this.state.isFocusingRegions,\n\t\t\t\t} );\n\n\t\t\t\t// Disable reason: Clicking the editor should dismiss the regions focus style\n\t\t\t\t/* eslint-disable jsx-a11y/no-static-element-interactions, jsx-a11y/onclick-has-role, jsx-a11y/click-events-have-key-events */\n\t\t\t\treturn (\n\t\t\t\t\t<div ref={ this.bindContainer } className={ className } onClick={ this.onClick }>\n\t\t\t\t\t\t<KeyboardShortcuts\n\t\t\t\t\t\t\tbindGlobal\n\t\t\t\t\t\t\tshortcuts={ {\n\t\t\t\t\t\t\t\t'ctrl+`': this.focusNextRegion,\n\t\t\t\t\t\t\t\t'shift+alt+n': this.focusNextRegion,\n\t\t\t\t\t\t\t\t'ctrl+shift+`': this.focusPreviousRegion,\n\t\t\t\t\t\t\t\t'shift+alt+p': this.focusPreviousRegion,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<WrappedComponent { ...this.props } />\n\t\t\t\t\t</div>\n\t\t\t\t);\n\t\t\t\t/* eslint-enable jsx-a11y/no-static-element-interactions, jsx-a11y/onclick-has-role, jsx-a11y/click-events-have-key-events */\n\t\t\t}\n\t\t};\n\t}, 'navigateRegions'\n);\n","/**\n * WordPress dependencies\n */\nimport { Component, createRef } from '@wordpress/element';\nimport { createHigherOrderComponent } from '@wordpress/compose';\nimport { TAB } from '@wordpress/keycodes';\nimport { focus } from '@wordpress/dom';\n\nconst withConstrainedTabbing = createHigherOrderComponent(\n\t( WrappedComponent ) => class extends Component {\n\t\tconstructor() {\n\t\t\tsuper( ...arguments );\n\n\t\t\tthis.focusContainRef = createRef();\n\t\t\tthis.handleTabBehaviour = this.handleTabBehaviour.bind( this );\n\t\t}\n\n\t\thandleTabBehaviour( event ) {\n\t\t\tif ( event.keyCode !== TAB ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst tabbables = focus.tabbable.find( this.focusContainRef.current );\n\t\t\tif ( ! tabbables.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst firstTabbable = tabbables[ 0 ];\n\t\t\tconst lastTabbable = tabbables[ tabbables.length - 1 ];\n\n\t\t\tif ( event.shiftKey && event.target === firstTabbable ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tlastTabbable.focus();\n\t\t\t} else if ( ! event.shiftKey && event.target === lastTabbable ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tfirstTabbable.focus();\n\t\t\t/*\n\t\t\t * When pressing Tab and none of the tabbables has focus, the keydown\n\t\t\t * event happens on the wrapper div: move focus on the first tabbable.\n\t\t\t */\n\t\t\t} else if ( ! tabbables.includes( event.target ) ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tfirstTabbable.focus();\n\t\t\t}\n\t\t}\n\n\t\trender() {\n\t\t\t// Disable reason: this component is non-interactive, but must capture\n\t\t\t// events from the wrapped component to determine when the Tab key is used.\n\t\t\t/* eslint-disable jsx-a11y/no-static-element-interactions */\n\t\t\treturn (\n\t\t\t\t<div\n\t\t\t\t\tonKeyDown={ this.handleTabBehaviour }\n\t\t\t\t\tref={ this.focusContainRef }\n\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t>\n\t\t\t\t\t<WrappedComponent { ...this.props } />\n\t\t\t\t</div>\n\t\t\t);\n\t\t\t/* eslint-enable jsx-a11y/no-static-element-interactions */\n\t\t}\n\t},\n\t'withConstrainedTabbing'\n);\n\nexport default withConstrainedTabbing;\n","/**\n * External dependencies\n */\nimport { every, isEqual } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\nimport { createHigherOrderComponent } from '@wordpress/compose';\n\nexport default ( mapNodeToProps ) => createHigherOrderComponent(\n\t( WrappedComponent ) => {\n\t\treturn class extends Component {\n\t\t\tconstructor() {\n\t\t\t\tsuper( ...arguments );\n\t\t\t\tthis.nodeRef = this.props.node;\n\t\t\t\tthis.state = {\n\t\t\t\t\tfallbackStyles: undefined,\n\t\t\t\t\tgrabStylesCompleted: false,\n\t\t\t\t};\n\n\t\t\t\tthis.bindRef = this.bindRef.bind( this );\n\t\t\t}\n\n\t\t\tbindRef( node ) {\n\t\t\t\tif ( ! node ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis.nodeRef = node;\n\t\t\t}\n\n\t\t\tcomponentDidMount() {\n\t\t\t\tthis.grabFallbackStyles();\n\t\t\t}\n\n\t\t\tcomponentDidUpdate() {\n\t\t\t\tthis.grabFallbackStyles();\n\t\t\t}\n\n\t\t\tgrabFallbackStyles() {\n\t\t\t\tconst { grabStylesCompleted, fallbackStyles } = this.state;\n\t\t\t\tif ( this.nodeRef && ! grabStylesCompleted ) {\n\t\t\t\t\tconst newFallbackStyles = mapNodeToProps( this.nodeRef, this.props );\n\t\t\t\t\tif ( ! isEqual( newFallbackStyles, fallbackStyles ) ) {\n\t\t\t\t\t\tthis.setState( {\n\t\t\t\t\t\t\tfallbackStyles: newFallbackStyles,\n\t\t\t\t\t\t\tgrabStylesCompleted: !! every( newFallbackStyles ),\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\trender() {\n\t\t\t\tconst wrappedComponent = <WrappedComponent { ...this.props } { ...this.state.fallbackStyles } />;\n\t\t\t\treturn this.props.node ? wrappedComponent : <div ref={ this.bindRef }> { wrappedComponent } </div>;\n\t\t\t}\n\t\t};\n\t},\n\t'withFallbackStyles'\n);\n","/**\n * External dependencies\n */\nimport { debounce, uniqueId } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\nimport { addAction, applyFilters, removeAction } from '@wordpress/hooks';\nimport { createHigherOrderComponent } from '@wordpress/compose';\n\nconst ANIMATION_FRAME_PERIOD = 16;\n\n/**\n * Creates a higher-order component which adds filtering capability to the\n * wrapped component. Filters get applied when the original component is about\n * to be mounted. When a filter is added or removed that matches the hook name,\n * the wrapped component re-renders.\n *\n * @param {string} hookName Hook name exposed to be used by filters.\n *\n * @return {Function} Higher-order component factory.\n */\nexport default function withFilters( hookName ) {\n\treturn createHigherOrderComponent( ( OriginalComponent ) => {\n\t\treturn class FilteredComponent extends Component {\n\t\t\t/** @inheritdoc */\n\t\t\tconstructor( props ) {\n\t\t\t\tsuper( props );\n\n\t\t\t\tthis.onHooksUpdated = this.onHooksUpdated.bind( this );\n\t\t\t\tthis.Component = applyFilters( hookName, OriginalComponent );\n\t\t\t\tthis.namespace = uniqueId( 'core/with-filters/component-' );\n\t\t\t\tthis.throttledForceUpdate = debounce( () => {\n\t\t\t\t\tthis.Component = applyFilters( hookName, OriginalComponent );\n\t\t\t\t\tthis.forceUpdate();\n\t\t\t\t}, ANIMATION_FRAME_PERIOD );\n\n\t\t\t\taddAction( 'hookRemoved', this.namespace, this.onHooksUpdated );\n\t\t\t\taddAction( 'hookAdded', this.namespace, this.onHooksUpdated );\n\t\t\t}\n\n\t\t\t/** @inheritdoc */\n\t\t\tcomponentWillUnmount() {\n\t\t\t\tthis.throttledForceUpdate.cancel();\n\t\t\t\tremoveAction( 'hookRemoved', this.namespace );\n\t\t\t\tremoveAction( 'hookAdded', this.namespace );\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * When a filter is added or removed for the matching hook name, the wrapped component should re-render.\n\t\t\t *\n\t\t\t * @param {string} updatedHookName Name of the hook that was updated.\n\t\t\t */\n\t\t\tonHooksUpdated( updatedHookName ) {\n\t\t\t\tif ( updatedHookName === hookName ) {\n\t\t\t\t\tthis.throttledForceUpdate();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t/** @inheritdoc */\n\t\t\trender() {\n\t\t\t\treturn <this.Component { ...this.props } />;\n\t\t\t}\n\t\t};\n\t}, 'withFilters' );\n}\n","/**\n * External dependencies\n */\nimport { includes } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\nimport { createHigherOrderComponent } from '@wordpress/compose';\n\n/**\n * Input types which are classified as button types, for use in considering\n * whether element is a (focus-normalized) button.\n *\n * @type {string[]}\n */\nconst INPUT_BUTTON_TYPES = [\n\t'button',\n\t'submit',\n];\n\n/**\n * Returns true if the given element is a button element subject to focus\n * normalization, or false otherwise.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus\n *\n * @param {Element} element Element to test.\n *\n * @return {boolean} Whether element is a button.\n */\nfunction isFocusNormalizedButton( element ) {\n\tswitch ( element.nodeName ) {\n\t\tcase 'A':\n\t\tcase 'BUTTON':\n\t\t\treturn true;\n\n\t\tcase 'INPUT':\n\t\t\treturn includes( INPUT_BUTTON_TYPES, element.type );\n\t}\n\n\treturn false;\n}\n\nexport default createHigherOrderComponent(\n\t( WrappedComponent ) => {\n\t\treturn class extends Component {\n\t\t\tconstructor() {\n\t\t\t\tsuper( ...arguments );\n\n\t\t\t\tthis.bindNode = this.bindNode.bind( this );\n\t\t\t\tthis.cancelBlurCheck = this.cancelBlurCheck.bind( this );\n\t\t\t\tthis.queueBlurCheck = this.queueBlurCheck.bind( this );\n\t\t\t\tthis.normalizeButtonFocus = this.normalizeButtonFocus.bind( this );\n\t\t\t}\n\n\t\t\tcomponentWillUnmount() {\n\t\t\t\tthis.cancelBlurCheck();\n\t\t\t}\n\n\t\t\tbindNode( node ) {\n\t\t\t\tif ( node ) {\n\t\t\t\t\tthis.node = node;\n\t\t\t\t} else {\n\t\t\t\t\tdelete this.node;\n\t\t\t\t\tthis.cancelBlurCheck();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tqueueBlurCheck( event ) {\n\t\t\t\t// React does not allow using an event reference asynchronously\n\t\t\t\t// due to recycling behavior, except when explicitly persisted.\n\t\t\t\tevent.persist();\n\n\t\t\t\t// Skip blur check if clicking button. See `normalizeButtonFocus`.\n\t\t\t\tif ( this.preventBlurCheck ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.blurCheckTimeout = setTimeout( () => {\n\t\t\t\t\tif ( 'function' === typeof this.node.handleFocusOutside ) {\n\t\t\t\t\t\tthis.node.handleFocusOutside( event );\n\t\t\t\t\t}\n\t\t\t\t}, 0 );\n\t\t\t}\n\n\t\t\tcancelBlurCheck() {\n\t\t\t\tclearTimeout( this.blurCheckTimeout );\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Handles a mousedown or mouseup event to respectively assign and\n\t\t\t * unassign a flag for preventing blur check on button elements. Some\n\t\t\t * browsers, namely Firefox and Safari, do not emit a focus event on\n\t\t\t * button elements when clicked, while others do. The logic here\n\t\t\t * intends to normalize this as treating click on buttons as focus.\n\t\t\t *\n\t\t\t * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus\n\t\t\t *\n\t\t\t * @param {MouseEvent} event Event for mousedown or mouseup.\n\t\t\t */\n\t\t\tnormalizeButtonFocus( event ) {\n\t\t\t\tconst { type, target } = event;\n\n\t\t\t\tconst isInteractionEnd = includes( [ 'mouseup', 'touchend' ], type );\n\n\t\t\t\tif ( isInteractionEnd ) {\n\t\t\t\t\tthis.preventBlurCheck = false;\n\t\t\t\t} else if ( isFocusNormalizedButton( target ) ) {\n\t\t\t\t\tthis.preventBlurCheck = true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\trender() {\n\t\t\t\t// Disable reason: See `normalizeButtonFocus` for browser-specific\n\t\t\t\t// focus event normalization.\n\n\t\t\t\t/* eslint-disable jsx-a11y/no-static-element-interactions */\n\t\t\t\treturn (\n\t\t\t\t\t<div\n\t\t\t\t\t\tonFocus={ this.cancelBlurCheck }\n\t\t\t\t\t\tonMouseDown={ this.normalizeButtonFocus }\n\t\t\t\t\t\tonMouseUp={ this.normalizeButtonFocus }\n\t\t\t\t\t\tonTouchStart={ this.normalizeButtonFocus }\n\t\t\t\t\t\tonTouchEnd={ this.normalizeButtonFocus }\n\t\t\t\t\t\tonBlur={ this.queueBlurCheck }\n\t\t\t\t\t>\n\t\t\t\t\t\t<WrappedComponent\n\t\t\t\t\t\t\tref={ this.bindNode }\n\t\t\t\t\t\t\t{ ...this.props } />\n\t\t\t\t\t</div>\n\t\t\t\t);\n\t\t\t\t/* eslint-enable jsx-a11y/no-static-element-interactions */\n\t\t\t}\n\t\t};\n\t}, 'withFocusOutside'\n);\n","/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\nimport { createHigherOrderComponent } from '@wordpress/compose';\n\n/**\n * Higher Order Component used to be used to wrap disposable elements like\n * sidebars, modals, dropdowns. When mounting the wrapped component, we track a\n * reference to the current active element so we know where to restore focus\n * when the component is unmounted.\n *\n * @param {WPElement} WrappedComponent The disposable component.\n *\n * @return {Component} Component with the focus restauration behaviour.\n */\nexport default createHigherOrderComponent(\n\t( WrappedComponent ) => {\n\t\treturn class extends Component {\n\t\t\tconstructor() {\n\t\t\t\tsuper( ...arguments );\n\n\t\t\t\tthis.setIsFocusedTrue = () => this.isFocused = true;\n\t\t\t\tthis.setIsFocusedFalse = () => this.isFocused = false;\n\t\t\t\tthis.activeElementOnMount = document.activeElement;\n\t\t\t}\n\n\t\t\tcomponentWillUnmount() {\n\t\t\t\tconst { activeElementOnMount, isFocused } = this;\n\t\t\t\tif ( ! activeElementOnMount ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst { body, activeElement } = document;\n\t\t\t\tif ( isFocused || null === activeElement || body === activeElement ) {\n\t\t\t\t\tactiveElementOnMount.focus();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\trender() {\n\t\t\t\treturn (\n\t\t\t\t\t<div\n\t\t\t\t\t\tonFocus={ this.setIsFocusedTrue }\n\t\t\t\t\t\tonBlur={ this.setIsFocusedFalse }\n\t\t\t\t\t>\n\t\t\t\t\t\t<WrappedComponent { ...this.props } />\n\t\t\t\t\t</div>\n\t\t\t\t);\n\t\t\t}\n\t\t};\n\t}, 'withFocusReturn'\n);\n","/**\n * External dependencies\n */\nimport uuid from 'uuid/v4';\n\n/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\nimport { createHigherOrderComponent } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport NoticeList from '../../notice/list';\n\n/**\n * Override the default edit UI to include notices if supported.\n *\n * @param {function|Component} OriginalComponent Original component.\n * @return {Component} Wrapped component.\n */\nexport default createHigherOrderComponent( ( OriginalComponent ) => {\n\treturn class WrappedBlockEdit extends Component {\n\t\tconstructor() {\n\t\t\tsuper( ...arguments );\n\n\t\t\tthis.createNotice = this.createNotice.bind( this );\n\t\t\tthis.createErrorNotice = this.createErrorNotice.bind( this );\n\t\t\tthis.removeNotice = this.removeNotice.bind( this );\n\t\t\tthis.removeAllNotices = this.removeAllNotices.bind( this );\n\n\t\t\tthis.state = {\n\t\t\t\tnoticeList: [],\n\t\t\t};\n\n\t\t\tthis.noticeOperations = {\n\t\t\t\tcreateNotice: this.createNotice,\n\t\t\t\tcreateErrorNotice: this.createErrorNotice,\n\t\t\t\tremoveAllNotices: this.removeAllNotices,\n\t\t\t\tremoveNotice: this.removeNotice,\n\t\t\t};\n\t\t}\n\n\t\t/**\n\t\t* Function passed down as a prop that adds a new notice.\n\t\t*\n\t\t* @param {Object} notice Notice to add.\n\t\t*/\n\t\tcreateNotice( notice ) {\n\t\t\tconst noticeToAdd = notice.id ? notice : { ...notice, id: uuid() };\n\t\t\tthis.setState( ( state ) => ( {\n\t\t\t\tnoticeList: [ ...state.noticeList, noticeToAdd ],\n\t\t\t} ) );\n\t\t}\n\n\t\t/**\n\t\t* Function passed as a prop that adds a new error notice.\n\t\t*\n\t\t* @param {string} msg Error message of the notice.\n\t\t*/\n\t\tcreateErrorNotice( msg ) {\n\t\t\tthis.createNotice( { status: 'error', content: msg } );\n\t\t}\n\n\t\t/**\n\t\t* Removes a notice by id.\n\t\t*\n\t\t* @param {string} id Id of the notice to remove.\n\t\t*/\n\t\tremoveNotice( id ) {\n\t\t\tthis.setState( ( state ) => ( {\n\t\t\t\tnoticeList: state.noticeList.filter( ( notice ) => notice.id !== id ),\n\t\t\t} ) );\n\t\t}\n\n\t\t/**\n\t\t* Removes all notices\n\t\t*/\n\t\tremoveAllNotices() {\n\t\t\tthis.setState( {\n\t\t\t\tnoticeList: [],\n\t\t\t} );\n\t\t}\n\n\t\trender() {\n\t\t\treturn (\n\t\t\t\t<OriginalComponent\n\t\t\t\t\tnoticeList={ this.state.noticeList }\n\t\t\t\t\tnoticeOperations={ this.noticeOperations }\n\t\t\t\t\tnoticeUI={\n\t\t\t\t\t\tthis.state.noticeList.length > 0 && <NoticeList\n\t\t\t\t\t\t\tclassName=\"components-with-notices-ui\"\n\t\t\t\t\t\t\tnotices={ this.state.noticeList }\n\t\t\t\t\t\t\tonRemove={ this.removeNotice }\n\t\t\t\t\t\t/>\n\t\t\t\t\t}\n\t\t\t\t\t{ ...this.props }\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\t};\n} );\n","/**\n * External dependencies\n */\nimport { debounce } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\nimport { speak } from '@wordpress/a11y';\nimport { createHigherOrderComponent } from '@wordpress/compose';\n\n/**\n * A Higher Order Component used to be provide a unique instance ID by\n * component.\n *\n * @param {WPElement} WrappedComponent The wrapped component.\n *\n * @return {Component} Component with an instanceId prop.\n */\nexport default createHigherOrderComponent( ( WrappedComponent ) => {\n\treturn class extends Component {\n\t\tconstructor() {\n\t\t\tsuper( ...arguments );\n\t\t\tthis.debouncedSpeak = debounce( this.speak.bind( this ), 500 );\n\t\t}\n\n\t\tspeak( message, type = 'polite' ) {\n\t\t\tspeak( message, type );\n\t\t}\n\n\t\tcomponentWillUnmount() {\n\t\t\tthis.debouncedSpeak.cancel();\n\t\t}\n\n\t\trender() {\n\t\t\treturn (\n\t\t\t\t<WrappedComponent { ...this.props }\n\t\t\t\t\tspeak={ this.speak }\n\t\t\t\t\tdebouncedSpeak={ this.debouncedSpeak }\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\t};\n}, 'withSpokenMessages' );\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { isString, isArray } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport Tooltip from '../tooltip';\nimport Button from '../button';\nimport Dashicon from '../dashicon';\n\n// This is intentionally a Component class, not a function component because it\n// is common to apply a ref to the button element (only supported in class)\nclass IconButton extends Component {\n\trender() {\n\t\tconst { icon, children, label, className, tooltip, shortcut, ...additionalProps } = this.props;\n\t\tconst classes = classnames( 'components-icon-button', className );\n\t\tconst tooltipText = tooltip || label;\n\n\t\t// Should show the tooltip if...\n\t\tconst showTooltip = (\n\t\t\t// an explicit tooltip is passed or...\n\t\t\ttooltip ||\n\t\t\t// there's a shortcut or...\n\t\t\tshortcut ||\n\t\t\t(\n\t\t\t\t// there's a label and...\n\t\t\t\t!! label &&\n\t\t\t\t// the children are empty and...\n\t\t\t\t( ! children || ( isArray( children ) && ! children.length ) ) &&\n\t\t\t\t// the tooltip is not explicitly disabled.\n\t\t\t\tfalse !== tooltip\n\t\t\t)\n\t\t);\n\n\t\tlet element = (\n\t\t\t<Button aria-label={ label } { ...additionalProps } className={ classes }>\n\t\t\t\t{ isString( icon ) ? <Dashicon icon={ icon } /> : icon }\n\t\t\t\t{ children }\n\t\t\t</Button>\n\t\t);\n\n\t\tif ( showTooltip ) {\n\t\t\telement = (\n\t\t\t\t<Tooltip text={ tooltipText } shortcut={ shortcut }>\n\t\t\t\t\t{ element }\n\t\t\t\t</Tooltip>\n\t\t\t);\n\t\t}\n\n\t\treturn element;\n\t}\n}\n\nexport default IconButton;\n","/**\n * WordPress dependencies\n */\nimport { cloneElement, createElement, Component, isValidElement } from '@wordpress/element';\nimport { Dashicon, SVG } from '../';\n\nfunction Icon( { icon = null, size, className } ) {\n\tlet iconSize;\n\n\tif ( 'string' === typeof icon ) {\n\t\t// Dashicons should be 20x20 by default\n\t\ticonSize = size || 20;\n\t\treturn <Dashicon icon={ icon } size={ iconSize } className={ className } />;\n\t}\n\n\t// Any other icons should be 24x24 by default\n\ticonSize = size || 24;\n\n\tif ( 'function' === typeof icon ) {\n\t\tif ( icon.prototype instanceof Component ) {\n\t\t\treturn createElement( icon, { className, size: iconSize } );\n\t\t}\n\n\t\treturn icon();\n\t}\n\n\tif ( icon && ( icon.type === 'svg' || icon.type === SVG ) ) {\n\t\tconst appliedProps = {\n\t\t\tclassName,\n\t\t\twidth: iconSize,\n\t\t\theight: iconSize,\n\t\t\t...icon.props,\n\t\t};\n\n\t\treturn <SVG { ...appliedProps } />;\n\t}\n\n\tif ( isValidElement( icon ) ) {\n\t\treturn cloneElement( icon, {\n\t\t\tclassName,\n\t\t\tsize: iconSize,\n\t\t} );\n\t}\n\n\treturn icon;\n}\n\nexport default Icon;\n","// Components\nexport * from './primitives';\n// eslint-disable-next-line camelcase\nexport { default as Autocomplete } from './autocomplete';\nexport { default as BaseControl } from './base-control';\nexport { default as Button } from './button';\nexport { default as ButtonGroup } from './button-group';\nexport { default as CheckboxControl } from './checkbox-control';\nexport { default as ClipboardButton } from './clipboard-button';\nexport { default as ColorIndicator } from './color-indicator';\nexport { default as ColorPalette } from './color-palette';\nexport { default as ColorPicker } from './color-picker';\nexport { default as Dashicon } from './dashicon';\nexport { DateTimePicker, DatePicker, TimePicker } from './date-time';\nexport { default as Disabled } from './disabled';\nexport { default as Draggable } from './draggable';\nexport { default as DropZone } from './drop-zone';\nexport { default as DropZoneProvider } from './drop-zone/provider';\nexport { default as Dropdown } from './dropdown';\nexport { default as DropdownMenu } from './dropdown-menu';\nexport { default as ExternalLink } from './external-link';\nexport { default as FocusableIframe } from './focusable-iframe';\nexport { default as FontSizePicker } from './font-size-picker';\nexport { default as FormFileUpload } from './form-file-upload';\nexport { default as FormToggle } from './form-toggle';\nexport { default as FormTokenField } from './form-token-field';\nexport { default as Icon } from './icon';\nexport { default as IconButton } from './icon-button';\nexport { default as KeyboardShortcuts } from './keyboard-shortcuts';\nexport { default as MenuGroup } from './menu-group';\nexport { default as MenuItem } from './menu-item';\nexport { default as MenuItemsChoice } from './menu-items-choice';\nexport { default as Modal } from './modal';\nexport { default as ScrollLock } from './scroll-lock';\nexport { NavigableMenu, TabbableContainer } from './navigable-container';\nexport { default as Notice } from './notice';\nexport { default as NoticeList } from './notice/list';\nexport { default as Panel } from './panel';\nexport { default as PanelBody } from './panel/body';\nexport { default as PanelColor } from './panel/color';\nexport { default as PanelHeader } from './panel/header';\nexport { default as PanelRow } from './panel/row';\nexport { default as Placeholder } from './placeholder';\nexport { default as Popover } from './popover';\nexport { default as QueryControls } from './query-controls';\nexport { default as RadioControl } from './radio-control';\nexport { default as RangeControl } from './range-control';\nexport { default as ResizableBox } from './resizable-box';\nexport { default as ResponsiveWrapper } from './responsive-wrapper';\nexport { default as SandBox } from './sandbox';\nexport { default as SelectControl } from './select-control';\nexport { default as Spinner } from './spinner';\nexport { default as ServerSideRender } from './server-side-render';\nexport { default as TabPanel } from './tab-panel';\nexport { default as TextControl } from './text-control';\nexport { default as TextareaControl } from './textarea-control';\nexport { default as ToggleControl } from './toggle-control';\nexport { default as Toolbar } from './toolbar';\nexport { default as ToolbarButton } from './toolbar-button';\nexport { default as Tooltip } from './tooltip';\nexport { default as TreeSelect } from './tree-select';\nexport { createSlotFill, Slot, Fill, Provider as SlotFillProvider } from './slot-fill';\n\n// Higher-Order Components\nexport { default as navigateRegions } from './higher-order/navigate-regions';\nexport { default as withConstrainedTabbing } from './higher-order/with-constrained-tabbing';\nexport { default as withFallbackStyles } from './higher-order/with-fallback-styles';\nexport { default as withFilters } from './higher-order/with-filters';\nexport { default as withFocusOutside } from './higher-order/with-focus-outside';\nexport { default as withFocusReturn } from './higher-order/with-focus-return';\nexport { default as withNotices } from './higher-order/with-notices';\nexport { default as withSpokenMessages } from './higher-order/with-spoken-messages';\n","/**\n * External dependencies\n */\nimport Mousetrap from 'mousetrap';\nimport 'mousetrap/plugins/global-bind/mousetrap-global-bind';\nimport { forEach } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { Component, Children } from '@wordpress/element';\n\nclass KeyboardShortcuts extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.bindKeyTarget = this.bindKeyTarget.bind( this );\n\t}\n\n\tcomponentDidMount() {\n\t\tconst { keyTarget = document } = this;\n\n\t\tthis.mousetrap = new Mousetrap( keyTarget );\n\t\tforEach( this.props.shortcuts, ( callback, key ) => {\n\t\t\tconst { bindGlobal, eventName } = this.props;\n\t\t\tconst bindFn = bindGlobal ? 'bindGlobal' : 'bind';\n\t\t\tthis.mousetrap[ bindFn ]( key, callback, eventName );\n\t\t} );\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis.mousetrap.reset();\n\t}\n\n\t/**\n\t * When rendering with children, binds the wrapper node on which events\n\t * will be bound.\n\t *\n\t * @param {Element} node Key event target.\n\t */\n\tbindKeyTarget( node ) {\n\t\tthis.keyTarget = node;\n\t}\n\n\trender() {\n\t\t// Render as non-visual if there are no children pressed. Keyboard\n\t\t// events will be bound to the document instead.\n\t\tconst { children } = this.props;\n\t\tif ( ! Children.count( children ) ) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn <div ref={ this.bindKeyTarget }>{ children }</div>;\n\t}\n}\n\nexport default KeyboardShortcuts;\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { Children } from '@wordpress/element';\nimport { withInstanceId } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { NavigableMenu } from '../navigable-container';\n\nexport function MenuGroup( {\n\tchildren,\n\tclassName = '',\n\tinstanceId,\n\tlabel,\n} ) {\n\tif ( ! Children.count( children ) ) {\n\t\treturn null;\n\t}\n\n\tconst labelId = `components-menu-group-label-${ instanceId }`;\n\tconst classNames = classnames(\n\t\tclassName,\n\t\t'components-menu-group'\n\t);\n\n\treturn (\n\t\t<div className={ classNames }>\n\t\t\t{ label &&\n\t\t\t\t<div className=\"components-menu-group__label\" id={ labelId }>{ label }</div>\n\t\t\t}\n\t\t\t<NavigableMenu orientation=\"vertical\" aria-labelledby={ labelId }>\n\t\t\t\t{ children }\n\t\t\t</NavigableMenu>\n\t\t</div>\n\t);\n}\n\nexport default withInstanceId( MenuGroup );\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { isString } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { createElement, cloneElement } from '@wordpress/element';\nimport { withInstanceId } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport Button from '../button';\nimport Shortcut from '../shortcut';\nimport IconButton from '../icon-button';\n\n/**\n * Renders a generic menu item for use inside the more menu.\n *\n * @return {WPElement} More menu item.\n */\nexport function MenuItem( {\n\tchildren,\n\tlabel = children,\n\tinfo,\n\tclassName,\n\ticon,\n\tshortcut,\n\tisSelected,\n\trole = 'menuitem',\n\tinstanceId,\n\t...props\n} ) {\n\tclassName = classnames( 'components-menu-item__button', className, {\n\t\t'has-icon': icon,\n\t} );\n\n\t// Avoid using label if it is passed as non-string children.\n\tlabel = isString( label ) ? label : undefined;\n\n\tif ( info ) {\n\t\tconst infoId = 'edit-post-feature-toggle__info-' + instanceId;\n\n\t\t// Deconstructed props is scoped to the function; mutation is fine.\n\t\tprops[ 'aria-describedby' ] = infoId;\n\n\t\tchildren = (\n\t\t\t<span className=\"components-menu-item__info-wrapper\">\n\t\t\t\t{ children }\n\t\t\t\t<span\n\t\t\t\t\tid={ infoId }\n\t\t\t\t\tclassName=\"components-menu-item__info\">\n\t\t\t\t\t{ info }\n\t\t\t\t</span>\n\t\t\t</span>\n\t\t);\n\t}\n\n\tlet tagName = Button;\n\n\tif ( icon ) {\n\t\tif ( ! isString( icon ) ) {\n\t\t\ticon = cloneElement( icon, {\n\t\t\t\tclassName: 'components-menu-items__item-icon',\n\t\t\t\theight: 20,\n\t\t\t\twidth: 20,\n\t\t\t} );\n\t\t}\n\n\t\ttagName = IconButton;\n\t\tprops.icon = icon;\n\t}\n\n\treturn createElement(\n\t\ttagName,\n\t\t{\n\t\t\t'aria-label': label,\n\t\t\t'aria-checked': isSelected,\n\t\t\trole,\n\t\t\tclassName,\n\t\t\t...props,\n\t\t},\n\t\tchildren,\n\t\t<Shortcut className=\"components-menu-item__shortcut\" shortcut={ shortcut } />\n\t);\n}\n\nexport default withInstanceId( MenuItem );\n","/**\n * Internal dependencies\n */\nimport MenuItem from '../menu-item';\n\nexport default function MenuItemsChoice( {\n\tchoices = [],\n\tonSelect,\n\tvalue,\n} ) {\n\treturn choices.map( ( item ) => {\n\t\tconst isSelected = value === item.value;\n\t\treturn (\n\t\t\t<MenuItem\n\t\t\t\tkey={ item.value }\n\t\t\t\trole=\"menuitemradio\"\n\t\t\t\ticon={ isSelected && 'yes' }\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\tshortcut={ item.shortcut }\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tif ( ! isSelected ) {\n\t\t\t\t\t\tonSelect( item.value );\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ item.label }\n\t\t\t</MenuItem>\n\t\t);\n\t} );\n}\n","/**\n * External dependencies\n */\nimport { forEach } from 'lodash';\n\nconst LIVE_REGION_ARIA_ROLES = new Set( [\n\t'alert',\n\t'status',\n\t'log',\n\t'marquee',\n\t'timer',\n] );\n\nlet hiddenElements = [],\n\tisHidden = false;\n\n/**\n * Hides all elements in the body element from screen-readers except\n * the provided element and elements that should not be hidden from\n * screen-readers.\n *\n * The reason we do this is because `aria-modal=\"true\"` currently is bugged\n * in Safari, and support is spotty in other browsers overall. In the future\n * we should consider removing these helper functions in favor of\n * `aria-modal=\"true\"`.\n *\n * @param {Element} unhiddenElement The element that should not be hidden.\n */\nexport function hideApp( unhiddenElement ) {\n\tif ( isHidden ) {\n\t\treturn;\n\t}\n\tconst elements = document.body.children;\n\tforEach( elements, ( element ) => {\n\t\tif (\n\t\t\telement === unhiddenElement\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t\tif ( elementShouldBeHidden( element ) ) {\n\t\t\telement.setAttribute( 'aria-hidden', 'true' );\n\t\t\thiddenElements.push( element );\n\t\t}\n\t} );\n\tisHidden = true;\n}\n\n/**\n * Determines if the passed element should not be hidden from screen readers.\n *\n * @param {HTMLElement} element The element that should be checked.\n *\n * @return {boolean} Whether the element should not be hidden from screen-readers.\n */\nexport function elementShouldBeHidden( element ) {\n\tconst role = element.getAttribute( 'role' );\n\treturn ! (\n\t\telement.tagName === 'SCRIPT' ||\n\t\telement.hasAttribute( 'aria-hidden' ) ||\n\t\telement.hasAttribute( 'aria-live' ) ||\n\t\tLIVE_REGION_ARIA_ROLES.has( role )\n\t);\n}\n\n/**\n * Makes all elements in the body that have been hidden by `hideApp`\n * visible again to screen-readers.\n */\nexport function showApp() {\n\tif ( ! isHidden ) {\n\t\treturn;\n\t}\n\tforEach( hiddenElements, ( element ) => {\n\t\telement.removeAttribute( 'aria-hidden' );\n\t} );\n\thiddenElements = [];\n\tisHidden = false;\n}\n","/**\n * WordPress dependencies\n */\nimport { Component, createRef } from '@wordpress/element';\nimport { ESCAPE } from '@wordpress/keycodes';\nimport { focus } from '@wordpress/dom';\nimport { withGlobalEvents, compose } from '@wordpress/compose';\n\n/**\n * External dependencies\n */\nimport clickOutside from 'react-click-outside';\n\n/**\n * Internal dependencies\n */\nimport withFocusReturn from '../higher-order/with-focus-return';\nimport withConstrainedTabbing from '../higher-order/with-constrained-tabbing';\n\nclass ModalFrame extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.containerRef = createRef();\n\t\tthis.handleKeyDown = this.handleKeyDown.bind( this );\n\t\tthis.handleClickOutside = this.handleClickOutside.bind( this );\n\t\tthis.focusFirstTabbable = this.focusFirstTabbable.bind( this );\n\t}\n\n\t/**\n\t * Focuses the first tabbable element when props.focusOnMount is true.\n\t */\n\tcomponentDidMount() {\n\t\t// Focus on mount\n\t\tif ( this.props.focusOnMount ) {\n\t\t\tthis.focusFirstTabbable();\n\t\t}\n\t}\n\n\t/**\n\t * Focuses the first tabbable element.\n\t */\n\tfocusFirstTabbable() {\n\t\tconst tabbables = focus.tabbable.find( this.containerRef.current );\n\t\tif ( tabbables.length ) {\n\t\t\ttabbables[ 0 ].focus();\n\t\t}\n\t}\n\n\t/**\n\t * Callback function called when clicked outside the modal.\n\t *\n\t * @param {Object} event Mouse click event.\n\t */\n\thandleClickOutside( event ) {\n\t\tif ( this.props.shouldCloseOnClickOutside ) {\n\t\t\tthis.onRequestClose( event );\n\t\t}\n\t}\n\n\t/**\n\t * Callback function called when a key is pressed.\n\t *\n\t * @param {KeyboardEvent} event Key down event.\n\t */\n\thandleKeyDown( event ) {\n\t\tif ( event.keyCode === ESCAPE ) {\n\t\t\tthis.handleEscapeKeyDown( event );\n\t\t}\n\t}\n\n\t/**\n\t * Handles a escape key down event.\n\t *\n\t * Calls onRequestClose and prevents default key press behaviour.\n\t *\n\t * @param {Object} event Key down event.\n\t */\n\thandleEscapeKeyDown( event ) {\n\t\tif ( this.props.shouldCloseOnEsc ) {\n\t\t\tevent.preventDefault();\n\t\t\tthis.onRequestClose( event );\n\t\t}\n\t}\n\n\t/**\n\t * Calls the onRequestClose callback props when it is available.\n\t *\n\t * @param {Object} event Event object.\n\t */\n\tonRequestClose( event ) {\n\t\tconst { onRequestClose } = this.props;\n\t\tif ( onRequestClose ) {\n\t\t\tonRequestClose( event );\n\t\t}\n\t}\n\n\t/**\n\t * Renders the modal frame element.\n\t *\n\t * @return {WPElement} The modal frame element.\n\t */\n\trender() {\n\t\tconst {\n\t\t\tcontentLabel,\n\t\t\taria: {\n\t\t\t\tdescribedby,\n\t\t\t\tlabelledby,\n\t\t\t},\n\t\t\tchildren,\n\t\t\tclassName,\n\t\t\trole,\n\t\t\tstyle,\n\t\t} = this.props;\n\n\t\treturn (\n\t\t\t<div\n\t\t\t\tclassName={ className }\n\t\t\t\tstyle={ style }\n\t\t\t\tref={ this.containerRef }\n\t\t\t\trole={ role }\n\t\t\t\taria-label={ contentLabel }\n\t\t\t\taria-labelledby={ contentLabel ? null : labelledby }\n\t\t\t\taria-describedby={ describedby }\n\t\t\t\ttabIndex=\"-1\"\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithFocusReturn,\n\twithConstrainedTabbing,\n\tclickOutside,\n\twithGlobalEvents( {\n\t\tkeydown: 'handleKeyDown',\n\t} ),\n] )( ModalFrame );\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies.\n */\nimport IconButton from '../icon-button';\n\nconst ModalHeader = ( { icon, title, onClose, closeLabel, headingId, isDismissable } ) => {\n\tconst label = closeLabel ? closeLabel : __( 'Close dialog' );\n\n\treturn (\n\t\t<div\n\t\t\tclassName=\"components-modal__header\"\n\t\t>\n\t\t\t<div className=\"components-modal__header-heading-container\">\n\t\t\t\t{ icon &&\n\t\t\t\t\t<span className=\"components-modal__icon-container\" aria-hidden>\n\t\t\t\t\t\t{ icon }\n\t\t\t\t\t</span>\n\t\t\t\t}\n\t\t\t\t{ title &&\n\t\t\t\t\t<h1 id={ headingId }\n\t\t\t\t\t\tclassName=\"components-modal__header-heading\">\n\t\t\t\t\t\t{ title }\n\t\t\t\t\t</h1>\n\t\t\t\t}\n\t\t\t</div>\n\t\t\t{ isDismissable &&\n\t\t\t\t<IconButton\n\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\ticon=\"no-alt\"\n\t\t\t\t\tlabel={ label }\n\t\t\t\t/>\n\t\t\t}\n\t\t</div>\n\t);\n};\n\nexport default ModalHeader;\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { noop } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { Component, createPortal } from '@wordpress/element';\nimport { withInstanceId } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport ModalFrame from './frame';\nimport ModalHeader from './header';\nimport * as ariaHelper from './aria-helper';\n\n// Used to count the number of open modals.\nlet parentElement,\n\topenModalCount = 0;\n\nclass Modal extends Component {\n\tconstructor( props ) {\n\t\tsuper( props );\n\n\t\tthis.prepareDOM();\n\t\tthis.stopEventPropagationOutsideModal = this.stopEventPropagationOutsideModal.bind( this );\n\t}\n\n\t/**\n\t * Appends the modal's node to the DOM, so the portal can render the\n\t * modal in it. Also calls the openFirstModal when this is the first modal to be\n\t * opened.\n\t */\n\tcomponentDidMount() {\n\t\topenModalCount++;\n\n\t\tif ( openModalCount === 1 ) {\n\t\t\tthis.openFirstModal();\n\t\t}\n\t}\n\n\t/**\n\t * Removes the modal's node from the DOM. Also calls closeLastModal when this is\n\t * the last modal to be closed.\n\t */\n\tcomponentWillUnmount() {\n\t\topenModalCount--;\n\n\t\tif ( openModalCount === 0 ) {\n\t\t\tthis.closeLastModal();\n\t\t}\n\n\t\tthis.cleanDOM();\n\t}\n\n\t/**\n\t * Prepares the DOM for the modals to be rendered.\n\t *\n\t * Every modal is mounted in a separate div appended to a parent div\n\t * that is appended to the document body.\n\t *\n\t * The parent div will be created if it does not yet exist, and the\n\t * separate div for this specific modal will be appended to that.\n\t */\n\tprepareDOM() {\n\t\tif ( ! parentElement ) {\n\t\t\tparentElement = document.createElement( 'div' );\n\t\t\tdocument.body.appendChild( parentElement );\n\t\t}\n\t\tthis.node = document.createElement( 'div' );\n\t\tparentElement.appendChild( this.node );\n\t}\n\n\t/**\n\t * Removes the specific mounting point for this modal from the DOM.\n\t */\n\tcleanDOM() {\n\t\tparentElement.removeChild( this.node );\n\t}\n\n\t/**\n\t * Prepares the DOM for this modal and any additional modal to be mounted.\n\t *\n\t * It appends an additional div to the body for the modals to be rendered in,\n\t * it hides any other elements from screen-readers and adds an additional class\n\t * to the body to prevent scrolling while the modal is open.\n\t */\n\topenFirstModal() {\n\t\tariaHelper.hideApp( parentElement );\n\t\tdocument.body.classList.add( this.props.bodyOpenClassName );\n\t}\n\n\t/**\n\t * Cleans up the DOM after the last modal is closed and makes the app available\n\t * for screen-readers again.\n\t */\n\tcloseLastModal() {\n\t\tdocument.body.classList.remove( this.props.bodyOpenClassName );\n\t\tariaHelper.showApp();\n\t}\n\n\t/**\n\t * Stop all onMouseDown events propagating further - they should only go to the modal\n \t * @param {string} event Event object\n\t */\n\tstopEventPropagationOutsideModal( event ) {\n\t\tevent.stopPropagation();\n\t}\n\n\t/**\n\t * Renders the modal.\n\t *\n\t * @return {WPElement} The modal element.\n\t */\n\trender() {\n\t\tconst {\n\t\t\toverlayClassName,\n\t\t\tclassName,\n\t\t\tonRequestClose,\n\t\t\ttitle,\n\t\t\ticon,\n\t\t\tcloseButtonLabel,\n\t\t\tchildren,\n\t\t\taria,\n\t\t\tinstanceId,\n\t\t\tisDismissable,\n\t\t\t...otherProps\n\t\t} = this.props;\n\n\t\tconst headingId = aria.labelledby || `components-modal-header-${ instanceId }`;\n\n\t\t// Disable reason: this stops mouse events from triggering tooltips and\n\t\t// other elements underneath the modal overlay.\n\t\t/* eslint-disable jsx-a11y/no-static-element-interactions */\n\t\treturn createPortal(\n\t\t\t<div\n\t\t\t\tclassName={ classnames( 'components-modal__screen-overlay', overlayClassName ) }\n\t\t\t\tonMouseDown={ this.stopEventPropagationOutsideModal }\n\t\t\t>\n\t\t\t\t<ModalFrame\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t'components-modal__frame',\n\t\t\t\t\t\tclassName\n\t\t\t\t\t) }\n\t\t\t\t\tonRequestClose={ onRequestClose }\n\t\t\t\t\taria={ {\n\t\t\t\t\t\tlabelledby: title ? headingId : null,\n\t\t\t\t\t\tdescribedby: aria.describedby,\n\t\t\t\t\t} }\n\t\t\t\t\t{ ...otherProps }\n\t\t\t\t>\n\t\t\t\t\t<div className={ 'components-modal__content' } tabIndex=\"0\">\n\t\t\t\t\t\t<ModalHeader\n\t\t\t\t\t\t\tcloseLabel={ closeButtonLabel }\n\t\t\t\t\t\t\theadingId={ headingId }\n\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\tisDismissable={ isDismissable }\n\t\t\t\t\t\t\tonClose={ onRequestClose }\n\t\t\t\t\t\t\ttitle={ title }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ children }\n\t\t\t\t\t</div>\n\t\t\t\t</ModalFrame>\n\t\t\t</div>,\n\t\t\tthis.node\n\t\t);\n\t\t/* eslint-enable jsx-a11y/no-static-element-interactions */\n\t}\n}\n\nModal.defaultProps = {\n\tbodyOpenClassName: 'modal-open',\n\trole: 'dialog',\n\ttitle: null,\n\tonRequestClose: noop,\n\tfocusOnMount: true,\n\tshouldCloseOnEsc: true,\n\tshouldCloseOnClickOutside: true,\n\tisDismissable: true,\n\t/* accessibility */\n\taria: {\n\t\tlabelledby: null,\n\t\tdescribedby: null,\n\t},\n};\n\nexport default withInstanceId( Modal );\n","/**\n * External Dependencies\n */\nimport { omit, noop, includes } from 'lodash';\n\n/**\n * WordPress Dependencies\n */\nimport { Component } from '@wordpress/element';\nimport { focus } from '@wordpress/dom';\nimport { UP, DOWN, LEFT, RIGHT, TAB } from '@wordpress/keycodes';\n\nfunction cycleValue( value, total, offset ) {\n\tconst nextValue = value + offset;\n\tif ( nextValue < 0 ) {\n\t\treturn total + nextValue;\n\t} else if ( nextValue >= total ) {\n\t\treturn nextValue - total;\n\t}\n\n\treturn nextValue;\n}\n\nclass NavigableContainer extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\t\tthis.bindContainer = this.bindContainer.bind( this );\n\t\tthis.onKeyDown = this.onKeyDown.bind( this );\n\n\t\tthis.getFocusableContext = this.getFocusableContext.bind( this );\n\t\tthis.getFocusableIndex = this.getFocusableIndex.bind( this );\n\t}\n\n\tbindContainer( ref ) {\n\t\tthis.container = ref;\n\t}\n\n\tgetFocusableContext( target ) {\n\t\tconst { onlyBrowserTabstops } = this.props;\n\t\tconst finder = onlyBrowserTabstops ? focus.tabbable : focus.focusable;\n\t\tconst focusables = finder.find( this.container );\n\n\t\tconst index = this.getFocusableIndex( focusables, target );\n\t\tif ( index > -1 && target ) {\n\t\t\treturn { index, target, focusables };\n\t\t}\n\t\treturn null;\n\t}\n\n\tgetFocusableIndex( focusables, target ) {\n\t\tconst directIndex = focusables.indexOf( target );\n\t\tif ( directIndex !== -1 ) {\n\t\t\treturn directIndex;\n\t\t}\n\t}\n\n\tonKeyDown( event ) {\n\t\tif ( this.props.onKeyDown ) {\n\t\t\tthis.props.onKeyDown( event );\n\t\t}\n\n\t\tconst { getFocusableContext } = this;\n\t\tconst { cycle = true, eventToOffset, onNavigate = noop, stopNavigationEvents } = this.props;\n\n\t\tconst offset = eventToOffset( event );\n\n\t\t// eventToOffset returns undefined if the event is not handled by the component\n\t\tif ( offset !== undefined && stopNavigationEvents ) {\n\t\t\t// Prevents arrow key handlers bound to the document directly interfering\n\t\t\tevent.nativeEvent.stopImmediatePropagation();\n\n\t\t\t// When navigating a collection of items, prevent scroll containers\n\t\t\t// from scrolling.\n\t\t\tif ( event.target.getAttribute( 'role' ) === 'menuitem' ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\n\t\t\tevent.stopPropagation();\n\t\t}\n\n\t\tif ( ! offset ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst context = getFocusableContext( document.activeElement );\n\t\tif ( ! context ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { index, focusables } = context;\n\t\tconst nextIndex = cycle ? cycleValue( index, focusables.length, offset ) : index + offset;\n\t\tif ( nextIndex >= 0 && nextIndex < focusables.length ) {\n\t\t\tfocusables[ nextIndex ].focus();\n\t\t\tonNavigate( nextIndex, focusables[ nextIndex ] );\n\t\t}\n\t}\n\n\trender() {\n\t\tconst { children, ...props } = this.props;\n\n\t\t// Disable reason: Assumed role is applied by parent via props spread.\n\t\t/* eslint-disable jsx-a11y/no-static-element-interactions */\n\t\treturn (\n\t\t\t<div ref={ this.bindContainer }\n\t\t\t\t{ ...omit( props, [\n\t\t\t\t\t'stopNavigationEvents',\n\t\t\t\t\t'eventToOffset',\n\t\t\t\t\t'onNavigate',\n\t\t\t\t\t'cycle',\n\t\t\t\t\t'onlyBrowserTabstops',\n\t\t\t\t] ) }\n\t\t\t\tonKeyDown={ this.onKeyDown }\n\t\t\t\tonFocus={ this.onFocus }>\n\t\t\t\t{ children }\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nexport class NavigableMenu extends Component {\n\trender() {\n\t\tconst { role = 'menu', orientation = 'vertical', ...rest } = this.props;\n\n\t\tconst eventToOffset = ( evt ) => {\n\t\t\tconst { keyCode } = evt;\n\n\t\t\tlet next = [ DOWN ];\n\t\t\tlet previous = [ UP ];\n\n\t\t\tif ( orientation === 'horizontal' ) {\n\t\t\t\tnext = [ RIGHT ];\n\t\t\t\tprevious = [ LEFT ];\n\t\t\t}\n\n\t\t\tif ( orientation === 'both' ) {\n\t\t\t\tnext = [ RIGHT, DOWN ];\n\t\t\t\tprevious = [ LEFT, UP ];\n\t\t\t}\n\n\t\t\tif ( includes( next, keyCode ) ) {\n\t\t\t\treturn 1;\n\t\t\t} else if ( includes( previous, keyCode ) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t};\n\n\t\treturn (\n\t\t\t<NavigableContainer\n\t\t\t\tstopNavigationEvents\n\t\t\t\tonlyBrowserTabstops={ false }\n\t\t\t\trole={ role }\n\t\t\t\taria-orientation={ orientation }\n\t\t\t\teventToOffset={ eventToOffset }\n\t\t\t\t{ ...rest }\n\t\t\t/>\n\t\t);\n\t}\n}\n\nexport class TabbableContainer extends Component {\n\trender() {\n\t\tconst eventToOffset = ( evt ) => {\n\t\t\tconst { keyCode, shiftKey } = evt;\n\t\t\tif ( TAB === keyCode ) {\n\t\t\t\treturn shiftKey ? -1 : 1;\n\t\t\t}\n\n\t\t\t// Allow custom handling of keys besides Tab.\n\t\t\t//\n\t\t\t// By default, TabbableContainer will move focus forward on Tab and\n\t\t\t// backward on Shift+Tab. The handler below will be used for all other\n\t\t\t// events. The semantics for `this.props.eventToOffset`'s return\n\t\t\t// values are the following:\n\t\t\t//\n\t\t\t// - +1: move focus forward\n\t\t\t// - -1: move focus backward\n\t\t\t// - 0: don't move focus, but acknowledge event and thus stop it\n\t\t\t// - undefined: do nothing, let the event propagate\n\t\t\tif ( this.props.eventToOffset ) {\n\t\t\t\treturn this.props.eventToOffset( evt );\n\t\t\t}\n\t\t};\n\n\t\treturn (\n\t\t\t<NavigableContainer\n\t\t\t\tstopNavigationEvents\n\t\t\t\tonlyBrowserTabstops\n\t\t\t\teventToOffset={ eventToOffset }\n\t\t\t\t{ ...this.props }\n\t\t\t/>\n\t\t);\n\t}\n}\n","/**\n * External dependencies\n */\nimport { noop } from 'lodash';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { Button, IconButton } from '../';\n\nfunction Notice( {\n\tclassName,\n\tstatus,\n\tchildren,\n\tonRemove = noop,\n\tisDismissible = true,\n\tactions = [],\n} ) {\n\tconst classes = classnames( className, 'components-notice', 'is-' + status, {\n\t\t'is-dismissible': isDismissible,\n\t} );\n\n\treturn (\n\t\t<div className={ classes }>\n\t\t\t<div className=\"components-notice__content\">\n\t\t\t\t{ children }\n\t\t\t\t{ actions.map( ( { label, url, onClick }, index ) => (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tkey={ index }\n\t\t\t\t\t\thref={ url }\n\t\t\t\t\t\tisLink={ !! url }\n\t\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\t\tclassName=\"components-notice__action\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ label }\n\t\t\t\t\t</Button>\n\t\t\t\t) ) }\n\t\t\t</div>\n\t\t\t{ isDismissible && (\n\t\t\t\t<IconButton\n\t\t\t\t\tclassName=\"components-notice__dismiss\"\n\t\t\t\t\ticon=\"no\"\n\t\t\t\t\tlabel={ __( 'Dismiss this notice' ) }\n\t\t\t\t\tonClick={ onRemove }\n\t\t\t\t\ttooltip={ false }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nexport default Notice;\n","/**\n * External dependencies\n */\nimport { noop, omit } from 'lodash';\n\n/**\n * Internal dependencies\n */\nimport Notice from './';\n\n/**\n* Renders a list of notices.\n*\n* @param {Object} $0 Props passed to the component.\n* @param {Array} $0.notices Array of notices to render.\n* @param {Function} $0.onRemove Function called when a notice should be removed / dismissed.\n* @param {Object} $0.className Name of the class used by the component.\n* @param {Object} $0.children Array of children to be rendered inside the notice list.\n* @return {Object} The rendered notices list.\n*/\nfunction NoticeList( { notices, onRemove = noop, className = 'components-notice-list', children } ) {\n\tconst removeNotice = ( id ) => () => onRemove( id );\n\n\treturn (\n\t\t<div className={ className }>\n\t\t\t{ children }\n\t\t\t{ [ ...notices ].reverse().map( ( notice ) => (\n\t\t\t\t<Notice { ...omit( notice, 'content' ) } key={ notice.id } onRemove={ removeNotice( notice.id ) }>\n\t\t\t\t\t{ notice.content }\n\t\t\t\t</Notice>\n\t\t\t) ) }\n\t\t</div>\n\t);\n}\n\nexport default NoticeList;\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport Button from '../button';\nimport Icon from '../icon';\nimport { G, Path, SVG } from '../primitives';\n\nclass PanelBody extends Component {\n\tconstructor( props ) {\n\t\tsuper( ...arguments );\n\t\tthis.state = {\n\t\t\topened: props.initialOpen === undefined ? true : props.initialOpen,\n\t\t};\n\t\tthis.toggle = this.toggle.bind( this );\n\t}\n\n\ttoggle( event ) {\n\t\tevent.preventDefault();\n\t\tif ( this.props.opened === undefined ) {\n\t\t\tthis.setState( ( state ) => ( {\n\t\t\t\topened: ! state.opened,\n\t\t\t} ) );\n\t\t}\n\n\t\tif ( this.props.onToggle ) {\n\t\t\tthis.props.onToggle();\n\t\t}\n\t}\n\n\trender() {\n\t\tconst { title, children, opened, className, icon } = this.props;\n\t\tconst isOpened = opened === undefined ? this.state.opened : opened;\n\t\tconst classes = classnames( 'components-panel__body', className, { 'is-opened': isOpened } );\n\n\t\treturn (\n\t\t\t<div className={ classes }>\n\t\t\t\t{ !! title && (\n\t\t\t\t\t<h2 className=\"components-panel__body-title\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName=\"components-panel__body-toggle\"\n\t\t\t\t\t\t\tonClick={ this.toggle }\n\t\t\t\t\t\t\taria-expanded={ isOpened }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ isOpened ?\n\t\t\t\t\t\t\t\t<SVG className=\"components-panel__arrow\" width=\"24px\" height=\"24px\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t\t\t\t\t\t\t\t<G><Path fill=\"none\" d=\"M0,0h24v24H0V0z\" /></G>\n\t\t\t\t\t\t\t\t\t<G><Path d=\"M12,8l-6,6l1.41,1.41L12,10.83l4.59,4.58L18,14L12,8z\" /></G>\n\t\t\t\t\t\t\t\t</SVG> :\n\t\t\t\t\t\t\t\t<SVG className=\"components-panel__arrow\" width=\"24px\" height=\"24px\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t\t\t\t\t\t\t\t<G><Path fill=\"none\" d=\"M0,0h24v24H0V0z\" /></G>\n\t\t\t\t\t\t\t\t\t<G><Path d=\"M7.41,8.59L12,13.17l4.59-4.58L18,10l-6,6l-6-6L7.41,8.59z\" /></G>\n\t\t\t\t\t\t\t\t</SVG>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t\t{ icon && <Icon icon={ icon } className=\"components-panel__icon\" size={ 20 } /> }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</h2>\n\t\t\t\t) }\n\t\t\t\t{ isOpened && children }\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nexport default PanelBody;\n","/**\n * WordPress dependencies\n */\nimport deprecated from '@wordpress/deprecated';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport PanelBody from './body';\nimport ColorIndicator from '../color-indicator';\n\nfunction PanelColor( { colorValue, colorName, title, ...props } ) {\n\tdeprecated( 'wp.components.PanelColor', {\n\t\tversion: '4.3',\n\t\talternative: 'wp.editor.PanelColorSettings',\n\t\tplugin: 'Gutenberg',\n\t} );\n\n\t// translators: %s: The name of the color e.g: \"vivid red\" or color hex code if name is not available e.g: \"#f00\".\n\tconst currentColorLabel = sprintf( __( '(current color: %s)' ), colorName || colorValue );\n\treturn (\n\t\t<PanelBody\n\t\t\t{ ...props }\n\t\t\ttitle={ [\n\t\t\t\t<span className=\"components-panel__color-title\" key=\"title\">{ title }</span>,\n\t\t\t\tcolorValue && (\n\t\t\t\t\t<ColorIndicator\n\t\t\t\t\t\tkey=\"color\"\n\t\t\t\t\t\tclassName=\"components-panel__color-indicator\"\n\t\t\t\t\t\taria-label={ currentColorLabel }\n\t\t\t\t\t\tcolorValue={ colorValue }\n\t\t\t\t\t/>\n\t\t\t\t),\n\t\t\t] }\n\t\t/>\n\t);\n}\n\nexport default PanelColor;\n","function PanelHeader( { label, children } ) {\n\treturn (\n\t\t<div className=\"components-panel__header\">\n\t\t\t{ label && <h2>{ label }</h2> }\n\t\t\t{ children }\n\t\t</div>\n\t);\n}\n\nexport default PanelHeader;\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * Internal dependencies\n */\nimport PanelHeader from './header';\n\nfunction Panel( { header, className, children } ) {\n\tconst classNames = classnames( className, 'components-panel' );\n\treturn (\n\t\t<div className={ classNames }>\n\t\t\t{ header && <PanelHeader label={ header } /> }\n\t\t\t{ children }\n\t\t</div>\n\t);\n}\n\nexport default Panel;\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\nfunction PanelRow( { className, children } ) {\n\tconst classes = classnames( 'components-panel__row', className );\n\n\treturn (\n\t\t<div className={ classes }>\n\t\t\t{ children }\n\t\t</div>\n\t);\n}\n\nexport default PanelRow;\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { isString } from 'lodash';\n\n/**\n * Internal dependencies\n */\nimport Dashicon from '../dashicon';\n\n/**\n* Renders a placeholder. Normally used by blocks to render their empty state.\n*\n* @param {Object} props The component props.\n* @return {Object} The rendered placeholder.\n*/\nfunction Placeholder( { icon, children, label, instructions, className, notices, ...additionalProps } ) {\n\tconst classes = classnames( 'components-placeholder', className );\n\n\treturn (\n\t\t<div { ...additionalProps } className={ classes }>\n\t\t\t{ notices }\n\t\t\t<div className=\"components-placeholder__label\">\n\t\t\t\t{ isString( icon ) ? <Dashicon icon={ icon } /> : icon }\n\t\t\t\t{ label }\n\t\t\t</div>\n\t\t\t{ !! instructions && <div className=\"components-placeholder__instructions\">{ instructions }</div> }\n\t\t\t<div className=\"components-placeholder__fieldset\">\n\t\t\t\t{ children }\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nexport default Placeholder;\n","/**\n * External dependencies\n */\nimport clickOutside from 'react-click-outside';\n\n/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\n\nclass PopoverDetectOutside extends Component {\n\thandleClickOutside( event ) {\n\t\tconst { onClickOutside } = this.props;\n\t\tif ( onClickOutside ) {\n\t\t\tonClickOutside( event );\n\t\t}\n\t}\n\n\trender() {\n\t\treturn this.props.children;\n\t}\n}\n\nexport default clickOutside( PopoverDetectOutside );\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { noop } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { Component, createRef } from '@wordpress/element';\nimport { focus } from '@wordpress/dom';\nimport { ESCAPE } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport { computePopoverPosition } from './utils';\nimport withFocusReturn from '../higher-order/with-focus-return';\nimport withConstrainedTabbing from '../higher-order/with-constrained-tabbing';\nimport PopoverDetectOutside from './detect-outside';\nimport IconButton from '../icon-button';\nimport ScrollLock from '../scroll-lock';\nimport { Slot, Fill } from '../slot-fill';\n\nconst FocusManaged = withConstrainedTabbing( withFocusReturn( ( { children } ) => children ) );\n\n/**\n * Name of slot in which popover should fill.\n *\n * @type {String}\n */\nconst SLOT_NAME = 'Popover';\n\nclass Popover extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.focus = this.focus.bind( this );\n\t\tthis.refresh = this.refresh.bind( this );\n\t\tthis.getAnchorRect = this.getAnchorRect.bind( this );\n\t\tthis.updatePopoverSize = this.updatePopoverSize.bind( this );\n\t\tthis.computePopoverPosition = this.computePopoverPosition.bind( this );\n\t\tthis.throttledComputePopoverPosition = this.throttledComputePopoverPosition.bind( this );\n\t\tthis.maybeClose = this.maybeClose.bind( this );\n\n\t\tthis.contentNode = createRef();\n\t\tthis.anchorNode = createRef();\n\n\t\tthis.state = {\n\t\t\tpopoverLeft: null,\n\t\t\tpopoverTop: null,\n\t\t\tyAxis: 'top',\n\t\t\txAxis: 'center',\n\t\t\tcontentHeight: null,\n\t\t\tcontentWidth: null,\n\t\t\tisMobile: false,\n\t\t\tpopoverSize: null,\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tthis.toggleWindowEvents( true );\n\t\tthis.refresh();\n\n\t\t/*\n\t\t * Without the setTimeout, the dom node is not being focused. Related:\n\t\t * https://stackoverflow.com/questions/35522220/react-ref-with-focus-doesnt-work-without-settimeout-my-example\n\t\t *\n\t\t * TODO: Treat the cause, not the symptom.\n\t\t */\n\t\tthis.focusTimeout = setTimeout( () => {\n\t\t\tthis.focus();\n\t\t}, 0 );\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\tif ( prevProps.position !== this.props.position ) {\n\t\t\tthis.computePopoverPosition();\n\t\t}\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis.toggleWindowEvents( false );\n\n\t\tclearTimeout( this.focusTimeout );\n\t}\n\n\ttoggleWindowEvents( isListening ) {\n\t\tconst handler = isListening ? 'addEventListener' : 'removeEventListener';\n\n\t\twindow.cancelAnimationFrame( this.rafHandle );\n\t\twindow[ handler ]( 'resize', this.throttledComputePopoverPosition );\n\t\twindow[ handler ]( 'scroll', this.throttledComputePopoverPosition, true );\n\t}\n\n\tthrottledComputePopoverPosition( event ) {\n\t\tif ( event.type === 'scroll' && this.contentNode.current.contains( event.target ) ) {\n\t\t\treturn;\n\t\t}\n\t\tthis.rafHandle = window.requestAnimationFrame( () => this.computePopoverPosition() );\n\t}\n\n\t/**\n\t * Calling `refresh()` will force the Popover to recalculate its size and\n\t * position. This is useful when a DOM change causes the anchor node to change\n\t * position.\n\t *\n\t * @return {void}\n\t */\n\trefresh() {\n\t\tconst popoverSize = this.updatePopoverSize();\n\t\tthis.computePopoverPosition( popoverSize );\n\t}\n\n\tfocus() {\n\t\tconst { focusOnMount } = this.props;\n\n\t\tif ( ! focusOnMount || ! this.contentNode.current ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( focusOnMount === 'firstElement' ) {\n\t\t\t// Find first tabbable node within content and shift focus, falling\n\t\t\t// back to the popover panel itself.\n\t\t\tconst firstTabbable = focus.tabbable.find( this.contentNode.current )[ 0 ];\n\n\t\t\tif ( firstTabbable ) {\n\t\t\t\tfirstTabbable.focus();\n\t\t\t} else {\n\t\t\t\tthis.contentNode.current.focus();\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tif ( focusOnMount === 'container' ) {\n\t\t\t// Focus the popover panel itself so items in the popover are easily\n\t\t\t// accessed via keyboard navigation.\n\t\t\tthis.contentNode.current.focus();\n\t\t}\n\t}\n\n\tgetAnchorRect( anchor ) {\n\t\tif ( ! anchor || ! anchor.parentNode ) {\n\t\t\treturn;\n\t\t}\n\t\tconst rect = anchor.parentNode.getBoundingClientRect();\n\t\t// subtract padding\n\t\tconst { paddingTop, paddingBottom } = window.getComputedStyle( anchor.parentNode );\n\t\tconst topPad = parseInt( paddingTop, 10 );\n\t\tconst bottomPad = parseInt( paddingBottom, 10 );\n\t\treturn {\n\t\t\tx: rect.left,\n\t\t\ty: rect.top + topPad,\n\t\t\twidth: rect.width,\n\t\t\theight: rect.height - topPad - bottomPad,\n\t\t\tleft: rect.left,\n\t\t\tright: rect.right,\n\t\t\ttop: rect.top + topPad,\n\t\t\tbottom: rect.bottom - bottomPad,\n\t\t};\n\t}\n\n\tupdatePopoverSize() {\n\t\tconst rect = this.contentNode.current.getBoundingClientRect();\n\t\tif (\n\t\t\t! this.state.popoverSize ||\n\t\t\trect.width !== this.state.popoverSize.width ||\n\t\t\trect.height !== this.state.popoverSize.height\n\t\t) {\n\t\t\tconst popoverSize = {\n\t\t\t\theight: rect.height,\n\t\t\t\twidth: rect.width,\n\t\t\t};\n\t\t\tthis.setState( { popoverSize } );\n\t\t\treturn popoverSize;\n\t\t}\n\t\treturn this.state.popoverSize;\n\t}\n\n\tcomputePopoverPosition( popoverSize ) {\n\t\tconst { getAnchorRect = this.getAnchorRect, position = 'top', expandOnMobile } = this.props;\n\t\tconst newPopoverPosition = computePopoverPosition(\n\t\t\tgetAnchorRect( this.anchorNode.current ),\n\t\t\tpopoverSize || this.state.popoverSize,\n\t\t\tposition,\n\t\t\texpandOnMobile\n\t\t);\n\n\t\tif (\n\t\t\tthis.state.yAxis !== newPopoverPosition.yAxis ||\n\t\t\tthis.state.xAxis !== newPopoverPosition.xAxis ||\n\t\t\tthis.state.popoverLeft !== newPopoverPosition.popoverLeft ||\n\t\t\tthis.state.popoverTop !== newPopoverPosition.popoverTop ||\n\t\t\tthis.state.contentHeight !== newPopoverPosition.contentHeight ||\n\t\t\tthis.state.contentWidth !== newPopoverPosition.contentWidth ||\n\t\t\tthis.state.isMobile !== newPopoverPosition.isMobile\n\t\t) {\n\t\t\tthis.setState( newPopoverPosition );\n\t\t}\n\t}\n\n\tmaybeClose( event ) {\n\t\tconst { onKeyDown, onClose } = this.props;\n\n\t\t// Close on escape\n\t\tif ( event.keyCode === ESCAPE && onClose ) {\n\t\t\tevent.stopPropagation();\n\t\t\tonClose();\n\t\t}\n\n\t\t// Preserve original content prop behavior\n\t\tif ( onKeyDown ) {\n\t\t\tonKeyDown( event );\n\t\t}\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\theaderTitle,\n\t\t\tonClose,\n\t\t\tchildren,\n\t\t\tclassName,\n\t\t\tonClickOutside = onClose,\n\t\t\tnoArrow,\n\t\t\t// Disable reason: We generate the `...contentProps` rest as remainder\n\t\t\t// of props which aren't explicitly handled by this component.\n\t\t\t/* eslint-disable no-unused-vars */\n\t\t\tposition,\n\t\t\trange,\n\t\t\tfocusOnMount,\n\t\t\tgetAnchorRect,\n\t\t\texpandOnMobile,\n\t\t\t/* eslint-enable no-unused-vars */\n\t\t\t...contentProps\n\t\t} = this.props;\n\t\tconst {\n\t\t\tpopoverLeft,\n\t\t\tpopoverTop,\n\t\t\tyAxis,\n\t\t\txAxis,\n\t\t\tcontentHeight,\n\t\t\tcontentWidth,\n\t\t\tpopoverSize,\n\t\t\tisMobile,\n\t\t} = this.state;\n\n\t\tconst classes = classnames(\n\t\t\t'components-popover',\n\t\t\tclassName,\n\t\t\t'is-' + yAxis,\n\t\t\t'is-' + xAxis,\n\t\t\t{\n\t\t\t\t'is-mobile': isMobile,\n\t\t\t\t'is-without-arrow': noArrow || ( xAxis === 'center' && yAxis === 'middle' ),\n\t\t\t}\n\t\t);\n\n\t\t// Disable reason: We care to capture the _bubbled_ events from inputs\n\t\t// within popover as inferring close intent.\n\n\t\t/* eslint-disable jsx-a11y/no-static-element-interactions */\n\t\tlet content = (\n\t\t\t<PopoverDetectOutside onClickOutside={ onClickOutside }>\n\t\t\t\t<div\n\t\t\t\t\tclassName={ classes }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\ttop: ! isMobile && popoverTop ? popoverTop + 'px' : undefined,\n\t\t\t\t\t\tleft: ! isMobile && popoverLeft ? popoverLeft + 'px' : undefined,\n\t\t\t\t\t\tvisibility: popoverSize ? undefined : 'hidden',\n\t\t\t\t\t} }\n\t\t\t\t\t{ ...contentProps }\n\t\t\t\t\tonKeyDown={ this.maybeClose }\n\t\t\t\t>\n\t\t\t\t\t{ isMobile && (\n\t\t\t\t\t\t<div className=\"components-popover__header\">\n\t\t\t\t\t\t\t<span className=\"components-popover__header-title\">\n\t\t\t\t\t\t\t\t{ headerTitle }\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<IconButton className=\"components-popover__close\" icon=\"no-alt\" onClick={ onClose } />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t\t<div\n\t\t\t\t\t\tref={ this.contentNode }\n\t\t\t\t\t\tclassName=\"components-popover__content\"\n\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\tmaxHeight: ! isMobile && contentHeight ? contentHeight + 'px' : undefined,\n\t\t\t\t\t\t\tmaxWidth: ! isMobile && contentWidth ? contentWidth + 'px' : undefined,\n\t\t\t\t\t\t} }\n\t\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ children }\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</PopoverDetectOutside>\n\t\t);\n\t\t/* eslint-enable jsx-a11y/no-static-element-interactions */\n\n\t\t// Apply focus to element as long as focusOnMount is truthy; false is\n\t\t// the only \"disabled\" value.\n\t\tif ( focusOnMount ) {\n\t\t\tcontent = <FocusManaged>{ content }</FocusManaged>;\n\t\t}\n\n\t\t// In case there is no slot context in which to render, default to an\n\t\t// in-place rendering.\n\t\tconst { getSlot } = this.context;\n\t\tif ( getSlot && getSlot( SLOT_NAME ) ) {\n\t\t\tcontent = <Fill name={ SLOT_NAME }>{ content }</Fill>;\n\t\t}\n\n\t\treturn <span ref={ this.anchorNode }>\n\t\t\t{ content }\n\t\t\t{ isMobile && expandOnMobile && <ScrollLock /> }\n\t\t</span>;\n\t}\n}\n\nPopover.defaultProps = {\n\tfocusOnMount: 'firstElement',\n\tnoArrow: false,\n};\n\nconst PopoverContainer = Popover;\n\nPopoverContainer.contextTypes = {\n\tgetSlot: noop,\n};\n\nPopoverContainer.Slot = () => <Slot bubblesVirtually name={ SLOT_NAME } />;\n\nexport default PopoverContainer;\n","\n/**\n * Module constants\n */\nconst HEIGHT_OFFSET = 10; // used by the arrow and a bit of empty space\nconst isMobileViewport = () => window.innerWidth < 782;\n\n/**\n * Utility used to compute the popover position over the xAxis\n *\n * @param {Object} anchorRect Anchor Rect.\n * @param {Object} contentSize Content Size.\n * @param {string} xAxis Desired xAxis.\n * @param {string} chosenYAxis yAxis to be used.\n * @param {boolean} expandOnMobile Whether to expand the popover on mobile or not.\n *\n * @return {Object} Popover xAxis position and constraints.\n */\nexport function computePopoverXAxisPosition( anchorRect, contentSize, xAxis, chosenYAxis ) {\n\tconst { width } = contentSize;\n\n\t// x axis alignment choices\n\tconst anchorMidPoint = Math.round( anchorRect.left + ( anchorRect.width / 2 ) );\n\tconst centerAlignment = {\n\t\tpopoverLeft: anchorMidPoint,\n\t\tcontentWidth: (\n\t\t\t( anchorMidPoint - ( width / 2 ) > 0 ? ( width / 2 ) : anchorMidPoint ) +\n\t\t\t( anchorMidPoint + ( width / 2 ) > window.innerWidth ? window.innerWidth - anchorMidPoint : ( width / 2 ) )\n\t\t),\n\t};\n\tconst leftAlignmentX = chosenYAxis === 'middle' ? anchorRect.left : anchorMidPoint;\n\tconst leftAlignment = {\n\t\tpopoverLeft: leftAlignmentX,\n\t\tcontentWidth: leftAlignmentX - width > 0 ? width : leftAlignmentX,\n\t};\n\tconst rightAlignmentX = chosenYAxis === 'middle' ? anchorRect.right : anchorMidPoint;\n\tconst rightAlignment = {\n\t\tpopoverLeft: rightAlignmentX,\n\t\tcontentWidth: rightAlignmentX + width > window.innerWidth ? window.innerWidth - rightAlignmentX : width,\n\t};\n\n\t// Choosing the x axis\n\tlet chosenXAxis;\n\tlet contentWidth = null;\n\tif ( xAxis === 'center' && centerAlignment.contentWidth === width ) {\n\t\tchosenXAxis = 'center';\n\t} else if ( xAxis === 'left' && leftAlignment.contentWidth === width ) {\n\t\tchosenXAxis = 'left';\n\t} else if ( xAxis === 'right' && rightAlignment.contentWidth === width ) {\n\t\tchosenXAxis = 'right';\n\t} else {\n\t\tchosenXAxis = leftAlignment.contentWidth > rightAlignment.contentWidth ? 'left' : 'right';\n\t\tconst chosenWidth = chosenXAxis === 'left' ? leftAlignment.contentWidth : rightAlignment.contentWidth;\n\t\tcontentWidth = chosenWidth !== width ? chosenWidth : null;\n\t}\n\n\tlet popoverLeft;\n\tif ( chosenXAxis === 'center' ) {\n\t\tpopoverLeft = centerAlignment.popoverLeft;\n\t} else if ( chosenXAxis === 'left' ) {\n\t\tpopoverLeft = leftAlignment.popoverLeft;\n\t} else {\n\t\tpopoverLeft = rightAlignment.popoverLeft;\n\t}\n\n\treturn {\n\t\txAxis: chosenXAxis,\n\t\tpopoverLeft,\n\t\tcontentWidth,\n\t};\n}\n\n/**\n * Utility used to compute the popover position over the yAxis\n *\n * @param {Object} anchorRect Anchor Rect.\n * @param {Object} contentSize Content Size.\n * @param {string} yAxis Desired yAxis.\n * @param {boolean} expandOnMobile Whether to expand the popover on mobile or not.\n *\n * @return {Object} Popover xAxis position and constraints.\n */\nexport function computePopoverYAxisPosition( anchorRect, contentSize, yAxis ) {\n\tconst { height } = contentSize;\n\n\t// y axis alignment choices\n\tconst anchorMidPoint = anchorRect.top + ( anchorRect.height / 2 );\n\tconst middleAlignment = {\n\t\tpopoverTop: anchorMidPoint,\n\t\tcontentHeight: (\n\t\t\t( anchorMidPoint - ( height / 2 ) > 0 ? ( height / 2 ) : anchorMidPoint ) +\n\t\t\t( anchorMidPoint + ( height / 2 ) > window.innerHeight ? window.innerHeight - anchorMidPoint : ( height / 2 ) )\n\t\t),\n\t};\n\tconst topAlignment = {\n\t\tpopoverTop: anchorRect.top,\n\t\tcontentHeight: anchorRect.top - HEIGHT_OFFSET - height > 0 ? height : anchorRect.top - HEIGHT_OFFSET,\n\t};\n\tconst bottomAlignment = {\n\t\tpopoverTop: anchorRect.bottom,\n\t\tcontentHeight: anchorRect.bottom + HEIGHT_OFFSET + height > window.innerHeight ? window.innerHeight - HEIGHT_OFFSET - anchorRect.bottom : height,\n\t};\n\n\t// Choosing the y axis\n\tlet chosenYAxis;\n\tlet contentHeight = null;\n\tif ( yAxis === 'middle' && middleAlignment.contentHeight === height ) {\n\t\tchosenYAxis = 'middle';\n\t} else if ( yAxis === 'top' && topAlignment.contentHeight === height ) {\n\t\tchosenYAxis = 'top';\n\t} else if ( yAxis === 'bottom' && bottomAlignment.contentHeight === height ) {\n\t\tchosenYAxis = 'bottom';\n\t} else {\n\t\tchosenYAxis = topAlignment.contentHeight > bottomAlignment.contentHeight ? 'top' : 'bottom';\n\t\tconst chosenHeight = chosenYAxis === 'top' ? topAlignment.contentHeight : bottomAlignment.contentHeight;\n\t\tcontentHeight = chosenHeight !== height ? chosenHeight : null;\n\t}\n\n\tlet popoverTop;\n\tif ( chosenYAxis === 'middle' ) {\n\t\tpopoverTop = middleAlignment.popoverTop;\n\t} else if ( chosenYAxis === 'top' ) {\n\t\tpopoverTop = topAlignment.popoverTop;\n\t} else {\n\t\tpopoverTop = bottomAlignment.popoverTop;\n\t}\n\n\treturn {\n\t\tyAxis: chosenYAxis,\n\t\tpopoverTop,\n\t\tcontentHeight,\n\t};\n}\n\n/**\n * Utility used to compute the popover position and the content max width/height for a popover\n * given its anchor rect and its content size.\n *\n * @param {Object} anchorRect Anchor Rect.\n * @param {Object} contentSize Content Size.\n * @param {string} position Position.\n * @param {boolean} expandOnMobile Whether to expand the popover on mobile or not.\n *\n * @return {Object} Popover position and constraints.\n */\nexport function computePopoverPosition( anchorRect, contentSize, position = 'top', expandOnMobile = false ) {\n\tconst [ yAxis, xAxis = 'center' ] = position.split( ' ' );\n\n\tconst yAxisPosition = computePopoverYAxisPosition( anchorRect, contentSize, yAxis );\n\tconst xAxisPosition = computePopoverXAxisPosition( anchorRect, contentSize, xAxis, yAxisPosition.yAxis );\n\n\treturn {\n\t\tisMobile: isMobileViewport() && expandOnMobile,\n\t\t...xAxisPosition,\n\t\t...yAxisPosition,\n\t};\n}\n","export * from './svg';\n","/**\n * External dependencies\n */\nimport { createElement } from '@wordpress/element';\n\nexport const Circle = ( props ) => createElement( 'circle', props );\nexport const G = ( props ) => createElement( 'g', props );\nexport const Path = ( props ) => createElement( 'path', props );\nexport const Polygon = ( props ) => createElement( 'polygon', props );\nexport const Rect = ( props ) => createElement( 'rect', props );\n\nexport const SVG = ( props ) => {\n\tconst appliedProps = {\n\t\t...props,\n\t\trole: 'img',\n\t\t'aria-hidden': 'true',\n\t\tfocusable: 'false',\n\t};\n\n\t// Disable reason: We need to have a way to render HTML tag for web.\n\t// eslint-disable-next-line react/forbid-elements\n\treturn <svg { ...appliedProps } />;\n};\n","/**\n * Internal dependencies\n */\nimport { buildTermsTree } from './terms';\nimport TreeSelect from '../tree-select';\n\nexport default function CategorySelect( { label, noOptionLabel, categoriesList, selectedCategoryId, onChange } ) {\n\tconst termsTree = buildTermsTree( categoriesList );\n\treturn (\n\t\t<TreeSelect\n\t\t\t{ ...{ label, noOptionLabel, onChange } }\n\t\t\ttree={ termsTree }\n\t\t\tselectedId={ selectedCategoryId }\n\t\t/>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { RangeControl, SelectControl } from '../';\nimport CategorySelect from './category-select';\n\nconst DEFAULT_MIN_ITEMS = 1;\nconst DEFAULT_MAX_ITEMS = 100;\n\nexport default function QueryControls( {\n\tcategoriesList,\n\tselectedCategoryId,\n\tnumberOfItems,\n\torder,\n\torderBy,\n\tmaxItems = DEFAULT_MAX_ITEMS,\n\tminItems = DEFAULT_MIN_ITEMS,\n\tonCategoryChange,\n\tonNumberOfItemsChange,\n\tonOrderChange,\n\tonOrderByChange,\n} ) {\n\treturn [\n\t\t( onOrderChange && onOrderByChange ) && (\n\t\t\t<SelectControl\n\t\t\t\tkey=\"query-controls-order-select\"\n\t\t\t\tlabel={ __( 'Order by' ) }\n\t\t\t\tvalue={ `${ orderBy }/${ order }` }\n\t\t\t\toptions={ [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: __( 'Newest to Oldest' ),\n\t\t\t\t\t\tvalue: 'date/desc',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: __( 'Oldest to Newest' ),\n\t\t\t\t\t\tvalue: 'date/asc',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\t/* translators: label for ordering posts by title in ascending order */\n\t\t\t\t\t\tlabel: __( 'A → Z' ),\n\t\t\t\t\t\tvalue: 'title/asc',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\t/* translators: label for ordering posts by title in descending order */\n\t\t\t\t\t\tlabel: __( 'Z → A' ),\n\t\t\t\t\t\tvalue: 'title/desc',\n\t\t\t\t\t},\n\t\t\t\t] }\n\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\tconst [ newOrderBy, newOrder ] = value.split( '/' );\n\t\t\t\t\tif ( newOrder !== order ) {\n\t\t\t\t\t\tonOrderChange( newOrder );\n\t\t\t\t\t}\n\t\t\t\t\tif ( newOrderBy !== orderBy ) {\n\t\t\t\t\t\tonOrderByChange( newOrderBy );\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t/>\n\t\t),\n\t\tonCategoryChange && (\n\t\t\t<CategorySelect\n\t\t\t\tkey=\"query-controls-category-select\"\n\t\t\t\tcategoriesList={ categoriesList }\n\t\t\t\tlabel={ __( 'Category' ) }\n\t\t\t\tnoOptionLabel={ __( 'All' ) }\n\t\t\t\tselectedCategoryId={ selectedCategoryId }\n\t\t\t\tonChange={ onCategoryChange }\n\t\t\t/> ),\n\t\tonNumberOfItemsChange && (\n\t\t\t<RangeControl\n\t\t\t\tkey=\"query-controls-range-control\"\n\t\t\t\tlabel={ __( 'Number of items' ) }\n\t\t\t\tvalue={ numberOfItems }\n\t\t\t\tonChange={ onNumberOfItemsChange }\n\t\t\t\tmin={ minItems }\n\t\t\t\tmax={ maxItems }\n\t\t\t/>\n\t\t),\n\t];\n}\n","/**\n * External dependencies\n */\nimport { groupBy } from 'lodash';\n\n/**\n * Returns terms in a tree form.\n *\n * @param {Array} flatTerms Array of terms in flat format.\n *\n * @return {Array} Array of terms in tree format.\n */\nexport function buildTermsTree( flatTerms ) {\n\tconst termsByParent = groupBy( flatTerms, 'parent' );\n\tconst fillWithChildren = ( terms ) => {\n\t\treturn terms.map( ( term ) => {\n\t\t\tconst children = termsByParent[ term.id ];\n\t\t\treturn {\n\t\t\t\t...term,\n\t\t\t\tchildren: children && children.length ?\n\t\t\t\t\tfillWithChildren( children ) :\n\t\t\t\t\t[],\n\t\t\t};\n\t\t} );\n\t};\n\n\treturn fillWithChildren( termsByParent[ '0' ] || [] );\n}\n","/**\n * External dependencies\n */\nimport { isEmpty } from 'lodash';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { withInstanceId } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BaseControl from '../base-control';\n\nfunction RadioControl( { label, className, selected, help, instanceId, onChange, options = [] } ) {\n\tconst id = `inspector-radio-control-${ instanceId }`;\n\tconst onChangeValue = ( event ) => onChange( event.target.value );\n\n\treturn ! isEmpty( options ) && (\n\t\t<BaseControl label={ label } id={ id } help={ help } className={ classnames( className, 'components-radio-control' ) }>\n\t\t\t{ options.map( ( option, index ) =>\n\t\t\t\t<div\n\t\t\t\t\tkey={ `${ id }-${ index }` }\n\t\t\t\t\tclassName=\"components-radio-control__option\"\n\t\t\t\t>\n\t\t\t\t\t<input\n\t\t\t\t\t\tid={ `${ id }-${ index }` }\n\t\t\t\t\t\tclassName=\"components-radio-control__input\"\n\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\tname={ id }\n\t\t\t\t\t\tvalue={ option.value }\n\t\t\t\t\t\tonChange={ onChangeValue }\n\t\t\t\t\t\tchecked={ option.value === selected }\n\t\t\t\t\t\taria-describedby={ !! help ? `${ id }__help` : undefined }\n\t\t\t\t\t/>\n\t\t\t\t\t<label htmlFor={ `${ id }-${ index }` }>\n\t\t\t\t\t\t{ option.label }\n\t\t\t\t\t</label>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</BaseControl>\n\t);\n}\n\nexport default withInstanceId( RadioControl );\n","/**\n * External dependencies\n */\nimport { isFinite } from 'lodash';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { withInstanceId } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { BaseControl, Button, Dashicon } from '../';\n\nfunction RangeControl( {\n\tclassName,\n\tlabel,\n\tvalue,\n\tinstanceId,\n\tonChange,\n\tbeforeIcon,\n\tafterIcon,\n\thelp,\n\tallowReset,\n\tinitialPosition,\n\t...props\n} ) {\n\tconst id = `inspector-range-control-${ instanceId }`;\n\tconst resetValue = () => onChange();\n\tconst onChangeValue = ( event ) => {\n\t\tconst newValue = event.target.value;\n\t\tif ( newValue === '' ) {\n\t\t\tresetValue();\n\t\t\treturn;\n\t\t}\n\t\tonChange( Number( newValue ) );\n\t};\n\tconst initialSliderValue = isFinite( value ) ? value : initialPosition || '';\n\n\treturn (\n\t\t<BaseControl\n\t\t\tlabel={ label }\n\t\t\tid={ id }\n\t\t\thelp={ help }\n\t\t\tclassName={ classnames( 'components-range-control', className ) }\n\t\t>\n\t\t\t{ beforeIcon && <Dashicon icon={ beforeIcon } /> }\n\t\t\t<input\n\t\t\t\tclassName=\"components-range-control__slider\"\n\t\t\t\tid={ id }\n\t\t\t\ttype=\"range\"\n\t\t\t\tvalue={ initialSliderValue }\n\t\t\t\tonChange={ onChangeValue }\n\t\t\t\taria-describedby={ !! help ? id + '__help' : undefined }\n\t\t\t\t{ ...props } />\n\t\t\t{ afterIcon && <Dashicon icon={ afterIcon } /> }\n\t\t\t<input\n\t\t\t\tclassName=\"components-range-control__number\"\n\t\t\t\ttype=\"number\"\n\t\t\t\tonChange={ onChangeValue }\n\t\t\t\taria-label={ label }\n\t\t\t\tvalue={ value }\n\t\t\t\t{ ...props }\n\t\t\t/>\n\t\t\t{ allowReset &&\n\t\t\t\t<Button onClick={ resetValue } disabled={ value === undefined }>\n\t\t\t\t\t{ __( 'Reset' ) }\n\t\t\t\t</Button>\n\t\t\t}\n\t\t</BaseControl>\n\t);\n}\n\nexport default withInstanceId( RangeControl );\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport ReResizableBox from 're-resizable';\n\nfunction ResizableBox( { className, ...props } ) {\n\t// Removes the inline styles in the drag handles.\n\tconst handleStylesOverrides = {\n\t\twidth: null,\n\t\theight: null,\n\t\ttop: null,\n\t\tright: null,\n\t\tbottom: null,\n\t\tleft: null,\n\t};\n\n\tconst handleClassName = 'components-resizable-box__handle';\n\n\treturn (\n\t\t<ReResizableBox\n\t\t\tclassName={ classnames(\n\t\t\t\t'components-resizable-box__container',\n\t\t\t\tclassName,\n\t\t\t) }\n\t\t\thandleClasses={ {\n\t\t\t\ttop: classnames(\n\t\t\t\t\thandleClassName,\n\t\t\t\t\t'components-resizable-box__handle-top',\n\t\t\t\t),\n\t\t\t\tright: classnames(\n\t\t\t\t\thandleClassName,\n\t\t\t\t\t'components-resizable-box__handle-right',\n\t\t\t\t),\n\t\t\t\tbottom: classnames(\n\t\t\t\t\thandleClassName,\n\t\t\t\t\t'components-resizable-box__handle-bottom',\n\t\t\t\t),\n\t\t\t\tleft: classnames(\n\t\t\t\t\thandleClassName,\n\t\t\t\t\t'components-resizable-box__handle-left',\n\t\t\t\t),\n\t\t\t} }\n\t\t\thandleStyles={ {\n\t\t\t\ttop: handleStylesOverrides,\n\t\t\t\tright: handleStylesOverrides,\n\t\t\t\tbottom: handleStylesOverrides,\n\t\t\t\tleft: handleStylesOverrides,\n\t\t\t} }\n\t\t\t{ ...props }\n\t\t/>\n\t);\n}\n\nexport default ResizableBox;\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress Dependencies\n */\nimport { cloneElement, Children } from '@wordpress/element';\n\nfunction ResponsiveWrapper( { naturalWidth, naturalHeight, children } ) {\n\tif ( Children.count( children ) !== 1 ) {\n\t\treturn null;\n\t}\n\tconst imageStyle = {\n\t\tpaddingBottom: ( naturalHeight / naturalWidth * 100 ) + '%',\n\t};\n\treturn (\n\t\t<div className=\"components-responsive-wrapper\">\n\t\t\t<div style={ imageStyle } />\n\t\t\t{ cloneElement( children, {\n\t\t\t\tclassName: classnames( 'components-responsive-wrapper__content', children.props.className ),\n\t\t\t} ) }\n\t\t</div>\n\t);\n}\n\nexport default ResponsiveWrapper;\n","/**\n * WordPress dependencies\n */\nimport { Component, renderToString, createRef } from '@wordpress/element';\nimport { withGlobalEvents } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport FocusableIframe from '../focusable-iframe';\n\nclass Sandbox extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.trySandbox = this.trySandbox.bind( this );\n\t\tthis.checkMessageForResize = this.checkMessageForResize.bind( this );\n\n\t\tthis.iframe = createRef();\n\n\t\tthis.state = {\n\t\t\twidth: 0,\n\t\t\theight: 0,\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tthis.trySandbox();\n\t}\n\n\tcomponentDidUpdate() {\n\t\tthis.trySandbox();\n\t}\n\n\tisFrameAccessible() {\n\t\ttry {\n\t\t\treturn !! this.iframe.current.contentDocument.body;\n\t\t} catch ( e ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\tcheckMessageForResize( event ) {\n\t\tconst iframe = this.iframe.current;\n\n\t\t// Attempt to parse the message data as JSON if passed as string\n\t\tlet data = event.data || {};\n\t\tif ( 'string' === typeof data ) {\n\t\t\ttry {\n\t\t\t\tdata = JSON.parse( data );\n\t\t\t} catch ( e ) {} // eslint-disable-line no-empty\n\t\t}\n\n\t\t// Verify that the mounted element is the source of the message\n\t\tif ( ! iframe || iframe.contentWindow !== event.source ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Update the state only if the message is formatted as we expect, i.e.\n\t\t// as an object with a 'resize' action, width, and height\n\t\tconst { action, width, height } = data;\n\t\tconst { width: oldWidth, height: oldHeight } = this.state;\n\n\t\tif ( 'resize' === action && ( oldWidth !== width || oldHeight !== height ) ) {\n\t\t\tthis.setState( { width, height } );\n\t\t}\n\t}\n\n\ttrySandbox() {\n\t\tif ( ! this.isFrameAccessible() ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst body = this.iframe.current.contentDocument.body;\n\t\tif ( null !== body.getAttribute( 'data-resizable-iframe-connected' ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst observeAndResizeJS = `\n\t\t\t( function() {\n\t\t\t\tvar observer;\n\n\t\t\t\tif ( ! window.MutationObserver || ! document.body || ! window.parent ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tfunction sendResize() {\n\t\t\t\t\tvar clientBoundingRect = document.body.getBoundingClientRect();\n\n\t\t\t\t\twindow.parent.postMessage( {\n\t\t\t\t\t\taction: 'resize',\n\t\t\t\t\t\twidth: clientBoundingRect.width,\n\t\t\t\t\t\theight: clientBoundingRect.height,\n\t\t\t\t\t}, '*' );\n\t\t\t\t}\n\n\t\t\t\tobserver = new MutationObserver( sendResize );\n\t\t\t\tobserver.observe( document.body, {\n\t\t\t\t\tattributes: true,\n\t\t\t\t\tattributeOldValue: false,\n\t\t\t\t\tcharacterData: true,\n\t\t\t\t\tcharacterDataOldValue: false,\n\t\t\t\t\tchildList: true,\n\t\t\t\t\tsubtree: true\n\t\t\t\t} );\n\n\t\t\t\twindow.addEventListener( 'load', sendResize, true );\n\n\t\t\t\t// Hack: Remove viewport unit styles, as these are relative\n\t\t\t\t// the iframe root and interfere with our mechanism for\n\t\t\t\t// determining the unconstrained page bounds.\n\t\t\t\tfunction removeViewportStyles( ruleOrNode ) {\n\t\t\t\t\t[ 'width', 'height', 'minHeight', 'maxHeight' ].forEach( function( style ) {\n\t\t\t\t\t\tif ( /^\\\\d+(vmin|vmax|vh|vw)$/.test( ruleOrNode.style[ style ] ) ) {\n\t\t\t\t\t\t\truleOrNode.style[ style ] = '';\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\tArray.prototype.forEach.call( document.querySelectorAll( '[style]' ), removeViewportStyles );\n\t\t\t\tArray.prototype.forEach.call( document.styleSheets, function( stylesheet ) {\n\t\t\t\t\tArray.prototype.forEach.call( stylesheet.cssRules || stylesheet.rules, removeViewportStyles );\n\t\t\t\t} );\n\n\t\t\t\tdocument.body.style.position = 'absolute';\n\t\t\t\tdocument.body.style.width = '100%';\n\t\t\t\tdocument.body.setAttribute( 'data-resizable-iframe-connected', '' );\n\n\t\t\t\tsendResize();\n\n\t\t\t\t// Resize events can change the width of elements with 100% width, but we don't\n\t\t\t\t// get an DOM mutations for that, so do the resize when the window is resized, too.\n\t\t\t\twindow.addEventListener( 'resize', sendResize, true );\n\t\t} )();`;\n\n\t\tconst style = `\n\t\t\tbody {\n\t\t\t\tmargin: 0;\n\t\t\t}\n\t\t\thtml,\n\t\t\tbody,\n\t\t\tbody > div,\n\t\t\tbody > div > iframe {\n\t\t\t\twidth: 100%;\n\t\t\t}\n\t\t\thtml.wp-has-aspect-ratio,\n\t\t\tbody.wp-has-aspect-ratio,\n\t\t\tbody.wp-has-aspect-ratio > div,\n\t\t\tbody.wp-has-aspect-ratio > div > iframe {\n\t\t\t\theight: 100%;\n\t\t\t\toverflow: hidden; /* If it has an aspect ratio, it shouldn't scroll. */\n\t\t\t}\n\t\t\tbody > div > * {\n\t\t\t\tmargin-top: 0 !important; /* Has to have !important to override inline styles. */\n\t\t\t\tmargin-bottom: 0 !important;\n\t\t\t}\n\t\t`;\n\n\t\t// put the html snippet into a html document, and then write it to the iframe's document\n\t\t// we can use this in the future to inject custom styles or scripts.\n\t\t// Scripts go into the body rather than the head, to support embedded content such as Instagram\n\t\t// that expect the scripts to be part of the body.\n\t\tconst htmlDoc = (\n\t\t\t<html lang={ document.documentElement.lang } className={ this.props.type }>\n\t\t\t\t<head>\n\t\t\t\t\t<title>{ this.props.title }</title>\n\t\t\t\t\t<style dangerouslySetInnerHTML={ { __html: style } } />\n\t\t\t\t</head>\n\t\t\t\t<body data-resizable-iframe-connected=\"data-resizable-iframe-connected\" className={ this.props.type }>\n\t\t\t\t\t<div dangerouslySetInnerHTML={ { __html: this.props.html } } />\n\t\t\t\t\t<script type=\"text/javascript\" dangerouslySetInnerHTML={ { __html: observeAndResizeJS } } />\n\t\t\t\t\t{ ( this.props.scripts && this.props.scripts.map(\n\t\t\t\t\t\t( src ) => <script key={ src } src={ src } />\n\t\t\t\t\t) ) }\n\t\t\t\t</body>\n\t\t\t</html>\n\t\t);\n\n\t\t// writing the document like this makes it act in the same way as if it was\n\t\t// loaded over the network, so DOM creation and mutation, script execution, etc.\n\t\t// all work as expected\n\t\tconst iframeDocument = this.iframe.current.contentWindow.document;\n\t\tiframeDocument.open();\n\t\tiframeDocument.write( '<!DOCTYPE html>' + renderToString( htmlDoc ) );\n\t\tiframeDocument.close();\n\t}\n\n\tstatic get defaultProps() {\n\t\treturn {\n\t\t\thtml: '',\n\t\t\ttitle: '',\n\t\t};\n\t}\n\n\trender() {\n\t\tconst { title } = this.props;\n\n\t\treturn (\n\t\t\t<FocusableIframe\n\t\t\t\tiframeRef={ this.iframe }\n\t\t\t\ttitle={ title }\n\t\t\t\tclassName=\"components-sandbox\"\n\t\t\t\tsandbox=\"allow-scripts allow-same-origin allow-presentation\"\n\t\t\t\tonLoad={ this.trySandbox }\n\t\t\t\twidth={ Math.ceil( this.state.width ) }\n\t\t\t\theight={ Math.ceil( this.state.height ) } />\n\t\t);\n\t}\n}\n\nSandbox = withGlobalEvents( {\n\tmessage: 'checkMessageForResize',\n} )( Sandbox );\n\nexport default Sandbox;\n","/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\n\n/**\n * Creates a ScrollLock component bound to the specified document.\n *\n * This function creates a ScrollLock component for the specified document\n * and is exposed so we can create an isolated component for unit testing.\n *\n * @param {Object} args Keyword args.\n * @param {HTMLDocument} args.htmlDocument The document to lock the scroll for.\n * @param {string} args.className The name of the class used to lock scrolling.\n * @return {Component} The bound ScrollLock component.\n */\nexport function createScrollLockComponent( {\n\thtmlDocument = document,\n\tclassName = 'lockscroll',\n} = {} ) {\n\tlet lockCounter = 0;\n\n\t/*\n\t * Setting `overflow: hidden` on html and body elements resets body scroll in iOS.\n\t * Save scroll top so we can restore it after locking scroll.\n\t *\n\t * NOTE: It would be cleaner and possibly safer to find a localized solution such\n\t * as preventing default on certain touchmove events.\n\t */\n\tlet previousScrollTop = 0;\n\n\t/**\n\t * Locks and unlocks scroll depending on the boolean argument.\n\t *\n\t * @param {boolean} locked Whether or not scroll should be locked.\n\t */\n\tfunction setLocked( locked ) {\n\t\tconst scrollingElement = htmlDocument.scrollingElement || htmlDocument.body;\n\n\t\tif ( locked ) {\n\t\t\tpreviousScrollTop = scrollingElement.scrollTop;\n\t\t}\n\n\t\tconst methodName = locked ? 'add' : 'remove';\n\t\tscrollingElement.classList[ methodName ]( className );\n\n\t\t// Adding the class to the document element seems to be necessary in iOS.\n\t\thtmlDocument.documentElement.classList[ methodName ]( className );\n\n\t\tif ( ! locked ) {\n\t\t\tscrollingElement.scrollTop = previousScrollTop;\n\t\t}\n\t}\n\n\t/**\n\t * Requests scroll lock.\n\t *\n\t * This function tracks requests for scroll lock. It locks scroll on the first\n\t * request and counts each request so `releaseLock` can unlock scroll when\n\t * all requests have been released.\n\t */\n\tfunction requestLock() {\n\t\tif ( lockCounter === 0 ) {\n\t\t\tsetLocked( true );\n\t\t}\n\n\t\t++lockCounter;\n\t}\n\n\t/**\n\t * Releases a request for scroll lock.\n\t *\n\t * This function tracks released requests for scroll lock. When all requests\n\t * have been released, it unlocks scroll.\n\t */\n\tfunction releaseLock() {\n\t\tif ( lockCounter === 1 ) {\n\t\t\tsetLocked( false );\n\t\t}\n\n\t\t--lockCounter;\n\t}\n\n\treturn class ScrollLock extends Component {\n\t\t/**\n\t\t * Requests scroll lock on mount.\n\t\t */\n\t\tcomponentDidMount() {\n\t\t\trequestLock();\n\t\t}\n\t\t/**\n\t\t * Releases scroll lock before unmount.\n\t\t */\n\t\tcomponentWillUnmount() {\n\t\t\treleaseLock();\n\t\t}\n\n\t\t/**\n\t\t * Render nothing as this component is merely a way to declare scroll lock.\n\t\t *\n\t\t * @return {null} Render nothing by returning `null`.\n\t\t */\n\t\trender() {\n\t\t\treturn null;\n\t\t}\n\t};\n}\n\nexport default createScrollLockComponent();\n","/**\n * External dependencies\n */\nimport { isEmpty } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { withInstanceId } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BaseControl from '../base-control';\n\nfunction SelectControl( {\n\thelp,\n\tinstanceId,\n\tlabel,\n\tmultiple = false,\n\tonChange,\n\toptions = [],\n\tclassName,\n\t...props\n} ) {\n\tconst id = `inspector-select-control-${ instanceId }`;\n\tconst onChangeValue = ( event ) => {\n\t\tif ( multiple ) {\n\t\t\tconst selectedOptions = [ ...event.target.options ].filter( ( { selected } ) => selected );\n\t\t\tconst newValues = selectedOptions.map( ( { value } ) => value );\n\t\t\tonChange( newValues );\n\t\t\treturn;\n\t\t}\n\t\tonChange( event.target.value );\n\t};\n\n\t// Disable reason: A select with an onchange throws a warning\n\n\t/* eslint-disable jsx-a11y/no-onchange */\n\treturn ! isEmpty( options ) && (\n\t\t<BaseControl label={ label } id={ id } help={ help } className={ className }>\n\t\t\t<select\n\t\t\t\tid={ id }\n\t\t\t\tclassName=\"components-select-control__input\"\n\t\t\t\tonChange={ onChangeValue }\n\t\t\t\taria-describedby={ !! help ? `${ id }__help` : undefined }\n\t\t\t\tmultiple={ multiple }\n\t\t\t\t{ ...props }\n\t\t\t>\n\t\t\t\t{ options.map( ( option, index ) =>\n\t\t\t\t\t<option\n\t\t\t\t\t\tkey={ `${ option.label }-${ option.value }-${ index }` }\n\t\t\t\t\t\tvalue={ option.value }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ option.label }\n\t\t\t\t\t</option>\n\t\t\t\t) }\n\t\t\t</select>\n\t\t</BaseControl>\n\t);\n\t/* eslint-enable jsx-a11y/no-onchange */\n}\n\nexport default withInstanceId( SelectControl );\n","/**\n * External dependencies.\n */\nimport { isEqual } from 'lodash';\n\n/**\n * WordPress dependencies.\n */\nimport {\n\tComponent,\n\tRawHTML,\n} from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport apiFetch from '@wordpress/api-fetch';\nimport { addQueryArgs } from '@wordpress/url';\n\n/**\n * Internal dependencies.\n */\nimport Placeholder from '../placeholder';\nimport Spinner from '../spinner';\n\nexport function rendererPath( block, attributes = null, urlQueryArgs = {} ) {\n\treturn addQueryArgs( `/wp/v2/block-renderer/${ block }`, {\n\t\tcontext: 'edit',\n\t\t...( null !== attributes ? { attributes } : {} ),\n\t\t...urlQueryArgs,\n\t} );\n}\n\nexport class ServerSideRender extends Component {\n\tconstructor( props ) {\n\t\tsuper( props );\n\t\tthis.state = {\n\t\t\tresponse: null,\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tthis.isStillMounted = true;\n\t\tthis.fetch( this.props );\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis.isStillMounted = false;\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\tif ( ! isEqual( prevProps, this.props ) ) {\n\t\t\tthis.fetch( this.props );\n\t\t}\n\t}\n\n\tfetch( props ) {\n\t\tif ( null !== this.state.response ) {\n\t\t\tthis.setState( { response: null } );\n\t\t}\n\t\tconst { block, attributes = null, urlQueryArgs = {} } = props;\n\n\t\tconst path = rendererPath( block, attributes, urlQueryArgs );\n\n\t\treturn apiFetch( { path } )\n\t\t\t.then( ( response ) => {\n\t\t\t\tif ( this.isStillMounted && response && response.rendered ) {\n\t\t\t\t\tthis.setState( { response: response.rendered } );\n\t\t\t\t}\n\t\t\t} )\n\t\t\t.catch( ( error ) => {\n\t\t\t\tif ( this.isStillMounted ) {\n\t\t\t\t\tthis.setState( { response: {\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\terrorMsg: error.message,\n\t\t\t\t\t} } );\n\t\t\t\t}\n\t\t\t} );\n\t}\n\n\trender() {\n\t\tconst response = this.state.response;\n\t\tif ( ! response ) {\n\t\t\treturn (\n\t\t\t\t<Placeholder><Spinner /></Placeholder>\n\t\t\t);\n\t\t} else if ( response.error ) {\n\t\t\t// translators: %s: error message describing the problem\n\t\t\tconst errorMessage = sprintf( __( 'Error loading block: %s' ), response.errorMsg );\n\t\t\treturn (\n\t\t\t\t<Placeholder>{ errorMessage }</Placeholder>\n\t\t\t);\n\t\t} else if ( ! response.length ) {\n\t\t\treturn (\n\t\t\t\t<Placeholder>{ __( 'No results found.' ) }</Placeholder>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<RawHTML key=\"html\">{ response }</RawHTML>\n\t\t);\n\t}\n}\n\nexport default ServerSideRender;\n","/**\n * External dependencies\n */\nimport { isString, isObject } from 'lodash';\n\nfunction Shortcut( { shortcut, className } ) {\n\tif ( ! shortcut ) {\n\t\treturn null;\n\t}\n\n\tlet displayText;\n\tlet ariaLabel;\n\n\tif ( isString( shortcut ) ) {\n\t\tdisplayText = shortcut;\n\t}\n\n\tif ( isObject( shortcut ) ) {\n\t\tdisplayText = shortcut.display;\n\t\tariaLabel = shortcut.ariaLabel;\n\t}\n\n\treturn (\n\t\t<span className={ className } aria-label={ ariaLabel }>\n\t\t\t{ displayText }\n\t\t</span>\n\t);\n}\n\nexport default Shortcut;\n","/**\n * External dependencies\n */\nimport { noop, isFunction } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { Component, createPortal } from '@wordpress/element';\n\nlet occurrences = 0;\n\nclass Fill extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\t\tthis.occurrence = ++occurrences;\n\t}\n\n\tcomponentDidMount() {\n\t\tconst { registerFill = noop } = this.context;\n\n\t\tregisterFill( this.props.name, this );\n\t}\n\n\tcomponentWillUpdate() {\n\t\tif ( ! this.occurrence ) {\n\t\t\tthis.occurrence = ++occurrences;\n\t\t}\n\t\tconst { getSlot = noop } = this.context;\n\t\tconst slot = getSlot( this.props.name );\n\t\tif ( slot && ! slot.props.bubblesVirtually ) {\n\t\t\tslot.forceUpdate();\n\t\t}\n\t}\n\n\tcomponentWillUnmount() {\n\t\tconst { unregisterFill = noop } = this.context;\n\n\t\tunregisterFill( this.props.name, this );\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\tconst { name } = this.props;\n\t\tconst {\n\t\t\tunregisterFill = noop,\n\t\t\tregisterFill = noop,\n\t\t} = this.context;\n\n\t\tif ( prevProps.name !== name ) {\n\t\t\tunregisterFill( prevProps.name, this );\n\t\t\tregisterFill( name, this );\n\t\t}\n\t}\n\n\tresetOccurrence() {\n\t\tthis.occurrence = null;\n\t}\n\n\trender() {\n\t\tconst { getSlot = noop } = this.context;\n\t\tconst { name } = this.props;\n\t\tlet { children } = this.props;\n\t\tconst slot = getSlot( name );\n\n\t\tif ( ! slot || ! slot.props.bubblesVirtually ) {\n\t\t\treturn null;\n\t\t}\n\n\t\t// If a function is passed as a child, provide it with the fillProps.\n\t\tif ( isFunction( children ) ) {\n\t\t\tchildren = children( slot.props.fillProps );\n\t\t}\n\n\t\treturn createPortal( children, slot.node );\n\t}\n}\n\nFill.contextTypes = {\n\tgetSlot: noop,\n\tregisterFill: noop,\n\tunregisterFill: noop,\n};\n\nexport default Fill;\n","/**\n * Internal dependencies\n */\nimport Slot from './slot';\nimport Fill from './fill';\nimport Provider from './provider';\n\nexport { Slot };\nexport { Fill };\nexport { Provider };\n\nexport function createSlotFill( name ) {\n\tconst FillComponent = ( props ) => <Fill name={ name } { ...props } />;\n\tFillComponent.displayName = name + 'Fill';\n\n\tconst SlotComponent = ( props ) => <Slot name={ name } { ...props } />;\n\tSlotComponent.displayName = name + 'Slot';\n\n\treturn {\n\t\tFill: FillComponent,\n\t\tSlot: SlotComponent,\n\t};\n}\n","/**\n * External dependencies\n */\nimport { pick, sortBy, forEach, without, noop } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\n\nclass SlotFillProvider extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.registerSlot = this.registerSlot.bind( this );\n\t\tthis.registerFill = this.registerFill.bind( this );\n\t\tthis.unregisterSlot = this.unregisterSlot.bind( this );\n\t\tthis.unregisterFill = this.unregisterFill.bind( this );\n\t\tthis.getSlot = this.getSlot.bind( this );\n\t\tthis.getFills = this.getFills.bind( this );\n\n\t\tthis.slots = {};\n\t\tthis.fills = {};\n\t}\n\n\tgetChildContext() {\n\t\treturn pick( this, [\n\t\t\t'registerSlot',\n\t\t\t'registerFill',\n\t\t\t'unregisterSlot',\n\t\t\t'unregisterFill',\n\t\t\t'getSlot',\n\t\t\t'getFills',\n\t\t] );\n\t}\n\n\tregisterSlot( name, slot ) {\n\t\tthis.slots[ name ] = slot;\n\t\tthis.forceUpdateFills( name );\n\n\t\t// Sometimes the fills are registered after the initial render of slot\n\t\t// But before the registerSlot call, we need to rerender the slot\n\t\tthis.forceUpdateSlot( name );\n\t}\n\n\tregisterFill( name, instance ) {\n\t\tthis.fills[ name ] = [\n\t\t\t...( this.fills[ name ] || [] ),\n\t\t\tinstance,\n\t\t];\n\t\tthis.forceUpdateSlot( name );\n\t}\n\n\tunregisterSlot( name ) {\n\t\tdelete this.slots[ name ];\n\t\tthis.forceUpdateFills( name );\n\t}\n\n\tunregisterFill( name, instance ) {\n\t\tthis.fills[ name ] = without(\n\t\t\tthis.fills[ name ],\n\t\t\tinstance\n\t\t);\n\t\tthis.resetFillOccurrence( name );\n\t\tthis.forceUpdateSlot( name );\n\t}\n\n\tgetSlot( name ) {\n\t\treturn this.slots[ name ];\n\t}\n\n\tgetFills( name ) {\n\t\treturn sortBy( this.fills[ name ], 'occurrence' );\n\t}\n\n\tresetFillOccurrence( name ) {\n\t\tforEach( this.fills[ name ], ( instance ) => {\n\t\t\tinstance.resetOccurrence();\n\t\t} );\n\t}\n\n\tforceUpdateFills( name ) {\n\t\tforEach( this.fills[ name ], ( instance ) => {\n\t\t\tinstance.forceUpdate();\n\t\t} );\n\t}\n\n\tforceUpdateSlot( name ) {\n\t\tconst slot = this.getSlot( name );\n\n\t\tif ( slot ) {\n\t\t\tslot.forceUpdate();\n\t\t}\n\t}\n\n\trender() {\n\t\treturn this.props.children;\n\t}\n}\n\nSlotFillProvider.childContextTypes = {\n\tregisterSlot: noop,\n\tunregisterSlot: noop,\n\tregisterFill: noop,\n\tunregisterFill: noop,\n\tgetSlot: noop,\n\tgetFills: noop,\n};\n\nexport default SlotFillProvider;\n","/**\n * External dependencies\n */\nimport {\n\tisFunction,\n\tisString,\n\tmap,\n\tnegate,\n\tnoop,\n} from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tChildren,\n\tComponent,\n\tcloneElement,\n\tFragment,\n\tisEmptyElement,\n} from '@wordpress/element';\n\nclass Slot extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.bindNode = this.bindNode.bind( this );\n\t}\n\n\tcomponentDidMount() {\n\t\tconst { registerSlot = noop } = this.context;\n\n\t\tregisterSlot( this.props.name, this );\n\t}\n\n\tcomponentWillUnmount() {\n\t\tconst { unregisterSlot = noop } = this.context;\n\n\t\tunregisterSlot( this.props.name, this );\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\tconst { name } = this.props;\n\t\tconst {\n\t\t\tunregisterSlot = noop,\n\t\t\tregisterSlot = noop,\n\t\t} = this.context;\n\n\t\tif ( prevProps.name !== name ) {\n\t\t\tunregisterSlot( prevProps.name );\n\t\t\tregisterSlot( name, this );\n\t\t}\n\t}\n\n\tbindNode( node ) {\n\t\tthis.node = node;\n\t}\n\n\trender() {\n\t\tconst { children, name, bubblesVirtually = false, fillProps = {} } = this.props;\n\t\tconst { getFills = noop } = this.context;\n\n\t\tif ( bubblesVirtually ) {\n\t\t\treturn <div ref={ this.bindNode } />;\n\t\t}\n\n\t\tconst fills = map( getFills( name ), ( fill ) => {\n\t\t\tconst fillKey = fill.occurrence;\n\t\t\tconst fillChildren = isFunction( fill.props.children ) ? fill.props.children( fillProps ) : fill.props.children;\n\n\t\t\treturn Children.map( fillChildren, ( child, childIndex ) => {\n\t\t\t\tif ( ! child || isString( child ) ) {\n\t\t\t\t\treturn child;\n\t\t\t\t}\n\n\t\t\t\tconst childKey = `${ fillKey }---${ child.key || childIndex }`;\n\t\t\t\treturn cloneElement( child, { key: childKey } );\n\t\t\t} );\n\t\t} ).filter(\n\t\t\t// In some cases fills are rendered only when some conditions apply.\n\t\t\t// This ensures that we only use non-empty fills when rendering, i.e.,\n\t\t\t// it allows us to render wrappers only when the fills are actually present.\n\t\t\tnegate( isEmptyElement )\n\t\t);\n\n\t\treturn (\n\t\t\t<Fragment>\n\t\t\t\t{ isFunction( children ) ? children( fills ) : fills }\n\t\t\t</Fragment>\n\t\t);\n\t}\n}\n\nSlot.contextTypes = {\n\tregisterSlot: noop,\n\tunregisterSlot: noop,\n\tgetFills: noop,\n};\n\nexport default Slot;\n","export default function Spinner() {\n\treturn <span className=\"components-spinner\" />;\n}\n","/**\n * External dependencies\n */\nimport { partial, noop, find } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\nimport { withInstanceId } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { NavigableMenu } from '../navigable-container';\n\nconst TabButton = ( { tabId, onClick, children, selected, ...rest } ) => (\n\t<button role=\"tab\"\n\t\ttabIndex={ selected ? null : -1 }\n\t\taria-selected={ selected }\n\t\tid={ tabId }\n\t\tonClick={ onClick }\n\t\t{ ...rest }\n\t>\n\t\t{ children }\n\t</button>\n);\n\nclass TabPanel extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\t\tconst { tabs, initialTabName } = this.props;\n\n\t\tthis.handleClick = this.handleClick.bind( this );\n\t\tthis.onNavigate = this.onNavigate.bind( this );\n\n\t\tthis.state = {\n\t\t\tselected: initialTabName || ( tabs.length > 0 ? tabs[ 0 ].name : null ),\n\t\t};\n\t}\n\n\thandleClick( tabKey ) {\n\t\tconst { onSelect = noop } = this.props;\n\t\tthis.setState( {\n\t\t\tselected: tabKey,\n\t\t} );\n\t\tonSelect( tabKey );\n\t}\n\n\tonNavigate( childIndex, child ) {\n\t\tchild.click();\n\t}\n\n\trender() {\n\t\tconst { selected } = this.state;\n\t\tconst {\n\t\t\tactiveClass = 'is-active',\n\t\t\tclassName,\n\t\t\tinstanceId,\n\t\t\torientation = 'horizontal',\n\t\t\ttabs,\n\t\t} = this.props;\n\n\t\tconst selectedTab = find( tabs, { name: selected } );\n\t\tconst selectedId = instanceId + '-' + selectedTab.name;\n\n\t\treturn (\n\t\t\t<div className={ className }>\n\t\t\t\t<NavigableMenu\n\t\t\t\t\trole=\"tablist\"\n\t\t\t\t\torientation={ orientation }\n\t\t\t\t\tonNavigate={ this.onNavigate }\n\t\t\t\t\tclassName=\"components-tab-panel__tabs\"\n\t\t\t\t>\n\t\t\t\t\t{ tabs.map( ( tab ) => (\n\t\t\t\t\t\t<TabButton className={ `${ tab.className } ${ tab.name === selected ? activeClass : '' }` }\n\t\t\t\t\t\t\ttabId={ instanceId + '-' + tab.name }\n\t\t\t\t\t\t\taria-controls={ instanceId + '-' + tab.name + '-view' }\n\t\t\t\t\t\t\tselected={ tab.name === selected }\n\t\t\t\t\t\t\tkey={ tab.name }\n\t\t\t\t\t\t\tonClick={ partial( this.handleClick, tab.name ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ tab.title }\n\t\t\t\t\t\t</TabButton>\n\t\t\t\t\t) ) }\n\t\t\t\t</NavigableMenu>\n\t\t\t\t{ selectedTab && (\n\t\t\t\t\t<div aria-labelledby={ selectedId }\n\t\t\t\t\t\trole=\"tabpanel\"\n\t\t\t\t\t\tid={ selectedId + '-view' }\n\t\t\t\t\t\tclassName=\"components-tab-panel__tab-content\"\n\t\t\t\t\t\ttabIndex=\"0\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ this.props.children( selectedTab ) }\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nexport default withInstanceId( TabPanel );\n","/**\n * WordPress dependencies\n */\nimport { withInstanceId } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BaseControl from '../base-control';\n\nfunction TextControl( { label, value, help, className, instanceId, onChange, type = 'text', ...props } ) {\n\tconst id = `inspector-text-control-${ instanceId }`;\n\tconst onChangeValue = ( event ) => onChange( event.target.value );\n\n\treturn (\n\t\t<BaseControl label={ label } id={ id } help={ help } className={ className }>\n\t\t\t<input className=\"components-text-control__input\"\n\t\t\t\ttype={ type }\n\t\t\t\tid={ id }\n\t\t\t\tvalue={ value }\n\t\t\t\tonChange={ onChangeValue }\n\t\t\t\taria-describedby={ !! help ? id + '__help' : undefined }\n\t\t\t\t{ ...props }\n\t\t\t/>\n\t\t</BaseControl>\n\t);\n}\n\nexport default withInstanceId( TextControl );\n","/**\n * WordPress dependencies\n */\nimport { withInstanceId } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BaseControl from '../base-control';\n\nfunction TextareaControl( { label, value, help, instanceId, onChange, rows = 4, className, ...props } ) {\n\tconst id = `inspector-textarea-control-${ instanceId }`;\n\tconst onChangeValue = ( event ) => onChange( event.target.value );\n\n\treturn (\n\t\t<BaseControl label={ label } id={ id } help={ help } className={ className }>\n\t\t\t<textarea\n\t\t\t\tclassName=\"components-textarea-control__input\"\n\t\t\t\tid={ id }\n\t\t\t\trows={ rows }\n\t\t\t\tonChange={ onChangeValue }\n\t\t\t\taria-describedby={ !! help ? id + '__help' : undefined }\n\t\t\t\tvalue={ value }\n\t\t\t\t{ ...props }\n\t\t\t/>\n\t\t</BaseControl>\n\t);\n}\n\nexport default withInstanceId( TextareaControl );\n","/**\n * External dependencies\n */\nimport { isFunction } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\nimport { withInstanceId } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport FormToggle from '../form-toggle';\nimport BaseControl from '../base-control';\n\nclass ToggleControl extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.onChange = this.onChange.bind( this );\n\t}\n\n\tonChange( event ) {\n\t\tif ( this.props.onChange ) {\n\t\t\tthis.props.onChange( event.target.checked );\n\t\t}\n\t}\n\n\trender() {\n\t\tconst { label, checked, help, instanceId } = this.props;\n\t\tconst id = `inspector-toggle-control-${ instanceId }`;\n\n\t\tlet describedBy, helpLabel;\n\t\tif ( help ) {\n\t\t\tdescribedBy = id + '__help';\n\t\t\thelpLabel = isFunction( help ) ? help( checked ) : help;\n\t\t}\n\n\t\treturn (\n\t\t\t<BaseControl\n\t\t\t\tid={ id }\n\t\t\t\thelp={ helpLabel }\n\t\t\t\tclassName=\"components-toggle-control\"\n\t\t\t>\n\t\t\t\t<FormToggle\n\t\t\t\t\tid={ id }\n\t\t\t\t\tchecked={ checked }\n\t\t\t\t\tonChange={ this.onChange }\n\t\t\t\t\taria-describedby={ describedBy }\n\t\t\t\t/>\n\t\t\t\t<label\n\t\t\t\t\thtmlFor={ id }\n\t\t\t\t\tclassName=\"components-toggle-control__label\"\n\t\t\t\t>\n\t\t\t\t\t{ label }\n\t\t\t\t</label>\n\t\t\t</BaseControl>\n\t\t);\n\t}\n}\n\nexport default withInstanceId( ToggleControl );\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * Internal dependencies\n */\nimport IconButton from '../icon-button';\nimport ToolbarButtonContainer from './toolbar-button-container';\n\nfunction ToolbarButton( {\n\tcontainerClassName,\n\ticon,\n\ttitle,\n\tshortcut,\n\tsubscript,\n\tonClick,\n\tclassName,\n\tisActive,\n\tisDisabled,\n\textraProps,\n\tchildren,\n} ) {\n\treturn (\n\t\t<ToolbarButtonContainer className={ containerClassName }>\n\t\t\t<IconButton\n\t\t\t\ticon={ icon }\n\t\t\t\tlabel={ title }\n\t\t\t\tshortcut={ shortcut }\n\t\t\t\tdata-subscript={ subscript }\n\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\tonClick();\n\t\t\t\t} }\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\t'components-toolbar__control',\n\t\t\t\t\tclassName,\n\t\t\t\t\t{ 'is-active': isActive }\n\t\t\t\t) }\n\t\t\t\taria-pressed={ isActive }\n\t\t\t\tdisabled={ isDisabled }\n\t\t\t\t{ ...extraProps }\n\t\t\t/>\n\t\t\t{ children }\n\t\t</ToolbarButtonContainer>\n\t);\n}\n\nexport default ToolbarButton;\n","const ToolbarButtonContainer = ( props ) => (\n\t<div\n\t\tclassName={ props.className }\n\t>\n\t\t{ props.children }\n\t</div>\n);\nexport default ToolbarButtonContainer;\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { flatMap } from 'lodash';\n\n/**\n * Internal dependencies\n */\nimport ToolbarButton from '../toolbar-button';\nimport DropdownMenu from '../dropdown-menu';\nimport ToolbarContainer from './toolbar-container';\n\n/**\n * Renders a toolbar with controls.\n *\n * The `controls` prop accepts an array of sets. A set is an array of controls.\n * Controls have the following shape:\n *\n * ```\n * {\n * icon: string,\n * title: string,\n * subscript: string,\n * onClick: Function,\n * isActive: boolean,\n * isDisabled: boolean\n * }\n * ```\n *\n * For convenience it is also possible to pass only an array of controls. It is\n * then assumed this is the only set.\n *\n * Either `controls` or `children` is required, otherwise this components\n * renders nothing.\n *\n * @param {?Array} controls The controls to render in this toolbar.\n * @param {?ReactElement} children Any other things to render inside the\n * toolbar besides the controls.\n * @param {?string} className Class to set on the container div.\n *\n * @return {ReactElement} The rendered toolbar.\n */\nfunction Toolbar( { controls = [], children, className, isCollapsed, icon, label } ) {\n\tif (\n\t\t( ! controls || ! controls.length ) &&\n\t\t! children\n\t) {\n\t\treturn null;\n\t}\n\n\t// Normalize controls to nested array of objects (sets of controls)\n\tlet controlSets = controls;\n\tif ( ! Array.isArray( controlSets[ 0 ] ) ) {\n\t\tcontrolSets = [ controlSets ];\n\t}\n\n\tif ( isCollapsed ) {\n\t\treturn (\n\t\t\t<DropdownMenu\n\t\t\t\ticon={ icon }\n\t\t\t\tlabel={ label }\n\t\t\t\tcontrols={ controlSets }\n\t\t\t\tclassName={ classnames( 'components-toolbar', className ) }\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn (\n\t\t<ToolbarContainer className={ classnames( 'components-toolbar', className ) }>\n\t\t\t{ flatMap( controlSets, ( controlSet, indexOfSet ) => (\n\t\t\t\tcontrolSet.map( ( control, indexOfControl ) => (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tkey={ [ indexOfSet, indexOfControl ].join() }\n\t\t\t\t\t\tcontainerClassName={ indexOfSet > 0 && indexOfControl === 0 ? 'has-left-divider' : null }\n\t\t\t\t\t\t{ ...control }\n\t\t\t\t\t/>\n\t\t\t\t) )\n\t\t\t) ) }\n\t\t\t{ children }\n\t\t</ToolbarContainer>\n\t);\n}\n\nexport default Toolbar;\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\nconst ToolbarContainer = ( props ) => (\n\t<div className={ classnames( 'components-toolbar', props.className ) }>\n\t\t{ props.children }\n\t</div>\n);\nexport default ToolbarContainer;\n","/**\n * External dependencies\n */\nimport { debounce, includes } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tComponent,\n\tChildren,\n\tcloneElement,\n\tfindDOMNode,\n\tconcatChildren,\n} from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport Popover from '../popover';\nimport Shortcut from '../shortcut';\n\n/**\n * Time over children to wait before showing tooltip\n *\n * @type {Number}\n */\nconst TOOLTIP_DELAY = 700;\n\nclass Tooltip extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.bindNode = this.bindNode.bind( this );\n\t\tthis.delayedSetIsOver = debounce(\n\t\t\t( isOver ) => this.setState( { isOver } ),\n\t\t\tTOOLTIP_DELAY\n\t\t);\n\n\t\tthis.state = {\n\t\t\tisOver: false,\n\t\t};\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis.delayedSetIsOver.cancel();\n\t\tthis.disconnectDisabledAttributeObserver();\n\t}\n\n\tcomponentDidUpdate( prevProps, prevState ) {\n\t\tconst { isOver } = this.state;\n\t\tif ( isOver !== prevState.isOver ) {\n\t\t\tif ( isOver ) {\n\t\t\t\tthis.observeDisabledAttribute();\n\t\t\t} else {\n\t\t\t\tthis.disconnectDisabledAttributeObserver();\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Assigns DOM node of the rendered component as an instance property.\n\t *\n\t * @param {Element} ref Rendered component reference.\n\t */\n\tbindNode( ref ) {\n\t\t// Disable reason: Because render clones the child, we don't know what\n\t\t// type of element we have, but if it's a DOM node, we want to observe\n\t\t// the disabled attribute.\n\t\t// eslint-disable-next-line react/no-find-dom-node\n\t\tthis.node = findDOMNode( ref );\n\t}\n\n\t/**\n\t * Disconnects any DOM observer attached to the rendered node.\n\t */\n\tdisconnectDisabledAttributeObserver() {\n\t\tif ( this.observer ) {\n\t\t\tthis.observer.disconnect();\n\t\t}\n\t}\n\n\t/**\n\t * Adds a DOM observer to the rendered node, if supported and if the DOM\n\t * node exists, to monitor for application of a disabled attribute.\n\t */\n\tobserveDisabledAttribute() {\n\t\tif ( ! window.MutationObserver || ! this.node ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.observer = new window.MutationObserver( ( [ mutation ] ) => {\n\t\t\tif ( mutation.target.disabled ) {\n\t\t\t\t// We can assume here that isOver is true, because mutation\n\t\t\t\t// observer is only attached for duration of isOver active\n\t\t\t\tthis.setState( { isOver: false } );\n\t\t\t}\n\t\t} );\n\n\t\t// Monitor changes to the disable attribute on the DOM node\n\t\tthis.observer.observe( this.node, {\n\t\t\tsubtree: true,\n\t\t\tattributes: true,\n\t\t\tattributeFilter: [ 'disabled' ],\n\t\t} );\n\t}\n\n\temitToChild( eventName, event ) {\n\t\tconst { children } = this.props;\n\t\tif ( Children.count( children ) !== 1 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst child = Children.only( children );\n\t\tif ( typeof child.props[ eventName ] === 'function' ) {\n\t\t\tchild.props[ eventName ]( event );\n\t\t}\n\t}\n\n\tcreateToggleIsOver( eventName, isDelayed ) {\n\t\treturn ( event ) => {\n\t\t\t// Preserve original child callback behavior\n\t\t\tthis.emitToChild( eventName, event );\n\n\t\t\t// Mouse events behave unreliably in React for disabled elements,\n\t\t\t// firing on mouseenter but not mouseleave. Further, the default\n\t\t\t// behavior for disabled elements in some browsers is to ignore\n\t\t\t// mouse events. Don't bother trying to to handle them.\n\t\t\t//\n\t\t\t// See: https://github.com/facebook/react/issues/4251\n\t\t\tif ( event.currentTarget.disabled ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Needed in case unsetting is over while delayed set pending, i.e.\n\t\t\t// quickly blur/mouseleave before delayedSetIsOver is called\n\t\t\tthis.delayedSetIsOver.cancel();\n\n\t\t\tconst isOver = includes( [ 'focus', 'mouseenter' ], event.type );\n\t\t\tif ( isOver === this.state.isOver ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( isDelayed ) {\n\t\t\t\tthis.delayedSetIsOver( isOver );\n\t\t\t} else {\n\t\t\t\tthis.setState( { isOver } );\n\t\t\t}\n\t\t};\n\t}\n\n\trender() {\n\t\tconst { children, position, text, shortcut } = this.props;\n\t\tif ( Children.count( children ) !== 1 ) {\n\t\t\tif ( 'development' === process.env.NODE_ENV ) {\n\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\tconsole.error( 'Tooltip should be called with only a single child element.' );\n\t\t\t}\n\n\t\t\treturn children;\n\t\t}\n\n\t\tconst child = Children.only( children );\n\t\tconst { isOver } = this.state;\n\t\treturn cloneElement( child, {\n\t\t\tref: this.bindNode,\n\t\t\tonMouseEnter: this.createToggleIsOver( 'onMouseEnter', true ),\n\t\t\tonMouseLeave: this.createToggleIsOver( 'onMouseLeave' ),\n\t\t\tonClick: this.createToggleIsOver( 'onClick' ),\n\t\t\tonFocus: this.createToggleIsOver( 'onFocus' ),\n\t\t\tonBlur: this.createToggleIsOver( 'onBlur' ),\n\t\t\tchildren: concatChildren(\n\t\t\t\tchild.props.children,\n\t\t\t\tisOver && (\n\t\t\t\t\t<Popover\n\t\t\t\t\t\tfocusOnMount={ false }\n\t\t\t\t\t\tposition={ position }\n\t\t\t\t\t\tclassName=\"components-tooltip\"\n\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ text }\n\t\t\t\t\t\t<Shortcut className=\"components-tooltip__shortcut\" shortcut={ shortcut } />\n\t\t\t\t\t</Popover>\n\t\t\t\t),\n\t\t\t),\n\t\t} );\n\t}\n}\n\nexport default Tooltip;\n","/**\n * External dependencies\n */\nimport { unescape as unescapeString, repeat, flatMap, compact } from 'lodash';\n\n/**\n * Internal dependencies\n */\nimport { SelectControl } from '../';\n\nfunction getSelectOptions( tree, level = 0 ) {\n\treturn flatMap( tree, ( treeNode ) => [\n\t\t{\n\t\t\tvalue: treeNode.id,\n\t\t\tlabel: repeat( '\\u00A0', level * 3 ) + unescapeString( treeNode.name ),\n\t\t},\n\t\t...getSelectOptions( treeNode.children || [], level + 1 ),\n\t] );\n}\n\nexport default function TreeSelect( {\n\tlabel,\n\tnoOptionLabel,\n\tonChange,\n\tselectedId,\n\ttree,\n\t...props\n} ) {\n\tconst options = compact( [\n\t\tnoOptionLabel && { value: '', label: noOptionLabel },\n\t\t...getSelectOptions( tree ),\n\t] );\n\treturn (\n\t\t<SelectControl\n\t\t\t{ ...{ label, options, onChange } }\n\t\t\tvalue={ selectedId }\n\t\t\t{ ...props }\n\t\t/>\n\t);\n}\n","import wrapValidator from './helpers/wrapValidator';\n\nexport default function andValidator(validators, name = 'and') {\n if (!Array.isArray(validators)) {\n throw new TypeError('and: 2 or more validators are required');\n }\n if (validators.length <= 1) {\n throw new RangeError('and: 2 or more validators are required');\n }\n\n const validator = function and(...args) {\n let firstError = null;\n validators.some((validatorFn) => {\n firstError = validatorFn(...args);\n return firstError != null;\n });\n return firstError == null ? null : firstError;\n };\n\n validator.isRequired = function andIsRequired(...args) {\n let firstError = null;\n validators.some((validatorFn) => {\n firstError = validatorFn.isRequired(...args);\n return firstError != null;\n });\n return firstError == null ? null : firstError;\n };\n\n return wrapValidator(validator, name, validators);\n}\n","import entries from 'object.entries';\n\nimport shape from './shape';\nimport valuesOf from './valuesOf';\nimport wrapValidator from './helpers/wrapValidator';\n\nfunction number(props, propName, componentName) {\n const value = props[propName];\n if (typeof value === 'number' && !isNaN(value)) {\n return null;\n }\n\n return new TypeError(`${componentName}: ${propName} must be a non-NaN number.`);\n}\n\nfunction numberOrPropsFunc(props, propName) {\n const value = props[propName];\n\n if (typeof value === 'function') {\n return null;\n }\n\n if (typeof value === 'number' && !isNaN(value)) {\n return null;\n }\n\n return new TypeError(`${propName}: a function, or a non-NaN number is required`);\n}\n\nfunction lowerCompare(value, { gt, gte }) {\n if (typeof gt === 'number') {\n return value > gt;\n }\n if (typeof gte === 'number') {\n return value >= gte;\n }\n return true;\n}\n\nfunction upperCompare(value, { lt, lte }) {\n if (typeof lt === 'number') {\n return value < lt;\n }\n if (typeof lte === 'number') {\n return value <= lte;\n }\n return true;\n}\n\nfunction greaterThanError({ gt, gte }) {\n if (typeof gt === 'number') {\n return `greater than ${gt}`;\n }\n if (typeof gte === 'number') {\n return `greater than or equal to ${gte}`;\n }\n return '';\n}\n\nfunction lessThanError({ lt, lte }) {\n if (typeof lt === 'number') {\n return `less than ${lt}`;\n }\n if (typeof lte === 'number') {\n return `less than or equal to ${lte}`;\n }\n return '';\n}\n\nfunction errorMessage(componentName, propName, opts) {\n const errors = [greaterThanError(opts), lessThanError(opts)].filter(Boolean).join(' and ');\n return `${componentName}: ${propName} must be ${errors}`;\n}\n\nfunction propsThunkify(opts) {\n return entries(opts).reduce((acc, [key, value]) => {\n const numberThunk = typeof value === 'number' ? () => value : value;\n return { ...acc, [key]: numberThunk };\n }, {});\n}\n\nfunction invokeWithProps(optsThunks, props) {\n return entries(optsThunks).reduce((acc, [key, thunk]) => {\n const value = thunk(props);\n return { ...acc, [key]: value };\n }, {});\n}\n\nconst argValidators = [\n shape({ lt: numberOrPropsFunc, gt: numberOrPropsFunc }).isRequired,\n shape({ lte: numberOrPropsFunc, gt: numberOrPropsFunc }).isRequired,\n shape({ lt: numberOrPropsFunc, gte: numberOrPropsFunc }).isRequired,\n shape({ lte: numberOrPropsFunc, gte: numberOrPropsFunc }).isRequired,\n shape({ lt: numberOrPropsFunc }).isRequired,\n shape({ lte: numberOrPropsFunc }).isRequired,\n shape({ gt: numberOrPropsFunc }).isRequired,\n shape({ gte: numberOrPropsFunc }).isRequired,\n];\nfunction argValidator(props, propName) {\n return argValidators.every(validator => !!validator(props, propName));\n}\n\nconst thunkValueValidator = valuesOf(number).isRequired;\n\nexport default function betweenValidator(options) {\n const argError = argValidator({ options }, 'options');\n if (argError) {\n throw new TypeError('between: only one of the pairs of `lt`/`lte`, and `gt`/`gte`, may be supplied, and at least one pair must be provided.');\n }\n\n const optsThunks = propsThunkify(options);\n\n const validator = function between(props, propName, componentName, ...rest) {\n const { [propName]: propValue } = props;\n if (propValue == null) {\n return null;\n }\n\n if (typeof propValue !== 'number') {\n return new RangeError(`${componentName}: ${propName} must be a number, got \"${typeof propValue}\"`);\n }\n\n const opts = invokeWithProps(optsThunks, props);\n const thunkValuesError = thunkValueValidator(\n { [propName]: opts },\n propName,\n componentName,\n ...rest,\n );\n if (thunkValuesError) {\n return thunkValuesError;\n }\n\n if (!lowerCompare(propValue, opts) || !upperCompare(propValue, opts)) {\n return new RangeError(errorMessage(componentName, propName, opts));\n }\n\n return null;\n };\n validator.isRequired = function betweenRequired(props, propName, componentName, ...rest) {\n const { [propName]: propValue } = props;\n if (typeof propValue !== 'number') {\n return new RangeError(`${componentName}: ${propName} must be a number, got \"${typeof propValue}\"`);\n }\n\n const opts = invokeWithProps(optsThunks, props);\n const thunkValuesError = thunkValueValidator(\n { [propName]: opts },\n propName,\n componentName,\n ...rest,\n );\n if (thunkValuesError) {\n return thunkValuesError;\n }\n\n if (!lowerCompare(propValue, opts) || !upperCompare(propValue, opts)) {\n return new RangeError(errorMessage(componentName, propName, opts));\n }\n\n return null;\n };\n\n return wrapValidator(validator, 'between', options);\n}\n","import { bool } from 'prop-types';\nimport wrapValidator from './helpers/wrapValidator';\n\nexport default function booleanSomeValidator(...notAllPropsFalse) {\n if (notAllPropsFalse.length < 1) {\n throw new TypeError('at least one prop (one of which must be `true`) is required');\n }\n if (!notAllPropsFalse.every(x => typeof x === 'string')) {\n throw new TypeError('all booleanSome props must be strings');\n }\n\n const propsList = notAllPropsFalse.join(', or ');\n\n const validator = function booleanSome(props, propName, componentName, ...rest) {\n const countFalse = (count, prop) => (count + (props[prop] === false ? 1 : 0));\n\n const falsePropCount = notAllPropsFalse.reduce(countFalse, 0);\n if (falsePropCount === notAllPropsFalse.length) {\n return new Error(`A ${componentName} must have at least one of these boolean props be \\`true\\`: ${propsList}`);\n }\n return bool(props, propName, componentName, ...rest);\n };\n\n validator.isRequired = function booleanSomeRequired(\n props,\n propName,\n componentName,\n ...rest\n ) {\n const countFalse = (count, prop) => (count + (props[prop] === false ? 1 : 0));\n\n const falsePropCount = notAllPropsFalse.reduce(countFalse, 0);\n if (falsePropCount === notAllPropsFalse.length) {\n return new Error(`A ${componentName} must have at least one of these boolean props be \\`true\\`: ${propsList}`);\n }\n return bool.isRequired(props, propName, componentName, ...rest);\n };\n\n return wrapValidator(validator, `booleanSome: ${propsList}`, notAllPropsFalse);\n}\n","import React from 'react';\nimport wrapValidator from './helpers/wrapValidator';\n\nexport default function childrenHavePropXorChildren(prop) {\n if (typeof prop !== 'string' && typeof prop !== 'symbol') {\n throw new TypeError('invalid prop: must be string or symbol');\n }\n\n const validator = function childrenHavePropXorChildrenWithProp({ children }, _, componentName) {\n let truthyChildrenCount = 0;\n let propCount = 0;\n let grandchildrenCount = 0;\n\n React.Children.forEach(children, (child) => {\n if (!child) {\n return;\n }\n\n truthyChildrenCount += 1;\n\n if (child.props[prop]) {\n propCount += 1;\n }\n\n if (React.Children.count(child.props.children)) {\n grandchildrenCount += 1;\n }\n });\n\n if (\n (propCount === truthyChildrenCount && grandchildrenCount === 0)\n || (propCount === 0 && grandchildrenCount === truthyChildrenCount)\n || (propCount === 0 && grandchildrenCount === 0)\n ) {\n return null;\n }\n\n return new TypeError(`\\`${componentName}\\` requires children to all have prop “${prop}”, all have children, or all have neither.`);\n };\n validator.isRequired = validator;\n\n return wrapValidator(validator, `childrenHavePropXorChildrenWithProp:${prop}`, prop);\n}\n","import renderableChildren from './helpers/renderableChildren';\nimport wrapValidator from './helpers/wrapValidator';\n\nfunction validateChildren(propType, children, props, ...rest) {\n let error;\n children.some((child) => {\n error = propType({ ...props, children: child }, 'children', ...rest);\n return error;\n });\n\n return error || null;\n}\n\nexport default function childrenOf(propType) {\n function childrenOfPropType(props, propName, componentName, ...rest) {\n if (propName !== 'children') {\n return new TypeError(`${componentName} is using the childrenOf validator on non-children prop \"${propName}\"`);\n }\n\n const { [propName]: propValue } = props;\n\n if (propValue == null) {\n return null;\n }\n const children = renderableChildren(propValue);\n if (children.length === 0) {\n return null;\n }\n\n return validateChildren(propType, children, props, componentName, ...rest);\n }\n\n childrenOfPropType.isRequired = (props, propName, componentName, ...rest) => {\n if (propName !== 'children') {\n return new TypeError(`${componentName} is using the childrenOf validator on non-children prop \"${propName}\"`);\n }\n\n const children = renderableChildren(props[propName]);\n if (children.length === 0) {\n return new TypeError(`\\`${componentName}\\` requires at least one node of type ${propType.typeName || propType.name}`);\n }\n\n return validateChildren(propType, children, props, componentName, ...rest);\n };\n\n return wrapValidator(childrenOfPropType, 'childrenOf', propType);\n}\n","import find from 'array.prototype.find';\n\nimport getComponentName from './helpers/getComponentName';\nimport renderableChildren from './helpers/renderableChildren';\nimport wrapValidator from './helpers/wrapValidator';\n\nfunction onlyTypes(types, children, componentName) {\n if (!children.every(child => child && find(types, Type => Type === '*' || child.type === Type))) {\n const typeNames = types.map(getComponentName).join(', or ');\n return new TypeError(\n `\\`${componentName}\\` only accepts children of type ${typeNames}`,\n );\n }\n return null;\n}\n\nfunction isRequired(types, children, componentName) {\n if (children.length === 0) {\n const typeNames = types.map(getComponentName).join(', or ');\n return new TypeError(`\\`${componentName}\\` requires at least one node of type ${typeNames}`);\n }\n return null;\n}\n\nfunction childrenOfType(...types) {\n if (types.length < 1) {\n throw new TypeError('childrenOfType: at least 1 type is required');\n }\n\n function validator(props, propName, componentName) {\n return onlyTypes(types, renderableChildren(props[propName]), componentName);\n }\n\n validator.isRequired = (props, propName, componentName) => {\n const children = renderableChildren(props[propName]);\n return isRequired(types, children, componentName) || onlyTypes(types, children, componentName);\n };\n\n return wrapValidator(validator, 'childrenOfType', types);\n}\n\nexport default childrenOfType;\n","import sequenceOf from './sequenceOf';\nimport renderableChildren from './helpers/renderableChildren';\nimport wrapValidator from './helpers/wrapValidator';\n\nexport default function childrenSequenceOfValidator(...specifiers) {\n const seq = sequenceOf(...specifiers);\n\n const validator = function childrenSequenceOf(props, propName, componentName, ...rest) {\n if (propName !== 'children') {\n return new TypeError(`${componentName} is using the childrenSequenceOf validator on non-children prop \"${propName}\"`);\n }\n\n const { [propName]: propValue } = props;\n const children = renderableChildren(propValue);\n if (children.length === 0) {\n return null;\n }\n return seq({ ...props, children }, propName, componentName, ...rest);\n };\n\n validator.isRequired = function childrenSequenceOfRequired(\n props,\n propName,\n componentName,\n ...rest\n ) {\n if (propName !== 'children') {\n return new TypeError(`${componentName} is using the childrenSequenceOf validator on non-children prop \"${propName}\"`);\n }\n\n const { [propName]: propValue } = props;\n const children = renderableChildren(propValue);\n if (children.length === 0) {\n return new TypeError(`${componentName}: renderable children are required.`);\n }\n return seq.isRequired({ ...props, children }, propName, componentName, ...rest);\n };\n\n return wrapValidator(validator, 'childrenSequenceOf', specifiers);\n}\n","import React from 'react';\nimport isRegex from 'is-regex';\nimport find from 'array.prototype.find';\n\nimport getComponentName from './helpers/getComponentName';\nimport wrapValidator from './helpers/wrapValidator';\n\nfunction stripHOCs(fullName, namesOfHOCsToStrip) {\n let innerName = fullName;\n while ((/\\([^()]*\\)/g).test(innerName)) {\n let HOC = innerName;\n let previousHOC;\n do {\n previousHOC = HOC;\n HOC = previousHOC.replace(/\\([^()]*\\)/g, '');\n } while (previousHOC !== HOC);\n\n if (namesOfHOCsToStrip.indexOf(HOC) === -1) {\n return innerName;\n }\n innerName = innerName.replace(RegExp(`^${HOC}\\\\(|\\\\)$`, 'g'), '');\n }\n return innerName;\n}\n\nfunction hasName(name, namesOfHOCsToStrip, propValue, propName, componentName, ...rest) {\n if (Array.isArray(propValue)) {\n return find(\n propValue.map(item => hasName(\n name,\n namesOfHOCsToStrip,\n item,\n propName,\n componentName,\n ...rest,\n )),\n Boolean,\n ) || null;\n }\n\n if (!React.isValidElement(propValue)) {\n return new TypeError(\n `${componentName}.${propName} is not a valid React element`,\n );\n }\n\n const { type } = propValue;\n const componentNameFromType = getComponentName(type);\n const innerComponentName = namesOfHOCsToStrip.length > 0\n ? stripHOCs(componentNameFromType, namesOfHOCsToStrip)\n : componentNameFromType;\n\n if (isRegex(name) && !name.test(innerComponentName)) {\n return new TypeError(\n `\\`${componentName}.${propName}\\` only accepts components matching the regular expression ${name}`,\n );\n }\n\n if (!isRegex(name) && innerComponentName !== name) {\n return new TypeError(\n `\\`${componentName}.${propName}\\` only accepts components named ${name}, got ${innerComponentName}`,\n );\n }\n\n return null;\n}\n\nexport default function componentWithName(\n name,\n options = {},\n) {\n if (typeof name !== 'string' && !isRegex(name)) {\n throw new TypeError('name must be a string or a regex');\n }\n\n const passedOptions = Object.keys(options);\n if (passedOptions.length > 1 || (passedOptions.length === 1 && passedOptions[0] !== 'stripHOCs')) {\n throw new TypeError(`The only options supported are: “stripHOCs”, got: “${passedOptions.join('”, “')}”`);\n }\n const { stripHOCs: namesOfHOCsToStrip = [] } = options;\n\n const allHOCNamesAreValid = namesOfHOCsToStrip.every((x) => {\n if (typeof x !== 'string' || /[()]/g.test(x)) {\n return false;\n }\n return /^(?:[a-z][a-zA-Z0-9]+|[A-Z][a-z][a-zA-Z0-9]+)$/.test(x);\n });\n if (!allHOCNamesAreValid) {\n throw new TypeError('every provided HOC name must be a string with no parens, and in camelCase');\n }\n\n function componentWithNameValidator(props, propName, componentName, ...rest) {\n const { [propName]: propValue } = props;\n if (props[propName] == null) {\n return null;\n }\n return hasName(name, namesOfHOCsToStrip, propValue, propName, componentName, ...rest);\n }\n\n componentWithNameValidator.isRequired = function componentWithNameRequired(\n props,\n propName,\n componentName,\n ...rest\n ) {\n const { [propName]: propValue } = props;\n if (propValue == null) {\n return new TypeError(`\\`${componentName}.${propName}\\` requires at least one component named ${name}`);\n }\n return hasName(name, namesOfHOCsToStrip, propValue, propName, componentName, ...rest);\n };\n\n return wrapValidator(componentWithNameValidator, `componentWithName:${name}`, name);\n}\n","import wrapValidator from './helpers/wrapValidator';\n\nexport default function disallowedIf(propType, otherPropName, otherPropType) {\n if (typeof propType !== 'function' || typeof propType.isRequired !== 'function') {\n throw new TypeError('a propType validator is required; propType validators must also provide `.isRequired`');\n }\n\n if (typeof otherPropName !== 'string') {\n throw new TypeError('other prop name must be a string');\n }\n\n if (typeof otherPropType !== 'function') {\n throw new TypeError('other prop type validator is required');\n }\n\n function disallowedIfRequired(props, propName, componentName, ...rest) {\n const error = propType.isRequired(props, propName, componentName, ...rest);\n if (error) {\n return error;\n }\n\n if (props[otherPropName] == null) {\n return null;\n }\n\n const otherError = otherPropType(props, otherPropName, componentName, ...rest);\n if (otherError) {\n return null;\n }\n return new Error(`prop “${propName}” is disallowed when “${otherPropName}” matches the provided validator`);\n }\n\n const validator = function disallowedIfPropType(props, propName, ...rest) {\n if (props[propName] == null) {\n return null;\n }\n return disallowedIfRequired(props, propName, ...rest);\n };\n\n validator.isRequired = disallowedIfRequired;\n\n return wrapValidator(validator, 'disallowedIf', { propType, otherPropName, otherPropType });\n}\n","import { element } from 'prop-types';\nimport and from './and';\nimport getComponentName from './helpers/getComponentName';\nimport wrapValidator from './helpers/wrapValidator';\n\nfunction getTypeName(Type) {\n if (typeof Type === 'string') {\n return Type;\n }\n const type = getComponentName(Type);\n\n /* istanbul ignore next */ // in environments where functions do not have names\n return type || 'Anonymous Component';\n}\n\nfunction validateElementType(Type, props, propName, componentName) {\n const { type } = props[propName];\n\n if (type === Type) {\n return null;\n }\n\n return new TypeError(`${componentName}.${propName} must be a React element of type ${getTypeName(Type)}`);\n}\n\nexport default function elementTypeValidator(Type) {\n if (Type === '*') {\n return wrapValidator(element, 'elementType(*)', Type);\n }\n\n if (typeof Type !== 'string' && typeof Type !== 'function') {\n throw new TypeError(`Type must be a React Component, an HTML element tag name, or \"*\". Got an ${typeof Type}`);\n }\n\n function elementType(props, propName, componentName, ...rest) {\n if (props[propName] == null) {\n return null;\n }\n return validateElementType(Type, props, propName, componentName, ...rest);\n }\n elementType.isRequired = elementType; // covered by and + element\n\n const typeName = getTypeName(Type);\n const validatorName = `elementType(${typeName})`;\n return wrapValidator(and([element, elementType], validatorName), validatorName, Type);\n}\n","import wrapValidator from './helpers/wrapValidator';\n\nfunction explicitNull(props, propName, componentName) {\n if (props[propName] == null) {\n return null;\n }\n return new TypeError(`${componentName}: prop “${propName}” must be null or undefined; received ${typeof props[propName]}`);\n}\nexplicitNull.isRequired = function explicitNullRequired(props, propName, componentName) {\n if (props[propName] === null) {\n return null;\n }\n return new TypeError(`${componentName}: prop “${propName}” must be null; received ${typeof props[propName]}`);\n};\n\nexport default () => wrapValidator(explicitNull, 'explicitNull');\n","import getFunctionName from 'function.prototype.name';\n\nexport default function getComponentName(Component) {\n if (typeof Component === 'string') {\n return Component;\n }\n if (typeof Component === 'function') {\n return Component.displayName || getFunctionName(Component);\n }\n return null;\n}\n","const { floor } = Math;\nconst finite = isFinite;\n\nexport default Number.isInteger || /* istanbul ignore next */ (x => (typeof x === 'number' && finite(x) && floor(x) === x));\n","export default function isPlainObject(x) {\n return x && typeof x === 'object' && !Array.isArray(x);\n}\n","export default function isPrimitive(x) {\n return !x || (typeof x !== 'object' && typeof x !== 'function');\n}\n","import React from 'react';\n\nexport default function renderableChildren(childrenProp) {\n return React.Children.toArray(childrenProp).filter(child => child === 0 || child);\n}\n","import React from 'react';\n\nexport default function typeOf(child) {\n if (child === null) {\n return 'null';\n }\n if (Array.isArray(child)) {\n return 'array';\n }\n if (typeof child !== 'object') {\n return typeof child;\n }\n if (React.isValidElement(child)) {\n return child.type;\n }\n return child;\n}\n","export default function wrapValidator(validator, typeName, typeChecker = null) {\n return Object.assign(validator.bind(), {\n typeName,\n typeChecker,\n isRequired: Object.assign(validator.isRequired.bind(), {\n typeName,\n typeChecker,\n typeRequired: true,\n }),\n });\n}\n","import has from 'has';\n\nimport isPlainObject from './helpers/isPlainObject';\n\nconst zeroWidthSpace = '\\u200b';\nconst specialProperty = `prop-types-exact: ${zeroWidthSpace}`;\nconst semaphore = typeof Symbol === 'function' && typeof Symbol['for'] === 'function' ? Symbol['for'](specialProperty) : /* istanbul ignore next */ specialProperty;\n\nfunction brand(fn) {\n return Object.assign(fn, { [specialProperty]: semaphore });\n}\n\nfunction isBranded(value) {\n return value && value[specialProperty] === semaphore;\n}\n\nexport default function forbidExtraProps(propTypes) {\n if (!isPlainObject(propTypes)) {\n throw new TypeError('given propTypes must be an object');\n }\n if (has(propTypes, specialProperty) && !isBranded(propTypes[specialProperty])) {\n throw new TypeError('Against all odds, you created a propType for a prop that uses both the zero-width space and our custom string - which, sadly, conflicts with `prop-types-exact`');\n }\n\n return {\n ...propTypes,\n // eslint-disable-next-line prefer-arrow-callback\n [specialProperty]: brand(function forbidUnknownProps(props, _, componentName) {\n const unknownProps = Object.keys(props).filter(prop => !has(propTypes, prop));\n if (unknownProps.length > 0) {\n return new TypeError(`${componentName}: unknown props found: ${unknownProps.join(', ')}`);\n }\n return null;\n }),\n };\n}\n","import isInteger from './helpers/isInteger';\nimport wrapValidator from './helpers/wrapValidator';\n\nfunction requiredInteger(props, propName, componentName) {\n const { [propName]: propValue } = props;\n if (propValue == null || !isInteger(propValue)) {\n return new RangeError(`${propName} in ${componentName} must be an integer`);\n }\n return null;\n}\n\nconst validator = function integer(props, propName, ...rest) {\n const { [propName]: propValue } = props;\n\n if (propValue == null) {\n return null;\n }\n\n return requiredInteger(props, propName, ...rest);\n};\n\nvalidator.isRequired = requiredInteger;\n\nexport default () => wrapValidator(validator, 'integer');\n","import isPrimitive from './helpers/isPrimitive';\nimport wrapValidator from './helpers/wrapValidator';\n\nexport default function keysOfValidator(propType, name = 'keysOf') {\n if (typeof propType !== 'function') {\n throw new TypeError('argument to keysOf must be a valid PropType function');\n }\n\n const validator = function keysOf(\n props,\n propName,\n componentName,\n location,\n propFullName,\n ...rest\n ) {\n const { [propName]: propValue } = props;\n\n if (propValue == null || isPrimitive(propValue)) {\n return null;\n }\n\n let firstError = null;\n Object.keys(propValue).some((key) => {\n firstError = propType(\n { [key]: key },\n key,\n componentName,\n location,\n `(${propFullName}).${key}`,\n ...rest,\n );\n return firstError != null;\n });\n return firstError || null;\n };\n\n validator.isRequired = function keyedByRequired(props, propName, componentName, ...rest) {\n const { [propName]: propValue } = props;\n\n if (propValue == null) {\n return new TypeError(`${componentName}: ${propName} is required, but value is ${propValue}`);\n }\n\n return validator(props, propName, componentName, ...rest);\n };\n\n return wrapValidator(validator, name, propType);\n}\n","import wrapValidator from './helpers/wrapValidator';\n\nexport default function mutuallyExclusiveOfType(propType, ...exclusiveProps) {\n if (typeof propType !== 'function') {\n throw new TypeError('a propType is required');\n }\n\n if (exclusiveProps.length < 1) {\n throw new TypeError('at least one prop that is mutually exclusive with this propType is required');\n }\n\n const propList = exclusiveProps.join(', or ');\n\n const map = exclusiveProps.reduce((acc, prop) => ({ ...acc, [prop]: true }), {});\n const countProps = (count, prop) => (count + (map[prop] ? 1 : 0));\n\n const validator = function mutuallyExclusiveProps(props, propName, componentName, ...rest) {\n const exclusivePropCount = Object.keys(props)\n .filter(prop => props[prop] != null)\n .reduce(countProps, 0);\n if (exclusivePropCount > 1) {\n return new Error(`A ${componentName} cannot have more than one of these props: ${propList}`);\n }\n return propType(props, propName, componentName, ...rest);\n };\n\n validator.isRequired = function mutuallyExclusivePropsRequired(\n props,\n propName,\n componentName,\n ...rest\n ) {\n const exclusivePropCount = Object.keys(props)\n .filter(prop => prop === propName || props[prop] != null)\n .reduce(countProps, 0);\n if (exclusivePropCount > 1) {\n return new Error(`A ${componentName} cannot have more than one of these props: ${propList}`);\n }\n return propType(props, propName, componentName, ...rest);\n };\n\n return wrapValidator(validator, `mutuallyExclusiveProps:${propList}`, exclusiveProps);\n}\n","import { bool } from 'prop-types';\nimport wrapValidator from './helpers/wrapValidator';\n\nexport default function mutuallyExclusiveTrue(...exclusiveProps) {\n if (exclusiveProps.length < 1) {\n throw new TypeError('at least one prop that is mutually exclusive is required');\n }\n if (!exclusiveProps.every(x => typeof x === 'string')) {\n throw new TypeError('all exclusive true props must be strings');\n }\n\n const propsList = exclusiveProps.join(', or ');\n\n const validator = function mutuallyExclusiveTrueProps(props, propName, componentName, ...rest) {\n const countProps = (count, prop) => (count + (props[prop] ? 1 : 0));\n\n const exclusivePropCount = exclusiveProps.reduce(countProps, 0);\n if (exclusivePropCount > 1) {\n return new Error(`A ${componentName} cannot have more than one of these boolean props be true: ${propsList}`);\n }\n return bool(props, propName, componentName, ...rest);\n };\n\n validator.isRequired = function mutuallyExclusiveTruePropsRequired(\n props,\n propName,\n componentName,\n ...rest\n ) {\n const countProps = (count, prop) => (count + (props[prop] ? 1 : 0));\n\n const exclusivePropCount = exclusiveProps.reduce(countProps, 0);\n if (exclusivePropCount > 1) {\n return new Error(`A ${componentName} cannot have more than one of these boolean props be true: ${propsList}`);\n }\n return bool.isRequired(props, propName, componentName, ...rest);\n };\n\n return wrapValidator(validator, `mutuallyExclusiveTrueProps: ${propsList}`, exclusiveProps);\n}\n","import React from 'react';\nimport { node } from 'prop-types';\nimport wrapValidator from './helpers/wrapValidator';\n\nexport default function nChildren(n, propType = node) {\n if (typeof n !== 'number' || isNaN(n) || n < 0) {\n throw new TypeError('a non-negative number is required');\n }\n\n const validator = function nChildrenValidator(props, propName, componentName, ...rest) {\n if (propName !== 'children') {\n return new TypeError(`${componentName} is using the nChildren validator on a non-children prop`);\n }\n\n const { children } = props;\n const childrenCount = React.Children.count(children);\n\n if (childrenCount !== n) {\n return new RangeError(\n `${componentName} expects to receive ${n} children, but received ${childrenCount} children.`,\n );\n }\n return propType(props, propName, componentName, ...rest);\n };\n validator.isRequired = validator;\n\n return wrapValidator(validator, `nChildren:${n}`, n);\n}\n","import and from './and';\nimport integer from './integer';\nimport nonNegativeNumber from './nonNegativeNumber';\n\nexport default and([integer(), nonNegativeNumber()], 'nonNegativeInteger');\n","import is from 'object-is';\nimport wrapValidator from './helpers/wrapValidator';\n\nfunction isNonNegative(x) {\n return typeof x === 'number' && isFinite(x) && x >= 0 && !is(x, -0);\n}\n\nfunction nonNegativeNumber(props, propName, componentName) {\n const value = props[propName];\n\n if (value == null || isNonNegative(value)) {\n return null;\n }\n\n return new RangeError(`${propName} in ${componentName} must be a non-negative number`);\n}\n\nfunction requiredNonNegativeNumber(props, propName, componentName) {\n const value = props[propName];\n\n if (isNonNegative(value)) {\n return null;\n }\n\n return new RangeError(`${propName} in ${componentName} must be a non-negative number`);\n}\n\nnonNegativeNumber.isRequired = requiredNonNegativeNumber;\n\nexport default () => wrapValidator(nonNegativeNumber, 'nonNegativeNumber');\n","import { string } from 'prop-types';\nimport wrapValidator from './helpers/wrapValidator';\n\nconst validNumericChars = /^[-+]?(?:[1-9][0-9]*(?:\\.[0-9]+)?|0|0\\.[0-9]+)$/;\n\nconst validator = function numericString(props, propName, componentName, ...rest) {\n if (props[propName] == null) {\n return null;\n }\n\n const stringError = string(props, propName, componentName, ...rest);\n if (stringError) {\n return stringError;\n }\n\n const value = props[propName];\n\n const passesRegex = validNumericChars.test(value);\n if (passesRegex) {\n return null;\n }\n\n return new TypeError(`${componentName}: prop \"${propName}\" (value \"${value}\") must be a numeric string:\n - starting with an optional + or -\n - that does not have a leading zero\n - with an optional decimal part (that contains only one decimal point, if present)\n - that otherwise only contains digits (0-9)\n - not +-NaN, or +-Infinity\n `);\n};\n\nvalidator.isRequired = function numericStringRequired(props, propName, componentName, ...rest) {\n if (props[propName] == null) {\n return new TypeError(`${componentName}: ${propName} is required`);\n }\n return validator(props, propName, componentName, ...rest);\n};\n\nexport default () => wrapValidator(validator, 'numericString');\n","import isPlainObject from './helpers/isPlainObject';\nimport typeOf from './helpers/typeOf';\nimport wrapValidator from './helpers/wrapValidator';\n\n/*\n code adapted from https://github.com/facebook/react/blob/14156e56b9cf18ac86963185c5af4abddf3ff811/src/isomorphic/classic/types/ReactPropTypes.js#L202-L206\n so that it can be called outside of React's normal PropType flow\n*/\n\nconst ReactPropTypeLocationNames = {\n prop: 'prop',\n context: 'context',\n childContext: 'child context',\n};\n\nfunction object(props, propName, componentName, location, propFullName) {\n const { [propName]: propValue } = props;\n if (propValue == null) {\n return null;\n }\n\n if (isPlainObject(propValue)) {\n return null;\n }\n const locationName = ReactPropTypeLocationNames[location] || location;\n return new TypeError(`Invalid ${locationName} \\`${propFullName}\\` of type \\`${typeOf(propValue)}\\` supplied to \\`${componentName}\\`, expected \\`object\\`.`);\n}\nobject.isRequired = function objectRequired(\n props,\n propName,\n componentName,\n location,\n propFullName,\n ...rest\n) {\n const { [propName]: propValue } = props;\n if (propValue == null) {\n const locationName = ReactPropTypeLocationNames[location] || location;\n return new TypeError(`The ${locationName} \\`${propFullName}\\` is marked as required in \\`${componentName}\\`, but its value is \\`${propValue}\\`.`);\n }\n return object(props, propName, componentName, location, propFullName, ...rest);\n};\n\nexport default () => wrapValidator(object, 'object');\n","import { arrayOf } from 'prop-types';\nimport wrapValidator from './helpers/wrapValidator';\n\nfunction oneOfTypeValidator(validators) {\n const validator = function oneOfType(props, propName, componentName, ...rest) {\n const { [propName]: propValue } = props;\n if (typeof propValue === 'undefined') {\n return null;\n }\n\n const errors = validators\n .map(v => v(props, propName, componentName, ...rest))\n .filter(Boolean);\n\n if (errors.length < validators.length) {\n return null;\n }\n return new TypeError(`${componentName}: invalid value supplied to ${propName}.`);\n };\n validator.isRequired = function oneOfTypeRequired(props, propName, componentName, ...rest) {\n const { [propName]: propValue } = props;\n if (typeof propValue === 'undefined') {\n return new TypeError(`${componentName}: missing value for required ${propName}.`);\n }\n\n const errors = validators\n .map(v => v(props, propName, componentName, ...rest))\n .filter(Boolean);\n\n if (errors.length === validators.length) {\n return new TypeError(`${componentName}: invalid value ${errors} supplied to required ${propName}.`);\n }\n return null;\n };\n return wrapValidator(validator, 'oneOfType', validators);\n}\n\nexport default function or(validators, name = 'or') {\n if (!Array.isArray(validators)) {\n throw new TypeError('or: 2 or more validators are required');\n }\n if (validators.length <= 1) {\n throw new RangeError('or: 2 or more validators are required');\n }\n\n const validator = oneOfTypeValidator([\n arrayOf(oneOfTypeValidator(validators)),\n ...validators,\n ]);\n\n return wrapValidator(validator, name, validators);\n}\n","import and from './and';\nimport between from './between';\nimport integer from './integer';\nimport isInteger from './helpers/isInteger';\nimport wrapValidator from './helpers/wrapValidator';\n\nconst MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || /* istanbul ignore next */ (2 ** 53) - 1;\n\nfunction isValidLength(x) {\n return isInteger(x) && Math.abs(x) < MAX_SAFE_INTEGER;\n}\n\nexport default function range(min, max) {\n if (!isValidLength(min) || !isValidLength(max)) {\n throw new RangeError(`\"range\" requires two integers: ${min} and ${max} given`);\n }\n if (min === max) {\n throw new RangeError('min and max must not be the same');\n }\n return wrapValidator(and([integer(), between({ gte: min, lt: max })], 'range'), 'range', { min, max });\n}\n","import is from 'object-is';\nimport wrapValidator from './helpers/wrapValidator';\n\nexport default function getRequiredBy(requiredByPropName, propType, defaultValue = null) {\n function requiredBy(props, propName, componentName, ...rest) {\n if (props[requiredByPropName]) {\n const { [propName]: propValue } = props;\n if (is(propValue, defaultValue) || typeof propValue === 'undefined') {\n return new TypeError(\n `${componentName}: when ${requiredByPropName} is true, prop “${propName}” must be present.`,\n );\n }\n }\n return propType(props, propName, componentName, ...rest);\n }\n requiredBy.isRequired = function requiredByRequired(props, propName, componentName, ...rest) {\n const { [propName]: propValue } = props;\n if (is(propValue, defaultValue)) {\n return new TypeError(`${componentName}: prop “${propName}” must be present.`);\n }\n return propType.isRequired(props, propName, componentName, ...rest);\n };\n\n return wrapValidator(\n requiredBy,\n `requiredBy “${requiredByPropName}”`,\n [requiredByPropName, defaultValue],\n );\n}\n","import wrapValidator from './helpers/wrapValidator';\n\nfunction customMessageWrapper(messsageFunction) {\n function restrictedProp(props, propName, componentName, location, ...rest) {\n if (props[propName] == null) {\n return null;\n }\n\n if (messsageFunction && typeof messsageFunction === 'function') {\n return new TypeError(messsageFunction(props, propName, componentName, location, ...rest));\n }\n return new TypeError(`The ${propName} ${location} on ${componentName} is not allowed.`);\n }\n restrictedProp.isRequired = restrictedProp;\n return restrictedProp;\n}\n\nexport default (messsageFunction = null) => wrapValidator(customMessageWrapper(messsageFunction), 'restrictedProp');\n","import { array, arrayOf } from 'prop-types';\n\nimport and from './and';\nimport between from './between';\nimport nonNegativeInteger from './nonNegativeInteger';\nimport object from './object';\nimport withShape from './withShape';\nimport typeOf from './helpers/typeOf';\nimport wrapValidator from './helpers/wrapValidator';\n\nconst minValidator = nonNegativeInteger;\nconst maxValidator = and([nonNegativeInteger, between({ gte: 1 })]);\n\nfunction validateRange(min, max) {\n if (typeof max !== 'number' || typeof min !== 'number') {\n return null; // no additional checking needed unless both are present\n }\n\n if (min <= max) {\n return null;\n }\n return new RangeError('min must be less than or equal to max');\n}\n\nconst specifierShape = {\n validator(props, propName) {\n const { [propName]: propValue } = props;\n if (typeof propValue !== 'function') {\n return new TypeError('\"validator\" must be a propType validator function');\n }\n return null;\n },\n\n min(props, propName) {\n return minValidator(props, propName) || validateRange(props.min, props.max);\n },\n\n max(props, propName) {\n return maxValidator(props, propName) || validateRange(props.min, props.max);\n },\n};\n\nfunction getMinMax({ min, max }) {\n let minimum;\n let maximum;\n if (typeof min !== 'number' && typeof max !== 'number') {\n // neither provided, default to \"1\"\n minimum = 1;\n maximum = 1;\n } else {\n minimum = typeof min === 'number' ? min : 1;\n maximum = typeof max === 'number' ? max : Infinity;\n }\n return { minimum, maximum };\n}\n\nfunction chunkByType(items) {\n let chunk = [];\n let lastType;\n return items.reduce((chunks, item) => {\n const itemType = typeOf(item);\n if (!lastType || itemType === lastType) {\n chunk.push(item);\n } else {\n chunks.push(chunk);\n chunk = [item];\n }\n lastType = itemType;\n return chunks;\n }, []).concat(chunk.length > 0 ? [chunk] : []);\n}\n\nfunction validateChunks(specifiers, props, propName, componentName, ...rest) {\n const { [propName]: items } = props;\n const chunks = chunkByType(items);\n\n for (let i = 0; i < specifiers.length; i += 1) {\n const { validator, min, max } = specifiers[i];\n\n const { minimum, maximum } = getMinMax({ min, max });\n\n if (chunks.length === 0 && minimum === 0) {\n // no chunks left, but this specifier does not require any items\n continue; // eslint-disable-line no-continue\n }\n\n const arrayOfValidator = arrayOf(validator).isRequired;\n\n const chunk = chunks.shift(); // extract the next chunk to test\n\n const chunkError = arrayOfValidator(\n { ...props, [propName]: chunk },\n propName,\n componentName,\n ...rest,\n );\n\n if (chunkError) { // this chunk is invalid\n if (minimum === 0) { // but, specifier has a min of 0 and can be skipped\n chunks.unshift(chunk); // put the chunk back, for the next iteration\n continue; // eslint-disable-line no-continue\n }\n return chunkError;\n }\n\n // chunk is valid!\n\n if (chunk.length < minimum) {\n return new RangeError(`${componentName}: specifier index ${i} requires a minimum of ${min} items, but only has ${chunk.length}.`);\n }\n\n if (chunk.length > maximum) {\n return new RangeError(`${componentName}: specifier index ${i} requires a maximum of ${max} items, but has ${chunk.length}.`);\n }\n }\n\n if (chunks.length > 0) {\n return new TypeError(`${componentName}: after all ${specifiers.length} specifiers matched, ${chunks.length} types of items were remaining.`);\n }\n\n return null;\n}\n\nconst specifierValidator = withShape(object(), specifierShape).isRequired;\n\nexport default function sequenceOfValidator(...specifiers) {\n if (specifiers.length === 0) {\n throw new RangeError('sequenceOf: at least one specifier is required');\n }\n\n const errors = specifiers.map((specifier, i) => specifierValidator(\n { specifier },\n 'specifier',\n 'sequenceOf specifier',\n `suequenceOf specifier, index ${i}`,\n `specifier, index ${i}`,\n ));\n if (errors.some(Boolean)) {\n throw new TypeError(`\n sequenceOf: all specifiers must match the appropriate shape.\n\n Errors:\n ${errors.map((e, i) => ` - Argument index ${i}: ${e.message}`).join(',\\n ')}\n `);\n }\n\n const validator = function sequenceOf(props, propName, ...rest) {\n const { [propName]: propValue } = props;\n\n if (propValue == null) {\n return null;\n }\n\n const error = array(props, propName, ...rest);\n if (error) {\n return error;\n }\n\n return validateChunks(specifiers, props, propName, ...rest);\n };\n\n validator.isRequired = function sequenceOfRequired(props, propName, componentName, ...rest) {\n const error = array.isRequired(props, propName, componentName, ...rest);\n if (error) {\n return error;\n }\n\n return validateChunks(specifiers, props, propName, componentName, ...rest);\n };\n\n return wrapValidator(validator, 'sequenceOf', specifiers);\n}\n","import isPlainObject from './helpers/isPlainObject';\nimport wrapValidator from './helpers/wrapValidator';\n\nexport default function shapeValidator(shapeTypes) {\n if (!isPlainObject(shapeTypes)) {\n throw new TypeError('shape must be a normal object');\n }\n\n function shape(props, propName, componentName, location, ...rest) {\n const { [propName]: propValue } = props;\n if (propValue == null) {\n return null;\n }\n // code adapted from PropTypes.shape: https://github.com/facebook/react/blob/14156e56b9cf18ac86963185c5af4abddf3ff811/src/isomorphic/classic/types/ReactPropTypes.js#L381\n // eslint-disable-next-line guard-for-in, no-restricted-syntax\n for (const key in shapeTypes) {\n const checker = shapeTypes[key];\n if (checker) {\n const error = checker(\n propValue,\n key,\n componentName,\n location,\n ...rest,\n );\n if (error) {\n return error;\n }\n }\n }\n return null;\n }\n\n shape.isRequired = function shapeRequired(props, propName, componentName, ...rest) {\n const { [propName]: propValue } = props;\n if (propValue == null) {\n return new TypeError(`${componentName}: ${propName} is required.`);\n }\n return shape(props, propName, componentName, ...rest);\n };\n\n return wrapValidator(shape, 'shape', shapeTypes);\n}\n","import { string } from 'prop-types';\nimport wrapValidator from './helpers/wrapValidator';\n\nexport default function stringStartsWithValidator(start) {\n if (typeof start !== 'string' || start.length === 0) {\n throw new TypeError('a non-empty string is required');\n }\n\n const validator = function stringStartsWith(props, propName, componentName, ...rest) {\n const { [propName]: propValue } = props;\n\n if (propValue == null) {\n return null;\n }\n\n const stringError = string(props, propName, componentName, ...rest);\n if (stringError) {\n return stringError;\n }\n\n if (!propValue.startsWith(start) || propValue.length <= start.length) {\n return new TypeError(`${componentName}: ${propName} does not start with \"${start}\"`);\n }\n return null;\n };\n\n validator.isRequired = function requiredStringStartsWith(...args) {\n const stringError = string.isRequired(...args);\n if (stringError) {\n return stringError;\n }\n return validator(...args);\n };\n\n return wrapValidator(validator, `stringStartsWith: ${start}`);\n}\n","import { array } from 'prop-types';\nimport wrapValidator from './helpers/wrapValidator';\n\nfunction uniqueCountWithSet(arr) { return new Set(arr).size; }\n/* istanbul ignore next */\nfunction uniqueCountLegacy(arr) {\n const seen = [];\n arr.forEach((item) => {\n if (seen.indexOf(item) === -1) {\n seen.push(item);\n }\n });\n return seen.length;\n}\n\nconst getUniqueCount = typeof Set === 'function' ? uniqueCountWithSet : /* istanbul ignore next */ uniqueCountLegacy;\n\nfunction requiredUniqueArray(props, propName, componentName, ...rest) {\n const result = array.isRequired(props, propName, componentName, ...rest);\n if (result != null) {\n return result;\n }\n\n const { [propName]: propValue } = props;\n const uniqueCount = getUniqueCount(propValue);\n if (uniqueCount !== propValue.length) {\n return new RangeError(`${componentName}: values must be unique. ${propValue.length - uniqueCount} duplicate values found.`);\n }\n return null;\n}\n\nfunction uniqueArray(props, propName, ...rest) {\n const { [propName]: propValue } = props;\n if (propValue == null) {\n return null;\n }\n\n return requiredUniqueArray(props, propName, ...rest);\n}\nuniqueArray.isRequired = requiredUniqueArray;\n\nexport default () => wrapValidator(uniqueArray, 'uniqueArray');\n","import { arrayOf, array } from 'prop-types';\nimport and from './and';\nimport uniqueArray from './uniqueArray';\n\nconst unique = uniqueArray();\n\nexport default function uniqueArrayOfTypeValidator(type, ...rest) {\n if (typeof type !== 'function') {\n throw new TypeError('type must be a validator function');\n }\n\n let mapper = null;\n let name = 'uniqueArrayOfType';\n\n if (rest.length === 1) {\n if (typeof rest[0] === 'function') {\n ([mapper] = rest);\n } else if (typeof rest[0] === 'string') {\n ([name] = rest);\n } else {\n throw new TypeError('single input must either be string or function');\n }\n } else if (rest.length === 2) {\n if (typeof rest[0] === 'function' && typeof rest[1] === 'string') {\n ([mapper, name] = rest);\n } else {\n throw new TypeError('multiple inputs must be in [function, string] order');\n }\n } else if (rest.length > 2) {\n throw new TypeError('only [], [name], [mapper], and [mapper, name] are valid inputs');\n }\n\n function uniqueArrayOfMapped(props, propName, ...args) {\n const { [propName]: propValue } = props;\n if (propValue == null) {\n return null;\n }\n\n const values = propValue.map(mapper);\n return unique({ ...props, [propName]: values }, propName, ...args);\n }\n\n uniqueArrayOfMapped.isRequired = function isRequired(props, propName, ...args) {\n const { [propName]: propValue } = props;\n if (propValue == null) {\n return array.isRequired(props, propName, ...args);\n }\n return uniqueArrayOfMapped(props, propName, ...args);\n };\n\n const arrayValidator = arrayOf(type);\n\n const uniqueValidator = mapper ? uniqueArrayOfMapped : unique;\n\n const validator = and([arrayValidator, uniqueValidator], name);\n validator.isRequired = and([\n uniqueValidator.isRequired,\n arrayValidator.isRequired,\n ], `${name}.isRequired`);\n\n return validator;\n}\n","import isPrimitive from './helpers/isPrimitive';\nimport wrapValidator from './helpers/wrapValidator';\n\n// code adapted from https://github.com/facebook/react/blob/14156e56b9cf18ac86963185c5af4abddf3ff811/src/isomorphic/classic/types/ReactPropTypes.js#L307-L340\n\nexport default function valuesOfValidator(propType) {\n if (typeof propType !== 'function') {\n throw new TypeError('objectOf: propType must be a function');\n }\n\n const validator = function valuesOf(\n props,\n propName,\n componentName,\n location,\n propFullName,\n ...rest\n ) {\n const { [propName]: propValue } = props;\n if (propValue == null || isPrimitive(propValue)) {\n return null;\n }\n\n let firstError;\n Object.keys(propValue).some((key) => {\n firstError = propType(\n propValue,\n key,\n componentName,\n location,\n `${propFullName}.${key}`,\n ...rest,\n );\n return firstError;\n });\n return firstError || null;\n };\n validator.isRequired = function valuesOfRequired(props, propName, componentName, ...rest) {\n const { [propName]: propValue } = props;\n if (propValue == null) {\n return new TypeError(`${componentName}: ${propName} is required.`);\n }\n return validator(props, propName, componentName, ...rest);\n };\n\n return wrapValidator(validator, 'valuesOf', propType);\n}\n","import and from './and';\nimport shape from './shape';\n\nexport default function withShape(type, shapeTypes) {\n if (typeof type !== 'function') {\n throw new TypeError('type must be a valid PropType');\n }\n const shapeValidator = shape(shapeTypes);\n return and([type, shapeValidator], 'withShape');\n}\n","module.exports = process.env.NODE_ENV === 'production' ? require('./build/mocks') : require('./build');\n\n//# sourceMappingURL=index.js.map","'use strict';\n\nvar ES = require('es-abstract/es6');\n\nmodule.exports = function find(predicate) {\n\tvar list = ES.ToObject(this);\n\tvar length = ES.ToInteger(ES.ToLength(list.length));\n\tif (!ES.IsCallable(predicate)) {\n\t\tthrow new TypeError('Array#find: predicate must be a function');\n\t}\n\tif (length === 0) {\n\t\treturn undefined;\n\t}\n\tvar thisArg = arguments[1];\n\tfor (var i = 0, value; i < length; i++) {\n\t\tvalue = list[i];\n\t\tif (ES.Call(predicate, thisArg, [value, i, list])) {\n\t\t\treturn value;\n\t\t}\n\t}\n\treturn undefined;\n};\n","'use strict';\n\nvar define = require('define-properties');\nvar ES = require('es-abstract/es6');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar slice = Array.prototype.slice;\n\nvar polyfill = getPolyfill();\n\nvar boundFindShim = function find(array, predicate) { // eslint-disable-line no-unused-vars\n\tES.RequireObjectCoercible(array);\n\tvar args = slice.call(arguments, 1);\n\treturn polyfill.apply(array, args);\n};\n\ndefine(boundFindShim, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = boundFindShim;\n","'use strict';\n\nmodule.exports = function getPolyfill() {\n\t// Detect if an implementation exists\n\t// Detect early implementations which skipped holes in sparse arrays\n // eslint-disable-next-line no-sparse-arrays\n\tvar implemented = Array.prototype.find && [, 1].find(function () {\n\t\treturn true;\n\t}) !== 1;\n\n // eslint-disable-next-line global-require\n\treturn implemented ? Array.prototype.find : require('./implementation');\n};\n","'use strict';\n\nvar define = require('define-properties');\nvar getPolyfill = require('./polyfill');\n\nmodule.exports = function shimArrayPrototypeFind() {\n\tvar polyfill = getPolyfill();\n\n\tdefine(Array.prototype, { find: polyfill }, {\n\t\tfind: function () {\n\t\t\treturn Array.prototype.find !== polyfill;\n\t\t}\n\t});\n\n\treturn polyfill;\n};\n","'use strict';\n\nvar ES = require('es-abstract/es2017');\n\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || (Math.pow(2, 53) - 1);\n\n// eslint-disable-next-line max-params, max-statements\nvar FlattenIntoArray = function FlattenIntoArray(target, source, sourceLen, start, depth) {\n\tvar targetIndex = start;\n\tvar sourceIndex = 0;\n\n\t/*\n\tvar mapperFunction;\n\tif (arguments.length > 5) {\n\t\tmapperFunction = arguments[5];\n\t}\n\t*/\n\n\twhile (sourceIndex < sourceLen) {\n\t\tvar P = ES.ToString(sourceIndex);\n\t\tvar exists = ES.HasProperty(source, P);\n\t\tif (exists) {\n\t\t\tvar element = ES.Get(source, P);\n\t\t\t/*\n\t\t\tif (typeof mapperFunction !== 'undefined') {\n\t\t\t\tif (arguments.length <= 6) {\n\t\t\t\t\tthrow new TypeError('Assertion failed: thisArg is required when mapperFunction is provided');\n\t\t\t\t}\n\t\t\t\telement = ES.Call(mapperFunction, arguments[6], [element, sourceIndex, source]);\n\t\t\t}\n\t\t\t*/\n\t\t\tvar shouldFlatten = false;\n\t\t\tif (depth > 0) {\n\t\t\t\tshouldFlatten = ES.IsArray(element);\n\t\t\t}\n\t\t\tif (shouldFlatten) {\n\t\t\t\tvar elementLen = ES.ToLength(ES.Get(element, 'length'));\n\t\t\t\ttargetIndex = FlattenIntoArray(target, element, elementLen, targetIndex, depth - 1);\n\t\t\t} else {\n\t\t\t\tif (targetIndex >= MAX_SAFE_INTEGER) {\n\t\t\t\t\tthrow new TypeError('index too large');\n\t\t\t\t}\n\t\t\t\tES.CreateDataPropertyOrThrow(target, ES.ToString(targetIndex), element);\n\t\t\t\ttargetIndex += 1;\n\t\t\t}\n\t\t}\n\t\tsourceIndex += 1;\n\t}\n\n\treturn targetIndex;\n};\n\nmodule.exports = function flat() {\n\tvar O = ES.ToObject(this);\n\tvar sourceLen = ES.ToLength(ES.Get(O, 'length'));\n\n\tvar depthNum = 1;\n\tif (arguments.length > 0 && typeof arguments[0] !== 'undefined') {\n\t\tdepthNum = ES.ToInteger(arguments[0]);\n\t}\n\n\tvar A = ES.ArraySpeciesCreate(O, 0);\n\tFlattenIntoArray(A, O, sourceLen, 0, depthNum);\n\treturn A;\n};\n","'use strict';\n\nvar define = require('define-properties');\nvar bind = require('function-bind');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar polyfill = getPolyfill();\nvar shim = require('./shim');\n\nvar boundFlat = bind.call(Function.call, polyfill);\n\ndefine(boundFlat, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = boundFlat;\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n\treturn Array.prototype.flat || implementation;\n};\n","'use strict';\n\nvar define = require('define-properties');\nvar getPolyfill = require('./polyfill');\n\nmodule.exports = function shimFlat() {\n\tvar polyfill = getPolyfill();\n\tdefine(\n\t\tArray.prototype,\n\t\t{ flat: polyfill },\n\t\t{ flat: function () { return Array.prototype.flat !== polyfill; } }\n\t);\n\treturn polyfill;\n};\n","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","/*!\n * clipboard.js v2.0.4\n * https://zenorocha.github.io/clipboard.js\n * \n * Licensed MIT © Zeno Rocha\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ClipboardJS\"] = factory();\n\telse\n\t\troot[\"ClipboardJS\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _clipboardAction = __webpack_require__(1);\n\nvar _clipboardAction2 = _interopRequireDefault(_clipboardAction);\n\nvar _tinyEmitter = __webpack_require__(3);\n\nvar _tinyEmitter2 = _interopRequireDefault(_tinyEmitter);\n\nvar _goodListener = __webpack_require__(4);\n\nvar _goodListener2 = _interopRequireDefault(_goodListener);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * Base class which takes one or more elements, adds event listeners to them,\n * and instantiates a new `ClipboardAction` on each click.\n */\nvar Clipboard = function (_Emitter) {\n _inherits(Clipboard, _Emitter);\n\n /**\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n * @param {Object} options\n */\n function Clipboard(trigger, options) {\n _classCallCheck(this, Clipboard);\n\n var _this = _possibleConstructorReturn(this, (Clipboard.__proto__ || Object.getPrototypeOf(Clipboard)).call(this));\n\n _this.resolveOptions(options);\n _this.listenClick(trigger);\n return _this;\n }\n\n /**\n * Defines if attributes would be resolved using internal setter functions\n * or custom functions that were passed in the constructor.\n * @param {Object} options\n */\n\n\n _createClass(Clipboard, [{\n key: 'resolveOptions',\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n this.action = typeof options.action === 'function' ? options.action : this.defaultAction;\n this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;\n this.text = typeof options.text === 'function' ? options.text : this.defaultText;\n this.container = _typeof(options.container) === 'object' ? options.container : document.body;\n }\n\n /**\n * Adds a click event listener to the passed trigger.\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n */\n\n }, {\n key: 'listenClick',\n value: function listenClick(trigger) {\n var _this2 = this;\n\n this.listener = (0, _goodListener2.default)(trigger, 'click', function (e) {\n return _this2.onClick(e);\n });\n }\n\n /**\n * Defines a new `ClipboardAction` on each click event.\n * @param {Event} e\n */\n\n }, {\n key: 'onClick',\n value: function onClick(e) {\n var trigger = e.delegateTarget || e.currentTarget;\n\n if (this.clipboardAction) {\n this.clipboardAction = null;\n }\n\n this.clipboardAction = new _clipboardAction2.default({\n action: this.action(trigger),\n target: this.target(trigger),\n text: this.text(trigger),\n container: this.container,\n trigger: trigger,\n emitter: this\n });\n }\n\n /**\n * Default `action` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: 'defaultAction',\n value: function defaultAction(trigger) {\n return getAttributeValue('action', trigger);\n }\n\n /**\n * Default `target` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: 'defaultTarget',\n value: function defaultTarget(trigger) {\n var selector = getAttributeValue('target', trigger);\n\n if (selector) {\n return document.querySelector(selector);\n }\n }\n\n /**\n * Returns the support of the given action, or all actions if no action is\n * given.\n * @param {String} [action]\n */\n\n }, {\n key: 'defaultText',\n\n\n /**\n * Default `text` lookup function.\n * @param {Element} trigger\n */\n value: function defaultText(trigger) {\n return getAttributeValue('text', trigger);\n }\n\n /**\n * Destroy lifecycle.\n */\n\n }, {\n key: 'destroy',\n value: function destroy() {\n this.listener.destroy();\n\n if (this.clipboardAction) {\n this.clipboardAction.destroy();\n this.clipboardAction = null;\n }\n }\n }], [{\n key: 'isSupported',\n value: function isSupported() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];\n\n var actions = typeof action === 'string' ? [action] : action;\n var support = !!document.queryCommandSupported;\n\n actions.forEach(function (action) {\n support = support && !!document.queryCommandSupported(action);\n });\n\n return support;\n }\n }]);\n\n return Clipboard;\n}(_tinyEmitter2.default);\n\n/**\n * Helper function to retrieve attribute value.\n * @param {String} suffix\n * @param {Element} element\n */\n\n\nfunction getAttributeValue(suffix, element) {\n var attribute = 'data-clipboard-' + suffix;\n\n if (!element.hasAttribute(attribute)) {\n return;\n }\n\n return element.getAttribute(attribute);\n}\n\nmodule.exports = Clipboard;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _select = __webpack_require__(2);\n\nvar _select2 = _interopRequireDefault(_select);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Inner class which performs selection from either `text` or `target`\n * properties and then executes copy or cut operations.\n */\nvar ClipboardAction = function () {\n /**\n * @param {Object} options\n */\n function ClipboardAction(options) {\n _classCallCheck(this, ClipboardAction);\n\n this.resolveOptions(options);\n this.initSelection();\n }\n\n /**\n * Defines base properties passed from constructor.\n * @param {Object} options\n */\n\n\n _createClass(ClipboardAction, [{\n key: 'resolveOptions',\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n this.action = options.action;\n this.container = options.container;\n this.emitter = options.emitter;\n this.target = options.target;\n this.text = options.text;\n this.trigger = options.trigger;\n\n this.selectedText = '';\n }\n\n /**\n * Decides which selection strategy is going to be applied based\n * on the existence of `text` and `target` properties.\n */\n\n }, {\n key: 'initSelection',\n value: function initSelection() {\n if (this.text) {\n this.selectFake();\n } else if (this.target) {\n this.selectTarget();\n }\n }\n\n /**\n * Creates a fake textarea element, sets its value from `text` property,\n * and makes a selection on it.\n */\n\n }, {\n key: 'selectFake',\n value: function selectFake() {\n var _this = this;\n\n var isRTL = document.documentElement.getAttribute('dir') == 'rtl';\n\n this.removeFake();\n\n this.fakeHandlerCallback = function () {\n return _this.removeFake();\n };\n this.fakeHandler = this.container.addEventListener('click', this.fakeHandlerCallback) || true;\n\n this.fakeElem = document.createElement('textarea');\n // Prevent zooming on iOS\n this.fakeElem.style.fontSize = '12pt';\n // Reset box model\n this.fakeElem.style.border = '0';\n this.fakeElem.style.padding = '0';\n this.fakeElem.style.margin = '0';\n // Move element out of screen horizontally\n this.fakeElem.style.position = 'absolute';\n this.fakeElem.style[isRTL ? 'right' : 'left'] = '-9999px';\n // Move element to the same position vertically\n var yPosition = window.pageYOffset || document.documentElement.scrollTop;\n this.fakeElem.style.top = yPosition + 'px';\n\n this.fakeElem.setAttribute('readonly', '');\n this.fakeElem.value = this.text;\n\n this.container.appendChild(this.fakeElem);\n\n this.selectedText = (0, _select2.default)(this.fakeElem);\n this.copyText();\n }\n\n /**\n * Only removes the fake element after another click event, that way\n * a user can hit `Ctrl+C` to copy because selection still exists.\n */\n\n }, {\n key: 'removeFake',\n value: function removeFake() {\n if (this.fakeHandler) {\n this.container.removeEventListener('click', this.fakeHandlerCallback);\n this.fakeHandler = null;\n this.fakeHandlerCallback = null;\n }\n\n if (this.fakeElem) {\n this.container.removeChild(this.fakeElem);\n this.fakeElem = null;\n }\n }\n\n /**\n * Selects the content from element passed on `target` property.\n */\n\n }, {\n key: 'selectTarget',\n value: function selectTarget() {\n this.selectedText = (0, _select2.default)(this.target);\n this.copyText();\n }\n\n /**\n * Executes the copy operation based on the current selection.\n */\n\n }, {\n key: 'copyText',\n value: function copyText() {\n var succeeded = void 0;\n\n try {\n succeeded = document.execCommand(this.action);\n } catch (err) {\n succeeded = false;\n }\n\n this.handleResult(succeeded);\n }\n\n /**\n * Fires an event based on the copy operation result.\n * @param {Boolean} succeeded\n */\n\n }, {\n key: 'handleResult',\n value: function handleResult(succeeded) {\n this.emitter.emit(succeeded ? 'success' : 'error', {\n action: this.action,\n text: this.selectedText,\n trigger: this.trigger,\n clearSelection: this.clearSelection.bind(this)\n });\n }\n\n /**\n * Moves focus away from `target` and back to the trigger, removes current selection.\n */\n\n }, {\n key: 'clearSelection',\n value: function clearSelection() {\n if (this.trigger) {\n this.trigger.focus();\n }\n\n window.getSelection().removeAllRanges();\n }\n\n /**\n * Sets the `action` to be performed which can be either 'copy' or 'cut'.\n * @param {String} action\n */\n\n }, {\n key: 'destroy',\n\n\n /**\n * Destroy lifecycle.\n */\n value: function destroy() {\n this.removeFake();\n }\n }, {\n key: 'action',\n set: function set() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'copy';\n\n this._action = action;\n\n if (this._action !== 'copy' && this._action !== 'cut') {\n throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"');\n }\n }\n\n /**\n * Gets the `action` property.\n * @return {String}\n */\n ,\n get: function get() {\n return this._action;\n }\n\n /**\n * Sets the `target` property using an element\n * that will be have its content copied.\n * @param {Element} target\n */\n\n }, {\n key: 'target',\n set: function set(target) {\n if (target !== undefined) {\n if (target && (typeof target === 'undefined' ? 'undefined' : _typeof(target)) === 'object' && target.nodeType === 1) {\n if (this.action === 'copy' && target.hasAttribute('disabled')) {\n throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');\n }\n\n if (this.action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {\n throw new Error('Invalid \"target\" attribute. You can\\'t cut text from elements with \"readonly\" or \"disabled\" attributes');\n }\n\n this._target = target;\n } else {\n throw new Error('Invalid \"target\" value, use a valid Element');\n }\n }\n }\n\n /**\n * Gets the `target` property.\n * @return {String|HTMLElement}\n */\n ,\n get: function get() {\n return this._target;\n }\n }]);\n\n return ClipboardAction;\n}();\n\nmodule.exports = ClipboardAction;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\nfunction select(element) {\n var selectedText;\n\n if (element.nodeName === 'SELECT') {\n element.focus();\n\n selectedText = element.value;\n }\n else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n var isReadOnly = element.hasAttribute('readonly');\n\n if (!isReadOnly) {\n element.setAttribute('readonly', '');\n }\n\n element.select();\n element.setSelectionRange(0, element.value.length);\n\n if (!isReadOnly) {\n element.removeAttribute('readonly');\n }\n\n selectedText = element.value;\n }\n else {\n if (element.hasAttribute('contenteditable')) {\n element.focus();\n }\n\n var selection = window.getSelection();\n var range = document.createRange();\n\n range.selectNodeContents(element);\n selection.removeAllRanges();\n selection.addRange(range);\n\n selectedText = selection.toString();\n }\n\n return selectedText;\n}\n\nmodule.exports = select;\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\nfunction E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar is = __webpack_require__(5);\nvar delegate = __webpack_require__(6);\n\n/**\n * Validates all params and calls the right\n * listener function based on its target type.\n *\n * @param {String|HTMLElement|HTMLCollection|NodeList} target\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listen(target, type, callback) {\n if (!target && !type && !callback) {\n throw new Error('Missing required arguments');\n }\n\n if (!is.string(type)) {\n throw new TypeError('Second argument must be a String');\n }\n\n if (!is.fn(callback)) {\n throw new TypeError('Third argument must be a Function');\n }\n\n if (is.node(target)) {\n return listenNode(target, type, callback);\n }\n else if (is.nodeList(target)) {\n return listenNodeList(target, type, callback);\n }\n else if (is.string(target)) {\n return listenSelector(target, type, callback);\n }\n else {\n throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');\n }\n}\n\n/**\n * Adds an event listener to a HTML element\n * and returns a remove listener function.\n *\n * @param {HTMLElement} node\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNode(node, type, callback) {\n node.addEventListener(type, callback);\n\n return {\n destroy: function() {\n node.removeEventListener(type, callback);\n }\n }\n}\n\n/**\n * Add an event listener to a list of HTML elements\n * and returns a remove listener function.\n *\n * @param {NodeList|HTMLCollection} nodeList\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNodeList(nodeList, type, callback) {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.addEventListener(type, callback);\n });\n\n return {\n destroy: function() {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.removeEventListener(type, callback);\n });\n }\n }\n}\n\n/**\n * Add an event listener to a selector\n * and returns a remove listener function.\n *\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenSelector(selector, type, callback) {\n return delegate(document.body, selector, type, callback);\n}\n\nmodule.exports = listen;\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports) {\n\n/**\n * Check if argument is a HTML element.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.node = function(value) {\n return value !== undefined\n && value instanceof HTMLElement\n && value.nodeType === 1;\n};\n\n/**\n * Check if argument is a list of HTML elements.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.nodeList = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return value !== undefined\n && (type === '[object NodeList]' || type === '[object HTMLCollection]')\n && ('length' in value)\n && (value.length === 0 || exports.node(value[0]));\n};\n\n/**\n * Check if argument is a string.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.string = function(value) {\n return typeof value === 'string'\n || value instanceof String;\n};\n\n/**\n * Check if argument is a function.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.fn = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return type === '[object Function]';\n};\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar closest = __webpack_require__(7);\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction _delegate(element, selector, type, callback, useCapture) {\n var listenerFn = listener.apply(this, arguments);\n\n element.addEventListener(type, listenerFn, useCapture);\n\n return {\n destroy: function() {\n element.removeEventListener(type, listenerFn, useCapture);\n }\n }\n}\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element|String|Array} [elements]\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction delegate(elements, selector, type, callback, useCapture) {\n // Handle the regular Element usage\n if (typeof elements.addEventListener === 'function') {\n return _delegate.apply(null, arguments);\n }\n\n // Handle Element-less usage, it defaults to global delegation\n if (typeof type === 'function') {\n // Use `document` as the first parameter, then apply arguments\n // This is a short way to .unshift `arguments` without running into deoptimizations\n return _delegate.bind(null, document).apply(null, arguments);\n }\n\n // Handle Selector-based usage\n if (typeof elements === 'string') {\n elements = document.querySelectorAll(elements);\n }\n\n // Handle Array-like based usage\n return Array.prototype.map.call(elements, function (element) {\n return _delegate(element, selector, type, callback, useCapture);\n });\n}\n\n/**\n * Finds closest match and invokes callback.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Function}\n */\nfunction listener(element, selector, type, callback) {\n return function(e) {\n e.delegateTarget = closest(e.target, selector);\n\n if (e.delegateTarget) {\n callback.call(element, e);\n }\n }\n}\n\nmodule.exports = delegate;\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports) {\n\nvar DOCUMENT_NODE_TYPE = 9;\n\n/**\n * A polyfill for Element.matches()\n */\nif (typeof Element !== 'undefined' && !Element.prototype.matches) {\n var proto = Element.prototype;\n\n proto.matches = proto.matchesSelector ||\n proto.mozMatchesSelector ||\n proto.msMatchesSelector ||\n proto.oMatchesSelector ||\n proto.webkitMatchesSelector;\n}\n\n/**\n * Finds the closest parent that matches a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @return {Function}\n */\nfunction closest (element, selector) {\n while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {\n if (typeof element.matches === 'function' &&\n element.matches(selector)) {\n return element;\n }\n element = element.parentNode;\n }\n}\n\nmodule.exports = closest;\n\n\n/***/ })\n/******/ ]);\n});","var CAN_USE_DOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\n// Adapted from Modernizr\n// https://github.com/Modernizr/Modernizr/blob/acb3f0d9/feature-detects/dom/passiveeventlisteners.js#L26-L37\nfunction testPassiveEventListeners() {\n if (!CAN_USE_DOM) {\n return false;\n }\n\n if (!window.addEventListener || !window.removeEventListener || !Object.defineProperty) {\n return false;\n }\n\n var supportsPassiveOption = false;\n try {\n var opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line getter-return\n get: function () {\n function get() {\n supportsPassiveOption = true;\n }\n\n return get;\n }()\n });\n var noop = function noop() {};\n window.addEventListener('testPassiveEventSupport', noop, opts);\n window.removeEventListener('testPassiveEventSupport', noop, opts);\n } catch (e) {\n // do nothing\n }\n\n return supportsPassiveOption;\n}\n\nvar memoized = void 0;\n\nfunction canUsePassiveEventListeners() {\n if (memoized === undefined) {\n memoized = testPassiveEventListeners();\n }\n return memoized;\n}\n\nfunction normalizeEventOptions(eventOptions) {\n if (!eventOptions) {\n return undefined;\n }\n\n if (!canUsePassiveEventListeners()) {\n // If the browser does not support the passive option, then it is expecting\n // a boolean for the options argument to specify whether it should use\n // capture or not. In more modern browsers, this is passed via the `capture`\n // option, so let's just hoist that value up.\n return !!eventOptions.capture;\n }\n\n return eventOptions;\n}\n\n/* eslint-disable no-bitwise */\n\n/**\n * Generate a unique key for any set of event options\n */\nfunction eventOptionsKey(normalizedEventOptions) {\n if (!normalizedEventOptions) {\n return 0;\n }\n\n // If the browser does not support passive event listeners, the normalized\n // event options will be a boolean.\n if (normalizedEventOptions === true) {\n return 100;\n }\n\n // At this point, the browser supports passive event listeners, so we expect\n // the event options to be an object with possible properties of capture,\n // passive, and once.\n //\n // We want to consistently return the same value, regardless of the order of\n // these properties, so let's use binary maths to assign each property to a\n // bit, and then add those together (with an offset to account for the\n // booleans at the beginning of this function).\n var capture = normalizedEventOptions.capture << 0;\n var passive = normalizedEventOptions.passive << 1;\n var once = normalizedEventOptions.once << 2;\n return capture + passive + once;\n}\n\nfunction ensureCanMutateNextEventHandlers(eventHandlers) {\n if (eventHandlers.handlers === eventHandlers.nextHandlers) {\n // eslint-disable-next-line no-param-reassign\n eventHandlers.nextHandlers = eventHandlers.handlers.slice();\n }\n}\n\nfunction TargetEventHandlers(target) {\n this.target = target;\n this.events = {};\n}\n\nTargetEventHandlers.prototype.getEventHandlers = function () {\n function getEventHandlers(eventName, options) {\n var key = String(eventName) + ' ' + String(eventOptionsKey(options));\n\n if (!this.events[key]) {\n this.events[key] = {\n handlers: [],\n handleEvent: undefined\n };\n this.events[key].nextHandlers = this.events[key].handlers;\n }\n\n return this.events[key];\n }\n\n return getEventHandlers;\n}();\n\nTargetEventHandlers.prototype.handleEvent = function () {\n function handleEvent(eventName, options, event) {\n var eventHandlers = this.getEventHandlers(eventName, options);\n eventHandlers.handlers = eventHandlers.nextHandlers;\n eventHandlers.handlers.forEach(function (handler) {\n if (handler) {\n // We need to check for presence here because a handler function may\n // cause later handlers to get removed. This can happen if you for\n // instance have a waypoint that unmounts another waypoint as part of an\n // onEnter/onLeave handler.\n handler(event);\n }\n });\n }\n\n return handleEvent;\n}();\n\nTargetEventHandlers.prototype.add = function () {\n function add(eventName, listener, options) {\n var _this = this;\n\n // options has already been normalized at this point.\n var eventHandlers = this.getEventHandlers(eventName, options);\n\n ensureCanMutateNextEventHandlers(eventHandlers);\n\n if (eventHandlers.nextHandlers.length === 0) {\n eventHandlers.handleEvent = this.handleEvent.bind(this, eventName, options);\n\n this.target.addEventListener(eventName, eventHandlers.handleEvent, options);\n }\n\n eventHandlers.nextHandlers.push(listener);\n\n var isSubscribed = true;\n var unsubscribe = function () {\n function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n isSubscribed = false;\n\n ensureCanMutateNextEventHandlers(eventHandlers);\n var index = eventHandlers.nextHandlers.indexOf(listener);\n eventHandlers.nextHandlers.splice(index, 1);\n\n if (eventHandlers.nextHandlers.length === 0) {\n // All event handlers have been removed, so we want to remove the event\n // listener from the target node.\n\n if (_this.target) {\n // There can be a race condition where the target may no longer exist\n // when this function is called, e.g. when a React component is\n // unmounting. Guarding against this prevents the following error:\n //\n // Cannot read property 'removeEventListener' of undefined\n _this.target.removeEventListener(eventName, eventHandlers.handleEvent, options);\n }\n\n eventHandlers.handleEvent = undefined;\n }\n }\n\n return unsubscribe;\n }();\n return unsubscribe;\n }\n\n return add;\n}();\n\nvar EVENT_HANDLERS_KEY = '__consolidated_events_handlers__';\n\n// eslint-disable-next-line import/prefer-default-export\nfunction addEventListener(target, eventName, listener, options) {\n if (!target[EVENT_HANDLERS_KEY]) {\n // eslint-disable-next-line no-param-reassign\n target[EVENT_HANDLERS_KEY] = new TargetEventHandlers(target);\n }\n var normalizedEventOptions = normalizeEventOptions(options);\n return target[EVENT_HANDLERS_KEY].add(eventName, listener, normalizedEventOptions);\n}\n\nexport { addEventListener };\n","'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n return Array.isArray(val) ? [] : {}\n}\n\nfunction cloneIfNecessary(value, optionsArgument) {\n var clone = optionsArgument && optionsArgument.clone === true;\n return (clone && isMergeableObject(value)) ? deepmerge(emptyTarget(value), value, optionsArgument) : value\n}\n\nfunction defaultArrayMerge(target, source, optionsArgument) {\n var destination = target.slice();\n source.forEach(function(e, i) {\n if (typeof destination[i] === 'undefined') {\n destination[i] = cloneIfNecessary(e, optionsArgument);\n } else if (isMergeableObject(e)) {\n destination[i] = deepmerge(target[i], e, optionsArgument);\n } else if (target.indexOf(e) === -1) {\n destination.push(cloneIfNecessary(e, optionsArgument));\n }\n });\n return destination\n}\n\nfunction mergeObject(target, source, optionsArgument) {\n var destination = {};\n if (isMergeableObject(target)) {\n Object.keys(target).forEach(function(key) {\n destination[key] = cloneIfNecessary(target[key], optionsArgument);\n });\n }\n Object.keys(source).forEach(function(key) {\n if (!isMergeableObject(source[key]) || !target[key]) {\n destination[key] = cloneIfNecessary(source[key], optionsArgument);\n } else {\n destination[key] = deepmerge(target[key], source[key], optionsArgument);\n }\n });\n return destination\n}\n\nfunction deepmerge(target, source, optionsArgument) {\n var sourceIsArray = Array.isArray(source);\n var targetIsArray = Array.isArray(target);\n var options = optionsArgument || { arrayMerge: defaultArrayMerge };\n var sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n if (!sourceAndTargetTypesMatch) {\n return cloneIfNecessary(source, optionsArgument)\n } else if (sourceIsArray) {\n var arrayMerge = options.arrayMerge || defaultArrayMerge;\n return arrayMerge(target, source, optionsArgument)\n } else {\n return mergeObject(target, source, optionsArgument)\n }\n}\n\ndeepmerge.all = function deepmergeAll(array, optionsArgument) {\n if (!Array.isArray(array) || array.length < 2) {\n throw new Error('first argument should be an array with at least two elements')\n }\n\n // we are sure there are at least 2 values, so it is safe to have no initial value\n return array.reduce(function(prev, next) {\n return deepmerge(prev, next, optionsArgument)\n })\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n","'use strict';\n\nvar keys = require('object-keys');\nvar foreach = require('foreach');\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol() === 'symbol';\n\nvar toStr = Object.prototype.toString;\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar arePropertyDescriptorsSupported = function () {\n\tvar obj = {};\n\ttry {\n\t\tObject.defineProperty(obj, 'x', { enumerable: false, value: obj });\n /* eslint-disable no-unused-vars, no-restricted-syntax */\n for (var _ in obj) { return false; }\n /* eslint-enable no-unused-vars, no-restricted-syntax */\n\t\treturn obj.x === obj;\n\t} catch (e) { /* this is IE 8. */\n\t\treturn false;\n\t}\n};\nvar supportsDescriptors = Object.defineProperty && arePropertyDescriptorsSupported();\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object && (!isFunction(predicate) || !predicate())) {\n\t\treturn;\n\t}\n\tif (supportsDescriptors) {\n\t\tObject.defineProperty(object, name, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tvalue: value,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\tobject[name] = value;\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = props.concat(Object.getOwnPropertySymbols(map));\n\t}\n\tforeach(props, function (name) {\n\t\tdefineProperty(object, name, map[name], predicates[name]);\n\t});\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n","'use strict';\n\nvar util = require('./util');\n\nfunction scrollIntoView(elem, container, config) {\n config = config || {};\n // document 归一化到 window\n if (container.nodeType === 9) {\n container = util.getWindow(container);\n }\n\n var allowHorizontalScroll = config.allowHorizontalScroll;\n var onlyScrollIfNeeded = config.onlyScrollIfNeeded;\n var alignWithTop = config.alignWithTop;\n var alignWithLeft = config.alignWithLeft;\n var offsetTop = config.offsetTop || 0;\n var offsetLeft = config.offsetLeft || 0;\n var offsetBottom = config.offsetBottom || 0;\n var offsetRight = config.offsetRight || 0;\n\n allowHorizontalScroll = allowHorizontalScroll === undefined ? true : allowHorizontalScroll;\n\n var isWin = util.isWindow(container);\n var elemOffset = util.offset(elem);\n var eh = util.outerHeight(elem);\n var ew = util.outerWidth(elem);\n var containerOffset = undefined;\n var ch = undefined;\n var cw = undefined;\n var containerScroll = undefined;\n var diffTop = undefined;\n var diffBottom = undefined;\n var win = undefined;\n var winScroll = undefined;\n var ww = undefined;\n var wh = undefined;\n\n if (isWin) {\n win = container;\n wh = util.height(win);\n ww = util.width(win);\n winScroll = {\n left: util.scrollLeft(win),\n top: util.scrollTop(win)\n };\n // elem 相对 container 可视视窗的距离\n diffTop = {\n left: elemOffset.left - winScroll.left - offsetLeft,\n top: elemOffset.top - winScroll.top - offsetTop\n };\n diffBottom = {\n left: elemOffset.left + ew - (winScroll.left + ww) + offsetRight,\n top: elemOffset.top + eh - (winScroll.top + wh) + offsetBottom\n };\n containerScroll = winScroll;\n } else {\n containerOffset = util.offset(container);\n ch = container.clientHeight;\n cw = container.clientWidth;\n containerScroll = {\n left: container.scrollLeft,\n top: container.scrollTop\n };\n // elem 相对 container 可视视窗的距离\n // 注意边框, offset 是边框到根节点\n diffTop = {\n left: elemOffset.left - (containerOffset.left + (parseFloat(util.css(container, 'borderLeftWidth')) || 0)) - offsetLeft,\n top: elemOffset.top - (containerOffset.top + (parseFloat(util.css(container, 'borderTopWidth')) || 0)) - offsetTop\n };\n diffBottom = {\n left: elemOffset.left + ew - (containerOffset.left + cw + (parseFloat(util.css(container, 'borderRightWidth')) || 0)) + offsetRight,\n top: elemOffset.top + eh - (containerOffset.top + ch + (parseFloat(util.css(container, 'borderBottomWidth')) || 0)) + offsetBottom\n };\n }\n\n if (diffTop.top < 0 || diffBottom.top > 0) {\n // 强制向上\n if (alignWithTop === true) {\n util.scrollTop(container, containerScroll.top + diffTop.top);\n } else if (alignWithTop === false) {\n util.scrollTop(container, containerScroll.top + diffBottom.top);\n } else {\n // 自动调整\n if (diffTop.top < 0) {\n util.scrollTop(container, containerScroll.top + diffTop.top);\n } else {\n util.scrollTop(container, containerScroll.top + diffBottom.top);\n }\n }\n } else {\n if (!onlyScrollIfNeeded) {\n alignWithTop = alignWithTop === undefined ? true : !!alignWithTop;\n if (alignWithTop) {\n util.scrollTop(container, containerScroll.top + diffTop.top);\n } else {\n util.scrollTop(container, containerScroll.top + diffBottom.top);\n }\n }\n }\n\n if (allowHorizontalScroll) {\n if (diffTop.left < 0 || diffBottom.left > 0) {\n // 强制向上\n if (alignWithLeft === true) {\n util.scrollLeft(container, containerScroll.left + diffTop.left);\n } else if (alignWithLeft === false) {\n util.scrollLeft(container, containerScroll.left + diffBottom.left);\n } else {\n // 自动调整\n if (diffTop.left < 0) {\n util.scrollLeft(container, containerScroll.left + diffTop.left);\n } else {\n util.scrollLeft(container, containerScroll.left + diffBottom.left);\n }\n }\n } else {\n if (!onlyScrollIfNeeded) {\n alignWithLeft = alignWithLeft === undefined ? true : !!alignWithLeft;\n if (alignWithLeft) {\n util.scrollLeft(container, containerScroll.left + diffTop.left);\n } else {\n util.scrollLeft(container, containerScroll.left + diffBottom.left);\n }\n }\n }\n }\n}\n\nmodule.exports = scrollIntoView;","'use strict';\n\nmodule.exports = require('./dom-scroll-into-view');","'use strict';\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\n\nvar RE_NUM = /[\\-+]?(?:\\d*\\.|)\\d+(?:[eE][\\-+]?\\d+|)/.source;\n\nfunction getClientPosition(elem) {\n var box = undefined;\n var x = undefined;\n var y = undefined;\n var doc = elem.ownerDocument;\n var body = doc.body;\n var docElem = doc && doc.documentElement;\n // 根据 GBS 最新数据A-Grade Browsers 都已支持 getBoundingClientRect 方法,不用再考虑传统的实现方式\n box = elem.getBoundingClientRect();\n\n // 注jQuery 还考虑减去 docElem.clientLeft/clientTop\n // 但测试发现,这样反而会导致当 html 和 body 有边距/边框样式时,获取的值不正确\n // 此外ie6 会忽略 html 的 margin 值,幸运地是没有谁会去设置 html 的 margin\n\n x = box.left;\n y = box.top;\n\n // In IE, most of the time, 2 extra pixels are added to the top and left\n // due to the implicit 2-pixel inset border. In IE6/7 quirks mode and\n // IE6 standards mode, this border can be overridden by setting the\n // document element's border to zero -- thus, we cannot rely on the\n // offset always being 2 pixels.\n\n // In quirks mode, the offset can be determined by querying the body's\n // clientLeft/clientTop, but in standards mode, it is found by querying\n // the document element's clientLeft/clientTop. Since we already called\n // getClientBoundingRect we have already forced a reflow, so it is not\n // too expensive just to query them all.\n\n // ie 下应该减去窗口的边框吧,毕竟默认 absolute 都是相对窗口定位的\n // 窗口边框标准是设 documentElement ,quirks 时设置 body\n // 最好禁止在 body 和 html 上边框 ,但 ie < 9 html 默认有 2px ,减去\n // 但是非 ie 不可能设置窗口边框body html 也不是窗口 ,ie 可以通过 html,body 设置\n // 标准 ie 下 docElem.clientTop 就是 border-top\n // ie7 html 即窗口边框改变不了。永远为 2\n // 但标准 firefox/chrome/ie9 下 docElem.clientTop 是窗口边框,即使设了 border-top 也为 0\n\n x -= docElem.clientLeft || body.clientLeft || 0;\n y -= docElem.clientTop || body.clientTop || 0;\n\n return {\n left: x,\n top: y\n };\n}\n\nfunction getScroll(w, top) {\n var ret = w['page' + (top ? 'Y' : 'X') + 'Offset'];\n var method = 'scroll' + (top ? 'Top' : 'Left');\n if (typeof ret !== 'number') {\n var d = w.document;\n // ie6,7,8 standard mode\n ret = d.documentElement[method];\n if (typeof ret !== 'number') {\n // quirks mode\n ret = d.body[method];\n }\n }\n return ret;\n}\n\nfunction getScrollLeft(w) {\n return getScroll(w);\n}\n\nfunction getScrollTop(w) {\n return getScroll(w, true);\n}\n\nfunction getOffset(el) {\n var pos = getClientPosition(el);\n var doc = el.ownerDocument;\n var w = doc.defaultView || doc.parentWindow;\n pos.left += getScrollLeft(w);\n pos.top += getScrollTop(w);\n return pos;\n}\nfunction _getComputedStyle(elem, name, computedStyle_) {\n var val = '';\n var d = elem.ownerDocument;\n var computedStyle = computedStyle_ || d.defaultView.getComputedStyle(elem, null);\n\n // https://github.com/kissyteam/kissy/issues/61\n if (computedStyle) {\n val = computedStyle.getPropertyValue(name) || computedStyle[name];\n }\n\n return val;\n}\n\nvar _RE_NUM_NO_PX = new RegExp('^(' + RE_NUM + ')(?!px)[a-z%]+$', 'i');\nvar RE_POS = /^(top|right|bottom|left)$/;\nvar CURRENT_STYLE = 'currentStyle';\nvar RUNTIME_STYLE = 'runtimeStyle';\nvar LEFT = 'left';\nvar PX = 'px';\n\nfunction _getComputedStyleIE(elem, name) {\n // currentStyle maybe null\n // http://msdn.microsoft.com/en-us/library/ms535231.aspx\n var ret = elem[CURRENT_STYLE] && elem[CURRENT_STYLE][name];\n\n // 当 width/height 设置为百分比时,通过 pixelLeft 方式转换的 width/height 值\n // 一开始就处理了! CUSTOM_STYLE.height,CUSTOM_STYLE.width ,cssHook 解决@2011-08-19\n // 在 ie 下不对,需要直接用 offset 方式\n // borderWidth 等值也有问题,但考虑到 borderWidth 设为百分比的概率很小,这里就不考虑了\n\n // From the awesome hack by Dean Edwards\n // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291\n // If we're not dealing with a regular pixel number\n // but a number that has a weird ending, we need to convert it to pixels\n // exclude left right for relativity\n if (_RE_NUM_NO_PX.test(ret) && !RE_POS.test(name)) {\n // Remember the original values\n var style = elem.style;\n var left = style[LEFT];\n var rsLeft = elem[RUNTIME_STYLE][LEFT];\n\n // prevent flashing of content\n elem[RUNTIME_STYLE][LEFT] = elem[CURRENT_STYLE][LEFT];\n\n // Put in the new values to get a computed value out\n style[LEFT] = name === 'fontSize' ? '1em' : ret || 0;\n ret = style.pixelLeft + PX;\n\n // Revert the changed values\n style[LEFT] = left;\n\n elem[RUNTIME_STYLE][LEFT] = rsLeft;\n }\n return ret === '' ? 'auto' : ret;\n}\n\nvar getComputedStyleX = undefined;\nif (typeof window !== 'undefined') {\n getComputedStyleX = window.getComputedStyle ? _getComputedStyle : _getComputedStyleIE;\n}\n\nfunction each(arr, fn) {\n for (var i = 0; i < arr.length; i++) {\n fn(arr[i]);\n }\n}\n\nfunction isBorderBoxFn(elem) {\n return getComputedStyleX(elem, 'boxSizing') === 'border-box';\n}\n\nvar BOX_MODELS = ['margin', 'border', 'padding'];\nvar CONTENT_INDEX = -1;\nvar PADDING_INDEX = 2;\nvar BORDER_INDEX = 1;\nvar MARGIN_INDEX = 0;\n\nfunction swap(elem, options, callback) {\n var old = {};\n var style = elem.style;\n var name = undefined;\n\n // Remember the old values, and insert the new ones\n for (name in options) {\n if (options.hasOwnProperty(name)) {\n old[name] = style[name];\n style[name] = options[name];\n }\n }\n\n callback.call(elem);\n\n // Revert the old values\n for (name in options) {\n if (options.hasOwnProperty(name)) {\n style[name] = old[name];\n }\n }\n}\n\nfunction getPBMWidth(elem, props, which) {\n var value = 0;\n var prop = undefined;\n var j = undefined;\n var i = undefined;\n for (j = 0; j < props.length; j++) {\n prop = props[j];\n if (prop) {\n for (i = 0; i < which.length; i++) {\n var cssProp = undefined;\n if (prop === 'border') {\n cssProp = prop + which[i] + 'Width';\n } else {\n cssProp = prop + which[i];\n }\n value += parseFloat(getComputedStyleX(elem, cssProp)) || 0;\n }\n }\n }\n return value;\n}\n\n/**\n * A crude way of determining if an object is a window\n * @member util\n */\nfunction isWindow(obj) {\n // must use == for ie8\n /* eslint eqeqeq:0 */\n return obj != null && obj == obj.window;\n}\n\nvar domUtils = {};\n\neach(['Width', 'Height'], function (name) {\n domUtils['doc' + name] = function (refWin) {\n var d = refWin.document;\n return Math.max(\n // firefox chrome documentElement.scrollHeight< body.scrollHeight\n // ie standard mode : documentElement.scrollHeight> body.scrollHeight\n d.documentElement['scroll' + name],\n // quirks : documentElement.scrollHeight 最大等于可视窗口多一点?\n d.body['scroll' + name], domUtils['viewport' + name](d));\n };\n\n domUtils['viewport' + name] = function (win) {\n // pc browser includes scrollbar in window.innerWidth\n var prop = 'client' + name;\n var doc = win.document;\n var body = doc.body;\n var documentElement = doc.documentElement;\n var documentElementProp = documentElement[prop];\n // 标准模式取 documentElement\n // backcompat 取 body\n return doc.compatMode === 'CSS1Compat' && documentElementProp || body && body[prop] || documentElementProp;\n };\n});\n\n/*\n 得到元素的大小信息\n @param elem\n @param name\n @param {String} [extra] 'padding' : (css width) + padding\n 'border' : (css width) + padding + border\n 'margin' : (css width) + padding + border + margin\n */\nfunction getWH(elem, name, extra) {\n if (isWindow(elem)) {\n return name === 'width' ? domUtils.viewportWidth(elem) : domUtils.viewportHeight(elem);\n } else if (elem.nodeType === 9) {\n return name === 'width' ? domUtils.docWidth(elem) : domUtils.docHeight(elem);\n }\n var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n var borderBoxValue = name === 'width' ? elem.offsetWidth : elem.offsetHeight;\n var computedStyle = getComputedStyleX(elem);\n var isBorderBox = isBorderBoxFn(elem, computedStyle);\n var cssBoxValue = 0;\n if (borderBoxValue == null || borderBoxValue <= 0) {\n borderBoxValue = undefined;\n // Fall back to computed then un computed css if necessary\n cssBoxValue = getComputedStyleX(elem, name);\n if (cssBoxValue == null || Number(cssBoxValue) < 0) {\n cssBoxValue = elem.style[name] || 0;\n }\n // Normalize '', auto, and prepare for extra\n cssBoxValue = parseFloat(cssBoxValue) || 0;\n }\n if (extra === undefined) {\n extra = isBorderBox ? BORDER_INDEX : CONTENT_INDEX;\n }\n var borderBoxValueOrIsBorderBox = borderBoxValue !== undefined || isBorderBox;\n var val = borderBoxValue || cssBoxValue;\n if (extra === CONTENT_INDEX) {\n if (borderBoxValueOrIsBorderBox) {\n return val - getPBMWidth(elem, ['border', 'padding'], which, computedStyle);\n }\n return cssBoxValue;\n }\n if (borderBoxValueOrIsBorderBox) {\n var padding = extra === PADDING_INDEX ? -getPBMWidth(elem, ['border'], which, computedStyle) : getPBMWidth(elem, ['margin'], which, computedStyle);\n return val + (extra === BORDER_INDEX ? 0 : padding);\n }\n return cssBoxValue + getPBMWidth(elem, BOX_MODELS.slice(extra), which, computedStyle);\n}\n\nvar cssShow = {\n position: 'absolute',\n visibility: 'hidden',\n display: 'block'\n};\n\n// fix #119 : https://github.com/kissyteam/kissy/issues/119\nfunction getWHIgnoreDisplay(elem) {\n var val = undefined;\n var args = arguments;\n // in case elem is window\n // elem.offsetWidth === undefined\n if (elem.offsetWidth !== 0) {\n val = getWH.apply(undefined, args);\n } else {\n swap(elem, cssShow, function () {\n val = getWH.apply(undefined, args);\n });\n }\n return val;\n}\n\nfunction css(el, name, v) {\n var value = v;\n if ((typeof name === 'undefined' ? 'undefined' : _typeof(name)) === 'object') {\n for (var i in name) {\n if (name.hasOwnProperty(i)) {\n css(el, i, name[i]);\n }\n }\n return undefined;\n }\n if (typeof value !== 'undefined') {\n if (typeof value === 'number') {\n value += 'px';\n }\n el.style[name] = value;\n return undefined;\n }\n return getComputedStyleX(el, name);\n}\n\neach(['width', 'height'], function (name) {\n var first = name.charAt(0).toUpperCase() + name.slice(1);\n domUtils['outer' + first] = function (el, includeMargin) {\n return el && getWHIgnoreDisplay(el, name, includeMargin ? MARGIN_INDEX : BORDER_INDEX);\n };\n var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n\n domUtils[name] = function (elem, val) {\n if (val !== undefined) {\n if (elem) {\n var computedStyle = getComputedStyleX(elem);\n var isBorderBox = isBorderBoxFn(elem);\n if (isBorderBox) {\n val += getPBMWidth(elem, ['padding', 'border'], which, computedStyle);\n }\n return css(elem, name, val);\n }\n return undefined;\n }\n return elem && getWHIgnoreDisplay(elem, name, CONTENT_INDEX);\n };\n});\n\n// 设置 elem 相对 elem.ownerDocument 的坐标\nfunction setOffset(elem, offset) {\n // set position first, in-case top/left are set even on static elem\n if (css(elem, 'position') === 'static') {\n elem.style.position = 'relative';\n }\n\n var old = getOffset(elem);\n var ret = {};\n var current = undefined;\n var key = undefined;\n\n for (key in offset) {\n if (offset.hasOwnProperty(key)) {\n current = parseFloat(css(elem, key)) || 0;\n ret[key] = current + offset[key] - old[key];\n }\n }\n css(elem, ret);\n}\n\nmodule.exports = _extends({\n getWindow: function getWindow(node) {\n var doc = node.ownerDocument || node;\n return doc.defaultView || doc.parentWindow;\n },\n offset: function offset(el, value) {\n if (typeof value !== 'undefined') {\n setOffset(el, value);\n } else {\n return getOffset(el);\n }\n },\n\n isWindow: isWindow,\n each: each,\n css: css,\n clone: function clone(obj) {\n var ret = {};\n for (var i in obj) {\n if (obj.hasOwnProperty(i)) {\n ret[i] = obj[i];\n }\n }\n var overflow = obj.overflow;\n if (overflow) {\n for (var i in obj) {\n if (obj.hasOwnProperty(i)) {\n ret.overflow[i] = obj.overflow[i];\n }\n }\n }\n return ret;\n },\n scrollLeft: function scrollLeft(w, v) {\n if (isWindow(w)) {\n if (v === undefined) {\n return getScrollLeft(w);\n }\n window.scrollTo(v, getScrollTop(w));\n } else {\n if (v === undefined) {\n return w.scrollLeft;\n }\n w.scrollLeft = v;\n }\n },\n scrollTop: function scrollTop(w, v) {\n if (isWindow(w)) {\n if (v === undefined) {\n return getScrollTop(w);\n }\n window.scrollTo(getScrollLeft(w), v);\n } else {\n if (v === undefined) {\n return w.scrollTop;\n }\n w.scrollTop = v;\n }\n },\n\n viewportWidth: 0,\n viewportHeight: 0\n}, domUtils);","'use strict';\n\n/* globals\n\tSet,\n\tMap,\n\tWeakSet,\n\tWeakMap,\n\n\tPromise,\n\n\tSymbol,\n\tProxy,\n\n\tAtomics,\n\tSharedArrayBuffer,\n\n\tArrayBuffer,\n\tDataView,\n\tUint8Array,\n\tFloat32Array,\n\tFloat64Array,\n\tInt8Array,\n\tInt16Array,\n\tInt32Array,\n\tUint8ClampedArray,\n\tUint16Array,\n\tUint32Array,\n*/\n\nvar undefined; // eslint-disable-line no-shadow-restricted-names\n\nvar ThrowTypeError = Object.getOwnPropertyDescriptor\n\t? (function () { return Object.getOwnPropertyDescriptor(arguments, 'callee').get; }())\n\t: function () { throw new TypeError(); };\n\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol';\n\nvar getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto\n\nvar generator; // = function * () {};\nvar generatorFunction = generator ? getProto(generator) : undefined;\nvar asyncFn; // async function() {};\nvar asyncFunction = asyncFn ? asyncFn.constructor : undefined;\nvar asyncGen; // async function * () {};\nvar asyncGenFunction = asyncGen ? getProto(asyncGen) : undefined;\nvar asyncGenIterator = asyncGen ? asyncGen() : undefined;\n\nvar TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t'$ %Array%': Array,\n\t'$ %ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'$ %ArrayBufferPrototype%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer.prototype,\n\t'$ %ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,\n\t'$ %ArrayPrototype%': Array.prototype,\n\t'$ %ArrayProto_entries%': Array.prototype.entries,\n\t'$ %ArrayProto_forEach%': Array.prototype.forEach,\n\t'$ %ArrayProto_keys%': Array.prototype.keys,\n\t'$ %ArrayProto_values%': Array.prototype.values,\n\t'$ %AsyncFromSyncIteratorPrototype%': undefined,\n\t'$ %AsyncFunction%': asyncFunction,\n\t'$ %AsyncFunctionPrototype%': asyncFunction ? asyncFunction.prototype : undefined,\n\t'$ %AsyncGenerator%': asyncGen ? getProto(asyncGenIterator) : undefined,\n\t'$ %AsyncGeneratorFunction%': asyncGenFunction,\n\t'$ %AsyncGeneratorPrototype%': asyncGenFunction ? asyncGenFunction.prototype : undefined,\n\t'$ %AsyncIteratorPrototype%': asyncGenIterator && hasSymbols && Symbol.asyncIterator ? asyncGenIterator[Symbol.asyncIterator]() : undefined,\n\t'$ %Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'$ %Boolean%': Boolean,\n\t'$ %BooleanPrototype%': Boolean.prototype,\n\t'$ %DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'$ %DataViewPrototype%': typeof DataView === 'undefined' ? undefined : DataView.prototype,\n\t'$ %Date%': Date,\n\t'$ %DatePrototype%': Date.prototype,\n\t'$ %decodeURI%': decodeURI,\n\t'$ %decodeURIComponent%': decodeURIComponent,\n\t'$ %encodeURI%': encodeURI,\n\t'$ %encodeURIComponent%': encodeURIComponent,\n\t'$ %Error%': Error,\n\t'$ %ErrorPrototype%': Error.prototype,\n\t'$ %eval%': eval, // eslint-disable-line no-eval\n\t'$ %EvalError%': EvalError,\n\t'$ %EvalErrorPrototype%': EvalError.prototype,\n\t'$ %Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'$ %Float32ArrayPrototype%': typeof Float32Array === 'undefined' ? undefined : Float32Array.prototype,\n\t'$ %Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'$ %Float64ArrayPrototype%': typeof Float64Array === 'undefined' ? undefined : Float64Array.prototype,\n\t'$ %Function%': Function,\n\t'$ %FunctionPrototype%': Function.prototype,\n\t'$ %Generator%': generator ? getProto(generator()) : undefined,\n\t'$ %GeneratorFunction%': generatorFunction,\n\t'$ %GeneratorPrototype%': generatorFunction ? generatorFunction.prototype : undefined,\n\t'$ %Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'$ %Int8ArrayPrototype%': typeof Int8Array === 'undefined' ? undefined : Int8Array.prototype,\n\t'$ %Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'$ %Int16ArrayPrototype%': typeof Int16Array === 'undefined' ? undefined : Int8Array.prototype,\n\t'$ %Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'$ %Int32ArrayPrototype%': typeof Int32Array === 'undefined' ? undefined : Int32Array.prototype,\n\t'$ %isFinite%': isFinite,\n\t'$ %isNaN%': isNaN,\n\t'$ %IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'$ %JSON%': JSON,\n\t'$ %JSONParse%': JSON.parse,\n\t'$ %Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'$ %MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'$ %MapPrototype%': typeof Map === 'undefined' ? undefined : Map.prototype,\n\t'$ %Math%': Math,\n\t'$ %Number%': Number,\n\t'$ %NumberPrototype%': Number.prototype,\n\t'$ %Object%': Object,\n\t'$ %ObjectPrototype%': Object.prototype,\n\t'$ %ObjProto_toString%': Object.prototype.toString,\n\t'$ %ObjProto_valueOf%': Object.prototype.valueOf,\n\t'$ %parseFloat%': parseFloat,\n\t'$ %parseInt%': parseInt,\n\t'$ %Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'$ %PromisePrototype%': typeof Promise === 'undefined' ? undefined : Promise.prototype,\n\t'$ %PromiseProto_then%': typeof Promise === 'undefined' ? undefined : Promise.prototype.then,\n\t'$ %Promise_all%': typeof Promise === 'undefined' ? undefined : Promise.all,\n\t'$ %Promise_reject%': typeof Promise === 'undefined' ? undefined : Promise.reject,\n\t'$ %Promise_resolve%': typeof Promise === 'undefined' ? undefined : Promise.resolve,\n\t'$ %Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'$ %RangeError%': RangeError,\n\t'$ %RangeErrorPrototype%': RangeError.prototype,\n\t'$ %ReferenceError%': ReferenceError,\n\t'$ %ReferenceErrorPrototype%': ReferenceError.prototype,\n\t'$ %Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'$ %RegExp%': RegExp,\n\t'$ %RegExpPrototype%': RegExp.prototype,\n\t'$ %Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'$ %SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'$ %SetPrototype%': typeof Set === 'undefined' ? undefined : Set.prototype,\n\t'$ %SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'$ %SharedArrayBufferPrototype%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer.prototype,\n\t'$ %String%': String,\n\t'$ %StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,\n\t'$ %StringPrototype%': String.prototype,\n\t'$ %Symbol%': hasSymbols ? Symbol : undefined,\n\t'$ %SymbolPrototype%': hasSymbols ? Symbol.prototype : undefined,\n\t'$ %SyntaxError%': SyntaxError,\n\t'$ %SyntaxErrorPrototype%': SyntaxError.prototype,\n\t'$ %ThrowTypeError%': ThrowTypeError,\n\t'$ %TypedArray%': TypedArray,\n\t'$ %TypedArrayPrototype%': TypedArray ? TypedArray.prototype : undefined,\n\t'$ %TypeError%': TypeError,\n\t'$ %TypeErrorPrototype%': TypeError.prototype,\n\t'$ %Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'$ %Uint8ArrayPrototype%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array.prototype,\n\t'$ %Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'$ %Uint8ClampedArrayPrototype%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray.prototype,\n\t'$ %Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'$ %Uint16ArrayPrototype%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array.prototype,\n\t'$ %Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'$ %Uint32ArrayPrototype%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array.prototype,\n\t'$ %URIError%': URIError,\n\t'$ %URIErrorPrototype%': URIError.prototype,\n\t'$ %WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'$ %WeakMapPrototype%': typeof WeakMap === 'undefined' ? undefined : WeakMap.prototype,\n\t'$ %WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet,\n\t'$ %WeakSetPrototype%': typeof WeakSet === 'undefined' ? undefined : WeakSet.prototype\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tvar key = '$ ' + name;\n\tif (!(key in INTRINSICS)) {\n\t\tthrow new SyntaxError('intrinsic ' + name + ' does not exist!');\n\t}\n\n\t// istanbul ignore if // hopefully this is impossible to test :-)\n\tif (typeof INTRINSICS[key] === 'undefined' && !allowMissing) {\n\t\tthrow new TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t}\n\treturn INTRINSICS[key];\n};\n","'use strict';\n\nvar has = require('has');\nvar toPrimitive = require('es-to-primitive/es6');\n\nvar GetIntrinsic = require('./GetIntrinsic');\n\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $SyntaxError = GetIntrinsic('%SyntaxError%');\nvar $Array = GetIntrinsic('%Array%');\nvar $String = GetIntrinsic('%String%');\nvar $Object = GetIntrinsic('%Object%');\nvar $Number = GetIntrinsic('%Number%');\nvar $Symbol = GetIntrinsic('%Symbol%', true);\nvar $RegExp = GetIntrinsic('%RegExp%');\n\nvar hasSymbols = !!$Symbol;\n\nvar $isNaN = require('./helpers/isNaN');\nvar $isFinite = require('./helpers/isFinite');\nvar MAX_SAFE_INTEGER = $Number.MAX_SAFE_INTEGER || Math.pow(2, 53) - 1;\n\nvar assign = require('./helpers/assign');\nvar sign = require('./helpers/sign');\nvar mod = require('./helpers/mod');\nvar isPrimitive = require('./helpers/isPrimitive');\nvar parseInteger = parseInt;\nvar bind = require('function-bind');\nvar arraySlice = bind.call(Function.call, $Array.prototype.slice);\nvar strSlice = bind.call(Function.call, $String.prototype.slice);\nvar isBinary = bind.call(Function.call, $RegExp.prototype.test, /^0b[01]+$/i);\nvar isOctal = bind.call(Function.call, $RegExp.prototype.test, /^0o[0-7]+$/i);\nvar regexExec = bind.call(Function.call, $RegExp.prototype.exec);\nvar nonWS = ['\\u0085', '\\u200b', '\\ufffe'].join('');\nvar nonWSregex = new $RegExp('[' + nonWS + ']', 'g');\nvar hasNonWS = bind.call(Function.call, $RegExp.prototype.test, nonWSregex);\nvar invalidHexLiteral = /^[-+]0x[0-9a-f]+$/i;\nvar isInvalidHexLiteral = bind.call(Function.call, $RegExp.prototype.test, invalidHexLiteral);\nvar $charCodeAt = bind.call(Function.call, $String.prototype.charCodeAt);\n\nvar toStr = bind.call(Function.call, Object.prototype.toString);\n\nvar $floor = Math.floor;\nvar $abs = Math.abs;\n\nvar $ObjectCreate = Object.create;\nvar $gOPD = $Object.getOwnPropertyDescriptor;\n\nvar $isExtensible = $Object.isExtensible;\n\n// whitespace from: http://es5.github.io/#x15.5.4.20\n// implementation from https://github.com/es-shims/es5-shim/blob/v3.4.0/es5-shim.js#L1304-L1324\nvar ws = [\n\t'\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003',\n\t'\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028',\n\t'\\u2029\\uFEFF'\n].join('');\nvar trimRegex = new RegExp('(^[' + ws + ']+)|([' + ws + ']+$)', 'g');\nvar replace = bind.call(Function.call, $String.prototype.replace);\nvar trim = function (value) {\n\treturn replace(value, trimRegex, '');\n};\n\nvar ES5 = require('./es5');\n\nvar hasRegExpMatcher = require('is-regex');\n\n// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-abstract-operations\nvar ES6 = assign(assign({}, ES5), {\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-call-f-v-args\n\tCall: function Call(F, V) {\n\t\tvar args = arguments.length > 2 ? arguments[2] : [];\n\t\tif (!this.IsCallable(F)) {\n\t\t\tthrow new $TypeError(F + ' is not a function');\n\t\t}\n\t\treturn F.apply(V, args);\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toprimitive\n\tToPrimitive: toPrimitive,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toboolean\n\t// ToBoolean: ES5.ToBoolean,\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-tonumber\n\tToNumber: function ToNumber(argument) {\n\t\tvar value = isPrimitive(argument) ? argument : toPrimitive(argument, $Number);\n\t\tif (typeof value === 'symbol') {\n\t\t\tthrow new $TypeError('Cannot convert a Symbol value to a number');\n\t\t}\n\t\tif (typeof value === 'string') {\n\t\t\tif (isBinary(value)) {\n\t\t\t\treturn this.ToNumber(parseInteger(strSlice(value, 2), 2));\n\t\t\t} else if (isOctal(value)) {\n\t\t\t\treturn this.ToNumber(parseInteger(strSlice(value, 2), 8));\n\t\t\t} else if (hasNonWS(value) || isInvalidHexLiteral(value)) {\n\t\t\t\treturn NaN;\n\t\t\t} else {\n\t\t\t\tvar trimmed = trim(value);\n\t\t\t\tif (trimmed !== value) {\n\t\t\t\t\treturn this.ToNumber(trimmed);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn $Number(value);\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tointeger\n\t// ToInteger: ES5.ToNumber,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toint32\n\t// ToInt32: ES5.ToInt32,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-touint32\n\t// ToUint32: ES5.ToUint32,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toint16\n\tToInt16: function ToInt16(argument) {\n\t\tvar int16bit = this.ToUint16(argument);\n\t\treturn int16bit >= 0x8000 ? int16bit - 0x10000 : int16bit;\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-touint16\n\t// ToUint16: ES5.ToUint16,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toint8\n\tToInt8: function ToInt8(argument) {\n\t\tvar int8bit = this.ToUint8(argument);\n\t\treturn int8bit >= 0x80 ? int8bit - 0x100 : int8bit;\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-touint8\n\tToUint8: function ToUint8(argument) {\n\t\tvar number = this.ToNumber(argument);\n\t\tif ($isNaN(number) || number === 0 || !$isFinite(number)) { return 0; }\n\t\tvar posInt = sign(number) * $floor($abs(number));\n\t\treturn mod(posInt, 0x100);\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-touint8clamp\n\tToUint8Clamp: function ToUint8Clamp(argument) {\n\t\tvar number = this.ToNumber(argument);\n\t\tif ($isNaN(number) || number <= 0) { return 0; }\n\t\tif (number >= 0xFF) { return 0xFF; }\n\t\tvar f = $floor(argument);\n\t\tif (f + 0.5 < number) { return f + 1; }\n\t\tif (number < f + 0.5) { return f; }\n\t\tif (f % 2 !== 0) { return f + 1; }\n\t\treturn f;\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tostring\n\tToString: function ToString(argument) {\n\t\tif (typeof argument === 'symbol') {\n\t\t\tthrow new $TypeError('Cannot convert a Symbol value to a string');\n\t\t}\n\t\treturn $String(argument);\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toobject\n\tToObject: function ToObject(value) {\n\t\tthis.RequireObjectCoercible(value);\n\t\treturn $Object(value);\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-topropertykey\n\tToPropertyKey: function ToPropertyKey(argument) {\n\t\tvar key = this.ToPrimitive(argument, $String);\n\t\treturn typeof key === 'symbol' ? key : this.ToString(key);\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength\n\tToLength: function ToLength(argument) {\n\t\tvar len = this.ToInteger(argument);\n\t\tif (len <= 0) { return 0; } // includes converting -0 to +0\n\t\tif (len > MAX_SAFE_INTEGER) { return MAX_SAFE_INTEGER; }\n\t\treturn len;\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-canonicalnumericindexstring\n\tCanonicalNumericIndexString: function CanonicalNumericIndexString(argument) {\n\t\tif (toStr(argument) !== '[object String]') {\n\t\t\tthrow new $TypeError('must be a string');\n\t\t}\n\t\tif (argument === '-0') { return -0; }\n\t\tvar n = this.ToNumber(argument);\n\t\tif (this.SameValue(this.ToString(n), argument)) { return n; }\n\t\treturn void 0;\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-requireobjectcoercible\n\tRequireObjectCoercible: ES5.CheckObjectCoercible,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-isarray\n\tIsArray: $Array.isArray || function IsArray(argument) {\n\t\treturn toStr(argument) === '[object Array]';\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-iscallable\n\t// IsCallable: ES5.IsCallable,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-isconstructor\n\tIsConstructor: function IsConstructor(argument) {\n\t\treturn typeof argument === 'function' && !!argument.prototype; // unfortunately there's no way to truly check this without try/catch `new argument`\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-isextensible-o\n\tIsExtensible: Object.preventExtensions\n\t\t? function IsExtensible(obj) {\n\t\t\tif (isPrimitive(obj)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn $isExtensible(obj);\n\t\t}\n\t\t: function isExtensible(obj) { return true; }, // eslint-disable-line no-unused-vars\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-isinteger\n\tIsInteger: function IsInteger(argument) {\n\t\tif (typeof argument !== 'number' || $isNaN(argument) || !$isFinite(argument)) {\n\t\t\treturn false;\n\t\t}\n\t\tvar abs = $abs(argument);\n\t\treturn $floor(abs) === abs;\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-ispropertykey\n\tIsPropertyKey: function IsPropertyKey(argument) {\n\t\treturn typeof argument === 'string' || typeof argument === 'symbol';\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-isregexp\n\tIsRegExp: function IsRegExp(argument) {\n\t\tif (!argument || typeof argument !== 'object') {\n\t\t\treturn false;\n\t\t}\n\t\tif (hasSymbols) {\n\t\t\tvar isRegExp = argument[$Symbol.match];\n\t\t\tif (typeof isRegExp !== 'undefined') {\n\t\t\t\treturn ES5.ToBoolean(isRegExp);\n\t\t\t}\n\t\t}\n\t\treturn hasRegExpMatcher(argument);\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevalue\n\t// SameValue: ES5.SameValue,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero\n\tSameValueZero: function SameValueZero(x, y) {\n\t\treturn (x === y) || ($isNaN(x) && $isNaN(y));\n\t},\n\n\t/**\n\t * 7.3.2 GetV (V, P)\n\t * 1. Assert: IsPropertyKey(P) is true.\n\t * 2. Let O be ToObject(V).\n\t * 3. ReturnIfAbrupt(O).\n\t * 4. Return O.[[Get]](P, V).\n\t */\n\tGetV: function GetV(V, P) {\n\t\t// 7.3.2.1\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new $TypeError('Assertion failed: IsPropertyKey(P) is not true');\n\t\t}\n\n\t\t// 7.3.2.2-3\n\t\tvar O = this.ToObject(V);\n\n\t\t// 7.3.2.4\n\t\treturn O[P];\n\t},\n\n\t/**\n\t * 7.3.9 - https://ecma-international.org/ecma-262/6.0/#sec-getmethod\n\t * 1. Assert: IsPropertyKey(P) is true.\n\t * 2. Let func be GetV(O, P).\n\t * 3. ReturnIfAbrupt(func).\n\t * 4. If func is either undefined or null, return undefined.\n\t * 5. If IsCallable(func) is false, throw a TypeError exception.\n\t * 6. Return func.\n\t */\n\tGetMethod: function GetMethod(O, P) {\n\t\t// 7.3.9.1\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new $TypeError('Assertion failed: IsPropertyKey(P) is not true');\n\t\t}\n\n\t\t// 7.3.9.2\n\t\tvar func = this.GetV(O, P);\n\n\t\t// 7.3.9.4\n\t\tif (func == null) {\n\t\t\treturn void 0;\n\t\t}\n\n\t\t// 7.3.9.5\n\t\tif (!this.IsCallable(func)) {\n\t\t\tthrow new $TypeError(P + 'is not a function');\n\t\t}\n\n\t\t// 7.3.9.6\n\t\treturn func;\n\t},\n\n\t/**\n\t * 7.3.1 Get (O, P) - https://ecma-international.org/ecma-262/6.0/#sec-get-o-p\n\t * 1. Assert: Type(O) is Object.\n\t * 2. Assert: IsPropertyKey(P) is true.\n\t * 3. Return O.[[Get]](P, O).\n\t */\n\tGet: function Get(O, P) {\n\t\t// 7.3.1.1\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new $TypeError('Assertion failed: Type(O) is not Object');\n\t\t}\n\t\t// 7.3.1.2\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new $TypeError('Assertion failed: IsPropertyKey(P) is not true');\n\t\t}\n\t\t// 7.3.1.3\n\t\treturn O[P];\n\t},\n\n\tType: function Type(x) {\n\t\tif (typeof x === 'symbol') {\n\t\t\treturn 'Symbol';\n\t\t}\n\t\treturn ES5.Type(x);\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-speciesconstructor\n\tSpeciesConstructor: function SpeciesConstructor(O, defaultConstructor) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new $TypeError('Assertion failed: Type(O) is not Object');\n\t\t}\n\t\tvar C = O.constructor;\n\t\tif (typeof C === 'undefined') {\n\t\t\treturn defaultConstructor;\n\t\t}\n\t\tif (this.Type(C) !== 'Object') {\n\t\t\tthrow new $TypeError('O.constructor is not an Object');\n\t\t}\n\t\tvar S = hasSymbols && $Symbol.species ? C[$Symbol.species] : void 0;\n\t\tif (S == null) {\n\t\t\treturn defaultConstructor;\n\t\t}\n\t\tif (this.IsConstructor(S)) {\n\t\t\treturn S;\n\t\t}\n\t\tthrow new $TypeError('no constructor found');\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-completepropertydescriptor\n\tCompletePropertyDescriptor: function CompletePropertyDescriptor(Desc) {\n\t\tif (!this.IsPropertyDescriptor(Desc)) {\n\t\t\tthrow new $TypeError('Desc must be a Property Descriptor');\n\t\t}\n\n\t\tif (this.IsGenericDescriptor(Desc) || this.IsDataDescriptor(Desc)) {\n\t\t\tif (!has(Desc, '[[Value]]')) {\n\t\t\t\tDesc['[[Value]]'] = void 0;\n\t\t\t}\n\t\t\tif (!has(Desc, '[[Writable]]')) {\n\t\t\t\tDesc['[[Writable]]'] = false;\n\t\t\t}\n\t\t} else {\n\t\t\tif (!has(Desc, '[[Get]]')) {\n\t\t\t\tDesc['[[Get]]'] = void 0;\n\t\t\t}\n\t\t\tif (!has(Desc, '[[Set]]')) {\n\t\t\t\tDesc['[[Set]]'] = void 0;\n\t\t\t}\n\t\t}\n\t\tif (!has(Desc, '[[Enumerable]]')) {\n\t\t\tDesc['[[Enumerable]]'] = false;\n\t\t}\n\t\tif (!has(Desc, '[[Configurable]]')) {\n\t\t\tDesc['[[Configurable]]'] = false;\n\t\t}\n\t\treturn Desc;\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-set-o-p-v-throw\n\tSet: function Set(O, P, V, Throw) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new $TypeError('O must be an Object');\n\t\t}\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new $TypeError('P must be a Property Key');\n\t\t}\n\t\tif (this.Type(Throw) !== 'Boolean') {\n\t\t\tthrow new $TypeError('Throw must be a Boolean');\n\t\t}\n\t\tif (Throw) {\n\t\t\tO[P] = V;\n\t\t\treturn true;\n\t\t} else {\n\t\t\ttry {\n\t\t\t\tO[P] = V;\n\t\t\t} catch (e) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-hasownproperty\n\tHasOwnProperty: function HasOwnProperty(O, P) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new $TypeError('O must be an Object');\n\t\t}\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new $TypeError('P must be a Property Key');\n\t\t}\n\t\treturn has(O, P);\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-hasproperty\n\tHasProperty: function HasProperty(O, P) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new $TypeError('O must be an Object');\n\t\t}\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new $TypeError('P must be a Property Key');\n\t\t}\n\t\treturn P in O;\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-isconcatspreadable\n\tIsConcatSpreadable: function IsConcatSpreadable(O) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\treturn false;\n\t\t}\n\t\tif (hasSymbols && typeof $Symbol.isConcatSpreadable === 'symbol') {\n\t\t\tvar spreadable = this.Get(O, Symbol.isConcatSpreadable);\n\t\t\tif (typeof spreadable !== 'undefined') {\n\t\t\t\treturn this.ToBoolean(spreadable);\n\t\t\t}\n\t\t}\n\t\treturn this.IsArray(O);\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-invoke\n\tInvoke: function Invoke(O, P) {\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new $TypeError('P must be a Property Key');\n\t\t}\n\t\tvar argumentsList = arraySlice(arguments, 2);\n\t\tvar func = this.GetV(O, P);\n\t\treturn this.Call(func, O, argumentsList);\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-getiterator\n\tGetIterator: function GetIterator(obj, method) {\n\t\tif (!hasSymbols) {\n\t\t\tthrow new SyntaxError('ES.GetIterator depends on native iterator support.');\n\t\t}\n\n\t\tvar actualMethod = method;\n\t\tif (arguments.length < 2) {\n\t\t\tactualMethod = this.GetMethod(obj, $Symbol.iterator);\n\t\t}\n\t\tvar iterator = this.Call(actualMethod, obj);\n\t\tif (this.Type(iterator) !== 'Object') {\n\t\t\tthrow new $TypeError('iterator must return an object');\n\t\t}\n\n\t\treturn iterator;\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-iteratornext\n\tIteratorNext: function IteratorNext(iterator, value) {\n\t\tvar result = this.Invoke(iterator, 'next', arguments.length < 2 ? [] : [value]);\n\t\tif (this.Type(result) !== 'Object') {\n\t\t\tthrow new $TypeError('iterator next must return an object');\n\t\t}\n\t\treturn result;\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-iteratorcomplete\n\tIteratorComplete: function IteratorComplete(iterResult) {\n\t\tif (this.Type(iterResult) !== 'Object') {\n\t\t\tthrow new $TypeError('Assertion failed: Type(iterResult) is not Object');\n\t\t}\n\t\treturn this.ToBoolean(this.Get(iterResult, 'done'));\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-iteratorvalue\n\tIteratorValue: function IteratorValue(iterResult) {\n\t\tif (this.Type(iterResult) !== 'Object') {\n\t\t\tthrow new $TypeError('Assertion failed: Type(iterResult) is not Object');\n\t\t}\n\t\treturn this.Get(iterResult, 'value');\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-iteratorstep\n\tIteratorStep: function IteratorStep(iterator) {\n\t\tvar result = this.IteratorNext(iterator);\n\t\tvar done = this.IteratorComplete(result);\n\t\treturn done === true ? false : result;\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-iteratorclose\n\tIteratorClose: function IteratorClose(iterator, completion) {\n\t\tif (this.Type(iterator) !== 'Object') {\n\t\t\tthrow new $TypeError('Assertion failed: Type(iterator) is not Object');\n\t\t}\n\t\tif (!this.IsCallable(completion)) {\n\t\t\tthrow new $TypeError('Assertion failed: completion is not a thunk for a Completion Record');\n\t\t}\n\t\tvar completionThunk = completion;\n\n\t\tvar iteratorReturn = this.GetMethod(iterator, 'return');\n\n\t\tif (typeof iteratorReturn === 'undefined') {\n\t\t\treturn completionThunk();\n\t\t}\n\n\t\tvar completionRecord;\n\t\ttry {\n\t\t\tvar innerResult = this.Call(iteratorReturn, iterator, []);\n\t\t} catch (e) {\n\t\t\t// if we hit here, then \"e\" is the innerResult completion that needs re-throwing\n\n\t\t\t// if the completion is of type \"throw\", this will throw.\n\t\t\tcompletionRecord = completionThunk();\n\t\t\tcompletionThunk = null; // ensure it's not called twice.\n\n\t\t\t// if not, then return the innerResult completion\n\t\t\tthrow e;\n\t\t}\n\t\tcompletionRecord = completionThunk(); // if innerResult worked, then throw if the completion does\n\t\tcompletionThunk = null; // ensure it's not called twice.\n\n\t\tif (this.Type(innerResult) !== 'Object') {\n\t\t\tthrow new $TypeError('iterator .return must return an object');\n\t\t}\n\n\t\treturn completionRecord;\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-createiterresultobject\n\tCreateIterResultObject: function CreateIterResultObject(value, done) {\n\t\tif (this.Type(done) !== 'Boolean') {\n\t\t\tthrow new $TypeError('Assertion failed: Type(done) is not Boolean');\n\t\t}\n\t\treturn {\n\t\t\tvalue: value,\n\t\t\tdone: done\n\t\t};\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-regexpexec\n\tRegExpExec: function RegExpExec(R, S) {\n\t\tif (this.Type(R) !== 'Object') {\n\t\t\tthrow new $TypeError('R must be an Object');\n\t\t}\n\t\tif (this.Type(S) !== 'String') {\n\t\t\tthrow new $TypeError('S must be a String');\n\t\t}\n\t\tvar exec = this.Get(R, 'exec');\n\t\tif (this.IsCallable(exec)) {\n\t\t\tvar result = this.Call(exec, R, [S]);\n\t\t\tif (result === null || this.Type(result) === 'Object') {\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\tthrow new $TypeError('\"exec\" method must return `null` or an Object');\n\t\t}\n\t\treturn regexExec(R, S);\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-arrayspeciescreate\n\tArraySpeciesCreate: function ArraySpeciesCreate(originalArray, length) {\n\t\tif (!this.IsInteger(length) || length < 0) {\n\t\t\tthrow new $TypeError('Assertion failed: length must be an integer >= 0');\n\t\t}\n\t\tvar len = length === 0 ? 0 : length;\n\t\tvar C;\n\t\tvar isArray = this.IsArray(originalArray);\n\t\tif (isArray) {\n\t\t\tC = this.Get(originalArray, 'constructor');\n\t\t\t// TODO: figure out how to make a cross-realm normal Array, a same-realm Array\n\t\t\t// if (this.IsConstructor(C)) {\n\t\t\t// \tif C is another realm's Array, C = undefined\n\t\t\t// \tObject.getPrototypeOf(Object.getPrototypeOf(Object.getPrototypeOf(Array))) === null ?\n\t\t\t// }\n\t\t\tif (this.Type(C) === 'Object' && hasSymbols && $Symbol.species) {\n\t\t\t\tC = this.Get(C, $Symbol.species);\n\t\t\t\tif (C === null) {\n\t\t\t\t\tC = void 0;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (typeof C === 'undefined') {\n\t\t\treturn $Array(len);\n\t\t}\n\t\tif (!this.IsConstructor(C)) {\n\t\t\tthrow new $TypeError('C must be a constructor');\n\t\t}\n\t\treturn new C(len); // this.Construct(C, len);\n\t},\n\n\tCreateDataProperty: function CreateDataProperty(O, P, V) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new $TypeError('Assertion failed: Type(O) is not Object');\n\t\t}\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new $TypeError('Assertion failed: IsPropertyKey(P) is not true');\n\t\t}\n\t\tvar oldDesc = $gOPD(O, P);\n\t\tvar extensible = oldDesc || (typeof $isExtensible !== 'function' || $isExtensible(O));\n\t\tvar immutable = oldDesc && (!oldDesc.writable || !oldDesc.configurable);\n\t\tif (immutable || !extensible) {\n\t\t\treturn false;\n\t\t}\n\t\tvar newDesc = {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: true,\n\t\t\tvalue: V,\n\t\t\twritable: true\n\t\t};\n\t\tObject.defineProperty(O, P, newDesc);\n\t\treturn true;\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-createdatapropertyorthrow\n\tCreateDataPropertyOrThrow: function CreateDataPropertyOrThrow(O, P, V) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new $TypeError('Assertion failed: Type(O) is not Object');\n\t\t}\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new $TypeError('Assertion failed: IsPropertyKey(P) is not true');\n\t\t}\n\t\tvar success = this.CreateDataProperty(O, P, V);\n\t\tif (!success) {\n\t\t\tthrow new $TypeError('unable to create data property');\n\t\t}\n\t\treturn success;\n\t},\n\n\t// https://www.ecma-international.org/ecma-262/6.0/#sec-objectcreate\n\tObjectCreate: function ObjectCreate(proto, internalSlotsList) {\n\t\tif (proto !== null && this.Type(proto) !== 'Object') {\n\t\t\tthrow new $TypeError('Assertion failed: proto must be null or an object');\n\t\t}\n\t\tvar slots = arguments.length < 2 ? [] : internalSlotsList;\n\t\tif (slots.length > 0) {\n\t\t\tthrow new $SyntaxError('es-abstract does not yet support internal slots');\n\t\t}\n\n\t\tif (proto === null && !$ObjectCreate) {\n\t\t\tthrow new $SyntaxError('native Object.create support is required to create null objects');\n\t\t}\n\n\t\treturn $ObjectCreate(proto);\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-advancestringindex\n\tAdvanceStringIndex: function AdvanceStringIndex(S, index, unicode) {\n\t\tif (this.Type(S) !== 'String') {\n\t\t\tthrow new $TypeError('S must be a String');\n\t\t}\n\t\tif (!this.IsInteger(index) || index < 0 || index > MAX_SAFE_INTEGER) {\n\t\t\tthrow new $TypeError('Assertion failed: length must be an integer >= 0 and <= 2**53');\n\t\t}\n\t\tif (this.Type(unicode) !== 'Boolean') {\n\t\t\tthrow new $TypeError('Assertion failed: unicode must be a Boolean');\n\t\t}\n\t\tif (!unicode) {\n\t\t\treturn index + 1;\n\t\t}\n\t\tvar length = S.length;\n\t\tif ((index + 1) >= length) {\n\t\t\treturn index + 1;\n\t\t}\n\n\t\tvar first = $charCodeAt(S, index);\n\t\tif (first < 0xD800 || first > 0xDBFF) {\n\t\t\treturn index + 1;\n\t\t}\n\n\t\tvar second = $charCodeAt(S, index + 1);\n\t\tif (second < 0xDC00 || second > 0xDFFF) {\n\t\t\treturn index + 1;\n\t\t}\n\n\t\treturn index + 2;\n\t}\n});\n\ndelete ES6.CheckObjectCoercible; // renamed in ES6 to RequireObjectCoercible\n\nmodule.exports = ES6;\n","'use strict';\n\nvar ES2015 = require('./es2015');\nvar assign = require('./helpers/assign');\n\nvar ES2016 = assign(assign({}, ES2015), {\n\t// https://github.com/tc39/ecma262/pull/60\n\tSameValueNonNumber: function SameValueNonNumber(x, y) {\n\t\tif (typeof x === 'number' || typeof x !== typeof y) {\n\t\t\tthrow new TypeError('SameValueNonNumber requires two non-number values of the same type.');\n\t\t}\n\t\treturn this.SameValue(x, y);\n\t}\n});\n\nmodule.exports = ES2016;\n","'use strict';\n\nvar ES2016 = require('./es2016');\nvar assign = require('./helpers/assign');\n\nvar ES2017 = assign(assign({}, ES2016), {\n\tToIndex: function ToIndex(value) {\n\t\tif (typeof value === 'undefined') {\n\t\t\treturn 0;\n\t\t}\n\t\tvar integerIndex = this.ToInteger(value);\n\t\tif (integerIndex < 0) {\n\t\t\tthrow new RangeError('index must be >= 0');\n\t\t}\n\t\tvar index = this.ToLength(integerIndex);\n\t\tif (!this.SameValueZero(integerIndex, index)) {\n\t\t\tthrow new RangeError('index must be >= 0 and < 2 ** 53 - 1');\n\t\t}\n\t\treturn index;\n\t}\n});\n\ndelete ES2017.EnumerableOwnNames; // replaced with EnumerableOwnProperties\n\nmodule.exports = ES2017;\n","'use strict';\n\nvar GetIntrinsic = require('./GetIntrinsic');\n\nvar $Object = GetIntrinsic('%Object%');\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $String = GetIntrinsic('%String%');\n\nvar $isNaN = require('./helpers/isNaN');\nvar $isFinite = require('./helpers/isFinite');\n\nvar sign = require('./helpers/sign');\nvar mod = require('./helpers/mod');\n\nvar IsCallable = require('is-callable');\nvar toPrimitive = require('es-to-primitive/es5');\n\nvar has = require('has');\n\n// https://es5.github.io/#x9\nvar ES5 = {\n\tToPrimitive: toPrimitive,\n\n\tToBoolean: function ToBoolean(value) {\n\t\treturn !!value;\n\t},\n\tToNumber: function ToNumber(value) {\n\t\treturn +value; // eslint-disable-line no-implicit-coercion\n\t},\n\tToInteger: function ToInteger(value) {\n\t\tvar number = this.ToNumber(value);\n\t\tif ($isNaN(number)) { return 0; }\n\t\tif (number === 0 || !$isFinite(number)) { return number; }\n\t\treturn sign(number) * Math.floor(Math.abs(number));\n\t},\n\tToInt32: function ToInt32(x) {\n\t\treturn this.ToNumber(x) >> 0;\n\t},\n\tToUint32: function ToUint32(x) {\n\t\treturn this.ToNumber(x) >>> 0;\n\t},\n\tToUint16: function ToUint16(value) {\n\t\tvar number = this.ToNumber(value);\n\t\tif ($isNaN(number) || number === 0 || !$isFinite(number)) { return 0; }\n\t\tvar posInt = sign(number) * Math.floor(Math.abs(number));\n\t\treturn mod(posInt, 0x10000);\n\t},\n\tToString: function ToString(value) {\n\t\treturn $String(value);\n\t},\n\tToObject: function ToObject(value) {\n\t\tthis.CheckObjectCoercible(value);\n\t\treturn $Object(value);\n\t},\n\tCheckObjectCoercible: function CheckObjectCoercible(value, optMessage) {\n\t\t/* jshint eqnull:true */\n\t\tif (value == null) {\n\t\t\tthrow new $TypeError(optMessage || 'Cannot call method on ' + value);\n\t\t}\n\t\treturn value;\n\t},\n\tIsCallable: IsCallable,\n\tSameValue: function SameValue(x, y) {\n\t\tif (x === y) { // 0 === -0, but they are not identical.\n\t\t\tif (x === 0) { return 1 / x === 1 / y; }\n\t\t\treturn true;\n\t\t}\n\t\treturn $isNaN(x) && $isNaN(y);\n\t},\n\n\t// https://www.ecma-international.org/ecma-262/5.1/#sec-8\n\tType: function Type(x) {\n\t\tif (x === null) {\n\t\t\treturn 'Null';\n\t\t}\n\t\tif (typeof x === 'undefined') {\n\t\t\treturn 'Undefined';\n\t\t}\n\t\tif (typeof x === 'function' || typeof x === 'object') {\n\t\t\treturn 'Object';\n\t\t}\n\t\tif (typeof x === 'number') {\n\t\t\treturn 'Number';\n\t\t}\n\t\tif (typeof x === 'boolean') {\n\t\t\treturn 'Boolean';\n\t\t}\n\t\tif (typeof x === 'string') {\n\t\t\treturn 'String';\n\t\t}\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-property-descriptor-specification-type\n\tIsPropertyDescriptor: function IsPropertyDescriptor(Desc) {\n\t\tif (this.Type(Desc) !== 'Object') {\n\t\t\treturn false;\n\t\t}\n\t\tvar allowed = {\n\t\t\t'[[Configurable]]': true,\n\t\t\t'[[Enumerable]]': true,\n\t\t\t'[[Get]]': true,\n\t\t\t'[[Set]]': true,\n\t\t\t'[[Value]]': true,\n\t\t\t'[[Writable]]': true\n\t\t};\n\t\t// jscs:disable\n\t\tfor (var key in Desc) { // eslint-disable-line\n\t\t\tif (has(Desc, key) && !allowed[key]) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\t// jscs:enable\n\t\tvar isData = has(Desc, '[[Value]]');\n\t\tvar IsAccessor = has(Desc, '[[Get]]') || has(Desc, '[[Set]]');\n\t\tif (isData && IsAccessor) {\n\t\t\tthrow new $TypeError('Property Descriptors may not be both accessor and data descriptors');\n\t\t}\n\t\treturn true;\n\t},\n\n\t// https://ecma-international.org/ecma-262/5.1/#sec-8.10.1\n\tIsAccessorDescriptor: function IsAccessorDescriptor(Desc) {\n\t\tif (typeof Desc === 'undefined') {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (!this.IsPropertyDescriptor(Desc)) {\n\t\t\tthrow new $TypeError('Desc must be a Property Descriptor');\n\t\t}\n\n\t\tif (!has(Desc, '[[Get]]') && !has(Desc, '[[Set]]')) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t},\n\n\t// https://ecma-international.org/ecma-262/5.1/#sec-8.10.2\n\tIsDataDescriptor: function IsDataDescriptor(Desc) {\n\t\tif (typeof Desc === 'undefined') {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (!this.IsPropertyDescriptor(Desc)) {\n\t\t\tthrow new $TypeError('Desc must be a Property Descriptor');\n\t\t}\n\n\t\tif (!has(Desc, '[[Value]]') && !has(Desc, '[[Writable]]')) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t},\n\n\t// https://ecma-international.org/ecma-262/5.1/#sec-8.10.3\n\tIsGenericDescriptor: function IsGenericDescriptor(Desc) {\n\t\tif (typeof Desc === 'undefined') {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (!this.IsPropertyDescriptor(Desc)) {\n\t\t\tthrow new $TypeError('Desc must be a Property Descriptor');\n\t\t}\n\n\t\tif (!this.IsAccessorDescriptor(Desc) && !this.IsDataDescriptor(Desc)) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t},\n\n\t// https://ecma-international.org/ecma-262/5.1/#sec-8.10.4\n\tFromPropertyDescriptor: function FromPropertyDescriptor(Desc) {\n\t\tif (typeof Desc === 'undefined') {\n\t\t\treturn Desc;\n\t\t}\n\n\t\tif (!this.IsPropertyDescriptor(Desc)) {\n\t\t\tthrow new $TypeError('Desc must be a Property Descriptor');\n\t\t}\n\n\t\tif (this.IsDataDescriptor(Desc)) {\n\t\t\treturn {\n\t\t\t\tvalue: Desc['[[Value]]'],\n\t\t\t\twritable: !!Desc['[[Writable]]'],\n\t\t\t\tenumerable: !!Desc['[[Enumerable]]'],\n\t\t\t\tconfigurable: !!Desc['[[Configurable]]']\n\t\t\t};\n\t\t} else if (this.IsAccessorDescriptor(Desc)) {\n\t\t\treturn {\n\t\t\t\tget: Desc['[[Get]]'],\n\t\t\t\tset: Desc['[[Set]]'],\n\t\t\t\tenumerable: !!Desc['[[Enumerable]]'],\n\t\t\t\tconfigurable: !!Desc['[[Configurable]]']\n\t\t\t};\n\t\t} else {\n\t\t\tthrow new $TypeError('FromPropertyDescriptor must be called with a fully populated Property Descriptor');\n\t\t}\n\t},\n\n\t// https://ecma-international.org/ecma-262/5.1/#sec-8.10.5\n\tToPropertyDescriptor: function ToPropertyDescriptor(Obj) {\n\t\tif (this.Type(Obj) !== 'Object') {\n\t\t\tthrow new $TypeError('ToPropertyDescriptor requires an object');\n\t\t}\n\n\t\tvar desc = {};\n\t\tif (has(Obj, 'enumerable')) {\n\t\t\tdesc['[[Enumerable]]'] = this.ToBoolean(Obj.enumerable);\n\t\t}\n\t\tif (has(Obj, 'configurable')) {\n\t\t\tdesc['[[Configurable]]'] = this.ToBoolean(Obj.configurable);\n\t\t}\n\t\tif (has(Obj, 'value')) {\n\t\t\tdesc['[[Value]]'] = Obj.value;\n\t\t}\n\t\tif (has(Obj, 'writable')) {\n\t\t\tdesc['[[Writable]]'] = this.ToBoolean(Obj.writable);\n\t\t}\n\t\tif (has(Obj, 'get')) {\n\t\t\tvar getter = Obj.get;\n\t\t\tif (typeof getter !== 'undefined' && !this.IsCallable(getter)) {\n\t\t\t\tthrow new TypeError('getter must be a function');\n\t\t\t}\n\t\t\tdesc['[[Get]]'] = getter;\n\t\t}\n\t\tif (has(Obj, 'set')) {\n\t\t\tvar setter = Obj.set;\n\t\t\tif (typeof setter !== 'undefined' && !this.IsCallable(setter)) {\n\t\t\t\tthrow new $TypeError('setter must be a function');\n\t\t\t}\n\t\t\tdesc['[[Set]]'] = setter;\n\t\t}\n\n\t\tif ((has(desc, '[[Get]]') || has(desc, '[[Set]]')) && (has(desc, '[[Value]]') || has(desc, '[[Writable]]'))) {\n\t\t\tthrow new $TypeError('Invalid property descriptor. Cannot both specify accessors and a value or writable attribute');\n\t\t}\n\t\treturn desc;\n\t}\n};\n\nmodule.exports = ES5;\n","'use strict';\n\nmodule.exports = require('./es2015');\n","'use strict';\n\nmodule.exports = require('./es2016');\n","var bind = require('function-bind');\nvar has = bind.call(Function.call, Object.prototype.hasOwnProperty);\n\nvar $assign = Object.assign;\n\nmodule.exports = function assign(target, source) {\n\tif ($assign) {\n\t\treturn $assign(target, source);\n\t}\n\n\tfor (var key in source) {\n\t\tif (has(source, key)) {\n\t\t\ttarget[key] = source[key];\n\t\t}\n\t}\n\treturn target;\n};\n","var $isNaN = Number.isNaN || function (a) { return a !== a; };\n\nmodule.exports = Number.isFinite || function (x) { return typeof x === 'number' && !$isNaN(x) && x !== Infinity && x !== -Infinity; };\n","module.exports = Number.isNaN || function isNaN(a) {\n\treturn a !== a;\n};\n","module.exports = function isPrimitive(value) {\n\treturn value === null || (typeof value !== 'function' && typeof value !== 'object');\n};\n","module.exports = function mod(number, modulo) {\n\tvar remain = number % modulo;\n\treturn Math.floor(remain >= 0 ? remain : remain + modulo);\n};\n","module.exports = function sign(number) {\n\treturn number >= 0 ? 1 : -1;\n};\n","'use strict';\n\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol';\n\nvar isPrimitive = require('./helpers/isPrimitive');\nvar isCallable = require('is-callable');\nvar isDate = require('is-date-object');\nvar isSymbol = require('is-symbol');\n\nvar ordinaryToPrimitive = function OrdinaryToPrimitive(O, hint) {\n\tif (typeof O === 'undefined' || O === null) {\n\t\tthrow new TypeError('Cannot call method on ' + O);\n\t}\n\tif (typeof hint !== 'string' || (hint !== 'number' && hint !== 'string')) {\n\t\tthrow new TypeError('hint must be \"string\" or \"number\"');\n\t}\n\tvar methodNames = hint === 'string' ? ['toString', 'valueOf'] : ['valueOf', 'toString'];\n\tvar method, result, i;\n\tfor (i = 0; i < methodNames.length; ++i) {\n\t\tmethod = O[methodNames[i]];\n\t\tif (isCallable(method)) {\n\t\t\tresult = method.call(O);\n\t\t\tif (isPrimitive(result)) {\n\t\t\t\treturn result;\n\t\t\t}\n\t\t}\n\t}\n\tthrow new TypeError('No default value');\n};\n\nvar GetMethod = function GetMethod(O, P) {\n\tvar func = O[P];\n\tif (func !== null && typeof func !== 'undefined') {\n\t\tif (!isCallable(func)) {\n\t\t\tthrow new TypeError(func + ' returned for property ' + P + ' of object ' + O + ' is not a function');\n\t\t}\n\t\treturn func;\n\t}\n\treturn void 0;\n};\n\n// http://www.ecma-international.org/ecma-262/6.0/#sec-toprimitive\nmodule.exports = function ToPrimitive(input) {\n\tif (isPrimitive(input)) {\n\t\treturn input;\n\t}\n\tvar hint = 'default';\n\tif (arguments.length > 1) {\n\t\tif (arguments[1] === String) {\n\t\t\thint = 'string';\n\t\t} else if (arguments[1] === Number) {\n\t\t\thint = 'number';\n\t\t}\n\t}\n\n\tvar exoticToPrim;\n\tif (hasSymbols) {\n\t\tif (Symbol.toPrimitive) {\n\t\t\texoticToPrim = GetMethod(input, Symbol.toPrimitive);\n\t\t} else if (isSymbol(input)) {\n\t\t\texoticToPrim = Symbol.prototype.valueOf;\n\t\t}\n\t}\n\tif (typeof exoticToPrim !== 'undefined') {\n\t\tvar result = exoticToPrim.call(input, hint);\n\t\tif (isPrimitive(result)) {\n\t\t\treturn result;\n\t\t}\n\t\tthrow new TypeError('unable to convert exotic object to primitive');\n\t}\n\tif (hint === 'default' && (isDate(input) || isSymbol(input))) {\n\t\thint = 'string';\n\t}\n\treturn ordinaryToPrimitive(input, hint === 'default' ? 'number' : hint);\n};\n","'use strict';\n\nvar toStr = Object.prototype.toString;\n\nvar isPrimitive = require('./helpers/isPrimitive');\n\nvar isCallable = require('is-callable');\n\n// http://ecma-international.org/ecma-262/5.1/#sec-8.12.8\nvar ES5internalSlots = {\n\t'[[DefaultValue]]': function (O) {\n\t\tvar actualHint;\n\t\tif (arguments.length > 1) {\n\t\t\tactualHint = arguments[1];\n\t\t} else {\n\t\t\tactualHint = toStr.call(O) === '[object Date]' ? String : Number;\n\t\t}\n\n\t\tif (actualHint === String || actualHint === Number) {\n\t\t\tvar methods = actualHint === String ? ['toString', 'valueOf'] : ['valueOf', 'toString'];\n\t\t\tvar value, i;\n\t\t\tfor (i = 0; i < methods.length; ++i) {\n\t\t\t\tif (isCallable(O[methods[i]])) {\n\t\t\t\t\tvalue = O[methods[i]]();\n\t\t\t\t\tif (isPrimitive(value)) {\n\t\t\t\t\t\treturn value;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tthrow new TypeError('No default value');\n\t\t}\n\t\tthrow new TypeError('invalid [[DefaultValue]] hint supplied');\n\t}\n};\n\n// http://ecma-international.org/ecma-262/5.1/#sec-9.1\nmodule.exports = function ToPrimitive(input) {\n\tif (isPrimitive(input)) {\n\t\treturn input;\n\t}\n\tif (arguments.length > 1) {\n\t\treturn ES5internalSlots['[[DefaultValue]]'](input, arguments[1]);\n\t}\n\treturn ES5internalSlots['[[DefaultValue]]'](input);\n};\n","'use strict';\n\nmodule.exports = require('./es2015');\n","module.exports = function isPrimitive(value) {\n\treturn value === null || (typeof value !== 'function' && typeof value !== 'object');\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n * \n */\n\n/*eslint-disable no-self-compare */\n\n'use strict';\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\nfunction is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n // Added the nonzero y check to make Flow happy, but it is redundant\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n}\n\n/**\n * Performs equality by iterating through keys on an object and returning false\n * when any key has values which are not strictly equal between the arguments.\n * Returns true when the values of all keys are strictly equal.\n */\nfunction shallowEqual(objA, objB) {\n if (is(objA, objB)) {\n return true;\n }\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n // Test for A's keys different from B.\n for (var i = 0; i < keysA.length; i++) {\n if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = shallowEqual;","\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toString = Object.prototype.toString;\n\nmodule.exports = function forEach (obj, fn, ctx) {\n if (toString.call(fn) !== '[object Function]') {\n throw new TypeError('iterator must be a function');\n }\n var l = obj.length;\n if (l === +l) {\n for (var i = 0; i < l; i++) {\n fn.call(ctx, obj[i], i, obj);\n }\n } else {\n for (var k in obj) {\n if (hasOwn.call(obj, k)) {\n fn.call(ctx, obj[k], k, obj);\n }\n }\n }\n};\n\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slice.call(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","module.exports = typeof function foo() {}.name === 'string'; // when function names are minified, checking for \"foo\" would break\n","'use strict';\n\nvar isCallable = require('is-callable');\nvar functionsHaveNames = require('./helpers/functionsHaveNames');\nvar bind = require('function-bind');\nvar functionToString = bind.call(Function.call, Function.prototype.toString);\nvar stringMatch = bind.call(Function.call, String.prototype.match);\n\nvar classRegex = /^class /;\n\nvar isClass = function isClassConstructor(fn) {\n\tif (isCallable(fn)) {\n\t\treturn false;\n\t}\n\tif (typeof fn !== 'function') {\n\t\treturn false;\n\t}\n\ttry {\n\t\tvar match = stringMatch(functionToString(fn), classRegex);\n\t\treturn !!match;\n\t} catch (e) {}\n\treturn false;\n};\n\nvar regex = /\\s*function\\s+([^(\\s]*)\\s*/;\n\nvar functionProto = Function.prototype;\n\nmodule.exports = function getName() {\n\tif (!isClass(this) && !isCallable(this)) {\n\t\tthrow new TypeError('Function.prototype.name sham getter called on non-function');\n\t}\n\tif (functionsHaveNames) {\n\t\treturn this.name;\n\t}\n\tif (this === functionProto) {\n\t\treturn '';\n\t}\n\tvar str = functionToString(this);\n\tvar match = stringMatch(str, regex);\n\tvar name = match && match[1];\n\treturn name;\n};\n","'use strict';\n\nvar define = require('define-properties');\nvar bind = require('function-bind');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar bound = bind.call(Function.call, implementation);\n\ndefine(bound, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = bound;\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n\treturn implementation;\n};\n","'use strict';\n\nvar supportsDescriptors = require('define-properties').supportsDescriptors;\nvar functionsHaveNames = require('./helpers/functionsHaveNames');\nvar getPolyfill = require('./polyfill');\nvar defineProperty = Object.defineProperty;\nvar TypeErr = TypeError;\n\nmodule.exports = function shimName() {\n\tvar polyfill = getPolyfill();\n\tif (functionsHaveNames) {\n\t\treturn polyfill;\n\t}\n\tif (!supportsDescriptors) {\n\t\tthrow new TypeErr('Shimming Function.prototype.name support requires ES5 property descriptor support.');\n\t}\n\tvar functionProto = Function.prototype;\n\tdefineProperty(functionProto, 'name', {\n\t\tconfigurable: true,\n\t\tenumerable: false,\n\t\tget: function () {\n\t\t\tvar name = polyfill.call(this);\n\t\t\tif (this !== functionProto) {\n\t\t\t\tdefineProperty(this, 'name', {\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\tenumerable: false,\n\t\t\t\t\tvalue: name,\n\t\t\t\t\twritable: false\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn name;\n\t\t}\n\t});\n\treturn polyfill;\n};\n","'use strict';\n\nvar define = require('define-properties');\nvar isSymbol = require('is-symbol');\n\nvar globalKey = '__ global cache key __';\n/* istanbul ignore else */\n// eslint-disable-next-line no-restricted-properties\nif (typeof Symbol === 'function' && isSymbol(Symbol('foo')) && typeof Symbol['for'] === 'function') {\n\t// eslint-disable-next-line no-restricted-properties\n\tglobalKey = Symbol['for'](globalKey);\n}\n\nvar trueThunk = function () {\n\treturn true;\n};\n\nvar ensureCache = function ensureCache() {\n\tif (!global[globalKey]) {\n\t\tvar properties = {};\n\t\tproperties[globalKey] = {};\n\t\tvar predicates = {};\n\t\tpredicates[globalKey] = trueThunk;\n\t\tdefine(global, properties, predicates);\n\t}\n\treturn global[globalKey];\n};\n\nvar cache = ensureCache();\n\nvar isPrimitive = function isPrimitive(val) {\n\treturn val === null || (typeof val !== 'object' && typeof val !== 'function');\n};\n\nvar getPrimitiveKey = function getPrimitiveKey(val) {\n\tif (isSymbol(val)) {\n\t\treturn Symbol.prototype.valueOf.call(val);\n\t}\n\treturn typeof val + ' | ' + String(val);\n};\n\nvar requirePrimitiveKey = function requirePrimitiveKey(val) {\n\tif (!isPrimitive(val)) {\n\t\tthrow new TypeError('key must not be an object');\n\t}\n};\n\nvar globalCache = {\n\tclear: function clear() {\n\t\tdelete global[globalKey];\n\t\tcache = ensureCache();\n\t},\n\n\t'delete': function deleteKey(key) {\n\t\trequirePrimitiveKey(key);\n\t\tdelete cache[getPrimitiveKey(key)];\n\t\treturn !globalCache.has(key);\n\t},\n\n\tget: function get(key) {\n\t\trequirePrimitiveKey(key);\n\t\treturn cache[getPrimitiveKey(key)];\n\t},\n\n\thas: function has(key) {\n\t\trequirePrimitiveKey(key);\n\t\treturn getPrimitiveKey(key) in cache;\n\t},\n\n\tset: function set(key, value) {\n\t\trequirePrimitiveKey(key);\n\t\tvar primitiveKey = getPrimitiveKey(key);\n\t\tvar props = {};\n\t\tprops[primitiveKey] = value;\n\t\tvar predicates = {};\n\t\tpredicates[primitiveKey] = trueThunk;\n\t\tdefine(cache, props, predicates);\n\t\treturn globalCache.has(key);\n\t},\n\n\tsetIfMissingThenGet: function setIfMissingThenGet(key, valueThunk) {\n\t\tif (globalCache.has(key)) {\n\t\t\treturn globalCache.get(key);\n\t\t}\n\t\tvar item = valueThunk();\n\t\tglobalCache.set(key, item);\n\t\treturn item;\n\t}\n};\n\nmodule.exports = globalCache;\n","'use strict';\n\nvar origSymbol = global.Symbol;\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/* eslint complexity: [2, 17], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar bind = require('function-bind');\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);\n","'use strict';\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\n\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = getPrototypeOf && getPrototypeOf(Object);\n\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') { // don't hoist over string (html) components\n\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n if (!REACT_STATICS[key] && !KNOWN_STATICS[key] && (!blacklist || !blacklist[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n try { // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n\n return targetComponent;\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","'use strict';\n\nvar fnToStr = Function.prototype.toString;\n\nvar constructorRegex = /^\\s*class\\b/;\nvar isES6ClassFn = function isES6ClassFunction(value) {\n\ttry {\n\t\tvar fnStr = fnToStr.call(value);\n\t\treturn constructorRegex.test(fnStr);\n\t} catch (e) {\n\t\treturn false; // not a function\n\t}\n};\n\nvar tryFunctionObject = function tryFunctionToStr(value) {\n\ttry {\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tfnToStr.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar fnClass = '[object Function]';\nvar genClass = '[object GeneratorFunction]';\nvar hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\n\nmodule.exports = function isCallable(value) {\n\tif (!value) { return false; }\n\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\tif (typeof value === 'function' && !value.prototype) { return true; }\n\tif (hasToStringTag) { return tryFunctionObject(value); }\n\tif (isES6ClassFn(value)) { return false; }\n\tvar strClass = toStr.call(value);\n\treturn strClass === fnClass || strClass === genClass;\n};\n","'use strict';\n\nvar getDay = Date.prototype.getDay;\nvar tryDateObject = function tryDateObject(value) {\n\ttry {\n\t\tgetDay.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nvar toStr = Object.prototype.toString;\nvar dateClass = '[object Date]';\nvar hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\n\nmodule.exports = function isDateObject(value) {\n\tif (typeof value !== 'object' || value === null) { return false; }\n\treturn hasToStringTag ? tryDateObject(value) : toStr.call(value) === dateClass;\n};\n","'use strict';\n\nvar has = require('has');\nvar regexExec = RegExp.prototype.exec;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar tryRegexExecCall = function tryRegexExec(value) {\n\ttry {\n\t\tvar lastIndex = value.lastIndex;\n\t\tvalue.lastIndex = 0;\n\n\t\tregexExec.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t} finally {\n\t\tvalue.lastIndex = lastIndex;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar regexClass = '[object RegExp]';\nvar hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\n\nmodule.exports = function isRegex(value) {\n\tif (!value || typeof value !== 'object') {\n\t\treturn false;\n\t}\n\tif (!hasToStringTag) {\n\t\treturn toStr.call(value) === regexClass;\n\t}\n\n\tvar descriptor = gOPD(value, 'lastIndex');\n\tvar hasLastIndexDataProperty = descriptor && has(descriptor, 'value');\n\tif (!hasLastIndexDataProperty) {\n\t\treturn false;\n\t}\n\n\treturn tryRegexExecCall(value);\n};\n","'use strict';\n\nvar toStr = Object.prototype.toString;\nvar hasSymbols = require('has-symbols')();\n\nif (hasSymbols) {\n\tvar symToStr = Symbol.prototype.toString;\n\tvar symStringRegex = /^Symbol\\(.*\\)$/;\n\tvar isSymbolObject = function isRealSymbolObject(value) {\n\t\tif (typeof value.valueOf() !== 'symbol') {\n\t\t\treturn false;\n\t\t}\n\t\treturn symStringRegex.test(symToStr.call(value));\n\t};\n\n\tmodule.exports = function isSymbol(value) {\n\t\tif (typeof value === 'symbol') {\n\t\t\treturn true;\n\t\t}\n\t\tif (toStr.call(value) !== '[object Symbol]') {\n\t\t\treturn false;\n\t\t}\n\t\ttry {\n\t\t\treturn isSymbolObject(value);\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n} else {\n\n\tmodule.exports = function isSymbol(value) {\n\t\t// this environment does not support Symbols.\n\t\treturn false && value;\n\t};\n}\n","Object.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports['default'] = isTouchDevice;\nfunction isTouchDevice() {\n return !!(typeof window !== 'undefined' && ('ontouchstart' in window || window.DocumentTouch && typeof document !== 'undefined' && document instanceof window.DocumentTouch)) || !!(typeof navigator !== 'undefined' && (navigator.maxTouchPoints || navigator.msMaxTouchPoints));\n}\nmodule.exports = exports['default'];","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","var debounce = require('./debounce'),\n isObject = require('./isObject');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nmodule.exports = throttle;\n","var isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","/*global define:false */\n/**\n * Copyright 2012-2017 Craig Campbell\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * Mousetrap is a simple keyboard shortcut library for Javascript with\n * no external dependencies\n *\n * @version 1.6.2\n * @url craig.is/killing/mice\n */\n(function(window, document, undefined) {\n\n // Check if mousetrap is used inside browser, if not, return\n if (!window) {\n return;\n }\n\n /**\n * mapping of special keycodes to their corresponding keys\n *\n * everything in this dictionary cannot use keypress events\n * so it has to be here to map to the correct keycodes for\n * keyup/keydown events\n *\n * @type {Object}\n */\n var _MAP = {\n 8: 'backspace',\n 9: 'tab',\n 13: 'enter',\n 16: 'shift',\n 17: 'ctrl',\n 18: 'alt',\n 20: 'capslock',\n 27: 'esc',\n 32: 'space',\n 33: 'pageup',\n 34: 'pagedown',\n 35: 'end',\n 36: 'home',\n 37: 'left',\n 38: 'up',\n 39: 'right',\n 40: 'down',\n 45: 'ins',\n 46: 'del',\n 91: 'meta',\n 93: 'meta',\n 224: 'meta'\n };\n\n /**\n * mapping for special characters so they can support\n *\n * this dictionary is only used incase you want to bind a\n * keyup or keydown event to one of these keys\n *\n * @type {Object}\n */\n var _KEYCODE_MAP = {\n 106: '*',\n 107: '+',\n 109: '-',\n 110: '.',\n 111 : '/',\n 186: ';',\n 187: '=',\n 188: ',',\n 189: '-',\n 190: '.',\n 191: '/',\n 192: '`',\n 219: '[',\n 220: '\\\\',\n 221: ']',\n 222: '\\''\n };\n\n /**\n * this is a mapping of keys that require shift on a US keypad\n * back to the non shift equivelents\n *\n * this is so you can use keyup events with these keys\n *\n * note that this will only work reliably on US keyboards\n *\n * @type {Object}\n */\n var _SHIFT_MAP = {\n '~': '`',\n '!': '1',\n '@': '2',\n '#': '3',\n '$': '4',\n '%': '5',\n '^': '6',\n '&': '7',\n '*': '8',\n '(': '9',\n ')': '0',\n '_': '-',\n '+': '=',\n ':': ';',\n '\\\"': '\\'',\n '<': ',',\n '>': '.',\n '?': '/',\n '|': '\\\\'\n };\n\n /**\n * this is a list of special strings you can use to map\n * to modifier keys when you specify your keyboard shortcuts\n *\n * @type {Object}\n */\n var _SPECIAL_ALIASES = {\n 'option': 'alt',\n 'command': 'meta',\n 'return': 'enter',\n 'escape': 'esc',\n 'plus': '+',\n 'mod': /Mac|iPod|iPhone|iPad/.test(navigator.platform) ? 'meta' : 'ctrl'\n };\n\n /**\n * variable to store the flipped version of _MAP from above\n * needed to check if we should use keypress or not when no action\n * is specified\n *\n * @type {Object|undefined}\n */\n var _REVERSE_MAP;\n\n /**\n * loop through the f keys, f1 to f19 and add them to the map\n * programatically\n */\n for (var i = 1; i < 20; ++i) {\n _MAP[111 + i] = 'f' + i;\n }\n\n /**\n * loop through to map numbers on the numeric keypad\n */\n for (i = 0; i <= 9; ++i) {\n\n // This needs to use a string cause otherwise since 0 is falsey\n // mousetrap will never fire for numpad 0 pressed as part of a keydown\n // event.\n //\n // @see https://github.com/ccampbell/mousetrap/pull/258\n _MAP[i + 96] = i.toString();\n }\n\n /**\n * cross browser add event method\n *\n * @param {Element|HTMLDocument} object\n * @param {string} type\n * @param {Function} callback\n * @returns void\n */\n function _addEvent(object, type, callback) {\n if (object.addEventListener) {\n object.addEventListener(type, callback, false);\n return;\n }\n\n object.attachEvent('on' + type, callback);\n }\n\n /**\n * takes the event and returns the key character\n *\n * @param {Event} e\n * @return {string}\n */\n function _characterFromEvent(e) {\n\n // for keypress events we should return the character as is\n if (e.type == 'keypress') {\n var character = String.fromCharCode(e.which);\n\n // if the shift key is not pressed then it is safe to assume\n // that we want the character to be lowercase. this means if\n // you accidentally have caps lock on then your key bindings\n // will continue to work\n //\n // the only side effect that might not be desired is if you\n // bind something like 'A' cause you want to trigger an\n // event when capital A is pressed caps lock will no longer\n // trigger the event. shift+a will though.\n if (!e.shiftKey) {\n character = character.toLowerCase();\n }\n\n return character;\n }\n\n // for non keypress events the special maps are needed\n if (_MAP[e.which]) {\n return _MAP[e.which];\n }\n\n if (_KEYCODE_MAP[e.which]) {\n return _KEYCODE_MAP[e.which];\n }\n\n // if it is not in the special map\n\n // with keydown and keyup events the character seems to always\n // come in as an uppercase character whether you are pressing shift\n // or not. we should make sure it is always lowercase for comparisons\n return String.fromCharCode(e.which).toLowerCase();\n }\n\n /**\n * checks if two arrays are equal\n *\n * @param {Array} modifiers1\n * @param {Array} modifiers2\n * @returns {boolean}\n */\n function _modifiersMatch(modifiers1, modifiers2) {\n return modifiers1.sort().join(',') === modifiers2.sort().join(',');\n }\n\n /**\n * takes a key event and figures out what the modifiers are\n *\n * @param {Event} e\n * @returns {Array}\n */\n function _eventModifiers(e) {\n var modifiers = [];\n\n if (e.shiftKey) {\n modifiers.push('shift');\n }\n\n if (e.altKey) {\n modifiers.push('alt');\n }\n\n if (e.ctrlKey) {\n modifiers.push('ctrl');\n }\n\n if (e.metaKey) {\n modifiers.push('meta');\n }\n\n return modifiers;\n }\n\n /**\n * prevents default for this event\n *\n * @param {Event} e\n * @returns void\n */\n function _preventDefault(e) {\n if (e.preventDefault) {\n e.preventDefault();\n return;\n }\n\n e.returnValue = false;\n }\n\n /**\n * stops propogation for this event\n *\n * @param {Event} e\n * @returns void\n */\n function _stopPropagation(e) {\n if (e.stopPropagation) {\n e.stopPropagation();\n return;\n }\n\n e.cancelBubble = true;\n }\n\n /**\n * determines if the keycode specified is a modifier key or not\n *\n * @param {string} key\n * @returns {boolean}\n */\n function _isModifier(key) {\n return key == 'shift' || key == 'ctrl' || key == 'alt' || key == 'meta';\n }\n\n /**\n * reverses the map lookup so that we can look for specific keys\n * to see what can and can't use keypress\n *\n * @return {Object}\n */\n function _getReverseMap() {\n if (!_REVERSE_MAP) {\n _REVERSE_MAP = {};\n for (var key in _MAP) {\n\n // pull out the numeric keypad from here cause keypress should\n // be able to detect the keys from the character\n if (key > 95 && key < 112) {\n continue;\n }\n\n if (_MAP.hasOwnProperty(key)) {\n _REVERSE_MAP[_MAP[key]] = key;\n }\n }\n }\n return _REVERSE_MAP;\n }\n\n /**\n * picks the best action based on the key combination\n *\n * @param {string} key - character for key\n * @param {Array} modifiers\n * @param {string=} action passed in\n */\n function _pickBestAction(key, modifiers, action) {\n\n // if no action was picked in we should try to pick the one\n // that we think would work best for this key\n if (!action) {\n action = _getReverseMap()[key] ? 'keydown' : 'keypress';\n }\n\n // modifier keys don't work as expected with keypress,\n // switch to keydown\n if (action == 'keypress' && modifiers.length) {\n action = 'keydown';\n }\n\n return action;\n }\n\n /**\n * Converts from a string key combination to an array\n *\n * @param {string} combination like \"command+shift+l\"\n * @return {Array}\n */\n function _keysFromString(combination) {\n if (combination === '+') {\n return ['+'];\n }\n\n combination = combination.replace(/\\+{2}/g, '+plus');\n return combination.split('+');\n }\n\n /**\n * Gets info for a specific key combination\n *\n * @param {string} combination key combination (\"command+s\" or \"a\" or \"*\")\n * @param {string=} action\n * @returns {Object}\n */\n function _getKeyInfo(combination, action) {\n var keys;\n var key;\n var i;\n var modifiers = [];\n\n // take the keys from this pattern and figure out what the actual\n // pattern is all about\n keys = _keysFromString(combination);\n\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n\n // normalize key names\n if (_SPECIAL_ALIASES[key]) {\n key = _SPECIAL_ALIASES[key];\n }\n\n // if this is not a keypress event then we should\n // be smart about using shift keys\n // this will only work for US keyboards however\n if (action && action != 'keypress' && _SHIFT_MAP[key]) {\n key = _SHIFT_MAP[key];\n modifiers.push('shift');\n }\n\n // if this key is a modifier then add it to the list of modifiers\n if (_isModifier(key)) {\n modifiers.push(key);\n }\n }\n\n // depending on what the key combination is\n // we will try to pick the best event for it\n action = _pickBestAction(key, modifiers, action);\n\n return {\n key: key,\n modifiers: modifiers,\n action: action\n };\n }\n\n function _belongsTo(element, ancestor) {\n if (element === null || element === document) {\n return false;\n }\n\n if (element === ancestor) {\n return true;\n }\n\n return _belongsTo(element.parentNode, ancestor);\n }\n\n function Mousetrap(targetElement) {\n var self = this;\n\n targetElement = targetElement || document;\n\n if (!(self instanceof Mousetrap)) {\n return new Mousetrap(targetElement);\n }\n\n /**\n * element to attach key events to\n *\n * @type {Element}\n */\n self.target = targetElement;\n\n /**\n * a list of all the callbacks setup via Mousetrap.bind()\n *\n * @type {Object}\n */\n self._callbacks = {};\n\n /**\n * direct map of string combinations to callbacks used for trigger()\n *\n * @type {Object}\n */\n self._directMap = {};\n\n /**\n * keeps track of what level each sequence is at since multiple\n * sequences can start out with the same sequence\n *\n * @type {Object}\n */\n var _sequenceLevels = {};\n\n /**\n * variable to store the setTimeout call\n *\n * @type {null|number}\n */\n var _resetTimer;\n\n /**\n * temporary state where we will ignore the next keyup\n *\n * @type {boolean|string}\n */\n var _ignoreNextKeyup = false;\n\n /**\n * temporary state where we will ignore the next keypress\n *\n * @type {boolean}\n */\n var _ignoreNextKeypress = false;\n\n /**\n * are we currently inside of a sequence?\n * type of action (\"keyup\" or \"keydown\" or \"keypress\") or false\n *\n * @type {boolean|string}\n */\n var _nextExpectedAction = false;\n\n /**\n * resets all sequence counters except for the ones passed in\n *\n * @param {Object} doNotReset\n * @returns void\n */\n function _resetSequences(doNotReset) {\n doNotReset = doNotReset || {};\n\n var activeSequences = false,\n key;\n\n for (key in _sequenceLevels) {\n if (doNotReset[key]) {\n activeSequences = true;\n continue;\n }\n _sequenceLevels[key] = 0;\n }\n\n if (!activeSequences) {\n _nextExpectedAction = false;\n }\n }\n\n /**\n * finds all callbacks that match based on the keycode, modifiers,\n * and action\n *\n * @param {string} character\n * @param {Array} modifiers\n * @param {Event|Object} e\n * @param {string=} sequenceName - name of the sequence we are looking for\n * @param {string=} combination\n * @param {number=} level\n * @returns {Array}\n */\n function _getMatches(character, modifiers, e, sequenceName, combination, level) {\n var i;\n var callback;\n var matches = [];\n var action = e.type;\n\n // if there are no events related to this keycode\n if (!self._callbacks[character]) {\n return [];\n }\n\n // if a modifier key is coming up on its own we should allow it\n if (action == 'keyup' && _isModifier(character)) {\n modifiers = [character];\n }\n\n // loop through all callbacks for the key that was pressed\n // and see if any of them match\n for (i = 0; i < self._callbacks[character].length; ++i) {\n callback = self._callbacks[character][i];\n\n // if a sequence name is not specified, but this is a sequence at\n // the wrong level then move onto the next match\n if (!sequenceName && callback.seq && _sequenceLevels[callback.seq] != callback.level) {\n continue;\n }\n\n // if the action we are looking for doesn't match the action we got\n // then we should keep going\n if (action != callback.action) {\n continue;\n }\n\n // if this is a keypress event and the meta key and control key\n // are not pressed that means that we need to only look at the\n // character, otherwise check the modifiers as well\n //\n // chrome will not fire a keypress if meta or control is down\n // safari will fire a keypress if meta or meta+shift is down\n // firefox will fire a keypress if meta or control is down\n if ((action == 'keypress' && !e.metaKey && !e.ctrlKey) || _modifiersMatch(modifiers, callback.modifiers)) {\n\n // when you bind a combination or sequence a second time it\n // should overwrite the first one. if a sequenceName or\n // combination is specified in this call it does just that\n //\n // @todo make deleting its own method?\n var deleteCombo = !sequenceName && callback.combo == combination;\n var deleteSequence = sequenceName && callback.seq == sequenceName && callback.level == level;\n if (deleteCombo || deleteSequence) {\n self._callbacks[character].splice(i, 1);\n }\n\n matches.push(callback);\n }\n }\n\n return matches;\n }\n\n /**\n * actually calls the callback function\n *\n * if your callback function returns false this will use the jquery\n * convention - prevent default and stop propogation on the event\n *\n * @param {Function} callback\n * @param {Event} e\n * @returns void\n */\n function _fireCallback(callback, e, combo, sequence) {\n\n // if this event should not happen stop here\n if (self.stopCallback(e, e.target || e.srcElement, combo, sequence)) {\n return;\n }\n\n if (callback(e, combo) === false) {\n _preventDefault(e);\n _stopPropagation(e);\n }\n }\n\n /**\n * handles a character key event\n *\n * @param {string} character\n * @param {Array} modifiers\n * @param {Event} e\n * @returns void\n */\n self._handleKey = function(character, modifiers, e) {\n var callbacks = _getMatches(character, modifiers, e);\n var i;\n var doNotReset = {};\n var maxLevel = 0;\n var processedSequenceCallback = false;\n\n // Calculate the maxLevel for sequences so we can only execute the longest callback sequence\n for (i = 0; i < callbacks.length; ++i) {\n if (callbacks[i].seq) {\n maxLevel = Math.max(maxLevel, callbacks[i].level);\n }\n }\n\n // loop through matching callbacks for this key event\n for (i = 0; i < callbacks.length; ++i) {\n\n // fire for all sequence callbacks\n // this is because if for example you have multiple sequences\n // bound such as \"g i\" and \"g t\" they both need to fire the\n // callback for matching g cause otherwise you can only ever\n // match the first one\n if (callbacks[i].seq) {\n\n // only fire callbacks for the maxLevel to prevent\n // subsequences from also firing\n //\n // for example 'a option b' should not cause 'option b' to fire\n // even though 'option b' is part of the other sequence\n //\n // any sequences that do not match here will be discarded\n // below by the _resetSequences call\n if (callbacks[i].level != maxLevel) {\n continue;\n }\n\n processedSequenceCallback = true;\n\n // keep a list of which sequences were matches for later\n doNotReset[callbacks[i].seq] = 1;\n _fireCallback(callbacks[i].callback, e, callbacks[i].combo, callbacks[i].seq);\n continue;\n }\n\n // if there were no sequence matches but we are still here\n // that means this is a regular match so we should fire that\n if (!processedSequenceCallback) {\n _fireCallback(callbacks[i].callback, e, callbacks[i].combo);\n }\n }\n\n // if the key you pressed matches the type of sequence without\n // being a modifier (ie \"keyup\" or \"keypress\") then we should\n // reset all sequences that were not matched by this event\n //\n // this is so, for example, if you have the sequence \"h a t\" and you\n // type \"h e a r t\" it does not match. in this case the \"e\" will\n // cause the sequence to reset\n //\n // modifier keys are ignored because you can have a sequence\n // that contains modifiers such as \"enter ctrl+space\" and in most\n // cases the modifier key will be pressed before the next key\n //\n // also if you have a sequence such as \"ctrl+b a\" then pressing the\n // \"b\" key will trigger a \"keypress\" and a \"keydown\"\n //\n // the \"keydown\" is expected when there is a modifier, but the\n // \"keypress\" ends up matching the _nextExpectedAction since it occurs\n // after and that causes the sequence to reset\n //\n // we ignore keypresses in a sequence that directly follow a keydown\n // for the same character\n var ignoreThisKeypress = e.type == 'keypress' && _ignoreNextKeypress;\n if (e.type == _nextExpectedAction && !_isModifier(character) && !ignoreThisKeypress) {\n _resetSequences(doNotReset);\n }\n\n _ignoreNextKeypress = processedSequenceCallback && e.type == 'keydown';\n };\n\n /**\n * handles a keydown event\n *\n * @param {Event} e\n * @returns void\n */\n function _handleKeyEvent(e) {\n\n // normalize e.which for key events\n // @see http://stackoverflow.com/questions/4285627/javascript-keycode-vs-charcode-utter-confusion\n if (typeof e.which !== 'number') {\n e.which = e.keyCode;\n }\n\n var character = _characterFromEvent(e);\n\n // no character found then stop\n if (!character) {\n return;\n }\n\n // need to use === for the character check because the character can be 0\n if (e.type == 'keyup' && _ignoreNextKeyup === character) {\n _ignoreNextKeyup = false;\n return;\n }\n\n self.handleKey(character, _eventModifiers(e), e);\n }\n\n /**\n * called to set a 1 second timeout on the specified sequence\n *\n * this is so after each key press in the sequence you have 1 second\n * to press the next key before you have to start over\n *\n * @returns void\n */\n function _resetSequenceTimer() {\n clearTimeout(_resetTimer);\n _resetTimer = setTimeout(_resetSequences, 1000);\n }\n\n /**\n * binds a key sequence to an event\n *\n * @param {string} combo - combo specified in bind call\n * @param {Array} keys\n * @param {Function} callback\n * @param {string=} action\n * @returns void\n */\n function _bindSequence(combo, keys, callback, action) {\n\n // start off by adding a sequence level record for this combination\n // and setting the level to 0\n _sequenceLevels[combo] = 0;\n\n /**\n * callback to increase the sequence level for this sequence and reset\n * all other sequences that were active\n *\n * @param {string} nextAction\n * @returns {Function}\n */\n function _increaseSequence(nextAction) {\n return function() {\n _nextExpectedAction = nextAction;\n ++_sequenceLevels[combo];\n _resetSequenceTimer();\n };\n }\n\n /**\n * wraps the specified callback inside of another function in order\n * to reset all sequence counters as soon as this sequence is done\n *\n * @param {Event} e\n * @returns void\n */\n function _callbackAndReset(e) {\n _fireCallback(callback, e, combo);\n\n // we should ignore the next key up if the action is key down\n // or keypress. this is so if you finish a sequence and\n // release the key the final key will not trigger a keyup\n if (action !== 'keyup') {\n _ignoreNextKeyup = _characterFromEvent(e);\n }\n\n // weird race condition if a sequence ends with the key\n // another sequence begins with\n setTimeout(_resetSequences, 10);\n }\n\n // loop through keys one at a time and bind the appropriate callback\n // function. for any key leading up to the final one it should\n // increase the sequence. after the final, it should reset all sequences\n //\n // if an action is specified in the original bind call then that will\n // be used throughout. otherwise we will pass the action that the\n // next key in the sequence should match. this allows a sequence\n // to mix and match keypress and keydown events depending on which\n // ones are better suited to the key provided\n for (var i = 0; i < keys.length; ++i) {\n var isFinal = i + 1 === keys.length;\n var wrappedCallback = isFinal ? _callbackAndReset : _increaseSequence(action || _getKeyInfo(keys[i + 1]).action);\n _bindSingle(keys[i], wrappedCallback, action, combo, i);\n }\n }\n\n /**\n * binds a single keyboard combination\n *\n * @param {string} combination\n * @param {Function} callback\n * @param {string=} action\n * @param {string=} sequenceName - name of sequence if part of sequence\n * @param {number=} level - what part of the sequence the command is\n * @returns void\n */\n function _bindSingle(combination, callback, action, sequenceName, level) {\n\n // store a direct mapped reference for use with Mousetrap.trigger\n self._directMap[combination + ':' + action] = callback;\n\n // make sure multiple spaces in a row become a single space\n combination = combination.replace(/\\s+/g, ' ');\n\n var sequence = combination.split(' ');\n var info;\n\n // if this pattern is a sequence of keys then run through this method\n // to reprocess each pattern one key at a time\n if (sequence.length > 1) {\n _bindSequence(combination, sequence, callback, action);\n return;\n }\n\n info = _getKeyInfo(combination, action);\n\n // make sure to initialize array if this is the first time\n // a callback is added for this key\n self._callbacks[info.key] = self._callbacks[info.key] || [];\n\n // remove an existing match if there is one\n _getMatches(info.key, info.modifiers, {type: info.action}, sequenceName, combination, level);\n\n // add this call back to the array\n // if it is a sequence put it at the beginning\n // if not put it at the end\n //\n // this is important because the way these are processed expects\n // the sequence ones to come first\n self._callbacks[info.key][sequenceName ? 'unshift' : 'push']({\n callback: callback,\n modifiers: info.modifiers,\n action: info.action,\n seq: sequenceName,\n level: level,\n combo: combination\n });\n }\n\n /**\n * binds multiple combinations to the same callback\n *\n * @param {Array} combinations\n * @param {Function} callback\n * @param {string|undefined} action\n * @returns void\n */\n self._bindMultiple = function(combinations, callback, action) {\n for (var i = 0; i < combinations.length; ++i) {\n _bindSingle(combinations[i], callback, action);\n }\n };\n\n // start!\n _addEvent(targetElement, 'keypress', _handleKeyEvent);\n _addEvent(targetElement, 'keydown', _handleKeyEvent);\n _addEvent(targetElement, 'keyup', _handleKeyEvent);\n }\n\n /**\n * binds an event to mousetrap\n *\n * can be a single key, a combination of keys separated with +,\n * an array of keys, or a sequence of keys separated by spaces\n *\n * be sure to list the modifier keys first to make sure that the\n * correct key ends up getting bound (the last key in the pattern)\n *\n * @param {string|Array} keys\n * @param {Function} callback\n * @param {string=} action - 'keypress', 'keydown', or 'keyup'\n * @returns void\n */\n Mousetrap.prototype.bind = function(keys, callback, action) {\n var self = this;\n keys = keys instanceof Array ? keys : [keys];\n self._bindMultiple.call(self, keys, callback, action);\n return self;\n };\n\n /**\n * unbinds an event to mousetrap\n *\n * the unbinding sets the callback function of the specified key combo\n * to an empty function and deletes the corresponding key in the\n * _directMap dict.\n *\n * TODO: actually remove this from the _callbacks dictionary instead\n * of binding an empty function\n *\n * the keycombo+action has to be exactly the same as\n * it was defined in the bind method\n *\n * @param {string|Array} keys\n * @param {string} action\n * @returns void\n */\n Mousetrap.prototype.unbind = function(keys, action) {\n var self = this;\n return self.bind.call(self, keys, function() {}, action);\n };\n\n /**\n * triggers an event that has already been bound\n *\n * @param {string} keys\n * @param {string=} action\n * @returns void\n */\n Mousetrap.prototype.trigger = function(keys, action) {\n var self = this;\n if (self._directMap[keys + ':' + action]) {\n self._directMap[keys + ':' + action]({}, keys);\n }\n return self;\n };\n\n /**\n * resets the library back to its initial state. this is useful\n * if you want to clear out the current keyboard shortcuts and bind\n * new ones - for example if you switch to another page\n *\n * @returns void\n */\n Mousetrap.prototype.reset = function() {\n var self = this;\n self._callbacks = {};\n self._directMap = {};\n return self;\n };\n\n /**\n * should we stop this event before firing off callbacks\n *\n * @param {Event} e\n * @param {Element} element\n * @return {boolean}\n */\n Mousetrap.prototype.stopCallback = function(e, element) {\n var self = this;\n\n // if the element has the class \"mousetrap\" then no need to stop\n if ((' ' + element.className + ' ').indexOf(' mousetrap ') > -1) {\n return false;\n }\n\n if (_belongsTo(element, self.target)) {\n return false;\n }\n\n // stop for input, select, and textarea\n return element.tagName == 'INPUT' || element.tagName == 'SELECT' || element.tagName == 'TEXTAREA' || element.isContentEditable;\n };\n\n /**\n * exposes _handleKey publicly so it can be overwritten by extensions\n */\n Mousetrap.prototype.handleKey = function() {\n var self = this;\n return self._handleKey.apply(self, arguments);\n };\n\n /**\n * allow custom key mappings\n */\n Mousetrap.addKeycodes = function(object) {\n for (var key in object) {\n if (object.hasOwnProperty(key)) {\n _MAP[key] = object[key];\n }\n }\n _REVERSE_MAP = null;\n };\n\n /**\n * Init the global mousetrap functions\n *\n * This method is needed to allow the global mousetrap functions to work\n * now that mousetrap is a constructor function.\n */\n Mousetrap.init = function() {\n var documentMousetrap = Mousetrap(document);\n for (var method in documentMousetrap) {\n if (method.charAt(0) !== '_') {\n Mousetrap[method] = (function(method) {\n return function() {\n return documentMousetrap[method].apply(documentMousetrap, arguments);\n };\n } (method));\n }\n }\n };\n\n Mousetrap.init();\n\n // expose mousetrap to the global object\n window.Mousetrap = Mousetrap;\n\n // expose as a common js module\n if (typeof module !== 'undefined' && module.exports) {\n module.exports = Mousetrap;\n }\n\n // expose mousetrap as an AMD module\n if (typeof define === 'function' && define.amd) {\n define(function() {\n return Mousetrap;\n });\n }\n}) (typeof window !== 'undefined' ? window : null, typeof window !== 'undefined' ? document : null);\n","/**\n * adds a bindGlobal method to Mousetrap that allows you to\n * bind specific keyboard shortcuts that will still work\n * inside a text input field\n *\n * usage:\n * Mousetrap.bindGlobal('ctrl+s', _saveChanges);\n */\n/* global Mousetrap:true */\n(function(Mousetrap) {\n var _globalCallbacks = {};\n var _originalStopCallback = Mousetrap.prototype.stopCallback;\n\n Mousetrap.prototype.stopCallback = function(e, element, combo, sequence) {\n var self = this;\n\n if (self.paused) {\n return true;\n }\n\n if (_globalCallbacks[combo] || _globalCallbacks[sequence]) {\n return false;\n }\n\n return _originalStopCallback.call(self, e, element, combo);\n };\n\n Mousetrap.prototype.bindGlobal = function(keys, callback, action) {\n var self = this;\n self.bind(keys, callback, action);\n\n if (keys instanceof Array) {\n for (var i = 0; i < keys.length; i++) {\n _globalCallbacks[keys[i]] = true;\n }\n return;\n }\n\n _globalCallbacks[keys] = true;\n };\n\n Mousetrap.init();\n}) (Mousetrap);\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","\"use strict\";\n\n/* https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.is */\n\nvar NumberIsNaN = function (value) {\n\treturn value !== value;\n};\n\nmodule.exports = function is(a, b) {\n\tif (a === 0 && b === 0) {\n\t\treturn 1 / a === 1 / b;\n\t} else if (a === b) {\n\t\treturn true;\n\t} else if (NumberIsNaN(a) && NumberIsNaN(b)) {\n\t\treturn true;\n\t}\n\treturn false;\n};\n\n","'use strict';\n\n// modified from https://github.com/es-shims/es5-shim\nvar has = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar slice = Array.prototype.slice;\nvar isArgs = require('./isArguments');\nvar isEnumerable = Object.prototype.propertyIsEnumerable;\nvar hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString');\nvar hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');\nvar dontEnums = [\n\t'toString',\n\t'toLocaleString',\n\t'valueOf',\n\t'hasOwnProperty',\n\t'isPrototypeOf',\n\t'propertyIsEnumerable',\n\t'constructor'\n];\nvar equalsConstructorPrototype = function (o) {\n\tvar ctor = o.constructor;\n\treturn ctor && ctor.prototype === o;\n};\nvar excludedKeys = {\n\t$console: true,\n\t$external: true,\n\t$frame: true,\n\t$frameElement: true,\n\t$frames: true,\n\t$innerHeight: true,\n\t$innerWidth: true,\n\t$outerHeight: true,\n\t$outerWidth: true,\n\t$pageXOffset: true,\n\t$pageYOffset: true,\n\t$parent: true,\n\t$scrollLeft: true,\n\t$scrollTop: true,\n\t$scrollX: true,\n\t$scrollY: true,\n\t$self: true,\n\t$webkitIndexedDB: true,\n\t$webkitStorageInfo: true,\n\t$window: true\n};\nvar hasAutomationEqualityBug = (function () {\n\t/* global window */\n\tif (typeof window === 'undefined') { return false; }\n\tfor (var k in window) {\n\t\ttry {\n\t\t\tif (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\t\ttry {\n\t\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t\t} catch (e) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (e) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}());\nvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t/* global window */\n\tif (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n\t\treturn equalsConstructorPrototype(o);\n\t}\n\ttry {\n\t\treturn equalsConstructorPrototype(o);\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nvar keysShim = function keys(object) {\n\tvar isObject = object !== null && typeof object === 'object';\n\tvar isFunction = toStr.call(object) === '[object Function]';\n\tvar isArguments = isArgs(object);\n\tvar isString = isObject && toStr.call(object) === '[object String]';\n\tvar theKeys = [];\n\n\tif (!isObject && !isFunction && !isArguments) {\n\t\tthrow new TypeError('Object.keys called on a non-object');\n\t}\n\n\tvar skipProto = hasProtoEnumBug && isFunction;\n\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\ttheKeys.push(String(i));\n\t\t}\n\t}\n\n\tif (isArguments && object.length > 0) {\n\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\ttheKeys.push(String(j));\n\t\t}\n\t} else {\n\t\tfor (var name in object) {\n\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\ttheKeys.push(String(name));\n\t\t\t}\n\t\t}\n\t}\n\n\tif (hasDontEnumBug) {\n\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t}\n\t\t}\n\t}\n\treturn theKeys;\n};\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (Object.keys) {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\treturn (Object.keys(arguments) || '').length === 2;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tvar originalKeys = Object.keys;\n\t\t\tObject.keys = function keys(object) {\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t} else {\n\t\t\t\t\treturn originalKeys(object);\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t} else {\n\t\tObject.keys = keysShim;\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n","'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n","'use strict';\n\n// modified from https://github.com/es-shims/es6-shim\nvar keys = require('object-keys');\nvar bind = require('function-bind');\nvar canBeObject = function (obj) {\n\treturn typeof obj !== 'undefined' && obj !== null;\n};\nvar hasSymbols = require('has-symbols/shams')();\nvar toObject = Object;\nvar push = bind.call(Function.call, Array.prototype.push);\nvar propIsEnumerable = bind.call(Function.call, Object.prototype.propertyIsEnumerable);\nvar originalGetSymbols = hasSymbols ? Object.getOwnPropertySymbols : null;\n\nmodule.exports = function assign(target, source1) {\n\tif (!canBeObject(target)) { throw new TypeError('target must be an object'); }\n\tvar objTarget = toObject(target);\n\tvar s, source, i, props, syms, value, key;\n\tfor (s = 1; s < arguments.length; ++s) {\n\t\tsource = toObject(arguments[s]);\n\t\tprops = keys(source);\n\t\tvar getSymbols = hasSymbols && (Object.getOwnPropertySymbols || originalGetSymbols);\n\t\tif (getSymbols) {\n\t\t\tsyms = getSymbols(source);\n\t\t\tfor (i = 0; i < syms.length; ++i) {\n\t\t\t\tkey = syms[i];\n\t\t\t\tif (propIsEnumerable(source, key)) {\n\t\t\t\t\tpush(props, key);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor (i = 0; i < props.length; ++i) {\n\t\t\tkey = props[i];\n\t\t\tvalue = source[key];\n\t\t\tif (propIsEnumerable(source, key)) {\n\t\t\t\tobjTarget[key] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn objTarget;\n};\n","'use strict';\n\nvar defineProperties = require('define-properties');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar polyfill = getPolyfill();\n\ndefineProperties(polyfill, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = polyfill;\n","'use strict';\n\nvar implementation = require('./implementation');\n\nvar lacksProperEnumerationOrder = function () {\n\tif (!Object.assign) {\n\t\treturn false;\n\t}\n\t// v8, specifically in node 4.x, has a bug with incorrect property enumeration order\n\t// note: this does not detect the bug unless there's 20 characters\n\tvar str = 'abcdefghijklmnopqrst';\n\tvar letters = str.split('');\n\tvar map = {};\n\tfor (var i = 0; i < letters.length; ++i) {\n\t\tmap[letters[i]] = letters[i];\n\t}\n\tvar obj = Object.assign({}, map);\n\tvar actual = '';\n\tfor (var k in obj) {\n\t\tactual += k;\n\t}\n\treturn str !== actual;\n};\n\nvar assignHasPendingExceptions = function () {\n\tif (!Object.assign || !Object.preventExtensions) {\n\t\treturn false;\n\t}\n\t// Firefox 37 still has \"pending exception\" logic in its Object.assign implementation,\n\t// which is 72% slower than our shim, and Firefox 40's native implementation.\n\tvar thrower = Object.preventExtensions({ 1: 2 });\n\ttry {\n\t\tObject.assign(thrower, 'xy');\n\t} catch (e) {\n\t\treturn thrower[1] === 'y';\n\t}\n\treturn false;\n};\n\nmodule.exports = function getPolyfill() {\n\tif (!Object.assign) {\n\t\treturn implementation;\n\t}\n\tif (lacksProperEnumerationOrder()) {\n\t\treturn implementation;\n\t}\n\tif (assignHasPendingExceptions()) {\n\t\treturn implementation;\n\t}\n\treturn Object.assign;\n};\n","'use strict';\n\nvar define = require('define-properties');\nvar getPolyfill = require('./polyfill');\n\nmodule.exports = function shimAssign() {\n\tvar polyfill = getPolyfill();\n\tdefine(\n\t\tObject,\n\t\t{ assign: polyfill },\n\t\t{ assign: function () { return Object.assign !== polyfill; } }\n\t);\n\treturn polyfill;\n};\n","'use strict';\n\nvar ES = require('es-abstract/es7');\nvar has = require('has');\nvar bind = require('function-bind');\nvar isEnumerable = bind.call(Function.call, Object.prototype.propertyIsEnumerable);\n\nmodule.exports = function entries(O) {\n\tvar obj = ES.RequireObjectCoercible(O);\n\tvar entrys = [];\n\tfor (var key in obj) {\n\t\tif (has(obj, key) && isEnumerable(obj, key)) {\n\t\t\tentrys.push([key, obj[key]]);\n\t\t}\n\t}\n\treturn entrys;\n};\n","'use strict';\n\nvar define = require('define-properties');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar polyfill = getPolyfill();\n\ndefine(polyfill, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = polyfill;\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n\treturn typeof Object.entries === 'function' ? Object.entries : implementation;\n};\n","'use strict';\n\nvar getPolyfill = require('./polyfill');\nvar define = require('define-properties');\n\nmodule.exports = function shimEntries() {\n\tvar polyfill = getPolyfill();\n\tdefine(Object, { entries: polyfill }, {\n\t\tentries: function testEntries() {\n\t\t\treturn Object.entries !== polyfill;\n\t\t}\n\t});\n\treturn polyfill;\n};\n","'use strict';\n\nvar ES = require('es-abstract/es7');\nvar has = require('has');\nvar bind = require('function-bind');\nvar isEnumerable = bind.call(Function.call, Object.prototype.propertyIsEnumerable);\n\nmodule.exports = function values(O) {\n\tvar obj = ES.RequireObjectCoercible(O);\n\tvar vals = [];\n\tfor (var key in obj) {\n\t\tif (has(obj, key) && isEnumerable(obj, key)) {\n\t\t\tvals.push(obj[key]);\n\t\t}\n\t}\n\treturn vals;\n};\n","'use strict';\n\nvar define = require('define-properties');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar polyfill = getPolyfill();\n\ndefine(polyfill, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = polyfill;\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n\treturn typeof Object.values === 'function' ? Object.values : implementation;\n};\n","'use strict';\n\nvar getPolyfill = require('./polyfill');\nvar define = require('define-properties');\n\nmodule.exports = function shimValues() {\n\tvar polyfill = getPolyfill();\n\tdefine(Object, { values: polyfill }, {\n\t\tvalues: function testValues() {\n\t\t\treturn Object.values !== polyfill;\n\t\t}\n\t});\n\treturn polyfill;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n )\n\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (propValue.hasOwnProperty(key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","import { createElement, Component } from 'react';\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar inherits = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\nvar possibleConstructorReturn = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\nvar styles = {\n base: {\n position: 'absolute',\n userSelect: 'none',\n MsUserSelect: 'none'\n },\n top: {\n width: '100%',\n height: '10px',\n top: '-5px',\n left: '0px',\n cursor: 'row-resize'\n },\n right: {\n width: '10px',\n height: '100%',\n top: '0px',\n right: '-5px',\n cursor: 'col-resize'\n },\n bottom: {\n width: '100%',\n height: '10px',\n bottom: '-5px',\n left: '0px',\n cursor: 'row-resize'\n },\n left: {\n width: '10px',\n height: '100%',\n top: '0px',\n left: '-5px',\n cursor: 'col-resize'\n },\n topRight: {\n width: '20px',\n height: '20px',\n position: 'absolute',\n right: '-10px',\n top: '-10px',\n cursor: 'ne-resize'\n },\n bottomRight: {\n width: '20px',\n height: '20px',\n position: 'absolute',\n right: '-10px',\n bottom: '-10px',\n cursor: 'se-resize'\n },\n bottomLeft: {\n width: '20px',\n height: '20px',\n position: 'absolute',\n left: '-10px',\n bottom: '-10px',\n cursor: 'sw-resize'\n },\n topLeft: {\n width: '20px',\n height: '20px',\n position: 'absolute',\n left: '-10px',\n top: '-10px',\n cursor: 'nw-resize'\n }\n};\n\nvar Resizer = (function (props) {\n return createElement(\n 'div',\n {\n className: props.className,\n style: _extends({}, styles.base, styles[props.direction], props.replaceStyles || {}),\n onMouseDown: function onMouseDown(e) {\n props.onResizeStart(e, props.direction);\n },\n onTouchStart: function onTouchStart(e) {\n props.onResizeStart(e, props.direction);\n }\n },\n props.children\n );\n});\n\nvar userSelectNone = {\n userSelect: 'none',\n MozUserSelect: 'none',\n WebkitUserSelect: 'none',\n MsUserSelect: 'none'\n};\n\nvar userSelectAuto = {\n userSelect: 'auto',\n MozUserSelect: 'auto',\n WebkitUserSelect: 'auto',\n MsUserSelect: 'auto'\n};\n\nvar clamp = function clamp(n, min, max) {\n return Math.max(Math.min(n, max), min);\n};\nvar snap = function snap(n, size) {\n return Math.round(n / size) * size;\n};\n\nvar findClosestSnap = function findClosestSnap(n, snapArray) {\n return snapArray.reduce(function (prev, curr) {\n return Math.abs(curr - n) < Math.abs(prev - n) ? curr : prev;\n });\n};\n\nvar endsWith = function endsWith(str, searchStr) {\n return str.substr(str.length - searchStr.length, searchStr.length) === searchStr;\n};\n\nvar getStringSize = function getStringSize(n) {\n if (n.toString() === 'auto') return n.toString();\n if (endsWith(n.toString(), 'px')) return n.toString();\n if (endsWith(n.toString(), '%')) return n.toString();\n if (endsWith(n.toString(), 'vh')) return n.toString();\n if (endsWith(n.toString(), 'vw')) return n.toString();\n if (endsWith(n.toString(), 'vmax')) return n.toString();\n if (endsWith(n.toString(), 'vmin')) return n.toString();\n return n + 'px';\n};\n\nvar definedProps = ['style', 'className', 'grid', 'snap', 'bounds', 'size', 'defaultSize', 'minWidth', 'minHeight', 'maxWidth', 'maxHeight', 'lockAspectRatio', 'lockAspectRatioExtraWidth', 'lockAspectRatioExtraHeight', 'enable', 'handleStyles', 'handleClasses', 'handleWrapperStyle', 'handleWrapperClass', 'children', 'onResizeStart', 'onResize', 'onResizeStop', 'handleComponent', 'scale'];\n\nvar baseClassName = '__resizable_base__';\n\nvar Resizable = function (_React$Component) {\n inherits(Resizable, _React$Component);\n\n function Resizable(props) {\n classCallCheck(this, Resizable);\n\n var _this = possibleConstructorReturn(this, (Resizable.__proto__ || Object.getPrototypeOf(Resizable)).call(this, props));\n\n _this.state = {\n isResizing: false,\n resizeCursor: 'auto',\n width: typeof (_this.propsSize && _this.propsSize.width) === 'undefined' ? 'auto' : _this.propsSize && _this.propsSize.width,\n height: typeof (_this.propsSize && _this.propsSize.height) === 'undefined' ? 'auto' : _this.propsSize && _this.propsSize.height,\n direction: 'right',\n original: {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n }\n };\n\n _this.updateExtendsProps(props);\n _this.onResizeStart = _this.onResizeStart.bind(_this);\n _this.onMouseMove = _this.onMouseMove.bind(_this);\n _this.onMouseUp = _this.onMouseUp.bind(_this);\n\n if (typeof window !== 'undefined') {\n window.addEventListener('mouseup', _this.onMouseUp);\n window.addEventListener('mousemove', _this.onMouseMove);\n window.addEventListener('mouseleave', _this.onMouseUp);\n window.addEventListener('touchmove', _this.onMouseMove);\n window.addEventListener('touchend', _this.onMouseUp);\n }\n return _this;\n }\n\n createClass(Resizable, [{\n key: 'updateExtendsProps',\n value: function updateExtendsProps(props) {\n this.extendsProps = Object.keys(props).reduce(function (acc, key) {\n if (definedProps.indexOf(key) !== -1) return acc;\n acc[key] = props[key];\n return acc;\n }, {});\n }\n }, {\n key: 'getParentSize',\n value: function getParentSize() {\n var base = this.base;\n\n if (!base) return { width: window.innerWidth, height: window.innerHeight };\n // INFO: To calculate parent width with flex layout\n var wrapChanged = false;\n var wrap = this.parentNode.style.flexWrap;\n var minWidth = base.style.minWidth;\n if (wrap !== 'wrap') {\n wrapChanged = true;\n this.parentNode.style.flexWrap = 'wrap';\n // HACK: Use relative to get parent padding size\n }\n base.style.position = 'relative';\n base.style.minWidth = '100%';\n var size = {\n width: base.offsetWidth,\n height: base.offsetHeight\n };\n base.style.position = 'absolute';\n if (wrapChanged) this.parentNode.style.flexWrap = wrap;\n base.style.minWidth = minWidth;\n return size;\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n var size = this.size;\n\n this.setState({\n width: this.state.width || size.width,\n height: this.state.height || size.height\n });\n var parent = this.parentNode;\n if (!(parent instanceof HTMLElement)) return;\n if (this.base) return;\n var element = document.createElement('div');\n element.style.width = '100%';\n element.style.height = '100%';\n element.style.position = 'absolute';\n element.style.transform = 'scale(0, 0)';\n element.style.left = '0';\n element.style.flex = '0';\n if (element.classList) {\n element.classList.add(baseClassName);\n } else {\n element.className += baseClassName;\n }\n parent.appendChild(element);\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(next) {\n this.updateExtendsProps(next);\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (typeof window !== 'undefined') {\n window.removeEventListener('mouseup', this.onMouseUp);\n window.removeEventListener('mousemove', this.onMouseMove);\n window.removeEventListener('mouseleave', this.onMouseUp);\n window.removeEventListener('touchmove', this.onMouseMove);\n window.removeEventListener('touchend', this.onMouseUp);\n var parent = this.parentNode;\n var base = this.base;\n\n if (!base || !parent) return;\n if (!(parent instanceof HTMLElement) || !(base instanceof Node)) return;\n parent.removeChild(base);\n }\n }\n }, {\n key: 'calculateNewSize',\n value: function calculateNewSize(newSize, kind) {\n var propsSize = this.propsSize && this.propsSize[kind];\n return this.state[kind] === 'auto' && this.state.original[kind] === newSize && (typeof propsSize === 'undefined' || propsSize === 'auto') ? 'auto' : newSize;\n }\n }, {\n key: 'onResizeStart',\n value: function onResizeStart(event, direction) {\n var clientX = 0;\n var clientY = 0;\n if (event.nativeEvent instanceof MouseEvent) {\n clientX = event.nativeEvent.clientX;\n clientY = event.nativeEvent.clientY;\n\n // When user click with right button the resize is stuck in resizing mode\n // until users clicks again, dont continue if right click is used.\n // HACK: MouseEvent does not have `which` from flow-bin v0.68.\n if (event.nativeEvent.which === 3) {\n return;\n }\n } else if (event.nativeEvent instanceof TouchEvent) {\n clientX = event.nativeEvent.touches[0].clientX;\n clientY = event.nativeEvent.touches[0].clientY;\n }\n if (this.props.onResizeStart) {\n this.props.onResizeStart(event, direction, this.resizable);\n }\n\n // Fix #168\n if (this.props.size) {\n if (typeof this.props.size.height !== 'undefined' && this.props.size.height !== this.state.height) {\n this.setState({ height: this.props.size.height });\n }\n if (typeof this.props.size.width !== 'undefined' && this.props.size.width !== this.state.width) {\n this.setState({ width: this.props.size.width });\n }\n }\n\n this.setState({\n original: {\n x: clientX,\n y: clientY,\n width: this.size.width,\n height: this.size.height\n },\n isResizing: true,\n resizeCursor: window.getComputedStyle(event.target).cursor,\n direction: direction\n });\n }\n }, {\n key: 'onMouseMove',\n value: function onMouseMove(event) {\n if (!this.state.isResizing) return;\n var clientX = event instanceof MouseEvent ? event.clientX : event.touches[0].clientX;\n var clientY = event instanceof MouseEvent ? event.clientY : event.touches[0].clientY;\n var _state = this.state,\n direction = _state.direction,\n original = _state.original,\n width = _state.width,\n height = _state.height;\n var _props = this.props,\n lockAspectRatio = _props.lockAspectRatio,\n lockAspectRatioExtraHeight = _props.lockAspectRatioExtraHeight,\n lockAspectRatioExtraWidth = _props.lockAspectRatioExtraWidth;\n\n var scale = this.props.scale || 1;\n var _props2 = this.props,\n maxWidth = _props2.maxWidth,\n maxHeight = _props2.maxHeight,\n minWidth = _props2.minWidth,\n minHeight = _props2.minHeight;\n\n // TODO: refactor\n\n var parentSize = this.getParentSize();\n if (maxWidth && typeof maxWidth === 'string' && endsWith(maxWidth, '%')) {\n var _ratio = Number(maxWidth.replace('%', '')) / 100;\n maxWidth = parentSize.width * _ratio;\n }\n if (maxHeight && typeof maxHeight === 'string' && endsWith(maxHeight, '%')) {\n var _ratio2 = Number(maxHeight.replace('%', '')) / 100;\n maxHeight = parentSize.height * _ratio2;\n }\n if (minWidth && typeof minWidth === 'string' && endsWith(minWidth, '%')) {\n var _ratio3 = Number(minWidth.replace('%', '')) / 100;\n minWidth = parentSize.width * _ratio3;\n }\n if (minHeight && typeof minHeight === 'string' && endsWith(minHeight, '%')) {\n var _ratio4 = Number(minHeight.replace('%', '')) / 100;\n minHeight = parentSize.height * _ratio4;\n }\n maxWidth = typeof maxWidth === 'undefined' ? undefined : Number(maxWidth);\n maxHeight = typeof maxHeight === 'undefined' ? undefined : Number(maxHeight);\n minWidth = typeof minWidth === 'undefined' ? undefined : Number(minWidth);\n minHeight = typeof minHeight === 'undefined' ? undefined : Number(minHeight);\n\n var ratio = typeof lockAspectRatio === 'number' ? lockAspectRatio : original.width / original.height;\n var newWidth = original.width;\n var newHeight = original.height;\n if (/right/i.test(direction)) {\n newWidth = original.width + (clientX - original.x) / scale;\n if (lockAspectRatio) newHeight = (newWidth - lockAspectRatioExtraWidth) / ratio + lockAspectRatioExtraHeight;\n }\n if (/left/i.test(direction)) {\n newWidth = original.width - (clientX - original.x) / scale;\n if (lockAspectRatio) newHeight = (newWidth - lockAspectRatioExtraWidth) / ratio + lockAspectRatioExtraHeight;\n }\n if (/bottom/i.test(direction)) {\n newHeight = original.height + (clientY - original.y) / scale;\n if (lockAspectRatio) newWidth = (newHeight - lockAspectRatioExtraHeight) * ratio + lockAspectRatioExtraWidth;\n }\n if (/top/i.test(direction)) {\n newHeight = original.height - (clientY - original.y) / scale;\n if (lockAspectRatio) newWidth = (newHeight - lockAspectRatioExtraHeight) * ratio + lockAspectRatioExtraWidth;\n }\n\n if (this.props.bounds === 'parent') {\n var parent = this.parentNode;\n if (parent instanceof HTMLElement) {\n var parentRect = parent.getBoundingClientRect();\n var parentLeft = parentRect.left;\n var parentTop = parentRect.top;\n\n var _resizable$getBoundin = this.resizable.getBoundingClientRect(),\n _left = _resizable$getBoundin.left,\n _top = _resizable$getBoundin.top;\n\n var boundWidth = parent.offsetWidth + (parentLeft - _left);\n var boundHeight = parent.offsetHeight + (parentTop - _top);\n maxWidth = maxWidth && maxWidth < boundWidth ? maxWidth : boundWidth;\n maxHeight = maxHeight && maxHeight < boundHeight ? maxHeight : boundHeight;\n }\n } else if (this.props.bounds === 'window') {\n if (typeof window !== 'undefined') {\n var _resizable$getBoundin2 = this.resizable.getBoundingClientRect(),\n _left2 = _resizable$getBoundin2.left,\n _top2 = _resizable$getBoundin2.top;\n\n var _boundWidth = window.innerWidth - _left2;\n var _boundHeight = window.innerHeight - _top2;\n maxWidth = maxWidth && maxWidth < _boundWidth ? maxWidth : _boundWidth;\n maxHeight = maxHeight && maxHeight < _boundHeight ? maxHeight : _boundHeight;\n }\n } else if (this.props.bounds instanceof HTMLElement) {\n var targetRect = this.props.bounds.getBoundingClientRect();\n var targetLeft = targetRect.left;\n var targetTop = targetRect.top;\n\n var _resizable$getBoundin3 = this.resizable.getBoundingClientRect(),\n _left3 = _resizable$getBoundin3.left,\n _top3 = _resizable$getBoundin3.top;\n\n if (!(this.props.bounds instanceof HTMLElement)) return;\n var _boundWidth2 = this.props.bounds.offsetWidth + (targetLeft - _left3);\n var _boundHeight2 = this.props.bounds.offsetHeight + (targetTop - _top3);\n maxWidth = maxWidth && maxWidth < _boundWidth2 ? maxWidth : _boundWidth2;\n maxHeight = maxHeight && maxHeight < _boundHeight2 ? maxHeight : _boundHeight2;\n }\n\n var computedMinWidth = typeof minWidth === 'undefined' ? 10 : minWidth;\n var computedMaxWidth = typeof maxWidth === 'undefined' || maxWidth < 0 ? newWidth : maxWidth;\n var computedMinHeight = typeof minHeight === 'undefined' ? 10 : minHeight;\n var computedMaxHeight = typeof maxHeight === 'undefined' || maxHeight < 0 ? newHeight : maxHeight;\n\n if (lockAspectRatio) {\n var extraMinWidth = (computedMinHeight - lockAspectRatioExtraHeight) * ratio + lockAspectRatioExtraWidth;\n var extraMaxWidth = (computedMaxHeight - lockAspectRatioExtraHeight) * ratio + lockAspectRatioExtraWidth;\n var extraMinHeight = (computedMinWidth - lockAspectRatioExtraWidth) / ratio + lockAspectRatioExtraHeight;\n var extraMaxHeight = (computedMaxWidth - lockAspectRatioExtraWidth) / ratio + lockAspectRatioExtraHeight;\n var lockedMinWidth = Math.max(computedMinWidth, extraMinWidth);\n var lockedMaxWidth = Math.min(computedMaxWidth, extraMaxWidth);\n var lockedMinHeight = Math.max(computedMinHeight, extraMinHeight);\n var lockedMaxHeight = Math.min(computedMaxHeight, extraMaxHeight);\n newWidth = clamp(newWidth, lockedMinWidth, lockedMaxWidth);\n newHeight = clamp(newHeight, lockedMinHeight, lockedMaxHeight);\n } else {\n newWidth = clamp(newWidth, computedMinWidth, computedMaxWidth);\n newHeight = clamp(newHeight, computedMinHeight, computedMaxHeight);\n }\n if (this.props.grid) {\n newWidth = snap(newWidth, this.props.grid[0]);\n }\n if (this.props.grid) {\n newHeight = snap(newHeight, this.props.grid[1]);\n }\n\n if (this.props.snap && this.props.snap.x) {\n newWidth = findClosestSnap(newWidth, this.props.snap.x);\n }\n if (this.props.snap && this.props.snap.y) {\n newHeight = findClosestSnap(newHeight, this.props.snap.y);\n }\n\n var delta = {\n width: newWidth - original.width,\n height: newHeight - original.height\n };\n\n if (width && typeof width === 'string' && endsWith(width, '%')) {\n var percent = newWidth / parentSize.width * 100;\n newWidth = percent + '%';\n }\n\n if (height && typeof height === 'string' && endsWith(height, '%')) {\n var _percent = newHeight / parentSize.height * 100;\n newHeight = _percent + '%';\n }\n\n this.setState({\n width: this.calculateNewSize(newWidth, 'width'),\n height: this.calculateNewSize(newHeight, 'height')\n });\n\n if (this.props.onResize) {\n this.props.onResize(event, direction, this.resizable, delta);\n }\n }\n }, {\n key: 'onMouseUp',\n value: function onMouseUp(event) {\n var _state2 = this.state,\n isResizing = _state2.isResizing,\n direction = _state2.direction,\n original = _state2.original;\n\n if (!isResizing) return;\n var delta = {\n width: this.size.width - original.width,\n height: this.size.height - original.height\n };\n if (this.props.onResizeStop) {\n this.props.onResizeStop(event, direction, this.resizable, delta);\n }\n if (this.props.size) {\n this.setState(this.props.size);\n }\n this.setState({ isResizing: false, resizeCursor: 'auto' });\n }\n }, {\n key: 'updateSize',\n value: function updateSize(size) {\n this.setState({ width: size.width, height: size.height });\n }\n }, {\n key: 'renderResizer',\n value: function renderResizer() {\n var _this2 = this;\n\n var _props3 = this.props,\n enable = _props3.enable,\n handleStyles = _props3.handleStyles,\n handleClasses = _props3.handleClasses,\n handleWrapperStyle = _props3.handleWrapperStyle,\n handleWrapperClass = _props3.handleWrapperClass,\n handleComponent = _props3.handleComponent;\n\n if (!enable) return null;\n var resizers = Object.keys(enable).map(function (dir) {\n if (enable[dir] !== false) {\n return createElement(\n Resizer,\n {\n key: dir,\n direction: dir,\n onResizeStart: _this2.onResizeStart,\n replaceStyles: handleStyles && handleStyles[dir],\n className: handleClasses && handleClasses[dir]\n },\n handleComponent && handleComponent[dir] ? createElement(handleComponent[dir]) : null\n );\n }\n return null;\n });\n // #93 Wrap the resize box in span (will not break 100% width/height)\n return createElement(\n 'span',\n { className: handleWrapperClass, style: handleWrapperStyle },\n resizers\n );\n }\n }, {\n key: 'render',\n value: function render() {\n var _this3 = this;\n\n var userSelect = this.state.isResizing ? userSelectNone : userSelectAuto;\n return createElement(\n 'div',\n _extends({\n ref: function ref(c) {\n if (c) {\n _this3.resizable = c;\n }\n },\n style: _extends({\n position: 'relative'\n }, userSelect, this.props.style, this.sizeStyle, {\n maxWidth: this.props.maxWidth,\n maxHeight: this.props.maxHeight,\n minWidth: this.props.minWidth,\n minHeight: this.props.minHeight,\n boxSizing: 'border-box'\n }),\n className: this.props.className\n }, this.extendsProps),\n this.state.isResizing && createElement('div', {\n style: {\n height: '100%',\n width: '100%',\n backgroundColor: 'rgba(0,0,0,0)',\n cursor: '' + (this.state.resizeCursor || 'auto'),\n opacity: '0',\n position: 'fixed',\n zIndex: '9999',\n top: '0',\n left: '0',\n bottom: '0',\n right: '0'\n }\n }),\n this.props.children,\n this.renderResizer()\n );\n }\n }, {\n key: 'parentNode',\n get: function get$$1() {\n return this.resizable.parentNode;\n }\n }, {\n key: 'propsSize',\n get: function get$$1() {\n return this.props.size || this.props.defaultSize;\n }\n }, {\n key: 'base',\n get: function get$$1() {\n var parent = this.parentNode;\n if (!parent) return undefined;\n var children = [].slice.call(parent.children);\n for (var i = 0; i < children.length; i += 1) {\n var n = children[i];\n if (n instanceof HTMLElement) {\n if (n.classList.contains(baseClassName)) {\n return n;\n }\n }\n }\n return undefined;\n }\n }, {\n key: 'size',\n get: function get$$1() {\n var width = 0;\n var height = 0;\n if (typeof window !== 'undefined') {\n var orgWidth = this.resizable.offsetWidth;\n var orgHeight = this.resizable.offsetHeight;\n // HACK: Set position `relative` to get parent size.\n // This is because when re-resizable set `absolute`, I can not get base width correctly.\n var orgPosition = this.resizable.style.position;\n if (orgPosition !== 'relative') {\n this.resizable.style.position = 'relative';\n }\n // INFO: Use original width or height if set auto.\n width = this.resizable.style.width !== 'auto' ? this.resizable.offsetWidth : orgWidth;\n height = this.resizable.style.height !== 'auto' ? this.resizable.offsetHeight : orgHeight;\n // Restore original position\n this.resizable.style.position = orgPosition;\n }\n return { width: width, height: height };\n }\n }, {\n key: 'sizeStyle',\n get: function get$$1() {\n var _this4 = this;\n\n var size = this.props.size;\n\n var getSize = function getSize(key) {\n if (typeof _this4.state[key] === 'undefined' || _this4.state[key] === 'auto') return 'auto';\n if (_this4.propsSize && _this4.propsSize[key] && endsWith(_this4.propsSize[key].toString(), '%')) {\n if (endsWith(_this4.state[key].toString(), '%')) return _this4.state[key].toString();\n var parentSize = _this4.getParentSize();\n var value = Number(_this4.state[key].toString().replace('px', ''));\n var percent = value / parentSize[key] * 100;\n return percent + '%';\n }\n return getStringSize(_this4.state[key]);\n };\n var width = size && typeof size.width !== 'undefined' && !this.state.isResizing ? getStringSize(size.width) : getSize('width');\n var height = size && typeof size.height !== 'undefined' && !this.state.isResizing ? getStringSize(size.height) : getSize('height');\n return { width: width, height: height };\n }\n }]);\n return Resizable;\n}(Component);\n\nResizable.defaultProps = {\n onResizeStart: function onResizeStart() {},\n onResize: function onResize() {},\n onResizeStop: function onResizeStop() {},\n enable: {\n top: true,\n right: true,\n bottom: true,\n left: true,\n topRight: true,\n bottomRight: true,\n bottomLeft: true,\n topLeft: true\n },\n style: {},\n grid: [1, 1],\n lockAspectRatio: false,\n lockAspectRatioExtraWidth: 0,\n lockAspectRatioExtraHeight: 0,\n scale: 1\n};\n\nexport default Resizable;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @providesModule shallowCompare\n */\n\n'use strict';\n\nvar shallowEqual = require('fbjs/lib/shallowEqual');\n\n/**\n * Does a shallow comparison for props and state.\n * See ReactComponentWithPureRenderMixin\n * See also https://facebook.github.io/react/docs/shallow-compare.html\n */\nfunction shallowCompare(instance, nextProps, nextState) {\n return (\n !shallowEqual(instance.props, nextProps) ||\n !shallowEqual(instance.state, nextState)\n );\n}\n\nmodule.exports = shallowCompare;\n","'use strict';\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar hoistNonReactStatic = require('hoist-non-react-statics');\nvar React = require('react');\nvar ReactDOM = require('react-dom');\n\nmodule.exports = function enhanceWithClickOutside(WrappedComponent) {\n var componentName = WrappedComponent.displayName || WrappedComponent.name;\n\n var EnhancedComponent = function (_React$Component) {\n _inherits(EnhancedComponent, _React$Component);\n\n function EnhancedComponent(props) {\n _classCallCheck(this, EnhancedComponent);\n\n var _this = _possibleConstructorReturn(this, (EnhancedComponent.__proto__ || Object.getPrototypeOf(EnhancedComponent)).call(this, props));\n\n _this.handleClickOutside = _this.handleClickOutside.bind(_this);\n return _this;\n }\n\n _createClass(EnhancedComponent, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n document.addEventListener('click', this.handleClickOutside, true);\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n document.removeEventListener('click', this.handleClickOutside, true);\n }\n }, {\n key: 'handleClickOutside',\n value: function handleClickOutside(e) {\n var domNode = this.__domNode;\n if ((!domNode || !domNode.contains(e.target)) && this.__wrappedInstance && typeof this.__wrappedInstance.handleClickOutside === 'function') {\n this.__wrappedInstance.handleClickOutside(e);\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props = this.props,\n wrappedRef = _props.wrappedRef,\n rest = _objectWithoutProperties(_props, ['wrappedRef']);\n\n return React.createElement(WrappedComponent, _extends({}, rest, {\n ref: function ref(c) {\n _this2.__wrappedInstance = c;\n _this2.__domNode = ReactDOM.findDOMNode(c);\n wrappedRef && wrappedRef(c);\n }\n }));\n }\n }]);\n\n return EnhancedComponent;\n }(React.Component);\n\n EnhancedComponent.displayName = 'clickOutside(' + componentName + ')';\n\n return hoistNonReactStatic(EnhancedComponent, WrappedComponent);\n};","// eslint-disable-next-line import/no-unresolved\nmodule.exports = require('./lib');\n","// eslint-disable-next-line import/no-unresolved\nrequire('./lib/initialize');\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PureCalendarDay = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _object = require('object.assign');\n\nvar _object2 = _interopRequireDefault(_object);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactAddonsShallowCompare = require('react-addons-shallow-compare');\n\nvar _reactAddonsShallowCompare2 = _interopRequireDefault(_reactAddonsShallowCompare);\n\nvar _reactMomentProptypes = require('react-moment-proptypes');\n\nvar _reactMomentProptypes2 = _interopRequireDefault(_reactMomentProptypes);\n\nvar _airbnbPropTypes = require('airbnb-prop-types');\n\nvar _reactWithStyles = require('react-with-styles');\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _defaultPhrases = require('../defaultPhrases');\n\nvar _getPhrasePropTypes = require('../utils/getPhrasePropTypes');\n\nvar _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);\n\nvar _getCalendarDaySettings = require('../utils/getCalendarDaySettings');\n\nvar _getCalendarDaySettings2 = _interopRequireDefault(_getCalendarDaySettings);\n\nvar _ModifiersShape = require('../shapes/ModifiersShape');\n\nvar _ModifiersShape2 = _interopRequireDefault(_ModifiersShape);\n\nvar _constants = require('../constants');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar propTypes = (0, _airbnbPropTypes.forbidExtraProps)((0, _object2['default'])({}, _reactWithStyles.withStylesPropTypes, {\n day: _reactMomentProptypes2['default'].momentObj,\n daySize: _airbnbPropTypes.nonNegativeInteger,\n isOutsideDay: _propTypes2['default'].bool,\n modifiers: _ModifiersShape2['default'],\n isFocused: _propTypes2['default'].bool,\n tabIndex: _propTypes2['default'].oneOf([0, -1]),\n onDayClick: _propTypes2['default'].func,\n onDayMouseEnter: _propTypes2['default'].func,\n onDayMouseLeave: _propTypes2['default'].func,\n renderDayContents: _propTypes2['default'].func,\n ariaLabelFormat: _propTypes2['default'].string,\n\n // internationalization\n phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.CalendarDayPhrases))\n}));\n\nvar defaultProps = {\n day: (0, _moment2['default'])(),\n daySize: _constants.DAY_SIZE,\n isOutsideDay: false,\n modifiers: new Set(),\n isFocused: false,\n tabIndex: -1,\n onDayClick: function () {\n function onDayClick() {}\n\n return onDayClick;\n }(),\n onDayMouseEnter: function () {\n function onDayMouseEnter() {}\n\n return onDayMouseEnter;\n }(),\n onDayMouseLeave: function () {\n function onDayMouseLeave() {}\n\n return onDayMouseLeave;\n }(),\n\n renderDayContents: null,\n ariaLabelFormat: 'dddd, LL',\n\n // internationalization\n phrases: _defaultPhrases.CalendarDayPhrases\n};\n\nvar CalendarDay = function (_React$Component) {\n _inherits(CalendarDay, _React$Component);\n\n function CalendarDay() {\n var _ref;\n\n _classCallCheck(this, CalendarDay);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var _this = _possibleConstructorReturn(this, (_ref = CalendarDay.__proto__ || Object.getPrototypeOf(CalendarDay)).call.apply(_ref, [this].concat(args)));\n\n _this.setButtonRef = _this.setButtonRef.bind(_this);\n return _this;\n }\n\n _createClass(CalendarDay, [{\n key: 'shouldComponentUpdate',\n value: function () {\n function shouldComponentUpdate(nextProps, nextState) {\n return (0, _reactAddonsShallowCompare2['default'])(this, nextProps, nextState);\n }\n\n return shouldComponentUpdate;\n }()\n }, {\n key: 'componentDidUpdate',\n value: function () {\n function componentDidUpdate(prevProps) {\n var _props = this.props,\n isFocused = _props.isFocused,\n tabIndex = _props.tabIndex;\n\n if (tabIndex === 0) {\n if (isFocused || tabIndex !== prevProps.tabIndex) {\n this.buttonRef.focus();\n }\n }\n }\n\n return componentDidUpdate;\n }()\n }, {\n key: 'onDayClick',\n value: function () {\n function onDayClick(day, e) {\n var onDayClick = this.props.onDayClick;\n\n onDayClick(day, e);\n }\n\n return onDayClick;\n }()\n }, {\n key: 'onDayMouseEnter',\n value: function () {\n function onDayMouseEnter(day, e) {\n var onDayMouseEnter = this.props.onDayMouseEnter;\n\n onDayMouseEnter(day, e);\n }\n\n return onDayMouseEnter;\n }()\n }, {\n key: 'onDayMouseLeave',\n value: function () {\n function onDayMouseLeave(day, e) {\n var onDayMouseLeave = this.props.onDayMouseLeave;\n\n onDayMouseLeave(day, e);\n }\n\n return onDayMouseLeave;\n }()\n }, {\n key: 'onKeyDown',\n value: function () {\n function onKeyDown(day, e) {\n var onDayClick = this.props.onDayClick;\n var key = e.key;\n\n if (key === 'Enter' || key === ' ') {\n onDayClick(day, e);\n }\n }\n\n return onKeyDown;\n }()\n }, {\n key: 'setButtonRef',\n value: function () {\n function setButtonRef(ref) {\n this.buttonRef = ref;\n }\n\n return setButtonRef;\n }()\n }, {\n key: 'render',\n value: function () {\n function render() {\n var _this2 = this;\n\n var _props2 = this.props,\n day = _props2.day,\n ariaLabelFormat = _props2.ariaLabelFormat,\n daySize = _props2.daySize,\n isOutsideDay = _props2.isOutsideDay,\n modifiers = _props2.modifiers,\n renderDayContents = _props2.renderDayContents,\n tabIndex = _props2.tabIndex,\n styles = _props2.styles,\n phrases = _props2.phrases;\n\n\n if (!day) return _react2['default'].createElement('td', null);\n\n var _getCalendarDaySettin = (0, _getCalendarDaySettings2['default'])(day, ariaLabelFormat, daySize, modifiers, phrases),\n daySizeStyles = _getCalendarDaySettin.daySizeStyles,\n useDefaultCursor = _getCalendarDaySettin.useDefaultCursor,\n selected = _getCalendarDaySettin.selected,\n hoveredSpan = _getCalendarDaySettin.hoveredSpan,\n isOutsideRange = _getCalendarDaySettin.isOutsideRange,\n ariaLabel = _getCalendarDaySettin.ariaLabel;\n\n return _react2['default'].createElement(\n 'td',\n _extends({}, (0, _reactWithStyles.css)(styles.CalendarDay, useDefaultCursor && styles.CalendarDay__defaultCursor, styles.CalendarDay__default, isOutsideDay && styles.CalendarDay__outside, modifiers.has('today') && styles.CalendarDay__today, modifiers.has('first-day-of-week') && styles.CalendarDay__firstDayOfWeek, modifiers.has('last-day-of-week') && styles.CalendarDay__lastDayOfWeek, modifiers.has('hovered-offset') && styles.CalendarDay__hovered_offset, modifiers.has('highlighted-calendar') && styles.CalendarDay__highlighted_calendar, modifiers.has('blocked-minimum-nights') && styles.CalendarDay__blocked_minimum_nights, modifiers.has('blocked-calendar') && styles.CalendarDay__blocked_calendar, hoveredSpan && styles.CalendarDay__hovered_span, modifiers.has('selected-span') && styles.CalendarDay__selected_span, modifiers.has('last-in-range') && styles.CalendarDay__last_in_range, modifiers.has('selected-start') && styles.CalendarDay__selected_start, modifiers.has('selected-end') && styles.CalendarDay__selected_end, selected && styles.CalendarDay__selected, isOutsideRange && styles.CalendarDay__blocked_out_of_range, daySizeStyles), {\n role: 'button' // eslint-disable-line jsx-a11y/no-noninteractive-element-to-interactive-role\n , ref: this.setButtonRef,\n 'aria-label': ariaLabel,\n onMouseEnter: function () {\n function onMouseEnter(e) {\n _this2.onDayMouseEnter(day, e);\n }\n\n return onMouseEnter;\n }(),\n onMouseLeave: function () {\n function onMouseLeave(e) {\n _this2.onDayMouseLeave(day, e);\n }\n\n return onMouseLeave;\n }(),\n onMouseUp: function () {\n function onMouseUp(e) {\n e.currentTarget.blur();\n }\n\n return onMouseUp;\n }(),\n onClick: function () {\n function onClick(e) {\n _this2.onDayClick(day, e);\n }\n\n return onClick;\n }(),\n onKeyDown: function () {\n function onKeyDown(e) {\n _this2.onKeyDown(day, e);\n }\n\n return onKeyDown;\n }(),\n tabIndex: tabIndex\n }),\n renderDayContents ? renderDayContents(day, modifiers) : day.format('D')\n );\n }\n\n return render;\n }()\n }]);\n\n return CalendarDay;\n}(_react2['default'].Component);\n\nCalendarDay.propTypes = propTypes;\nCalendarDay.defaultProps = defaultProps;\n\nexports.PureCalendarDay = CalendarDay;\nexports['default'] = (0, _reactWithStyles.withStyles)(function (_ref2) {\n var _ref2$reactDates = _ref2.reactDates,\n color = _ref2$reactDates.color,\n font = _ref2$reactDates.font;\n return {\n CalendarDay: {\n boxSizing: 'border-box',\n cursor: 'pointer',\n fontSize: font.size,\n textAlign: 'center',\n\n ':active': {\n outline: 0\n }\n },\n\n CalendarDay__defaultCursor: {\n cursor: 'default'\n },\n\n CalendarDay__default: {\n border: '1px solid ' + String(color.core.borderLight),\n color: color.text,\n background: color.background,\n\n ':hover': {\n background: color.core.borderLight,\n border: '1px double ' + String(color.core.borderLight),\n color: 'inherit'\n }\n },\n\n CalendarDay__hovered_offset: {\n background: color.core.borderBright,\n border: '1px double ' + String(color.core.borderLight),\n color: 'inherit'\n },\n\n CalendarDay__outside: {\n border: 0,\n background: color.outside.backgroundColor,\n color: color.outside.color,\n\n ':hover': {\n border: 0\n }\n },\n\n CalendarDay__blocked_minimum_nights: {\n background: color.minimumNights.backgroundColor,\n border: '1px solid ' + String(color.minimumNights.borderColor),\n color: color.minimumNights.color,\n\n ':hover': {\n background: color.minimumNights.backgroundColor_hover,\n color: color.minimumNights.color_active\n },\n\n ':active': {\n background: color.minimumNights.backgroundColor_active,\n color: color.minimumNights.color_active\n }\n },\n\n CalendarDay__highlighted_calendar: {\n background: color.highlighted.backgroundColor,\n color: color.highlighted.color,\n\n ':hover': {\n background: color.highlighted.backgroundColor_hover,\n color: color.highlighted.color_active\n },\n\n ':active': {\n background: color.highlighted.backgroundColor_active,\n color: color.highlighted.color_active\n }\n },\n\n CalendarDay__selected_span: {\n background: color.selectedSpan.backgroundColor,\n border: '1px solid ' + String(color.selectedSpan.borderColor),\n color: color.selectedSpan.color,\n\n ':hover': {\n background: color.selectedSpan.backgroundColor_hover,\n border: '1px solid ' + String(color.selectedSpan.borderColor),\n color: color.selectedSpan.color_active\n },\n\n ':active': {\n background: color.selectedSpan.backgroundColor_active,\n border: '1px solid ' + String(color.selectedSpan.borderColor),\n color: color.selectedSpan.color_active\n }\n },\n\n CalendarDay__last_in_range: {\n borderRight: color.core.primary\n },\n\n CalendarDay__selected: {\n background: color.selected.backgroundColor,\n border: '1px solid ' + String(color.selected.borderColor),\n color: color.selected.color,\n\n ':hover': {\n background: color.selected.backgroundColor_hover,\n border: '1px solid ' + String(color.selected.borderColor),\n color: color.selected.color_active\n },\n\n ':active': {\n background: color.selected.backgroundColor_active,\n border: '1px solid ' + String(color.selected.borderColor),\n color: color.selected.color_active\n }\n },\n\n CalendarDay__hovered_span: {\n background: color.hoveredSpan.backgroundColor,\n border: '1px solid ' + String(color.hoveredSpan.borderColor),\n color: color.hoveredSpan.color,\n\n ':hover': {\n background: color.hoveredSpan.backgroundColor_hover,\n border: '1px solid ' + String(color.hoveredSpan.borderColor),\n color: color.hoveredSpan.color_active\n },\n\n ':active': {\n background: color.hoveredSpan.backgroundColor_active,\n border: '1px solid ' + String(color.hoveredSpan.borderColor),\n color: color.hoveredSpan.color_active\n }\n },\n\n CalendarDay__blocked_calendar: {\n background: color.blocked_calendar.backgroundColor,\n border: '1px solid ' + String(color.blocked_calendar.borderColor),\n color: color.blocked_calendar.color,\n\n ':hover': {\n background: color.blocked_calendar.backgroundColor_hover,\n border: '1px solid ' + String(color.blocked_calendar.borderColor),\n color: color.blocked_calendar.color_active\n },\n\n ':active': {\n background: color.blocked_calendar.backgroundColor_active,\n border: '1px solid ' + String(color.blocked_calendar.borderColor),\n color: color.blocked_calendar.color_active\n }\n },\n\n CalendarDay__blocked_out_of_range: {\n background: color.blocked_out_of_range.backgroundColor,\n border: '1px solid ' + String(color.blocked_out_of_range.borderColor),\n color: color.blocked_out_of_range.color,\n\n ':hover': {\n background: color.blocked_out_of_range.backgroundColor_hover,\n border: '1px solid ' + String(color.blocked_out_of_range.borderColor),\n color: color.blocked_out_of_range.color_active\n },\n\n ':active': {\n background: color.blocked_out_of_range.backgroundColor_active,\n border: '1px solid ' + String(color.blocked_out_of_range.borderColor),\n color: color.blocked_out_of_range.color_active\n }\n },\n\n CalendarDay__selected_start: {},\n CalendarDay__selected_end: {},\n CalendarDay__today: {},\n CalendarDay__firstDayOfWeek: {},\n CalendarDay__lastDayOfWeek: {}\n };\n})(CalendarDay);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar CalendarIcon = function () {\n function CalendarIcon(props) {\n return _react2['default'].createElement(\n 'svg',\n props,\n _react2['default'].createElement('path', {\n d: 'M107.2 1392.9h241.1v-241.1H107.2v241.1zm294.7 0h267.9v-241.1H401.9v241.1zm-294.7-294.7h241.1V830.4H107.2v267.8zm294.7 0h267.9V830.4H401.9v267.8zM107.2 776.8h241.1V535.7H107.2v241.1zm616.2 616.1h267.9v-241.1H723.4v241.1zM401.9 776.8h267.9V535.7H401.9v241.1zm642.9 616.1H1286v-241.1h-241.1v241.1zm-321.4-294.7h267.9V830.4H723.4v267.8zM428.7 375V133.9c0-7.3-2.7-13.5-8-18.8-5.3-5.3-11.6-8-18.8-8h-53.6c-7.3 0-13.5 2.7-18.8 8-5.3 5.3-8 11.6-8 18.8V375c0 7.3 2.7 13.5 8 18.8 5.3 5.3 11.6 8 18.8 8h53.6c7.3 0 13.5-2.7 18.8-8 5.3-5.3 8-11.5 8-18.8zm616.1 723.2H1286V830.4h-241.1v267.8zM723.4 776.8h267.9V535.7H723.4v241.1zm321.4 0H1286V535.7h-241.1v241.1zm26.8-401.8V133.9c0-7.3-2.7-13.5-8-18.8-5.3-5.3-11.6-8-18.8-8h-53.6c-7.3 0-13.5 2.7-18.8 8-5.3 5.3-8 11.6-8 18.8V375c0 7.3 2.7 13.5 8 18.8 5.3 5.3 11.6 8 18.8 8h53.6c7.3 0 13.5-2.7 18.8-8 5.4-5.3 8-11.5 8-18.8zm321.5-53.6v1071.4c0 29-10.6 54.1-31.8 75.3-21.2 21.2-46.3 31.8-75.3 31.8H107.2c-29 0-54.1-10.6-75.3-31.8C10.6 1447 0 1421.9 0 1392.9V321.4c0-29 10.6-54.1 31.8-75.3s46.3-31.8 75.3-31.8h107.2v-80.4c0-36.8 13.1-68.4 39.3-94.6S311.4 0 348.3 0h53.6c36.8 0 68.4 13.1 94.6 39.3 26.2 26.2 39.3 57.8 39.3 94.6v80.4h321.5v-80.4c0-36.8 13.1-68.4 39.3-94.6C922.9 13.1 954.4 0 991.3 0h53.6c36.8 0 68.4 13.1 94.6 39.3s39.3 57.8 39.3 94.6v80.4H1286c29 0 54.1 10.6 75.3 31.8 21.2 21.2 31.8 46.3 31.8 75.3z'\n })\n );\n }\n\n return CalendarIcon;\n}();\n\nCalendarIcon.defaultProps = {\n viewBox: '0 0 1393.1 1500'\n};\nexports['default'] = CalendarIcon;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _object = require('object.assign');\n\nvar _object2 = _interopRequireDefault(_object);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactAddonsShallowCompare = require('react-addons-shallow-compare');\n\nvar _reactAddonsShallowCompare2 = _interopRequireDefault(_reactAddonsShallowCompare);\n\nvar _reactMomentProptypes = require('react-moment-proptypes');\n\nvar _reactMomentProptypes2 = _interopRequireDefault(_reactMomentProptypes);\n\nvar _airbnbPropTypes = require('airbnb-prop-types');\n\nvar _reactWithStyles = require('react-with-styles');\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _defaultPhrases = require('../defaultPhrases');\n\nvar _getPhrasePropTypes = require('../utils/getPhrasePropTypes');\n\nvar _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);\n\nvar _CalendarWeek = require('./CalendarWeek');\n\nvar _CalendarWeek2 = _interopRequireDefault(_CalendarWeek);\n\nvar _CalendarDay = require('./CalendarDay');\n\nvar _CalendarDay2 = _interopRequireDefault(_CalendarDay);\n\nvar _calculateDimension = require('../utils/calculateDimension');\n\nvar _calculateDimension2 = _interopRequireDefault(_calculateDimension);\n\nvar _getCalendarMonthWeeks = require('../utils/getCalendarMonthWeeks');\n\nvar _getCalendarMonthWeeks2 = _interopRequireDefault(_getCalendarMonthWeeks);\n\nvar _isSameDay = require('../utils/isSameDay');\n\nvar _isSameDay2 = _interopRequireDefault(_isSameDay);\n\nvar _toISODateString = require('../utils/toISODateString');\n\nvar _toISODateString2 = _interopRequireDefault(_toISODateString);\n\nvar _ModifiersShape = require('../shapes/ModifiersShape');\n\nvar _ModifiersShape2 = _interopRequireDefault(_ModifiersShape);\n\nvar _ScrollableOrientationShape = require('../shapes/ScrollableOrientationShape');\n\nvar _ScrollableOrientationShape2 = _interopRequireDefault(_ScrollableOrientationShape);\n\nvar _DayOfWeekShape = require('../shapes/DayOfWeekShape');\n\nvar _DayOfWeekShape2 = _interopRequireDefault(_DayOfWeekShape);\n\nvar _constants = require('../constants');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /* eslint react/no-array-index-key: 0 */\n\nvar propTypes = (0, _airbnbPropTypes.forbidExtraProps)((0, _object2['default'])({}, _reactWithStyles.withStylesPropTypes, {\n month: _reactMomentProptypes2['default'].momentObj,\n horizontalMonthPadding: _airbnbPropTypes.nonNegativeInteger,\n isVisible: _propTypes2['default'].bool,\n enableOutsideDays: _propTypes2['default'].bool,\n modifiers: _propTypes2['default'].objectOf(_ModifiersShape2['default']),\n orientation: _ScrollableOrientationShape2['default'],\n daySize: _airbnbPropTypes.nonNegativeInteger,\n onDayClick: _propTypes2['default'].func,\n onDayMouseEnter: _propTypes2['default'].func,\n onDayMouseLeave: _propTypes2['default'].func,\n onMonthSelect: _propTypes2['default'].func,\n onYearSelect: _propTypes2['default'].func,\n renderMonthText: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'),\n renderCalendarDay: _propTypes2['default'].func,\n renderDayContents: _propTypes2['default'].func,\n renderMonthElement: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'),\n firstDayOfWeek: _DayOfWeekShape2['default'],\n setMonthTitleHeight: _propTypes2['default'].func,\n verticalBorderSpacing: _airbnbPropTypes.nonNegativeInteger,\n\n focusedDate: _reactMomentProptypes2['default'].momentObj, // indicates focusable day\n isFocused: _propTypes2['default'].bool, // indicates whether or not to move focus to focusable day\n\n // i18n\n monthFormat: _propTypes2['default'].string,\n phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.CalendarDayPhrases)),\n dayAriaLabelFormat: _propTypes2['default'].string\n}));\n\nvar defaultProps = {\n month: (0, _moment2['default'])(),\n horizontalMonthPadding: 13,\n isVisible: true,\n enableOutsideDays: false,\n modifiers: {},\n orientation: _constants.HORIZONTAL_ORIENTATION,\n daySize: _constants.DAY_SIZE,\n onDayClick: function () {\n function onDayClick() {}\n\n return onDayClick;\n }(),\n onDayMouseEnter: function () {\n function onDayMouseEnter() {}\n\n return onDayMouseEnter;\n }(),\n onDayMouseLeave: function () {\n function onDayMouseLeave() {}\n\n return onDayMouseLeave;\n }(),\n onMonthSelect: function () {\n function onMonthSelect() {}\n\n return onMonthSelect;\n }(),\n onYearSelect: function () {\n function onYearSelect() {}\n\n return onYearSelect;\n }(),\n\n renderMonthText: null,\n renderCalendarDay: function () {\n function renderCalendarDay(props) {\n return _react2['default'].createElement(_CalendarDay2['default'], props);\n }\n\n return renderCalendarDay;\n }(),\n renderDayContents: null,\n renderMonthElement: null,\n firstDayOfWeek: null,\n setMonthTitleHeight: null,\n\n focusedDate: null,\n isFocused: false,\n\n // i18n\n monthFormat: 'MMMM YYYY', // english locale\n phrases: _defaultPhrases.CalendarDayPhrases,\n dayAriaLabelFormat: undefined,\n verticalBorderSpacing: undefined\n};\n\nvar CalendarMonth = function (_React$Component) {\n _inherits(CalendarMonth, _React$Component);\n\n function CalendarMonth(props) {\n _classCallCheck(this, CalendarMonth);\n\n var _this = _possibleConstructorReturn(this, (CalendarMonth.__proto__ || Object.getPrototypeOf(CalendarMonth)).call(this, props));\n\n _this.state = {\n weeks: (0, _getCalendarMonthWeeks2['default'])(props.month, props.enableOutsideDays, props.firstDayOfWeek == null ? _moment2['default'].localeData().firstDayOfWeek() : props.firstDayOfWeek)\n };\n\n _this.setCaptionRef = _this.setCaptionRef.bind(_this);\n _this.setMonthTitleHeight = _this.setMonthTitleHeight.bind(_this);\n return _this;\n }\n\n _createClass(CalendarMonth, [{\n key: 'componentDidMount',\n value: function () {\n function componentDidMount() {\n this.setMonthTitleHeightTimeout = setTimeout(this.setMonthTitleHeight, 0);\n }\n\n return componentDidMount;\n }()\n }, {\n key: 'componentWillReceiveProps',\n value: function () {\n function componentWillReceiveProps(nextProps) {\n var month = nextProps.month,\n enableOutsideDays = nextProps.enableOutsideDays,\n firstDayOfWeek = nextProps.firstDayOfWeek;\n var _props = this.props,\n prevMonth = _props.month,\n prevEnableOutsideDays = _props.enableOutsideDays,\n prevFirstDayOfWeek = _props.firstDayOfWeek;\n\n if (!month.isSame(prevMonth) || enableOutsideDays !== prevEnableOutsideDays || firstDayOfWeek !== prevFirstDayOfWeek) {\n this.setState({\n weeks: (0, _getCalendarMonthWeeks2['default'])(month, enableOutsideDays, firstDayOfWeek == null ? _moment2['default'].localeData().firstDayOfWeek() : firstDayOfWeek)\n });\n }\n }\n\n return componentWillReceiveProps;\n }()\n }, {\n key: 'shouldComponentUpdate',\n value: function () {\n function shouldComponentUpdate(nextProps, nextState) {\n return (0, _reactAddonsShallowCompare2['default'])(this, nextProps, nextState);\n }\n\n return shouldComponentUpdate;\n }()\n }, {\n key: 'componentWillUnmount',\n value: function () {\n function componentWillUnmount() {\n if (this.setMonthTitleHeightTimeout) {\n clearTimeout(this.setMonthTitleHeightTimeout);\n }\n }\n\n return componentWillUnmount;\n }()\n }, {\n key: 'setMonthTitleHeight',\n value: function () {\n function setMonthTitleHeight() {\n var setMonthTitleHeight = this.props.setMonthTitleHeight;\n\n if (setMonthTitleHeight) {\n var captionHeight = (0, _calculateDimension2['default'])(this.captionRef, 'height', true, true);\n setMonthTitleHeight(captionHeight);\n }\n }\n\n return setMonthTitleHeight;\n }()\n }, {\n key: 'setCaptionRef',\n value: function () {\n function setCaptionRef(ref) {\n this.captionRef = ref;\n }\n\n return setCaptionRef;\n }()\n }, {\n key: 'render',\n value: function () {\n function render() {\n var _props2 = this.props,\n dayAriaLabelFormat = _props2.dayAriaLabelFormat,\n daySize = _props2.daySize,\n focusedDate = _props2.focusedDate,\n horizontalMonthPadding = _props2.horizontalMonthPadding,\n isFocused = _props2.isFocused,\n isVisible = _props2.isVisible,\n modifiers = _props2.modifiers,\n month = _props2.month,\n monthFormat = _props2.monthFormat,\n onDayClick = _props2.onDayClick,\n onDayMouseEnter = _props2.onDayMouseEnter,\n onDayMouseLeave = _props2.onDayMouseLeave,\n onMonthSelect = _props2.onMonthSelect,\n onYearSelect = _props2.onYearSelect,\n orientation = _props2.orientation,\n phrases = _props2.phrases,\n renderCalendarDay = _props2.renderCalendarDay,\n renderDayContents = _props2.renderDayContents,\n renderMonthElement = _props2.renderMonthElement,\n renderMonthText = _props2.renderMonthText,\n styles = _props2.styles,\n verticalBorderSpacing = _props2.verticalBorderSpacing;\n var weeks = this.state.weeks;\n\n var monthTitle = renderMonthText ? renderMonthText(month) : month.format(monthFormat);\n\n var verticalScrollable = orientation === _constants.VERTICAL_SCROLLABLE;\n\n return _react2['default'].createElement(\n 'div',\n _extends({}, (0, _reactWithStyles.css)(styles.CalendarMonth, { padding: '0 ' + String(horizontalMonthPadding) + 'px' }), {\n 'data-visible': isVisible\n }),\n _react2['default'].createElement(\n 'div',\n _extends({\n ref: this.setCaptionRef\n }, (0, _reactWithStyles.css)(styles.CalendarMonth_caption, verticalScrollable && styles.CalendarMonth_caption__verticalScrollable)),\n renderMonthElement ? renderMonthElement({ month: month, onMonthSelect: onMonthSelect, onYearSelect: onYearSelect }) : _react2['default'].createElement(\n 'strong',\n null,\n monthTitle\n )\n ),\n _react2['default'].createElement(\n 'table',\n _extends({}, (0, _reactWithStyles.css)(!verticalBorderSpacing && styles.CalendarMonth_table, verticalBorderSpacing && styles.CalendarMonth_verticalSpacing, verticalBorderSpacing && { borderSpacing: '0px ' + String(verticalBorderSpacing) + 'px' }), {\n role: 'presentation'\n }),\n _react2['default'].createElement(\n 'tbody',\n null,\n weeks.map(function (week, i) {\n return _react2['default'].createElement(\n _CalendarWeek2['default'],\n { key: i },\n week.map(function (day, dayOfWeek) {\n return renderCalendarDay({\n key: dayOfWeek,\n day: day,\n daySize: daySize,\n isOutsideDay: !day || day.month() !== month.month(),\n tabIndex: isVisible && (0, _isSameDay2['default'])(day, focusedDate) ? 0 : -1,\n isFocused: isFocused,\n onDayMouseEnter: onDayMouseEnter,\n onDayMouseLeave: onDayMouseLeave,\n onDayClick: onDayClick,\n renderDayContents: renderDayContents,\n phrases: phrases,\n modifiers: modifiers[(0, _toISODateString2['default'])(day)],\n ariaLabelFormat: dayAriaLabelFormat\n });\n })\n );\n })\n )\n )\n );\n }\n\n return render;\n }()\n }]);\n\n return CalendarMonth;\n}(_react2['default'].Component);\n\nCalendarMonth.propTypes = propTypes;\nCalendarMonth.defaultProps = defaultProps;\n\nexports['default'] = (0, _reactWithStyles.withStyles)(function (_ref) {\n var _ref$reactDates = _ref.reactDates,\n color = _ref$reactDates.color,\n font = _ref$reactDates.font,\n spacing = _ref$reactDates.spacing;\n return {\n CalendarMonth: {\n background: color.background,\n textAlign: 'center',\n verticalAlign: 'top',\n userSelect: 'none'\n },\n\n CalendarMonth_table: {\n borderCollapse: 'collapse',\n borderSpacing: 0\n },\n\n CalendarMonth_verticalSpacing: {\n borderCollapse: 'separate'\n },\n\n CalendarMonth_caption: {\n color: color.text,\n fontSize: font.captionSize,\n textAlign: 'center',\n paddingTop: spacing.captionPaddingTop,\n paddingBottom: spacing.captionPaddingBottom,\n captionSide: 'initial'\n },\n\n CalendarMonth_caption__verticalScrollable: {\n paddingTop: 12,\n paddingBottom: 7\n }\n };\n})(CalendarMonth);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _object = require('object.assign');\n\nvar _object2 = _interopRequireDefault(_object);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactAddonsShallowCompare = require('react-addons-shallow-compare');\n\nvar _reactAddonsShallowCompare2 = _interopRequireDefault(_reactAddonsShallowCompare);\n\nvar _reactMomentProptypes = require('react-moment-proptypes');\n\nvar _reactMomentProptypes2 = _interopRequireDefault(_reactMomentProptypes);\n\nvar _airbnbPropTypes = require('airbnb-prop-types');\n\nvar _reactWithStyles = require('react-with-styles');\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _consolidatedEvents = require('consolidated-events');\n\nvar _defaultPhrases = require('../defaultPhrases');\n\nvar _getPhrasePropTypes = require('../utils/getPhrasePropTypes');\n\nvar _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);\n\nvar _CalendarMonth = require('./CalendarMonth');\n\nvar _CalendarMonth2 = _interopRequireDefault(_CalendarMonth);\n\nvar _isTransitionEndSupported = require('../utils/isTransitionEndSupported');\n\nvar _isTransitionEndSupported2 = _interopRequireDefault(_isTransitionEndSupported);\n\nvar _getTransformStyles = require('../utils/getTransformStyles');\n\nvar _getTransformStyles2 = _interopRequireDefault(_getTransformStyles);\n\nvar _getCalendarMonthWidth = require('../utils/getCalendarMonthWidth');\n\nvar _getCalendarMonthWidth2 = _interopRequireDefault(_getCalendarMonthWidth);\n\nvar _toISOMonthString = require('../utils/toISOMonthString');\n\nvar _toISOMonthString2 = _interopRequireDefault(_toISOMonthString);\n\nvar _isPrevMonth = require('../utils/isPrevMonth');\n\nvar _isPrevMonth2 = _interopRequireDefault(_isPrevMonth);\n\nvar _isNextMonth = require('../utils/isNextMonth');\n\nvar _isNextMonth2 = _interopRequireDefault(_isNextMonth);\n\nvar _ModifiersShape = require('../shapes/ModifiersShape');\n\nvar _ModifiersShape2 = _interopRequireDefault(_ModifiersShape);\n\nvar _ScrollableOrientationShape = require('../shapes/ScrollableOrientationShape');\n\nvar _ScrollableOrientationShape2 = _interopRequireDefault(_ScrollableOrientationShape);\n\nvar _DayOfWeekShape = require('../shapes/DayOfWeekShape');\n\nvar _DayOfWeekShape2 = _interopRequireDefault(_DayOfWeekShape);\n\nvar _constants = require('../constants');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar propTypes = (0, _airbnbPropTypes.forbidExtraProps)((0, _object2['default'])({}, _reactWithStyles.withStylesPropTypes, {\n enableOutsideDays: _propTypes2['default'].bool,\n firstVisibleMonthIndex: _propTypes2['default'].number,\n horizontalMonthPadding: _airbnbPropTypes.nonNegativeInteger,\n initialMonth: _reactMomentProptypes2['default'].momentObj,\n isAnimating: _propTypes2['default'].bool,\n numberOfMonths: _propTypes2['default'].number,\n modifiers: _propTypes2['default'].objectOf(_propTypes2['default'].objectOf(_ModifiersShape2['default'])),\n orientation: _ScrollableOrientationShape2['default'],\n onDayClick: _propTypes2['default'].func,\n onDayMouseEnter: _propTypes2['default'].func,\n onDayMouseLeave: _propTypes2['default'].func,\n onMonthTransitionEnd: _propTypes2['default'].func,\n onMonthChange: _propTypes2['default'].func,\n onYearChange: _propTypes2['default'].func,\n renderMonthText: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'),\n renderCalendarDay: _propTypes2['default'].func,\n renderDayContents: _propTypes2['default'].func,\n translationValue: _propTypes2['default'].number,\n renderMonthElement: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'),\n daySize: _airbnbPropTypes.nonNegativeInteger,\n focusedDate: _reactMomentProptypes2['default'].momentObj, // indicates focusable day\n isFocused: _propTypes2['default'].bool, // indicates whether or not to move focus to focusable day\n firstDayOfWeek: _DayOfWeekShape2['default'],\n setMonthTitleHeight: _propTypes2['default'].func,\n isRTL: _propTypes2['default'].bool,\n transitionDuration: _airbnbPropTypes.nonNegativeInteger,\n verticalBorderSpacing: _airbnbPropTypes.nonNegativeInteger,\n\n // i18n\n monthFormat: _propTypes2['default'].string,\n phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.CalendarDayPhrases)),\n dayAriaLabelFormat: _propTypes2['default'].string\n}));\n\nvar defaultProps = {\n enableOutsideDays: false,\n firstVisibleMonthIndex: 0,\n horizontalMonthPadding: 13,\n initialMonth: (0, _moment2['default'])(),\n isAnimating: false,\n numberOfMonths: 1,\n modifiers: {},\n orientation: _constants.HORIZONTAL_ORIENTATION,\n onDayClick: function () {\n function onDayClick() {}\n\n return onDayClick;\n }(),\n onDayMouseEnter: function () {\n function onDayMouseEnter() {}\n\n return onDayMouseEnter;\n }(),\n onDayMouseLeave: function () {\n function onDayMouseLeave() {}\n\n return onDayMouseLeave;\n }(),\n onMonthChange: function () {\n function onMonthChange() {}\n\n return onMonthChange;\n }(),\n onYearChange: function () {\n function onYearChange() {}\n\n return onYearChange;\n }(),\n onMonthTransitionEnd: function () {\n function onMonthTransitionEnd() {}\n\n return onMonthTransitionEnd;\n }(),\n\n renderMonthText: null,\n renderCalendarDay: undefined,\n renderDayContents: null,\n translationValue: null,\n renderMonthElement: null,\n daySize: _constants.DAY_SIZE,\n focusedDate: null,\n isFocused: false,\n firstDayOfWeek: null,\n setMonthTitleHeight: null,\n isRTL: false,\n transitionDuration: 200,\n verticalBorderSpacing: undefined,\n\n // i18n\n monthFormat: 'MMMM YYYY', // english locale\n phrases: _defaultPhrases.CalendarDayPhrases,\n dayAriaLabelFormat: undefined\n};\n\nfunction getMonths(initialMonth, numberOfMonths, withoutTransitionMonths) {\n var month = initialMonth.clone();\n if (!withoutTransitionMonths) month = month.subtract(1, 'month');\n\n var months = [];\n for (var i = 0; i < (withoutTransitionMonths ? numberOfMonths : numberOfMonths + 2); i += 1) {\n months.push(month);\n month = month.clone().add(1, 'month');\n }\n\n return months;\n}\n\nvar CalendarMonthGrid = function (_React$Component) {\n _inherits(CalendarMonthGrid, _React$Component);\n\n function CalendarMonthGrid(props) {\n _classCallCheck(this, CalendarMonthGrid);\n\n var _this = _possibleConstructorReturn(this, (CalendarMonthGrid.__proto__ || Object.getPrototypeOf(CalendarMonthGrid)).call(this, props));\n\n var withoutTransitionMonths = props.orientation === _constants.VERTICAL_SCROLLABLE;\n _this.state = {\n months: getMonths(props.initialMonth, props.numberOfMonths, withoutTransitionMonths)\n };\n\n _this.isTransitionEndSupported = (0, _isTransitionEndSupported2['default'])();\n _this.onTransitionEnd = _this.onTransitionEnd.bind(_this);\n _this.setContainerRef = _this.setContainerRef.bind(_this);\n\n _this.locale = _moment2['default'].locale();\n _this.onMonthSelect = _this.onMonthSelect.bind(_this);\n _this.onYearSelect = _this.onYearSelect.bind(_this);\n return _this;\n }\n\n _createClass(CalendarMonthGrid, [{\n key: 'componentDidMount',\n value: function () {\n function componentDidMount() {\n this.removeEventListener = (0, _consolidatedEvents.addEventListener)(this.container, 'transitionend', this.onTransitionEnd);\n }\n\n return componentDidMount;\n }()\n }, {\n key: 'componentWillReceiveProps',\n value: function () {\n function componentWillReceiveProps(nextProps) {\n var _this2 = this;\n\n var initialMonth = nextProps.initialMonth,\n numberOfMonths = nextProps.numberOfMonths,\n orientation = nextProps.orientation;\n var months = this.state.months;\n var _props = this.props,\n prevInitialMonth = _props.initialMonth,\n prevNumberOfMonths = _props.numberOfMonths;\n\n var hasMonthChanged = !prevInitialMonth.isSame(initialMonth, 'month');\n var hasNumberOfMonthsChanged = prevNumberOfMonths !== numberOfMonths;\n var newMonths = months;\n\n if (hasMonthChanged && !hasNumberOfMonthsChanged) {\n if ((0, _isNextMonth2['default'])(prevInitialMonth, initialMonth)) {\n newMonths = months.slice(1);\n newMonths.push(months[months.length - 1].clone().add(1, 'month'));\n } else if ((0, _isPrevMonth2['default'])(prevInitialMonth, initialMonth)) {\n newMonths = months.slice(0, months.length - 1);\n newMonths.unshift(months[0].clone().subtract(1, 'month'));\n } else {\n var withoutTransitionMonths = orientation === _constants.VERTICAL_SCROLLABLE;\n newMonths = getMonths(initialMonth, numberOfMonths, withoutTransitionMonths);\n }\n }\n\n if (hasNumberOfMonthsChanged) {\n var _withoutTransitionMonths = orientation === _constants.VERTICAL_SCROLLABLE;\n newMonths = getMonths(initialMonth, numberOfMonths, _withoutTransitionMonths);\n }\n\n var momentLocale = _moment2['default'].locale();\n if (this.locale !== momentLocale) {\n this.locale = momentLocale;\n newMonths = newMonths.map(function (m) {\n return m.locale(_this2.locale);\n });\n }\n\n this.setState({\n months: newMonths\n });\n }\n\n return componentWillReceiveProps;\n }()\n }, {\n key: 'shouldComponentUpdate',\n value: function () {\n function shouldComponentUpdate(nextProps, nextState) {\n return (0, _reactAddonsShallowCompare2['default'])(this, nextProps, nextState);\n }\n\n return shouldComponentUpdate;\n }()\n }, {\n key: 'componentDidUpdate',\n value: function () {\n function componentDidUpdate() {\n var _props2 = this.props,\n isAnimating = _props2.isAnimating,\n transitionDuration = _props2.transitionDuration,\n onMonthTransitionEnd = _props2.onMonthTransitionEnd;\n\n // For IE9, immediately call onMonthTransitionEnd instead of\n // waiting for the animation to complete. Similarly, if transitionDuration\n // is set to 0, also immediately invoke the onMonthTransitionEnd callback\n\n if ((!this.isTransitionEndSupported || !transitionDuration) && isAnimating) {\n onMonthTransitionEnd();\n }\n }\n\n return componentDidUpdate;\n }()\n }, {\n key: 'componentWillUnmount',\n value: function () {\n function componentWillUnmount() {\n if (this.removeEventListener) this.removeEventListener();\n }\n\n return componentWillUnmount;\n }()\n }, {\n key: 'onTransitionEnd',\n value: function () {\n function onTransitionEnd() {\n var onMonthTransitionEnd = this.props.onMonthTransitionEnd;\n\n onMonthTransitionEnd();\n }\n\n return onTransitionEnd;\n }()\n }, {\n key: 'onMonthSelect',\n value: function () {\n function onMonthSelect(currentMonth, newMonthVal) {\n var newMonth = currentMonth.clone();\n var _props3 = this.props,\n onMonthChange = _props3.onMonthChange,\n orientation = _props3.orientation;\n var months = this.state.months;\n\n var withoutTransitionMonths = orientation === _constants.VERTICAL_SCROLLABLE;\n var initialMonthSubtraction = months.indexOf(currentMonth);\n if (!withoutTransitionMonths) {\n initialMonthSubtraction -= 1;\n }\n newMonth.set('month', newMonthVal).subtract(initialMonthSubtraction, 'months');\n onMonthChange(newMonth);\n }\n\n return onMonthSelect;\n }()\n }, {\n key: 'onYearSelect',\n value: function () {\n function onYearSelect(currentMonth, newYearVal) {\n var newMonth = currentMonth.clone();\n var _props4 = this.props,\n onYearChange = _props4.onYearChange,\n orientation = _props4.orientation;\n var months = this.state.months;\n\n var withoutTransitionMonths = orientation === _constants.VERTICAL_SCROLLABLE;\n var initialMonthSubtraction = months.indexOf(currentMonth);\n if (!withoutTransitionMonths) {\n initialMonthSubtraction -= 1;\n }\n newMonth.set('year', newYearVal).subtract(initialMonthSubtraction, 'months');\n onYearChange(newMonth);\n }\n\n return onYearSelect;\n }()\n }, {\n key: 'setContainerRef',\n value: function () {\n function setContainerRef(ref) {\n this.container = ref;\n }\n\n return setContainerRef;\n }()\n }, {\n key: 'render',\n value: function () {\n function render() {\n var _this3 = this;\n\n var _props5 = this.props,\n enableOutsideDays = _props5.enableOutsideDays,\n firstVisibleMonthIndex = _props5.firstVisibleMonthIndex,\n horizontalMonthPadding = _props5.horizontalMonthPadding,\n isAnimating = _props5.isAnimating,\n modifiers = _props5.modifiers,\n numberOfMonths = _props5.numberOfMonths,\n monthFormat = _props5.monthFormat,\n orientation = _props5.orientation,\n translationValue = _props5.translationValue,\n daySize = _props5.daySize,\n onDayMouseEnter = _props5.onDayMouseEnter,\n onDayMouseLeave = _props5.onDayMouseLeave,\n onDayClick = _props5.onDayClick,\n renderMonthText = _props5.renderMonthText,\n renderCalendarDay = _props5.renderCalendarDay,\n renderDayContents = _props5.renderDayContents,\n renderMonthElement = _props5.renderMonthElement,\n onMonthTransitionEnd = _props5.onMonthTransitionEnd,\n firstDayOfWeek = _props5.firstDayOfWeek,\n focusedDate = _props5.focusedDate,\n isFocused = _props5.isFocused,\n isRTL = _props5.isRTL,\n styles = _props5.styles,\n phrases = _props5.phrases,\n dayAriaLabelFormat = _props5.dayAriaLabelFormat,\n transitionDuration = _props5.transitionDuration,\n verticalBorderSpacing = _props5.verticalBorderSpacing,\n setMonthTitleHeight = _props5.setMonthTitleHeight;\n var months = this.state.months;\n\n var isVertical = orientation === _constants.VERTICAL_ORIENTATION;\n var isVerticalScrollable = orientation === _constants.VERTICAL_SCROLLABLE;\n var isHorizontal = orientation === _constants.HORIZONTAL_ORIENTATION;\n\n var calendarMonthWidth = (0, _getCalendarMonthWidth2['default'])(daySize, horizontalMonthPadding);\n\n var width = isVertical || isVerticalScrollable ? calendarMonthWidth : (numberOfMonths + 2) * calendarMonthWidth;\n\n var transformType = isVertical || isVerticalScrollable ? 'translateY' : 'translateX';\n var transformValue = transformType + '(' + String(translationValue) + 'px)';\n\n return _react2['default'].createElement(\n 'div',\n _extends({}, (0, _reactWithStyles.css)(styles.CalendarMonthGrid, isHorizontal && styles.CalendarMonthGrid__horizontal, isVertical && styles.CalendarMonthGrid__vertical, isVerticalScrollable && styles.CalendarMonthGrid__vertical_scrollable, isAnimating && styles.CalendarMonthGrid__animating, isAnimating && transitionDuration && {\n transition: 'transform ' + String(transitionDuration) + 'ms ease-in-out'\n }, (0, _object2['default'])({}, (0, _getTransformStyles2['default'])(transformValue), {\n width: width\n })), {\n ref: this.setContainerRef,\n onTransitionEnd: onMonthTransitionEnd\n }),\n months.map(function (month, i) {\n var isVisible = i >= firstVisibleMonthIndex && i < firstVisibleMonthIndex + numberOfMonths;\n var hideForAnimation = i === 0 && !isVisible;\n var showForAnimation = i === 0 && isAnimating && isVisible;\n var monthString = (0, _toISOMonthString2['default'])(month);\n return _react2['default'].createElement(\n 'div',\n _extends({\n key: monthString\n }, (0, _reactWithStyles.css)(isHorizontal && styles.CalendarMonthGrid_month__horizontal, hideForAnimation && styles.CalendarMonthGrid_month__hideForAnimation, showForAnimation && !isVertical && !isRTL && {\n position: 'absolute',\n left: -calendarMonthWidth\n }, showForAnimation && !isVertical && isRTL && {\n position: 'absolute',\n right: 0\n }, showForAnimation && isVertical && {\n position: 'absolute',\n top: -translationValue\n }, !isVisible && !isAnimating && styles.CalendarMonthGrid_month__hidden)),\n _react2['default'].createElement(_CalendarMonth2['default'], {\n month: month,\n isVisible: isVisible,\n enableOutsideDays: enableOutsideDays,\n modifiers: modifiers[monthString],\n monthFormat: monthFormat,\n orientation: orientation,\n onDayMouseEnter: onDayMouseEnter,\n onDayMouseLeave: onDayMouseLeave,\n onDayClick: onDayClick,\n onMonthSelect: _this3.onMonthSelect,\n onYearSelect: _this3.onYearSelect,\n renderMonthText: renderMonthText,\n renderCalendarDay: renderCalendarDay,\n renderDayContents: renderDayContents,\n renderMonthElement: renderMonthElement,\n firstDayOfWeek: firstDayOfWeek,\n daySize: daySize,\n focusedDate: isVisible ? focusedDate : null,\n isFocused: isFocused,\n phrases: phrases,\n setMonthTitleHeight: setMonthTitleHeight,\n dayAriaLabelFormat: dayAriaLabelFormat,\n verticalBorderSpacing: verticalBorderSpacing,\n horizontalMonthPadding: horizontalMonthPadding\n })\n );\n })\n );\n }\n\n return render;\n }()\n }]);\n\n return CalendarMonthGrid;\n}(_react2['default'].Component);\n\nCalendarMonthGrid.propTypes = propTypes;\nCalendarMonthGrid.defaultProps = defaultProps;\n\nexports['default'] = (0, _reactWithStyles.withStyles)(function (_ref) {\n var _ref$reactDates = _ref.reactDates,\n color = _ref$reactDates.color,\n noScrollBarOnVerticalScrollable = _ref$reactDates.noScrollBarOnVerticalScrollable,\n spacing = _ref$reactDates.spacing,\n zIndex = _ref$reactDates.zIndex;\n return {\n CalendarMonthGrid: {\n background: color.background,\n textAlign: 'left',\n zIndex: zIndex\n },\n\n CalendarMonthGrid__animating: {\n zIndex: zIndex + 1\n },\n\n CalendarMonthGrid__horizontal: {\n position: 'absolute',\n left: spacing.dayPickerHorizontalPadding\n },\n\n CalendarMonthGrid__vertical: {\n margin: '0 auto'\n },\n\n CalendarMonthGrid__vertical_scrollable: (0, _object2['default'])({\n margin: '0 auto',\n overflowY: 'scroll'\n }, noScrollBarOnVerticalScrollable && {\n '-webkitOverflowScrolling': 'touch',\n '::-webkit-scrollbar': {\n '-webkit-appearance': 'none',\n display: 'none'\n }\n }),\n\n CalendarMonthGrid_month__horizontal: {\n display: 'inline-block',\n verticalAlign: 'top',\n minHeight: '100%'\n },\n\n CalendarMonthGrid_month__hideForAnimation: {\n position: 'absolute',\n zIndex: zIndex - 1,\n opacity: 0,\n pointerEvents: 'none'\n },\n\n CalendarMonthGrid_month__hidden: {\n visibility: 'hidden'\n }\n };\n})(CalendarMonthGrid);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports['default'] = CalendarWeek;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _airbnbPropTypes = require('airbnb-prop-types');\n\nvar _CalendarDay = require('./CalendarDay');\n\nvar _CalendarDay2 = _interopRequireDefault(_CalendarDay);\n\nvar _CustomizableCalendarDay = require('./CustomizableCalendarDay');\n\nvar _CustomizableCalendarDay2 = _interopRequireDefault(_CustomizableCalendarDay);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar propTypes = (0, _airbnbPropTypes.forbidExtraProps)({\n children: (0, _airbnbPropTypes.or)([(0, _airbnbPropTypes.childrenOfType)(_CalendarDay2['default']), (0, _airbnbPropTypes.childrenOfType)(_CustomizableCalendarDay2['default'])]).isRequired\n});\n\nfunction CalendarWeek(_ref) {\n var children = _ref.children;\n\n return _react2['default'].createElement(\n 'tr',\n null,\n children\n );\n}\n\nCalendarWeek.propTypes = propTypes;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar ChevronDown = function () {\n function ChevronDown(props) {\n return _react2['default'].createElement(\n 'svg',\n props,\n _react2['default'].createElement('path', {\n d: 'M967.5 288.5L514.3 740.7c-11 11-21 11-32 0L29.1 288.5c-4-5-6-11-6-16 0-13 10-23 23-23 6 0 11 2 15 7l437.2 436.2 437.2-436.2c4-5 9-7 16-7 6 0 11 2 16 7 9 10.9 9 21 0 32z'\n })\n );\n }\n\n return ChevronDown;\n}();\n\nChevronDown.defaultProps = {\n viewBox: '0 0 1000 1000'\n};\nexports['default'] = ChevronDown;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar ChevronUp = function () {\n function ChevronUp(props) {\n return _react2['default'].createElement(\n 'svg',\n props,\n _react2['default'].createElement('path', {\n d: 'M32.1 712.6l453.2-452.2c11-11 21-11 32 0l453.2 452.2c4 5 6 10 6 16 0 13-10 23-22 23-7 0-12-2-16-7L501.3 308.5 64.1 744.7c-4 5-9 7-15 7-7 0-12-2-17-7-9-11-9-21 0-32.1z'\n })\n );\n }\n\n return ChevronUp;\n}();\n\nChevronUp.defaultProps = {\n viewBox: '0 0 1000 1000'\n};\nexports['default'] = ChevronUp;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar CloseButton = function () {\n function CloseButton(props) {\n return _react2['default'].createElement(\n 'svg',\n props,\n _react2['default'].createElement('path', {\n fillRule: 'evenodd',\n d: 'M11.53.47a.75.75 0 0 0-1.061 0l-4.47 4.47L1.529.47A.75.75 0 1 0 .468 1.531l4.47 4.47-4.47 4.47a.75.75 0 1 0 1.061 1.061l4.47-4.47 4.47 4.47a.75.75 0 1 0 1.061-1.061l-4.47-4.47 4.47-4.47a.75.75 0 0 0 0-1.061z'\n })\n );\n }\n\n return CloseButton;\n}();\n\nCloseButton.defaultProps = {\n viewBox: '0 0 12 12'\n};\nexports['default'] = CloseButton;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PureCustomizableCalendarDay = exports.selectedStyles = exports.lastInRangeStyles = exports.selectedSpanStyles = exports.hoveredSpanStyles = exports.blockedOutOfRangeStyles = exports.blockedCalendarStyles = exports.blockedMinNightsStyles = exports.highlightedCalendarStyles = exports.outsideStyles = exports.defaultStyles = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _object = require('object.assign');\n\nvar _object2 = _interopRequireDefault(_object);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactAddonsShallowCompare = require('react-addons-shallow-compare');\n\nvar _reactAddonsShallowCompare2 = _interopRequireDefault(_reactAddonsShallowCompare);\n\nvar _reactMomentProptypes = require('react-moment-proptypes');\n\nvar _reactMomentProptypes2 = _interopRequireDefault(_reactMomentProptypes);\n\nvar _airbnbPropTypes = require('airbnb-prop-types');\n\nvar _reactWithStyles = require('react-with-styles');\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _defaultPhrases = require('../defaultPhrases');\n\nvar _getPhrasePropTypes = require('../utils/getPhrasePropTypes');\n\nvar _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);\n\nvar _getCalendarDaySettings = require('../utils/getCalendarDaySettings');\n\nvar _getCalendarDaySettings2 = _interopRequireDefault(_getCalendarDaySettings);\n\nvar _constants = require('../constants');\n\nvar _DefaultTheme = require('../theme/DefaultTheme');\n\nvar _DefaultTheme2 = _interopRequireDefault(_DefaultTheme);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar color = _DefaultTheme2['default'].reactDates.color;\n\n\nfunction getStyles(stylesObj, isHovered) {\n if (!stylesObj) return null;\n\n var hover = stylesObj.hover;\n\n if (isHovered && hover) {\n return hover;\n }\n\n return stylesObj;\n}\n\nvar DayStyleShape = _propTypes2['default'].shape({\n background: _propTypes2['default'].string,\n border: (0, _airbnbPropTypes.or)([_propTypes2['default'].string, _propTypes2['default'].number]),\n color: _propTypes2['default'].string,\n\n hover: _propTypes2['default'].shape({\n background: _propTypes2['default'].string,\n border: (0, _airbnbPropTypes.or)([_propTypes2['default'].string, _propTypes2['default'].number]),\n color: _propTypes2['default'].string\n })\n});\n\nvar propTypes = (0, _airbnbPropTypes.forbidExtraProps)((0, _object2['default'])({}, _reactWithStyles.withStylesPropTypes, {\n day: _reactMomentProptypes2['default'].momentObj,\n daySize: _airbnbPropTypes.nonNegativeInteger,\n isOutsideDay: _propTypes2['default'].bool,\n modifiers: _propTypes2['default'].instanceOf(Set),\n isFocused: _propTypes2['default'].bool,\n tabIndex: _propTypes2['default'].oneOf([0, -1]),\n onDayClick: _propTypes2['default'].func,\n onDayMouseEnter: _propTypes2['default'].func,\n onDayMouseLeave: _propTypes2['default'].func,\n renderDayContents: _propTypes2['default'].func,\n ariaLabelFormat: _propTypes2['default'].string,\n\n // style overrides\n defaultStyles: DayStyleShape,\n outsideStyles: DayStyleShape,\n todayStyles: DayStyleShape,\n firstDayOfWeekStyles: DayStyleShape,\n lastDayOfWeekStyles: DayStyleShape,\n highlightedCalendarStyles: DayStyleShape,\n blockedMinNightsStyles: DayStyleShape,\n blockedCalendarStyles: DayStyleShape,\n blockedOutOfRangeStyles: DayStyleShape,\n hoveredSpanStyles: DayStyleShape,\n selectedSpanStyles: DayStyleShape,\n lastInRangeStyles: DayStyleShape,\n selectedStyles: DayStyleShape,\n selectedStartStyles: DayStyleShape,\n selectedEndStyles: DayStyleShape,\n afterHoveredStartStyles: DayStyleShape,\n\n // internationalization\n phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.CalendarDayPhrases))\n}));\n\nvar defaultStyles = exports.defaultStyles = {\n border: '1px solid ' + String(color.core.borderLight),\n color: color.text,\n background: color.background,\n\n hover: {\n background: color.core.borderLight,\n border: '1px double ' + String(color.core.borderLight),\n color: 'inherit'\n }\n};\n\nvar outsideStyles = exports.outsideStyles = {\n background: color.outside.backgroundColor,\n border: 0,\n color: color.outside.color\n};\n\nvar highlightedCalendarStyles = exports.highlightedCalendarStyles = {\n background: color.highlighted.backgroundColor,\n color: color.highlighted.color,\n\n hover: {\n background: color.highlighted.backgroundColor_hover,\n color: color.highlighted.color_active\n }\n};\n\nvar blockedMinNightsStyles = exports.blockedMinNightsStyles = {\n background: color.minimumNights.backgroundColor,\n border: '1px solid ' + String(color.minimumNights.borderColor),\n color: color.minimumNights.color,\n\n hover: {\n background: color.minimumNights.backgroundColor_hover,\n color: color.minimumNights.color_active\n }\n};\n\nvar blockedCalendarStyles = exports.blockedCalendarStyles = {\n background: color.blocked_calendar.backgroundColor,\n border: '1px solid ' + String(color.blocked_calendar.borderColor),\n color: color.blocked_calendar.color,\n\n hover: {\n background: color.blocked_calendar.backgroundColor_hover,\n border: '1px solid ' + String(color.blocked_calendar.borderColor),\n color: color.blocked_calendar.color_active\n }\n};\n\nvar blockedOutOfRangeStyles = exports.blockedOutOfRangeStyles = {\n background: color.blocked_out_of_range.backgroundColor,\n border: '1px solid ' + String(color.blocked_out_of_range.borderColor),\n color: color.blocked_out_of_range.color,\n\n hover: {\n background: color.blocked_out_of_range.backgroundColor_hover,\n border: '1px solid ' + String(color.blocked_out_of_range.borderColor),\n color: color.blocked_out_of_range.color_active\n }\n};\n\nvar hoveredSpanStyles = exports.hoveredSpanStyles = {\n background: color.hoveredSpan.backgroundColor,\n border: '1px solid ' + String(color.hoveredSpan.borderColor),\n color: color.hoveredSpan.color,\n\n hover: {\n background: color.hoveredSpan.backgroundColor_hover,\n border: '1px solid ' + String(color.hoveredSpan.borderColor),\n color: color.hoveredSpan.color_active\n }\n};\n\nvar selectedSpanStyles = exports.selectedSpanStyles = {\n background: color.selectedSpan.backgroundColor,\n border: '1px solid ' + String(color.selectedSpan.borderColor),\n color: color.selectedSpan.color,\n\n hover: {\n background: color.selectedSpan.backgroundColor_hover,\n border: '1px solid ' + String(color.selectedSpan.borderColor),\n color: color.selectedSpan.color_active\n }\n};\n\nvar lastInRangeStyles = exports.lastInRangeStyles = {\n borderRight: color.core.primary\n};\n\nvar selectedStyles = exports.selectedStyles = {\n background: color.selected.backgroundColor,\n border: '1px solid ' + String(color.selected.borderColor),\n color: color.selected.color,\n\n hover: {\n background: color.selected.backgroundColor_hover,\n border: '1px solid ' + String(color.selected.borderColor),\n color: color.selected.color_active\n }\n};\n\nvar defaultProps = {\n day: (0, _moment2['default'])(),\n daySize: _constants.DAY_SIZE,\n isOutsideDay: false,\n modifiers: new Set(),\n isFocused: false,\n tabIndex: -1,\n onDayClick: function () {\n function onDayClick() {}\n\n return onDayClick;\n }(),\n onDayMouseEnter: function () {\n function onDayMouseEnter() {}\n\n return onDayMouseEnter;\n }(),\n onDayMouseLeave: function () {\n function onDayMouseLeave() {}\n\n return onDayMouseLeave;\n }(),\n\n renderDayContents: null,\n ariaLabelFormat: 'dddd, LL',\n\n // style defaults\n defaultStyles: defaultStyles,\n outsideStyles: outsideStyles,\n todayStyles: {},\n highlightedCalendarStyles: highlightedCalendarStyles,\n blockedMinNightsStyles: blockedMinNightsStyles,\n blockedCalendarStyles: blockedCalendarStyles,\n blockedOutOfRangeStyles: blockedOutOfRangeStyles,\n hoveredSpanStyles: hoveredSpanStyles,\n selectedSpanStyles: selectedSpanStyles,\n lastInRangeStyles: lastInRangeStyles,\n selectedStyles: selectedStyles,\n selectedStartStyles: {},\n selectedEndStyles: {},\n afterHoveredStartStyles: {},\n firstDayOfWeekStyles: {},\n lastDayOfWeekStyles: {},\n\n // internationalization\n phrases: _defaultPhrases.CalendarDayPhrases\n};\n\nvar CustomizableCalendarDay = function (_React$Component) {\n _inherits(CustomizableCalendarDay, _React$Component);\n\n function CustomizableCalendarDay() {\n var _ref;\n\n _classCallCheck(this, CustomizableCalendarDay);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var _this = _possibleConstructorReturn(this, (_ref = CustomizableCalendarDay.__proto__ || Object.getPrototypeOf(CustomizableCalendarDay)).call.apply(_ref, [this].concat(args)));\n\n _this.state = {\n isHovered: false\n };\n\n _this.setButtonRef = _this.setButtonRef.bind(_this);\n return _this;\n }\n\n _createClass(CustomizableCalendarDay, [{\n key: 'shouldComponentUpdate',\n value: function () {\n function shouldComponentUpdate(nextProps, nextState) {\n return (0, _reactAddonsShallowCompare2['default'])(this, nextProps, nextState);\n }\n\n return shouldComponentUpdate;\n }()\n }, {\n key: 'componentDidUpdate',\n value: function () {\n function componentDidUpdate(prevProps) {\n var _props = this.props,\n isFocused = _props.isFocused,\n tabIndex = _props.tabIndex;\n\n if (tabIndex === 0) {\n if (isFocused || tabIndex !== prevProps.tabIndex) {\n this.buttonRef.focus();\n }\n }\n }\n\n return componentDidUpdate;\n }()\n }, {\n key: 'onDayClick',\n value: function () {\n function onDayClick(day, e) {\n var onDayClick = this.props.onDayClick;\n\n onDayClick(day, e);\n }\n\n return onDayClick;\n }()\n }, {\n key: 'onDayMouseEnter',\n value: function () {\n function onDayMouseEnter(day, e) {\n var onDayMouseEnter = this.props.onDayMouseEnter;\n\n this.setState({ isHovered: true });\n onDayMouseEnter(day, e);\n }\n\n return onDayMouseEnter;\n }()\n }, {\n key: 'onDayMouseLeave',\n value: function () {\n function onDayMouseLeave(day, e) {\n var onDayMouseLeave = this.props.onDayMouseLeave;\n\n this.setState({ isHovered: false });\n onDayMouseLeave(day, e);\n }\n\n return onDayMouseLeave;\n }()\n }, {\n key: 'onKeyDown',\n value: function () {\n function onKeyDown(day, e) {\n var onDayClick = this.props.onDayClick;\n var key = e.key;\n\n if (key === 'Enter' || key === ' ') {\n onDayClick(day, e);\n }\n }\n\n return onKeyDown;\n }()\n }, {\n key: 'setButtonRef',\n value: function () {\n function setButtonRef(ref) {\n this.buttonRef = ref;\n }\n\n return setButtonRef;\n }()\n }, {\n key: 'render',\n value: function () {\n function render() {\n var _this2 = this;\n\n var _props2 = this.props,\n day = _props2.day,\n ariaLabelFormat = _props2.ariaLabelFormat,\n daySize = _props2.daySize,\n isOutsideDay = _props2.isOutsideDay,\n modifiers = _props2.modifiers,\n tabIndex = _props2.tabIndex,\n renderDayContents = _props2.renderDayContents,\n styles = _props2.styles,\n phrases = _props2.phrases,\n defaultStylesWithHover = _props2.defaultStyles,\n outsideStylesWithHover = _props2.outsideStyles,\n todayStylesWithHover = _props2.todayStyles,\n firstDayOfWeekStylesWithHover = _props2.firstDayOfWeekStyles,\n lastDayOfWeekStylesWithHover = _props2.lastDayOfWeekStyles,\n highlightedCalendarStylesWithHover = _props2.highlightedCalendarStyles,\n blockedMinNightsStylesWithHover = _props2.blockedMinNightsStyles,\n blockedCalendarStylesWithHover = _props2.blockedCalendarStyles,\n blockedOutOfRangeStylesWithHover = _props2.blockedOutOfRangeStyles,\n hoveredSpanStylesWithHover = _props2.hoveredSpanStyles,\n selectedSpanStylesWithHover = _props2.selectedSpanStyles,\n lastInRangeStylesWithHover = _props2.lastInRangeStyles,\n selectedStylesWithHover = _props2.selectedStyles,\n selectedStartStylesWithHover = _props2.selectedStartStyles,\n selectedEndStylesWithHover = _props2.selectedEndStyles,\n afterHoveredStartStylesWithHover = _props2.afterHoveredStartStyles;\n var isHovered = this.state.isHovered;\n\n\n if (!day) return _react2['default'].createElement('td', null);\n\n var _getCalendarDaySettin = (0, _getCalendarDaySettings2['default'])(day, ariaLabelFormat, daySize, modifiers, phrases),\n daySizeStyles = _getCalendarDaySettin.daySizeStyles,\n useDefaultCursor = _getCalendarDaySettin.useDefaultCursor,\n selected = _getCalendarDaySettin.selected,\n hoveredSpan = _getCalendarDaySettin.hoveredSpan,\n isOutsideRange = _getCalendarDaySettin.isOutsideRange,\n ariaLabel = _getCalendarDaySettin.ariaLabel;\n\n return _react2['default'].createElement(\n 'td',\n _extends({}, (0, _reactWithStyles.css)(styles.CalendarDay, useDefaultCursor && styles.CalendarDay__defaultCursor, daySizeStyles, getStyles(defaultStylesWithHover, isHovered), isOutsideDay && getStyles(outsideStylesWithHover, isHovered), modifiers.has('today') && getStyles(todayStylesWithHover, isHovered), modifiers.has('first-day-of-week') && getStyles(firstDayOfWeekStylesWithHover, isHovered), modifiers.has('last-day-of-week') && getStyles(lastDayOfWeekStylesWithHover, isHovered), modifiers.has('highlighted-calendar') && getStyles(highlightedCalendarStylesWithHover, isHovered), modifiers.has('blocked-minimum-nights') && getStyles(blockedMinNightsStylesWithHover, isHovered), modifiers.has('blocked-calendar') && getStyles(blockedCalendarStylesWithHover, isHovered), hoveredSpan && getStyles(hoveredSpanStylesWithHover, isHovered), modifiers.has('after-hovered-start') && getStyles(afterHoveredStartStylesWithHover, isHovered), modifiers.has('selected-span') && getStyles(selectedSpanStylesWithHover, isHovered), modifiers.has('last-in-range') && getStyles(lastInRangeStylesWithHover, isHovered), selected && getStyles(selectedStylesWithHover, isHovered), modifiers.has('selected-start') && getStyles(selectedStartStylesWithHover, isHovered), modifiers.has('selected-end') && getStyles(selectedEndStylesWithHover, isHovered), isOutsideRange && getStyles(blockedOutOfRangeStylesWithHover, isHovered)), {\n role: 'button' // eslint-disable-line jsx-a11y/no-noninteractive-element-to-interactive-role\n , ref: this.setButtonRef,\n 'aria-label': ariaLabel,\n onMouseEnter: function () {\n function onMouseEnter(e) {\n _this2.onDayMouseEnter(day, e);\n }\n\n return onMouseEnter;\n }(),\n onMouseLeave: function () {\n function onMouseLeave(e) {\n _this2.onDayMouseLeave(day, e);\n }\n\n return onMouseLeave;\n }(),\n onMouseUp: function () {\n function onMouseUp(e) {\n e.currentTarget.blur();\n }\n\n return onMouseUp;\n }(),\n onClick: function () {\n function onClick(e) {\n _this2.onDayClick(day, e);\n }\n\n return onClick;\n }(),\n onKeyDown: function () {\n function onKeyDown(e) {\n _this2.onKeyDown(day, e);\n }\n\n return onKeyDown;\n }(),\n tabIndex: tabIndex\n }),\n renderDayContents ? renderDayContents(day, modifiers) : day.format('D')\n );\n }\n\n return render;\n }()\n }]);\n\n return CustomizableCalendarDay;\n}(_react2['default'].Component);\n\nCustomizableCalendarDay.propTypes = propTypes;\nCustomizableCalendarDay.defaultProps = defaultProps;\n\nexports.PureCustomizableCalendarDay = CustomizableCalendarDay;\nexports['default'] = (0, _reactWithStyles.withStyles)(function (_ref2) {\n var font = _ref2.reactDates.font;\n return {\n CalendarDay: {\n boxSizing: 'border-box',\n cursor: 'pointer',\n fontSize: font.size,\n textAlign: 'center',\n\n ':active': {\n outline: 0\n }\n },\n\n CalendarDay__defaultCursor: {\n cursor: 'default'\n }\n };\n})(CustomizableCalendarDay);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _object = require('object.assign');\n\nvar _object2 = _interopRequireDefault(_object);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _airbnbPropTypes = require('airbnb-prop-types');\n\nvar _reactWithStyles = require('react-with-styles');\n\nvar _throttle = require('lodash/throttle');\n\nvar _throttle2 = _interopRequireDefault(_throttle);\n\nvar _isTouchDevice = require('is-touch-device');\n\nvar _isTouchDevice2 = _interopRequireDefault(_isTouchDevice);\n\nvar _getInputHeight = require('../utils/getInputHeight');\n\nvar _getInputHeight2 = _interopRequireDefault(_getInputHeight);\n\nvar _OpenDirectionShape = require('../shapes/OpenDirectionShape');\n\nvar _OpenDirectionShape2 = _interopRequireDefault(_OpenDirectionShape);\n\nvar _constants = require('../constants');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar FANG_PATH_TOP = 'M0,' + String(_constants.FANG_HEIGHT_PX) + ' ' + String(_constants.FANG_WIDTH_PX) + ',' + String(_constants.FANG_HEIGHT_PX) + ' ' + _constants.FANG_WIDTH_PX / 2 + ',0z';\nvar FANG_STROKE_TOP = 'M0,' + String(_constants.FANG_HEIGHT_PX) + ' ' + _constants.FANG_WIDTH_PX / 2 + ',0 ' + String(_constants.FANG_WIDTH_PX) + ',' + String(_constants.FANG_HEIGHT_PX);\nvar FANG_PATH_BOTTOM = 'M0,0 ' + String(_constants.FANG_WIDTH_PX) + ',0 ' + _constants.FANG_WIDTH_PX / 2 + ',' + String(_constants.FANG_HEIGHT_PX) + 'z';\nvar FANG_STROKE_BOTTOM = 'M0,0 ' + _constants.FANG_WIDTH_PX / 2 + ',' + String(_constants.FANG_HEIGHT_PX) + ' ' + String(_constants.FANG_WIDTH_PX) + ',0';\n\nvar propTypes = (0, _airbnbPropTypes.forbidExtraProps)((0, _object2['default'])({}, _reactWithStyles.withStylesPropTypes, {\n id: _propTypes2['default'].string.isRequired,\n placeholder: _propTypes2['default'].string, // also used as label\n displayValue: _propTypes2['default'].string,\n screenReaderMessage: _propTypes2['default'].string,\n focused: _propTypes2['default'].bool,\n disabled: _propTypes2['default'].bool,\n required: _propTypes2['default'].bool,\n readOnly: _propTypes2['default'].bool,\n openDirection: _OpenDirectionShape2['default'],\n showCaret: _propTypes2['default'].bool,\n verticalSpacing: _airbnbPropTypes.nonNegativeInteger,\n small: _propTypes2['default'].bool,\n block: _propTypes2['default'].bool,\n regular: _propTypes2['default'].bool,\n\n onChange: _propTypes2['default'].func,\n onFocus: _propTypes2['default'].func,\n onKeyDownShiftTab: _propTypes2['default'].func,\n onKeyDownTab: _propTypes2['default'].func,\n\n onKeyDownArrowDown: _propTypes2['default'].func,\n onKeyDownQuestionMark: _propTypes2['default'].func,\n\n // accessibility\n isFocused: _propTypes2['default'].bool // describes actual DOM focus\n}));\n\nvar defaultProps = {\n placeholder: 'Select Date',\n displayValue: '',\n screenReaderMessage: '',\n focused: false,\n disabled: false,\n required: false,\n readOnly: null,\n openDirection: _constants.OPEN_DOWN,\n showCaret: false,\n verticalSpacing: _constants.DEFAULT_VERTICAL_SPACING,\n small: false,\n block: false,\n regular: false,\n\n onChange: function () {\n function onChange() {}\n\n return onChange;\n }(),\n onFocus: function () {\n function onFocus() {}\n\n return onFocus;\n }(),\n onKeyDownShiftTab: function () {\n function onKeyDownShiftTab() {}\n\n return onKeyDownShiftTab;\n }(),\n onKeyDownTab: function () {\n function onKeyDownTab() {}\n\n return onKeyDownTab;\n }(),\n onKeyDownArrowDown: function () {\n function onKeyDownArrowDown() {}\n\n return onKeyDownArrowDown;\n }(),\n onKeyDownQuestionMark: function () {\n function onKeyDownQuestionMark() {}\n\n return onKeyDownQuestionMark;\n }(),\n\n\n // accessibility\n isFocused: false\n};\n\nvar DateInput = function (_React$Component) {\n _inherits(DateInput, _React$Component);\n\n function DateInput(props) {\n _classCallCheck(this, DateInput);\n\n var _this = _possibleConstructorReturn(this, (DateInput.__proto__ || Object.getPrototypeOf(DateInput)).call(this, props));\n\n _this.state = {\n dateString: '',\n isTouchDevice: false\n };\n\n _this.onChange = _this.onChange.bind(_this);\n _this.onKeyDown = _this.onKeyDown.bind(_this);\n _this.setInputRef = _this.setInputRef.bind(_this);\n _this.throttledKeyDown = (0, _throttle2['default'])(_this.onFinalKeyDown, 300, { trailing: false });\n return _this;\n }\n\n _createClass(DateInput, [{\n key: 'componentDidMount',\n value: function () {\n function componentDidMount() {\n this.setState({ isTouchDevice: (0, _isTouchDevice2['default'])() });\n }\n\n return componentDidMount;\n }()\n }, {\n key: 'componentWillReceiveProps',\n value: function () {\n function componentWillReceiveProps(nextProps) {\n var dateString = this.state.dateString;\n\n if (dateString && nextProps.displayValue) {\n this.setState({\n dateString: ''\n });\n }\n }\n\n return componentWillReceiveProps;\n }()\n }, {\n key: 'componentDidUpdate',\n value: function () {\n function componentDidUpdate(prevProps) {\n var _props = this.props,\n focused = _props.focused,\n isFocused = _props.isFocused;\n\n if (prevProps.focused === focused && prevProps.isFocused === isFocused) return;\n\n if (focused && isFocused) {\n this.inputRef.focus();\n }\n }\n\n return componentDidUpdate;\n }()\n }, {\n key: 'onChange',\n value: function () {\n function onChange(e) {\n var _props2 = this.props,\n onChange = _props2.onChange,\n onKeyDownQuestionMark = _props2.onKeyDownQuestionMark;\n\n var dateString = e.target.value;\n\n // In Safari, onKeyDown does not consistently fire ahead of onChange. As a result, we need to\n // special case the `?` key so that it always triggers the appropriate callback, instead of\n // modifying the input value\n if (dateString[dateString.length - 1] === '?') {\n onKeyDownQuestionMark(e);\n } else {\n this.setState({ dateString: dateString }, function () {\n return onChange(dateString);\n });\n }\n }\n\n return onChange;\n }()\n }, {\n key: 'onKeyDown',\n value: function () {\n function onKeyDown(e) {\n e.stopPropagation();\n if (!_constants.MODIFIER_KEY_NAMES.has(e.key)) {\n this.throttledKeyDown(e);\n }\n }\n\n return onKeyDown;\n }()\n }, {\n key: 'onFinalKeyDown',\n value: function () {\n function onFinalKeyDown(e) {\n var _props3 = this.props,\n onKeyDownShiftTab = _props3.onKeyDownShiftTab,\n onKeyDownTab = _props3.onKeyDownTab,\n onKeyDownArrowDown = _props3.onKeyDownArrowDown,\n onKeyDownQuestionMark = _props3.onKeyDownQuestionMark;\n var key = e.key;\n\n\n if (key === 'Tab') {\n if (e.shiftKey) {\n onKeyDownShiftTab(e);\n } else {\n onKeyDownTab(e);\n }\n } else if (key === 'ArrowDown') {\n onKeyDownArrowDown(e);\n } else if (key === '?') {\n e.preventDefault();\n onKeyDownQuestionMark(e);\n }\n }\n\n return onFinalKeyDown;\n }()\n }, {\n key: 'setInputRef',\n value: function () {\n function setInputRef(ref) {\n this.inputRef = ref;\n }\n\n return setInputRef;\n }()\n }, {\n key: 'render',\n value: function () {\n function render() {\n var _state = this.state,\n dateString = _state.dateString,\n isTouch = _state.isTouchDevice;\n var _props4 = this.props,\n id = _props4.id,\n placeholder = _props4.placeholder,\n displayValue = _props4.displayValue,\n screenReaderMessage = _props4.screenReaderMessage,\n focused = _props4.focused,\n showCaret = _props4.showCaret,\n onFocus = _props4.onFocus,\n disabled = _props4.disabled,\n required = _props4.required,\n readOnly = _props4.readOnly,\n openDirection = _props4.openDirection,\n verticalSpacing = _props4.verticalSpacing,\n small = _props4.small,\n regular = _props4.regular,\n block = _props4.block,\n styles = _props4.styles,\n reactDates = _props4.theme.reactDates;\n\n\n var value = dateString || displayValue || '';\n var screenReaderMessageId = 'DateInput__screen-reader-message-' + String(id);\n\n var withFang = showCaret && focused;\n\n var inputHeight = (0, _getInputHeight2['default'])(reactDates, small);\n\n return _react2['default'].createElement(\n 'div',\n (0, _reactWithStyles.css)(styles.DateInput, small && styles.DateInput__small, block && styles.DateInput__block, withFang && styles.DateInput__withFang, disabled && styles.DateInput__disabled, withFang && openDirection === _constants.OPEN_DOWN && styles.DateInput__openDown, withFang && openDirection === _constants.OPEN_UP && styles.DateInput__openUp),\n _react2['default'].createElement('input', _extends({}, (0, _reactWithStyles.css)(styles.DateInput_input, small && styles.DateInput_input__small, regular && styles.DateInput_input__regular, readOnly && styles.DateInput_input__readOnly, focused && styles.DateInput_input__focused, disabled && styles.DateInput_input__disabled), {\n 'aria-label': placeholder,\n type: 'text',\n id: id,\n name: id,\n ref: this.setInputRef,\n value: value,\n onChange: this.onChange,\n onKeyDown: this.onKeyDown,\n onFocus: onFocus,\n placeholder: placeholder,\n autoComplete: 'off',\n disabled: disabled,\n readOnly: typeof readOnly === 'boolean' ? readOnly : isTouch,\n required: required,\n 'aria-describedby': screenReaderMessage && screenReaderMessageId\n })),\n withFang && _react2['default'].createElement(\n 'svg',\n _extends({\n role: 'presentation',\n focusable: 'false'\n }, (0, _reactWithStyles.css)(styles.DateInput_fang, openDirection === _constants.OPEN_DOWN && {\n top: inputHeight + verticalSpacing - _constants.FANG_HEIGHT_PX - 1\n }, openDirection === _constants.OPEN_UP && {\n bottom: inputHeight + verticalSpacing - _constants.FANG_HEIGHT_PX - 1\n })),\n _react2['default'].createElement('path', _extends({}, (0, _reactWithStyles.css)(styles.DateInput_fangShape), {\n d: openDirection === _constants.OPEN_DOWN ? FANG_PATH_TOP : FANG_PATH_BOTTOM\n })),\n _react2['default'].createElement('path', _extends({}, (0, _reactWithStyles.css)(styles.DateInput_fangStroke), {\n d: openDirection === _constants.OPEN_DOWN ? FANG_STROKE_TOP : FANG_STROKE_BOTTOM\n }))\n ),\n screenReaderMessage && _react2['default'].createElement(\n 'p',\n _extends({}, (0, _reactWithStyles.css)(styles.DateInput_screenReaderMessage), { id: screenReaderMessageId }),\n screenReaderMessage\n )\n );\n }\n\n return render;\n }()\n }]);\n\n return DateInput;\n}(_react2['default'].Component);\n\nDateInput.propTypes = propTypes;\nDateInput.defaultProps = defaultProps;\n\nexports['default'] = (0, _reactWithStyles.withStyles)(function (_ref) {\n var _ref$reactDates = _ref.reactDates,\n border = _ref$reactDates.border,\n color = _ref$reactDates.color,\n sizing = _ref$reactDates.sizing,\n spacing = _ref$reactDates.spacing,\n font = _ref$reactDates.font,\n zIndex = _ref$reactDates.zIndex;\n return {\n DateInput: {\n margin: 0,\n padding: spacing.inputPadding,\n background: color.background,\n position: 'relative',\n display: 'inline-block',\n width: sizing.inputWidth,\n verticalAlign: 'middle'\n },\n\n DateInput__small: {\n width: sizing.inputWidth_small\n },\n\n DateInput__block: {\n width: '100%'\n },\n\n DateInput__disabled: {\n background: color.disabled,\n color: color.textDisabled\n },\n\n DateInput_input: {\n fontWeight: 200,\n fontSize: font.input.size,\n lineHeight: font.input.lineHeight,\n color: color.text,\n backgroundColor: color.background,\n width: '100%',\n padding: String(spacing.displayTextPaddingVertical) + 'px ' + String(spacing.displayTextPaddingHorizontal) + 'px',\n paddingTop: spacing.displayTextPaddingTop,\n paddingBottom: spacing.displayTextPaddingBottom,\n paddingLeft: spacing.displayTextPaddingLeft,\n paddingRight: spacing.displayTextPaddingRight,\n border: border.input.border,\n borderTop: border.input.borderTop,\n borderRight: border.input.borderRight,\n borderBottom: border.input.borderBottom,\n borderLeft: border.input.borderLeft,\n borderRadius: border.input.borderRadius\n },\n\n DateInput_input__small: {\n fontSize: font.input.size_small,\n lineHeight: font.input.lineHeight_small,\n letterSpacing: font.input.letterSpacing_small,\n padding: String(spacing.displayTextPaddingVertical_small) + 'px ' + String(spacing.displayTextPaddingHorizontal_small) + 'px',\n paddingTop: spacing.displayTextPaddingTop_small,\n paddingBottom: spacing.displayTextPaddingBottom_small,\n paddingLeft: spacing.displayTextPaddingLeft_small,\n paddingRight: spacing.displayTextPaddingRight_small\n },\n\n DateInput_input__regular: {\n fontWeight: 'auto'\n },\n\n DateInput_input__readOnly: {\n userSelect: 'none'\n },\n\n DateInput_input__focused: {\n outline: border.input.outlineFocused,\n background: color.backgroundFocused,\n border: border.input.borderFocused,\n borderTop: border.input.borderTopFocused,\n borderRight: border.input.borderRightFocused,\n borderBottom: border.input.borderBottomFocused,\n borderLeft: border.input.borderLeftFocused\n },\n\n DateInput_input__disabled: {\n background: color.disabled,\n fontStyle: font.input.styleDisabled\n },\n\n DateInput_screenReaderMessage: {\n border: 0,\n clip: 'rect(0, 0, 0, 0)',\n height: 1,\n margin: -1,\n overflow: 'hidden',\n padding: 0,\n position: 'absolute',\n width: 1\n },\n\n DateInput_fang: {\n position: 'absolute',\n width: _constants.FANG_WIDTH_PX,\n height: _constants.FANG_HEIGHT_PX,\n left: 22,\n zIndex: zIndex + 2\n },\n\n DateInput_fangShape: {\n fill: color.background\n },\n\n DateInput_fangStroke: {\n stroke: color.core.border,\n fill: 'transparent'\n }\n };\n})(DateInput);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PureDateRangePicker = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _object = require('object.assign');\n\nvar _object2 = _interopRequireDefault(_object);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactAddonsShallowCompare = require('react-addons-shallow-compare');\n\nvar _reactAddonsShallowCompare2 = _interopRequireDefault(_reactAddonsShallowCompare);\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _reactWithStyles = require('react-with-styles');\n\nvar _reactPortal = require('react-portal');\n\nvar _airbnbPropTypes = require('airbnb-prop-types');\n\nvar _consolidatedEvents = require('consolidated-events');\n\nvar _isTouchDevice = require('is-touch-device');\n\nvar _isTouchDevice2 = _interopRequireDefault(_isTouchDevice);\n\nvar _reactOutsideClickHandler = require('react-outside-click-handler');\n\nvar _reactOutsideClickHandler2 = _interopRequireDefault(_reactOutsideClickHandler);\n\nvar _DateRangePickerShape = require('../shapes/DateRangePickerShape');\n\nvar _DateRangePickerShape2 = _interopRequireDefault(_DateRangePickerShape);\n\nvar _defaultPhrases = require('../defaultPhrases');\n\nvar _getResponsiveContainerStyles = require('../utils/getResponsiveContainerStyles');\n\nvar _getResponsiveContainerStyles2 = _interopRequireDefault(_getResponsiveContainerStyles);\n\nvar _getDetachedContainerStyles = require('../utils/getDetachedContainerStyles');\n\nvar _getDetachedContainerStyles2 = _interopRequireDefault(_getDetachedContainerStyles);\n\nvar _getInputHeight = require('../utils/getInputHeight');\n\nvar _getInputHeight2 = _interopRequireDefault(_getInputHeight);\n\nvar _isInclusivelyAfterDay = require('../utils/isInclusivelyAfterDay');\n\nvar _isInclusivelyAfterDay2 = _interopRequireDefault(_isInclusivelyAfterDay);\n\nvar _disableScroll2 = require('../utils/disableScroll');\n\nvar _disableScroll3 = _interopRequireDefault(_disableScroll2);\n\nvar _DateRangePickerInputController = require('./DateRangePickerInputController');\n\nvar _DateRangePickerInputController2 = _interopRequireDefault(_DateRangePickerInputController);\n\nvar _DayPickerRangeController = require('./DayPickerRangeController');\n\nvar _DayPickerRangeController2 = _interopRequireDefault(_DayPickerRangeController);\n\nvar _CloseButton = require('./CloseButton');\n\nvar _CloseButton2 = _interopRequireDefault(_CloseButton);\n\nvar _constants = require('../constants');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar propTypes = (0, _airbnbPropTypes.forbidExtraProps)((0, _object2['default'])({}, _reactWithStyles.withStylesPropTypes, _DateRangePickerShape2['default']));\n\nvar defaultProps = {\n // required props for a functional interactive DateRangePicker\n startDate: null,\n endDate: null,\n focusedInput: null,\n\n // input related props\n startDatePlaceholderText: 'Start Date',\n endDatePlaceholderText: 'End Date',\n disabled: false,\n required: false,\n readOnly: false,\n screenReaderInputMessage: '',\n showClearDates: false,\n showDefaultInputIcon: false,\n inputIconPosition: _constants.ICON_BEFORE_POSITION,\n customInputIcon: null,\n customArrowIcon: null,\n customCloseIcon: null,\n noBorder: false,\n block: false,\n small: false,\n regular: false,\n keepFocusOnInput: false,\n\n // calendar presentation and interaction related props\n renderMonthText: null,\n orientation: _constants.HORIZONTAL_ORIENTATION,\n anchorDirection: _constants.ANCHOR_LEFT,\n openDirection: _constants.OPEN_DOWN,\n horizontalMargin: 0,\n withPortal: false,\n withFullScreenPortal: false,\n appendToBody: false,\n disableScroll: false,\n initialVisibleMonth: null,\n numberOfMonths: 2,\n keepOpenOnDateSelect: false,\n reopenPickerOnClearDates: false,\n renderCalendarInfo: null,\n calendarInfoPosition: _constants.INFO_POSITION_BOTTOM,\n hideKeyboardShortcutsPanel: false,\n daySize: _constants.DAY_SIZE,\n isRTL: false,\n firstDayOfWeek: null,\n verticalHeight: null,\n transitionDuration: undefined,\n verticalSpacing: _constants.DEFAULT_VERTICAL_SPACING,\n\n // navigation related props\n navPrev: null,\n navNext: null,\n\n onPrevMonthClick: function () {\n function onPrevMonthClick() {}\n\n return onPrevMonthClick;\n }(),\n onNextMonthClick: function () {\n function onNextMonthClick() {}\n\n return onNextMonthClick;\n }(),\n onClose: function () {\n function onClose() {}\n\n return onClose;\n }(),\n\n\n // day presentation and interaction related props\n renderCalendarDay: undefined,\n renderDayContents: null,\n renderMonthElement: null,\n minimumNights: 1,\n enableOutsideDays: false,\n isDayBlocked: function () {\n function isDayBlocked() {\n return false;\n }\n\n return isDayBlocked;\n }(),\n isOutsideRange: function () {\n function isOutsideRange(day) {\n return !(0, _isInclusivelyAfterDay2['default'])(day, (0, _moment2['default'])());\n }\n\n return isOutsideRange;\n }(),\n isDayHighlighted: function () {\n function isDayHighlighted() {\n return false;\n }\n\n return isDayHighlighted;\n }(),\n\n // internationalization\n displayFormat: function () {\n function displayFormat() {\n return _moment2['default'].localeData().longDateFormat('L');\n }\n\n return displayFormat;\n }(),\n monthFormat: 'MMMM YYYY',\n weekDayFormat: 'dd',\n phrases: _defaultPhrases.DateRangePickerPhrases,\n dayAriaLabelFormat: undefined\n};\n\nvar DateRangePicker = function (_React$Component) {\n _inherits(DateRangePicker, _React$Component);\n\n function DateRangePicker(props) {\n _classCallCheck(this, DateRangePicker);\n\n var _this = _possibleConstructorReturn(this, (DateRangePicker.__proto__ || Object.getPrototypeOf(DateRangePicker)).call(this, props));\n\n _this.state = {\n dayPickerContainerStyles: {},\n isDateRangePickerInputFocused: false,\n isDayPickerFocused: false,\n showKeyboardShortcuts: false\n };\n\n _this.isTouchDevice = false;\n\n _this.onOutsideClick = _this.onOutsideClick.bind(_this);\n _this.onDateRangePickerInputFocus = _this.onDateRangePickerInputFocus.bind(_this);\n _this.onDayPickerFocus = _this.onDayPickerFocus.bind(_this);\n _this.onDayPickerBlur = _this.onDayPickerBlur.bind(_this);\n _this.showKeyboardShortcutsPanel = _this.showKeyboardShortcutsPanel.bind(_this);\n\n _this.responsivizePickerPosition = _this.responsivizePickerPosition.bind(_this);\n _this.disableScroll = _this.disableScroll.bind(_this);\n\n _this.setDayPickerContainerRef = _this.setDayPickerContainerRef.bind(_this);\n _this.setContainerRef = _this.setContainerRef.bind(_this);\n return _this;\n }\n\n _createClass(DateRangePicker, [{\n key: 'componentDidMount',\n value: function () {\n function componentDidMount() {\n this.removeEventListener = (0, _consolidatedEvents.addEventListener)(window, 'resize', this.responsivizePickerPosition, { passive: true });\n this.responsivizePickerPosition();\n this.disableScroll();\n\n var focusedInput = this.props.focusedInput;\n\n if (focusedInput) {\n this.setState({\n isDateRangePickerInputFocused: true\n });\n }\n\n this.isTouchDevice = (0, _isTouchDevice2['default'])();\n }\n\n return componentDidMount;\n }()\n }, {\n key: 'shouldComponentUpdate',\n value: function () {\n function shouldComponentUpdate(nextProps, nextState) {\n return (0, _reactAddonsShallowCompare2['default'])(this, nextProps, nextState);\n }\n\n return shouldComponentUpdate;\n }()\n }, {\n key: 'componentDidUpdate',\n value: function () {\n function componentDidUpdate(prevProps) {\n var focusedInput = this.props.focusedInput;\n\n if (!prevProps.focusedInput && focusedInput && this.isOpened()) {\n // The date picker just changed from being closed to being open.\n this.responsivizePickerPosition();\n this.disableScroll();\n } else if (prevProps.focusedInput && !focusedInput && !this.isOpened()) {\n // The date picker just changed from being open to being closed.\n if (this.enableScroll) this.enableScroll();\n }\n }\n\n return componentDidUpdate;\n }()\n }, {\n key: 'componentWillUnmount',\n value: function () {\n function componentWillUnmount() {\n if (this.removeEventListener) this.removeEventListener();\n if (this.enableScroll) this.enableScroll();\n }\n\n return componentWillUnmount;\n }()\n }, {\n key: 'onOutsideClick',\n value: function () {\n function onOutsideClick(event) {\n var _props = this.props,\n onFocusChange = _props.onFocusChange,\n onClose = _props.onClose,\n startDate = _props.startDate,\n endDate = _props.endDate,\n appendToBody = _props.appendToBody;\n\n if (!this.isOpened()) return;\n if (appendToBody && this.dayPickerContainer.contains(event.target)) return;\n\n this.setState({\n isDateRangePickerInputFocused: false,\n isDayPickerFocused: false,\n showKeyboardShortcuts: false\n });\n\n onFocusChange(null);\n onClose({ startDate: startDate, endDate: endDate });\n }\n\n return onOutsideClick;\n }()\n }, {\n key: 'onDateRangePickerInputFocus',\n value: function () {\n function onDateRangePickerInputFocus(focusedInput) {\n var _props2 = this.props,\n onFocusChange = _props2.onFocusChange,\n readOnly = _props2.readOnly,\n withPortal = _props2.withPortal,\n withFullScreenPortal = _props2.withFullScreenPortal,\n keepFocusOnInput = _props2.keepFocusOnInput;\n\n\n if (focusedInput) {\n var withAnyPortal = withPortal || withFullScreenPortal;\n var moveFocusToDayPicker = withAnyPortal || readOnly && !keepFocusOnInput || this.isTouchDevice && !keepFocusOnInput;\n\n if (moveFocusToDayPicker) {\n this.onDayPickerFocus();\n } else {\n this.onDayPickerBlur();\n }\n }\n\n onFocusChange(focusedInput);\n }\n\n return onDateRangePickerInputFocus;\n }()\n }, {\n key: 'onDayPickerFocus',\n value: function () {\n function onDayPickerFocus() {\n var _props3 = this.props,\n focusedInput = _props3.focusedInput,\n onFocusChange = _props3.onFocusChange;\n\n if (!focusedInput) onFocusChange(_constants.START_DATE);\n\n this.setState({\n isDateRangePickerInputFocused: false,\n isDayPickerFocused: true,\n showKeyboardShortcuts: false\n });\n }\n\n return onDayPickerFocus;\n }()\n }, {\n key: 'onDayPickerBlur',\n value: function () {\n function onDayPickerBlur() {\n this.setState({\n isDateRangePickerInputFocused: true,\n isDayPickerFocused: false,\n showKeyboardShortcuts: false\n });\n }\n\n return onDayPickerBlur;\n }()\n }, {\n key: 'setDayPickerContainerRef',\n value: function () {\n function setDayPickerContainerRef(ref) {\n this.dayPickerContainer = ref;\n }\n\n return setDayPickerContainerRef;\n }()\n }, {\n key: 'setContainerRef',\n value: function () {\n function setContainerRef(ref) {\n this.container = ref;\n }\n\n return setContainerRef;\n }()\n }, {\n key: 'isOpened',\n value: function () {\n function isOpened() {\n var focusedInput = this.props.focusedInput;\n\n return focusedInput === _constants.START_DATE || focusedInput === _constants.END_DATE;\n }\n\n return isOpened;\n }()\n }, {\n key: 'disableScroll',\n value: function () {\n function disableScroll() {\n var _props4 = this.props,\n appendToBody = _props4.appendToBody,\n propDisableScroll = _props4.disableScroll;\n\n if (!appendToBody && !propDisableScroll) return;\n if (!this.isOpened()) return;\n\n // Disable scroll for every ancestor of this DateRangePicker up to the\n // document level. This ensures the input and the picker never move. Other\n // sibling elements or the picker itself can scroll.\n this.enableScroll = (0, _disableScroll3['default'])(this.container);\n }\n\n return disableScroll;\n }()\n }, {\n key: 'responsivizePickerPosition',\n value: function () {\n function responsivizePickerPosition() {\n // It's possible the portal props have been changed in response to window resizes\n // So let's ensure we reset this back to the base state each time\n this.setState({ dayPickerContainerStyles: {} });\n\n if (!this.isOpened()) {\n return;\n }\n\n var _props5 = this.props,\n openDirection = _props5.openDirection,\n anchorDirection = _props5.anchorDirection,\n horizontalMargin = _props5.horizontalMargin,\n withPortal = _props5.withPortal,\n withFullScreenPortal = _props5.withFullScreenPortal,\n appendToBody = _props5.appendToBody;\n var dayPickerContainerStyles = this.state.dayPickerContainerStyles;\n\n\n var isAnchoredLeft = anchorDirection === _constants.ANCHOR_LEFT;\n if (!withPortal && !withFullScreenPortal) {\n var containerRect = this.dayPickerContainer.getBoundingClientRect();\n var currentOffset = dayPickerContainerStyles[anchorDirection] || 0;\n var containerEdge = isAnchoredLeft ? containerRect[_constants.ANCHOR_RIGHT] : containerRect[_constants.ANCHOR_LEFT];\n\n this.setState({\n dayPickerContainerStyles: (0, _object2['default'])({}, (0, _getResponsiveContainerStyles2['default'])(anchorDirection, currentOffset, containerEdge, horizontalMargin), appendToBody && (0, _getDetachedContainerStyles2['default'])(openDirection, anchorDirection, this.container))\n });\n }\n }\n\n return responsivizePickerPosition;\n }()\n }, {\n key: 'showKeyboardShortcutsPanel',\n value: function () {\n function showKeyboardShortcutsPanel() {\n this.setState({\n isDateRangePickerInputFocused: false,\n isDayPickerFocused: true,\n showKeyboardShortcuts: true\n });\n }\n\n return showKeyboardShortcutsPanel;\n }()\n }, {\n key: 'maybeRenderDayPickerWithPortal',\n value: function () {\n function maybeRenderDayPickerWithPortal() {\n var _props6 = this.props,\n withPortal = _props6.withPortal,\n withFullScreenPortal = _props6.withFullScreenPortal,\n appendToBody = _props6.appendToBody;\n\n\n if (!this.isOpened()) {\n return null;\n }\n\n if (withPortal || withFullScreenPortal || appendToBody) {\n return _react2['default'].createElement(\n _reactPortal.Portal,\n null,\n this.renderDayPicker()\n );\n }\n\n return this.renderDayPicker();\n }\n\n return maybeRenderDayPickerWithPortal;\n }()\n }, {\n key: 'renderDayPicker',\n value: function () {\n function renderDayPicker() {\n var _props7 = this.props,\n anchorDirection = _props7.anchorDirection,\n openDirection = _props7.openDirection,\n isDayBlocked = _props7.isDayBlocked,\n isDayHighlighted = _props7.isDayHighlighted,\n isOutsideRange = _props7.isOutsideRange,\n numberOfMonths = _props7.numberOfMonths,\n orientation = _props7.orientation,\n monthFormat = _props7.monthFormat,\n renderMonthText = _props7.renderMonthText,\n navPrev = _props7.navPrev,\n navNext = _props7.navNext,\n onPrevMonthClick = _props7.onPrevMonthClick,\n onNextMonthClick = _props7.onNextMonthClick,\n onDatesChange = _props7.onDatesChange,\n onFocusChange = _props7.onFocusChange,\n withPortal = _props7.withPortal,\n withFullScreenPortal = _props7.withFullScreenPortal,\n daySize = _props7.daySize,\n enableOutsideDays = _props7.enableOutsideDays,\n focusedInput = _props7.focusedInput,\n startDate = _props7.startDate,\n endDate = _props7.endDate,\n minimumNights = _props7.minimumNights,\n keepOpenOnDateSelect = _props7.keepOpenOnDateSelect,\n renderCalendarDay = _props7.renderCalendarDay,\n renderDayContents = _props7.renderDayContents,\n renderCalendarInfo = _props7.renderCalendarInfo,\n renderMonthElement = _props7.renderMonthElement,\n calendarInfoPosition = _props7.calendarInfoPosition,\n firstDayOfWeek = _props7.firstDayOfWeek,\n initialVisibleMonth = _props7.initialVisibleMonth,\n hideKeyboardShortcutsPanel = _props7.hideKeyboardShortcutsPanel,\n customCloseIcon = _props7.customCloseIcon,\n onClose = _props7.onClose,\n phrases = _props7.phrases,\n dayAriaLabelFormat = _props7.dayAriaLabelFormat,\n isRTL = _props7.isRTL,\n weekDayFormat = _props7.weekDayFormat,\n styles = _props7.styles,\n verticalHeight = _props7.verticalHeight,\n transitionDuration = _props7.transitionDuration,\n verticalSpacing = _props7.verticalSpacing,\n small = _props7.small,\n disabled = _props7.disabled,\n reactDates = _props7.theme.reactDates;\n var _state = this.state,\n dayPickerContainerStyles = _state.dayPickerContainerStyles,\n isDayPickerFocused = _state.isDayPickerFocused,\n showKeyboardShortcuts = _state.showKeyboardShortcuts;\n\n\n var onOutsideClick = !withFullScreenPortal && withPortal ? this.onOutsideClick : undefined;\n var initialVisibleMonthThunk = initialVisibleMonth || function () {\n return startDate || endDate || (0, _moment2['default'])();\n };\n\n var closeIcon = customCloseIcon || _react2['default'].createElement(_CloseButton2['default'], (0, _reactWithStyles.css)(styles.DateRangePicker_closeButton_svg));\n\n var inputHeight = (0, _getInputHeight2['default'])(reactDates, small);\n\n var withAnyPortal = withPortal || withFullScreenPortal;\n\n return _react2['default'].createElement(\n 'div',\n _extends({ // eslint-disable-line jsx-a11y/no-static-element-interactions\n ref: this.setDayPickerContainerRef\n }, (0, _reactWithStyles.css)(styles.DateRangePicker_picker, anchorDirection === _constants.ANCHOR_LEFT && styles.DateRangePicker_picker__directionLeft, anchorDirection === _constants.ANCHOR_RIGHT && styles.DateRangePicker_picker__directionRight, orientation === _constants.HORIZONTAL_ORIENTATION && styles.DateRangePicker_picker__horizontal, orientation === _constants.VERTICAL_ORIENTATION && styles.DateRangePicker_picker__vertical, !withAnyPortal && openDirection === _constants.OPEN_DOWN && {\n top: inputHeight + verticalSpacing\n }, !withAnyPortal && openDirection === _constants.OPEN_UP && {\n bottom: inputHeight + verticalSpacing\n }, withAnyPortal && styles.DateRangePicker_picker__portal, withFullScreenPortal && styles.DateRangePicker_picker__fullScreenPortal, isRTL && styles.DateRangePicker_picker__rtl, dayPickerContainerStyles), {\n onClick: onOutsideClick\n }),\n _react2['default'].createElement(_DayPickerRangeController2['default'], {\n orientation: orientation,\n enableOutsideDays: enableOutsideDays,\n numberOfMonths: numberOfMonths,\n onPrevMonthClick: onPrevMonthClick,\n onNextMonthClick: onNextMonthClick,\n onDatesChange: onDatesChange,\n onFocusChange: onFocusChange,\n onClose: onClose,\n focusedInput: focusedInput,\n startDate: startDate,\n endDate: endDate,\n monthFormat: monthFormat,\n renderMonthText: renderMonthText,\n withPortal: withAnyPortal,\n daySize: daySize,\n initialVisibleMonth: initialVisibleMonthThunk,\n hideKeyboardShortcutsPanel: hideKeyboardShortcutsPanel,\n navPrev: navPrev,\n navNext: navNext,\n minimumNights: minimumNights,\n isOutsideRange: isOutsideRange,\n isDayHighlighted: isDayHighlighted,\n isDayBlocked: isDayBlocked,\n keepOpenOnDateSelect: keepOpenOnDateSelect,\n renderCalendarDay: renderCalendarDay,\n renderDayContents: renderDayContents,\n renderCalendarInfo: renderCalendarInfo,\n renderMonthElement: renderMonthElement,\n calendarInfoPosition: calendarInfoPosition,\n isFocused: isDayPickerFocused,\n showKeyboardShortcuts: showKeyboardShortcuts,\n onBlur: this.onDayPickerBlur,\n phrases: phrases,\n dayAriaLabelFormat: dayAriaLabelFormat,\n isRTL: isRTL,\n firstDayOfWeek: firstDayOfWeek,\n weekDayFormat: weekDayFormat,\n verticalHeight: verticalHeight,\n transitionDuration: transitionDuration,\n disabled: disabled\n }),\n withFullScreenPortal && _react2['default'].createElement(\n 'button',\n _extends({}, (0, _reactWithStyles.css)(styles.DateRangePicker_closeButton), {\n type: 'button',\n onClick: this.onOutsideClick,\n 'aria-label': phrases.closeDatePicker\n }),\n closeIcon\n )\n );\n }\n\n return renderDayPicker;\n }()\n }, {\n key: 'render',\n value: function () {\n function render() {\n var _props8 = this.props,\n startDate = _props8.startDate,\n startDateId = _props8.startDateId,\n startDatePlaceholderText = _props8.startDatePlaceholderText,\n endDate = _props8.endDate,\n endDateId = _props8.endDateId,\n endDatePlaceholderText = _props8.endDatePlaceholderText,\n focusedInput = _props8.focusedInput,\n screenReaderInputMessage = _props8.screenReaderInputMessage,\n showClearDates = _props8.showClearDates,\n showDefaultInputIcon = _props8.showDefaultInputIcon,\n inputIconPosition = _props8.inputIconPosition,\n customInputIcon = _props8.customInputIcon,\n customArrowIcon = _props8.customArrowIcon,\n customCloseIcon = _props8.customCloseIcon,\n disabled = _props8.disabled,\n required = _props8.required,\n readOnly = _props8.readOnly,\n openDirection = _props8.openDirection,\n phrases = _props8.phrases,\n isOutsideRange = _props8.isOutsideRange,\n minimumNights = _props8.minimumNights,\n withPortal = _props8.withPortal,\n withFullScreenPortal = _props8.withFullScreenPortal,\n displayFormat = _props8.displayFormat,\n reopenPickerOnClearDates = _props8.reopenPickerOnClearDates,\n keepOpenOnDateSelect = _props8.keepOpenOnDateSelect,\n onDatesChange = _props8.onDatesChange,\n onClose = _props8.onClose,\n isRTL = _props8.isRTL,\n noBorder = _props8.noBorder,\n block = _props8.block,\n verticalSpacing = _props8.verticalSpacing,\n small = _props8.small,\n regular = _props8.regular,\n styles = _props8.styles;\n var isDateRangePickerInputFocused = this.state.isDateRangePickerInputFocused;\n\n\n var enableOutsideClick = !withPortal && !withFullScreenPortal;\n\n var hideFang = verticalSpacing < _constants.FANG_HEIGHT_PX;\n\n var input = _react2['default'].createElement(_DateRangePickerInputController2['default'], {\n startDate: startDate,\n startDateId: startDateId,\n startDatePlaceholderText: startDatePlaceholderText,\n isStartDateFocused: focusedInput === _constants.START_DATE,\n endDate: endDate,\n endDateId: endDateId,\n endDatePlaceholderText: endDatePlaceholderText,\n isEndDateFocused: focusedInput === _constants.END_DATE,\n displayFormat: displayFormat,\n showClearDates: showClearDates,\n showCaret: !withPortal && !withFullScreenPortal && !hideFang,\n showDefaultInputIcon: showDefaultInputIcon,\n inputIconPosition: inputIconPosition,\n customInputIcon: customInputIcon,\n customArrowIcon: customArrowIcon,\n customCloseIcon: customCloseIcon,\n disabled: disabled,\n required: required,\n readOnly: readOnly,\n openDirection: openDirection,\n reopenPickerOnClearDates: reopenPickerOnClearDates,\n keepOpenOnDateSelect: keepOpenOnDateSelect,\n isOutsideRange: isOutsideRange,\n minimumNights: minimumNights,\n withFullScreenPortal: withFullScreenPortal,\n onDatesChange: onDatesChange,\n onFocusChange: this.onDateRangePickerInputFocus,\n onKeyDownArrowDown: this.onDayPickerFocus,\n onKeyDownQuestionMark: this.showKeyboardShortcutsPanel,\n onClose: onClose,\n phrases: phrases,\n screenReaderMessage: screenReaderInputMessage,\n isFocused: isDateRangePickerInputFocused,\n isRTL: isRTL,\n noBorder: noBorder,\n block: block,\n small: small,\n regular: regular,\n verticalSpacing: verticalSpacing\n });\n\n return _react2['default'].createElement(\n 'div',\n _extends({\n ref: this.setContainerRef\n }, (0, _reactWithStyles.css)(styles.DateRangePicker, block && styles.DateRangePicker__block)),\n enableOutsideClick && _react2['default'].createElement(\n _reactOutsideClickHandler2['default'],\n { onOutsideClick: this.onOutsideClick },\n input,\n this.maybeRenderDayPickerWithPortal()\n ),\n !enableOutsideClick && input,\n !enableOutsideClick && this.maybeRenderDayPickerWithPortal()\n );\n }\n\n return render;\n }()\n }]);\n\n return DateRangePicker;\n}(_react2['default'].Component);\n\nDateRangePicker.propTypes = propTypes;\nDateRangePicker.defaultProps = defaultProps;\n\nexports.PureDateRangePicker = DateRangePicker;\nexports['default'] = (0, _reactWithStyles.withStyles)(function (_ref) {\n var _ref$reactDates = _ref.reactDates,\n color = _ref$reactDates.color,\n zIndex = _ref$reactDates.zIndex;\n return {\n DateRangePicker: {\n position: 'relative',\n display: 'inline-block'\n },\n\n DateRangePicker__block: {\n display: 'block'\n },\n\n DateRangePicker_picker: {\n zIndex: zIndex + 1,\n backgroundColor: color.background,\n position: 'absolute'\n },\n\n DateRangePicker_picker__rtl: {\n direction: 'rtl'\n },\n\n DateRangePicker_picker__directionLeft: {\n left: 0\n },\n\n DateRangePicker_picker__directionRight: {\n right: 0\n },\n\n DateRangePicker_picker__portal: {\n backgroundColor: 'rgba(0, 0, 0, 0.3)',\n position: 'fixed',\n top: 0,\n left: 0,\n height: '100%',\n width: '100%'\n },\n\n DateRangePicker_picker__fullScreenPortal: {\n backgroundColor: color.background\n },\n\n DateRangePicker_closeButton: {\n background: 'none',\n border: 0,\n color: 'inherit',\n font: 'inherit',\n lineHeight: 'normal',\n overflow: 'visible',\n cursor: 'pointer',\n\n position: 'absolute',\n top: 0,\n right: 0,\n padding: 15,\n zIndex: zIndex + 2,\n\n ':hover': {\n color: 'darken(' + String(color.core.grayLighter) + ', 10%)',\n textDecoration: 'none'\n },\n\n ':focus': {\n color: 'darken(' + String(color.core.grayLighter) + ', 10%)',\n textDecoration: 'none'\n }\n },\n\n DateRangePicker_closeButton_svg: {\n height: 15,\n width: 15,\n fill: color.core.grayLighter\n }\n };\n})(DateRangePicker);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _object = require('object.assign');\n\nvar _object2 = _interopRequireDefault(_object);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _airbnbPropTypes = require('airbnb-prop-types');\n\nvar _reactWithStyles = require('react-with-styles');\n\nvar _defaultPhrases = require('../defaultPhrases');\n\nvar _getPhrasePropTypes = require('../utils/getPhrasePropTypes');\n\nvar _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);\n\nvar _OpenDirectionShape = require('../shapes/OpenDirectionShape');\n\nvar _OpenDirectionShape2 = _interopRequireDefault(_OpenDirectionShape);\n\nvar _DateInput = require('./DateInput');\n\nvar _DateInput2 = _interopRequireDefault(_DateInput);\n\nvar _IconPositionShape = require('../shapes/IconPositionShape');\n\nvar _IconPositionShape2 = _interopRequireDefault(_IconPositionShape);\n\nvar _DisabledShape = require('../shapes/DisabledShape');\n\nvar _DisabledShape2 = _interopRequireDefault(_DisabledShape);\n\nvar _RightArrow = require('./RightArrow');\n\nvar _RightArrow2 = _interopRequireDefault(_RightArrow);\n\nvar _LeftArrow = require('./LeftArrow');\n\nvar _LeftArrow2 = _interopRequireDefault(_LeftArrow);\n\nvar _CloseButton = require('./CloseButton');\n\nvar _CloseButton2 = _interopRequireDefault(_CloseButton);\n\nvar _CalendarIcon = require('./CalendarIcon');\n\nvar _CalendarIcon2 = _interopRequireDefault(_CalendarIcon);\n\nvar _constants = require('../constants');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar propTypes = (0, _airbnbPropTypes.forbidExtraProps)((0, _object2['default'])({}, _reactWithStyles.withStylesPropTypes, {\n startDateId: _propTypes2['default'].string,\n startDatePlaceholderText: _propTypes2['default'].string,\n screenReaderMessage: _propTypes2['default'].string,\n\n endDateId: _propTypes2['default'].string,\n endDatePlaceholderText: _propTypes2['default'].string,\n\n onStartDateFocus: _propTypes2['default'].func,\n onEndDateFocus: _propTypes2['default'].func,\n onStartDateChange: _propTypes2['default'].func,\n onEndDateChange: _propTypes2['default'].func,\n onStartDateShiftTab: _propTypes2['default'].func,\n onEndDateTab: _propTypes2['default'].func,\n onClearDates: _propTypes2['default'].func,\n onKeyDownArrowDown: _propTypes2['default'].func,\n onKeyDownQuestionMark: _propTypes2['default'].func,\n\n startDate: _propTypes2['default'].string,\n endDate: _propTypes2['default'].string,\n\n isStartDateFocused: _propTypes2['default'].bool,\n isEndDateFocused: _propTypes2['default'].bool,\n showClearDates: _propTypes2['default'].bool,\n disabled: _DisabledShape2['default'],\n required: _propTypes2['default'].bool,\n readOnly: _propTypes2['default'].bool,\n openDirection: _OpenDirectionShape2['default'],\n showCaret: _propTypes2['default'].bool,\n showDefaultInputIcon: _propTypes2['default'].bool,\n inputIconPosition: _IconPositionShape2['default'],\n customInputIcon: _propTypes2['default'].node,\n customArrowIcon: _propTypes2['default'].node,\n customCloseIcon: _propTypes2['default'].node,\n noBorder: _propTypes2['default'].bool,\n block: _propTypes2['default'].bool,\n small: _propTypes2['default'].bool,\n regular: _propTypes2['default'].bool,\n verticalSpacing: _airbnbPropTypes.nonNegativeInteger,\n\n // accessibility\n isFocused: _propTypes2['default'].bool, // describes actual DOM focus\n\n // i18n\n phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.DateRangePickerInputPhrases)),\n\n isRTL: _propTypes2['default'].bool\n}));\n\nvar defaultProps = {\n startDateId: _constants.START_DATE,\n endDateId: _constants.END_DATE,\n startDatePlaceholderText: 'Start Date',\n endDatePlaceholderText: 'End Date',\n screenReaderMessage: '',\n onStartDateFocus: function () {\n function onStartDateFocus() {}\n\n return onStartDateFocus;\n }(),\n onEndDateFocus: function () {\n function onEndDateFocus() {}\n\n return onEndDateFocus;\n }(),\n onStartDateChange: function () {\n function onStartDateChange() {}\n\n return onStartDateChange;\n }(),\n onEndDateChange: function () {\n function onEndDateChange() {}\n\n return onEndDateChange;\n }(),\n onStartDateShiftTab: function () {\n function onStartDateShiftTab() {}\n\n return onStartDateShiftTab;\n }(),\n onEndDateTab: function () {\n function onEndDateTab() {}\n\n return onEndDateTab;\n }(),\n onClearDates: function () {\n function onClearDates() {}\n\n return onClearDates;\n }(),\n onKeyDownArrowDown: function () {\n function onKeyDownArrowDown() {}\n\n return onKeyDownArrowDown;\n }(),\n onKeyDownQuestionMark: function () {\n function onKeyDownQuestionMark() {}\n\n return onKeyDownQuestionMark;\n }(),\n\n\n startDate: '',\n endDate: '',\n\n isStartDateFocused: false,\n isEndDateFocused: false,\n showClearDates: false,\n disabled: false,\n required: false,\n readOnly: false,\n openDirection: _constants.OPEN_DOWN,\n showCaret: false,\n showDefaultInputIcon: false,\n inputIconPosition: _constants.ICON_BEFORE_POSITION,\n customInputIcon: null,\n customArrowIcon: null,\n customCloseIcon: null,\n noBorder: false,\n block: false,\n small: false,\n regular: false,\n verticalSpacing: undefined,\n\n // accessibility\n isFocused: false,\n\n // i18n\n phrases: _defaultPhrases.DateRangePickerInputPhrases,\n\n isRTL: false\n};\n\nfunction DateRangePickerInput(_ref) {\n var startDate = _ref.startDate,\n startDateId = _ref.startDateId,\n startDatePlaceholderText = _ref.startDatePlaceholderText,\n screenReaderMessage = _ref.screenReaderMessage,\n isStartDateFocused = _ref.isStartDateFocused,\n onStartDateChange = _ref.onStartDateChange,\n onStartDateFocus = _ref.onStartDateFocus,\n onStartDateShiftTab = _ref.onStartDateShiftTab,\n endDate = _ref.endDate,\n endDateId = _ref.endDateId,\n endDatePlaceholderText = _ref.endDatePlaceholderText,\n isEndDateFocused = _ref.isEndDateFocused,\n onEndDateChange = _ref.onEndDateChange,\n onEndDateFocus = _ref.onEndDateFocus,\n onEndDateTab = _ref.onEndDateTab,\n onKeyDownArrowDown = _ref.onKeyDownArrowDown,\n onKeyDownQuestionMark = _ref.onKeyDownQuestionMark,\n onClearDates = _ref.onClearDates,\n showClearDates = _ref.showClearDates,\n disabled = _ref.disabled,\n required = _ref.required,\n readOnly = _ref.readOnly,\n showCaret = _ref.showCaret,\n openDirection = _ref.openDirection,\n showDefaultInputIcon = _ref.showDefaultInputIcon,\n inputIconPosition = _ref.inputIconPosition,\n customInputIcon = _ref.customInputIcon,\n customArrowIcon = _ref.customArrowIcon,\n customCloseIcon = _ref.customCloseIcon,\n isFocused = _ref.isFocused,\n phrases = _ref.phrases,\n isRTL = _ref.isRTL,\n noBorder = _ref.noBorder,\n block = _ref.block,\n verticalSpacing = _ref.verticalSpacing,\n small = _ref.small,\n regular = _ref.regular,\n styles = _ref.styles;\n\n var calendarIcon = customInputIcon || _react2['default'].createElement(_CalendarIcon2['default'], (0, _reactWithStyles.css)(styles.DateRangePickerInput_calendarIcon_svg));\n\n var arrowIcon = customArrowIcon || _react2['default'].createElement(_RightArrow2['default'], (0, _reactWithStyles.css)(styles.DateRangePickerInput_arrow_svg));\n if (isRTL) arrowIcon = _react2['default'].createElement(_LeftArrow2['default'], (0, _reactWithStyles.css)(styles.DateRangePickerInput_arrow_svg));\n if (small) arrowIcon = '-';\n\n var closeIcon = customCloseIcon || _react2['default'].createElement(_CloseButton2['default'], (0, _reactWithStyles.css)(styles.DateRangePickerInput_clearDates_svg, small && styles.DateRangePickerInput_clearDates_svg__small));\n var screenReaderText = screenReaderMessage || phrases.keyboardNavigationInstructions;\n var inputIcon = (showDefaultInputIcon || customInputIcon !== null) && _react2['default'].createElement(\n 'button',\n _extends({}, (0, _reactWithStyles.css)(styles.DateRangePickerInput_calendarIcon), {\n type: 'button',\n disabled: disabled,\n 'aria-label': phrases.focusStartDate,\n onClick: onKeyDownArrowDown\n }),\n calendarIcon\n );\n var startDateDisabled = disabled === _constants.START_DATE || disabled === true;\n var endDateDisabled = disabled === _constants.END_DATE || disabled === true;\n\n return _react2['default'].createElement(\n 'div',\n (0, _reactWithStyles.css)(styles.DateRangePickerInput, disabled && styles.DateRangePickerInput__disabled, isRTL && styles.DateRangePickerInput__rtl, !noBorder && styles.DateRangePickerInput__withBorder, block && styles.DateRangePickerInput__block, showClearDates && styles.DateRangePickerInput__showClearDates),\n inputIconPosition === _constants.ICON_BEFORE_POSITION && inputIcon,\n _react2['default'].createElement(_DateInput2['default'], {\n id: startDateId,\n placeholder: startDatePlaceholderText,\n displayValue: startDate,\n screenReaderMessage: screenReaderText,\n focused: isStartDateFocused,\n isFocused: isFocused,\n disabled: startDateDisabled,\n required: required,\n readOnly: readOnly,\n showCaret: showCaret,\n openDirection: openDirection,\n onChange: onStartDateChange,\n onFocus: onStartDateFocus,\n onKeyDownShiftTab: onStartDateShiftTab,\n onKeyDownArrowDown: onKeyDownArrowDown,\n onKeyDownQuestionMark: onKeyDownQuestionMark,\n verticalSpacing: verticalSpacing,\n small: small,\n regular: regular\n }),\n _react2['default'].createElement(\n 'div',\n _extends({}, (0, _reactWithStyles.css)(styles.DateRangePickerInput_arrow), {\n 'aria-hidden': 'true',\n role: 'presentation'\n }),\n arrowIcon\n ),\n _react2['default'].createElement(_DateInput2['default'], {\n id: endDateId,\n placeholder: endDatePlaceholderText,\n displayValue: endDate,\n screenReaderMessage: screenReaderText,\n focused: isEndDateFocused,\n isFocused: isFocused,\n disabled: endDateDisabled,\n required: required,\n readOnly: readOnly,\n showCaret: showCaret,\n openDirection: openDirection,\n onChange: onEndDateChange,\n onFocus: onEndDateFocus,\n onKeyDownTab: onEndDateTab,\n onKeyDownArrowDown: onKeyDownArrowDown,\n onKeyDownQuestionMark: onKeyDownQuestionMark,\n verticalSpacing: verticalSpacing,\n small: small,\n regular: regular\n }),\n showClearDates && _react2['default'].createElement(\n 'button',\n _extends({\n type: 'button',\n 'aria-label': phrases.clearDates\n }, (0, _reactWithStyles.css)(styles.DateRangePickerInput_clearDates, small && styles.DateRangePickerInput_clearDates__small, !customCloseIcon && styles.DateRangePickerInput_clearDates_default, !(startDate || endDate) && styles.DateRangePickerInput_clearDates__hide), {\n onClick: onClearDates,\n disabled: disabled\n }),\n closeIcon\n ),\n inputIconPosition === _constants.ICON_AFTER_POSITION && inputIcon\n );\n}\n\nDateRangePickerInput.propTypes = propTypes;\nDateRangePickerInput.defaultProps = defaultProps;\n\nexports['default'] = (0, _reactWithStyles.withStyles)(function (_ref2) {\n var _ref2$reactDates = _ref2.reactDates,\n border = _ref2$reactDates.border,\n color = _ref2$reactDates.color,\n sizing = _ref2$reactDates.sizing;\n return {\n DateRangePickerInput: {\n backgroundColor: color.background,\n display: 'inline-block'\n },\n\n DateRangePickerInput__disabled: {\n background: color.disabled\n },\n\n DateRangePickerInput__withBorder: {\n borderColor: color.border,\n borderWidth: border.pickerInput.borderWidth,\n borderStyle: border.pickerInput.borderStyle,\n borderRadius: border.pickerInput.borderRadius\n },\n\n DateRangePickerInput__rtl: {\n direction: 'rtl'\n },\n\n DateRangePickerInput__block: {\n display: 'block'\n },\n\n DateRangePickerInput__showClearDates: {\n paddingRight: 30\n },\n\n DateRangePickerInput_arrow: {\n display: 'inline-block',\n verticalAlign: 'middle',\n color: color.text\n },\n\n DateRangePickerInput_arrow_svg: {\n verticalAlign: 'middle',\n fill: color.text,\n height: sizing.arrowWidth,\n width: sizing.arrowWidth\n },\n\n DateRangePickerInput_clearDates: {\n background: 'none',\n border: 0,\n color: 'inherit',\n font: 'inherit',\n lineHeight: 'normal',\n overflow: 'visible',\n\n cursor: 'pointer',\n padding: 10,\n margin: '0 10px 0 5px',\n position: 'absolute',\n right: 0,\n top: '50%',\n transform: 'translateY(-50%)'\n },\n\n DateRangePickerInput_clearDates__small: {\n padding: 6\n },\n\n DateRangePickerInput_clearDates_default: {\n ':focus': {\n background: color.core.border,\n borderRadius: '50%'\n },\n\n ':hover': {\n background: color.core.border,\n borderRadius: '50%'\n }\n },\n\n DateRangePickerInput_clearDates__hide: {\n visibility: 'hidden'\n },\n\n DateRangePickerInput_clearDates_svg: {\n fill: color.core.grayLight,\n height: 12,\n width: 15,\n verticalAlign: 'middle'\n },\n\n DateRangePickerInput_clearDates_svg__small: {\n height: 9\n },\n\n DateRangePickerInput_calendarIcon: {\n background: 'none',\n border: 0,\n color: 'inherit',\n font: 'inherit',\n lineHeight: 'normal',\n overflow: 'visible',\n\n cursor: 'pointer',\n display: 'inline-block',\n verticalAlign: 'middle',\n padding: 10,\n margin: '0 5px 0 10px'\n },\n\n DateRangePickerInput_calendarIcon_svg: {\n fill: color.core.grayLight,\n height: 15,\n width: 14,\n verticalAlign: 'middle'\n }\n };\n})(DateRangePickerInput);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _reactMomentProptypes = require('react-moment-proptypes');\n\nvar _reactMomentProptypes2 = _interopRequireDefault(_reactMomentProptypes);\n\nvar _airbnbPropTypes = require('airbnb-prop-types');\n\nvar _OpenDirectionShape = require('../shapes/OpenDirectionShape');\n\nvar _OpenDirectionShape2 = _interopRequireDefault(_OpenDirectionShape);\n\nvar _defaultPhrases = require('../defaultPhrases');\n\nvar _getPhrasePropTypes = require('../utils/getPhrasePropTypes');\n\nvar _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);\n\nvar _DateRangePickerInput = require('./DateRangePickerInput');\n\nvar _DateRangePickerInput2 = _interopRequireDefault(_DateRangePickerInput);\n\nvar _IconPositionShape = require('../shapes/IconPositionShape');\n\nvar _IconPositionShape2 = _interopRequireDefault(_IconPositionShape);\n\nvar _DisabledShape = require('../shapes/DisabledShape');\n\nvar _DisabledShape2 = _interopRequireDefault(_DisabledShape);\n\nvar _toMomentObject = require('../utils/toMomentObject');\n\nvar _toMomentObject2 = _interopRequireDefault(_toMomentObject);\n\nvar _toLocalizedDateString = require('../utils/toLocalizedDateString');\n\nvar _toLocalizedDateString2 = _interopRequireDefault(_toLocalizedDateString);\n\nvar _isInclusivelyAfterDay = require('../utils/isInclusivelyAfterDay');\n\nvar _isInclusivelyAfterDay2 = _interopRequireDefault(_isInclusivelyAfterDay);\n\nvar _isBeforeDay = require('../utils/isBeforeDay');\n\nvar _isBeforeDay2 = _interopRequireDefault(_isBeforeDay);\n\nvar _constants = require('../constants');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar propTypes = (0, _airbnbPropTypes.forbidExtraProps)({\n startDate: _reactMomentProptypes2['default'].momentObj,\n startDateId: _propTypes2['default'].string,\n startDatePlaceholderText: _propTypes2['default'].string,\n isStartDateFocused: _propTypes2['default'].bool,\n\n endDate: _reactMomentProptypes2['default'].momentObj,\n endDateId: _propTypes2['default'].string,\n endDatePlaceholderText: _propTypes2['default'].string,\n isEndDateFocused: _propTypes2['default'].bool,\n\n screenReaderMessage: _propTypes2['default'].string,\n showClearDates: _propTypes2['default'].bool,\n showCaret: _propTypes2['default'].bool,\n showDefaultInputIcon: _propTypes2['default'].bool,\n inputIconPosition: _IconPositionShape2['default'],\n disabled: _DisabledShape2['default'],\n required: _propTypes2['default'].bool,\n readOnly: _propTypes2['default'].bool,\n openDirection: _OpenDirectionShape2['default'],\n noBorder: _propTypes2['default'].bool,\n block: _propTypes2['default'].bool,\n small: _propTypes2['default'].bool,\n regular: _propTypes2['default'].bool,\n verticalSpacing: _airbnbPropTypes.nonNegativeInteger,\n\n keepOpenOnDateSelect: _propTypes2['default'].bool,\n reopenPickerOnClearDates: _propTypes2['default'].bool,\n withFullScreenPortal: _propTypes2['default'].bool,\n minimumNights: _airbnbPropTypes.nonNegativeInteger,\n isOutsideRange: _propTypes2['default'].func,\n displayFormat: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].func]),\n\n onFocusChange: _propTypes2['default'].func,\n onClose: _propTypes2['default'].func,\n onDatesChange: _propTypes2['default'].func,\n onKeyDownArrowDown: _propTypes2['default'].func,\n onKeyDownQuestionMark: _propTypes2['default'].func,\n\n customInputIcon: _propTypes2['default'].node,\n customArrowIcon: _propTypes2['default'].node,\n customCloseIcon: _propTypes2['default'].node,\n\n // accessibility\n isFocused: _propTypes2['default'].bool,\n\n // i18n\n phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.DateRangePickerInputPhrases)),\n\n isRTL: _propTypes2['default'].bool\n});\n\nvar defaultProps = {\n startDate: null,\n startDateId: _constants.START_DATE,\n startDatePlaceholderText: 'Start Date',\n isStartDateFocused: false,\n\n endDate: null,\n endDateId: _constants.END_DATE,\n endDatePlaceholderText: 'End Date',\n isEndDateFocused: false,\n\n screenReaderMessage: '',\n showClearDates: false,\n showCaret: false,\n showDefaultInputIcon: false,\n inputIconPosition: _constants.ICON_BEFORE_POSITION,\n disabled: false,\n required: false,\n readOnly: false,\n openDirection: _constants.OPEN_DOWN,\n noBorder: false,\n block: false,\n small: false,\n regular: false,\n verticalSpacing: undefined,\n\n keepOpenOnDateSelect: false,\n reopenPickerOnClearDates: false,\n withFullScreenPortal: false,\n minimumNights: 1,\n isOutsideRange: function () {\n function isOutsideRange(day) {\n return !(0, _isInclusivelyAfterDay2['default'])(day, (0, _moment2['default'])());\n }\n\n return isOutsideRange;\n }(),\n displayFormat: function () {\n function displayFormat() {\n return _moment2['default'].localeData().longDateFormat('L');\n }\n\n return displayFormat;\n }(),\n\n onFocusChange: function () {\n function onFocusChange() {}\n\n return onFocusChange;\n }(),\n onClose: function () {\n function onClose() {}\n\n return onClose;\n }(),\n onDatesChange: function () {\n function onDatesChange() {}\n\n return onDatesChange;\n }(),\n onKeyDownArrowDown: function () {\n function onKeyDownArrowDown() {}\n\n return onKeyDownArrowDown;\n }(),\n onKeyDownQuestionMark: function () {\n function onKeyDownQuestionMark() {}\n\n return onKeyDownQuestionMark;\n }(),\n\n\n customInputIcon: null,\n customArrowIcon: null,\n customCloseIcon: null,\n\n // accessibility\n isFocused: false,\n\n // i18n\n phrases: _defaultPhrases.DateRangePickerInputPhrases,\n\n isRTL: false\n};\n\nvar DateRangePickerInputController = function (_React$Component) {\n _inherits(DateRangePickerInputController, _React$Component);\n\n function DateRangePickerInputController(props) {\n _classCallCheck(this, DateRangePickerInputController);\n\n var _this = _possibleConstructorReturn(this, (DateRangePickerInputController.__proto__ || Object.getPrototypeOf(DateRangePickerInputController)).call(this, props));\n\n _this.onClearFocus = _this.onClearFocus.bind(_this);\n _this.onStartDateChange = _this.onStartDateChange.bind(_this);\n _this.onStartDateFocus = _this.onStartDateFocus.bind(_this);\n _this.onEndDateChange = _this.onEndDateChange.bind(_this);\n _this.onEndDateFocus = _this.onEndDateFocus.bind(_this);\n _this.clearDates = _this.clearDates.bind(_this);\n return _this;\n }\n\n _createClass(DateRangePickerInputController, [{\n key: 'onClearFocus',\n value: function () {\n function onClearFocus() {\n var _props = this.props,\n onFocusChange = _props.onFocusChange,\n onClose = _props.onClose,\n startDate = _props.startDate,\n endDate = _props.endDate;\n\n\n onFocusChange(null);\n onClose({ startDate: startDate, endDate: endDate });\n }\n\n return onClearFocus;\n }()\n }, {\n key: 'onEndDateChange',\n value: function () {\n function onEndDateChange(endDateString) {\n var _props2 = this.props,\n startDate = _props2.startDate,\n isOutsideRange = _props2.isOutsideRange,\n minimumNights = _props2.minimumNights,\n keepOpenOnDateSelect = _props2.keepOpenOnDateSelect,\n onDatesChange = _props2.onDatesChange;\n\n\n var endDate = (0, _toMomentObject2['default'])(endDateString, this.getDisplayFormat());\n\n var isEndDateValid = endDate && !isOutsideRange(endDate) && !(startDate && (0, _isBeforeDay2['default'])(endDate, startDate.clone().add(minimumNights, 'days')));\n if (isEndDateValid) {\n onDatesChange({ startDate: startDate, endDate: endDate });\n if (!keepOpenOnDateSelect) this.onClearFocus();\n } else {\n onDatesChange({\n startDate: startDate,\n endDate: null\n });\n }\n }\n\n return onEndDateChange;\n }()\n }, {\n key: 'onEndDateFocus',\n value: function () {\n function onEndDateFocus() {\n var _props3 = this.props,\n startDate = _props3.startDate,\n onFocusChange = _props3.onFocusChange,\n withFullScreenPortal = _props3.withFullScreenPortal,\n disabled = _props3.disabled;\n\n\n if (!startDate && withFullScreenPortal && (!disabled || disabled === _constants.END_DATE)) {\n // When the datepicker is full screen, we never want to focus the end date first\n // because there's no indication that that is the case once the datepicker is open and it\n // might confuse the user\n onFocusChange(_constants.START_DATE);\n } else if (!disabled || disabled === _constants.START_DATE) {\n onFocusChange(_constants.END_DATE);\n }\n }\n\n return onEndDateFocus;\n }()\n }, {\n key: 'onStartDateChange',\n value: function () {\n function onStartDateChange(startDateString) {\n var endDate = this.props.endDate;\n var _props4 = this.props,\n isOutsideRange = _props4.isOutsideRange,\n minimumNights = _props4.minimumNights,\n onDatesChange = _props4.onDatesChange,\n onFocusChange = _props4.onFocusChange,\n disabled = _props4.disabled;\n\n\n var startDate = (0, _toMomentObject2['default'])(startDateString, this.getDisplayFormat());\n var isEndDateBeforeStartDate = startDate && (0, _isBeforeDay2['default'])(endDate, startDate.clone().add(minimumNights, 'days'));\n var isStartDateValid = startDate && !isOutsideRange(startDate) && !(disabled === _constants.END_DATE && isEndDateBeforeStartDate);\n\n if (isStartDateValid) {\n if (isEndDateBeforeStartDate) {\n endDate = null;\n }\n\n onDatesChange({ startDate: startDate, endDate: endDate });\n onFocusChange(_constants.END_DATE);\n } else {\n onDatesChange({\n startDate: null,\n endDate: endDate\n });\n }\n }\n\n return onStartDateChange;\n }()\n }, {\n key: 'onStartDateFocus',\n value: function () {\n function onStartDateFocus() {\n var _props5 = this.props,\n disabled = _props5.disabled,\n onFocusChange = _props5.onFocusChange;\n\n if (!disabled || disabled === _constants.END_DATE) {\n onFocusChange(_constants.START_DATE);\n }\n }\n\n return onStartDateFocus;\n }()\n }, {\n key: 'getDisplayFormat',\n value: function () {\n function getDisplayFormat() {\n var displayFormat = this.props.displayFormat;\n\n return typeof displayFormat === 'string' ? displayFormat : displayFormat();\n }\n\n return getDisplayFormat;\n }()\n }, {\n key: 'getDateString',\n value: function () {\n function getDateString(date) {\n var displayFormat = this.getDisplayFormat();\n if (date && displayFormat) {\n return date && date.format(displayFormat);\n }\n return (0, _toLocalizedDateString2['default'])(date);\n }\n\n return getDateString;\n }()\n }, {\n key: 'clearDates',\n value: function () {\n function clearDates() {\n var _props6 = this.props,\n onDatesChange = _props6.onDatesChange,\n reopenPickerOnClearDates = _props6.reopenPickerOnClearDates,\n onFocusChange = _props6.onFocusChange;\n\n onDatesChange({ startDate: null, endDate: null });\n if (reopenPickerOnClearDates) {\n onFocusChange(_constants.START_DATE);\n }\n }\n\n return clearDates;\n }()\n }, {\n key: 'render',\n value: function () {\n function render() {\n var _props7 = this.props,\n startDate = _props7.startDate,\n startDateId = _props7.startDateId,\n startDatePlaceholderText = _props7.startDatePlaceholderText,\n isStartDateFocused = _props7.isStartDateFocused,\n endDate = _props7.endDate,\n endDateId = _props7.endDateId,\n endDatePlaceholderText = _props7.endDatePlaceholderText,\n isEndDateFocused = _props7.isEndDateFocused,\n screenReaderMessage = _props7.screenReaderMessage,\n showClearDates = _props7.showClearDates,\n showCaret = _props7.showCaret,\n showDefaultInputIcon = _props7.showDefaultInputIcon,\n inputIconPosition = _props7.inputIconPosition,\n customInputIcon = _props7.customInputIcon,\n customArrowIcon = _props7.customArrowIcon,\n customCloseIcon = _props7.customCloseIcon,\n disabled = _props7.disabled,\n required = _props7.required,\n readOnly = _props7.readOnly,\n openDirection = _props7.openDirection,\n isFocused = _props7.isFocused,\n phrases = _props7.phrases,\n onKeyDownArrowDown = _props7.onKeyDownArrowDown,\n onKeyDownQuestionMark = _props7.onKeyDownQuestionMark,\n isRTL = _props7.isRTL,\n noBorder = _props7.noBorder,\n block = _props7.block,\n small = _props7.small,\n regular = _props7.regular,\n verticalSpacing = _props7.verticalSpacing;\n\n\n var startDateString = this.getDateString(startDate);\n var endDateString = this.getDateString(endDate);\n\n return _react2['default'].createElement(_DateRangePickerInput2['default'], {\n startDate: startDateString,\n startDateId: startDateId,\n startDatePlaceholderText: startDatePlaceholderText,\n isStartDateFocused: isStartDateFocused,\n endDate: endDateString,\n endDateId: endDateId,\n endDatePlaceholderText: endDatePlaceholderText,\n isEndDateFocused: isEndDateFocused,\n isFocused: isFocused,\n disabled: disabled,\n required: required,\n readOnly: readOnly,\n openDirection: openDirection,\n showCaret: showCaret,\n showDefaultInputIcon: showDefaultInputIcon,\n inputIconPosition: inputIconPosition,\n customInputIcon: customInputIcon,\n customArrowIcon: customArrowIcon,\n customCloseIcon: customCloseIcon,\n phrases: phrases,\n onStartDateChange: this.onStartDateChange,\n onStartDateFocus: this.onStartDateFocus,\n onStartDateShiftTab: this.onClearFocus,\n onEndDateChange: this.onEndDateChange,\n onEndDateFocus: this.onEndDateFocus,\n onEndDateTab: this.onClearFocus,\n showClearDates: showClearDates,\n onClearDates: this.clearDates,\n screenReaderMessage: screenReaderMessage,\n onKeyDownArrowDown: onKeyDownArrowDown,\n onKeyDownQuestionMark: onKeyDownQuestionMark,\n isRTL: isRTL,\n noBorder: noBorder,\n block: block,\n small: small,\n regular: regular,\n verticalSpacing: verticalSpacing\n });\n }\n\n return render;\n }()\n }]);\n\n return DateRangePickerInputController;\n}(_react2['default'].Component);\n\nexports['default'] = DateRangePickerInputController;\n\n\nDateRangePickerInputController.propTypes = propTypes;\nDateRangePickerInputController.defaultProps = defaultProps;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PureDayPicker = exports.defaultProps = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _object = require('object.assign');\n\nvar _object2 = _interopRequireDefault(_object);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactAddonsShallowCompare = require('react-addons-shallow-compare');\n\nvar _reactAddonsShallowCompare2 = _interopRequireDefault(_reactAddonsShallowCompare);\n\nvar _airbnbPropTypes = require('airbnb-prop-types');\n\nvar _reactWithStyles = require('react-with-styles');\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _throttle = require('lodash/throttle');\n\nvar _throttle2 = _interopRequireDefault(_throttle);\n\nvar _isTouchDevice = require('is-touch-device');\n\nvar _isTouchDevice2 = _interopRequireDefault(_isTouchDevice);\n\nvar _reactOutsideClickHandler = require('react-outside-click-handler');\n\nvar _reactOutsideClickHandler2 = _interopRequireDefault(_reactOutsideClickHandler);\n\nvar _defaultPhrases = require('../defaultPhrases');\n\nvar _getPhrasePropTypes = require('../utils/getPhrasePropTypes');\n\nvar _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);\n\nvar _CalendarMonthGrid = require('./CalendarMonthGrid');\n\nvar _CalendarMonthGrid2 = _interopRequireDefault(_CalendarMonthGrid);\n\nvar _DayPickerNavigation = require('./DayPickerNavigation');\n\nvar _DayPickerNavigation2 = _interopRequireDefault(_DayPickerNavigation);\n\nvar _DayPickerKeyboardShortcuts = require('./DayPickerKeyboardShortcuts');\n\nvar _DayPickerKeyboardShortcuts2 = _interopRequireDefault(_DayPickerKeyboardShortcuts);\n\nvar _getNumberOfCalendarMonthWeeks = require('../utils/getNumberOfCalendarMonthWeeks');\n\nvar _getNumberOfCalendarMonthWeeks2 = _interopRequireDefault(_getNumberOfCalendarMonthWeeks);\n\nvar _getCalendarMonthWidth = require('../utils/getCalendarMonthWidth');\n\nvar _getCalendarMonthWidth2 = _interopRequireDefault(_getCalendarMonthWidth);\n\nvar _calculateDimension = require('../utils/calculateDimension');\n\nvar _calculateDimension2 = _interopRequireDefault(_calculateDimension);\n\nvar _getActiveElement = require('../utils/getActiveElement');\n\nvar _getActiveElement2 = _interopRequireDefault(_getActiveElement);\n\nvar _isDayVisible = require('../utils/isDayVisible');\n\nvar _isDayVisible2 = _interopRequireDefault(_isDayVisible);\n\nvar _ModifiersShape = require('../shapes/ModifiersShape');\n\nvar _ModifiersShape2 = _interopRequireDefault(_ModifiersShape);\n\nvar _ScrollableOrientationShape = require('../shapes/ScrollableOrientationShape');\n\nvar _ScrollableOrientationShape2 = _interopRequireDefault(_ScrollableOrientationShape);\n\nvar _DayOfWeekShape = require('../shapes/DayOfWeekShape');\n\nvar _DayOfWeekShape2 = _interopRequireDefault(_DayOfWeekShape);\n\nvar _CalendarInfoPositionShape = require('../shapes/CalendarInfoPositionShape');\n\nvar _CalendarInfoPositionShape2 = _interopRequireDefault(_CalendarInfoPositionShape);\n\nvar _constants = require('../constants');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar MONTH_PADDING = 23;\nvar PREV_TRANSITION = 'prev';\nvar NEXT_TRANSITION = 'next';\nvar MONTH_SELECTION_TRANSITION = 'month_selection';\nvar YEAR_SELECTION_TRANSITION = 'year_selection';\n\nvar propTypes = (0, _airbnbPropTypes.forbidExtraProps)((0, _object2['default'])({}, _reactWithStyles.withStylesPropTypes, {\n\n // calendar presentation props\n enableOutsideDays: _propTypes2['default'].bool,\n numberOfMonths: _propTypes2['default'].number,\n orientation: _ScrollableOrientationShape2['default'],\n withPortal: _propTypes2['default'].bool,\n onOutsideClick: _propTypes2['default'].func,\n hidden: _propTypes2['default'].bool,\n initialVisibleMonth: _propTypes2['default'].func,\n firstDayOfWeek: _DayOfWeekShape2['default'],\n renderCalendarInfo: _propTypes2['default'].func,\n calendarInfoPosition: _CalendarInfoPositionShape2['default'],\n hideKeyboardShortcutsPanel: _propTypes2['default'].bool,\n daySize: _airbnbPropTypes.nonNegativeInteger,\n isRTL: _propTypes2['default'].bool,\n verticalHeight: _airbnbPropTypes.nonNegativeInteger,\n noBorder: _propTypes2['default'].bool,\n transitionDuration: _airbnbPropTypes.nonNegativeInteger,\n verticalBorderSpacing: _airbnbPropTypes.nonNegativeInteger,\n horizontalMonthPadding: _airbnbPropTypes.nonNegativeInteger,\n\n // navigation props\n navPrev: _propTypes2['default'].node,\n navNext: _propTypes2['default'].node,\n noNavButtons: _propTypes2['default'].bool,\n onPrevMonthClick: _propTypes2['default'].func,\n onNextMonthClick: _propTypes2['default'].func,\n onMonthChange: _propTypes2['default'].func,\n onYearChange: _propTypes2['default'].func,\n onMultiplyScrollableMonths: _propTypes2['default'].func, // VERTICAL_SCROLLABLE daypickers only\n\n // month props\n renderMonthText: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'),\n renderMonthElement: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'),\n\n // day props\n modifiers: _propTypes2['default'].objectOf(_propTypes2['default'].objectOf(_ModifiersShape2['default'])),\n renderCalendarDay: _propTypes2['default'].func,\n renderDayContents: _propTypes2['default'].func,\n onDayClick: _propTypes2['default'].func,\n onDayMouseEnter: _propTypes2['default'].func,\n onDayMouseLeave: _propTypes2['default'].func,\n\n // accessibility props\n isFocused: _propTypes2['default'].bool,\n getFirstFocusableDay: _propTypes2['default'].func,\n onBlur: _propTypes2['default'].func,\n showKeyboardShortcuts: _propTypes2['default'].bool,\n\n // internationalization\n monthFormat: _propTypes2['default'].string,\n weekDayFormat: _propTypes2['default'].string,\n phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.DayPickerPhrases)),\n dayAriaLabelFormat: _propTypes2['default'].string\n}));\n\nvar defaultProps = exports.defaultProps = {\n // calendar presentation props\n enableOutsideDays: false,\n numberOfMonths: 2,\n orientation: _constants.HORIZONTAL_ORIENTATION,\n withPortal: false,\n onOutsideClick: function () {\n function onOutsideClick() {}\n\n return onOutsideClick;\n }(),\n\n hidden: false,\n initialVisibleMonth: function () {\n function initialVisibleMonth() {\n return (0, _moment2['default'])();\n }\n\n return initialVisibleMonth;\n }(),\n firstDayOfWeek: null,\n renderCalendarInfo: null,\n calendarInfoPosition: _constants.INFO_POSITION_BOTTOM,\n hideKeyboardShortcutsPanel: false,\n daySize: _constants.DAY_SIZE,\n isRTL: false,\n verticalHeight: null,\n noBorder: false,\n transitionDuration: undefined,\n verticalBorderSpacing: undefined,\n horizontalMonthPadding: 13,\n\n // navigation props\n navPrev: null,\n navNext: null,\n noNavButtons: false,\n onPrevMonthClick: function () {\n function onPrevMonthClick() {}\n\n return onPrevMonthClick;\n }(),\n onNextMonthClick: function () {\n function onNextMonthClick() {}\n\n return onNextMonthClick;\n }(),\n onMonthChange: function () {\n function onMonthChange() {}\n\n return onMonthChange;\n }(),\n onYearChange: function () {\n function onYearChange() {}\n\n return onYearChange;\n }(),\n onMultiplyScrollableMonths: function () {\n function onMultiplyScrollableMonths() {}\n\n return onMultiplyScrollableMonths;\n }(),\n\n\n // month props\n renderMonthText: null,\n renderMonthElement: null,\n\n // day props\n modifiers: {},\n renderCalendarDay: undefined,\n renderDayContents: null,\n onDayClick: function () {\n function onDayClick() {}\n\n return onDayClick;\n }(),\n onDayMouseEnter: function () {\n function onDayMouseEnter() {}\n\n return onDayMouseEnter;\n }(),\n onDayMouseLeave: function () {\n function onDayMouseLeave() {}\n\n return onDayMouseLeave;\n }(),\n\n\n // accessibility props\n isFocused: false,\n getFirstFocusableDay: null,\n onBlur: function () {\n function onBlur() {}\n\n return onBlur;\n }(),\n\n showKeyboardShortcuts: false,\n\n // internationalization\n monthFormat: 'MMMM YYYY',\n weekDayFormat: 'dd',\n phrases: _defaultPhrases.DayPickerPhrases,\n dayAriaLabelFormat: undefined\n};\n\nvar DayPicker = function (_React$Component) {\n _inherits(DayPicker, _React$Component);\n\n function DayPicker(props) {\n _classCallCheck(this, DayPicker);\n\n var _this = _possibleConstructorReturn(this, (DayPicker.__proto__ || Object.getPrototypeOf(DayPicker)).call(this, props));\n\n var currentMonth = props.hidden ? (0, _moment2['default'])() : props.initialVisibleMonth();\n\n var focusedDate = currentMonth.clone().startOf('month');\n if (props.getFirstFocusableDay) {\n focusedDate = props.getFirstFocusableDay(currentMonth);\n }\n\n var horizontalMonthPadding = props.horizontalMonthPadding;\n\n\n var translationValue = props.isRTL && _this.isHorizontal() ? -(0, _getCalendarMonthWidth2['default'])(props.daySize, horizontalMonthPadding) : 0;\n\n _this.hasSetInitialVisibleMonth = !props.hidden;\n _this.state = {\n currentMonth: currentMonth,\n monthTransition: null,\n translationValue: translationValue,\n scrollableMonthMultiple: 1,\n calendarMonthWidth: (0, _getCalendarMonthWidth2['default'])(props.daySize, horizontalMonthPadding),\n focusedDate: !props.hidden || props.isFocused ? focusedDate : null,\n nextFocusedDate: null,\n showKeyboardShortcuts: props.showKeyboardShortcuts,\n onKeyboardShortcutsPanelClose: function () {\n function onKeyboardShortcutsPanelClose() {}\n\n return onKeyboardShortcutsPanelClose;\n }(),\n\n isTouchDevice: (0, _isTouchDevice2['default'])(),\n withMouseInteractions: true,\n calendarInfoWidth: 0,\n monthTitleHeight: null,\n hasSetHeight: false\n };\n\n _this.setCalendarMonthWeeks(currentMonth);\n\n _this.calendarMonthGridHeight = 0;\n _this.setCalendarInfoWidthTimeout = null;\n\n _this.onKeyDown = _this.onKeyDown.bind(_this);\n _this.throttledKeyDown = (0, _throttle2['default'])(_this.onFinalKeyDown, 200, { trailing: false });\n _this.onPrevMonthClick = _this.onPrevMonthClick.bind(_this);\n _this.onNextMonthClick = _this.onNextMonthClick.bind(_this);\n _this.onMonthChange = _this.onMonthChange.bind(_this);\n _this.onYearChange = _this.onYearChange.bind(_this);\n\n _this.multiplyScrollableMonths = _this.multiplyScrollableMonths.bind(_this);\n _this.updateStateAfterMonthTransition = _this.updateStateAfterMonthTransition.bind(_this);\n\n _this.openKeyboardShortcutsPanel = _this.openKeyboardShortcutsPanel.bind(_this);\n _this.closeKeyboardShortcutsPanel = _this.closeKeyboardShortcutsPanel.bind(_this);\n\n _this.setCalendarInfoRef = _this.setCalendarInfoRef.bind(_this);\n _this.setContainerRef = _this.setContainerRef.bind(_this);\n _this.setTransitionContainerRef = _this.setTransitionContainerRef.bind(_this);\n _this.setMonthTitleHeight = _this.setMonthTitleHeight.bind(_this);\n return _this;\n }\n\n _createClass(DayPicker, [{\n key: 'componentDidMount',\n value: function () {\n function componentDidMount() {\n var currentMonth = this.state.currentMonth;\n\n if (this.calendarInfo) {\n this.setState({\n isTouchDevice: (0, _isTouchDevice2['default'])(),\n calendarInfoWidth: (0, _calculateDimension2['default'])(this.calendarInfo, 'width', true, true)\n });\n } else {\n this.setState({ isTouchDevice: (0, _isTouchDevice2['default'])() });\n }\n\n this.setCalendarMonthWeeks(currentMonth);\n }\n\n return componentDidMount;\n }()\n }, {\n key: 'componentWillReceiveProps',\n value: function () {\n function componentWillReceiveProps(nextProps) {\n var hidden = nextProps.hidden,\n isFocused = nextProps.isFocused,\n showKeyboardShortcuts = nextProps.showKeyboardShortcuts,\n onBlur = nextProps.onBlur,\n renderMonthText = nextProps.renderMonthText,\n horizontalMonthPadding = nextProps.horizontalMonthPadding;\n var currentMonth = this.state.currentMonth;\n\n\n if (!hidden) {\n if (!this.hasSetInitialVisibleMonth) {\n this.hasSetInitialVisibleMonth = true;\n this.setState({\n currentMonth: nextProps.initialVisibleMonth()\n });\n }\n }\n\n var _props = this.props,\n daySize = _props.daySize,\n prevIsFocused = _props.isFocused,\n prevRenderMonthText = _props.renderMonthText;\n\n\n if (nextProps.daySize !== daySize) {\n this.setState({\n calendarMonthWidth: (0, _getCalendarMonthWidth2['default'])(nextProps.daySize, horizontalMonthPadding)\n });\n }\n\n if (isFocused !== prevIsFocused) {\n if (isFocused) {\n var focusedDate = this.getFocusedDay(currentMonth);\n\n var onKeyboardShortcutsPanelClose = this.state.onKeyboardShortcutsPanelClose;\n\n if (nextProps.showKeyboardShortcuts) {\n // the ? shortcut came from the input and we should return input there once it is close\n onKeyboardShortcutsPanelClose = onBlur;\n }\n\n this.setState({\n showKeyboardShortcuts: showKeyboardShortcuts,\n onKeyboardShortcutsPanelClose: onKeyboardShortcutsPanelClose,\n focusedDate: focusedDate,\n withMouseInteractions: false\n });\n } else {\n this.setState({ focusedDate: null });\n }\n }\n\n if (renderMonthText !== prevRenderMonthText) {\n this.setState({\n monthTitleHeight: null\n });\n }\n }\n\n return componentWillReceiveProps;\n }()\n }, {\n key: 'shouldComponentUpdate',\n value: function () {\n function shouldComponentUpdate(nextProps, nextState) {\n return (0, _reactAddonsShallowCompare2['default'])(this, nextProps, nextState);\n }\n\n return shouldComponentUpdate;\n }()\n }, {\n key: 'componentWillUpdate',\n value: function () {\n function componentWillUpdate() {\n var _this2 = this;\n\n var transitionDuration = this.props.transitionDuration;\n\n // Calculating the dimensions trigger a DOM repaint which\n // breaks the CSS transition.\n // The setTimeout will wait until the transition ends.\n\n if (this.calendarInfo) {\n this.setCalendarInfoWidthTimeout = setTimeout(function () {\n var calendarInfoWidth = _this2.state.calendarInfoWidth;\n\n var calendarInfoPanelWidth = (0, _calculateDimension2['default'])(_this2.calendarInfo, 'width', true, true);\n if (calendarInfoWidth !== calendarInfoPanelWidth) {\n _this2.setState({\n calendarInfoWidth: calendarInfoPanelWidth\n });\n }\n }, transitionDuration);\n }\n }\n\n return componentWillUpdate;\n }()\n }, {\n key: 'componentDidUpdate',\n value: function () {\n function componentDidUpdate(prevProps) {\n var _props2 = this.props,\n orientation = _props2.orientation,\n daySize = _props2.daySize,\n isFocused = _props2.isFocused,\n numberOfMonths = _props2.numberOfMonths;\n var _state = this.state,\n focusedDate = _state.focusedDate,\n monthTitleHeight = _state.monthTitleHeight;\n\n\n if (this.isHorizontal() && (orientation !== prevProps.orientation || daySize !== prevProps.daySize)) {\n var visibleCalendarWeeks = this.calendarMonthWeeks.slice(1, numberOfMonths + 1);\n var calendarMonthWeeksHeight = Math.max.apply(Math, [0].concat(_toConsumableArray(visibleCalendarWeeks))) * (daySize - 1);\n var newMonthHeight = monthTitleHeight + calendarMonthWeeksHeight + 1;\n this.adjustDayPickerHeight(newMonthHeight);\n }\n\n if (!prevProps.isFocused && isFocused && !focusedDate) {\n this.container.focus();\n }\n }\n\n return componentDidUpdate;\n }()\n }, {\n key: 'componentWillUnmount',\n value: function () {\n function componentWillUnmount() {\n clearTimeout(this.setCalendarInfoWidthTimeout);\n }\n\n return componentWillUnmount;\n }()\n }, {\n key: 'onKeyDown',\n value: function () {\n function onKeyDown(e) {\n e.stopPropagation();\n if (!_constants.MODIFIER_KEY_NAMES.has(e.key)) {\n this.throttledKeyDown(e);\n }\n }\n\n return onKeyDown;\n }()\n }, {\n key: 'onFinalKeyDown',\n value: function () {\n function onFinalKeyDown(e) {\n this.setState({ withMouseInteractions: false });\n\n var _props3 = this.props,\n onBlur = _props3.onBlur,\n isRTL = _props3.isRTL;\n var _state2 = this.state,\n focusedDate = _state2.focusedDate,\n showKeyboardShortcuts = _state2.showKeyboardShortcuts;\n\n if (!focusedDate) return;\n\n var newFocusedDate = focusedDate.clone();\n\n var didTransitionMonth = false;\n\n // focus might be anywhere when the keyboard shortcuts panel is opened so we want to\n // return it to wherever it was before when the panel was opened\n var activeElement = (0, _getActiveElement2['default'])();\n var onKeyboardShortcutsPanelClose = function () {\n function onKeyboardShortcutsPanelClose() {\n if (activeElement) activeElement.focus();\n }\n\n return onKeyboardShortcutsPanelClose;\n }();\n\n switch (e.key) {\n case 'ArrowUp':\n e.preventDefault();\n newFocusedDate.subtract(1, 'week');\n didTransitionMonth = this.maybeTransitionPrevMonth(newFocusedDate);\n break;\n case 'ArrowLeft':\n e.preventDefault();\n if (isRTL) {\n newFocusedDate.add(1, 'day');\n } else {\n newFocusedDate.subtract(1, 'day');\n }\n didTransitionMonth = this.maybeTransitionPrevMonth(newFocusedDate);\n break;\n case 'Home':\n e.preventDefault();\n newFocusedDate.startOf('week');\n didTransitionMonth = this.maybeTransitionPrevMonth(newFocusedDate);\n break;\n case 'PageUp':\n e.preventDefault();\n newFocusedDate.subtract(1, 'month');\n didTransitionMonth = this.maybeTransitionPrevMonth(newFocusedDate);\n break;\n\n case 'ArrowDown':\n e.preventDefault();\n newFocusedDate.add(1, 'week');\n didTransitionMonth = this.maybeTransitionNextMonth(newFocusedDate);\n break;\n case 'ArrowRight':\n e.preventDefault();\n if (isRTL) {\n newFocusedDate.subtract(1, 'day');\n } else {\n newFocusedDate.add(1, 'day');\n }\n didTransitionMonth = this.maybeTransitionNextMonth(newFocusedDate);\n break;\n case 'End':\n e.preventDefault();\n newFocusedDate.endOf('week');\n didTransitionMonth = this.maybeTransitionNextMonth(newFocusedDate);\n break;\n case 'PageDown':\n e.preventDefault();\n newFocusedDate.add(1, 'month');\n didTransitionMonth = this.maybeTransitionNextMonth(newFocusedDate);\n break;\n\n case '?':\n this.openKeyboardShortcutsPanel(onKeyboardShortcutsPanelClose);\n break;\n\n case 'Escape':\n if (showKeyboardShortcuts) {\n this.closeKeyboardShortcutsPanel();\n } else {\n onBlur();\n }\n break;\n\n default:\n break;\n }\n\n // If there was a month transition, do not update the focused date until the transition has\n // completed. Otherwise, attempting to focus on a DOM node may interrupt the CSS animation. If\n // didTransitionMonth is true, the focusedDate gets updated in #updateStateAfterMonthTransition\n if (!didTransitionMonth) {\n this.setState({\n focusedDate: newFocusedDate\n });\n }\n }\n\n return onFinalKeyDown;\n }()\n }, {\n key: 'onPrevMonthClick',\n value: function () {\n function onPrevMonthClick(nextFocusedDate, e) {\n var _props4 = this.props,\n daySize = _props4.daySize,\n isRTL = _props4.isRTL,\n numberOfMonths = _props4.numberOfMonths;\n var _state3 = this.state,\n calendarMonthWidth = _state3.calendarMonthWidth,\n monthTitleHeight = _state3.monthTitleHeight;\n\n\n if (e) e.preventDefault();\n\n var translationValue = void 0;\n if (this.isVertical()) {\n var calendarMonthWeeksHeight = this.calendarMonthWeeks[0] * (daySize - 1);\n translationValue = monthTitleHeight + calendarMonthWeeksHeight + 1;\n } else if (this.isHorizontal()) {\n translationValue = calendarMonthWidth;\n if (isRTL) {\n translationValue = -2 * calendarMonthWidth;\n }\n\n var visibleCalendarWeeks = this.calendarMonthWeeks.slice(0, numberOfMonths);\n var _calendarMonthWeeksHeight = Math.max.apply(Math, [0].concat(_toConsumableArray(visibleCalendarWeeks))) * (daySize - 1);\n var newMonthHeight = monthTitleHeight + _calendarMonthWeeksHeight + 1;\n this.adjustDayPickerHeight(newMonthHeight);\n }\n\n this.setState({\n monthTransition: PREV_TRANSITION,\n translationValue: translationValue,\n focusedDate: null,\n nextFocusedDate: nextFocusedDate\n });\n }\n\n return onPrevMonthClick;\n }()\n }, {\n key: 'onMonthChange',\n value: function () {\n function onMonthChange(currentMonth) {\n this.setCalendarMonthWeeks(currentMonth);\n this.calculateAndSetDayPickerHeight();\n\n // Translation value is a hack to force an invisible transition that\n // properly rerenders the CalendarMonthGrid\n this.setState({\n monthTransition: MONTH_SELECTION_TRANSITION,\n translationValue: 0.00001,\n focusedDate: null,\n nextFocusedDate: currentMonth,\n currentMonth: currentMonth\n });\n }\n\n return onMonthChange;\n }()\n }, {\n key: 'onYearChange',\n value: function () {\n function onYearChange(currentMonth) {\n this.setCalendarMonthWeeks(currentMonth);\n this.calculateAndSetDayPickerHeight();\n\n // Translation value is a hack to force an invisible transition that\n // properly rerenders the CalendarMonthGrid\n this.setState({\n monthTransition: YEAR_SELECTION_TRANSITION,\n translationValue: 0.0001,\n focusedDate: null,\n nextFocusedDate: currentMonth,\n currentMonth: currentMonth\n });\n }\n\n return onYearChange;\n }()\n }, {\n key: 'onNextMonthClick',\n value: function () {\n function onNextMonthClick(nextFocusedDate, e) {\n var _props5 = this.props,\n isRTL = _props5.isRTL,\n numberOfMonths = _props5.numberOfMonths,\n daySize = _props5.daySize;\n var _state4 = this.state,\n calendarMonthWidth = _state4.calendarMonthWidth,\n monthTitleHeight = _state4.monthTitleHeight;\n\n\n if (e) e.preventDefault();\n\n var translationValue = void 0;\n\n if (this.isVertical()) {\n var firstVisibleMonthWeeks = this.calendarMonthWeeks[1];\n var calendarMonthWeeksHeight = firstVisibleMonthWeeks * (daySize - 1);\n translationValue = -(monthTitleHeight + calendarMonthWeeksHeight + 1);\n }\n\n if (this.isHorizontal()) {\n translationValue = -calendarMonthWidth;\n if (isRTL) {\n translationValue = 0;\n }\n\n var visibleCalendarWeeks = this.calendarMonthWeeks.slice(2, numberOfMonths + 2);\n var _calendarMonthWeeksHeight2 = Math.max.apply(Math, [0].concat(_toConsumableArray(visibleCalendarWeeks))) * (daySize - 1);\n var newMonthHeight = monthTitleHeight + _calendarMonthWeeksHeight2 + 1;\n this.adjustDayPickerHeight(newMonthHeight);\n }\n\n this.setState({\n monthTransition: NEXT_TRANSITION,\n translationValue: translationValue,\n focusedDate: null,\n nextFocusedDate: nextFocusedDate\n });\n }\n\n return onNextMonthClick;\n }()\n }, {\n key: 'getFirstDayOfWeek',\n value: function () {\n function getFirstDayOfWeek() {\n var firstDayOfWeek = this.props.firstDayOfWeek;\n\n if (firstDayOfWeek == null) {\n return _moment2['default'].localeData().firstDayOfWeek();\n }\n\n return firstDayOfWeek;\n }\n\n return getFirstDayOfWeek;\n }()\n }, {\n key: 'getFirstVisibleIndex',\n value: function () {\n function getFirstVisibleIndex() {\n var orientation = this.props.orientation;\n var monthTransition = this.state.monthTransition;\n\n\n if (orientation === _constants.VERTICAL_SCROLLABLE) return 0;\n\n var firstVisibleMonthIndex = 1;\n if (monthTransition === PREV_TRANSITION) {\n firstVisibleMonthIndex -= 1;\n } else if (monthTransition === NEXT_TRANSITION) {\n firstVisibleMonthIndex += 1;\n }\n\n return firstVisibleMonthIndex;\n }\n\n return getFirstVisibleIndex;\n }()\n }, {\n key: 'getFocusedDay',\n value: function () {\n function getFocusedDay(newMonth) {\n var _props6 = this.props,\n getFirstFocusableDay = _props6.getFirstFocusableDay,\n numberOfMonths = _props6.numberOfMonths;\n\n\n var focusedDate = void 0;\n if (getFirstFocusableDay) {\n focusedDate = getFirstFocusableDay(newMonth);\n }\n\n if (newMonth && (!focusedDate || !(0, _isDayVisible2['default'])(focusedDate, newMonth, numberOfMonths))) {\n focusedDate = newMonth.clone().startOf('month');\n }\n\n return focusedDate;\n }\n\n return getFocusedDay;\n }()\n }, {\n key: 'setMonthTitleHeight',\n value: function () {\n function setMonthTitleHeight(monthTitleHeight) {\n var _this3 = this;\n\n this.setState({\n monthTitleHeight: monthTitleHeight\n }, function () {\n _this3.calculateAndSetDayPickerHeight();\n });\n }\n\n return setMonthTitleHeight;\n }()\n }, {\n key: 'setCalendarMonthWeeks',\n value: function () {\n function setCalendarMonthWeeks(currentMonth) {\n var numberOfMonths = this.props.numberOfMonths;\n\n\n this.calendarMonthWeeks = [];\n var month = currentMonth.clone().subtract(1, 'months');\n var firstDayOfWeek = this.getFirstDayOfWeek();\n for (var i = 0; i < numberOfMonths + 2; i += 1) {\n var numberOfWeeks = (0, _getNumberOfCalendarMonthWeeks2['default'])(month, firstDayOfWeek);\n this.calendarMonthWeeks.push(numberOfWeeks);\n month = month.add(1, 'months');\n }\n }\n\n return setCalendarMonthWeeks;\n }()\n }, {\n key: 'setContainerRef',\n value: function () {\n function setContainerRef(ref) {\n this.container = ref;\n }\n\n return setContainerRef;\n }()\n }, {\n key: 'setCalendarInfoRef',\n value: function () {\n function setCalendarInfoRef(ref) {\n this.calendarInfo = ref;\n }\n\n return setCalendarInfoRef;\n }()\n }, {\n key: 'setTransitionContainerRef',\n value: function () {\n function setTransitionContainerRef(ref) {\n this.transitionContainer = ref;\n }\n\n return setTransitionContainerRef;\n }()\n }, {\n key: 'maybeTransitionNextMonth',\n value: function () {\n function maybeTransitionNextMonth(newFocusedDate) {\n var numberOfMonths = this.props.numberOfMonths;\n var _state5 = this.state,\n currentMonth = _state5.currentMonth,\n focusedDate = _state5.focusedDate;\n\n\n var newFocusedDateMonth = newFocusedDate.month();\n var focusedDateMonth = focusedDate.month();\n var isNewFocusedDateVisible = (0, _isDayVisible2['default'])(newFocusedDate, currentMonth, numberOfMonths);\n if (newFocusedDateMonth !== focusedDateMonth && !isNewFocusedDateVisible) {\n this.onNextMonthClick(newFocusedDate);\n return true;\n }\n\n return false;\n }\n\n return maybeTransitionNextMonth;\n }()\n }, {\n key: 'maybeTransitionPrevMonth',\n value: function () {\n function maybeTransitionPrevMonth(newFocusedDate) {\n var numberOfMonths = this.props.numberOfMonths;\n var _state6 = this.state,\n currentMonth = _state6.currentMonth,\n focusedDate = _state6.focusedDate;\n\n\n var newFocusedDateMonth = newFocusedDate.month();\n var focusedDateMonth = focusedDate.month();\n var isNewFocusedDateVisible = (0, _isDayVisible2['default'])(newFocusedDate, currentMonth, numberOfMonths);\n if (newFocusedDateMonth !== focusedDateMonth && !isNewFocusedDateVisible) {\n this.onPrevMonthClick(newFocusedDate);\n return true;\n }\n\n return false;\n }\n\n return maybeTransitionPrevMonth;\n }()\n }, {\n key: 'multiplyScrollableMonths',\n value: function () {\n function multiplyScrollableMonths(e) {\n var onMultiplyScrollableMonths = this.props.onMultiplyScrollableMonths;\n\n if (e) e.preventDefault();\n\n if (onMultiplyScrollableMonths) onMultiplyScrollableMonths(e);\n\n this.setState(function (_ref) {\n var scrollableMonthMultiple = _ref.scrollableMonthMultiple;\n return {\n scrollableMonthMultiple: scrollableMonthMultiple + 1\n };\n });\n }\n\n return multiplyScrollableMonths;\n }()\n }, {\n key: 'isHorizontal',\n value: function () {\n function isHorizontal() {\n var orientation = this.props.orientation;\n\n return orientation === _constants.HORIZONTAL_ORIENTATION;\n }\n\n return isHorizontal;\n }()\n }, {\n key: 'isVertical',\n value: function () {\n function isVertical() {\n var orientation = this.props.orientation;\n\n return orientation === _constants.VERTICAL_ORIENTATION || orientation === _constants.VERTICAL_SCROLLABLE;\n }\n\n return isVertical;\n }()\n }, {\n key: 'updateStateAfterMonthTransition',\n value: function () {\n function updateStateAfterMonthTransition() {\n var _this4 = this;\n\n var _props7 = this.props,\n onPrevMonthClick = _props7.onPrevMonthClick,\n onNextMonthClick = _props7.onNextMonthClick,\n numberOfMonths = _props7.numberOfMonths,\n onMonthChange = _props7.onMonthChange,\n onYearChange = _props7.onYearChange,\n isRTL = _props7.isRTL;\n var _state7 = this.state,\n currentMonth = _state7.currentMonth,\n monthTransition = _state7.monthTransition,\n focusedDate = _state7.focusedDate,\n nextFocusedDate = _state7.nextFocusedDate,\n withMouseInteractions = _state7.withMouseInteractions,\n calendarMonthWidth = _state7.calendarMonthWidth;\n\n\n if (!monthTransition) return;\n\n var newMonth = currentMonth.clone();\n var firstDayOfWeek = this.getFirstDayOfWeek();\n if (monthTransition === PREV_TRANSITION) {\n newMonth.subtract(1, 'month');\n if (onPrevMonthClick) onPrevMonthClick(newMonth);\n var newInvisibleMonth = newMonth.clone().subtract(1, 'month');\n var numberOfWeeks = (0, _getNumberOfCalendarMonthWeeks2['default'])(newInvisibleMonth, firstDayOfWeek);\n this.calendarMonthWeeks = [numberOfWeeks].concat(_toConsumableArray(this.calendarMonthWeeks.slice(0, -1)));\n } else if (monthTransition === NEXT_TRANSITION) {\n newMonth.add(1, 'month');\n if (onNextMonthClick) onNextMonthClick(newMonth);\n var _newInvisibleMonth = newMonth.clone().add(numberOfMonths, 'month');\n var _numberOfWeeks = (0, _getNumberOfCalendarMonthWeeks2['default'])(_newInvisibleMonth, firstDayOfWeek);\n this.calendarMonthWeeks = [].concat(_toConsumableArray(this.calendarMonthWeeks.slice(1)), [_numberOfWeeks]);\n } else if (monthTransition === MONTH_SELECTION_TRANSITION) {\n if (onMonthChange) onMonthChange(newMonth);\n } else if (monthTransition === YEAR_SELECTION_TRANSITION) {\n if (onYearChange) onYearChange(newMonth);\n }\n\n var newFocusedDate = null;\n if (nextFocusedDate) {\n newFocusedDate = nextFocusedDate;\n } else if (!focusedDate && !withMouseInteractions) {\n newFocusedDate = this.getFocusedDay(newMonth);\n }\n\n this.setState({\n currentMonth: newMonth,\n monthTransition: null,\n translationValue: isRTL && this.isHorizontal() ? -calendarMonthWidth : 0,\n nextFocusedDate: null,\n focusedDate: newFocusedDate\n }, function () {\n // we don't want to focus on the relevant calendar day after a month transition\n // if the user is navigating around using a mouse\n if (withMouseInteractions) {\n var activeElement = (0, _getActiveElement2['default'])();\n if (activeElement && activeElement !== document.body && _this4.container.contains(activeElement)) {\n activeElement.blur();\n }\n }\n });\n }\n\n return updateStateAfterMonthTransition;\n }()\n }, {\n key: 'adjustDayPickerHeight',\n value: function () {\n function adjustDayPickerHeight(newMonthHeight) {\n var _this5 = this;\n\n var monthHeight = newMonthHeight + MONTH_PADDING;\n if (monthHeight !== this.calendarMonthGridHeight) {\n this.transitionContainer.style.height = String(monthHeight) + 'px';\n if (!this.calendarMonthGridHeight) {\n setTimeout(function () {\n _this5.setState({ hasSetHeight: true });\n }, 0);\n }\n this.calendarMonthGridHeight = monthHeight;\n }\n }\n\n return adjustDayPickerHeight;\n }()\n }, {\n key: 'calculateAndSetDayPickerHeight',\n value: function () {\n function calculateAndSetDayPickerHeight() {\n var _props8 = this.props,\n daySize = _props8.daySize,\n numberOfMonths = _props8.numberOfMonths;\n var monthTitleHeight = this.state.monthTitleHeight;\n\n\n var visibleCalendarWeeks = this.calendarMonthWeeks.slice(1, numberOfMonths + 1);\n var calendarMonthWeeksHeight = Math.max.apply(Math, [0].concat(_toConsumableArray(visibleCalendarWeeks))) * (daySize - 1);\n var newMonthHeight = monthTitleHeight + calendarMonthWeeksHeight + 1;\n\n if (this.isHorizontal()) {\n this.adjustDayPickerHeight(newMonthHeight);\n }\n }\n\n return calculateAndSetDayPickerHeight;\n }()\n }, {\n key: 'openKeyboardShortcutsPanel',\n value: function () {\n function openKeyboardShortcutsPanel(onCloseCallBack) {\n this.setState({\n showKeyboardShortcuts: true,\n onKeyboardShortcutsPanelClose: onCloseCallBack\n });\n }\n\n return openKeyboardShortcutsPanel;\n }()\n }, {\n key: 'closeKeyboardShortcutsPanel',\n value: function () {\n function closeKeyboardShortcutsPanel() {\n var onKeyboardShortcutsPanelClose = this.state.onKeyboardShortcutsPanelClose;\n\n\n if (onKeyboardShortcutsPanelClose) {\n onKeyboardShortcutsPanelClose();\n }\n\n this.setState({\n onKeyboardShortcutsPanelClose: null,\n showKeyboardShortcuts: false\n });\n }\n\n return closeKeyboardShortcutsPanel;\n }()\n }, {\n key: 'renderNavigation',\n value: function () {\n function renderNavigation() {\n var _this6 = this;\n\n var _props9 = this.props,\n navPrev = _props9.navPrev,\n navNext = _props9.navNext,\n noNavButtons = _props9.noNavButtons,\n orientation = _props9.orientation,\n phrases = _props9.phrases,\n isRTL = _props9.isRTL;\n\n\n if (noNavButtons) {\n return null;\n }\n\n var onNextMonthClick = void 0;\n if (orientation === _constants.VERTICAL_SCROLLABLE) {\n onNextMonthClick = this.multiplyScrollableMonths;\n } else {\n onNextMonthClick = function () {\n function onNextMonthClick(e) {\n _this6.onNextMonthClick(null, e);\n }\n\n return onNextMonthClick;\n }();\n }\n\n return _react2['default'].createElement(_DayPickerNavigation2['default'], {\n onPrevMonthClick: function () {\n function onPrevMonthClick(e) {\n _this6.onPrevMonthClick(null, e);\n }\n\n return onPrevMonthClick;\n }(),\n onNextMonthClick: onNextMonthClick,\n navPrev: navPrev,\n navNext: navNext,\n orientation: orientation,\n phrases: phrases,\n isRTL: isRTL\n });\n }\n\n return renderNavigation;\n }()\n }, {\n key: 'renderWeekHeader',\n value: function () {\n function renderWeekHeader(index) {\n var _props10 = this.props,\n daySize = _props10.daySize,\n horizontalMonthPadding = _props10.horizontalMonthPadding,\n orientation = _props10.orientation,\n weekDayFormat = _props10.weekDayFormat,\n styles = _props10.styles;\n var calendarMonthWidth = this.state.calendarMonthWidth;\n\n var verticalScrollable = orientation === _constants.VERTICAL_SCROLLABLE;\n var horizontalStyle = {\n left: index * calendarMonthWidth\n };\n var verticalStyle = {\n marginLeft: -calendarMonthWidth / 2\n };\n\n var weekHeaderStyle = {}; // no styles applied to the vertical-scrollable orientation\n if (this.isHorizontal()) {\n weekHeaderStyle = horizontalStyle;\n } else if (this.isVertical() && !verticalScrollable) {\n weekHeaderStyle = verticalStyle;\n }\n\n var firstDayOfWeek = this.getFirstDayOfWeek();\n\n var header = [];\n for (var i = 0; i < 7; i += 1) {\n header.push(_react2['default'].createElement(\n 'li',\n _extends({ key: i }, (0, _reactWithStyles.css)(styles.DayPicker_weekHeader_li, { width: daySize })),\n _react2['default'].createElement(\n 'small',\n null,\n (0, _moment2['default'])().day((i + firstDayOfWeek) % 7).format(weekDayFormat)\n )\n ));\n }\n\n return _react2['default'].createElement(\n 'div',\n _extends({}, (0, _reactWithStyles.css)(styles.DayPicker_weekHeader, this.isVertical() && styles.DayPicker_weekHeader__vertical, verticalScrollable && styles.DayPicker_weekHeader__verticalScrollable, weekHeaderStyle, { padding: '0 ' + String(horizontalMonthPadding) + 'px' }), {\n key: 'week-' + String(index)\n }),\n _react2['default'].createElement(\n 'ul',\n (0, _reactWithStyles.css)(styles.DayPicker_weekHeader_ul),\n header\n )\n );\n }\n\n return renderWeekHeader;\n }()\n }, {\n key: 'render',\n value: function () {\n function render() {\n var _this7 = this;\n\n var _state8 = this.state,\n calendarMonthWidth = _state8.calendarMonthWidth,\n currentMonth = _state8.currentMonth,\n monthTransition = _state8.monthTransition,\n translationValue = _state8.translationValue,\n scrollableMonthMultiple = _state8.scrollableMonthMultiple,\n focusedDate = _state8.focusedDate,\n showKeyboardShortcuts = _state8.showKeyboardShortcuts,\n isTouch = _state8.isTouchDevice,\n hasSetHeight = _state8.hasSetHeight,\n calendarInfoWidth = _state8.calendarInfoWidth,\n monthTitleHeight = _state8.monthTitleHeight;\n var _props11 = this.props,\n enableOutsideDays = _props11.enableOutsideDays,\n numberOfMonths = _props11.numberOfMonths,\n orientation = _props11.orientation,\n modifiers = _props11.modifiers,\n withPortal = _props11.withPortal,\n onDayClick = _props11.onDayClick,\n onDayMouseEnter = _props11.onDayMouseEnter,\n onDayMouseLeave = _props11.onDayMouseLeave,\n firstDayOfWeek = _props11.firstDayOfWeek,\n renderMonthText = _props11.renderMonthText,\n renderCalendarDay = _props11.renderCalendarDay,\n renderDayContents = _props11.renderDayContents,\n renderCalendarInfo = _props11.renderCalendarInfo,\n renderMonthElement = _props11.renderMonthElement,\n calendarInfoPosition = _props11.calendarInfoPosition,\n hideKeyboardShortcutsPanel = _props11.hideKeyboardShortcutsPanel,\n onOutsideClick = _props11.onOutsideClick,\n monthFormat = _props11.monthFormat,\n daySize = _props11.daySize,\n isFocused = _props11.isFocused,\n isRTL = _props11.isRTL,\n styles = _props11.styles,\n theme = _props11.theme,\n phrases = _props11.phrases,\n verticalHeight = _props11.verticalHeight,\n dayAriaLabelFormat = _props11.dayAriaLabelFormat,\n noBorder = _props11.noBorder,\n transitionDuration = _props11.transitionDuration,\n verticalBorderSpacing = _props11.verticalBorderSpacing,\n horizontalMonthPadding = _props11.horizontalMonthPadding;\n var dayPickerHorizontalPadding = theme.reactDates.spacing.dayPickerHorizontalPadding;\n\n\n var isHorizontal = this.isHorizontal();\n\n var numOfWeekHeaders = this.isVertical() ? 1 : numberOfMonths;\n var weekHeaders = [];\n for (var i = 0; i < numOfWeekHeaders; i += 1) {\n weekHeaders.push(this.renderWeekHeader(i));\n }\n\n var verticalScrollable = orientation === _constants.VERTICAL_SCROLLABLE;\n var height = void 0;\n if (isHorizontal) {\n height = this.calendarMonthGridHeight;\n } else if (this.isVertical() && !verticalScrollable && !withPortal) {\n // If the user doesn't set a desired height,\n // we default back to this kind of made-up value that generally looks good\n height = verticalHeight || 1.75 * calendarMonthWidth;\n }\n\n var isCalendarMonthGridAnimating = monthTransition !== null;\n\n var shouldFocusDate = !isCalendarMonthGridAnimating && isFocused;\n\n var keyboardShortcutButtonLocation = _DayPickerKeyboardShortcuts.BOTTOM_RIGHT;\n if (this.isVertical()) {\n keyboardShortcutButtonLocation = withPortal ? _DayPickerKeyboardShortcuts.TOP_LEFT : _DayPickerKeyboardShortcuts.TOP_RIGHT;\n }\n\n var shouldAnimateHeight = isHorizontal && hasSetHeight;\n\n var calendarInfoPositionTop = calendarInfoPosition === _constants.INFO_POSITION_TOP;\n var calendarInfoPositionBottom = calendarInfoPosition === _constants.INFO_POSITION_BOTTOM;\n var calendarInfoPositionBefore = calendarInfoPosition === _constants.INFO_POSITION_BEFORE;\n var calendarInfoPositionAfter = calendarInfoPosition === _constants.INFO_POSITION_AFTER;\n var calendarInfoIsInline = calendarInfoPositionBefore || calendarInfoPositionAfter;\n\n var calendarInfo = renderCalendarInfo && _react2['default'].createElement(\n 'div',\n _extends({\n ref: this.setCalendarInfoRef\n }, (0, _reactWithStyles.css)(calendarInfoIsInline && styles.DayPicker_calendarInfo__horizontal)),\n renderCalendarInfo()\n );\n\n var calendarInfoPanelWidth = renderCalendarInfo && calendarInfoIsInline ? calendarInfoWidth : 0;\n\n var firstVisibleMonthIndex = this.getFirstVisibleIndex();\n var wrapperHorizontalWidth = calendarMonthWidth * numberOfMonths + 2 * dayPickerHorizontalPadding;\n // Adding `1px` because of whitespace between 2 inline-block\n var fullHorizontalWidth = wrapperHorizontalWidth + calendarInfoPanelWidth + 1;\n\n var transitionContainerStyle = {\n width: isHorizontal && wrapperHorizontalWidth,\n height: height\n };\n\n var dayPickerWrapperStyle = {\n width: isHorizontal && wrapperHorizontalWidth\n };\n\n var dayPickerStyle = {\n width: isHorizontal && fullHorizontalWidth,\n\n // These values are to center the datepicker (approximately) on the page\n marginLeft: isHorizontal && withPortal ? -fullHorizontalWidth / 2 : null,\n marginTop: isHorizontal && withPortal ? -calendarMonthWidth / 2 : null\n };\n\n return _react2['default'].createElement(\n 'div',\n _extends({\n role: 'application',\n 'aria-label': phrases.calendarLabel\n }, (0, _reactWithStyles.css)(styles.DayPicker, isHorizontal && styles.DayPicker__horizontal, verticalScrollable && styles.DayPicker__verticalScrollable, isHorizontal && withPortal && styles.DayPicker_portal__horizontal, this.isVertical() && withPortal && styles.DayPicker_portal__vertical, dayPickerStyle, !monthTitleHeight && styles.DayPicker__hidden, !noBorder && styles.DayPicker__withBorder)),\n _react2['default'].createElement(\n _reactOutsideClickHandler2['default'],\n { onOutsideClick: onOutsideClick },\n (calendarInfoPositionTop || calendarInfoPositionBefore) && calendarInfo,\n _react2['default'].createElement(\n 'div',\n (0, _reactWithStyles.css)(dayPickerWrapperStyle, calendarInfoIsInline && isHorizontal && styles.DayPicker_wrapper__horizontal),\n _react2['default'].createElement(\n 'div',\n _extends({}, (0, _reactWithStyles.css)(styles.DayPicker_weekHeaders, isHorizontal && styles.DayPicker_weekHeaders__horizontal), {\n 'aria-hidden': 'true',\n role: 'presentation'\n }),\n weekHeaders\n ),\n _react2['default'].createElement(\n 'div',\n _extends({}, (0, _reactWithStyles.css)(styles.DayPicker_focusRegion), {\n ref: this.setContainerRef,\n onClick: function () {\n function onClick(e) {\n e.stopPropagation();\n }\n\n return onClick;\n }(),\n onKeyDown: this.onKeyDown,\n onMouseUp: function () {\n function onMouseUp() {\n _this7.setState({ withMouseInteractions: true });\n }\n\n return onMouseUp;\n }(),\n role: 'region',\n tabIndex: -1\n }),\n !verticalScrollable && this.renderNavigation(),\n _react2['default'].createElement(\n 'div',\n _extends({}, (0, _reactWithStyles.css)(styles.DayPicker_transitionContainer, shouldAnimateHeight && styles.DayPicker_transitionContainer__horizontal, this.isVertical() && styles.DayPicker_transitionContainer__vertical, verticalScrollable && styles.DayPicker_transitionContainer__verticalScrollable, transitionContainerStyle), {\n ref: this.setTransitionContainerRef\n }),\n _react2['default'].createElement(_CalendarMonthGrid2['default'], {\n setMonthTitleHeight: !monthTitleHeight ? this.setMonthTitleHeight : undefined,\n translationValue: translationValue,\n enableOutsideDays: enableOutsideDays,\n firstVisibleMonthIndex: firstVisibleMonthIndex,\n initialMonth: currentMonth,\n isAnimating: isCalendarMonthGridAnimating,\n modifiers: modifiers,\n orientation: orientation,\n numberOfMonths: numberOfMonths * scrollableMonthMultiple,\n onDayClick: onDayClick,\n onDayMouseEnter: onDayMouseEnter,\n onDayMouseLeave: onDayMouseLeave,\n onMonthChange: this.onMonthChange,\n onYearChange: this.onYearChange,\n renderMonthText: renderMonthText,\n renderCalendarDay: renderCalendarDay,\n renderDayContents: renderDayContents,\n renderMonthElement: renderMonthElement,\n onMonthTransitionEnd: this.updateStateAfterMonthTransition,\n monthFormat: monthFormat,\n daySize: daySize,\n firstDayOfWeek: firstDayOfWeek,\n isFocused: shouldFocusDate,\n focusedDate: focusedDate,\n phrases: phrases,\n isRTL: isRTL,\n dayAriaLabelFormat: dayAriaLabelFormat,\n transitionDuration: transitionDuration,\n verticalBorderSpacing: verticalBorderSpacing,\n horizontalMonthPadding: horizontalMonthPadding\n }),\n verticalScrollable && this.renderNavigation()\n ),\n !isTouch && !hideKeyboardShortcutsPanel && _react2['default'].createElement(_DayPickerKeyboardShortcuts2['default'], {\n block: this.isVertical() && !withPortal,\n buttonLocation: keyboardShortcutButtonLocation,\n showKeyboardShortcutsPanel: showKeyboardShortcuts,\n openKeyboardShortcutsPanel: this.openKeyboardShortcutsPanel,\n closeKeyboardShortcutsPanel: this.closeKeyboardShortcutsPanel,\n phrases: phrases\n })\n )\n ),\n (calendarInfoPositionBottom || calendarInfoPositionAfter) && calendarInfo\n )\n );\n }\n\n return render;\n }()\n }]);\n\n return DayPicker;\n}(_react2['default'].Component);\n\nDayPicker.propTypes = propTypes;\nDayPicker.defaultProps = defaultProps;\n\nexports.PureDayPicker = DayPicker;\nexports['default'] = (0, _reactWithStyles.withStyles)(function (_ref2) {\n var _ref2$reactDates = _ref2.reactDates,\n color = _ref2$reactDates.color,\n font = _ref2$reactDates.font,\n noScrollBarOnVerticalScrollable = _ref2$reactDates.noScrollBarOnVerticalScrollable,\n spacing = _ref2$reactDates.spacing,\n zIndex = _ref2$reactDates.zIndex;\n return {\n DayPicker: {\n background: color.background,\n position: 'relative',\n textAlign: 'left'\n },\n\n DayPicker__horizontal: {\n background: color.background\n },\n\n DayPicker__verticalScrollable: {\n height: '100%'\n },\n\n DayPicker__hidden: {\n visibility: 'hidden'\n },\n\n DayPicker__withBorder: {\n boxShadow: '0 2px 6px rgba(0, 0, 0, 0.05), 0 0 0 1px rgba(0, 0, 0, 0.07)',\n borderRadius: 3\n },\n\n DayPicker_portal__horizontal: {\n boxShadow: 'none',\n position: 'absolute',\n left: '50%',\n top: '50%'\n },\n\n DayPicker_portal__vertical: {\n position: 'initial'\n },\n\n DayPicker_focusRegion: {\n outline: 'none'\n },\n\n DayPicker_calendarInfo__horizontal: {\n display: 'inline-block',\n verticalAlign: 'top'\n },\n\n DayPicker_wrapper__horizontal: {\n display: 'inline-block',\n verticalAlign: 'top'\n },\n\n DayPicker_weekHeaders: {\n position: 'relative'\n },\n\n DayPicker_weekHeaders__horizontal: {\n marginLeft: spacing.dayPickerHorizontalPadding\n },\n\n DayPicker_weekHeader: {\n color: color.placeholderText,\n position: 'absolute',\n top: 62,\n zIndex: zIndex + 2,\n textAlign: 'left'\n },\n\n DayPicker_weekHeader__vertical: {\n left: '50%'\n },\n\n DayPicker_weekHeader__verticalScrollable: {\n top: 0,\n display: 'table-row',\n borderBottom: '1px solid ' + String(color.core.border),\n background: color.background,\n marginLeft: 0,\n left: 0,\n width: '100%',\n textAlign: 'center'\n },\n\n DayPicker_weekHeader_ul: {\n listStyle: 'none',\n margin: '1px 0',\n paddingLeft: 0,\n paddingRight: 0,\n fontSize: font.size\n },\n\n DayPicker_weekHeader_li: {\n display: 'inline-block',\n textAlign: 'center'\n },\n\n DayPicker_transitionContainer: {\n position: 'relative',\n overflow: 'hidden',\n borderRadius: 3\n },\n\n DayPicker_transitionContainer__horizontal: {\n transition: 'height 0.2s ease-in-out'\n },\n\n DayPicker_transitionContainer__vertical: {\n width: '100%'\n },\n\n DayPicker_transitionContainer__verticalScrollable: (0, _object2['default'])({\n paddingTop: 20,\n height: '100%',\n position: 'absolute',\n top: 0,\n bottom: 0,\n right: 0,\n left: 0,\n overflowY: 'scroll'\n }, noScrollBarOnVerticalScrollable && {\n '-webkitOverflowScrolling': 'touch',\n '::-webkit-scrollbar': {\n '-webkit-appearance': 'none',\n display: 'none'\n }\n })\n };\n})(DayPicker);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.BOTTOM_RIGHT = exports.TOP_RIGHT = exports.TOP_LEFT = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _object = require('object.assign');\n\nvar _object2 = _interopRequireDefault(_object);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _airbnbPropTypes = require('airbnb-prop-types');\n\nvar _reactWithStyles = require('react-with-styles');\n\nvar _defaultPhrases = require('../defaultPhrases');\n\nvar _getPhrasePropTypes = require('../utils/getPhrasePropTypes');\n\nvar _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);\n\nvar _KeyboardShortcutRow = require('./KeyboardShortcutRow');\n\nvar _KeyboardShortcutRow2 = _interopRequireDefault(_KeyboardShortcutRow);\n\nvar _CloseButton = require('./CloseButton');\n\nvar _CloseButton2 = _interopRequireDefault(_CloseButton);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TOP_LEFT = exports.TOP_LEFT = 'top-left';\nvar TOP_RIGHT = exports.TOP_RIGHT = 'top-right';\nvar BOTTOM_RIGHT = exports.BOTTOM_RIGHT = 'bottom-right';\n\nvar propTypes = (0, _airbnbPropTypes.forbidExtraProps)((0, _object2['default'])({}, _reactWithStyles.withStylesPropTypes, {\n block: _propTypes2['default'].bool,\n buttonLocation: _propTypes2['default'].oneOf([TOP_LEFT, TOP_RIGHT, BOTTOM_RIGHT]),\n showKeyboardShortcutsPanel: _propTypes2['default'].bool,\n openKeyboardShortcutsPanel: _propTypes2['default'].func,\n closeKeyboardShortcutsPanel: _propTypes2['default'].func,\n phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.DayPickerKeyboardShortcutsPhrases))\n}));\n\nvar defaultProps = {\n block: false,\n buttonLocation: BOTTOM_RIGHT,\n showKeyboardShortcutsPanel: false,\n openKeyboardShortcutsPanel: function () {\n function openKeyboardShortcutsPanel() {}\n\n return openKeyboardShortcutsPanel;\n }(),\n closeKeyboardShortcutsPanel: function () {\n function closeKeyboardShortcutsPanel() {}\n\n return closeKeyboardShortcutsPanel;\n }(),\n\n phrases: _defaultPhrases.DayPickerKeyboardShortcutsPhrases\n};\n\nfunction getKeyboardShortcuts(phrases) {\n return [{\n unicode: '↵',\n label: phrases.enterKey,\n action: phrases.selectFocusedDate\n }, {\n unicode: '←/→',\n label: phrases.leftArrowRightArrow,\n action: phrases.moveFocusByOneDay\n }, {\n unicode: '↑/↓',\n label: phrases.upArrowDownArrow,\n action: phrases.moveFocusByOneWeek\n }, {\n unicode: 'PgUp/PgDn',\n label: phrases.pageUpPageDown,\n action: phrases.moveFocusByOneMonth\n }, {\n unicode: 'Home/End',\n label: phrases.homeEnd,\n action: phrases.moveFocustoStartAndEndOfWeek\n }, {\n unicode: 'Esc',\n label: phrases.escape,\n action: phrases.returnFocusToInput\n }, {\n unicode: '?',\n label: phrases.questionMark,\n action: phrases.openThisPanel\n }];\n}\n\nvar DayPickerKeyboardShortcuts = function (_React$Component) {\n _inherits(DayPickerKeyboardShortcuts, _React$Component);\n\n function DayPickerKeyboardShortcuts() {\n var _ref;\n\n _classCallCheck(this, DayPickerKeyboardShortcuts);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var _this = _possibleConstructorReturn(this, (_ref = DayPickerKeyboardShortcuts.__proto__ || Object.getPrototypeOf(DayPickerKeyboardShortcuts)).call.apply(_ref, [this].concat(args)));\n\n var phrases = _this.props.phrases;\n\n _this.keyboardShortcuts = getKeyboardShortcuts(phrases);\n\n _this.onShowKeyboardShortcutsButtonClick = _this.onShowKeyboardShortcutsButtonClick.bind(_this);\n _this.setShowKeyboardShortcutsButtonRef = _this.setShowKeyboardShortcutsButtonRef.bind(_this);\n _this.setHideKeyboardShortcutsButtonRef = _this.setHideKeyboardShortcutsButtonRef.bind(_this);\n _this.handleFocus = _this.handleFocus.bind(_this);\n _this.onKeyDown = _this.onKeyDown.bind(_this);\n return _this;\n }\n\n _createClass(DayPickerKeyboardShortcuts, [{\n key: 'componentWillReceiveProps',\n value: function () {\n function componentWillReceiveProps(nextProps) {\n var phrases = this.props.phrases;\n\n if (nextProps.phrases !== phrases) {\n this.keyboardShortcuts = getKeyboardShortcuts(nextProps.phrases);\n }\n }\n\n return componentWillReceiveProps;\n }()\n }, {\n key: 'componentDidUpdate',\n value: function () {\n function componentDidUpdate() {\n this.handleFocus();\n }\n\n return componentDidUpdate;\n }()\n }, {\n key: 'onKeyDown',\n value: function () {\n function onKeyDown(e) {\n e.stopPropagation();\n\n var closeKeyboardShortcutsPanel = this.props.closeKeyboardShortcutsPanel;\n // Because the close button is the only focusable element inside of the panel, this\n // amounts to a very basic focus trap. The user can exit the panel by \"pressing\" the\n // close button or hitting escape\n\n switch (e.key) {\n case 'Enter':\n case ' ':\n case 'Spacebar': // for older browsers\n case 'Escape':\n closeKeyboardShortcutsPanel();\n break;\n\n // do nothing - this allows the up and down arrows continue their\n // default behavior of scrolling the content of the Keyboard Shortcuts Panel\n // which is needed when only a single month is shown for instance.\n case 'ArrowUp':\n case 'ArrowDown':\n break;\n\n // completely block the rest of the keys that have functionality outside of this panel\n case 'Tab':\n case 'Home':\n case 'End':\n case 'PageUp':\n case 'PageDown':\n case 'ArrowLeft':\n case 'ArrowRight':\n e.preventDefault();\n break;\n\n default:\n break;\n }\n }\n\n return onKeyDown;\n }()\n }, {\n key: 'onShowKeyboardShortcutsButtonClick',\n value: function () {\n function onShowKeyboardShortcutsButtonClick() {\n var _this2 = this;\n\n var openKeyboardShortcutsPanel = this.props.openKeyboardShortcutsPanel;\n\n // we want to return focus to this button after closing the keyboard shortcuts panel\n\n openKeyboardShortcutsPanel(function () {\n _this2.showKeyboardShortcutsButton.focus();\n });\n }\n\n return onShowKeyboardShortcutsButtonClick;\n }()\n }, {\n key: 'setShowKeyboardShortcutsButtonRef',\n value: function () {\n function setShowKeyboardShortcutsButtonRef(ref) {\n this.showKeyboardShortcutsButton = ref;\n }\n\n return setShowKeyboardShortcutsButtonRef;\n }()\n }, {\n key: 'setHideKeyboardShortcutsButtonRef',\n value: function () {\n function setHideKeyboardShortcutsButtonRef(ref) {\n this.hideKeyboardShortcutsButton = ref;\n }\n\n return setHideKeyboardShortcutsButtonRef;\n }()\n }, {\n key: 'handleFocus',\n value: function () {\n function handleFocus() {\n if (this.hideKeyboardShortcutsButton) {\n // automatically move focus into the dialog by moving\n // to the only interactive element, the hide button\n this.hideKeyboardShortcutsButton.focus();\n }\n }\n\n return handleFocus;\n }()\n }, {\n key: 'render',\n value: function () {\n function render() {\n var _this3 = this;\n\n var _props = this.props,\n block = _props.block,\n buttonLocation = _props.buttonLocation,\n showKeyboardShortcutsPanel = _props.showKeyboardShortcutsPanel,\n closeKeyboardShortcutsPanel = _props.closeKeyboardShortcutsPanel,\n styles = _props.styles,\n phrases = _props.phrases;\n\n\n var toggleButtonText = showKeyboardShortcutsPanel ? phrases.hideKeyboardShortcutsPanel : phrases.showKeyboardShortcutsPanel;\n\n var bottomRight = buttonLocation === BOTTOM_RIGHT;\n var topRight = buttonLocation === TOP_RIGHT;\n var topLeft = buttonLocation === TOP_LEFT;\n\n return _react2['default'].createElement(\n 'div',\n null,\n _react2['default'].createElement(\n 'button',\n _extends({\n ref: this.setShowKeyboardShortcutsButtonRef\n }, (0, _reactWithStyles.css)(styles.DayPickerKeyboardShortcuts_buttonReset, styles.DayPickerKeyboardShortcuts_show, bottomRight && styles.DayPickerKeyboardShortcuts_show__bottomRight, topRight && styles.DayPickerKeyboardShortcuts_show__topRight, topLeft && styles.DayPickerKeyboardShortcuts_show__topLeft), {\n type: 'button',\n 'aria-label': toggleButtonText,\n onClick: this.onShowKeyboardShortcutsButtonClick,\n onKeyDown: function () {\n function onKeyDown(e) {\n if (e.key === 'Enter') {\n e.preventDefault();\n } else if (e.key === 'Space') {\n _this3.onShowKeyboardShortcutsButtonClick(e);\n }\n }\n\n return onKeyDown;\n }(),\n onMouseUp: function () {\n function onMouseUp(e) {\n e.currentTarget.blur();\n }\n\n return onMouseUp;\n }()\n }),\n _react2['default'].createElement(\n 'span',\n (0, _reactWithStyles.css)(styles.DayPickerKeyboardShortcuts_showSpan, bottomRight && styles.DayPickerKeyboardShortcuts_showSpan__bottomRight, topRight && styles.DayPickerKeyboardShortcuts_showSpan__topRight, topLeft && styles.DayPickerKeyboardShortcuts_showSpan__topLeft),\n '?'\n )\n ),\n showKeyboardShortcutsPanel && _react2['default'].createElement(\n 'div',\n _extends({}, (0, _reactWithStyles.css)(styles.DayPickerKeyboardShortcuts_panel), {\n role: 'dialog',\n 'aria-labelledby': 'DayPickerKeyboardShortcuts_title',\n 'aria-describedby': 'DayPickerKeyboardShortcuts_description'\n }),\n _react2['default'].createElement(\n 'div',\n _extends({}, (0, _reactWithStyles.css)(styles.DayPickerKeyboardShortcuts_title), {\n id: 'DayPickerKeyboardShortcuts_title'\n }),\n phrases.keyboardShortcuts\n ),\n _react2['default'].createElement(\n 'button',\n _extends({\n ref: this.setHideKeyboardShortcutsButtonRef\n }, (0, _reactWithStyles.css)(styles.DayPickerKeyboardShortcuts_buttonReset, styles.DayPickerKeyboardShortcuts_close), {\n type: 'button',\n tabIndex: '0',\n 'aria-label': phrases.hideKeyboardShortcutsPanel,\n onClick: closeKeyboardShortcutsPanel,\n onKeyDown: this.onKeyDown\n }),\n _react2['default'].createElement(_CloseButton2['default'], (0, _reactWithStyles.css)(styles.DayPickerKeyboardShortcuts_closeSvg))\n ),\n _react2['default'].createElement(\n 'ul',\n _extends({}, (0, _reactWithStyles.css)(styles.DayPickerKeyboardShortcuts_list), {\n id: 'DayPickerKeyboardShortcuts_description'\n }),\n this.keyboardShortcuts.map(function (_ref2) {\n var unicode = _ref2.unicode,\n label = _ref2.label,\n action = _ref2.action;\n return _react2['default'].createElement(_KeyboardShortcutRow2['default'], {\n key: label,\n unicode: unicode,\n label: label,\n action: action,\n block: block\n });\n })\n )\n )\n );\n }\n\n return render;\n }()\n }]);\n\n return DayPickerKeyboardShortcuts;\n}(_react2['default'].Component);\n\nDayPickerKeyboardShortcuts.propTypes = propTypes;\nDayPickerKeyboardShortcuts.defaultProps = defaultProps;\n\nexports['default'] = (0, _reactWithStyles.withStyles)(function (_ref3) {\n var _ref3$reactDates = _ref3.reactDates,\n color = _ref3$reactDates.color,\n font = _ref3$reactDates.font,\n zIndex = _ref3$reactDates.zIndex;\n return {\n DayPickerKeyboardShortcuts_buttonReset: {\n background: 'none',\n border: 0,\n borderRadius: 0,\n color: 'inherit',\n font: 'inherit',\n lineHeight: 'normal',\n overflow: 'visible',\n padding: 0,\n cursor: 'pointer',\n fontSize: font.size,\n\n ':active': {\n outline: 'none'\n }\n },\n\n DayPickerKeyboardShortcuts_show: {\n width: 22,\n position: 'absolute',\n zIndex: zIndex + 2\n },\n\n DayPickerKeyboardShortcuts_show__bottomRight: {\n borderTop: '26px solid transparent',\n borderRight: '33px solid ' + String(color.core.primary),\n bottom: 0,\n right: 0,\n\n ':hover': {\n borderRight: '33px solid ' + String(color.core.primary_dark)\n }\n },\n\n DayPickerKeyboardShortcuts_show__topRight: {\n borderBottom: '26px solid transparent',\n borderRight: '33px solid ' + String(color.core.primary),\n top: 0,\n right: 0,\n\n ':hover': {\n borderRight: '33px solid ' + String(color.core.primary_dark)\n }\n },\n\n DayPickerKeyboardShortcuts_show__topLeft: {\n borderBottom: '26px solid transparent',\n borderLeft: '33px solid ' + String(color.core.primary),\n top: 0,\n left: 0,\n\n ':hover': {\n borderLeft: '33px solid ' + String(color.core.primary_dark)\n }\n },\n\n DayPickerKeyboardShortcuts_showSpan: {\n color: color.core.white,\n position: 'absolute'\n },\n\n DayPickerKeyboardShortcuts_showSpan__bottomRight: {\n bottom: 0,\n right: -28\n },\n\n DayPickerKeyboardShortcuts_showSpan__topRight: {\n top: 1,\n right: -28\n },\n\n DayPickerKeyboardShortcuts_showSpan__topLeft: {\n top: 1,\n left: -28\n },\n\n DayPickerKeyboardShortcuts_panel: {\n overflow: 'auto',\n background: color.background,\n border: '1px solid ' + String(color.core.border),\n borderRadius: 2,\n position: 'absolute',\n top: 0,\n bottom: 0,\n right: 0,\n left: 0,\n zIndex: zIndex + 2,\n padding: 22,\n margin: 33\n },\n\n DayPickerKeyboardShortcuts_title: {\n fontSize: 16,\n fontWeight: 'bold',\n margin: 0\n },\n\n DayPickerKeyboardShortcuts_list: {\n listStyle: 'none',\n padding: 0,\n fontSize: font.size\n },\n\n DayPickerKeyboardShortcuts_close: {\n position: 'absolute',\n right: 22,\n top: 22,\n zIndex: zIndex + 2,\n\n ':active': {\n outline: 'none'\n }\n },\n\n DayPickerKeyboardShortcuts_closeSvg: {\n height: 15,\n width: 15,\n fill: color.core.grayLighter,\n\n ':hover': {\n fill: color.core.grayLight\n },\n\n ':focus': {\n fill: color.core.grayLight\n }\n }\n };\n})(DayPickerKeyboardShortcuts);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _object = require('object.assign');\n\nvar _object2 = _interopRequireDefault(_object);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _airbnbPropTypes = require('airbnb-prop-types');\n\nvar _reactWithStyles = require('react-with-styles');\n\nvar _defaultPhrases = require('../defaultPhrases');\n\nvar _getPhrasePropTypes = require('../utils/getPhrasePropTypes');\n\nvar _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);\n\nvar _LeftArrow = require('./LeftArrow');\n\nvar _LeftArrow2 = _interopRequireDefault(_LeftArrow);\n\nvar _RightArrow = require('./RightArrow');\n\nvar _RightArrow2 = _interopRequireDefault(_RightArrow);\n\nvar _ChevronUp = require('./ChevronUp');\n\nvar _ChevronUp2 = _interopRequireDefault(_ChevronUp);\n\nvar _ChevronDown = require('./ChevronDown');\n\nvar _ChevronDown2 = _interopRequireDefault(_ChevronDown);\n\nvar _ScrollableOrientationShape = require('../shapes/ScrollableOrientationShape');\n\nvar _ScrollableOrientationShape2 = _interopRequireDefault(_ScrollableOrientationShape);\n\nvar _constants = require('../constants');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar propTypes = (0, _airbnbPropTypes.forbidExtraProps)((0, _object2['default'])({}, _reactWithStyles.withStylesPropTypes, {\n navPrev: _propTypes2['default'].node,\n navNext: _propTypes2['default'].node,\n orientation: _ScrollableOrientationShape2['default'],\n\n onPrevMonthClick: _propTypes2['default'].func,\n onNextMonthClick: _propTypes2['default'].func,\n\n // internationalization\n phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.DayPickerNavigationPhrases)),\n\n isRTL: _propTypes2['default'].bool\n}));\n\nvar defaultProps = {\n navPrev: null,\n navNext: null,\n orientation: _constants.HORIZONTAL_ORIENTATION,\n\n onPrevMonthClick: function () {\n function onPrevMonthClick() {}\n\n return onPrevMonthClick;\n }(),\n onNextMonthClick: function () {\n function onNextMonthClick() {}\n\n return onNextMonthClick;\n }(),\n\n\n // internationalization\n phrases: _defaultPhrases.DayPickerNavigationPhrases,\n isRTL: false\n};\n\nfunction DayPickerNavigation(_ref) {\n var navPrev = _ref.navPrev,\n navNext = _ref.navNext,\n onPrevMonthClick = _ref.onPrevMonthClick,\n onNextMonthClick = _ref.onNextMonthClick,\n orientation = _ref.orientation,\n phrases = _ref.phrases,\n isRTL = _ref.isRTL,\n styles = _ref.styles;\n\n var isHorizontal = orientation === _constants.HORIZONTAL_ORIENTATION;\n var isVertical = orientation !== _constants.HORIZONTAL_ORIENTATION;\n var isVerticalScrollable = orientation === _constants.VERTICAL_SCROLLABLE;\n\n var navPrevIcon = navPrev;\n var navNextIcon = navNext;\n var isDefaultNavPrev = false;\n var isDefaultNavNext = false;\n if (!navPrevIcon) {\n isDefaultNavPrev = true;\n var Icon = isVertical ? _ChevronUp2['default'] : _LeftArrow2['default'];\n if (isRTL && !isVertical) {\n Icon = _RightArrow2['default'];\n }\n navPrevIcon = _react2['default'].createElement(Icon, (0, _reactWithStyles.css)(isHorizontal && styles.DayPickerNavigation_svg__horizontal, isVertical && styles.DayPickerNavigation_svg__vertical));\n }\n\n if (!navNextIcon) {\n isDefaultNavNext = true;\n var _Icon = isVertical ? _ChevronDown2['default'] : _RightArrow2['default'];\n if (isRTL && !isVertical) {\n _Icon = _LeftArrow2['default'];\n }\n navNextIcon = _react2['default'].createElement(_Icon, (0, _reactWithStyles.css)(isHorizontal && styles.DayPickerNavigation_svg__horizontal, isVertical && styles.DayPickerNavigation_svg__vertical));\n }\n\n var isDefaultNav = isVerticalScrollable ? isDefaultNavNext : isDefaultNavNext || isDefaultNavPrev;\n\n return _react2['default'].createElement(\n 'div',\n _reactWithStyles.css.apply(undefined, [styles.DayPickerNavigation, isHorizontal && styles.DayPickerNavigation__horizontal].concat(_toConsumableArray(isVertical && [styles.DayPickerNavigation__vertical, isDefaultNav && styles.DayPickerNavigation__verticalDefault]), _toConsumableArray(isVerticalScrollable && [styles.DayPickerNavigation__verticalScrollable, isDefaultNav && styles.DayPickerNavigation__verticalScrollableDefault]))),\n !isVerticalScrollable && _react2['default'].createElement(\n 'div',\n _extends({\n role: 'button',\n tabIndex: '0'\n }, _reactWithStyles.css.apply(undefined, [styles.DayPickerNavigation_button, isDefaultNavPrev && styles.DayPickerNavigation_button__default].concat(_toConsumableArray(isHorizontal && [styles.DayPickerNavigation_button__horizontal].concat(_toConsumableArray(isDefaultNavPrev && [styles.DayPickerNavigation_button__horizontalDefault, !isRTL && styles.DayPickerNavigation_leftButton__horizontalDefault, isRTL && styles.DayPickerNavigation_rightButton__horizontalDefault]))), _toConsumableArray(isVertical && [styles.DayPickerNavigation_button__vertical].concat(_toConsumableArray(isDefaultNavPrev && [styles.DayPickerNavigation_button__verticalDefault, styles.DayPickerNavigation_prevButton__verticalDefault]))))), {\n 'aria-label': phrases.jumpToPrevMonth,\n onClick: onPrevMonthClick,\n onKeyUp: function () {\n function onKeyUp(e) {\n var key = e.key;\n\n if (key === 'Enter' || key === ' ') onPrevMonthClick(e);\n }\n\n return onKeyUp;\n }(),\n onMouseUp: function () {\n function onMouseUp(e) {\n e.currentTarget.blur();\n }\n\n return onMouseUp;\n }()\n }),\n navPrevIcon\n ),\n _react2['default'].createElement(\n 'div',\n _extends({\n role: 'button',\n tabIndex: '0'\n }, _reactWithStyles.css.apply(undefined, [styles.DayPickerNavigation_button, isDefaultNavNext && styles.DayPickerNavigation_button__default].concat(_toConsumableArray(isHorizontal && [styles.DayPickerNavigation_button__horizontal].concat(_toConsumableArray(isDefaultNavNext && [styles.DayPickerNavigation_button__horizontalDefault, isRTL && styles.DayPickerNavigation_leftButton__horizontalDefault, !isRTL && styles.DayPickerNavigation_rightButton__horizontalDefault]))), _toConsumableArray(isVertical && [styles.DayPickerNavigation_button__vertical, styles.DayPickerNavigation_nextButton__vertical].concat(_toConsumableArray(isDefaultNavNext && [styles.DayPickerNavigation_button__verticalDefault, styles.DayPickerNavigation_nextButton__verticalDefault, isVerticalScrollable && styles.DayPickerNavigation_nextButton__verticalScrollableDefault]))))), {\n 'aria-label': phrases.jumpToNextMonth,\n onClick: onNextMonthClick,\n onKeyUp: function () {\n function onKeyUp(e) {\n var key = e.key;\n\n if (key === 'Enter' || key === ' ') onNextMonthClick(e);\n }\n\n return onKeyUp;\n }(),\n onMouseUp: function () {\n function onMouseUp(e) {\n e.currentTarget.blur();\n }\n\n return onMouseUp;\n }()\n }),\n navNextIcon\n )\n );\n}\n\nDayPickerNavigation.propTypes = propTypes;\nDayPickerNavigation.defaultProps = defaultProps;\n\nexports['default'] = (0, _reactWithStyles.withStyles)(function (_ref2) {\n var _ref2$reactDates = _ref2.reactDates,\n color = _ref2$reactDates.color,\n zIndex = _ref2$reactDates.zIndex;\n return {\n DayPickerNavigation: {\n position: 'relative',\n zIndex: zIndex + 2\n },\n\n DayPickerNavigation__horizontal: {\n height: 0\n },\n\n DayPickerNavigation__vertical: {},\n DayPickerNavigation__verticalScrollable: {},\n\n DayPickerNavigation__verticalDefault: {\n position: 'absolute',\n width: '100%',\n height: 52,\n bottom: 0,\n left: 0\n },\n\n DayPickerNavigation__verticalScrollableDefault: {\n position: 'relative'\n },\n\n DayPickerNavigation_button: {\n cursor: 'pointer',\n userSelect: 'none',\n border: 0,\n padding: 0,\n margin: 0\n },\n\n DayPickerNavigation_button__default: {\n border: '1px solid ' + String(color.core.borderLight),\n backgroundColor: color.background,\n color: color.placeholderText,\n\n ':focus': {\n border: '1px solid ' + String(color.core.borderMedium)\n },\n\n ':hover': {\n border: '1px solid ' + String(color.core.borderMedium)\n },\n\n ':active': {\n background: color.backgroundDark\n }\n },\n\n DayPickerNavigation_button__horizontal: {},\n\n DayPickerNavigation_button__horizontalDefault: {\n position: 'absolute',\n top: 18,\n lineHeight: 0.78,\n borderRadius: 3,\n padding: '6px 9px'\n },\n\n DayPickerNavigation_leftButton__horizontalDefault: {\n left: 22\n },\n\n DayPickerNavigation_rightButton__horizontalDefault: {\n right: 22\n },\n\n DayPickerNavigation_button__vertical: {},\n\n DayPickerNavigation_button__verticalDefault: {\n padding: 5,\n background: color.background,\n boxShadow: '0 0 5px 2px rgba(0, 0, 0, 0.1)',\n position: 'relative',\n display: 'inline-block',\n height: '100%',\n width: '50%'\n },\n\n DayPickerNavigation_prevButton__verticalDefault: {},\n\n DayPickerNavigation_nextButton__verticalDefault: {\n borderLeft: 0\n },\n\n DayPickerNavigation_nextButton__verticalScrollableDefault: {\n width: '100%'\n },\n\n DayPickerNavigation_svg__horizontal: {\n height: 19,\n width: 19,\n fill: color.core.grayLight,\n display: 'block'\n },\n\n DayPickerNavigation_svg__vertical: {\n height: 42,\n width: 42,\n fill: color.text,\n display: 'block'\n }\n };\n})(DayPickerNavigation);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _object = require('object.assign');\n\nvar _object2 = _interopRequireDefault(_object);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactMomentProptypes = require('react-moment-proptypes');\n\nvar _reactMomentProptypes2 = _interopRequireDefault(_reactMomentProptypes);\n\nvar _airbnbPropTypes = require('airbnb-prop-types');\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _object3 = require('object.values');\n\nvar _object4 = _interopRequireDefault(_object3);\n\nvar _isTouchDevice = require('is-touch-device');\n\nvar _isTouchDevice2 = _interopRequireDefault(_isTouchDevice);\n\nvar _defaultPhrases = require('../defaultPhrases');\n\nvar _getPhrasePropTypes = require('../utils/getPhrasePropTypes');\n\nvar _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);\n\nvar _isInclusivelyAfterDay = require('../utils/isInclusivelyAfterDay');\n\nvar _isInclusivelyAfterDay2 = _interopRequireDefault(_isInclusivelyAfterDay);\n\nvar _isNextDay = require('../utils/isNextDay');\n\nvar _isNextDay2 = _interopRequireDefault(_isNextDay);\n\nvar _isSameDay = require('../utils/isSameDay');\n\nvar _isSameDay2 = _interopRequireDefault(_isSameDay);\n\nvar _isAfterDay = require('../utils/isAfterDay');\n\nvar _isAfterDay2 = _interopRequireDefault(_isAfterDay);\n\nvar _isBeforeDay = require('../utils/isBeforeDay');\n\nvar _isBeforeDay2 = _interopRequireDefault(_isBeforeDay);\n\nvar _getVisibleDays = require('../utils/getVisibleDays');\n\nvar _getVisibleDays2 = _interopRequireDefault(_getVisibleDays);\n\nvar _isDayVisible = require('../utils/isDayVisible');\n\nvar _isDayVisible2 = _interopRequireDefault(_isDayVisible);\n\nvar _getSelectedDateOffset = require('../utils/getSelectedDateOffset');\n\nvar _getSelectedDateOffset2 = _interopRequireDefault(_getSelectedDateOffset);\n\nvar _toISODateString = require('../utils/toISODateString');\n\nvar _toISODateString2 = _interopRequireDefault(_toISODateString);\n\nvar _toISOMonthString = require('../utils/toISOMonthString');\n\nvar _toISOMonthString2 = _interopRequireDefault(_toISOMonthString);\n\nvar _DisabledShape = require('../shapes/DisabledShape');\n\nvar _DisabledShape2 = _interopRequireDefault(_DisabledShape);\n\nvar _FocusedInputShape = require('../shapes/FocusedInputShape');\n\nvar _FocusedInputShape2 = _interopRequireDefault(_FocusedInputShape);\n\nvar _ScrollableOrientationShape = require('../shapes/ScrollableOrientationShape');\n\nvar _ScrollableOrientationShape2 = _interopRequireDefault(_ScrollableOrientationShape);\n\nvar _DayOfWeekShape = require('../shapes/DayOfWeekShape');\n\nvar _DayOfWeekShape2 = _interopRequireDefault(_DayOfWeekShape);\n\nvar _CalendarInfoPositionShape = require('../shapes/CalendarInfoPositionShape');\n\nvar _CalendarInfoPositionShape2 = _interopRequireDefault(_CalendarInfoPositionShape);\n\nvar _constants = require('../constants');\n\nvar _DayPicker = require('./DayPicker');\n\nvar _DayPicker2 = _interopRequireDefault(_DayPicker);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar propTypes = (0, _airbnbPropTypes.forbidExtraProps)({\n startDate: _reactMomentProptypes2['default'].momentObj,\n endDate: _reactMomentProptypes2['default'].momentObj,\n onDatesChange: _propTypes2['default'].func,\n startDateOffset: _propTypes2['default'].func,\n endDateOffset: _propTypes2['default'].func,\n\n focusedInput: _FocusedInputShape2['default'],\n onFocusChange: _propTypes2['default'].func,\n onClose: _propTypes2['default'].func,\n\n keepOpenOnDateSelect: _propTypes2['default'].bool,\n minimumNights: _propTypes2['default'].number,\n disabled: _DisabledShape2['default'],\n isOutsideRange: _propTypes2['default'].func,\n isDayBlocked: _propTypes2['default'].func,\n isDayHighlighted: _propTypes2['default'].func,\n\n // DayPicker props\n renderMonthText: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'),\n renderMonthElement: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'),\n enableOutsideDays: _propTypes2['default'].bool,\n numberOfMonths: _propTypes2['default'].number,\n orientation: _ScrollableOrientationShape2['default'],\n withPortal: _propTypes2['default'].bool,\n initialVisibleMonth: _propTypes2['default'].func,\n hideKeyboardShortcutsPanel: _propTypes2['default'].bool,\n daySize: _airbnbPropTypes.nonNegativeInteger,\n noBorder: _propTypes2['default'].bool,\n verticalBorderSpacing: _airbnbPropTypes.nonNegativeInteger,\n horizontalMonthPadding: _airbnbPropTypes.nonNegativeInteger,\n\n navPrev: _propTypes2['default'].node,\n navNext: _propTypes2['default'].node,\n noNavButtons: _propTypes2['default'].bool,\n\n onPrevMonthClick: _propTypes2['default'].func,\n onNextMonthClick: _propTypes2['default'].func,\n onOutsideClick: _propTypes2['default'].func,\n renderCalendarDay: _propTypes2['default'].func,\n renderDayContents: _propTypes2['default'].func,\n renderCalendarInfo: _propTypes2['default'].func,\n calendarInfoPosition: _CalendarInfoPositionShape2['default'],\n firstDayOfWeek: _DayOfWeekShape2['default'],\n verticalHeight: _airbnbPropTypes.nonNegativeInteger,\n transitionDuration: _airbnbPropTypes.nonNegativeInteger,\n\n // accessibility\n onBlur: _propTypes2['default'].func,\n isFocused: _propTypes2['default'].bool,\n showKeyboardShortcuts: _propTypes2['default'].bool,\n\n // i18n\n monthFormat: _propTypes2['default'].string,\n weekDayFormat: _propTypes2['default'].string,\n phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.DayPickerPhrases)),\n dayAriaLabelFormat: _propTypes2['default'].string,\n\n isRTL: _propTypes2['default'].bool\n});\n\nvar defaultProps = {\n startDate: undefined, // TODO: use null\n endDate: undefined, // TODO: use null\n onDatesChange: function () {\n function onDatesChange() {}\n\n return onDatesChange;\n }(),\n\n startDateOffset: undefined,\n endDateOffset: undefined,\n\n focusedInput: null,\n onFocusChange: function () {\n function onFocusChange() {}\n\n return onFocusChange;\n }(),\n onClose: function () {\n function onClose() {}\n\n return onClose;\n }(),\n\n\n keepOpenOnDateSelect: false,\n minimumNights: 1,\n disabled: false,\n isOutsideRange: function () {\n function isOutsideRange() {}\n\n return isOutsideRange;\n }(),\n isDayBlocked: function () {\n function isDayBlocked() {}\n\n return isDayBlocked;\n }(),\n isDayHighlighted: function () {\n function isDayHighlighted() {}\n\n return isDayHighlighted;\n }(),\n\n\n // DayPicker props\n renderMonthText: null,\n enableOutsideDays: false,\n numberOfMonths: 1,\n orientation: _constants.HORIZONTAL_ORIENTATION,\n withPortal: false,\n hideKeyboardShortcutsPanel: false,\n initialVisibleMonth: null,\n daySize: _constants.DAY_SIZE,\n\n navPrev: null,\n navNext: null,\n noNavButtons: false,\n\n onPrevMonthClick: function () {\n function onPrevMonthClick() {}\n\n return onPrevMonthClick;\n }(),\n onNextMonthClick: function () {\n function onNextMonthClick() {}\n\n return onNextMonthClick;\n }(),\n onOutsideClick: function () {\n function onOutsideClick() {}\n\n return onOutsideClick;\n }(),\n\n\n renderCalendarDay: undefined,\n renderDayContents: null,\n renderCalendarInfo: null,\n renderMonthElement: null,\n calendarInfoPosition: _constants.INFO_POSITION_BOTTOM,\n firstDayOfWeek: null,\n verticalHeight: null,\n noBorder: false,\n transitionDuration: undefined,\n verticalBorderSpacing: undefined,\n horizontalMonthPadding: 13,\n\n // accessibility\n onBlur: function () {\n function onBlur() {}\n\n return onBlur;\n }(),\n\n isFocused: false,\n showKeyboardShortcuts: false,\n\n // i18n\n monthFormat: 'MMMM YYYY',\n weekDayFormat: 'dd',\n phrases: _defaultPhrases.DayPickerPhrases,\n dayAriaLabelFormat: undefined,\n\n isRTL: false\n};\n\nvar getChooseAvailableDatePhrase = function getChooseAvailableDatePhrase(phrases, focusedInput) {\n if (focusedInput === _constants.START_DATE) {\n return phrases.chooseAvailableStartDate;\n }\n if (focusedInput === _constants.END_DATE) {\n return phrases.chooseAvailableEndDate;\n }\n return phrases.chooseAvailableDate;\n};\n\nvar DayPickerRangeController = function (_React$Component) {\n _inherits(DayPickerRangeController, _React$Component);\n\n function DayPickerRangeController(props) {\n _classCallCheck(this, DayPickerRangeController);\n\n var _this = _possibleConstructorReturn(this, (DayPickerRangeController.__proto__ || Object.getPrototypeOf(DayPickerRangeController)).call(this, props));\n\n _this.isTouchDevice = (0, _isTouchDevice2['default'])();\n _this.today = (0, _moment2['default'])();\n _this.modifiers = {\n today: function () {\n function today(day) {\n return _this.isToday(day);\n }\n\n return today;\n }(),\n blocked: function () {\n function blocked(day) {\n return _this.isBlocked(day);\n }\n\n return blocked;\n }(),\n 'blocked-calendar': function () {\n function blockedCalendar(day) {\n return props.isDayBlocked(day);\n }\n\n return blockedCalendar;\n }(),\n 'blocked-out-of-range': function () {\n function blockedOutOfRange(day) {\n return props.isOutsideRange(day);\n }\n\n return blockedOutOfRange;\n }(),\n 'highlighted-calendar': function () {\n function highlightedCalendar(day) {\n return props.isDayHighlighted(day);\n }\n\n return highlightedCalendar;\n }(),\n valid: function () {\n function valid(day) {\n return !_this.isBlocked(day);\n }\n\n return valid;\n }(),\n 'selected-start': function () {\n function selectedStart(day) {\n return _this.isStartDate(day);\n }\n\n return selectedStart;\n }(),\n 'selected-end': function () {\n function selectedEnd(day) {\n return _this.isEndDate(day);\n }\n\n return selectedEnd;\n }(),\n 'blocked-minimum-nights': function () {\n function blockedMinimumNights(day) {\n return _this.doesNotMeetMinimumNights(day);\n }\n\n return blockedMinimumNights;\n }(),\n 'selected-span': function () {\n function selectedSpan(day) {\n return _this.isInSelectedSpan(day);\n }\n\n return selectedSpan;\n }(),\n 'last-in-range': function () {\n function lastInRange(day) {\n return _this.isLastInRange(day);\n }\n\n return lastInRange;\n }(),\n hovered: function () {\n function hovered(day) {\n return _this.isHovered(day);\n }\n\n return hovered;\n }(),\n 'hovered-span': function () {\n function hoveredSpan(day) {\n return _this.isInHoveredSpan(day);\n }\n\n return hoveredSpan;\n }(),\n 'hovered-offset': function () {\n function hoveredOffset(day) {\n return _this.isInHoveredSpan(day);\n }\n\n return hoveredOffset;\n }(),\n 'after-hovered-start': function () {\n function afterHoveredStart(day) {\n return _this.isDayAfterHoveredStartDate(day);\n }\n\n return afterHoveredStart;\n }(),\n 'first-day-of-week': function () {\n function firstDayOfWeek(day) {\n return _this.isFirstDayOfWeek(day);\n }\n\n return firstDayOfWeek;\n }(),\n 'last-day-of-week': function () {\n function lastDayOfWeek(day) {\n return _this.isLastDayOfWeek(day);\n }\n\n return lastDayOfWeek;\n }()\n };\n\n var _this$getStateForNewM = _this.getStateForNewMonth(props),\n currentMonth = _this$getStateForNewM.currentMonth,\n visibleDays = _this$getStateForNewM.visibleDays;\n\n // initialize phrases\n // set the appropriate CalendarDay phrase based on focusedInput\n\n\n var chooseAvailableDate = getChooseAvailableDatePhrase(props.phrases, props.focusedInput);\n\n _this.state = {\n hoverDate: null,\n currentMonth: currentMonth,\n phrases: (0, _object2['default'])({}, props.phrases, {\n chooseAvailableDate: chooseAvailableDate\n }),\n visibleDays: visibleDays\n };\n\n _this.onDayClick = _this.onDayClick.bind(_this);\n _this.onDayMouseEnter = _this.onDayMouseEnter.bind(_this);\n _this.onDayMouseLeave = _this.onDayMouseLeave.bind(_this);\n _this.onPrevMonthClick = _this.onPrevMonthClick.bind(_this);\n _this.onNextMonthClick = _this.onNextMonthClick.bind(_this);\n _this.onMonthChange = _this.onMonthChange.bind(_this);\n _this.onYearChange = _this.onYearChange.bind(_this);\n _this.onMultiplyScrollableMonths = _this.onMultiplyScrollableMonths.bind(_this);\n _this.getFirstFocusableDay = _this.getFirstFocusableDay.bind(_this);\n return _this;\n }\n\n _createClass(DayPickerRangeController, [{\n key: 'componentWillReceiveProps',\n value: function () {\n function componentWillReceiveProps(nextProps) {\n var _this2 = this;\n\n var startDate = nextProps.startDate,\n endDate = nextProps.endDate,\n focusedInput = nextProps.focusedInput,\n minimumNights = nextProps.minimumNights,\n isOutsideRange = nextProps.isOutsideRange,\n isDayBlocked = nextProps.isDayBlocked,\n isDayHighlighted = nextProps.isDayHighlighted,\n phrases = nextProps.phrases,\n initialVisibleMonth = nextProps.initialVisibleMonth,\n numberOfMonths = nextProps.numberOfMonths,\n enableOutsideDays = nextProps.enableOutsideDays;\n var _props = this.props,\n prevStartDate = _props.startDate,\n prevEndDate = _props.endDate,\n prevFocusedInput = _props.focusedInput,\n prevMinimumNights = _props.minimumNights,\n prevIsOutsideRange = _props.isOutsideRange,\n prevIsDayBlocked = _props.isDayBlocked,\n prevIsDayHighlighted = _props.isDayHighlighted,\n prevPhrases = _props.phrases,\n prevInitialVisibleMonth = _props.initialVisibleMonth,\n prevNumberOfMonths = _props.numberOfMonths,\n prevEnableOutsideDays = _props.enableOutsideDays;\n var visibleDays = this.state.visibleDays;\n\n\n var recomputeOutsideRange = false;\n var recomputeDayBlocked = false;\n var recomputeDayHighlighted = false;\n\n if (isOutsideRange !== prevIsOutsideRange) {\n this.modifiers['blocked-out-of-range'] = function (day) {\n return isOutsideRange(day);\n };\n recomputeOutsideRange = true;\n }\n\n if (isDayBlocked !== prevIsDayBlocked) {\n this.modifiers['blocked-calendar'] = function (day) {\n return isDayBlocked(day);\n };\n recomputeDayBlocked = true;\n }\n\n if (isDayHighlighted !== prevIsDayHighlighted) {\n this.modifiers['highlighted-calendar'] = function (day) {\n return isDayHighlighted(day);\n };\n recomputeDayHighlighted = true;\n }\n\n var recomputePropModifiers = recomputeOutsideRange || recomputeDayBlocked || recomputeDayHighlighted;\n\n var didStartDateChange = startDate !== prevStartDate;\n var didEndDateChange = endDate !== prevEndDate;\n var didFocusChange = focusedInput !== prevFocusedInput;\n\n if (numberOfMonths !== prevNumberOfMonths || enableOutsideDays !== prevEnableOutsideDays || initialVisibleMonth !== prevInitialVisibleMonth && !prevFocusedInput && didFocusChange) {\n var newMonthState = this.getStateForNewMonth(nextProps);\n var currentMonth = newMonthState.currentMonth;\n visibleDays = newMonthState.visibleDays;\n\n this.setState({\n currentMonth: currentMonth,\n visibleDays: visibleDays\n });\n }\n\n var modifiers = {};\n\n if (didStartDateChange) {\n modifiers = this.deleteModifier(modifiers, prevStartDate, 'selected-start');\n modifiers = this.addModifier(modifiers, startDate, 'selected-start');\n\n if (prevStartDate) {\n var startSpan = prevStartDate.clone().add(1, 'day');\n var endSpan = prevStartDate.clone().add(prevMinimumNights + 1, 'days');\n modifiers = this.deleteModifierFromRange(modifiers, startSpan, endSpan, 'after-hovered-start');\n }\n }\n\n if (didEndDateChange) {\n modifiers = this.deleteModifier(modifiers, prevEndDate, 'selected-end');\n modifiers = this.addModifier(modifiers, endDate, 'selected-end');\n }\n\n if (didStartDateChange || didEndDateChange) {\n if (prevStartDate && prevEndDate) {\n modifiers = this.deleteModifierFromRange(modifiers, prevStartDate, prevEndDate.clone().add(1, 'day'), 'selected-span');\n }\n\n if (startDate && endDate) {\n modifiers = this.deleteModifierFromRange(modifiers, startDate, endDate.clone().add(1, 'day'), 'hovered-span');\n\n modifiers = this.addModifierToRange(modifiers, startDate.clone().add(1, 'day'), endDate, 'selected-span');\n }\n }\n\n if (!this.isTouchDevice && didStartDateChange && startDate && !endDate) {\n var _startSpan = startDate.clone().add(1, 'day');\n var _endSpan = startDate.clone().add(minimumNights + 1, 'days');\n modifiers = this.addModifierToRange(modifiers, _startSpan, _endSpan, 'after-hovered-start');\n }\n\n if (prevMinimumNights > 0) {\n if (didFocusChange || didStartDateChange || minimumNights !== prevMinimumNights) {\n var _startSpan2 = prevStartDate || this.today;\n modifiers = this.deleteModifierFromRange(modifiers, _startSpan2, _startSpan2.clone().add(prevMinimumNights, 'days'), 'blocked-minimum-nights');\n\n modifiers = this.deleteModifierFromRange(modifiers, _startSpan2, _startSpan2.clone().add(prevMinimumNights, 'days'), 'blocked');\n }\n }\n\n if (didFocusChange || recomputePropModifiers) {\n (0, _object4['default'])(visibleDays).forEach(function (days) {\n Object.keys(days).forEach(function (day) {\n var momentObj = (0, _moment2['default'])(day);\n var isBlocked = false;\n\n if (didFocusChange || recomputeOutsideRange) {\n if (isOutsideRange(momentObj)) {\n modifiers = _this2.addModifier(modifiers, momentObj, 'blocked-out-of-range');\n isBlocked = true;\n } else {\n modifiers = _this2.deleteModifier(modifiers, momentObj, 'blocked-out-of-range');\n }\n }\n\n if (didFocusChange || recomputeDayBlocked) {\n if (isDayBlocked(momentObj)) {\n modifiers = _this2.addModifier(modifiers, momentObj, 'blocked-calendar');\n isBlocked = true;\n } else {\n modifiers = _this2.deleteModifier(modifiers, momentObj, 'blocked-calendar');\n }\n }\n\n if (isBlocked) {\n modifiers = _this2.addModifier(modifiers, momentObj, 'blocked');\n } else {\n modifiers = _this2.deleteModifier(modifiers, momentObj, 'blocked');\n }\n\n if (didFocusChange || recomputeDayHighlighted) {\n if (isDayHighlighted(momentObj)) {\n modifiers = _this2.addModifier(modifiers, momentObj, 'highlighted-calendar');\n } else {\n modifiers = _this2.deleteModifier(modifiers, momentObj, 'highlighted-calendar');\n }\n }\n });\n });\n }\n\n if (minimumNights > 0 && startDate && focusedInput === _constants.END_DATE) {\n modifiers = this.addModifierToRange(modifiers, startDate, startDate.clone().add(minimumNights, 'days'), 'blocked-minimum-nights');\n\n modifiers = this.addModifierToRange(modifiers, startDate, startDate.clone().add(minimumNights, 'days'), 'blocked');\n }\n\n var today = (0, _moment2['default'])();\n if (!(0, _isSameDay2['default'])(this.today, today)) {\n modifiers = this.deleteModifier(modifiers, this.today, 'today');\n modifiers = this.addModifier(modifiers, today, 'today');\n this.today = today;\n }\n\n if (Object.keys(modifiers).length > 0) {\n this.setState({\n visibleDays: (0, _object2['default'])({}, visibleDays, modifiers)\n });\n }\n\n if (didFocusChange || phrases !== prevPhrases) {\n // set the appropriate CalendarDay phrase based on focusedInput\n var chooseAvailableDate = getChooseAvailableDatePhrase(phrases, focusedInput);\n\n this.setState({\n phrases: (0, _object2['default'])({}, phrases, {\n chooseAvailableDate: chooseAvailableDate\n })\n });\n }\n }\n\n return componentWillReceiveProps;\n }()\n }, {\n key: 'onDayClick',\n value: function () {\n function onDayClick(day, e) {\n var _props2 = this.props,\n keepOpenOnDateSelect = _props2.keepOpenOnDateSelect,\n minimumNights = _props2.minimumNights,\n onBlur = _props2.onBlur,\n focusedInput = _props2.focusedInput,\n onFocusChange = _props2.onFocusChange,\n onClose = _props2.onClose,\n onDatesChange = _props2.onDatesChange,\n startDateOffset = _props2.startDateOffset,\n endDateOffset = _props2.endDateOffset,\n disabled = _props2.disabled;\n\n\n if (e) e.preventDefault();\n if (this.isBlocked(day)) return;\n\n var _props3 = this.props,\n startDate = _props3.startDate,\n endDate = _props3.endDate;\n\n\n if (startDateOffset || endDateOffset) {\n startDate = (0, _getSelectedDateOffset2['default'])(startDateOffset, day);\n endDate = (0, _getSelectedDateOffset2['default'])(endDateOffset, day);\n\n if (!keepOpenOnDateSelect) {\n onFocusChange(null);\n onClose({ startDate: startDate, endDate: endDate });\n }\n } else if (focusedInput === _constants.START_DATE) {\n var lastAllowedStartDate = endDate && endDate.clone().subtract(minimumNights, 'days');\n var isStartDateAfterEndDate = (0, _isBeforeDay2['default'])(lastAllowedStartDate, day) || (0, _isAfterDay2['default'])(startDate, endDate);\n var isEndDateDisabled = disabled === _constants.END_DATE;\n\n if (!isEndDateDisabled || !isStartDateAfterEndDate) {\n startDate = day;\n if (isStartDateAfterEndDate) {\n endDate = null;\n }\n }\n\n if (isEndDateDisabled && !isStartDateAfterEndDate) {\n onFocusChange(null);\n onClose({ startDate: startDate, endDate: endDate });\n } else if (!isEndDateDisabled) {\n onFocusChange(_constants.END_DATE);\n }\n } else if (focusedInput === _constants.END_DATE) {\n var firstAllowedEndDate = startDate && startDate.clone().add(minimumNights, 'days');\n\n if (!startDate) {\n endDate = day;\n onFocusChange(_constants.START_DATE);\n } else if ((0, _isInclusivelyAfterDay2['default'])(day, firstAllowedEndDate)) {\n endDate = day;\n if (!keepOpenOnDateSelect) {\n onFocusChange(null);\n onClose({ startDate: startDate, endDate: endDate });\n }\n } else if (disabled !== _constants.START_DATE) {\n startDate = day;\n endDate = null;\n }\n }\n\n onDatesChange({ startDate: startDate, endDate: endDate });\n onBlur();\n }\n\n return onDayClick;\n }()\n }, {\n key: 'onDayMouseEnter',\n value: function () {\n function onDayMouseEnter(day) {\n /* eslint react/destructuring-assignment: 1 */\n if (this.isTouchDevice) return;\n var _props4 = this.props,\n startDate = _props4.startDate,\n endDate = _props4.endDate,\n focusedInput = _props4.focusedInput,\n minimumNights = _props4.minimumNights,\n startDateOffset = _props4.startDateOffset,\n endDateOffset = _props4.endDateOffset;\n var _state = this.state,\n hoverDate = _state.hoverDate,\n visibleDays = _state.visibleDays;\n\n var dateOffset = null;\n\n if (focusedInput) {\n var hasOffset = startDateOffset || endDateOffset;\n var modifiers = {};\n\n if (hasOffset) {\n var start = (0, _getSelectedDateOffset2['default'])(startDateOffset, day);\n var end = (0, _getSelectedDateOffset2['default'])(endDateOffset, day, function (rangeDay) {\n return rangeDay.add(1, 'day');\n });\n\n dateOffset = {\n start: start,\n end: end\n };\n\n // eslint-disable-next-line react/destructuring-assignment\n if (this.state.dateOffset && this.state.dateOffset.start && this.state.dateOffset.end) {\n modifiers = this.deleteModifierFromRange(modifiers, this.state.dateOffset.start, this.state.dateOffset.end, 'hovered-offset');\n }\n modifiers = this.addModifierToRange(modifiers, start, end, 'hovered-offset');\n }\n\n if (!hasOffset) {\n modifiers = this.deleteModifier(modifiers, hoverDate, 'hovered');\n modifiers = this.addModifier(modifiers, day, 'hovered');\n\n if (startDate && !endDate && focusedInput === _constants.END_DATE) {\n if ((0, _isAfterDay2['default'])(hoverDate, startDate)) {\n var endSpan = hoverDate.clone().add(1, 'day');\n modifiers = this.deleteModifierFromRange(modifiers, startDate, endSpan, 'hovered-span');\n }\n\n if (!this.isBlocked(day) && (0, _isAfterDay2['default'])(day, startDate)) {\n var _endSpan2 = day.clone().add(1, 'day');\n modifiers = this.addModifierToRange(modifiers, startDate, _endSpan2, 'hovered-span');\n }\n }\n\n if (!startDate && endDate && focusedInput === _constants.START_DATE) {\n if ((0, _isBeforeDay2['default'])(hoverDate, endDate)) {\n modifiers = this.deleteModifierFromRange(modifiers, hoverDate, endDate, 'hovered-span');\n }\n\n if (!this.isBlocked(day) && (0, _isBeforeDay2['default'])(day, endDate)) {\n modifiers = this.addModifierToRange(modifiers, day, endDate, 'hovered-span');\n }\n }\n\n if (startDate) {\n var startSpan = startDate.clone().add(1, 'day');\n var _endSpan3 = startDate.clone().add(minimumNights + 1, 'days');\n modifiers = this.deleteModifierFromRange(modifiers, startSpan, _endSpan3, 'after-hovered-start');\n\n if ((0, _isSameDay2['default'])(day, startDate)) {\n var newStartSpan = startDate.clone().add(1, 'day');\n var newEndSpan = startDate.clone().add(minimumNights + 1, 'days');\n modifiers = this.addModifierToRange(modifiers, newStartSpan, newEndSpan, 'after-hovered-start');\n }\n }\n }\n\n this.setState({\n hoverDate: day,\n dateOffset: dateOffset,\n visibleDays: (0, _object2['default'])({}, visibleDays, modifiers)\n });\n }\n }\n\n return onDayMouseEnter;\n }()\n }, {\n key: 'onDayMouseLeave',\n value: function () {\n function onDayMouseLeave(day) {\n var _props5 = this.props,\n startDate = _props5.startDate,\n endDate = _props5.endDate,\n minimumNights = _props5.minimumNights;\n var _state2 = this.state,\n hoverDate = _state2.hoverDate,\n visibleDays = _state2.visibleDays,\n dateOffset = _state2.dateOffset;\n\n if (this.isTouchDevice || !hoverDate) return;\n\n var modifiers = {};\n modifiers = this.deleteModifier(modifiers, hoverDate, 'hovered');\n\n if (dateOffset) {\n modifiers = this.deleteModifierFromRange(modifiers, this.state.dateOffset.start, this.state.dateOffset.end, 'hovered-offset');\n }\n\n if (startDate && !endDate && (0, _isAfterDay2['default'])(hoverDate, startDate)) {\n var endSpan = hoverDate.clone().add(1, 'day');\n modifiers = this.deleteModifierFromRange(modifiers, startDate, endSpan, 'hovered-span');\n }\n\n if (!startDate && endDate && (0, _isAfterDay2['default'])(endDate, hoverDate)) {\n modifiers = this.deleteModifierFromRange(modifiers, hoverDate, endDate, 'hovered-span');\n }\n\n if (startDate && (0, _isSameDay2['default'])(day, startDate)) {\n var startSpan = startDate.clone().add(1, 'day');\n var _endSpan4 = startDate.clone().add(minimumNights + 1, 'days');\n modifiers = this.deleteModifierFromRange(modifiers, startSpan, _endSpan4, 'after-hovered-start');\n }\n\n this.setState({\n hoverDate: null,\n visibleDays: (0, _object2['default'])({}, visibleDays, modifiers)\n });\n }\n\n return onDayMouseLeave;\n }()\n }, {\n key: 'onPrevMonthClick',\n value: function () {\n function onPrevMonthClick() {\n var _props6 = this.props,\n onPrevMonthClick = _props6.onPrevMonthClick,\n numberOfMonths = _props6.numberOfMonths,\n enableOutsideDays = _props6.enableOutsideDays;\n var _state3 = this.state,\n currentMonth = _state3.currentMonth,\n visibleDays = _state3.visibleDays;\n\n\n var newVisibleDays = {};\n Object.keys(visibleDays).sort().slice(0, numberOfMonths + 1).forEach(function (month) {\n newVisibleDays[month] = visibleDays[month];\n });\n\n var prevMonth = currentMonth.clone().subtract(2, 'months');\n var prevMonthVisibleDays = (0, _getVisibleDays2['default'])(prevMonth, 1, enableOutsideDays, true);\n\n var newCurrentMonth = currentMonth.clone().subtract(1, 'month');\n this.setState({\n currentMonth: newCurrentMonth,\n visibleDays: (0, _object2['default'])({}, newVisibleDays, this.getModifiers(prevMonthVisibleDays))\n }, function () {\n onPrevMonthClick(newCurrentMonth.clone());\n });\n }\n\n return onPrevMonthClick;\n }()\n }, {\n key: 'onNextMonthClick',\n value: function () {\n function onNextMonthClick() {\n var _props7 = this.props,\n onNextMonthClick = _props7.onNextMonthClick,\n numberOfMonths = _props7.numberOfMonths,\n enableOutsideDays = _props7.enableOutsideDays;\n var _state4 = this.state,\n currentMonth = _state4.currentMonth,\n visibleDays = _state4.visibleDays;\n\n\n var newVisibleDays = {};\n Object.keys(visibleDays).sort().slice(1).forEach(function (month) {\n newVisibleDays[month] = visibleDays[month];\n });\n\n var nextMonth = currentMonth.clone().add(numberOfMonths + 1, 'month');\n var nextMonthVisibleDays = (0, _getVisibleDays2['default'])(nextMonth, 1, enableOutsideDays, true);\n\n var newCurrentMonth = currentMonth.clone().add(1, 'month');\n this.setState({\n currentMonth: newCurrentMonth,\n visibleDays: (0, _object2['default'])({}, newVisibleDays, this.getModifiers(nextMonthVisibleDays))\n }, function () {\n onNextMonthClick(newCurrentMonth.clone());\n });\n }\n\n return onNextMonthClick;\n }()\n }, {\n key: 'onMonthChange',\n value: function () {\n function onMonthChange(newMonth) {\n var _props8 = this.props,\n numberOfMonths = _props8.numberOfMonths,\n enableOutsideDays = _props8.enableOutsideDays,\n orientation = _props8.orientation;\n\n var withoutTransitionMonths = orientation === _constants.VERTICAL_SCROLLABLE;\n var newVisibleDays = (0, _getVisibleDays2['default'])(newMonth, numberOfMonths, enableOutsideDays, withoutTransitionMonths);\n\n this.setState({\n currentMonth: newMonth.clone(),\n visibleDays: this.getModifiers(newVisibleDays)\n });\n }\n\n return onMonthChange;\n }()\n }, {\n key: 'onYearChange',\n value: function () {\n function onYearChange(newMonth) {\n var _props9 = this.props,\n numberOfMonths = _props9.numberOfMonths,\n enableOutsideDays = _props9.enableOutsideDays,\n orientation = _props9.orientation;\n\n var withoutTransitionMonths = orientation === _constants.VERTICAL_SCROLLABLE;\n var newVisibleDays = (0, _getVisibleDays2['default'])(newMonth, numberOfMonths, enableOutsideDays, withoutTransitionMonths);\n\n this.setState({\n currentMonth: newMonth.clone(),\n visibleDays: this.getModifiers(newVisibleDays)\n });\n }\n\n return onYearChange;\n }()\n }, {\n key: 'onMultiplyScrollableMonths',\n value: function () {\n function onMultiplyScrollableMonths() {\n var _props10 = this.props,\n numberOfMonths = _props10.numberOfMonths,\n enableOutsideDays = _props10.enableOutsideDays;\n var _state5 = this.state,\n currentMonth = _state5.currentMonth,\n visibleDays = _state5.visibleDays;\n\n\n var numberOfVisibleMonths = Object.keys(visibleDays).length;\n var nextMonth = currentMonth.clone().add(numberOfVisibleMonths, 'month');\n var newVisibleDays = (0, _getVisibleDays2['default'])(nextMonth, numberOfMonths, enableOutsideDays, true);\n\n this.setState({\n visibleDays: (0, _object2['default'])({}, visibleDays, this.getModifiers(newVisibleDays))\n });\n }\n\n return onMultiplyScrollableMonths;\n }()\n }, {\n key: 'getFirstFocusableDay',\n value: function () {\n function getFirstFocusableDay(newMonth) {\n var _this3 = this;\n\n var _props11 = this.props,\n startDate = _props11.startDate,\n endDate = _props11.endDate,\n focusedInput = _props11.focusedInput,\n minimumNights = _props11.minimumNights,\n numberOfMonths = _props11.numberOfMonths;\n\n\n var focusedDate = newMonth.clone().startOf('month');\n if (focusedInput === _constants.START_DATE && startDate) {\n focusedDate = startDate.clone();\n } else if (focusedInput === _constants.END_DATE && !endDate && startDate) {\n focusedDate = startDate.clone().add(minimumNights, 'days');\n } else if (focusedInput === _constants.END_DATE && endDate) {\n focusedDate = endDate.clone();\n }\n\n if (this.isBlocked(focusedDate)) {\n var days = [];\n var lastVisibleDay = newMonth.clone().add(numberOfMonths - 1, 'months').endOf('month');\n var currentDay = focusedDate.clone();\n while (!(0, _isAfterDay2['default'])(currentDay, lastVisibleDay)) {\n currentDay = currentDay.clone().add(1, 'day');\n days.push(currentDay);\n }\n\n var viableDays = days.filter(function (day) {\n return !_this3.isBlocked(day);\n });\n\n if (viableDays.length > 0) {\n var _viableDays = _slicedToArray(viableDays, 1);\n\n focusedDate = _viableDays[0];\n }\n }\n\n return focusedDate;\n }\n\n return getFirstFocusableDay;\n }()\n }, {\n key: 'getModifiers',\n value: function () {\n function getModifiers(visibleDays) {\n var _this4 = this;\n\n var modifiers = {};\n Object.keys(visibleDays).forEach(function (month) {\n modifiers[month] = {};\n visibleDays[month].forEach(function (day) {\n modifiers[month][(0, _toISODateString2['default'])(day)] = _this4.getModifiersForDay(day);\n });\n });\n\n return modifiers;\n }\n\n return getModifiers;\n }()\n }, {\n key: 'getModifiersForDay',\n value: function () {\n function getModifiersForDay(day) {\n var _this5 = this;\n\n return new Set(Object.keys(this.modifiers).filter(function (modifier) {\n return _this5.modifiers[modifier](day);\n }));\n }\n\n return getModifiersForDay;\n }()\n }, {\n key: 'getStateForNewMonth',\n value: function () {\n function getStateForNewMonth(nextProps) {\n var _this6 = this;\n\n var initialVisibleMonth = nextProps.initialVisibleMonth,\n numberOfMonths = nextProps.numberOfMonths,\n enableOutsideDays = nextProps.enableOutsideDays,\n orientation = nextProps.orientation,\n startDate = nextProps.startDate;\n\n var initialVisibleMonthThunk = initialVisibleMonth || (startDate ? function () {\n return startDate;\n } : function () {\n return _this6.today;\n });\n var currentMonth = initialVisibleMonthThunk();\n var withoutTransitionMonths = orientation === _constants.VERTICAL_SCROLLABLE;\n var visibleDays = this.getModifiers((0, _getVisibleDays2['default'])(currentMonth, numberOfMonths, enableOutsideDays, withoutTransitionMonths));\n return { currentMonth: currentMonth, visibleDays: visibleDays };\n }\n\n return getStateForNewMonth;\n }()\n }, {\n key: 'addModifier',\n value: function () {\n function addModifier(updatedDays, day, modifier) {\n var _props12 = this.props,\n numberOfVisibleMonths = _props12.numberOfMonths,\n enableOutsideDays = _props12.enableOutsideDays,\n orientation = _props12.orientation;\n var _state6 = this.state,\n firstVisibleMonth = _state6.currentMonth,\n visibleDays = _state6.visibleDays;\n\n\n var currentMonth = firstVisibleMonth;\n var numberOfMonths = numberOfVisibleMonths;\n if (orientation === _constants.VERTICAL_SCROLLABLE) {\n numberOfMonths = Object.keys(visibleDays).length;\n } else {\n currentMonth = currentMonth.clone().subtract(1, 'month');\n numberOfMonths += 2;\n }\n if (!day || !(0, _isDayVisible2['default'])(day, currentMonth, numberOfMonths, enableOutsideDays)) {\n return updatedDays;\n }\n\n var iso = (0, _toISODateString2['default'])(day);\n\n var updatedDaysAfterAddition = (0, _object2['default'])({}, updatedDays);\n if (enableOutsideDays) {\n var monthsToUpdate = Object.keys(visibleDays).filter(function (monthKey) {\n return Object.keys(visibleDays[monthKey]).indexOf(iso) > -1;\n });\n\n updatedDaysAfterAddition = monthsToUpdate.reduce(function (days, monthIso) {\n var month = updatedDays[monthIso] || visibleDays[monthIso];\n var modifiers = new Set(month[iso]);\n modifiers.add(modifier);\n return (0, _object2['default'])({}, days, _defineProperty({}, monthIso, (0, _object2['default'])({}, month, _defineProperty({}, iso, modifiers))));\n }, updatedDaysAfterAddition);\n } else {\n var monthIso = (0, _toISOMonthString2['default'])(day);\n var month = updatedDays[monthIso] || visibleDays[monthIso];\n\n var modifiers = new Set(month[iso]);\n modifiers.add(modifier);\n updatedDaysAfterAddition = (0, _object2['default'])({}, updatedDaysAfterAddition, _defineProperty({}, monthIso, (0, _object2['default'])({}, month, _defineProperty({}, iso, modifiers))));\n }\n\n return updatedDaysAfterAddition;\n }\n\n return addModifier;\n }()\n }, {\n key: 'addModifierToRange',\n value: function () {\n function addModifierToRange(updatedDays, start, end, modifier) {\n var days = updatedDays;\n\n var spanStart = start.clone();\n while ((0, _isBeforeDay2['default'])(spanStart, end)) {\n days = this.addModifier(days, spanStart, modifier);\n spanStart = spanStart.clone().add(1, 'day');\n }\n\n return days;\n }\n\n return addModifierToRange;\n }()\n }, {\n key: 'deleteModifier',\n value: function () {\n function deleteModifier(updatedDays, day, modifier) {\n var _props13 = this.props,\n numberOfVisibleMonths = _props13.numberOfMonths,\n enableOutsideDays = _props13.enableOutsideDays,\n orientation = _props13.orientation;\n var _state7 = this.state,\n firstVisibleMonth = _state7.currentMonth,\n visibleDays = _state7.visibleDays;\n\n var currentMonth = firstVisibleMonth;\n var numberOfMonths = numberOfVisibleMonths;\n if (orientation === _constants.VERTICAL_SCROLLABLE) {\n numberOfMonths = Object.keys(visibleDays).length;\n } else {\n currentMonth = currentMonth.clone().subtract(1, 'month');\n numberOfMonths += 2;\n }\n if (!day || !(0, _isDayVisible2['default'])(day, currentMonth, numberOfMonths, enableOutsideDays)) {\n return updatedDays;\n }\n\n var iso = (0, _toISODateString2['default'])(day);\n\n var updatedDaysAfterDeletion = (0, _object2['default'])({}, updatedDays);\n if (enableOutsideDays) {\n var monthsToUpdate = Object.keys(visibleDays).filter(function (monthKey) {\n return Object.keys(visibleDays[monthKey]).indexOf(iso) > -1;\n });\n\n updatedDaysAfterDeletion = monthsToUpdate.reduce(function (days, monthIso) {\n var month = updatedDays[monthIso] || visibleDays[monthIso];\n var modifiers = new Set(month[iso]);\n modifiers['delete'](modifier);\n return (0, _object2['default'])({}, days, _defineProperty({}, monthIso, (0, _object2['default'])({}, month, _defineProperty({}, iso, modifiers))));\n }, updatedDaysAfterDeletion);\n } else {\n var monthIso = (0, _toISOMonthString2['default'])(day);\n var month = updatedDays[monthIso] || visibleDays[monthIso];\n\n var modifiers = new Set(month[iso]);\n modifiers['delete'](modifier);\n updatedDaysAfterDeletion = (0, _object2['default'])({}, updatedDaysAfterDeletion, _defineProperty({}, monthIso, (0, _object2['default'])({}, month, _defineProperty({}, iso, modifiers))));\n }\n\n return updatedDaysAfterDeletion;\n }\n\n return deleteModifier;\n }()\n }, {\n key: 'deleteModifierFromRange',\n value: function () {\n function deleteModifierFromRange(updatedDays, start, end, modifier) {\n var days = updatedDays;\n\n var spanStart = start.clone();\n while ((0, _isBeforeDay2['default'])(spanStart, end)) {\n days = this.deleteModifier(days, spanStart, modifier);\n spanStart = spanStart.clone().add(1, 'day');\n }\n\n return days;\n }\n\n return deleteModifierFromRange;\n }()\n }, {\n key: 'doesNotMeetMinimumNights',\n value: function () {\n function doesNotMeetMinimumNights(day) {\n var _props14 = this.props,\n startDate = _props14.startDate,\n isOutsideRange = _props14.isOutsideRange,\n focusedInput = _props14.focusedInput,\n minimumNights = _props14.minimumNights;\n\n if (focusedInput !== _constants.END_DATE) return false;\n\n if (startDate) {\n var dayDiff = day.diff(startDate.clone().startOf('day').hour(12), 'days');\n return dayDiff < minimumNights && dayDiff >= 0;\n }\n return isOutsideRange((0, _moment2['default'])(day).subtract(minimumNights, 'days'));\n }\n\n return doesNotMeetMinimumNights;\n }()\n }, {\n key: 'isDayAfterHoveredStartDate',\n value: function () {\n function isDayAfterHoveredStartDate(day) {\n var _props15 = this.props,\n startDate = _props15.startDate,\n endDate = _props15.endDate,\n minimumNights = _props15.minimumNights;\n\n var _ref = this.state || {},\n hoverDate = _ref.hoverDate;\n\n return !!startDate && !endDate && !this.isBlocked(day) && (0, _isNextDay2['default'])(hoverDate, day) && minimumNights > 0 && (0, _isSameDay2['default'])(hoverDate, startDate);\n }\n\n return isDayAfterHoveredStartDate;\n }()\n }, {\n key: 'isEndDate',\n value: function () {\n function isEndDate(day) {\n var endDate = this.props.endDate;\n\n return (0, _isSameDay2['default'])(day, endDate);\n }\n\n return isEndDate;\n }()\n }, {\n key: 'isHovered',\n value: function () {\n function isHovered(day) {\n var _ref2 = this.state || {},\n hoverDate = _ref2.hoverDate;\n\n var focusedInput = this.props.focusedInput;\n\n return !!focusedInput && (0, _isSameDay2['default'])(day, hoverDate);\n }\n\n return isHovered;\n }()\n }, {\n key: 'isInHoveredSpan',\n value: function () {\n function isInHoveredSpan(day) {\n var _props16 = this.props,\n startDate = _props16.startDate,\n endDate = _props16.endDate;\n\n var _ref3 = this.state || {},\n hoverDate = _ref3.hoverDate;\n\n var isForwardRange = !!startDate && !endDate && (day.isBetween(startDate, hoverDate) || (0, _isSameDay2['default'])(hoverDate, day));\n var isBackwardRange = !!endDate && !startDate && (day.isBetween(hoverDate, endDate) || (0, _isSameDay2['default'])(hoverDate, day));\n\n var isValidDayHovered = hoverDate && !this.isBlocked(hoverDate);\n\n return (isForwardRange || isBackwardRange) && isValidDayHovered;\n }\n\n return isInHoveredSpan;\n }()\n }, {\n key: 'isInSelectedSpan',\n value: function () {\n function isInSelectedSpan(day) {\n var _props17 = this.props,\n startDate = _props17.startDate,\n endDate = _props17.endDate;\n\n return day.isBetween(startDate, endDate);\n }\n\n return isInSelectedSpan;\n }()\n }, {\n key: 'isLastInRange',\n value: function () {\n function isLastInRange(day) {\n var endDate = this.props.endDate;\n\n return this.isInSelectedSpan(day) && (0, _isNextDay2['default'])(day, endDate);\n }\n\n return isLastInRange;\n }()\n }, {\n key: 'isStartDate',\n value: function () {\n function isStartDate(day) {\n var startDate = this.props.startDate;\n\n return (0, _isSameDay2['default'])(day, startDate);\n }\n\n return isStartDate;\n }()\n }, {\n key: 'isBlocked',\n value: function () {\n function isBlocked(day) {\n var _props18 = this.props,\n isDayBlocked = _props18.isDayBlocked,\n isOutsideRange = _props18.isOutsideRange;\n\n return isDayBlocked(day) || isOutsideRange(day) || this.doesNotMeetMinimumNights(day);\n }\n\n return isBlocked;\n }()\n }, {\n key: 'isToday',\n value: function () {\n function isToday(day) {\n return (0, _isSameDay2['default'])(day, this.today);\n }\n\n return isToday;\n }()\n }, {\n key: 'isFirstDayOfWeek',\n value: function () {\n function isFirstDayOfWeek(day) {\n var firstDayOfWeek = this.props.firstDayOfWeek;\n\n return day.day() === (firstDayOfWeek || _moment2['default'].localeData().firstDayOfWeek());\n }\n\n return isFirstDayOfWeek;\n }()\n }, {\n key: 'isLastDayOfWeek',\n value: function () {\n function isLastDayOfWeek(day) {\n var firstDayOfWeek = this.props.firstDayOfWeek;\n\n return day.day() === ((firstDayOfWeek || _moment2['default'].localeData().firstDayOfWeek()) + 6) % 7;\n }\n\n return isLastDayOfWeek;\n }()\n }, {\n key: 'render',\n value: function () {\n function render() {\n var _props19 = this.props,\n numberOfMonths = _props19.numberOfMonths,\n orientation = _props19.orientation,\n monthFormat = _props19.monthFormat,\n renderMonthText = _props19.renderMonthText,\n navPrev = _props19.navPrev,\n navNext = _props19.navNext,\n noNavButtons = _props19.noNavButtons,\n onOutsideClick = _props19.onOutsideClick,\n withPortal = _props19.withPortal,\n enableOutsideDays = _props19.enableOutsideDays,\n firstDayOfWeek = _props19.firstDayOfWeek,\n hideKeyboardShortcutsPanel = _props19.hideKeyboardShortcutsPanel,\n daySize = _props19.daySize,\n focusedInput = _props19.focusedInput,\n renderCalendarDay = _props19.renderCalendarDay,\n renderDayContents = _props19.renderDayContents,\n renderCalendarInfo = _props19.renderCalendarInfo,\n renderMonthElement = _props19.renderMonthElement,\n calendarInfoPosition = _props19.calendarInfoPosition,\n onBlur = _props19.onBlur,\n isFocused = _props19.isFocused,\n showKeyboardShortcuts = _props19.showKeyboardShortcuts,\n isRTL = _props19.isRTL,\n weekDayFormat = _props19.weekDayFormat,\n dayAriaLabelFormat = _props19.dayAriaLabelFormat,\n verticalHeight = _props19.verticalHeight,\n noBorder = _props19.noBorder,\n transitionDuration = _props19.transitionDuration,\n verticalBorderSpacing = _props19.verticalBorderSpacing,\n horizontalMonthPadding = _props19.horizontalMonthPadding;\n var _state8 = this.state,\n currentMonth = _state8.currentMonth,\n phrases = _state8.phrases,\n visibleDays = _state8.visibleDays;\n\n\n return _react2['default'].createElement(_DayPicker2['default'], {\n orientation: orientation,\n enableOutsideDays: enableOutsideDays,\n modifiers: visibleDays,\n numberOfMonths: numberOfMonths,\n onDayClick: this.onDayClick,\n onDayMouseEnter: this.onDayMouseEnter,\n onDayMouseLeave: this.onDayMouseLeave,\n onPrevMonthClick: this.onPrevMonthClick,\n onNextMonthClick: this.onNextMonthClick,\n onMonthChange: this.onMonthChange,\n onYearChange: this.onYearChange,\n onMultiplyScrollableMonths: this.onMultiplyScrollableMonths,\n monthFormat: monthFormat,\n renderMonthText: renderMonthText,\n withPortal: withPortal,\n hidden: !focusedInput,\n initialVisibleMonth: function () {\n function initialVisibleMonth() {\n return currentMonth;\n }\n\n return initialVisibleMonth;\n }(),\n daySize: daySize,\n onOutsideClick: onOutsideClick,\n navPrev: navPrev,\n navNext: navNext,\n noNavButtons: noNavButtons,\n renderCalendarDay: renderCalendarDay,\n renderDayContents: renderDayContents,\n renderCalendarInfo: renderCalendarInfo,\n renderMonthElement: renderMonthElement,\n calendarInfoPosition: calendarInfoPosition,\n firstDayOfWeek: firstDayOfWeek,\n hideKeyboardShortcutsPanel: hideKeyboardShortcutsPanel,\n isFocused: isFocused,\n getFirstFocusableDay: this.getFirstFocusableDay,\n onBlur: onBlur,\n showKeyboardShortcuts: showKeyboardShortcuts,\n phrases: phrases,\n isRTL: isRTL,\n weekDayFormat: weekDayFormat,\n dayAriaLabelFormat: dayAriaLabelFormat,\n verticalHeight: verticalHeight,\n verticalBorderSpacing: verticalBorderSpacing,\n noBorder: noBorder,\n transitionDuration: transitionDuration,\n horizontalMonthPadding: horizontalMonthPadding\n });\n }\n\n return render;\n }()\n }]);\n\n return DayPickerRangeController;\n}(_react2['default'].Component);\n\nexports['default'] = DayPickerRangeController;\n\n\nDayPickerRangeController.propTypes = propTypes;\nDayPickerRangeController.defaultProps = defaultProps;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _object = require('object.assign');\n\nvar _object2 = _interopRequireDefault(_object);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactMomentProptypes = require('react-moment-proptypes');\n\nvar _reactMomentProptypes2 = _interopRequireDefault(_reactMomentProptypes);\n\nvar _airbnbPropTypes = require('airbnb-prop-types');\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _object3 = require('object.values');\n\nvar _object4 = _interopRequireDefault(_object3);\n\nvar _isTouchDevice = require('is-touch-device');\n\nvar _isTouchDevice2 = _interopRequireDefault(_isTouchDevice);\n\nvar _defaultPhrases = require('../defaultPhrases');\n\nvar _getPhrasePropTypes = require('../utils/getPhrasePropTypes');\n\nvar _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);\n\nvar _isSameDay = require('../utils/isSameDay');\n\nvar _isSameDay2 = _interopRequireDefault(_isSameDay);\n\nvar _isAfterDay = require('../utils/isAfterDay');\n\nvar _isAfterDay2 = _interopRequireDefault(_isAfterDay);\n\nvar _getVisibleDays = require('../utils/getVisibleDays');\n\nvar _getVisibleDays2 = _interopRequireDefault(_getVisibleDays);\n\nvar _isDayVisible = require('../utils/isDayVisible');\n\nvar _isDayVisible2 = _interopRequireDefault(_isDayVisible);\n\nvar _toISODateString = require('../utils/toISODateString');\n\nvar _toISODateString2 = _interopRequireDefault(_toISODateString);\n\nvar _toISOMonthString = require('../utils/toISOMonthString');\n\nvar _toISOMonthString2 = _interopRequireDefault(_toISOMonthString);\n\nvar _ScrollableOrientationShape = require('../shapes/ScrollableOrientationShape');\n\nvar _ScrollableOrientationShape2 = _interopRequireDefault(_ScrollableOrientationShape);\n\nvar _DayOfWeekShape = require('../shapes/DayOfWeekShape');\n\nvar _DayOfWeekShape2 = _interopRequireDefault(_DayOfWeekShape);\n\nvar _CalendarInfoPositionShape = require('../shapes/CalendarInfoPositionShape');\n\nvar _CalendarInfoPositionShape2 = _interopRequireDefault(_CalendarInfoPositionShape);\n\nvar _constants = require('../constants');\n\nvar _DayPicker = require('./DayPicker');\n\nvar _DayPicker2 = _interopRequireDefault(_DayPicker);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar propTypes = (0, _airbnbPropTypes.forbidExtraProps)({\n date: _reactMomentProptypes2['default'].momentObj,\n onDateChange: _propTypes2['default'].func,\n\n focused: _propTypes2['default'].bool,\n onFocusChange: _propTypes2['default'].func,\n onClose: _propTypes2['default'].func,\n\n keepOpenOnDateSelect: _propTypes2['default'].bool,\n isOutsideRange: _propTypes2['default'].func,\n isDayBlocked: _propTypes2['default'].func,\n isDayHighlighted: _propTypes2['default'].func,\n\n // DayPicker props\n renderMonthText: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'),\n renderMonthElement: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'),\n enableOutsideDays: _propTypes2['default'].bool,\n numberOfMonths: _propTypes2['default'].number,\n orientation: _ScrollableOrientationShape2['default'],\n withPortal: _propTypes2['default'].bool,\n initialVisibleMonth: _propTypes2['default'].func,\n firstDayOfWeek: _DayOfWeekShape2['default'],\n hideKeyboardShortcutsPanel: _propTypes2['default'].bool,\n daySize: _airbnbPropTypes.nonNegativeInteger,\n verticalHeight: _airbnbPropTypes.nonNegativeInteger,\n noBorder: _propTypes2['default'].bool,\n verticalBorderSpacing: _airbnbPropTypes.nonNegativeInteger,\n transitionDuration: _airbnbPropTypes.nonNegativeInteger,\n horizontalMonthPadding: _airbnbPropTypes.nonNegativeInteger,\n\n navPrev: _propTypes2['default'].node,\n navNext: _propTypes2['default'].node,\n\n onPrevMonthClick: _propTypes2['default'].func,\n onNextMonthClick: _propTypes2['default'].func,\n onOutsideClick: _propTypes2['default'].func,\n renderCalendarDay: _propTypes2['default'].func,\n renderDayContents: _propTypes2['default'].func,\n renderCalendarInfo: _propTypes2['default'].func,\n calendarInfoPosition: _CalendarInfoPositionShape2['default'],\n\n // accessibility\n onBlur: _propTypes2['default'].func,\n isFocused: _propTypes2['default'].bool,\n showKeyboardShortcuts: _propTypes2['default'].bool,\n\n // i18n\n monthFormat: _propTypes2['default'].string,\n weekDayFormat: _propTypes2['default'].string,\n phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.DayPickerPhrases)),\n dayAriaLabelFormat: _propTypes2['default'].string,\n\n isRTL: _propTypes2['default'].bool\n});\n\nvar defaultProps = {\n date: undefined, // TODO: use null\n onDateChange: function () {\n function onDateChange() {}\n\n return onDateChange;\n }(),\n\n\n focused: false,\n onFocusChange: function () {\n function onFocusChange() {}\n\n return onFocusChange;\n }(),\n onClose: function () {\n function onClose() {}\n\n return onClose;\n }(),\n\n\n keepOpenOnDateSelect: false,\n isOutsideRange: function () {\n function isOutsideRange() {}\n\n return isOutsideRange;\n }(),\n isDayBlocked: function () {\n function isDayBlocked() {}\n\n return isDayBlocked;\n }(),\n isDayHighlighted: function () {\n function isDayHighlighted() {}\n\n return isDayHighlighted;\n }(),\n\n\n // DayPicker props\n renderMonthText: null,\n enableOutsideDays: false,\n numberOfMonths: 1,\n orientation: _constants.HORIZONTAL_ORIENTATION,\n withPortal: false,\n hideKeyboardShortcutsPanel: false,\n initialVisibleMonth: null,\n firstDayOfWeek: null,\n daySize: _constants.DAY_SIZE,\n verticalHeight: null,\n noBorder: false,\n verticalBorderSpacing: undefined,\n transitionDuration: undefined,\n horizontalMonthPadding: 13,\n\n navPrev: null,\n navNext: null,\n\n onPrevMonthClick: function () {\n function onPrevMonthClick() {}\n\n return onPrevMonthClick;\n }(),\n onNextMonthClick: function () {\n function onNextMonthClick() {}\n\n return onNextMonthClick;\n }(),\n onOutsideClick: function () {\n function onOutsideClick() {}\n\n return onOutsideClick;\n }(),\n\n\n renderCalendarDay: undefined,\n renderDayContents: null,\n renderCalendarInfo: null,\n renderMonthElement: null,\n calendarInfoPosition: _constants.INFO_POSITION_BOTTOM,\n\n // accessibility\n onBlur: function () {\n function onBlur() {}\n\n return onBlur;\n }(),\n\n isFocused: false,\n showKeyboardShortcuts: false,\n\n // i18n\n monthFormat: 'MMMM YYYY',\n weekDayFormat: 'dd',\n phrases: _defaultPhrases.DayPickerPhrases,\n dayAriaLabelFormat: undefined,\n\n isRTL: false\n};\n\nvar DayPickerSingleDateController = function (_React$Component) {\n _inherits(DayPickerSingleDateController, _React$Component);\n\n function DayPickerSingleDateController(props) {\n _classCallCheck(this, DayPickerSingleDateController);\n\n var _this = _possibleConstructorReturn(this, (DayPickerSingleDateController.__proto__ || Object.getPrototypeOf(DayPickerSingleDateController)).call(this, props));\n\n _this.isTouchDevice = false;\n _this.today = (0, _moment2['default'])();\n\n _this.modifiers = {\n today: function () {\n function today(day) {\n return _this.isToday(day);\n }\n\n return today;\n }(),\n blocked: function () {\n function blocked(day) {\n return _this.isBlocked(day);\n }\n\n return blocked;\n }(),\n 'blocked-calendar': function () {\n function blockedCalendar(day) {\n return props.isDayBlocked(day);\n }\n\n return blockedCalendar;\n }(),\n 'blocked-out-of-range': function () {\n function blockedOutOfRange(day) {\n return props.isOutsideRange(day);\n }\n\n return blockedOutOfRange;\n }(),\n 'highlighted-calendar': function () {\n function highlightedCalendar(day) {\n return props.isDayHighlighted(day);\n }\n\n return highlightedCalendar;\n }(),\n valid: function () {\n function valid(day) {\n return !_this.isBlocked(day);\n }\n\n return valid;\n }(),\n hovered: function () {\n function hovered(day) {\n return _this.isHovered(day);\n }\n\n return hovered;\n }(),\n selected: function () {\n function selected(day) {\n return _this.isSelected(day);\n }\n\n return selected;\n }(),\n 'first-day-of-week': function () {\n function firstDayOfWeek(day) {\n return _this.isFirstDayOfWeek(day);\n }\n\n return firstDayOfWeek;\n }(),\n 'last-day-of-week': function () {\n function lastDayOfWeek(day) {\n return _this.isLastDayOfWeek(day);\n }\n\n return lastDayOfWeek;\n }()\n };\n\n var _this$getStateForNewM = _this.getStateForNewMonth(props),\n currentMonth = _this$getStateForNewM.currentMonth,\n visibleDays = _this$getStateForNewM.visibleDays;\n\n _this.state = {\n hoverDate: null,\n currentMonth: currentMonth,\n visibleDays: visibleDays\n };\n\n _this.onDayMouseEnter = _this.onDayMouseEnter.bind(_this);\n _this.onDayMouseLeave = _this.onDayMouseLeave.bind(_this);\n _this.onDayClick = _this.onDayClick.bind(_this);\n\n _this.onPrevMonthClick = _this.onPrevMonthClick.bind(_this);\n _this.onNextMonthClick = _this.onNextMonthClick.bind(_this);\n _this.onMonthChange = _this.onMonthChange.bind(_this);\n _this.onYearChange = _this.onYearChange.bind(_this);\n\n _this.getFirstFocusableDay = _this.getFirstFocusableDay.bind(_this);\n return _this;\n }\n\n _createClass(DayPickerSingleDateController, [{\n key: 'componentDidMount',\n value: function () {\n function componentDidMount() {\n this.isTouchDevice = (0, _isTouchDevice2['default'])();\n }\n\n return componentDidMount;\n }()\n }, {\n key: 'componentWillReceiveProps',\n value: function () {\n function componentWillReceiveProps(nextProps) {\n var _this2 = this;\n\n var date = nextProps.date,\n focused = nextProps.focused,\n isOutsideRange = nextProps.isOutsideRange,\n isDayBlocked = nextProps.isDayBlocked,\n isDayHighlighted = nextProps.isDayHighlighted,\n initialVisibleMonth = nextProps.initialVisibleMonth,\n numberOfMonths = nextProps.numberOfMonths,\n enableOutsideDays = nextProps.enableOutsideDays;\n var _props = this.props,\n prevIsOutsideRange = _props.isOutsideRange,\n prevIsDayBlocked = _props.isDayBlocked,\n prevIsDayHighlighted = _props.isDayHighlighted,\n prevNumberOfMonths = _props.numberOfMonths,\n prevEnableOutsideDays = _props.enableOutsideDays,\n prevInitialVisibleMonth = _props.initialVisibleMonth,\n prevFocused = _props.focused,\n prevDate = _props.date;\n var visibleDays = this.state.visibleDays;\n\n\n var recomputeOutsideRange = false;\n var recomputeDayBlocked = false;\n var recomputeDayHighlighted = false;\n\n if (isOutsideRange !== prevIsOutsideRange) {\n this.modifiers['blocked-out-of-range'] = function (day) {\n return isOutsideRange(day);\n };\n recomputeOutsideRange = true;\n }\n\n if (isDayBlocked !== prevIsDayBlocked) {\n this.modifiers['blocked-calendar'] = function (day) {\n return isDayBlocked(day);\n };\n recomputeDayBlocked = true;\n }\n\n if (isDayHighlighted !== prevIsDayHighlighted) {\n this.modifiers['highlighted-calendar'] = function (day) {\n return isDayHighlighted(day);\n };\n recomputeDayHighlighted = true;\n }\n\n var recomputePropModifiers = recomputeOutsideRange || recomputeDayBlocked || recomputeDayHighlighted;\n\n if (numberOfMonths !== prevNumberOfMonths || enableOutsideDays !== prevEnableOutsideDays || initialVisibleMonth !== prevInitialVisibleMonth && !prevFocused && focused) {\n var newMonthState = this.getStateForNewMonth(nextProps);\n var currentMonth = newMonthState.currentMonth;\n visibleDays = newMonthState.visibleDays;\n\n this.setState({\n currentMonth: currentMonth,\n visibleDays: visibleDays\n });\n }\n\n var didDateChange = date !== prevDate;\n var didFocusChange = focused !== prevFocused;\n\n var modifiers = {};\n\n if (didDateChange) {\n modifiers = this.deleteModifier(modifiers, prevDate, 'selected');\n modifiers = this.addModifier(modifiers, date, 'selected');\n }\n\n if (didFocusChange || recomputePropModifiers) {\n (0, _object4['default'])(visibleDays).forEach(function (days) {\n Object.keys(days).forEach(function (day) {\n var momentObj = (0, _moment2['default'])(day);\n if (_this2.isBlocked(momentObj)) {\n modifiers = _this2.addModifier(modifiers, momentObj, 'blocked');\n } else {\n modifiers = _this2.deleteModifier(modifiers, momentObj, 'blocked');\n }\n\n if (didFocusChange || recomputeOutsideRange) {\n if (isOutsideRange(momentObj)) {\n modifiers = _this2.addModifier(modifiers, momentObj, 'blocked-out-of-range');\n } else {\n modifiers = _this2.deleteModifier(modifiers, momentObj, 'blocked-out-of-range');\n }\n }\n\n if (didFocusChange || recomputeDayBlocked) {\n if (isDayBlocked(momentObj)) {\n modifiers = _this2.addModifier(modifiers, momentObj, 'blocked-calendar');\n } else {\n modifiers = _this2.deleteModifier(modifiers, momentObj, 'blocked-calendar');\n }\n }\n\n if (didFocusChange || recomputeDayHighlighted) {\n if (isDayHighlighted(momentObj)) {\n modifiers = _this2.addModifier(modifiers, momentObj, 'highlighted-calendar');\n } else {\n modifiers = _this2.deleteModifier(modifiers, momentObj, 'highlighted-calendar');\n }\n }\n });\n });\n }\n\n var today = (0, _moment2['default'])();\n if (!(0, _isSameDay2['default'])(this.today, today)) {\n modifiers = this.deleteModifier(modifiers, this.today, 'today');\n modifiers = this.addModifier(modifiers, today, 'today');\n this.today = today;\n }\n\n if (Object.keys(modifiers).length > 0) {\n this.setState({\n visibleDays: (0, _object2['default'])({}, visibleDays, modifiers)\n });\n }\n }\n\n return componentWillReceiveProps;\n }()\n }, {\n key: 'componentWillUpdate',\n value: function () {\n function componentWillUpdate() {\n this.today = (0, _moment2['default'])();\n }\n\n return componentWillUpdate;\n }()\n }, {\n key: 'onDayClick',\n value: function () {\n function onDayClick(day, e) {\n if (e) e.preventDefault();\n if (this.isBlocked(day)) return;\n var _props2 = this.props,\n onDateChange = _props2.onDateChange,\n keepOpenOnDateSelect = _props2.keepOpenOnDateSelect,\n onFocusChange = _props2.onFocusChange,\n onClose = _props2.onClose;\n\n\n onDateChange(day);\n if (!keepOpenOnDateSelect) {\n onFocusChange({ focused: false });\n onClose({ date: day });\n }\n }\n\n return onDayClick;\n }()\n }, {\n key: 'onDayMouseEnter',\n value: function () {\n function onDayMouseEnter(day) {\n if (this.isTouchDevice) return;\n var _state = this.state,\n hoverDate = _state.hoverDate,\n visibleDays = _state.visibleDays;\n\n\n var modifiers = this.deleteModifier({}, hoverDate, 'hovered');\n modifiers = this.addModifier(modifiers, day, 'hovered');\n\n this.setState({\n hoverDate: day,\n visibleDays: (0, _object2['default'])({}, visibleDays, modifiers)\n });\n }\n\n return onDayMouseEnter;\n }()\n }, {\n key: 'onDayMouseLeave',\n value: function () {\n function onDayMouseLeave() {\n var _state2 = this.state,\n hoverDate = _state2.hoverDate,\n visibleDays = _state2.visibleDays;\n\n if (this.isTouchDevice || !hoverDate) return;\n\n var modifiers = this.deleteModifier({}, hoverDate, 'hovered');\n\n this.setState({\n hoverDate: null,\n visibleDays: (0, _object2['default'])({}, visibleDays, modifiers)\n });\n }\n\n return onDayMouseLeave;\n }()\n }, {\n key: 'onPrevMonthClick',\n value: function () {\n function onPrevMonthClick() {\n var _props3 = this.props,\n onPrevMonthClick = _props3.onPrevMonthClick,\n numberOfMonths = _props3.numberOfMonths,\n enableOutsideDays = _props3.enableOutsideDays;\n var _state3 = this.state,\n currentMonth = _state3.currentMonth,\n visibleDays = _state3.visibleDays;\n\n\n var newVisibleDays = {};\n Object.keys(visibleDays).sort().slice(0, numberOfMonths + 1).forEach(function (month) {\n newVisibleDays[month] = visibleDays[month];\n });\n\n var prevMonth = currentMonth.clone().subtract(1, 'month');\n var prevMonthVisibleDays = (0, _getVisibleDays2['default'])(prevMonth, 1, enableOutsideDays);\n\n this.setState({\n currentMonth: prevMonth,\n visibleDays: (0, _object2['default'])({}, newVisibleDays, this.getModifiers(prevMonthVisibleDays))\n }, function () {\n onPrevMonthClick(prevMonth.clone());\n });\n }\n\n return onPrevMonthClick;\n }()\n }, {\n key: 'onNextMonthClick',\n value: function () {\n function onNextMonthClick() {\n var _props4 = this.props,\n onNextMonthClick = _props4.onNextMonthClick,\n numberOfMonths = _props4.numberOfMonths,\n enableOutsideDays = _props4.enableOutsideDays;\n var _state4 = this.state,\n currentMonth = _state4.currentMonth,\n visibleDays = _state4.visibleDays;\n\n\n var newVisibleDays = {};\n Object.keys(visibleDays).sort().slice(1).forEach(function (month) {\n newVisibleDays[month] = visibleDays[month];\n });\n\n var nextMonth = currentMonth.clone().add(numberOfMonths, 'month');\n var nextMonthVisibleDays = (0, _getVisibleDays2['default'])(nextMonth, 1, enableOutsideDays);\n\n var newCurrentMonth = currentMonth.clone().add(1, 'month');\n this.setState({\n currentMonth: newCurrentMonth,\n visibleDays: (0, _object2['default'])({}, newVisibleDays, this.getModifiers(nextMonthVisibleDays))\n }, function () {\n onNextMonthClick(newCurrentMonth.clone());\n });\n }\n\n return onNextMonthClick;\n }()\n }, {\n key: 'onMonthChange',\n value: function () {\n function onMonthChange(newMonth) {\n var _props5 = this.props,\n numberOfMonths = _props5.numberOfMonths,\n enableOutsideDays = _props5.enableOutsideDays,\n orientation = _props5.orientation;\n\n var withoutTransitionMonths = orientation === _constants.VERTICAL_SCROLLABLE;\n var newVisibleDays = (0, _getVisibleDays2['default'])(newMonth, numberOfMonths, enableOutsideDays, withoutTransitionMonths);\n\n this.setState({\n currentMonth: newMonth.clone(),\n visibleDays: this.getModifiers(newVisibleDays)\n });\n }\n\n return onMonthChange;\n }()\n }, {\n key: 'onYearChange',\n value: function () {\n function onYearChange(newMonth) {\n var _props6 = this.props,\n numberOfMonths = _props6.numberOfMonths,\n enableOutsideDays = _props6.enableOutsideDays,\n orientation = _props6.orientation;\n\n var withoutTransitionMonths = orientation === _constants.VERTICAL_SCROLLABLE;\n var newVisibleDays = (0, _getVisibleDays2['default'])(newMonth, numberOfMonths, enableOutsideDays, withoutTransitionMonths);\n\n this.setState({\n currentMonth: newMonth.clone(),\n visibleDays: this.getModifiers(newVisibleDays)\n });\n }\n\n return onYearChange;\n }()\n }, {\n key: 'getFirstFocusableDay',\n value: function () {\n function getFirstFocusableDay(newMonth) {\n var _this3 = this;\n\n var _props7 = this.props,\n date = _props7.date,\n numberOfMonths = _props7.numberOfMonths;\n\n\n var focusedDate = newMonth.clone().startOf('month');\n if (date) {\n focusedDate = date.clone();\n }\n\n if (this.isBlocked(focusedDate)) {\n var days = [];\n var lastVisibleDay = newMonth.clone().add(numberOfMonths - 1, 'months').endOf('month');\n var currentDay = focusedDate.clone();\n while (!(0, _isAfterDay2['default'])(currentDay, lastVisibleDay)) {\n currentDay = currentDay.clone().add(1, 'day');\n days.push(currentDay);\n }\n\n var viableDays = days.filter(function (day) {\n return !_this3.isBlocked(day) && (0, _isAfterDay2['default'])(day, focusedDate);\n });\n if (viableDays.length > 0) {\n var _viableDays = _slicedToArray(viableDays, 1);\n\n focusedDate = _viableDays[0];\n }\n }\n\n return focusedDate;\n }\n\n return getFirstFocusableDay;\n }()\n }, {\n key: 'getModifiers',\n value: function () {\n function getModifiers(visibleDays) {\n var _this4 = this;\n\n var modifiers = {};\n Object.keys(visibleDays).forEach(function (month) {\n modifiers[month] = {};\n visibleDays[month].forEach(function (day) {\n modifiers[month][(0, _toISODateString2['default'])(day)] = _this4.getModifiersForDay(day);\n });\n });\n\n return modifiers;\n }\n\n return getModifiers;\n }()\n }, {\n key: 'getModifiersForDay',\n value: function () {\n function getModifiersForDay(day) {\n var _this5 = this;\n\n return new Set(Object.keys(this.modifiers).filter(function (modifier) {\n return _this5.modifiers[modifier](day);\n }));\n }\n\n return getModifiersForDay;\n }()\n }, {\n key: 'getStateForNewMonth',\n value: function () {\n function getStateForNewMonth(nextProps) {\n var _this6 = this;\n\n var initialVisibleMonth = nextProps.initialVisibleMonth,\n date = nextProps.date,\n numberOfMonths = nextProps.numberOfMonths,\n enableOutsideDays = nextProps.enableOutsideDays;\n\n var initialVisibleMonthThunk = initialVisibleMonth || (date ? function () {\n return date;\n } : function () {\n return _this6.today;\n });\n var currentMonth = initialVisibleMonthThunk();\n var visibleDays = this.getModifiers((0, _getVisibleDays2['default'])(currentMonth, numberOfMonths, enableOutsideDays));\n return { currentMonth: currentMonth, visibleDays: visibleDays };\n }\n\n return getStateForNewMonth;\n }()\n }, {\n key: 'addModifier',\n value: function () {\n function addModifier(updatedDays, day, modifier) {\n var _props8 = this.props,\n numberOfVisibleMonths = _props8.numberOfMonths,\n enableOutsideDays = _props8.enableOutsideDays,\n orientation = _props8.orientation;\n var _state5 = this.state,\n firstVisibleMonth = _state5.currentMonth,\n visibleDays = _state5.visibleDays;\n\n\n var currentMonth = firstVisibleMonth;\n var numberOfMonths = numberOfVisibleMonths;\n if (orientation === _constants.VERTICAL_SCROLLABLE) {\n numberOfMonths = Object.keys(visibleDays).length;\n } else {\n currentMonth = currentMonth.clone().subtract(1, 'month');\n numberOfMonths += 2;\n }\n if (!day || !(0, _isDayVisible2['default'])(day, currentMonth, numberOfMonths, enableOutsideDays)) {\n return updatedDays;\n }\n\n var iso = (0, _toISODateString2['default'])(day);\n\n var updatedDaysAfterAddition = (0, _object2['default'])({}, updatedDays);\n if (enableOutsideDays) {\n var monthsToUpdate = Object.keys(visibleDays).filter(function (monthKey) {\n return Object.keys(visibleDays[monthKey]).indexOf(iso) > -1;\n });\n\n updatedDaysAfterAddition = monthsToUpdate.reduce(function (days, monthIso) {\n var month = updatedDays[monthIso] || visibleDays[monthIso];\n var modifiers = new Set(month[iso]);\n modifiers.add(modifier);\n return (0, _object2['default'])({}, days, _defineProperty({}, monthIso, (0, _object2['default'])({}, month, _defineProperty({}, iso, modifiers))));\n }, updatedDaysAfterAddition);\n } else {\n var monthIso = (0, _toISOMonthString2['default'])(day);\n var month = updatedDays[monthIso] || visibleDays[monthIso];\n\n var modifiers = new Set(month[iso]);\n modifiers.add(modifier);\n updatedDaysAfterAddition = (0, _object2['default'])({}, updatedDaysAfterAddition, _defineProperty({}, monthIso, (0, _object2['default'])({}, month, _defineProperty({}, iso, modifiers))));\n }\n\n return updatedDaysAfterAddition;\n }\n\n return addModifier;\n }()\n }, {\n key: 'deleteModifier',\n value: function () {\n function deleteModifier(updatedDays, day, modifier) {\n var _props9 = this.props,\n numberOfVisibleMonths = _props9.numberOfMonths,\n enableOutsideDays = _props9.enableOutsideDays,\n orientation = _props9.orientation;\n var _state6 = this.state,\n firstVisibleMonth = _state6.currentMonth,\n visibleDays = _state6.visibleDays;\n\n\n var currentMonth = firstVisibleMonth;\n var numberOfMonths = numberOfVisibleMonths;\n if (orientation === _constants.VERTICAL_SCROLLABLE) {\n numberOfMonths = Object.keys(visibleDays).length;\n } else {\n currentMonth = currentMonth.clone().subtract(1, 'month');\n numberOfMonths += 2;\n }\n if (!day || !(0, _isDayVisible2['default'])(day, currentMonth, numberOfMonths, enableOutsideDays)) {\n return updatedDays;\n }\n\n var iso = (0, _toISODateString2['default'])(day);\n\n var updatedDaysAfterDeletion = (0, _object2['default'])({}, updatedDays);\n if (enableOutsideDays) {\n var monthsToUpdate = Object.keys(visibleDays).filter(function (monthKey) {\n return Object.keys(visibleDays[monthKey]).indexOf(iso) > -1;\n });\n\n updatedDaysAfterDeletion = monthsToUpdate.reduce(function (days, monthIso) {\n var month = updatedDays[monthIso] || visibleDays[monthIso];\n var modifiers = new Set(month[iso]);\n modifiers['delete'](modifier);\n return (0, _object2['default'])({}, days, _defineProperty({}, monthIso, (0, _object2['default'])({}, month, _defineProperty({}, iso, modifiers))));\n }, updatedDaysAfterDeletion);\n } else {\n var monthIso = (0, _toISOMonthString2['default'])(day);\n var month = updatedDays[monthIso] || visibleDays[monthIso];\n\n var modifiers = new Set(month[iso]);\n modifiers['delete'](modifier);\n updatedDaysAfterDeletion = (0, _object2['default'])({}, updatedDaysAfterDeletion, _defineProperty({}, monthIso, (0, _object2['default'])({}, month, _defineProperty({}, iso, modifiers))));\n }\n\n return updatedDaysAfterDeletion;\n }\n\n return deleteModifier;\n }()\n }, {\n key: 'isBlocked',\n value: function () {\n function isBlocked(day) {\n var _props10 = this.props,\n isDayBlocked = _props10.isDayBlocked,\n isOutsideRange = _props10.isOutsideRange;\n\n return isDayBlocked(day) || isOutsideRange(day);\n }\n\n return isBlocked;\n }()\n }, {\n key: 'isHovered',\n value: function () {\n function isHovered(day) {\n var _ref = this.state || {},\n hoverDate = _ref.hoverDate;\n\n return (0, _isSameDay2['default'])(day, hoverDate);\n }\n\n return isHovered;\n }()\n }, {\n key: 'isSelected',\n value: function () {\n function isSelected(day) {\n var date = this.props.date;\n\n return (0, _isSameDay2['default'])(day, date);\n }\n\n return isSelected;\n }()\n }, {\n key: 'isToday',\n value: function () {\n function isToday(day) {\n return (0, _isSameDay2['default'])(day, this.today);\n }\n\n return isToday;\n }()\n }, {\n key: 'isFirstDayOfWeek',\n value: function () {\n function isFirstDayOfWeek(day) {\n var firstDayOfWeek = this.props.firstDayOfWeek;\n\n return day.day() === (firstDayOfWeek || _moment2['default'].localeData().firstDayOfWeek());\n }\n\n return isFirstDayOfWeek;\n }()\n }, {\n key: 'isLastDayOfWeek',\n value: function () {\n function isLastDayOfWeek(day) {\n var firstDayOfWeek = this.props.firstDayOfWeek;\n\n return day.day() === ((firstDayOfWeek || _moment2['default'].localeData().firstDayOfWeek()) + 6) % 7;\n }\n\n return isLastDayOfWeek;\n }()\n }, {\n key: 'render',\n value: function () {\n function render() {\n var _props11 = this.props,\n numberOfMonths = _props11.numberOfMonths,\n orientation = _props11.orientation,\n monthFormat = _props11.monthFormat,\n renderMonthText = _props11.renderMonthText,\n navPrev = _props11.navPrev,\n navNext = _props11.navNext,\n onOutsideClick = _props11.onOutsideClick,\n withPortal = _props11.withPortal,\n focused = _props11.focused,\n enableOutsideDays = _props11.enableOutsideDays,\n hideKeyboardShortcutsPanel = _props11.hideKeyboardShortcutsPanel,\n daySize = _props11.daySize,\n firstDayOfWeek = _props11.firstDayOfWeek,\n renderCalendarDay = _props11.renderCalendarDay,\n renderDayContents = _props11.renderDayContents,\n renderCalendarInfo = _props11.renderCalendarInfo,\n renderMonthElement = _props11.renderMonthElement,\n calendarInfoPosition = _props11.calendarInfoPosition,\n isFocused = _props11.isFocused,\n isRTL = _props11.isRTL,\n phrases = _props11.phrases,\n dayAriaLabelFormat = _props11.dayAriaLabelFormat,\n onBlur = _props11.onBlur,\n showKeyboardShortcuts = _props11.showKeyboardShortcuts,\n weekDayFormat = _props11.weekDayFormat,\n verticalHeight = _props11.verticalHeight,\n noBorder = _props11.noBorder,\n transitionDuration = _props11.transitionDuration,\n verticalBorderSpacing = _props11.verticalBorderSpacing,\n horizontalMonthPadding = _props11.horizontalMonthPadding;\n var _state7 = this.state,\n currentMonth = _state7.currentMonth,\n visibleDays = _state7.visibleDays;\n\n\n return _react2['default'].createElement(_DayPicker2['default'], {\n orientation: orientation,\n enableOutsideDays: enableOutsideDays,\n modifiers: visibleDays,\n numberOfMonths: numberOfMonths,\n onDayClick: this.onDayClick,\n onDayMouseEnter: this.onDayMouseEnter,\n onDayMouseLeave: this.onDayMouseLeave,\n onPrevMonthClick: this.onPrevMonthClick,\n onNextMonthClick: this.onNextMonthClick,\n onMonthChange: this.onMonthChange,\n onYearChange: this.onYearChange,\n monthFormat: monthFormat,\n withPortal: withPortal,\n hidden: !focused,\n hideKeyboardShortcutsPanel: hideKeyboardShortcutsPanel,\n initialVisibleMonth: function () {\n function initialVisibleMonth() {\n return currentMonth;\n }\n\n return initialVisibleMonth;\n }(),\n firstDayOfWeek: firstDayOfWeek,\n onOutsideClick: onOutsideClick,\n navPrev: navPrev,\n navNext: navNext,\n renderMonthText: renderMonthText,\n renderCalendarDay: renderCalendarDay,\n renderDayContents: renderDayContents,\n renderCalendarInfo: renderCalendarInfo,\n renderMonthElement: renderMonthElement,\n calendarInfoPosition: calendarInfoPosition,\n isFocused: isFocused,\n getFirstFocusableDay: this.getFirstFocusableDay,\n onBlur: onBlur,\n phrases: phrases,\n daySize: daySize,\n isRTL: isRTL,\n showKeyboardShortcuts: showKeyboardShortcuts,\n weekDayFormat: weekDayFormat,\n dayAriaLabelFormat: dayAriaLabelFormat,\n verticalHeight: verticalHeight,\n noBorder: noBorder,\n transitionDuration: transitionDuration,\n verticalBorderSpacing: verticalBorderSpacing,\n horizontalMonthPadding: horizontalMonthPadding\n });\n }\n\n return render;\n }()\n }]);\n\n return DayPickerSingleDateController;\n}(_react2['default'].Component);\n\nexports['default'] = DayPickerSingleDateController;\n\n\nDayPickerSingleDateController.propTypes = propTypes;\nDayPickerSingleDateController.defaultProps = defaultProps;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _object = require('object.assign');\n\nvar _object2 = _interopRequireDefault(_object);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _airbnbPropTypes = require('airbnb-prop-types');\n\nvar _reactWithStyles = require('react-with-styles');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar propTypes = (0, _airbnbPropTypes.forbidExtraProps)((0, _object2['default'])({}, _reactWithStyles.withStylesPropTypes, {\n unicode: _propTypes2['default'].string.isRequired,\n label: _propTypes2['default'].string.isRequired,\n action: _propTypes2['default'].string.isRequired,\n block: _propTypes2['default'].bool\n}));\n\nvar defaultProps = {\n block: false\n};\n\nfunction KeyboardShortcutRow(_ref) {\n var unicode = _ref.unicode,\n label = _ref.label,\n action = _ref.action,\n block = _ref.block,\n styles = _ref.styles;\n\n return _react2['default'].createElement(\n 'li',\n (0, _reactWithStyles.css)(styles.KeyboardShortcutRow, block && styles.KeyboardShortcutRow__block),\n _react2['default'].createElement(\n 'div',\n (0, _reactWithStyles.css)(styles.KeyboardShortcutRow_keyContainer, block && styles.KeyboardShortcutRow_keyContainer__block),\n _react2['default'].createElement(\n 'span',\n _extends({}, (0, _reactWithStyles.css)(styles.KeyboardShortcutRow_key), {\n role: 'img',\n 'aria-label': String(label) + ',' // add comma so screen readers will pause before reading action\n }),\n unicode\n )\n ),\n _react2['default'].createElement(\n 'div',\n (0, _reactWithStyles.css)(styles.KeyboardShortcutRow_action),\n action\n )\n );\n}\n\nKeyboardShortcutRow.propTypes = propTypes;\nKeyboardShortcutRow.defaultProps = defaultProps;\n\nexports['default'] = (0, _reactWithStyles.withStyles)(function (_ref2) {\n var color = _ref2.reactDates.color;\n return {\n KeyboardShortcutRow: {\n listStyle: 'none',\n margin: '6px 0'\n },\n\n KeyboardShortcutRow__block: {\n marginBottom: 16\n },\n\n KeyboardShortcutRow_keyContainer: {\n display: 'inline-block',\n whiteSpace: 'nowrap',\n textAlign: 'right',\n marginRight: 6\n },\n\n KeyboardShortcutRow_keyContainer__block: {\n textAlign: 'left',\n display: 'inline'\n },\n\n KeyboardShortcutRow_key: {\n fontFamily: 'monospace',\n fontSize: 12,\n textTransform: 'uppercase',\n background: color.core.grayLightest,\n padding: '2px 6px'\n },\n\n KeyboardShortcutRow_action: {\n display: 'inline',\n wordBreak: 'break-word',\n marginLeft: 8\n }\n };\n})(KeyboardShortcutRow);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar LeftArrow = function () {\n function LeftArrow(props) {\n return _react2['default'].createElement(\n 'svg',\n props,\n _react2['default'].createElement('path', {\n d: 'M336.2 274.5l-210.1 210h805.4c13 0 23 10 23 23s-10 23-23 23H126.1l210.1 210.1c11 11 11 21 0 32-5 5-10 7-16 7s-11-2-16-7l-249.1-249c-11-11-11-21 0-32l249.1-249.1c21-21.1 53 10.9 32 32z'\n })\n );\n }\n\n return LeftArrow;\n}();\n\nLeftArrow.defaultProps = {\n viewBox: '0 0 1000 1000'\n};\nexports['default'] = LeftArrow;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar RightArrow = function () {\n function RightArrow(props) {\n return _react2['default'].createElement(\n 'svg',\n props,\n _react2['default'].createElement('path', {\n d: 'M694.4 242.4l249.1 249.1c11 11 11 21 0 32L694.4 772.7c-5 5-10 7-16 7s-11-2-16-7c-11-11-11-21 0-32l210.1-210.1H67.1c-13 0-23-10-23-23s10-23 23-23h805.4L662.4 274.5c-21-21.1 11-53.1 32-32.1z'\n })\n );\n }\n\n return RightArrow;\n}();\n\nRightArrow.defaultProps = {\n viewBox: '0 0 1000 1000'\n};\nexports['default'] = RightArrow;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PureSingleDatePicker = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _object = require('object.assign');\n\nvar _object2 = _interopRequireDefault(_object);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _reactWithStyles = require('react-with-styles');\n\nvar _reactPortal = require('react-portal');\n\nvar _airbnbPropTypes = require('airbnb-prop-types');\n\nvar _consolidatedEvents = require('consolidated-events');\n\nvar _isTouchDevice = require('is-touch-device');\n\nvar _isTouchDevice2 = _interopRequireDefault(_isTouchDevice);\n\nvar _reactOutsideClickHandler = require('react-outside-click-handler');\n\nvar _reactOutsideClickHandler2 = _interopRequireDefault(_reactOutsideClickHandler);\n\nvar _SingleDatePickerShape = require('../shapes/SingleDatePickerShape');\n\nvar _SingleDatePickerShape2 = _interopRequireDefault(_SingleDatePickerShape);\n\nvar _defaultPhrases = require('../defaultPhrases');\n\nvar _toMomentObject = require('../utils/toMomentObject');\n\nvar _toMomentObject2 = _interopRequireDefault(_toMomentObject);\n\nvar _toLocalizedDateString = require('../utils/toLocalizedDateString');\n\nvar _toLocalizedDateString2 = _interopRequireDefault(_toLocalizedDateString);\n\nvar _getResponsiveContainerStyles = require('../utils/getResponsiveContainerStyles');\n\nvar _getResponsiveContainerStyles2 = _interopRequireDefault(_getResponsiveContainerStyles);\n\nvar _getDetachedContainerStyles = require('../utils/getDetachedContainerStyles');\n\nvar _getDetachedContainerStyles2 = _interopRequireDefault(_getDetachedContainerStyles);\n\nvar _getInputHeight = require('../utils/getInputHeight');\n\nvar _getInputHeight2 = _interopRequireDefault(_getInputHeight);\n\nvar _isInclusivelyAfterDay = require('../utils/isInclusivelyAfterDay');\n\nvar _isInclusivelyAfterDay2 = _interopRequireDefault(_isInclusivelyAfterDay);\n\nvar _disableScroll2 = require('../utils/disableScroll');\n\nvar _disableScroll3 = _interopRequireDefault(_disableScroll2);\n\nvar _SingleDatePickerInput = require('./SingleDatePickerInput');\n\nvar _SingleDatePickerInput2 = _interopRequireDefault(_SingleDatePickerInput);\n\nvar _DayPickerSingleDateController = require('./DayPickerSingleDateController');\n\nvar _DayPickerSingleDateController2 = _interopRequireDefault(_DayPickerSingleDateController);\n\nvar _CloseButton = require('./CloseButton');\n\nvar _CloseButton2 = _interopRequireDefault(_CloseButton);\n\nvar _constants = require('../constants');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar propTypes = (0, _airbnbPropTypes.forbidExtraProps)((0, _object2['default'])({}, _reactWithStyles.withStylesPropTypes, _SingleDatePickerShape2['default']));\n\nvar defaultProps = {\n // required props for a functional interactive SingleDatePicker\n date: null,\n focused: false,\n\n // input related props\n id: 'date',\n placeholder: 'Date',\n disabled: false,\n required: false,\n readOnly: false,\n screenReaderInputMessage: '',\n showClearDate: false,\n showDefaultInputIcon: false,\n inputIconPosition: _constants.ICON_BEFORE_POSITION,\n customInputIcon: null,\n customCloseIcon: null,\n noBorder: false,\n block: false,\n small: false,\n regular: false,\n verticalSpacing: _constants.DEFAULT_VERTICAL_SPACING,\n keepFocusOnInput: false,\n\n // calendar presentation and interaction related props\n orientation: _constants.HORIZONTAL_ORIENTATION,\n anchorDirection: _constants.ANCHOR_LEFT,\n openDirection: _constants.OPEN_DOWN,\n horizontalMargin: 0,\n withPortal: false,\n withFullScreenPortal: false,\n appendToBody: false,\n disableScroll: false,\n initialVisibleMonth: null,\n firstDayOfWeek: null,\n numberOfMonths: 2,\n keepOpenOnDateSelect: false,\n reopenPickerOnClearDate: false,\n renderCalendarInfo: null,\n calendarInfoPosition: _constants.INFO_POSITION_BOTTOM,\n hideKeyboardShortcutsPanel: false,\n daySize: _constants.DAY_SIZE,\n isRTL: false,\n verticalHeight: null,\n transitionDuration: undefined,\n horizontalMonthPadding: 13,\n\n // navigation related props\n navPrev: null,\n navNext: null,\n\n onPrevMonthClick: function () {\n function onPrevMonthClick() {}\n\n return onPrevMonthClick;\n }(),\n onNextMonthClick: function () {\n function onNextMonthClick() {}\n\n return onNextMonthClick;\n }(),\n onClose: function () {\n function onClose() {}\n\n return onClose;\n }(),\n\n\n // month presentation and interaction related props\n renderMonthText: null,\n\n // day presentation and interaction related props\n renderCalendarDay: undefined,\n renderDayContents: null,\n renderMonthElement: null,\n enableOutsideDays: false,\n isDayBlocked: function () {\n function isDayBlocked() {\n return false;\n }\n\n return isDayBlocked;\n }(),\n isOutsideRange: function () {\n function isOutsideRange(day) {\n return !(0, _isInclusivelyAfterDay2['default'])(day, (0, _moment2['default'])());\n }\n\n return isOutsideRange;\n }(),\n isDayHighlighted: function () {\n function isDayHighlighted() {}\n\n return isDayHighlighted;\n }(),\n\n // internationalization props\n displayFormat: function () {\n function displayFormat() {\n return _moment2['default'].localeData().longDateFormat('L');\n }\n\n return displayFormat;\n }(),\n monthFormat: 'MMMM YYYY',\n weekDayFormat: 'dd',\n phrases: _defaultPhrases.SingleDatePickerPhrases,\n dayAriaLabelFormat: undefined\n};\n\nvar SingleDatePicker = function (_React$Component) {\n _inherits(SingleDatePicker, _React$Component);\n\n function SingleDatePicker(props) {\n _classCallCheck(this, SingleDatePicker);\n\n var _this = _possibleConstructorReturn(this, (SingleDatePicker.__proto__ || Object.getPrototypeOf(SingleDatePicker)).call(this, props));\n\n _this.isTouchDevice = false;\n\n _this.state = {\n dayPickerContainerStyles: {},\n isDayPickerFocused: false,\n isInputFocused: false,\n showKeyboardShortcuts: false\n };\n\n _this.onDayPickerFocus = _this.onDayPickerFocus.bind(_this);\n _this.onDayPickerBlur = _this.onDayPickerBlur.bind(_this);\n _this.showKeyboardShortcutsPanel = _this.showKeyboardShortcutsPanel.bind(_this);\n\n _this.onChange = _this.onChange.bind(_this);\n _this.onFocus = _this.onFocus.bind(_this);\n _this.onClearFocus = _this.onClearFocus.bind(_this);\n _this.clearDate = _this.clearDate.bind(_this);\n\n _this.responsivizePickerPosition = _this.responsivizePickerPosition.bind(_this);\n _this.disableScroll = _this.disableScroll.bind(_this);\n\n _this.setDayPickerContainerRef = _this.setDayPickerContainerRef.bind(_this);\n _this.setContainerRef = _this.setContainerRef.bind(_this);\n return _this;\n }\n\n /* istanbul ignore next */\n\n\n _createClass(SingleDatePicker, [{\n key: 'componentDidMount',\n value: function () {\n function componentDidMount() {\n this.removeEventListener = (0, _consolidatedEvents.addEventListener)(window, 'resize', this.responsivizePickerPosition, { passive: true });\n this.responsivizePickerPosition();\n this.disableScroll();\n\n var focused = this.props.focused;\n\n\n if (focused) {\n this.setState({\n isInputFocused: true\n });\n }\n\n this.isTouchDevice = (0, _isTouchDevice2['default'])();\n }\n\n return componentDidMount;\n }()\n }, {\n key: 'componentDidUpdate',\n value: function () {\n function componentDidUpdate(prevProps) {\n var focused = this.props.focused;\n\n if (!prevProps.focused && focused) {\n this.responsivizePickerPosition();\n this.disableScroll();\n } else if (prevProps.focused && !focused) {\n if (this.enableScroll) this.enableScroll();\n }\n }\n\n return componentDidUpdate;\n }()\n\n /* istanbul ignore next */\n\n }, {\n key: 'componentWillUnmount',\n value: function () {\n function componentWillUnmount() {\n if (this.removeEventListener) this.removeEventListener();\n if (this.enableScroll) this.enableScroll();\n }\n\n return componentWillUnmount;\n }()\n }, {\n key: 'onChange',\n value: function () {\n function onChange(dateString) {\n var _props = this.props,\n isOutsideRange = _props.isOutsideRange,\n keepOpenOnDateSelect = _props.keepOpenOnDateSelect,\n onDateChange = _props.onDateChange,\n onFocusChange = _props.onFocusChange,\n onClose = _props.onClose;\n\n var newDate = (0, _toMomentObject2['default'])(dateString, this.getDisplayFormat());\n\n var isValid = newDate && !isOutsideRange(newDate);\n if (isValid) {\n onDateChange(newDate);\n if (!keepOpenOnDateSelect) {\n onFocusChange({ focused: false });\n onClose({ date: newDate });\n }\n } else {\n onDateChange(null);\n }\n }\n\n return onChange;\n }()\n }, {\n key: 'onFocus',\n value: function () {\n function onFocus() {\n var _props2 = this.props,\n disabled = _props2.disabled,\n onFocusChange = _props2.onFocusChange,\n readOnly = _props2.readOnly,\n withPortal = _props2.withPortal,\n withFullScreenPortal = _props2.withFullScreenPortal,\n keepFocusOnInput = _props2.keepFocusOnInput;\n\n\n var withAnyPortal = withPortal || withFullScreenPortal;\n var moveFocusToDayPicker = withAnyPortal || readOnly && !keepFocusOnInput || this.isTouchDevice && !keepFocusOnInput;\n\n if (moveFocusToDayPicker) {\n this.onDayPickerFocus();\n } else {\n this.onDayPickerBlur();\n }\n\n if (!disabled) {\n onFocusChange({ focused: true });\n }\n }\n\n return onFocus;\n }()\n }, {\n key: 'onClearFocus',\n value: function () {\n function onClearFocus(event) {\n var _props3 = this.props,\n date = _props3.date,\n focused = _props3.focused,\n onFocusChange = _props3.onFocusChange,\n onClose = _props3.onClose,\n appendToBody = _props3.appendToBody;\n\n if (!focused) return;\n if (appendToBody && this.dayPickerContainer.contains(event.target)) return;\n\n this.setState({\n isInputFocused: false,\n isDayPickerFocused: false\n });\n\n onFocusChange({ focused: false });\n onClose({ date: date });\n }\n\n return onClearFocus;\n }()\n }, {\n key: 'onDayPickerFocus',\n value: function () {\n function onDayPickerFocus() {\n this.setState({\n isInputFocused: false,\n isDayPickerFocused: true,\n showKeyboardShortcuts: false\n });\n }\n\n return onDayPickerFocus;\n }()\n }, {\n key: 'onDayPickerBlur',\n value: function () {\n function onDayPickerBlur() {\n this.setState({\n isInputFocused: true,\n isDayPickerFocused: false,\n showKeyboardShortcuts: false\n });\n }\n\n return onDayPickerBlur;\n }()\n }, {\n key: 'getDateString',\n value: function () {\n function getDateString(date) {\n var displayFormat = this.getDisplayFormat();\n if (date && displayFormat) {\n return date && date.format(displayFormat);\n }\n return (0, _toLocalizedDateString2['default'])(date);\n }\n\n return getDateString;\n }()\n }, {\n key: 'getDisplayFormat',\n value: function () {\n function getDisplayFormat() {\n var displayFormat = this.props.displayFormat;\n\n return typeof displayFormat === 'string' ? displayFormat : displayFormat();\n }\n\n return getDisplayFormat;\n }()\n }, {\n key: 'setDayPickerContainerRef',\n value: function () {\n function setDayPickerContainerRef(ref) {\n this.dayPickerContainer = ref;\n }\n\n return setDayPickerContainerRef;\n }()\n }, {\n key: 'setContainerRef',\n value: function () {\n function setContainerRef(ref) {\n this.container = ref;\n }\n\n return setContainerRef;\n }()\n }, {\n key: 'clearDate',\n value: function () {\n function clearDate() {\n var _props4 = this.props,\n onDateChange = _props4.onDateChange,\n reopenPickerOnClearDate = _props4.reopenPickerOnClearDate,\n onFocusChange = _props4.onFocusChange;\n\n onDateChange(null);\n if (reopenPickerOnClearDate) {\n onFocusChange({ focused: true });\n }\n }\n\n return clearDate;\n }()\n }, {\n key: 'disableScroll',\n value: function () {\n function disableScroll() {\n var _props5 = this.props,\n appendToBody = _props5.appendToBody,\n propDisableScroll = _props5.disableScroll,\n focused = _props5.focused;\n\n if (!appendToBody && !propDisableScroll) return;\n if (!focused) return;\n\n // Disable scroll for every ancestor of this <SingleDatePicker> up to the\n // document level. This ensures the input and the picker never move. Other\n // sibling elements or the picker itself can scroll.\n this.enableScroll = (0, _disableScroll3['default'])(this.container);\n }\n\n return disableScroll;\n }()\n\n /* istanbul ignore next */\n\n }, {\n key: 'responsivizePickerPosition',\n value: function () {\n function responsivizePickerPosition() {\n // It's possible the portal props have been changed in response to window resizes\n // So let's ensure we reset this back to the base state each time\n this.setState({ dayPickerContainerStyles: {} });\n\n var _props6 = this.props,\n openDirection = _props6.openDirection,\n anchorDirection = _props6.anchorDirection,\n horizontalMargin = _props6.horizontalMargin,\n withPortal = _props6.withPortal,\n withFullScreenPortal = _props6.withFullScreenPortal,\n appendToBody = _props6.appendToBody,\n focused = _props6.focused;\n var dayPickerContainerStyles = this.state.dayPickerContainerStyles;\n\n\n if (!focused) {\n return;\n }\n\n var isAnchoredLeft = anchorDirection === _constants.ANCHOR_LEFT;\n\n if (!withPortal && !withFullScreenPortal) {\n var containerRect = this.dayPickerContainer.getBoundingClientRect();\n var currentOffset = dayPickerContainerStyles[anchorDirection] || 0;\n var containerEdge = isAnchoredLeft ? containerRect[_constants.ANCHOR_RIGHT] : containerRect[_constants.ANCHOR_LEFT];\n\n this.setState({\n dayPickerContainerStyles: (0, _object2['default'])({}, (0, _getResponsiveContainerStyles2['default'])(anchorDirection, currentOffset, containerEdge, horizontalMargin), appendToBody && (0, _getDetachedContainerStyles2['default'])(openDirection, anchorDirection, this.container))\n });\n }\n }\n\n return responsivizePickerPosition;\n }()\n }, {\n key: 'showKeyboardShortcutsPanel',\n value: function () {\n function showKeyboardShortcutsPanel() {\n this.setState({\n isInputFocused: false,\n isDayPickerFocused: true,\n showKeyboardShortcuts: true\n });\n }\n\n return showKeyboardShortcutsPanel;\n }()\n }, {\n key: 'maybeRenderDayPickerWithPortal',\n value: function () {\n function maybeRenderDayPickerWithPortal() {\n var _props7 = this.props,\n focused = _props7.focused,\n withPortal = _props7.withPortal,\n withFullScreenPortal = _props7.withFullScreenPortal,\n appendToBody = _props7.appendToBody;\n\n\n if (!focused) {\n return null;\n }\n\n if (withPortal || withFullScreenPortal || appendToBody) {\n return _react2['default'].createElement(\n _reactPortal.Portal,\n null,\n this.renderDayPicker()\n );\n }\n\n return this.renderDayPicker();\n }\n\n return maybeRenderDayPickerWithPortal;\n }()\n }, {\n key: 'renderDayPicker',\n value: function () {\n function renderDayPicker() {\n var _props8 = this.props,\n anchorDirection = _props8.anchorDirection,\n openDirection = _props8.openDirection,\n onDateChange = _props8.onDateChange,\n date = _props8.date,\n onFocusChange = _props8.onFocusChange,\n focused = _props8.focused,\n enableOutsideDays = _props8.enableOutsideDays,\n numberOfMonths = _props8.numberOfMonths,\n orientation = _props8.orientation,\n monthFormat = _props8.monthFormat,\n navPrev = _props8.navPrev,\n navNext = _props8.navNext,\n onPrevMonthClick = _props8.onPrevMonthClick,\n onNextMonthClick = _props8.onNextMonthClick,\n onClose = _props8.onClose,\n withPortal = _props8.withPortal,\n withFullScreenPortal = _props8.withFullScreenPortal,\n keepOpenOnDateSelect = _props8.keepOpenOnDateSelect,\n initialVisibleMonth = _props8.initialVisibleMonth,\n renderMonthText = _props8.renderMonthText,\n renderCalendarDay = _props8.renderCalendarDay,\n renderDayContents = _props8.renderDayContents,\n renderCalendarInfo = _props8.renderCalendarInfo,\n renderMonthElement = _props8.renderMonthElement,\n calendarInfoPosition = _props8.calendarInfoPosition,\n hideKeyboardShortcutsPanel = _props8.hideKeyboardShortcutsPanel,\n firstDayOfWeek = _props8.firstDayOfWeek,\n customCloseIcon = _props8.customCloseIcon,\n phrases = _props8.phrases,\n dayAriaLabelFormat = _props8.dayAriaLabelFormat,\n daySize = _props8.daySize,\n isRTL = _props8.isRTL,\n isOutsideRange = _props8.isOutsideRange,\n isDayBlocked = _props8.isDayBlocked,\n isDayHighlighted = _props8.isDayHighlighted,\n weekDayFormat = _props8.weekDayFormat,\n styles = _props8.styles,\n verticalHeight = _props8.verticalHeight,\n transitionDuration = _props8.transitionDuration,\n verticalSpacing = _props8.verticalSpacing,\n horizontalMonthPadding = _props8.horizontalMonthPadding,\n small = _props8.small,\n reactDates = _props8.theme.reactDates;\n var _state = this.state,\n dayPickerContainerStyles = _state.dayPickerContainerStyles,\n isDayPickerFocused = _state.isDayPickerFocused,\n showKeyboardShortcuts = _state.showKeyboardShortcuts;\n\n\n var onOutsideClick = !withFullScreenPortal && withPortal ? this.onClearFocus : undefined;\n var closeIcon = customCloseIcon || _react2['default'].createElement(_CloseButton2['default'], null);\n\n var inputHeight = (0, _getInputHeight2['default'])(reactDates, small);\n\n var withAnyPortal = withPortal || withFullScreenPortal;\n\n return _react2['default'].createElement(\n 'div',\n _extends({ // eslint-disable-line jsx-a11y/no-static-element-interactions\n ref: this.setDayPickerContainerRef\n }, (0, _reactWithStyles.css)(styles.SingleDatePicker_picker, anchorDirection === _constants.ANCHOR_LEFT && styles.SingleDatePicker_picker__directionLeft, anchorDirection === _constants.ANCHOR_RIGHT && styles.SingleDatePicker_picker__directionRight, openDirection === _constants.OPEN_DOWN && styles.SingleDatePicker_picker__openDown, openDirection === _constants.OPEN_UP && styles.SingleDatePicker_picker__openUp, !withAnyPortal && openDirection === _constants.OPEN_DOWN && {\n top: inputHeight + verticalSpacing\n }, !withAnyPortal && openDirection === _constants.OPEN_UP && {\n bottom: inputHeight + verticalSpacing\n }, orientation === _constants.HORIZONTAL_ORIENTATION && styles.SingleDatePicker_picker__horizontal, orientation === _constants.VERTICAL_ORIENTATION && styles.SingleDatePicker_picker__vertical, withAnyPortal && styles.SingleDatePicker_picker__portal, withFullScreenPortal && styles.SingleDatePicker_picker__fullScreenPortal, isRTL && styles.SingleDatePicker_picker__rtl, dayPickerContainerStyles), {\n onClick: onOutsideClick\n }),\n _react2['default'].createElement(_DayPickerSingleDateController2['default'], {\n date: date,\n onDateChange: onDateChange,\n onFocusChange: onFocusChange,\n orientation: orientation,\n enableOutsideDays: enableOutsideDays,\n numberOfMonths: numberOfMonths,\n monthFormat: monthFormat,\n withPortal: withAnyPortal,\n focused: focused,\n keepOpenOnDateSelect: keepOpenOnDateSelect,\n hideKeyboardShortcutsPanel: hideKeyboardShortcutsPanel,\n initialVisibleMonth: initialVisibleMonth,\n navPrev: navPrev,\n navNext: navNext,\n onPrevMonthClick: onPrevMonthClick,\n onNextMonthClick: onNextMonthClick,\n onClose: onClose,\n renderMonthText: renderMonthText,\n renderCalendarDay: renderCalendarDay,\n renderDayContents: renderDayContents,\n renderCalendarInfo: renderCalendarInfo,\n renderMonthElement: renderMonthElement,\n calendarInfoPosition: calendarInfoPosition,\n isFocused: isDayPickerFocused,\n showKeyboardShortcuts: showKeyboardShortcuts,\n onBlur: this.onDayPickerBlur,\n phrases: phrases,\n dayAriaLabelFormat: dayAriaLabelFormat,\n daySize: daySize,\n isRTL: isRTL,\n isOutsideRange: isOutsideRange,\n isDayBlocked: isDayBlocked,\n isDayHighlighted: isDayHighlighted,\n firstDayOfWeek: firstDayOfWeek,\n weekDayFormat: weekDayFormat,\n verticalHeight: verticalHeight,\n transitionDuration: transitionDuration,\n horizontalMonthPadding: horizontalMonthPadding\n }),\n withFullScreenPortal && _react2['default'].createElement(\n 'button',\n _extends({}, (0, _reactWithStyles.css)(styles.SingleDatePicker_closeButton), {\n 'aria-label': phrases.closeDatePicker,\n type: 'button',\n onClick: this.onClearFocus\n }),\n _react2['default'].createElement(\n 'div',\n (0, _reactWithStyles.css)(styles.SingleDatePicker_closeButton_svg),\n closeIcon\n )\n )\n );\n }\n\n return renderDayPicker;\n }()\n }, {\n key: 'render',\n value: function () {\n function render() {\n var _props9 = this.props,\n id = _props9.id,\n placeholder = _props9.placeholder,\n disabled = _props9.disabled,\n focused = _props9.focused,\n required = _props9.required,\n readOnly = _props9.readOnly,\n openDirection = _props9.openDirection,\n showClearDate = _props9.showClearDate,\n showDefaultInputIcon = _props9.showDefaultInputIcon,\n inputIconPosition = _props9.inputIconPosition,\n customCloseIcon = _props9.customCloseIcon,\n customInputIcon = _props9.customInputIcon,\n date = _props9.date,\n phrases = _props9.phrases,\n withPortal = _props9.withPortal,\n withFullScreenPortal = _props9.withFullScreenPortal,\n screenReaderInputMessage = _props9.screenReaderInputMessage,\n isRTL = _props9.isRTL,\n noBorder = _props9.noBorder,\n block = _props9.block,\n small = _props9.small,\n regular = _props9.regular,\n verticalSpacing = _props9.verticalSpacing,\n styles = _props9.styles;\n var isInputFocused = this.state.isInputFocused;\n\n\n var displayValue = this.getDateString(date);\n\n var enableOutsideClick = !withPortal && !withFullScreenPortal;\n\n var hideFang = verticalSpacing < _constants.FANG_HEIGHT_PX;\n\n var input = _react2['default'].createElement(_SingleDatePickerInput2['default'], {\n id: id,\n placeholder: placeholder,\n focused: focused,\n isFocused: isInputFocused,\n disabled: disabled,\n required: required,\n readOnly: readOnly,\n openDirection: openDirection,\n showCaret: !withPortal && !withFullScreenPortal && !hideFang,\n onClearDate: this.clearDate,\n showClearDate: showClearDate,\n showDefaultInputIcon: showDefaultInputIcon,\n inputIconPosition: inputIconPosition,\n customCloseIcon: customCloseIcon,\n customInputIcon: customInputIcon,\n displayValue: displayValue,\n onChange: this.onChange,\n onFocus: this.onFocus,\n onKeyDownShiftTab: this.onClearFocus,\n onKeyDownTab: this.onClearFocus,\n onKeyDownArrowDown: this.onDayPickerFocus,\n onKeyDownQuestionMark: this.showKeyboardShortcutsPanel,\n screenReaderMessage: screenReaderInputMessage,\n phrases: phrases,\n isRTL: isRTL,\n noBorder: noBorder,\n block: block,\n small: small,\n regular: regular,\n verticalSpacing: verticalSpacing\n });\n\n return _react2['default'].createElement(\n 'div',\n _extends({\n ref: this.setContainerRef\n }, (0, _reactWithStyles.css)(styles.SingleDatePicker, block && styles.SingleDatePicker__block)),\n enableOutsideClick && _react2['default'].createElement(\n _reactOutsideClickHandler2['default'],\n { onOutsideClick: this.onClearFocus },\n input,\n this.maybeRenderDayPickerWithPortal()\n ),\n !enableOutsideClick && input,\n !enableOutsideClick && this.maybeRenderDayPickerWithPortal()\n );\n }\n\n return render;\n }()\n }]);\n\n return SingleDatePicker;\n}(_react2['default'].Component);\n\nSingleDatePicker.propTypes = propTypes;\nSingleDatePicker.defaultProps = defaultProps;\n\nexports.PureSingleDatePicker = SingleDatePicker;\nexports['default'] = (0, _reactWithStyles.withStyles)(function (_ref) {\n var _ref$reactDates = _ref.reactDates,\n color = _ref$reactDates.color,\n zIndex = _ref$reactDates.zIndex;\n return {\n SingleDatePicker: {\n position: 'relative',\n display: 'inline-block'\n },\n\n SingleDatePicker__block: {\n display: 'block'\n },\n\n SingleDatePicker_picker: {\n zIndex: zIndex + 1,\n backgroundColor: color.background,\n position: 'absolute'\n },\n\n SingleDatePicker_picker__rtl: {\n direction: 'rtl'\n },\n\n SingleDatePicker_picker__directionLeft: {\n left: 0\n },\n\n SingleDatePicker_picker__directionRight: {\n right: 0\n },\n\n SingleDatePicker_picker__portal: {\n backgroundColor: 'rgba(0, 0, 0, 0.3)',\n position: 'fixed',\n top: 0,\n left: 0,\n height: '100%',\n width: '100%'\n },\n\n SingleDatePicker_picker__fullScreenPortal: {\n backgroundColor: color.background\n },\n\n SingleDatePicker_closeButton: {\n background: 'none',\n border: 0,\n color: 'inherit',\n font: 'inherit',\n lineHeight: 'normal',\n overflow: 'visible',\n cursor: 'pointer',\n\n position: 'absolute',\n top: 0,\n right: 0,\n padding: 15,\n zIndex: zIndex + 2,\n\n ':hover': {\n color: 'darken(' + String(color.core.grayLighter) + ', 10%)',\n textDecoration: 'none'\n },\n\n ':focus': {\n color: 'darken(' + String(color.core.grayLighter) + ', 10%)',\n textDecoration: 'none'\n }\n },\n\n SingleDatePicker_closeButton_svg: {\n height: 15,\n width: 15,\n fill: color.core.grayLighter\n }\n };\n})(SingleDatePicker);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _object = require('object.assign');\n\nvar _object2 = _interopRequireDefault(_object);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _airbnbPropTypes = require('airbnb-prop-types');\n\nvar _reactWithStyles = require('react-with-styles');\n\nvar _defaultPhrases = require('../defaultPhrases');\n\nvar _getPhrasePropTypes = require('../utils/getPhrasePropTypes');\n\nvar _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);\n\nvar _DateInput = require('./DateInput');\n\nvar _DateInput2 = _interopRequireDefault(_DateInput);\n\nvar _IconPositionShape = require('../shapes/IconPositionShape');\n\nvar _IconPositionShape2 = _interopRequireDefault(_IconPositionShape);\n\nvar _CloseButton = require('./CloseButton');\n\nvar _CloseButton2 = _interopRequireDefault(_CloseButton);\n\nvar _CalendarIcon = require('./CalendarIcon');\n\nvar _CalendarIcon2 = _interopRequireDefault(_CalendarIcon);\n\nvar _OpenDirectionShape = require('../shapes/OpenDirectionShape');\n\nvar _OpenDirectionShape2 = _interopRequireDefault(_OpenDirectionShape);\n\nvar _constants = require('../constants');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar propTypes = (0, _airbnbPropTypes.forbidExtraProps)((0, _object2['default'])({}, _reactWithStyles.withStylesPropTypes, {\n id: _propTypes2['default'].string.isRequired,\n placeholder: _propTypes2['default'].string, // also used as label\n displayValue: _propTypes2['default'].string,\n screenReaderMessage: _propTypes2['default'].string,\n focused: _propTypes2['default'].bool,\n isFocused: _propTypes2['default'].bool, // describes actual DOM focus\n disabled: _propTypes2['default'].bool,\n required: _propTypes2['default'].bool,\n readOnly: _propTypes2['default'].bool,\n openDirection: _OpenDirectionShape2['default'],\n showCaret: _propTypes2['default'].bool,\n showClearDate: _propTypes2['default'].bool,\n customCloseIcon: _propTypes2['default'].node,\n showDefaultInputIcon: _propTypes2['default'].bool,\n inputIconPosition: _IconPositionShape2['default'],\n customInputIcon: _propTypes2['default'].node,\n isRTL: _propTypes2['default'].bool,\n noBorder: _propTypes2['default'].bool,\n block: _propTypes2['default'].bool,\n small: _propTypes2['default'].bool,\n regular: _propTypes2['default'].bool,\n verticalSpacing: _airbnbPropTypes.nonNegativeInteger,\n\n onChange: _propTypes2['default'].func,\n onClearDate: _propTypes2['default'].func,\n onFocus: _propTypes2['default'].func,\n onKeyDownShiftTab: _propTypes2['default'].func,\n onKeyDownTab: _propTypes2['default'].func,\n onKeyDownArrowDown: _propTypes2['default'].func,\n onKeyDownQuestionMark: _propTypes2['default'].func,\n\n // i18n\n phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.SingleDatePickerInputPhrases))\n}));\n\nvar defaultProps = {\n placeholder: 'Select Date',\n displayValue: '',\n screenReaderMessage: '',\n focused: false,\n isFocused: false,\n disabled: false,\n required: false,\n readOnly: false,\n openDirection: _constants.OPEN_DOWN,\n showCaret: false,\n showClearDate: false,\n showDefaultInputIcon: false,\n inputIconPosition: _constants.ICON_BEFORE_POSITION,\n customCloseIcon: null,\n customInputIcon: null,\n isRTL: false,\n noBorder: false,\n block: false,\n small: false,\n regular: false,\n verticalSpacing: undefined,\n\n onChange: function () {\n function onChange() {}\n\n return onChange;\n }(),\n onClearDate: function () {\n function onClearDate() {}\n\n return onClearDate;\n }(),\n onFocus: function () {\n function onFocus() {}\n\n return onFocus;\n }(),\n onKeyDownShiftTab: function () {\n function onKeyDownShiftTab() {}\n\n return onKeyDownShiftTab;\n }(),\n onKeyDownTab: function () {\n function onKeyDownTab() {}\n\n return onKeyDownTab;\n }(),\n onKeyDownArrowDown: function () {\n function onKeyDownArrowDown() {}\n\n return onKeyDownArrowDown;\n }(),\n onKeyDownQuestionMark: function () {\n function onKeyDownQuestionMark() {}\n\n return onKeyDownQuestionMark;\n }(),\n\n\n // i18n\n phrases: _defaultPhrases.SingleDatePickerInputPhrases\n};\n\n/* eslint react/no-this-in-sfc: 1 */\n\nfunction SingleDatePickerInput(_ref) {\n var id = _ref.id,\n placeholder = _ref.placeholder,\n displayValue = _ref.displayValue,\n focused = _ref.focused,\n isFocused = _ref.isFocused,\n disabled = _ref.disabled,\n required = _ref.required,\n readOnly = _ref.readOnly,\n showCaret = _ref.showCaret,\n showClearDate = _ref.showClearDate,\n showDefaultInputIcon = _ref.showDefaultInputIcon,\n inputIconPosition = _ref.inputIconPosition,\n phrases = _ref.phrases,\n onClearDate = _ref.onClearDate,\n onChange = _ref.onChange,\n onFocus = _ref.onFocus,\n onKeyDownShiftTab = _ref.onKeyDownShiftTab,\n onKeyDownTab = _ref.onKeyDownTab,\n onKeyDownArrowDown = _ref.onKeyDownArrowDown,\n onKeyDownQuestionMark = _ref.onKeyDownQuestionMark,\n screenReaderMessage = _ref.screenReaderMessage,\n customCloseIcon = _ref.customCloseIcon,\n customInputIcon = _ref.customInputIcon,\n openDirection = _ref.openDirection,\n isRTL = _ref.isRTL,\n noBorder = _ref.noBorder,\n block = _ref.block,\n small = _ref.small,\n regular = _ref.regular,\n verticalSpacing = _ref.verticalSpacing,\n styles = _ref.styles;\n\n var calendarIcon = customInputIcon || _react2['default'].createElement(_CalendarIcon2['default'], (0, _reactWithStyles.css)(styles.SingleDatePickerInput_calendarIcon_svg));\n var closeIcon = customCloseIcon || _react2['default'].createElement(_CloseButton2['default'], (0, _reactWithStyles.css)(styles.SingleDatePickerInput_clearDate_svg, small && styles.SingleDatePickerInput_clearDate_svg__small));\n\n var screenReaderText = screenReaderMessage || phrases.keyboardNavigationInstructions;\n var inputIcon = (showDefaultInputIcon || customInputIcon !== null) && _react2['default'].createElement(\n 'button',\n _extends({}, (0, _reactWithStyles.css)(styles.SingleDatePickerInput_calendarIcon), {\n type: 'button',\n disabled: disabled,\n 'aria-label': phrases.focusStartDate,\n onClick: onFocus\n }),\n calendarIcon\n );\n\n return _react2['default'].createElement(\n 'div',\n (0, _reactWithStyles.css)(styles.SingleDatePickerInput, disabled && styles.SingleDatePickerInput__disabled, isRTL && styles.SingleDatePickerInput__rtl, !noBorder && styles.SingleDatePickerInput__withBorder, block && styles.SingleDatePickerInput__block, showClearDate && styles.SingleDatePickerInput__showClearDate),\n inputIconPosition === _constants.ICON_BEFORE_POSITION && inputIcon,\n _react2['default'].createElement(_DateInput2['default'], {\n id: id,\n placeholder: placeholder // also used as label\n , displayValue: displayValue,\n screenReaderMessage: screenReaderText,\n focused: focused,\n isFocused: isFocused,\n disabled: disabled,\n required: required,\n readOnly: readOnly,\n showCaret: showCaret,\n onChange: onChange,\n onFocus: onFocus,\n onKeyDownShiftTab: onKeyDownShiftTab,\n onKeyDownTab: onKeyDownTab,\n onKeyDownArrowDown: onKeyDownArrowDown,\n onKeyDownQuestionMark: onKeyDownQuestionMark,\n openDirection: openDirection,\n verticalSpacing: verticalSpacing,\n small: small,\n regular: regular,\n block: block\n }),\n showClearDate && _react2['default'].createElement(\n 'button',\n _extends({}, (0, _reactWithStyles.css)(styles.SingleDatePickerInput_clearDate, small && styles.SingleDatePickerInput_clearDate__small, !customCloseIcon && styles.SingleDatePickerInput_clearDate__default, !displayValue && styles.SingleDatePickerInput_clearDate__hide), {\n type: 'button',\n 'aria-label': phrases.clearDate,\n disabled: disabled,\n onMouseEnter: this && this.onClearDateMouseEnter,\n onMouseLeave: this && this.onClearDateMouseLeave,\n onClick: onClearDate\n }),\n closeIcon\n ),\n inputIconPosition === _constants.ICON_AFTER_POSITION && inputIcon\n );\n}\n\nSingleDatePickerInput.propTypes = propTypes;\nSingleDatePickerInput.defaultProps = defaultProps;\n\nexports['default'] = (0, _reactWithStyles.withStyles)(function (_ref2) {\n var _ref2$reactDates = _ref2.reactDates,\n border = _ref2$reactDates.border,\n color = _ref2$reactDates.color;\n return {\n SingleDatePickerInput: {\n display: 'inline-block',\n backgroundColor: color.background\n },\n\n SingleDatePickerInput__withBorder: {\n borderColor: color.border,\n borderWidth: border.pickerInput.borderWidth,\n borderStyle: border.pickerInput.borderStyle,\n borderRadius: border.pickerInput.borderRadius\n },\n\n SingleDatePickerInput__rtl: {\n direction: 'rtl'\n },\n\n SingleDatePickerInput__disabled: {\n backgroundColor: color.disabled\n },\n\n SingleDatePickerInput__block: {\n display: 'block'\n },\n\n SingleDatePickerInput__showClearDate: {\n paddingRight: 30\n },\n\n SingleDatePickerInput_clearDate: {\n background: 'none',\n border: 0,\n color: 'inherit',\n font: 'inherit',\n lineHeight: 'normal',\n overflow: 'visible',\n\n cursor: 'pointer',\n padding: 10,\n margin: '0 10px 0 5px',\n position: 'absolute',\n right: 0,\n top: '50%',\n transform: 'translateY(-50%)'\n },\n\n SingleDatePickerInput_clearDate__default: {\n ':focus': {\n background: color.core.border,\n borderRadius: '50%'\n },\n\n ':hover': {\n background: color.core.border,\n borderRadius: '50%'\n }\n },\n\n SingleDatePickerInput_clearDate__small: {\n padding: 6\n },\n\n SingleDatePickerInput_clearDate__hide: {\n visibility: 'hidden'\n },\n\n SingleDatePickerInput_clearDate_svg: {\n fill: color.core.grayLight,\n height: 12,\n width: 15,\n verticalAlign: 'middle'\n },\n\n SingleDatePickerInput_clearDate_svg__small: {\n height: 9\n },\n\n SingleDatePickerInput_calendarIcon: {\n background: 'none',\n border: 0,\n color: 'inherit',\n font: 'inherit',\n lineHeight: 'normal',\n overflow: 'visible',\n\n cursor: 'pointer',\n display: 'inline-block',\n verticalAlign: 'middle',\n padding: 10,\n margin: '0 5px 0 10px'\n },\n\n SingleDatePickerInput_calendarIcon_svg: {\n fill: color.core.grayLight,\n height: 15,\n width: 14,\n verticalAlign: 'middle'\n }\n };\n})(SingleDatePickerInput);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar DISPLAY_FORMAT = exports.DISPLAY_FORMAT = 'L';\nvar ISO_FORMAT = exports.ISO_FORMAT = 'YYYY-MM-DD';\nvar ISO_MONTH_FORMAT = exports.ISO_MONTH_FORMAT = 'YYYY-MM';\n\nvar START_DATE = exports.START_DATE = 'startDate';\nvar END_DATE = exports.END_DATE = 'endDate';\n\nvar HORIZONTAL_ORIENTATION = exports.HORIZONTAL_ORIENTATION = 'horizontal';\nvar VERTICAL_ORIENTATION = exports.VERTICAL_ORIENTATION = 'vertical';\nvar VERTICAL_SCROLLABLE = exports.VERTICAL_SCROLLABLE = 'verticalScrollable';\n\nvar ICON_BEFORE_POSITION = exports.ICON_BEFORE_POSITION = 'before';\nvar ICON_AFTER_POSITION = exports.ICON_AFTER_POSITION = 'after';\n\nvar INFO_POSITION_TOP = exports.INFO_POSITION_TOP = 'top';\nvar INFO_POSITION_BOTTOM = exports.INFO_POSITION_BOTTOM = 'bottom';\nvar INFO_POSITION_BEFORE = exports.INFO_POSITION_BEFORE = 'before';\nvar INFO_POSITION_AFTER = exports.INFO_POSITION_AFTER = 'after';\n\nvar ANCHOR_LEFT = exports.ANCHOR_LEFT = 'left';\nvar ANCHOR_RIGHT = exports.ANCHOR_RIGHT = 'right';\n\nvar OPEN_DOWN = exports.OPEN_DOWN = 'down';\nvar OPEN_UP = exports.OPEN_UP = 'up';\n\nvar DAY_SIZE = exports.DAY_SIZE = 39;\nvar BLOCKED_MODIFIER = exports.BLOCKED_MODIFIER = 'blocked';\nvar WEEKDAYS = exports.WEEKDAYS = [0, 1, 2, 3, 4, 5, 6];\n\nvar FANG_WIDTH_PX = exports.FANG_WIDTH_PX = 20;\nvar FANG_HEIGHT_PX = exports.FANG_HEIGHT_PX = 10;\nvar DEFAULT_VERTICAL_SPACING = exports.DEFAULT_VERTICAL_SPACING = 22;\n\nvar MODIFIER_KEY_NAMES = exports.MODIFIER_KEY_NAMES = new Set(['Shift', 'Control', 'Alt', 'Meta']);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar calendarLabel = 'Calendar';\nvar closeDatePicker = 'Close';\nvar focusStartDate = 'Interact with the calendar and add the check-in date for your trip.';\nvar clearDate = 'Clear Date';\nvar clearDates = 'Clear Dates';\nvar jumpToPrevMonth = 'Move backward to switch to the previous month.';\nvar jumpToNextMonth = 'Move forward to switch to the next month.';\nvar keyboardShortcuts = 'Keyboard Shortcuts';\nvar showKeyboardShortcutsPanel = 'Open the keyboard shortcuts panel.';\nvar hideKeyboardShortcutsPanel = 'Close the shortcuts panel.';\nvar openThisPanel = 'Open this panel.';\nvar enterKey = 'Enter key';\nvar leftArrowRightArrow = 'Right and left arrow keys';\nvar upArrowDownArrow = 'up and down arrow keys';\nvar pageUpPageDown = 'page up and page down keys';\nvar homeEnd = 'Home and end keys';\nvar escape = 'Escape key';\nvar questionMark = 'Question mark';\nvar selectFocusedDate = 'Select the date in focus.';\nvar moveFocusByOneDay = 'Move backward (left) and forward (right) by one day.';\nvar moveFocusByOneWeek = 'Move backward (up) and forward (down) by one week.';\nvar moveFocusByOneMonth = 'Switch months.';\nvar moveFocustoStartAndEndOfWeek = 'Go to the first or last day of a week.';\nvar returnFocusToInput = 'Return to the date input field.';\nvar keyboardNavigationInstructions = 'Press the down arrow key to interact with the calendar and\\n select a date. Press the question mark key to get the keyboard shortcuts for changing dates.';\n\nvar chooseAvailableStartDate = function chooseAvailableStartDate(_ref) {\n var date = _ref.date;\n return 'Choose ' + String(date) + ' as your check-in date. It\\u2019s available.';\n};\nvar chooseAvailableEndDate = function chooseAvailableEndDate(_ref2) {\n var date = _ref2.date;\n return 'Choose ' + String(date) + ' as your check-out date. It\\u2019s available.';\n};\nvar chooseAvailableDate = function chooseAvailableDate(_ref3) {\n var date = _ref3.date;\n return date;\n};\nvar dateIsUnavailable = function dateIsUnavailable(_ref4) {\n var date = _ref4.date;\n return 'Not available. ' + String(date);\n};\nvar dateIsSelected = function dateIsSelected(_ref5) {\n var date = _ref5.date;\n return 'Selected. ' + String(date);\n};\n\nexports['default'] = {\n calendarLabel: calendarLabel,\n closeDatePicker: closeDatePicker,\n focusStartDate: focusStartDate,\n clearDate: clearDate,\n clearDates: clearDates,\n jumpToPrevMonth: jumpToPrevMonth,\n jumpToNextMonth: jumpToNextMonth,\n keyboardShortcuts: keyboardShortcuts,\n showKeyboardShortcutsPanel: showKeyboardShortcutsPanel,\n hideKeyboardShortcutsPanel: hideKeyboardShortcutsPanel,\n openThisPanel: openThisPanel,\n enterKey: enterKey,\n leftArrowRightArrow: leftArrowRightArrow,\n upArrowDownArrow: upArrowDownArrow,\n pageUpPageDown: pageUpPageDown,\n homeEnd: homeEnd,\n escape: escape,\n questionMark: questionMark,\n selectFocusedDate: selectFocusedDate,\n moveFocusByOneDay: moveFocusByOneDay,\n moveFocusByOneWeek: moveFocusByOneWeek,\n moveFocusByOneMonth: moveFocusByOneMonth,\n moveFocustoStartAndEndOfWeek: moveFocustoStartAndEndOfWeek,\n returnFocusToInput: returnFocusToInput,\n keyboardNavigationInstructions: keyboardNavigationInstructions,\n\n chooseAvailableStartDate: chooseAvailableStartDate,\n chooseAvailableEndDate: chooseAvailableEndDate,\n dateIsUnavailable: dateIsUnavailable,\n dateIsSelected: dateIsSelected\n};\nvar DateRangePickerPhrases = exports.DateRangePickerPhrases = {\n calendarLabel: calendarLabel,\n closeDatePicker: closeDatePicker,\n clearDates: clearDates,\n focusStartDate: focusStartDate,\n jumpToPrevMonth: jumpToPrevMonth,\n jumpToNextMonth: jumpToNextMonth,\n keyboardShortcuts: keyboardShortcuts,\n showKeyboardShortcutsPanel: showKeyboardShortcutsPanel,\n hideKeyboardShortcutsPanel: hideKeyboardShortcutsPanel,\n openThisPanel: openThisPanel,\n enterKey: enterKey,\n leftArrowRightArrow: leftArrowRightArrow,\n upArrowDownArrow: upArrowDownArrow,\n pageUpPageDown: pageUpPageDown,\n homeEnd: homeEnd,\n escape: escape,\n questionMark: questionMark,\n selectFocusedDate: selectFocusedDate,\n moveFocusByOneDay: moveFocusByOneDay,\n moveFocusByOneWeek: moveFocusByOneWeek,\n moveFocusByOneMonth: moveFocusByOneMonth,\n moveFocustoStartAndEndOfWeek: moveFocustoStartAndEndOfWeek,\n returnFocusToInput: returnFocusToInput,\n keyboardNavigationInstructions: keyboardNavigationInstructions,\n chooseAvailableStartDate: chooseAvailableStartDate,\n chooseAvailableEndDate: chooseAvailableEndDate,\n dateIsUnavailable: dateIsUnavailable,\n dateIsSelected: dateIsSelected\n};\n\nvar DateRangePickerInputPhrases = exports.DateRangePickerInputPhrases = {\n focusStartDate: focusStartDate,\n clearDates: clearDates,\n keyboardNavigationInstructions: keyboardNavigationInstructions\n};\n\nvar SingleDatePickerPhrases = exports.SingleDatePickerPhrases = {\n calendarLabel: calendarLabel,\n closeDatePicker: closeDatePicker,\n clearDate: clearDate,\n jumpToPrevMonth: jumpToPrevMonth,\n jumpToNextMonth: jumpToNextMonth,\n keyboardShortcuts: keyboardShortcuts,\n showKeyboardShortcutsPanel: showKeyboardShortcutsPanel,\n hideKeyboardShortcutsPanel: hideKeyboardShortcutsPanel,\n openThisPanel: openThisPanel,\n enterKey: enterKey,\n leftArrowRightArrow: leftArrowRightArrow,\n upArrowDownArrow: upArrowDownArrow,\n pageUpPageDown: pageUpPageDown,\n homeEnd: homeEnd,\n escape: escape,\n questionMark: questionMark,\n selectFocusedDate: selectFocusedDate,\n moveFocusByOneDay: moveFocusByOneDay,\n moveFocusByOneWeek: moveFocusByOneWeek,\n moveFocusByOneMonth: moveFocusByOneMonth,\n moveFocustoStartAndEndOfWeek: moveFocustoStartAndEndOfWeek,\n returnFocusToInput: returnFocusToInput,\n keyboardNavigationInstructions: keyboardNavigationInstructions,\n chooseAvailableDate: chooseAvailableDate,\n dateIsUnavailable: dateIsUnavailable,\n dateIsSelected: dateIsSelected\n};\n\nvar SingleDatePickerInputPhrases = exports.SingleDatePickerInputPhrases = {\n clearDate: clearDate,\n keyboardNavigationInstructions: keyboardNavigationInstructions\n};\n\nvar DayPickerPhrases = exports.DayPickerPhrases = {\n calendarLabel: calendarLabel,\n jumpToPrevMonth: jumpToPrevMonth,\n jumpToNextMonth: jumpToNextMonth,\n keyboardShortcuts: keyboardShortcuts,\n showKeyboardShortcutsPanel: showKeyboardShortcutsPanel,\n hideKeyboardShortcutsPanel: hideKeyboardShortcutsPanel,\n openThisPanel: openThisPanel,\n enterKey: enterKey,\n leftArrowRightArrow: leftArrowRightArrow,\n upArrowDownArrow: upArrowDownArrow,\n pageUpPageDown: pageUpPageDown,\n homeEnd: homeEnd,\n escape: escape,\n questionMark: questionMark,\n selectFocusedDate: selectFocusedDate,\n moveFocusByOneDay: moveFocusByOneDay,\n moveFocusByOneWeek: moveFocusByOneWeek,\n moveFocusByOneMonth: moveFocusByOneMonth,\n moveFocustoStartAndEndOfWeek: moveFocustoStartAndEndOfWeek,\n returnFocusToInput: returnFocusToInput,\n chooseAvailableStartDate: chooseAvailableStartDate,\n chooseAvailableEndDate: chooseAvailableEndDate,\n chooseAvailableDate: chooseAvailableDate,\n dateIsUnavailable: dateIsUnavailable,\n dateIsSelected: dateIsSelected\n};\n\nvar DayPickerKeyboardShortcutsPhrases = exports.DayPickerKeyboardShortcutsPhrases = {\n keyboardShortcuts: keyboardShortcuts,\n showKeyboardShortcutsPanel: showKeyboardShortcutsPanel,\n hideKeyboardShortcutsPanel: hideKeyboardShortcutsPanel,\n openThisPanel: openThisPanel,\n enterKey: enterKey,\n leftArrowRightArrow: leftArrowRightArrow,\n upArrowDownArrow: upArrowDownArrow,\n pageUpPageDown: pageUpPageDown,\n homeEnd: homeEnd,\n escape: escape,\n questionMark: questionMark,\n selectFocusedDate: selectFocusedDate,\n moveFocusByOneDay: moveFocusByOneDay,\n moveFocusByOneWeek: moveFocusByOneWeek,\n moveFocusByOneMonth: moveFocusByOneMonth,\n moveFocustoStartAndEndOfWeek: moveFocustoStartAndEndOfWeek,\n returnFocusToInput: returnFocusToInput\n};\n\nvar DayPickerNavigationPhrases = exports.DayPickerNavigationPhrases = {\n jumpToPrevMonth: jumpToPrevMonth,\n jumpToNextMonth: jumpToNextMonth\n};\n\nvar CalendarDayPhrases = exports.CalendarDayPhrases = {\n chooseAvailableDate: chooseAvailableDate,\n dateIsUnavailable: dateIsUnavailable,\n dateIsSelected: dateIsSelected\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _CalendarDay = require('./components/CalendarDay');\n\nObject.defineProperty(exports, 'CalendarDay', {\n enumerable: true,\n get: function () {\n function get() {\n return _interopRequireDefault(_CalendarDay)['default'];\n }\n\n return get;\n }()\n});\n\nvar _CalendarMonth = require('./components/CalendarMonth');\n\nObject.defineProperty(exports, 'CalendarMonth', {\n enumerable: true,\n get: function () {\n function get() {\n return _interopRequireDefault(_CalendarMonth)['default'];\n }\n\n return get;\n }()\n});\n\nvar _CalendarMonthGrid = require('./components/CalendarMonthGrid');\n\nObject.defineProperty(exports, 'CalendarMonthGrid', {\n enumerable: true,\n get: function () {\n function get() {\n return _interopRequireDefault(_CalendarMonthGrid)['default'];\n }\n\n return get;\n }()\n});\n\nvar _DateRangePicker = require('./components/DateRangePicker');\n\nObject.defineProperty(exports, 'DateRangePicker', {\n enumerable: true,\n get: function () {\n function get() {\n return _interopRequireDefault(_DateRangePicker)['default'];\n }\n\n return get;\n }()\n});\n\nvar _DateRangePickerInput = require('./components/DateRangePickerInput');\n\nObject.defineProperty(exports, 'DateRangePickerInput', {\n enumerable: true,\n get: function () {\n function get() {\n return _interopRequireDefault(_DateRangePickerInput)['default'];\n }\n\n return get;\n }()\n});\n\nvar _DateRangePickerInputController = require('./components/DateRangePickerInputController');\n\nObject.defineProperty(exports, 'DateRangePickerInputController', {\n enumerable: true,\n get: function () {\n function get() {\n return _interopRequireDefault(_DateRangePickerInputController)['default'];\n }\n\n return get;\n }()\n});\n\nvar _DateRangePickerShape = require('./shapes/DateRangePickerShape');\n\nObject.defineProperty(exports, 'DateRangePickerShape', {\n enumerable: true,\n get: function () {\n function get() {\n return _interopRequireDefault(_DateRangePickerShape)['default'];\n }\n\n return get;\n }()\n});\n\nvar _DayPicker = require('./components/DayPicker');\n\nObject.defineProperty(exports, 'DayPicker', {\n enumerable: true,\n get: function () {\n function get() {\n return _interopRequireDefault(_DayPicker)['default'];\n }\n\n return get;\n }()\n});\n\nvar _DayPickerRangeController = require('./components/DayPickerRangeController');\n\nObject.defineProperty(exports, 'DayPickerRangeController', {\n enumerable: true,\n get: function () {\n function get() {\n return _interopRequireDefault(_DayPickerRangeController)['default'];\n }\n\n return get;\n }()\n});\n\nvar _DayPickerSingleDateController = require('./components/DayPickerSingleDateController');\n\nObject.defineProperty(exports, 'DayPickerSingleDateController', {\n enumerable: true,\n get: function () {\n function get() {\n return _interopRequireDefault(_DayPickerSingleDateController)['default'];\n }\n\n return get;\n }()\n});\n\nvar _SingleDatePicker = require('./components/SingleDatePicker');\n\nObject.defineProperty(exports, 'SingleDatePicker', {\n enumerable: true,\n get: function () {\n function get() {\n return _interopRequireDefault(_SingleDatePicker)['default'];\n }\n\n return get;\n }()\n});\n\nvar _SingleDatePickerInput = require('./components/SingleDatePickerInput');\n\nObject.defineProperty(exports, 'SingleDatePickerInput', {\n enumerable: true,\n get: function () {\n function get() {\n return _interopRequireDefault(_SingleDatePickerInput)['default'];\n }\n\n return get;\n }()\n});\n\nvar _SingleDatePickerShape = require('./shapes/SingleDatePickerShape');\n\nObject.defineProperty(exports, 'SingleDatePickerShape', {\n enumerable: true,\n get: function () {\n function get() {\n return _interopRequireDefault(_SingleDatePickerShape)['default'];\n }\n\n return get;\n }()\n});\n\nvar _isInclusivelyAfterDay = require('./utils/isInclusivelyAfterDay');\n\nObject.defineProperty(exports, 'isInclusivelyAfterDay', {\n enumerable: true,\n get: function () {\n function get() {\n return _interopRequireDefault(_isInclusivelyAfterDay)['default'];\n }\n\n return get;\n }()\n});\n\nvar _isInclusivelyBeforeDay = require('./utils/isInclusivelyBeforeDay');\n\nObject.defineProperty(exports, 'isInclusivelyBeforeDay', {\n enumerable: true,\n get: function () {\n function get() {\n return _interopRequireDefault(_isInclusivelyBeforeDay)['default'];\n }\n\n return get;\n }()\n});\n\nvar _isNextDay = require('./utils/isNextDay');\n\nObject.defineProperty(exports, 'isNextDay', {\n enumerable: true,\n get: function () {\n function get() {\n return _interopRequireDefault(_isNextDay)['default'];\n }\n\n return get;\n }()\n});\n\nvar _isSameDay = require('./utils/isSameDay');\n\nObject.defineProperty(exports, 'isSameDay', {\n enumerable: true,\n get: function () {\n function get() {\n return _interopRequireDefault(_isSameDay)['default'];\n }\n\n return get;\n }()\n});\n\nvar _toISODateString = require('./utils/toISODateString');\n\nObject.defineProperty(exports, 'toISODateString', {\n enumerable: true,\n get: function () {\n function get() {\n return _interopRequireDefault(_toISODateString)['default'];\n }\n\n return get;\n }()\n});\n\nvar _toLocalizedDateString = require('./utils/toLocalizedDateString');\n\nObject.defineProperty(exports, 'toLocalizedDateString', {\n enumerable: true,\n get: function () {\n function get() {\n return _interopRequireDefault(_toLocalizedDateString)['default'];\n }\n\n return get;\n }()\n});\n\nvar _toMomentObject = require('./utils/toMomentObject');\n\nObject.defineProperty(exports, 'toMomentObject', {\n enumerable: true,\n get: function () {\n function get() {\n return _interopRequireDefault(_toMomentObject)['default'];\n }\n\n return get;\n }()\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }","'use strict';\n\nvar _registerCSSInterfaceWithDefaultTheme = require('./utils/registerCSSInterfaceWithDefaultTheme');\n\nvar _registerCSSInterfaceWithDefaultTheme2 = _interopRequireDefault(_registerCSSInterfaceWithDefaultTheme);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n(0, _registerCSSInterfaceWithDefaultTheme2['default'])();","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _constants = require('../constants');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nexports['default'] = _propTypes2['default'].oneOf([_constants.ANCHOR_LEFT, _constants.ANCHOR_RIGHT]);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _constants = require('../constants');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nexports['default'] = _propTypes2['default'].oneOf([_constants.INFO_POSITION_TOP, _constants.INFO_POSITION_BOTTOM, _constants.INFO_POSITION_BEFORE, _constants.INFO_POSITION_AFTER]);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactMomentProptypes = require('react-moment-proptypes');\n\nvar _reactMomentProptypes2 = _interopRequireDefault(_reactMomentProptypes);\n\nvar _airbnbPropTypes = require('airbnb-prop-types');\n\nvar _defaultPhrases = require('../defaultPhrases');\n\nvar _getPhrasePropTypes = require('../utils/getPhrasePropTypes');\n\nvar _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);\n\nvar _FocusedInputShape = require('./FocusedInputShape');\n\nvar _FocusedInputShape2 = _interopRequireDefault(_FocusedInputShape);\n\nvar _IconPositionShape = require('./IconPositionShape');\n\nvar _IconPositionShape2 = _interopRequireDefault(_IconPositionShape);\n\nvar _OrientationShape = require('./OrientationShape');\n\nvar _OrientationShape2 = _interopRequireDefault(_OrientationShape);\n\nvar _DisabledShape = require('./DisabledShape');\n\nvar _DisabledShape2 = _interopRequireDefault(_DisabledShape);\n\nvar _AnchorDirectionShape = require('./AnchorDirectionShape');\n\nvar _AnchorDirectionShape2 = _interopRequireDefault(_AnchorDirectionShape);\n\nvar _OpenDirectionShape = require('./OpenDirectionShape');\n\nvar _OpenDirectionShape2 = _interopRequireDefault(_OpenDirectionShape);\n\nvar _DayOfWeekShape = require('./DayOfWeekShape');\n\nvar _DayOfWeekShape2 = _interopRequireDefault(_DayOfWeekShape);\n\nvar _CalendarInfoPositionShape = require('./CalendarInfoPositionShape');\n\nvar _CalendarInfoPositionShape2 = _interopRequireDefault(_CalendarInfoPositionShape);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nexports['default'] = {\n // required props for a functional interactive DateRangePicker\n startDate: _reactMomentProptypes2['default'].momentObj,\n endDate: _reactMomentProptypes2['default'].momentObj,\n onDatesChange: _propTypes2['default'].func.isRequired,\n\n focusedInput: _FocusedInputShape2['default'],\n onFocusChange: _propTypes2['default'].func.isRequired,\n\n onClose: _propTypes2['default'].func,\n\n // input related props\n startDateId: _propTypes2['default'].string.isRequired,\n startDatePlaceholderText: _propTypes2['default'].string,\n endDateId: _propTypes2['default'].string.isRequired,\n endDatePlaceholderText: _propTypes2['default'].string,\n disabled: _DisabledShape2['default'],\n required: _propTypes2['default'].bool,\n readOnly: _propTypes2['default'].bool,\n screenReaderInputMessage: _propTypes2['default'].string,\n showClearDates: _propTypes2['default'].bool,\n showDefaultInputIcon: _propTypes2['default'].bool,\n inputIconPosition: _IconPositionShape2['default'],\n customInputIcon: _propTypes2['default'].node,\n customArrowIcon: _propTypes2['default'].node,\n customCloseIcon: _propTypes2['default'].node,\n noBorder: _propTypes2['default'].bool,\n block: _propTypes2['default'].bool,\n small: _propTypes2['default'].bool,\n regular: _propTypes2['default'].bool,\n keepFocusOnInput: _propTypes2['default'].bool,\n\n // calendar presentation and interaction related props\n renderMonthText: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'),\n renderMonthElement: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'),\n orientation: _OrientationShape2['default'],\n anchorDirection: _AnchorDirectionShape2['default'],\n openDirection: _OpenDirectionShape2['default'],\n horizontalMargin: _propTypes2['default'].number,\n withPortal: _propTypes2['default'].bool,\n withFullScreenPortal: _propTypes2['default'].bool,\n appendToBody: _propTypes2['default'].bool,\n disableScroll: _propTypes2['default'].bool,\n daySize: _airbnbPropTypes.nonNegativeInteger,\n isRTL: _propTypes2['default'].bool,\n firstDayOfWeek: _DayOfWeekShape2['default'],\n initialVisibleMonth: _propTypes2['default'].func,\n numberOfMonths: _propTypes2['default'].number,\n keepOpenOnDateSelect: _propTypes2['default'].bool,\n reopenPickerOnClearDates: _propTypes2['default'].bool,\n renderCalendarInfo: _propTypes2['default'].func,\n calendarInfoPosition: _CalendarInfoPositionShape2['default'],\n hideKeyboardShortcutsPanel: _propTypes2['default'].bool,\n verticalHeight: _airbnbPropTypes.nonNegativeInteger,\n transitionDuration: _airbnbPropTypes.nonNegativeInteger,\n verticalSpacing: _airbnbPropTypes.nonNegativeInteger,\n\n // navigation related props\n navPrev: _propTypes2['default'].node,\n navNext: _propTypes2['default'].node,\n onPrevMonthClick: _propTypes2['default'].func,\n onNextMonthClick: _propTypes2['default'].func,\n\n // day presentation and interaction related props\n renderCalendarDay: _propTypes2['default'].func,\n renderDayContents: _propTypes2['default'].func,\n minimumNights: _propTypes2['default'].number,\n enableOutsideDays: _propTypes2['default'].bool,\n isDayBlocked: _propTypes2['default'].func,\n isOutsideRange: _propTypes2['default'].func,\n isDayHighlighted: _propTypes2['default'].func,\n\n // internationalization props\n displayFormat: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].func]),\n monthFormat: _propTypes2['default'].string,\n weekDayFormat: _propTypes2['default'].string,\n phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.DateRangePickerPhrases)),\n dayAriaLabelFormat: _propTypes2['default'].string\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _constants = require('../constants');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nexports['default'] = _propTypes2['default'].oneOf(_constants.WEEKDAYS);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _constants = require('../constants');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nexports['default'] = _propTypes2['default'].oneOfType([_propTypes2['default'].bool, _propTypes2['default'].oneOf([_constants.START_DATE, _constants.END_DATE])]);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _constants = require('../constants');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nexports['default'] = _propTypes2['default'].oneOf([_constants.START_DATE, _constants.END_DATE]);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _constants = require('../constants');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nexports['default'] = _propTypes2['default'].oneOf([_constants.ICON_BEFORE_POSITION, _constants.ICON_AFTER_POSITION]);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _airbnbPropTypes = require('airbnb-prop-types');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nexports['default'] = (0, _airbnbPropTypes.and)([_propTypes2['default'].instanceOf(Set), function () {\n function modifiers(props, propName) {\n for (var _len = arguments.length, rest = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n rest[_key - 2] = arguments[_key];\n }\n\n var propValue = props[propName];\n\n var firstError = void 0;\n [].concat(_toConsumableArray(propValue)).some(function (v, i) {\n var _PropTypes$string;\n\n var fakePropName = String(propName) + ': index ' + String(i);\n firstError = (_PropTypes$string = _propTypes2['default'].string).isRequired.apply(_PropTypes$string, [_defineProperty({}, fakePropName, v), fakePropName].concat(rest));\n return firstError != null;\n });\n return firstError == null ? null : firstError;\n }\n\n return modifiers;\n}()], 'Modifiers (Set of Strings)');","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _constants = require('../constants');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nexports['default'] = _propTypes2['default'].oneOf([_constants.OPEN_DOWN, _constants.OPEN_UP]);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _constants = require('../constants');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nexports['default'] = _propTypes2['default'].oneOf([_constants.HORIZONTAL_ORIENTATION, _constants.VERTICAL_ORIENTATION]);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _constants = require('../constants');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nexports['default'] = _propTypes2['default'].oneOf([_constants.HORIZONTAL_ORIENTATION, _constants.VERTICAL_ORIENTATION, _constants.VERTICAL_SCROLLABLE]);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactMomentProptypes = require('react-moment-proptypes');\n\nvar _reactMomentProptypes2 = _interopRequireDefault(_reactMomentProptypes);\n\nvar _airbnbPropTypes = require('airbnb-prop-types');\n\nvar _defaultPhrases = require('../defaultPhrases');\n\nvar _getPhrasePropTypes = require('../utils/getPhrasePropTypes');\n\nvar _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);\n\nvar _IconPositionShape = require('./IconPositionShape');\n\nvar _IconPositionShape2 = _interopRequireDefault(_IconPositionShape);\n\nvar _OrientationShape = require('./OrientationShape');\n\nvar _OrientationShape2 = _interopRequireDefault(_OrientationShape);\n\nvar _AnchorDirectionShape = require('./AnchorDirectionShape');\n\nvar _AnchorDirectionShape2 = _interopRequireDefault(_AnchorDirectionShape);\n\nvar _OpenDirectionShape = require('./OpenDirectionShape');\n\nvar _OpenDirectionShape2 = _interopRequireDefault(_OpenDirectionShape);\n\nvar _DayOfWeekShape = require('./DayOfWeekShape');\n\nvar _DayOfWeekShape2 = _interopRequireDefault(_DayOfWeekShape);\n\nvar _CalendarInfoPositionShape = require('./CalendarInfoPositionShape');\n\nvar _CalendarInfoPositionShape2 = _interopRequireDefault(_CalendarInfoPositionShape);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nexports['default'] = {\n // required props for a functional interactive SingleDatePicker\n date: _reactMomentProptypes2['default'].momentObj,\n onDateChange: _propTypes2['default'].func.isRequired,\n\n focused: _propTypes2['default'].bool,\n onFocusChange: _propTypes2['default'].func.isRequired,\n\n // input related props\n id: _propTypes2['default'].string.isRequired,\n placeholder: _propTypes2['default'].string,\n disabled: _propTypes2['default'].bool,\n required: _propTypes2['default'].bool,\n readOnly: _propTypes2['default'].bool,\n screenReaderInputMessage: _propTypes2['default'].string,\n showClearDate: _propTypes2['default'].bool,\n customCloseIcon: _propTypes2['default'].node,\n showDefaultInputIcon: _propTypes2['default'].bool,\n inputIconPosition: _IconPositionShape2['default'],\n customInputIcon: _propTypes2['default'].node,\n noBorder: _propTypes2['default'].bool,\n block: _propTypes2['default'].bool,\n small: _propTypes2['default'].bool,\n regular: _propTypes2['default'].bool,\n verticalSpacing: _airbnbPropTypes.nonNegativeInteger,\n keepFocusOnInput: _propTypes2['default'].bool,\n\n // calendar presentation and interaction related props\n renderMonthText: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'),\n renderMonthElement: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'),\n orientation: _OrientationShape2['default'],\n anchorDirection: _AnchorDirectionShape2['default'],\n openDirection: _OpenDirectionShape2['default'],\n horizontalMargin: _propTypes2['default'].number,\n withPortal: _propTypes2['default'].bool,\n withFullScreenPortal: _propTypes2['default'].bool,\n appendToBody: _propTypes2['default'].bool,\n disableScroll: _propTypes2['default'].bool,\n initialVisibleMonth: _propTypes2['default'].func,\n firstDayOfWeek: _DayOfWeekShape2['default'],\n numberOfMonths: _propTypes2['default'].number,\n keepOpenOnDateSelect: _propTypes2['default'].bool,\n reopenPickerOnClearDate: _propTypes2['default'].bool,\n renderCalendarInfo: _propTypes2['default'].func,\n calendarInfoPosition: _CalendarInfoPositionShape2['default'],\n hideKeyboardShortcutsPanel: _propTypes2['default'].bool,\n daySize: _airbnbPropTypes.nonNegativeInteger,\n isRTL: _propTypes2['default'].bool,\n verticalHeight: _airbnbPropTypes.nonNegativeInteger,\n transitionDuration: _airbnbPropTypes.nonNegativeInteger,\n horizontalMonthPadding: _airbnbPropTypes.nonNegativeInteger,\n\n // navigation related props\n navPrev: _propTypes2['default'].node,\n navNext: _propTypes2['default'].node,\n\n onPrevMonthClick: _propTypes2['default'].func,\n onNextMonthClick: _propTypes2['default'].func,\n onClose: _propTypes2['default'].func,\n\n // day presentation and interaction related props\n renderCalendarDay: _propTypes2['default'].func,\n renderDayContents: _propTypes2['default'].func,\n enableOutsideDays: _propTypes2['default'].bool,\n isDayBlocked: _propTypes2['default'].func,\n isOutsideRange: _propTypes2['default'].func,\n isDayHighlighted: _propTypes2['default'].func,\n\n // internationalization props\n displayFormat: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].func]),\n monthFormat: _propTypes2['default'].string,\n weekDayFormat: _propTypes2['default'].string,\n phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.SingleDatePickerPhrases)),\n dayAriaLabelFormat: _propTypes2['default'].string\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar core = {\n white: '#fff',\n gray: '#484848',\n grayLight: '#82888a',\n grayLighter: '#cacccd',\n grayLightest: '#f2f2f2',\n\n borderMedium: '#c4c4c4',\n border: '#dbdbdb',\n borderLight: '#e4e7e7',\n borderLighter: '#eceeee',\n borderBright: '#f4f5f5',\n\n primary: '#00a699',\n primaryShade_1: '#33dacd',\n primaryShade_2: '#66e2da',\n primaryShade_3: '#80e8e0',\n primaryShade_4: '#b2f1ec',\n primary_dark: '#008489',\n\n secondary: '#007a87',\n\n yellow: '#ffe8bc',\n yellow_dark: '#ffce71'\n};\n\nexports['default'] = {\n reactDates: {\n zIndex: 0,\n border: {\n input: {\n border: 0,\n borderTop: 0,\n borderRight: 0,\n borderBottom: '2px solid transparent',\n borderLeft: 0,\n outlineFocused: 0,\n borderFocused: 0,\n borderTopFocused: 0,\n borderLeftFocused: 0,\n borderBottomFocused: '2px solid ' + String(core.primary_dark),\n borderRightFocused: 0,\n borderRadius: 0\n },\n pickerInput: {\n borderWidth: 1,\n borderStyle: 'solid',\n borderRadius: 2\n }\n },\n\n color: {\n core: core,\n\n disabled: core.grayLightest,\n\n background: core.white,\n backgroundDark: '#f2f2f2',\n backgroundFocused: core.white,\n border: 'rgb(219, 219, 219)',\n text: core.gray,\n textDisabled: core.border,\n textFocused: '#007a87',\n placeholderText: '#757575',\n\n outside: {\n backgroundColor: core.white,\n backgroundColor_active: core.white,\n backgroundColor_hover: core.white,\n color: core.gray,\n color_active: core.gray,\n color_hover: core.gray\n },\n\n highlighted: {\n backgroundColor: core.yellow,\n backgroundColor_active: core.yellow_dark,\n backgroundColor_hover: core.yellow_dark,\n color: core.gray,\n color_active: core.gray,\n color_hover: core.gray\n },\n\n minimumNights: {\n backgroundColor: core.white,\n backgroundColor_active: core.white,\n backgroundColor_hover: core.white,\n borderColor: core.borderLighter,\n color: core.grayLighter,\n color_active: core.grayLighter,\n color_hover: core.grayLighter\n },\n\n hoveredSpan: {\n backgroundColor: core.primaryShade_4,\n backgroundColor_active: core.primaryShade_3,\n backgroundColor_hover: core.primaryShade_4,\n borderColor: core.primaryShade_3,\n borderColor_active: core.primaryShade_3,\n borderColor_hover: core.primaryShade_3,\n color: core.secondary,\n color_active: core.secondary,\n color_hover: core.secondary\n },\n\n selectedSpan: {\n backgroundColor: core.primaryShade_2,\n backgroundColor_active: core.primaryShade_1,\n backgroundColor_hover: core.primaryShade_1,\n borderColor: core.primaryShade_1,\n borderColor_active: core.primary,\n borderColor_hover: core.primary,\n color: core.white,\n color_active: core.white,\n color_hover: core.white\n },\n\n selected: {\n backgroundColor: core.primary,\n backgroundColor_active: core.primary,\n backgroundColor_hover: core.primary,\n borderColor: core.primary,\n borderColor_active: core.primary,\n borderColor_hover: core.primary,\n color: core.white,\n color_active: core.white,\n color_hover: core.white\n },\n\n blocked_calendar: {\n backgroundColor: core.grayLighter,\n backgroundColor_active: core.grayLighter,\n backgroundColor_hover: core.grayLighter,\n borderColor: core.grayLighter,\n borderColor_active: core.grayLighter,\n borderColor_hover: core.grayLighter,\n color: core.grayLight,\n color_active: core.grayLight,\n color_hover: core.grayLight\n },\n\n blocked_out_of_range: {\n backgroundColor: core.white,\n backgroundColor_active: core.white,\n backgroundColor_hover: core.white,\n borderColor: core.borderLight,\n borderColor_active: core.borderLight,\n borderColor_hover: core.borderLight,\n color: core.grayLighter,\n color_active: core.grayLighter,\n color_hover: core.grayLighter\n }\n },\n\n spacing: {\n dayPickerHorizontalPadding: 9,\n captionPaddingTop: 22,\n captionPaddingBottom: 37,\n inputPadding: 0,\n displayTextPaddingVertical: undefined,\n displayTextPaddingTop: 11,\n displayTextPaddingBottom: 9,\n displayTextPaddingHorizontal: undefined,\n displayTextPaddingLeft: 11,\n displayTextPaddingRight: 11,\n displayTextPaddingVertical_small: undefined,\n displayTextPaddingTop_small: 7,\n displayTextPaddingBottom_small: 5,\n displayTextPaddingHorizontal_small: undefined,\n displayTextPaddingLeft_small: 7,\n displayTextPaddingRight_small: 7\n },\n\n sizing: {\n inputWidth: 130,\n inputWidth_small: 97,\n arrowWidth: 24\n },\n\n noScrollBarOnVerticalScrollable: false,\n\n font: {\n size: 14,\n captionSize: 18,\n input: {\n size: 19,\n lineHeight: '24px',\n size_small: 15,\n lineHeight_small: '18px',\n letterSpacing_small: '0.2px',\n styleDisabled: 'italic'\n }\n }\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports['default'] = calculateDimension;\nfunction calculateDimension(el, axis) {\n var borderBox = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var withMargin = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n\n if (!el) {\n return 0;\n }\n\n var axisStart = axis === 'width' ? 'Left' : 'Top';\n var axisEnd = axis === 'width' ? 'Right' : 'Bottom';\n\n // Only read styles if we need to\n var style = !borderBox || withMargin ? window.getComputedStyle(el) : null;\n\n // Offset includes border and padding\n var offsetWidth = el.offsetWidth,\n offsetHeight = el.offsetHeight;\n\n var size = axis === 'width' ? offsetWidth : offsetHeight;\n\n // Get the inner size\n if (!borderBox) {\n size -= parseFloat(style['padding' + axisStart]) + parseFloat(style['padding' + axisEnd]) + parseFloat(style['border' + axisStart + 'Width']) + parseFloat(style['border' + axisEnd + 'Width']);\n }\n\n // Apply margin\n if (withMargin) {\n size += parseFloat(style['margin' + axisStart]) + parseFloat(style['margin' + axisEnd]);\n }\n\n return size;\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getScrollParent = getScrollParent;\nexports.getScrollAncestorsOverflowY = getScrollAncestorsOverflowY;\nexports['default'] = disableScroll;\nvar getScrollingRoot = function getScrollingRoot() {\n return document.scrollingElement || document.documentElement;\n};\n\n/**\n * Recursively finds the scroll parent of a node. The scroll parrent of a node\n * is the closest node that is scrollable. A node is scrollable if:\n * - it is allowed to scroll via CSS ('overflow-y' not visible or hidden);\n * - and its children/content are \"bigger\" than the node's box height.\n *\n * The root of the document always scrolls by default.\n *\n * @param {HTMLElement} node Any DOM element.\n * @return {HTMLElement} The scroll parent element.\n */\nfunction getScrollParent(node) {\n var parent = node.parentElement;\n\n if (parent == null) return getScrollingRoot();\n\n var _window$getComputedSt = window.getComputedStyle(parent),\n overflowY = _window$getComputedSt.overflowY;\n\n var canScroll = overflowY !== 'visible' && overflowY !== 'hidden';\n\n if (canScroll && parent.scrollHeight > parent.clientHeight) {\n return parent;\n }\n\n return getScrollParent(parent);\n}\n\n/**\n * Recursively traverses the tree upwards from the given node, capturing all\n * ancestor nodes that scroll along with their current 'overflow-y' CSS\n * property.\n *\n * @param {HTMLElement} node Any DOM element.\n * @param {Map<HTMLElement,string>} [acc] Accumulator map.\n * @return {Map<HTMLElement,string>} Map of ancestors with their 'overflow-y' value.\n */\nfunction getScrollAncestorsOverflowY(node) {\n var acc = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Map();\n\n var scrollingRoot = getScrollingRoot();\n var scrollParent = getScrollParent(node);\n acc.set(scrollParent, scrollParent.style.overflowY);\n\n if (scrollParent === scrollingRoot) return acc;\n return getScrollAncestorsOverflowY(scrollParent, acc);\n}\n\n/**\n * Disabling the scroll on a node involves finding all the scrollable ancestors\n * and set their 'overflow-y' CSS property to 'hidden'. When all ancestors have\n * 'overflow-y: hidden' (up to the document element) there is no scroll\n * container, thus all the scroll outside of the node is disabled. In order to\n * enable scroll again, we store the previous value of the 'overflow-y' for\n * every ancestor in a closure and reset it back.\n *\n * @param {HTMLElement} node Any DOM element.\n */\nfunction disableScroll(node) {\n var scrollAncestorsOverflowY = getScrollAncestorsOverflowY(node);\n var toggle = function toggle(on) {\n return scrollAncestorsOverflowY.forEach(function (overflowY, ancestor) {\n ancestor.style.setProperty('overflow-y', on ? 'hidden' : overflowY);\n });\n };\n\n toggle(true);\n return function () {\n return toggle(false);\n };\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports['default'] = getActiveElement;\nfunction getActiveElement() {\n return typeof document !== 'undefined' && document.activeElement;\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports['default'] = getCalendarDaySettings;\n\nvar _getPhrase = require('./getPhrase');\n\nvar _getPhrase2 = _interopRequireDefault(_getPhrase);\n\nvar _constants = require('../constants');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction getCalendarDaySettings(day, ariaLabelFormat, daySize, modifiers, phrases) {\n var chooseAvailableDate = phrases.chooseAvailableDate,\n dateIsUnavailable = phrases.dateIsUnavailable,\n dateIsSelected = phrases.dateIsSelected;\n\n\n var daySizeStyles = {\n width: daySize,\n height: daySize - 1\n };\n\n var useDefaultCursor = modifiers.has('blocked-minimum-nights') || modifiers.has('blocked-calendar') || modifiers.has('blocked-out-of-range');\n\n var selected = modifiers.has('selected') || modifiers.has('selected-start') || modifiers.has('selected-end');\n\n var hoveredSpan = !selected && (modifiers.has('hovered-span') || modifiers.has('after-hovered-start'));\n\n var isOutsideRange = modifiers.has('blocked-out-of-range');\n\n var formattedDate = { date: day.format(ariaLabelFormat) };\n\n var ariaLabel = (0, _getPhrase2['default'])(chooseAvailableDate, formattedDate);\n if (modifiers.has(_constants.BLOCKED_MODIFIER)) {\n ariaLabel = (0, _getPhrase2['default'])(dateIsUnavailable, formattedDate);\n } else if (selected) {\n ariaLabel = (0, _getPhrase2['default'])(dateIsSelected, formattedDate);\n }\n\n return {\n daySizeStyles: daySizeStyles,\n useDefaultCursor: useDefaultCursor,\n selected: selected,\n hoveredSpan: hoveredSpan,\n isOutsideRange: isOutsideRange,\n ariaLabel: ariaLabel\n };\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports['default'] = getCalendarMonthWeeks;\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _constants = require('../constants');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction getCalendarMonthWeeks(month, enableOutsideDays) {\n var firstDayOfWeek = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _moment2['default'].localeData().firstDayOfWeek();\n\n if (!_moment2['default'].isMoment(month) || !month.isValid()) {\n throw new TypeError('`month` must be a valid moment object');\n }\n if (_constants.WEEKDAYS.indexOf(firstDayOfWeek) === -1) {\n throw new TypeError('`firstDayOfWeek` must be an integer between 0 and 6');\n }\n\n // set utc offset to get correct dates in future (when timezone changes)\n var firstOfMonth = month.clone().startOf('month').hour(12);\n var lastOfMonth = month.clone().endOf('month').hour(12);\n\n // calculate the exact first and last days to fill the entire matrix\n // (considering days outside month)\n var prevDays = (firstOfMonth.day() + 7 - firstDayOfWeek) % 7;\n var nextDays = (firstDayOfWeek + 6 - lastOfMonth.day()) % 7;\n var firstDay = firstOfMonth.clone().subtract(prevDays, 'day');\n var lastDay = lastOfMonth.clone().add(nextDays, 'day');\n\n var totalDays = lastDay.diff(firstDay, 'days') + 1;\n\n var currentDay = firstDay.clone();\n var weeksInMonth = [];\n\n for (var i = 0; i < totalDays; i += 1) {\n if (i % 7 === 0) {\n weeksInMonth.push([]);\n }\n\n var day = null;\n if (i >= prevDays && i < totalDays - nextDays || enableOutsideDays) {\n day = currentDay.clone();\n }\n\n weeksInMonth[weeksInMonth.length - 1].push(day);\n\n currentDay.add(1, 'day');\n }\n\n return weeksInMonth;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = getCalendarMonthWidth;\nfunction getCalendarMonthWidth(daySize, calendarMonthPadding) {\n return 7 * daySize + 2 * calendarMonthPadding + 1;\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports['default'] = getDetachedContainerStyles;\n\nvar _constants = require('../constants');\n\n/**\n * Calculate and return a CSS transform style to position a detached element\n * next to a reference element. The open and anchor direction indicate wether\n * it should be positioned above/below and/or to the left/right of the\n * reference element.\n *\n * Assuming r(0,0), r(1,1), d(0,0), d(1,1) for the bottom-left and top-right\n * corners of the reference and detached elements, respectively:\n * - openDirection = DOWN, anchorDirection = LEFT => d(0,1) == r(0,1)\n * - openDirection = UP, anchorDirection = LEFT => d(0,0) == r(0,0)\n * - openDirection = DOWN, anchorDirection = RIGHT => d(1,1) == r(1,1)\n * - openDirection = UP, anchorDirection = RIGHT => d(1,0) == r(1,0)\n *\n * By using a CSS transform, we allow to further position it using\n * top/bottom CSS properties for the anchor gutter.\n *\n * @param {string} openDirection The vertical positioning of the popup\n * @param {string} anchorDirection The horizontal position of the popup\n * @param {HTMLElement} referenceEl The reference element\n */\nfunction getDetachedContainerStyles(openDirection, anchorDirection, referenceEl) {\n var referenceRect = referenceEl.getBoundingClientRect();\n var offsetX = referenceRect.left;\n var offsetY = referenceRect.top;\n\n if (openDirection === _constants.OPEN_UP) {\n offsetY = -(window.innerHeight - referenceRect.bottom);\n }\n\n if (anchorDirection === _constants.ANCHOR_RIGHT) {\n offsetX = -(window.innerWidth - referenceRect.right);\n }\n\n return {\n transform: 'translate3d(' + String(Math.round(offsetX)) + 'px, ' + String(Math.round(offsetY)) + 'px, 0)'\n };\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports['default'] = getInputHeight;\n/* eslint-disable camelcase */\n\nfunction getPadding(vertical, top, bottom) {\n var isTopDefined = typeof top === 'number';\n var isBottomDefined = typeof bottom === 'number';\n var isVerticalDefined = typeof vertical === 'number';\n\n if (isTopDefined && isBottomDefined) {\n return top + bottom;\n }\n\n if (isTopDefined && isVerticalDefined) {\n return top + vertical;\n }\n\n if (isTopDefined) {\n return top;\n }\n\n if (isBottomDefined && isVerticalDefined) {\n return bottom + vertical;\n }\n\n if (isBottomDefined) {\n return bottom;\n }\n\n if (isVerticalDefined) {\n return 2 * vertical;\n }\n\n return 0;\n}\n\nfunction getInputHeight(_ref, small) {\n var _ref$font$input = _ref.font.input,\n lineHeight = _ref$font$input.lineHeight,\n lineHeight_small = _ref$font$input.lineHeight_small,\n _ref$spacing = _ref.spacing,\n inputPadding = _ref$spacing.inputPadding,\n displayTextPaddingVertical = _ref$spacing.displayTextPaddingVertical,\n displayTextPaddingTop = _ref$spacing.displayTextPaddingTop,\n displayTextPaddingBottom = _ref$spacing.displayTextPaddingBottom,\n displayTextPaddingVertical_small = _ref$spacing.displayTextPaddingVertical_small,\n displayTextPaddingTop_small = _ref$spacing.displayTextPaddingTop_small,\n displayTextPaddingBottom_small = _ref$spacing.displayTextPaddingBottom_small;\n\n var calcLineHeight = small ? lineHeight_small : lineHeight;\n\n var padding = small ? getPadding(displayTextPaddingVertical_small, displayTextPaddingTop_small, displayTextPaddingBottom_small) : getPadding(displayTextPaddingVertical, displayTextPaddingTop, displayTextPaddingBottom);\n\n return parseInt(calcLineHeight, 10) + 2 * inputPadding + padding;\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports['default'] = getNumberOfCalendarMonthWeeks;\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction getBlankDaysBeforeFirstDay(firstDayOfMonth, firstDayOfWeek) {\n var weekDayDiff = firstDayOfMonth.day() - firstDayOfWeek;\n return (weekDayDiff + 7) % 7;\n}\n\nfunction getNumberOfCalendarMonthWeeks(month) {\n var firstDayOfWeek = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _moment2['default'].localeData().firstDayOfWeek();\n\n var firstDayOfMonth = month.clone().startOf('month');\n var numBlankDays = getBlankDaysBeforeFirstDay(firstDayOfMonth, firstDayOfWeek);\n return Math.ceil((numBlankDays + month.daysInMonth()) / 7);\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports['default'] = getPhrase;\nfunction getPhrase(phrase, args) {\n if (typeof phrase === 'string') return phrase;\n\n if (typeof phrase === 'function') {\n return phrase(args);\n }\n\n return '';\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports['default'] = getPhrasePropTypes;\n\nvar _object = require('object.assign');\n\nvar _object2 = _interopRequireDefault(_object);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction getPhrasePropTypes(defaultPhrases) {\n return Object.keys(defaultPhrases).reduce(function (phrases, key) {\n return (0, _object2['default'])({}, phrases, _defineProperty({}, key, _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].func, _propTypes2['default'].node])));\n }, {});\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports['default'] = getResponsiveContainerStyles;\n\nvar _constants = require('../constants');\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction getResponsiveContainerStyles(anchorDirection, currentOffset, containerEdge, margin) {\n var windowWidth = typeof window !== 'undefined' ? window.innerWidth : 0;\n var calculatedOffset = anchorDirection === _constants.ANCHOR_LEFT ? windowWidth - containerEdge : containerEdge;\n var calculatedMargin = margin || 0;\n\n return _defineProperty({}, anchorDirection, Math.min(currentOffset + calculatedOffset - calculatedMargin, 0));\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = getSelectedDateOffset;\nvar defaultModifier = function defaultModifier(day) {\n return day;\n};\n\nfunction getSelectedDateOffset(fn, day) {\n var modifier = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultModifier;\n\n if (!fn) return day;\n return modifier(fn(day.clone()));\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = getTransformStyles;\nfunction getTransformStyles(transformValue) {\n return {\n transform: transformValue,\n msTransform: transformValue,\n MozTransform: transformValue,\n WebkitTransform: transformValue\n };\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports['default'] = getVisibleDays;\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _toISOMonthString = require('./toISOMonthString');\n\nvar _toISOMonthString2 = _interopRequireDefault(_toISOMonthString);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction getVisibleDays(month, numberOfMonths, enableOutsideDays, withoutTransitionMonths) {\n if (!_moment2['default'].isMoment(month)) return {};\n\n var visibleDaysByMonth = {};\n var currentMonth = withoutTransitionMonths ? month.clone() : month.clone().subtract(1, 'month');\n for (var i = 0; i < (withoutTransitionMonths ? numberOfMonths : numberOfMonths + 2); i += 1) {\n var visibleDays = [];\n\n // set utc offset to get correct dates in future (when timezone changes)\n var baseDate = currentMonth.clone();\n var firstOfMonth = baseDate.clone().startOf('month').hour(12);\n var lastOfMonth = baseDate.clone().endOf('month').hour(12);\n\n var currentDay = firstOfMonth.clone();\n\n // days belonging to the previous month\n if (enableOutsideDays) {\n for (var j = 0; j < currentDay.weekday(); j += 1) {\n var prevDay = currentDay.clone().subtract(j + 1, 'day');\n visibleDays.unshift(prevDay);\n }\n }\n\n while (currentDay < lastOfMonth) {\n visibleDays.push(currentDay.clone());\n currentDay.add(1, 'day');\n }\n\n if (enableOutsideDays) {\n // weekday() returns the index of the day of the week according to the locale\n // this means if the week starts on Monday, weekday() will return 0 for a Monday date, not 1\n if (currentDay.weekday() !== 0) {\n // days belonging to the next month\n for (var k = currentDay.weekday(), count = 0; k < 7; k += 1, count += 1) {\n var nextDay = currentDay.clone().add(count, 'day');\n visibleDays.push(nextDay);\n }\n }\n }\n\n visibleDaysByMonth[(0, _toISOMonthString2['default'])(currentMonth)] = visibleDays;\n currentMonth = currentMonth.clone().add(1, 'month');\n }\n\n return visibleDaysByMonth;\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports['default'] = isAfterDay;\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _isBeforeDay = require('./isBeforeDay');\n\nvar _isBeforeDay2 = _interopRequireDefault(_isBeforeDay);\n\nvar _isSameDay = require('./isSameDay');\n\nvar _isSameDay2 = _interopRequireDefault(_isSameDay);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction isAfterDay(a, b) {\n if (!_moment2['default'].isMoment(a) || !_moment2['default'].isMoment(b)) return false;\n return !(0, _isBeforeDay2['default'])(a, b) && !(0, _isSameDay2['default'])(a, b);\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports['default'] = isBeforeDay;\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction isBeforeDay(a, b) {\n if (!_moment2['default'].isMoment(a) || !_moment2['default'].isMoment(b)) return false;\n\n var aYear = a.year();\n var aMonth = a.month();\n\n var bYear = b.year();\n var bMonth = b.month();\n\n var isSameYear = aYear === bYear;\n var isSameMonth = aMonth === bMonth;\n\n if (isSameYear && isSameMonth) return a.date() < b.date();\n if (isSameYear) return aMonth < bMonth;\n return aYear < bYear;\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports['default'] = isDayVisible;\n\nvar _isBeforeDay = require('./isBeforeDay');\n\nvar _isBeforeDay2 = _interopRequireDefault(_isBeforeDay);\n\nvar _isAfterDay = require('./isAfterDay');\n\nvar _isAfterDay2 = _interopRequireDefault(_isAfterDay);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction isDayVisible(day, month, numberOfMonths, enableOutsideDays) {\n var firstDayOfFirstMonth = month.clone().startOf('month');\n if (enableOutsideDays) firstDayOfFirstMonth = firstDayOfFirstMonth.startOf('week');\n if ((0, _isBeforeDay2['default'])(day, firstDayOfFirstMonth)) return false;\n\n var lastDayOfLastMonth = month.clone().add(numberOfMonths - 1, 'months').endOf('month');\n if (enableOutsideDays) lastDayOfLastMonth = lastDayOfLastMonth.endOf('week');\n return !(0, _isAfterDay2['default'])(day, lastDayOfLastMonth);\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports['default'] = isInclusivelyAfterDay;\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _isBeforeDay = require('./isBeforeDay');\n\nvar _isBeforeDay2 = _interopRequireDefault(_isBeforeDay);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction isInclusivelyAfterDay(a, b) {\n if (!_moment2['default'].isMoment(a) || !_moment2['default'].isMoment(b)) return false;\n return !(0, _isBeforeDay2['default'])(a, b);\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports['default'] = isInclusivelyBeforeDay;\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _isAfterDay = require('./isAfterDay');\n\nvar _isAfterDay2 = _interopRequireDefault(_isAfterDay);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction isInclusivelyBeforeDay(a, b) {\n if (!_moment2['default'].isMoment(a) || !_moment2['default'].isMoment(b)) return false;\n return !(0, _isAfterDay2['default'])(a, b);\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports['default'] = isNextDay;\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _isSameDay = require('./isSameDay');\n\nvar _isSameDay2 = _interopRequireDefault(_isSameDay);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction isNextDay(a, b) {\n if (!_moment2['default'].isMoment(a) || !_moment2['default'].isMoment(b)) return false;\n var nextDay = (0, _moment2['default'])(a).add(1, 'day');\n return (0, _isSameDay2['default'])(nextDay, b);\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports['default'] = isNextMonth;\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _isSameMonth = require('./isSameMonth');\n\nvar _isSameMonth2 = _interopRequireDefault(_isSameMonth);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction isNextMonth(a, b) {\n if (!_moment2['default'].isMoment(a) || !_moment2['default'].isMoment(b)) return false;\n return (0, _isSameMonth2['default'])(a.clone().add(1, 'month'), b);\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports['default'] = isPrevMonth;\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _isSameMonth = require('./isSameMonth');\n\nvar _isSameMonth2 = _interopRequireDefault(_isSameMonth);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction isPrevMonth(a, b) {\n if (!_moment2['default'].isMoment(a) || !_moment2['default'].isMoment(b)) return false;\n return (0, _isSameMonth2['default'])(a.clone().subtract(1, 'month'), b);\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports['default'] = isSameDay;\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction isSameDay(a, b) {\n if (!_moment2['default'].isMoment(a) || !_moment2['default'].isMoment(b)) return false;\n // Compare least significant, most likely to change units first\n // Moment's isSame clones moment inputs and is a tad slow\n return a.date() === b.date() && a.month() === b.month() && a.year() === b.year();\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports['default'] = isSameMonth;\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction isSameMonth(a, b) {\n if (!_moment2['default'].isMoment(a) || !_moment2['default'].isMoment(b)) return false;\n // Compare least significant, most likely to change units first\n // Moment's isSame clones moment inputs and is a tad slow\n return a.month() === b.month() && a.year() === b.year();\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports['default'] = isTransitionEndSupported;\nfunction isTransitionEndSupported() {\n return !!(typeof window !== 'undefined' && 'TransitionEvent' in window);\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports['default'] = registerCSSInterfaceWithDefaultTheme;\n\nvar _reactWithStylesInterfaceCss = require('react-with-styles-interface-css');\n\nvar _reactWithStylesInterfaceCss2 = _interopRequireDefault(_reactWithStylesInterfaceCss);\n\nvar _registerInterfaceWithDefaultTheme = require('./registerInterfaceWithDefaultTheme');\n\nvar _registerInterfaceWithDefaultTheme2 = _interopRequireDefault(_registerInterfaceWithDefaultTheme);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction registerCSSInterfaceWithDefaultTheme() {\n (0, _registerInterfaceWithDefaultTheme2['default'])(_reactWithStylesInterfaceCss2['default']);\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports['default'] = registerInterfaceWithDefaultTheme;\n\nvar _ThemedStyleSheet = require('react-with-styles/lib/ThemedStyleSheet');\n\nvar _ThemedStyleSheet2 = _interopRequireDefault(_ThemedStyleSheet);\n\nvar _DefaultTheme = require('../theme/DefaultTheme');\n\nvar _DefaultTheme2 = _interopRequireDefault(_DefaultTheme);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction registerInterfaceWithDefaultTheme(reactWithStylesInterface) {\n _ThemedStyleSheet2['default'].registerInterface(reactWithStylesInterface);\n _ThemedStyleSheet2['default'].registerTheme(_DefaultTheme2['default']);\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports['default'] = toISODateString;\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _toMomentObject = require('./toMomentObject');\n\nvar _toMomentObject2 = _interopRequireDefault(_toMomentObject);\n\nvar _constants = require('../constants');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction toISODateString(date, currentFormat) {\n var dateObj = _moment2['default'].isMoment(date) ? date : (0, _toMomentObject2['default'])(date, currentFormat);\n if (!dateObj) return null;\n\n return dateObj.format(_constants.ISO_FORMAT);\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports['default'] = toISOMonthString;\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _toMomentObject = require('./toMomentObject');\n\nvar _toMomentObject2 = _interopRequireDefault(_toMomentObject);\n\nvar _constants = require('../constants');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction toISOMonthString(date, currentFormat) {\n var dateObj = _moment2['default'].isMoment(date) ? date : (0, _toMomentObject2['default'])(date, currentFormat);\n if (!dateObj) return null;\n\n return dateObj.format(_constants.ISO_MONTH_FORMAT);\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports['default'] = toLocalizedDateString;\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _toMomentObject = require('./toMomentObject');\n\nvar _toMomentObject2 = _interopRequireDefault(_toMomentObject);\n\nvar _constants = require('../constants');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction toLocalizedDateString(date, currentFormat) {\n var dateObj = _moment2['default'].isMoment(date) ? date : (0, _toMomentObject2['default'])(date, currentFormat);\n if (!dateObj) return null;\n\n return dateObj.format(_constants.DISPLAY_FORMAT);\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports['default'] = toMomentObject;\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _constants = require('../constants');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction toMomentObject(dateString, customFormat) {\n var dateFormats = customFormat ? [customFormat, _constants.DISPLAY_FORMAT, _constants.ISO_FORMAT] : [_constants.DISPLAY_FORMAT, _constants.ISO_FORMAT];\n\n var date = (0, _moment2['default'])(dateString, dateFormats, true);\n return date.isValid() ? date.hour(12) : null;\n}","var messages = {\n invalidPredicate: '`predicate` must be a function',\n invalidPropValidator: '`propValidator` must be a function',\n requiredCore: 'is marked as required',\n invalidTypeCore: 'Invalid input type',\n predicateFailureCore: 'Failed to succeed with predicate',\n anonymousMessage: '<<anonymous>>',\n baseInvalidMessage: 'Invalid ',\n};\n\nfunction constructPropValidatorVariations(propValidator) {\n if (typeof propValidator !== 'function') {\n throw new Error(messages.invalidPropValidator);\n }\n\n var requiredPropValidator = propValidator.bind(null, false, null);\n requiredPropValidator.isRequired = propValidator.bind(null, true, null);\n\n requiredPropValidator.withPredicate = function predicateApplication(predicate) {\n if (typeof predicate !== 'function') {\n throw new Error(messages.invalidPredicate);\n }\n var basePropValidator = propValidator.bind(null, false, predicate);\n basePropValidator.isRequired = propValidator.bind(null, true, predicate);\n return basePropValidator;\n };\n\n return requiredPropValidator;\n}\n\nfunction createInvalidRequiredErrorMessage(propName, componentName, value) {\n return new Error(\n 'The prop `' + propName + '` ' + messages.requiredCore +\n ' in `' + componentName + '`, but its value is `' + value + '`.'\n );\n}\n\nvar independentGuardianValue = -1;\n\nfunction preValidationRequireCheck(isRequired, componentName, propFullName, propValue) {\n var isPropValueUndefined = typeof propValue === 'undefined';\n var isPropValueNull = propValue === null;\n\n if (isRequired) {\n if (isPropValueUndefined) {\n return createInvalidRequiredErrorMessage(propFullName, componentName, 'undefined');\n } else if (isPropValueNull) {\n return createInvalidRequiredErrorMessage(propFullName, componentName, 'null');\n }\n }\n\n if (isPropValueUndefined || isPropValueNull) {\n return null;\n }\n\n return independentGuardianValue;\n}\n\nfunction createMomentChecker(type, typeValidator, validator, momentType) {\n\n function propValidator(\n isRequired, // Bound parameter to indicate with the propType is required\n predicate, // Bound parameter to allow user to add dynamic validation\n props,\n propName,\n componentName,\n location,\n propFullName\n ) {\n var propValue = props[ propName ];\n var propType = typeof propValue;\n\n componentName = componentName || messages.anonymousMessage;\n propFullName = propFullName || propName;\n\n var preValidationRequireCheckValue = preValidationRequireCheck(\n isRequired, componentName, propFullName, propValue\n );\n\n if (preValidationRequireCheckValue !== independentGuardianValue) {\n return preValidationRequireCheckValue;\n }\n\n if (typeValidator && !typeValidator(propValue)) {\n return new Error(\n messages.invalidTypeCore + ': `' + propName + '` of type `' + propType + '` ' +\n 'supplied to `' + componentName + '`, expected `' + type + '`.'\n );\n }\n\n if (!validator(propValue)) {\n return new Error(\n messages.baseInvalidMessage + location + ' `' + propName + '` of type `' + propType + '` ' +\n 'supplied to `' + componentName + '`, expected `' + momentType + '`.'\n );\n }\n\n if (predicate && !predicate(propValue)) {\n var predicateName = predicate.name || messages.anonymousMessage;\n return new Error(\n messages.baseInvalidMessage + location + ' `' + propName + '` of type `' + propType + '` ' +\n 'supplied to `' + componentName + '`. ' + messages.predicateFailureCore + ' `' +\n predicateName + '`.'\n );\n }\n\n return null;\n\n }\n\n return constructPropValidatorVariations(propValidator);\n\n}\n\nmodule.exports = {\n constructPropValidatorVariations: constructPropValidatorVariations,\n createMomentChecker: createMomentChecker,\n messages: messages,\n};\n","var moment = require('moment');\nvar momentValidationWrapper = require('./moment-validation-wrapper');\nvar core = require('./core');\n\nmodule.exports = {\n\n momentObj : core.createMomentChecker(\n 'object',\n function(obj) {\n return typeof obj === 'object';\n },\n function isValid(value) {\n return momentValidationWrapper.isValidMoment(value);\n },\n 'Moment'\n ),\n\n momentString : core.createMomentChecker(\n 'string',\n function(str) {\n return typeof str === 'string';\n },\n function isValid(value) {\n return momentValidationWrapper.isValidMoment(moment(value));\n },\n 'Moment'\n ),\n\n momentDurationObj : core.createMomentChecker(\n 'object',\n function(obj) {\n return typeof obj === 'object';\n },\n function isValid(value) {\n return moment.isDuration(value);\n },\n 'Duration'\n ),\n\n};\n","var moment = require('moment');\n\nfunction isValidMoment(testMoment) {\n if (typeof moment.isMoment === 'function' && !moment.isMoment(testMoment)) {\n return false;\n }\n\n /* istanbul ignore else */\n if (typeof testMoment.isValid === 'function') {\n // moment 1.7.0+\n return testMoment.isValid();\n }\n\n /* istanbul ignore next */\n return !isNaN(testMoment);\n}\n\nmodule.exports = {\n isValidMoment : isValidMoment,\n};\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _airbnbPropTypes = require('airbnb-prop-types');\n\nvar _consolidatedEvents = require('consolidated-events');\n\nvar _object = require('object.values');\n\nvar _object2 = _interopRequireDefault(_object);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar DISPLAY = {\n BLOCK: 'block',\n FLEX: 'flex',\n INLINE_BLOCK: 'inline-block'\n};\n\nvar propTypes = (0, _airbnbPropTypes.forbidExtraProps)({\n children: _propTypes2['default'].node.isRequired,\n onOutsideClick: _propTypes2['default'].func.isRequired,\n disabled: _propTypes2['default'].bool,\n useCapture: _propTypes2['default'].bool,\n display: _propTypes2['default'].oneOf((0, _object2['default'])(DISPLAY))\n});\n\nvar defaultProps = {\n disabled: false,\n\n // `useCapture` is set to true by default so that a `stopPropagation` in the\n // children will not prevent all outside click handlers from firing - maja\n useCapture: true,\n display: DISPLAY.BLOCK\n};\n\nvar OutsideClickHandler = function (_React$Component) {\n _inherits(OutsideClickHandler, _React$Component);\n\n function OutsideClickHandler() {\n var _ref;\n\n _classCallCheck(this, OutsideClickHandler);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var _this = _possibleConstructorReturn(this, (_ref = OutsideClickHandler.__proto__ || Object.getPrototypeOf(OutsideClickHandler)).call.apply(_ref, [this].concat(args)));\n\n _this.onMouseDown = _this.onMouseDown.bind(_this);\n _this.onMouseUp = _this.onMouseUp.bind(_this);\n _this.setChildNodeRef = _this.setChildNodeRef.bind(_this);\n return _this;\n }\n\n _createClass(OutsideClickHandler, [{\n key: 'componentDidMount',\n value: function () {\n function componentDidMount() {\n var _props = this.props,\n disabled = _props.disabled,\n useCapture = _props.useCapture;\n\n\n if (!disabled) this.addMouseDownEventListener(useCapture);\n }\n\n return componentDidMount;\n }()\n }, {\n key: 'componentWillReceiveProps',\n value: function () {\n function componentWillReceiveProps(_ref2) {\n var disabled = _ref2.disabled,\n useCapture = _ref2.useCapture;\n var prevDisabled = this.props.disabled;\n\n if (prevDisabled !== disabled) {\n if (disabled) {\n this.removeEventListeners();\n } else {\n this.addMouseDownEventListener(useCapture);\n }\n }\n }\n\n return componentWillReceiveProps;\n }()\n }, {\n key: 'componentWillUnmount',\n value: function () {\n function componentWillUnmount() {\n this.removeEventListeners();\n }\n\n return componentWillUnmount;\n }()\n\n // Use mousedown/mouseup to enforce that clicks remain outside the root's\n // descendant tree, even when dragged. This should also get triggered on\n // touch devices.\n\n }, {\n key: 'onMouseDown',\n value: function () {\n function onMouseDown(e) {\n var useCapture = this.props.useCapture;\n\n\n var isDescendantOfRoot = this.childNode && this.childNode.contains(e.target);\n if (!isDescendantOfRoot) {\n this.removeMouseUp = (0, _consolidatedEvents.addEventListener)(document, 'mouseup', this.onMouseUp, { capture: useCapture });\n }\n }\n\n return onMouseDown;\n }()\n\n // Use mousedown/mouseup to enforce that clicks remain outside the root's\n // descendant tree, even when dragged. This should also get triggered on\n // touch devices.\n\n }, {\n key: 'onMouseUp',\n value: function () {\n function onMouseUp(e) {\n var onOutsideClick = this.props.onOutsideClick;\n\n\n var isDescendantOfRoot = this.childNode && this.childNode.contains(e.target);\n if (this.removeMouseUp) this.removeMouseUp();\n this.removeMouseUp = null;\n\n if (!isDescendantOfRoot) {\n onOutsideClick(e);\n }\n }\n\n return onMouseUp;\n }()\n }, {\n key: 'setChildNodeRef',\n value: function () {\n function setChildNodeRef(ref) {\n this.childNode = ref;\n }\n\n return setChildNodeRef;\n }()\n }, {\n key: 'addMouseDownEventListener',\n value: function () {\n function addMouseDownEventListener(useCapture) {\n this.removeMouseDown = (0, _consolidatedEvents.addEventListener)(document, 'mousedown', this.onMouseDown, { capture: useCapture });\n }\n\n return addMouseDownEventListener;\n }()\n }, {\n key: 'removeEventListeners',\n value: function () {\n function removeEventListeners() {\n if (this.removeMouseDown) this.removeMouseDown();\n if (this.removeMouseUp) this.removeMouseUp();\n }\n\n return removeEventListeners;\n }()\n }, {\n key: 'render',\n value: function () {\n function render() {\n var _props2 = this.props,\n children = _props2.children,\n display = _props2.display;\n\n\n return _react2['default'].createElement(\n 'div',\n {\n ref: this.setChildNodeRef,\n style: display !== DISPLAY.BLOCK && (0, _object2['default'])(DISPLAY).includes(display) ? { display: display } : undefined\n },\n children\n );\n }\n\n return render;\n }()\n }]);\n\n return OutsideClickHandler;\n}(_react2['default'].Component);\n\nexports['default'] = OutsideClickHandler;\n\n\nOutsideClickHandler.propTypes = propTypes;\nOutsideClickHandler.defaultProps = defaultProps;","// eslint-disable-next-line import/no-unresolved\nmodule.exports = require('./build/OutsideClickHandler');\n","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// This file is a fallback for a consumer who is not yet on React 16\n// as createPortal was introduced in React 16\n\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\n\nvar Portal = function (_React$Component) {\n _inherits(Portal, _React$Component);\n\n function Portal() {\n _classCallCheck(this, Portal);\n\n return _possibleConstructorReturn(this, (Portal.__proto__ || Object.getPrototypeOf(Portal)).apply(this, arguments));\n }\n\n _createClass(Portal, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.renderPortal();\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(props) {\n this.renderPortal();\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n ReactDOM.unmountComponentAtNode(this.defaultNode || this.props.node);\n if (this.defaultNode) {\n document.body.removeChild(this.defaultNode);\n }\n this.defaultNode = null;\n this.portal = null;\n }\n }, {\n key: 'renderPortal',\n value: function renderPortal(props) {\n if (!this.props.node && !this.defaultNode) {\n this.defaultNode = document.createElement('div');\n document.body.appendChild(this.defaultNode);\n }\n\n var children = this.props.children;\n // https://gist.github.com/jimfb/d99e0678e9da715ccf6454961ef04d1b\n if (typeof this.props.children.type === 'function') {\n children = React.cloneElement(this.props.children);\n }\n\n this.portal = ReactDOM.unstable_renderSubtreeIntoContainer(this, children, this.props.node || this.defaultNode);\n }\n }, {\n key: 'render',\n value: function render() {\n return null;\n }\n }]);\n\n return Portal;\n}(React.Component);\n\nexport default Portal;\n\n\nPortal.propTypes = {\n children: PropTypes.node.isRequired,\n node: PropTypes.any\n};","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport { canUseDOM } from './utils';\n\nvar Portal = function (_React$Component) {\n _inherits(Portal, _React$Component);\n\n function Portal() {\n _classCallCheck(this, Portal);\n\n return _possibleConstructorReturn(this, (Portal.__proto__ || Object.getPrototypeOf(Portal)).apply(this, arguments));\n }\n\n _createClass(Portal, [{\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (this.defaultNode) {\n document.body.removeChild(this.defaultNode);\n }\n this.defaultNode = null;\n }\n }, {\n key: 'render',\n value: function render() {\n if (!canUseDOM) {\n return null;\n }\n if (!this.props.node && !this.defaultNode) {\n this.defaultNode = document.createElement('div');\n document.body.appendChild(this.defaultNode);\n }\n return ReactDOM.createPortal(this.props.children, this.props.node || this.defaultNode);\n }\n }]);\n\n return Portal;\n}(React.Component);\n\nPortal.propTypes = {\n children: PropTypes.node.isRequired,\n node: PropTypes.any\n};\n\nexport default Portal;","import ReactDOM from 'react-dom';\n\nimport Portalv4 from './Portal';\nimport LegacyPortal from './LegacyPortal';\n\nvar Portal = void 0;\n\nif (ReactDOM.createPortal) {\n Portal = Portalv4;\n} else {\n Portal = LegacyPortal;\n}\n\nexport default Portal;","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport Portal from './PortalCompat';\n\nvar KEYCODES = {\n ESCAPE: 27\n};\n\nvar PortalWithState = function (_React$Component) {\n _inherits(PortalWithState, _React$Component);\n\n function PortalWithState(props) {\n _classCallCheck(this, PortalWithState);\n\n var _this = _possibleConstructorReturn(this, (PortalWithState.__proto__ || Object.getPrototypeOf(PortalWithState)).call(this, props));\n\n _this.portalNode = null;\n _this.state = { active: !!props.defaultOpen };\n _this.openPortal = _this.openPortal.bind(_this);\n _this.closePortal = _this.closePortal.bind(_this);\n _this.wrapWithPortal = _this.wrapWithPortal.bind(_this);\n _this.handleOutsideMouseClick = _this.handleOutsideMouseClick.bind(_this);\n _this.handleKeydown = _this.handleKeydown.bind(_this);\n return _this;\n }\n\n _createClass(PortalWithState, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (this.props.closeOnEsc) {\n document.addEventListener('keydown', this.handleKeydown);\n }\n if (this.props.closeOnOutsideClick) {\n document.addEventListener('click', this.handleOutsideMouseClick);\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (this.props.closeOnEsc) {\n document.removeEventListener('keydown', this.handleKeydown);\n }\n if (this.props.closeOnOutsideClick) {\n document.removeEventListener('click', this.handleOutsideMouseClick);\n }\n }\n }, {\n key: 'openPortal',\n value: function openPortal(e) {\n if (this.state.active) {\n return;\n }\n if (e && e.nativeEvent) {\n e.nativeEvent.stopImmediatePropagation();\n }\n this.setState({ active: true }, this.props.onOpen);\n }\n }, {\n key: 'closePortal',\n value: function closePortal() {\n if (!this.state.active) {\n return;\n }\n this.setState({ active: false }, this.props.onClose);\n }\n }, {\n key: 'wrapWithPortal',\n value: function wrapWithPortal(children) {\n var _this2 = this;\n\n if (!this.state.active) {\n return null;\n }\n return React.createElement(\n Portal,\n {\n node: this.props.node,\n key: 'react-portal',\n ref: function ref(portalNode) {\n return _this2.portalNode = portalNode;\n }\n },\n children\n );\n }\n }, {\n key: 'handleOutsideMouseClick',\n value: function handleOutsideMouseClick(e) {\n if (!this.state.active) {\n return;\n }\n var root = this.portalNode.props.node || this.portalNode.defaultNode;\n if (!root || root.contains(e.target) || e.button && e.button !== 0) {\n return;\n }\n this.closePortal();\n }\n }, {\n key: 'handleKeydown',\n value: function handleKeydown(e) {\n if (e.keyCode === KEYCODES.ESCAPE && this.state.active) {\n this.closePortal();\n }\n }\n }, {\n key: 'render',\n value: function render() {\n return this.props.children({\n openPortal: this.openPortal,\n closePortal: this.closePortal,\n portal: this.wrapWithPortal,\n isOpen: this.state.active\n });\n }\n }]);\n\n return PortalWithState;\n}(React.Component);\n\nPortalWithState.propTypes = {\n children: PropTypes.func.isRequired,\n defaultOpen: PropTypes.bool,\n node: PropTypes.any,\n closeOnEsc: PropTypes.bool,\n closeOnOutsideClick: PropTypes.bool,\n onOpen: PropTypes.func,\n onClose: PropTypes.func\n};\n\nPortalWithState.defaultProps = {\n onOpen: function onOpen() {},\n onClose: function onClose() {}\n};\n\nexport default PortalWithState;","import Portal from './PortalCompat';\nimport PortalWithState from './PortalWithState';\n\nexport { Portal, PortalWithState };","export var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);","Object.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar CHANNEL = exports.CHANNEL = '__direction__';\n\nvar DIRECTIONS = exports.DIRECTIONS = {\n LTR: 'ltr',\n RTL: 'rtl'\n};","Object.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nexports['default'] = _propTypes2['default'].shape({\n getState: _propTypes2['default'].func,\n setState: _propTypes2['default'].func,\n subscribe: _propTypes2['default'].func\n});","Object.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _arrayPrototype = require('array.prototype.flat');\n\nvar _arrayPrototype2 = _interopRequireDefault(_arrayPrototype);\n\nvar _globalCache = require('global-cache');\n\nvar _globalCache2 = _interopRequireDefault(_globalCache);\n\nvar _constants = require('./utils/constants');\n\nvar _getClassName = require('./utils/getClassName');\n\nvar _getClassName2 = _interopRequireDefault(_getClassName);\n\nvar _separateStyles2 = require('./utils/separateStyles');\n\nvar _separateStyles3 = _interopRequireDefault(_separateStyles2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n/**\n * Function required as part of the react-with-styles interface. Parses the styles provided by\n * react-with-styles to produce class names based on the style name and optionally the namespace if\n * available.\n *\n * stylesObject {Object} The styles object passed to withStyles.\n *\n * Return an object mapping style names to class names.\n */\nfunction create(stylesObject) {\n var stylesToClasses = {};\n var styleNames = Object.keys(stylesObject);\n var sharedState = _globalCache2['default'].get(_constants.GLOBAL_CACHE_KEY) || {};\n var _sharedState$namespac = sharedState.namespace,\n namespace = _sharedState$namespac === undefined ? '' : _sharedState$namespac;\n\n styleNames.forEach(function (styleName) {\n var className = (0, _getClassName2['default'])(namespace, styleName);\n stylesToClasses[styleName] = className;\n });\n return stylesToClasses;\n}\n\n/**\n * Process styles to be consumed by a component.\n *\n * stylesArray {Array} Array of the following: values returned by create, plain JavaScript objects\n * representing inline styles, or arrays thereof.\n *\n * Return an object with optional className and style properties to be spread on a component.\n */\nfunction resolve(stylesArray) {\n var flattenedStyles = (0, _arrayPrototype2['default'])(stylesArray, Infinity);\n\n var _separateStyles = (0, _separateStyles3['default'])(flattenedStyles),\n classNames = _separateStyles.classNames,\n hasInlineStyles = _separateStyles.hasInlineStyles,\n inlineStyles = _separateStyles.inlineStyles;\n\n var specificClassNames = classNames.map(function (name, index) {\n return String(name) + ' ' + String(name) + '_' + String(index + 1);\n });\n var className = specificClassNames.join(' ');\n\n var result = { className: className };\n if (hasInlineStyles) result.style = inlineStyles;\n return result;\n}\n\nexports['default'] = { create: create, resolve: resolve };","Object.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar GLOBAL_CACHE_KEY = 'reactWithStylesInterfaceCSS';\nvar MAX_SPECIFICITY = 20;\n\nexports.GLOBAL_CACHE_KEY = GLOBAL_CACHE_KEY;\nexports.MAX_SPECIFICITY = MAX_SPECIFICITY;","Object.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports['default'] = getClassName;\n/**\n * Construct a class name.\n *\n * namespace {String} Used to construct unique class names.\n * styleName {String} Name identifying the specific style.\n *\n * Return the class name.\n */\nfunction getClassName(namespace, styleName) {\n var namespaceSegment = namespace.length > 0 ? String(namespace) + '__' : '';\n return '' + namespaceSegment + String(styleName);\n}","Object.defineProperty(exports, \"__esModule\", {\n value: true\n});\n// This function takes an array of styles and separates them into styles that\n// are handled by Aphrodite and inline styles.\nfunction separateStyles(stylesArray) {\n var classNames = [];\n\n // Since determining if an Object is empty requires collecting all of its\n // keys, and we want the best performance in this code because we are in the\n // render path, we are going to do a little bookkeeping ourselves.\n var hasInlineStyles = false;\n var inlineStyles = {};\n\n // This is run on potentially every node in the tree when rendering, where\n // performance is critical. Normally we would prefer using `forEach`, but\n // old-fashioned for loops are faster so that's what we have chosen here.\n for (var i = 0; i < stylesArray.length; i++) {\n // eslint-disable-line no-plusplus\n var style = stylesArray[i];\n\n // If this style is falsy, we just want to disregard it. This allows for\n // syntax like:\n //\n // css(isFoo && styles.foo)\n if (style) {\n if (typeof style === 'string') {\n classNames.push(style);\n } else {\n Object.assign(inlineStyles, style);\n hasInlineStyles = true;\n }\n }\n }\n\n return {\n classNames: classNames,\n hasInlineStyles: hasInlineStyles,\n inlineStyles: inlineStyles\n };\n}\n\nexports['default'] = separateStyles;","// eslint-disable-next-line import/no-unresolved\nmodule.exports = require('./dist/index.js').default;\n","Object.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar styleInterface = void 0;\nvar styleTheme = void 0;\n\nfunction registerTheme(theme) {\n styleTheme = theme;\n}\n\nfunction registerInterface(interfaceToRegister) {\n styleInterface = interfaceToRegister;\n}\n\nfunction create(makeFromTheme, createWithDirection) {\n var styles = createWithDirection(makeFromTheme(styleTheme));\n return function () {\n return styles;\n };\n}\n\nfunction createLTR(makeFromTheme) {\n return create(makeFromTheme, styleInterface.createLTR || styleInterface.create);\n}\n\nfunction createRTL(makeFromTheme) {\n return create(makeFromTheme, styleInterface.createRTL || styleInterface.create);\n}\n\nfunction get() {\n return styleTheme;\n}\n\nfunction resolve() {\n if (process.env.NODE_ENV !== 'production' && typeof performance !== 'undefined' && performance.mark !== undefined) {\n performance.mark('react-with-styles.resolve.start');\n }\n\n for (var _len = arguments.length, styles = Array(_len), _key = 0; _key < _len; _key++) {\n styles[_key] = arguments[_key];\n }\n\n var result = styleInterface.resolve(styles);\n\n if (process.env.NODE_ENV !== 'production' && typeof performance !== 'undefined' && performance.mark !== undefined) {\n performance.mark('react-with-styles.resolve.end');\n\n performance.measure('\\uD83D\\uDC69\\u200D\\uD83C\\uDFA8 [resolve]', 'react-with-styles.resolve.start', 'react-with-styles.resolve.end');\n }\n\n return result;\n}\n\nfunction resolveLTR() {\n for (var _len2 = arguments.length, styles = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n styles[_key2] = arguments[_key2];\n }\n\n if (styleInterface.resolveLTR) {\n return styleInterface.resolveLTR(styles);\n }\n\n return resolve(styles);\n}\n\nfunction resolveRTL() {\n for (var _len3 = arguments.length, styles = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n styles[_key3] = arguments[_key3];\n }\n\n if (styleInterface.resolveRTL) {\n return styleInterface.resolveRTL(styles);\n }\n\n return resolve(styles);\n}\n\nfunction flush() {\n if (styleInterface.flush) {\n styleInterface.flush();\n }\n}\n\nexports['default'] = {\n registerTheme: registerTheme,\n registerInterface: registerInterface,\n create: createLTR,\n createLTR: createLTR,\n createRTL: createRTL,\n get: get,\n resolve: resolveLTR,\n resolveLTR: resolveLTR,\n resolveRTL: resolveRTL,\n flush: flush\n};","Object.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.withStylesPropTypes = exports.css = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nexports.withStyles = withStyles;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _hoistNonReactStatics = require('hoist-non-react-statics');\n\nvar _hoistNonReactStatics2 = _interopRequireDefault(_hoistNonReactStatics);\n\nvar _deepmerge = require('deepmerge');\n\nvar _deepmerge2 = _interopRequireDefault(_deepmerge);\n\nvar _constants = require('react-with-direction/dist/constants');\n\nvar _brcast = require('react-with-direction/dist/proptypes/brcast');\n\nvar _brcast2 = _interopRequireDefault(_brcast);\n\nvar _ThemedStyleSheet = require('./ThemedStyleSheet');\n\nvar _ThemedStyleSheet2 = _interopRequireDefault(_ThemedStyleSheet);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// Add some named exports to assist in upgrading and for convenience\nvar css = exports.css = _ThemedStyleSheet2['default'].resolveLTR;\nvar withStylesPropTypes = exports.withStylesPropTypes = {\n styles: _propTypes2['default'].object.isRequired, // eslint-disable-line react/forbid-prop-types\n theme: _propTypes2['default'].object.isRequired, // eslint-disable-line react/forbid-prop-types\n css: _propTypes2['default'].func.isRequired\n};\n\nvar EMPTY_STYLES = {};\nvar EMPTY_STYLES_FN = function EMPTY_STYLES_FN() {\n return EMPTY_STYLES;\n};\n\nfunction baseClass(pureComponent) {\n if (pureComponent) {\n if (!_react2['default'].PureComponent) {\n throw new ReferenceError('withStyles() pureComponent option requires React 15.3.0 or later');\n }\n\n return _react2['default'].PureComponent;\n }\n\n return _react2['default'].Component;\n}\n\nvar contextTypes = _defineProperty({}, _constants.CHANNEL, _brcast2['default']);\n\nvar defaultDirection = _constants.DIRECTIONS.LTR;\n\nfunction withStyles(styleFn) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$stylesPropName = _ref.stylesPropName,\n stylesPropName = _ref$stylesPropName === undefined ? 'styles' : _ref$stylesPropName,\n _ref$themePropName = _ref.themePropName,\n themePropName = _ref$themePropName === undefined ? 'theme' : _ref$themePropName,\n _ref$cssPropName = _ref.cssPropName,\n cssPropName = _ref$cssPropName === undefined ? 'css' : _ref$cssPropName,\n _ref$flushBefore = _ref.flushBefore,\n flushBefore = _ref$flushBefore === undefined ? false : _ref$flushBefore,\n _ref$pureComponent = _ref.pureComponent,\n pureComponent = _ref$pureComponent === undefined ? false : _ref$pureComponent;\n\n var styleDefLTR = void 0;\n var styleDefRTL = void 0;\n var currentThemeLTR = void 0;\n var currentThemeRTL = void 0;\n var BaseClass = baseClass(pureComponent);\n\n function getResolveMethod(direction) {\n return direction === _constants.DIRECTIONS.LTR ? _ThemedStyleSheet2['default'].resolveLTR : _ThemedStyleSheet2['default'].resolveRTL;\n }\n\n function getCurrentTheme(direction) {\n return direction === _constants.DIRECTIONS.LTR ? currentThemeLTR : currentThemeRTL;\n }\n\n function getStyleDef(direction, wrappedComponentName) {\n var currentTheme = getCurrentTheme(direction);\n var styleDef = direction === _constants.DIRECTIONS.LTR ? styleDefLTR : styleDefRTL;\n\n var registeredTheme = _ThemedStyleSheet2['default'].get();\n\n // Return the existing styles if they've already been defined\n // and if the theme used to create them corresponds to the theme\n // registered with ThemedStyleSheet\n if (styleDef && currentTheme === registeredTheme) {\n return styleDef;\n }\n\n if (process.env.NODE_ENV !== 'production' && typeof performance !== 'undefined' && performance.mark !== undefined) {\n performance.mark('react-with-styles.createStyles.start');\n }\n\n var isRTL = direction === _constants.DIRECTIONS.RTL;\n\n if (isRTL) {\n styleDefRTL = styleFn ? _ThemedStyleSheet2['default'].createRTL(styleFn) : EMPTY_STYLES_FN;\n\n currentThemeRTL = registeredTheme;\n styleDef = styleDefRTL;\n } else {\n styleDefLTR = styleFn ? _ThemedStyleSheet2['default'].createLTR(styleFn) : EMPTY_STYLES_FN;\n\n currentThemeLTR = registeredTheme;\n styleDef = styleDefLTR;\n }\n\n if (process.env.NODE_ENV !== 'production' && typeof performance !== 'undefined' && performance.mark !== undefined) {\n performance.mark('react-with-styles.createStyles.end');\n\n performance.measure('\\uD83D\\uDC69\\u200D\\uD83C\\uDFA8 withStyles(' + String(wrappedComponentName) + ') [create styles]', 'react-with-styles.createStyles.start', 'react-with-styles.createStyles.end');\n }\n\n return styleDef;\n }\n\n function getState(direction, wrappedComponentName) {\n return {\n resolveMethod: getResolveMethod(direction),\n styleDef: getStyleDef(direction, wrappedComponentName)\n };\n }\n\n return function () {\n function withStylesHOC(WrappedComponent) {\n var wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\n\n // NOTE: Use a class here so components are ref-able if need be:\n // eslint-disable-next-line react/prefer-stateless-function\n\n var WithStyles = function (_BaseClass) {\n _inherits(WithStyles, _BaseClass);\n\n function WithStyles(props, context) {\n _classCallCheck(this, WithStyles);\n\n var _this = _possibleConstructorReturn(this, (WithStyles.__proto__ || Object.getPrototypeOf(WithStyles)).call(this, props, context));\n\n var direction = _this.context[_constants.CHANNEL] ? _this.context[_constants.CHANNEL].getState() : defaultDirection;\n\n _this.state = getState(direction, wrappedComponentName);\n return _this;\n }\n\n _createClass(WithStyles, [{\n key: 'componentDidMount',\n value: function () {\n function componentDidMount() {\n var _this2 = this;\n\n if (this.context[_constants.CHANNEL]) {\n // subscribe to future direction changes\n this.channelUnsubscribe = this.context[_constants.CHANNEL].subscribe(function (direction) {\n _this2.setState(getState(direction, wrappedComponentName));\n });\n }\n }\n\n return componentDidMount;\n }()\n }, {\n key: 'componentWillUnmount',\n value: function () {\n function componentWillUnmount() {\n if (this.channelUnsubscribe) {\n this.channelUnsubscribe();\n }\n }\n\n return componentWillUnmount;\n }()\n }, {\n key: 'render',\n value: function () {\n function render() {\n var _ref2;\n\n // As some components will depend on previous styles in\n // the component tree, we provide the option of flushing the\n // buffered styles (i.e. to a style tag) **before** the rendering\n // cycle begins.\n //\n // The interfaces provide the optional \"flush\" method which\n // is run in turn by ThemedStyleSheet.flush.\n if (flushBefore) {\n _ThemedStyleSheet2['default'].flush();\n }\n\n var _state = this.state,\n resolveMethod = _state.resolveMethod,\n styleDef = _state.styleDef;\n\n\n return _react2['default'].createElement(WrappedComponent, _extends({}, this.props, (_ref2 = {}, _defineProperty(_ref2, themePropName, _ThemedStyleSheet2['default'].get()), _defineProperty(_ref2, stylesPropName, styleDef()), _defineProperty(_ref2, cssPropName, resolveMethod), _ref2)));\n }\n\n return render;\n }()\n }]);\n\n return WithStyles;\n }(BaseClass);\n\n WithStyles.WrappedComponent = WrappedComponent;\n WithStyles.displayName = 'withStyles(' + String(wrappedComponentName) + ')';\n WithStyles.contextTypes = contextTypes;\n if (WrappedComponent.propTypes) {\n WithStyles.propTypes = (0, _deepmerge2['default'])({}, WrappedComponent.propTypes);\n delete WithStyles.propTypes[stylesPropName];\n delete WithStyles.propTypes[themePropName];\n delete WithStyles.propTypes[cssPropName];\n }\n if (WrappedComponent.defaultProps) {\n WithStyles.defaultProps = (0, _deepmerge2['default'])({}, WrappedComponent.defaultProps);\n }\n\n return (0, _hoistNonReactStatics2['default'])(WithStyles, WrappedComponent);\n }\n\n return withStylesHOC;\n }();\n}","// TinyColor v1.4.1\n// https://github.com/bgrins/TinyColor\n// Brian Grinstead, MIT License\n\n(function(Math) {\n\nvar trimLeft = /^\\s+/,\n trimRight = /\\s+$/,\n tinyCounter = 0,\n mathRound = Math.round,\n mathMin = Math.min,\n mathMax = Math.max,\n mathRandom = Math.random;\n\nfunction tinycolor (color, opts) {\n\n color = (color) ? color : '';\n opts = opts || { };\n\n // If input is already a tinycolor, return itself\n if (color instanceof tinycolor) {\n return color;\n }\n // If we are called as a function, call using new instead\n if (!(this instanceof tinycolor)) {\n return new tinycolor(color, opts);\n }\n\n var rgb = inputToRGB(color);\n this._originalInput = color,\n this._r = rgb.r,\n this._g = rgb.g,\n this._b = rgb.b,\n this._a = rgb.a,\n this._roundA = mathRound(100*this._a) / 100,\n this._format = opts.format || rgb.format;\n this._gradientType = opts.gradientType;\n\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this._r < 1) { this._r = mathRound(this._r); }\n if (this._g < 1) { this._g = mathRound(this._g); }\n if (this._b < 1) { this._b = mathRound(this._b); }\n\n this._ok = rgb.ok;\n this._tc_id = tinyCounter++;\n}\n\ntinycolor.prototype = {\n isDark: function() {\n return this.getBrightness() < 128;\n },\n isLight: function() {\n return !this.isDark();\n },\n isValid: function() {\n return this._ok;\n },\n getOriginalInput: function() {\n return this._originalInput;\n },\n getFormat: function() {\n return this._format;\n },\n getAlpha: function() {\n return this._a;\n },\n getBrightness: function() {\n //http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n },\n getLuminance: function() {\n //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var RsRGB, GsRGB, BsRGB, R, G, B;\n RsRGB = rgb.r/255;\n GsRGB = rgb.g/255;\n BsRGB = rgb.b/255;\n\n if (RsRGB <= 0.03928) {R = RsRGB / 12.92;} else {R = Math.pow(((RsRGB + 0.055) / 1.055), 2.4);}\n if (GsRGB <= 0.03928) {G = GsRGB / 12.92;} else {G = Math.pow(((GsRGB + 0.055) / 1.055), 2.4);}\n if (BsRGB <= 0.03928) {B = BsRGB / 12.92;} else {B = Math.pow(((BsRGB + 0.055) / 1.055), 2.4);}\n return (0.2126 * R) + (0.7152 * G) + (0.0722 * B);\n },\n setAlpha: function(value) {\n this._a = boundAlpha(value);\n this._roundA = mathRound(100*this._a) / 100;\n return this;\n },\n toHsv: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a };\n },\n toHsvString: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n var h = mathRound(hsv.h * 360), s = mathRound(hsv.s * 100), v = mathRound(hsv.v * 100);\n return (this._a == 1) ?\n \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\" :\n \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \"+ this._roundA + \")\";\n },\n toHsl: function() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this._a };\n },\n toHslString: function() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n var h = mathRound(hsl.h * 360), s = mathRound(hsl.s * 100), l = mathRound(hsl.l * 100);\n return (this._a == 1) ?\n \"hsl(\" + h + \", \" + s + \"%, \" + l + \"%)\" :\n \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \"+ this._roundA + \")\";\n },\n toHex: function(allow3Char) {\n return rgbToHex(this._r, this._g, this._b, allow3Char);\n },\n toHexString: function(allow3Char) {\n return '#' + this.toHex(allow3Char);\n },\n toHex8: function(allow4Char) {\n return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n },\n toHex8String: function(allow4Char) {\n return '#' + this.toHex8(allow4Char);\n },\n toRgb: function() {\n return { r: mathRound(this._r), g: mathRound(this._g), b: mathRound(this._b), a: this._a };\n },\n toRgbString: function() {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \")\" :\n \"rgba(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \", \" + this._roundA + \")\";\n },\n toPercentageRgb: function() {\n return { r: mathRound(bound01(this._r, 255) * 100) + \"%\", g: mathRound(bound01(this._g, 255) * 100) + \"%\", b: mathRound(bound01(this._b, 255) * 100) + \"%\", a: this._a };\n },\n toPercentageRgbString: function() {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%)\" :\n \"rgba(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%, \" + this._roundA + \")\";\n },\n toName: function() {\n if (this._a === 0) {\n return \"transparent\";\n }\n\n if (this._a < 1) {\n return false;\n }\n\n return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n },\n toFilter: function(secondColor) {\n var hex8String = '#' + rgbaToArgbHex(this._r, this._g, this._b, this._a);\n var secondHex8String = hex8String;\n var gradientType = this._gradientType ? \"GradientType = 1, \" : \"\";\n\n if (secondColor) {\n var s = tinycolor(secondColor);\n secondHex8String = '#' + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n }\n\n return \"progid:DXImageTransform.Microsoft.gradient(\"+gradientType+\"startColorstr=\"+hex8String+\",endColorstr=\"+secondHex8String+\")\";\n },\n toString: function(format) {\n var formatSet = !!format;\n format = format || this._format;\n\n var formattedString = false;\n var hasAlpha = this._a < 1 && this._a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format === \"hex\" || format === \"hex6\" || format === \"hex3\" || format === \"hex4\" || format === \"hex8\" || format === \"name\");\n\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === \"name\" && this._a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === \"rgb\") {\n formattedString = this.toRgbString();\n }\n if (format === \"prgb\") {\n formattedString = this.toPercentageRgbString();\n }\n if (format === \"hex\" || format === \"hex6\") {\n formattedString = this.toHexString();\n }\n if (format === \"hex3\") {\n formattedString = this.toHexString(true);\n }\n if (format === \"hex4\") {\n formattedString = this.toHex8String(true);\n }\n if (format === \"hex8\") {\n formattedString = this.toHex8String();\n }\n if (format === \"name\") {\n formattedString = this.toName();\n }\n if (format === \"hsl\") {\n formattedString = this.toHslString();\n }\n if (format === \"hsv\") {\n formattedString = this.toHsvString();\n }\n\n return formattedString || this.toHexString();\n },\n clone: function() {\n return tinycolor(this.toString());\n },\n\n _applyModification: function(fn, args) {\n var color = fn.apply(null, [this].concat([].slice.call(args)));\n this._r = color._r;\n this._g = color._g;\n this._b = color._b;\n this.setAlpha(color._a);\n return this;\n },\n lighten: function() {\n return this._applyModification(lighten, arguments);\n },\n brighten: function() {\n return this._applyModification(brighten, arguments);\n },\n darken: function() {\n return this._applyModification(darken, arguments);\n },\n desaturate: function() {\n return this._applyModification(desaturate, arguments);\n },\n saturate: function() {\n return this._applyModification(saturate, arguments);\n },\n greyscale: function() {\n return this._applyModification(greyscale, arguments);\n },\n spin: function() {\n return this._applyModification(spin, arguments);\n },\n\n _applyCombination: function(fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function() {\n return this._applyCombination(analogous, arguments);\n },\n complement: function() {\n return this._applyCombination(complement, arguments);\n },\n monochromatic: function() {\n return this._applyCombination(monochromatic, arguments);\n },\n splitcomplement: function() {\n return this._applyCombination(splitcomplement, arguments);\n },\n triad: function() {\n return this._applyCombination(triad, arguments);\n },\n tetrad: function() {\n return this._applyCombination(tetrad, arguments);\n }\n};\n\n// If input is an object, force 1 into \"1.0\" to handle ratios properly\n// String input requires \"1.0\" as input, so 1 will be treated as 1\ntinycolor.fromRatio = function(color, opts) {\n if (typeof color == \"object\") {\n var newColor = {};\n for (var i in color) {\n if (color.hasOwnProperty(i)) {\n if (i === \"a\") {\n newColor[i] = color[i];\n }\n else {\n newColor[i] = convertToPercentage(color[i]);\n }\n }\n }\n color = newColor;\n }\n\n return tinycolor(color, opts);\n};\n\n// Given a string or object, convert that input to RGB\n// Possible string inputs:\n//\n// \"red\"\n// \"#f00\" or \"f00\"\n// \"#ff0000\" or \"ff0000\"\n// \"#ff000000\" or \"ff000000\"\n// \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n// \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n// \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n// \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n// \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n// \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n// \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n//\nfunction inputToRGB(color) {\n\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n\n if (typeof color == \"string\") {\n color = stringInputToObject(color);\n }\n\n if (typeof color == \"object\") {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === \"%\" ? \"prgb\" : \"rgb\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = \"hsv\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = \"hsl\";\n }\n\n if (color.hasOwnProperty(\"a\")) {\n a = color.a;\n }\n }\n\n a = boundAlpha(a);\n\n return {\n ok: ok,\n format: color.format || format,\n r: mathMin(255, mathMax(rgb.r, 0)),\n g: mathMin(255, mathMax(rgb.g, 0)),\n b: mathMin(255, mathMax(rgb.b, 0)),\n a: a\n };\n}\n\n\n// Conversion Functions\n// --------------------\n\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// <http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript>\n\n// `rgbToRgb`\n// Handle bounds / percentage checking to conform to CSS color spec\n// <http://www.w3.org/TR/css3-color/>\n// *Assumes:* r, g, b in [0, 255] or [0, 1]\n// *Returns:* { r, g, b } in [0, 255]\nfunction rgbToRgb(r, g, b){\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255\n };\n}\n\n// `rgbToHsl`\n// Converts an RGB color value to HSL.\n// *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n// *Returns:* { h, s, l } in [0,1]\nfunction rgbToHsl(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, l = (max + min) / 2;\n\n if(max == min) {\n h = s = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n\n h /= 6;\n }\n\n return { h: h, s: s, l: l };\n}\n\n// `hslToRgb`\n// Converts an HSL color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hslToRgb(h, s, l) {\n var r, g, b;\n\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n\n function hue2rgb(p, q, t) {\n if(t < 0) t += 1;\n if(t > 1) t -= 1;\n if(t < 1/6) return p + (q - p) * 6 * t;\n if(t < 1/2) return q;\n if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;\n return p;\n }\n\n if(s === 0) {\n r = g = b = l; // achromatic\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1/3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1/3);\n }\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHsv`\n// Converts an RGB color value to HSV\n// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n// *Returns:* { h, s, v } in [0,1]\nfunction rgbToHsv(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, v = max;\n\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n\n if(max == min) {\n h = 0; // achromatic\n }\n else {\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n\n// `hsvToRgb`\n// Converts an HSV color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\n function hsvToRgb(h, s, v) {\n\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n\n var i = Math.floor(h),\n f = h - i,\n p = v * (1 - s),\n q = v * (1 - f * s),\n t = v * (1 - (1 - f) * s),\n mod = i % 6,\n r = [v, q, p, p, t, v][mod],\n g = [t, v, v, q, p, p][mod],\n b = [p, p, t, v, v, q][mod];\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHex`\n// Converts an RGB color to hex\n// Assumes r, g, and b are contained in the set [0, 255]\n// Returns a 3 or 6 character hex\nfunction rgbToHex(r, g, b, allow3Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n // Return a 3 character hex if possible\n if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToHex`\n// Converts an RGBA color plus alpha transparency to hex\n// Assumes r, g, b are contained in the set [0, 255] and\n// a in [0, 1]. Returns a 4 or 8 character rgba hex\nfunction rgbaToHex(r, g, b, a, allow4Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16)),\n pad2(convertDecimalToHex(a))\n ];\n\n // Return a 4 character hex if possible\n if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToArgbHex`\n// Converts an RGBA color to an ARGB Hex8 string\n// Rarely used, but required for \"toFilter()\"\nfunction rgbaToArgbHex(r, g, b, a) {\n\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n return hex.join(\"\");\n}\n\n// `equals`\n// Can be called with any tinycolor input\ntinycolor.equals = function (color1, color2) {\n if (!color1 || !color2) { return false; }\n return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n};\n\ntinycolor.random = function() {\n return tinycolor.fromRatio({\n r: mathRandom(),\n g: mathRandom(),\n b: mathRandom()\n });\n};\n\n\n// Modification Functions\n// ----------------------\n// Thanks to less.js for some of the basics here\n// <https://github.com/cloudhead/less.js/blob/master/lib/less/functions.js>\n\nfunction desaturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction saturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction greyscale(color) {\n return tinycolor(color).desaturate(100);\n}\n\nfunction lighten (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\nfunction brighten(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var rgb = tinycolor(color).toRgb();\n rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * - (amount / 100))));\n rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * - (amount / 100))));\n rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * - (amount / 100))));\n return tinycolor(rgb);\n}\n\nfunction darken (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\n// Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n// Values outside of this range will be wrapped into this range.\nfunction spin(color, amount) {\n var hsl = tinycolor(color).toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return tinycolor(hsl);\n}\n\n// Combination Functions\n// ---------------------\n// Thanks to jQuery xColor for some of the ideas behind these\n// <https://github.com/infusion/jQuery-xcolor/blob/master/jquery.xcolor.js>\n\nfunction complement(color) {\n var hsl = tinycolor(color).toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return tinycolor(hsl);\n}\n\nfunction triad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction tetrad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction splitcomplement(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l}),\n tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l})\n ];\n}\n\nfunction analogous(color, results, slices) {\n results = results || 6;\n slices = slices || 30;\n\n var hsl = tinycolor(color).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color)];\n\n for (hsl.h = ((hsl.h - (part * results >> 1)) + 720) % 360; --results; ) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(tinycolor(hsl));\n }\n return ret;\n}\n\nfunction monochromatic(color, results) {\n results = results || 6;\n var hsv = tinycolor(color).toHsv();\n var h = hsv.h, s = hsv.s, v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n\n while (results--) {\n ret.push(tinycolor({ h: h, s: s, v: v}));\n v = (v + modification) % 1;\n }\n\n return ret;\n}\n\n// Utility Functions\n// ---------------------\n\ntinycolor.mix = function(color1, color2, amount) {\n amount = (amount === 0) ? 0 : (amount || 50);\n\n var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).toRgb();\n\n var p = amount / 100;\n\n var rgba = {\n r: ((rgb2.r - rgb1.r) * p) + rgb1.r,\n g: ((rgb2.g - rgb1.g) * p) + rgb1.g,\n b: ((rgb2.b - rgb1.b) * p) + rgb1.b,\n a: ((rgb2.a - rgb1.a) * p) + rgb1.a\n };\n\n return tinycolor(rgba);\n};\n\n\n// Readability Functions\n// ---------------------\n// <http://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef (WCAG Version 2)\n\n// `contrast`\n// Analyze the 2 colors and returns the color contrast defined by (WCAG Version 2)\ntinycolor.readability = function(color1, color2) {\n var c1 = tinycolor(color1);\n var c2 = tinycolor(color2);\n return (Math.max(c1.getLuminance(),c2.getLuminance())+0.05) / (Math.min(c1.getLuminance(),c2.getLuminance())+0.05);\n};\n\n// `isReadable`\n// Ensure that foreground and background color combinations meet WCAG2 guidelines.\n// The third argument is an optional Object.\n// the 'level' property states 'AA' or 'AAA' - if missing or invalid, it defaults to 'AA';\n// the 'size' property states 'large' or 'small' - if missing or invalid, it defaults to 'small'.\n// If the entire object is absent, isReadable defaults to {level:\"AA\",size:\"small\"}.\n\n// *Example*\n// tinycolor.isReadable(\"#000\", \"#111\") => false\n// tinycolor.isReadable(\"#000\", \"#111\",{level:\"AA\",size:\"large\"}) => false\ntinycolor.isReadable = function(color1, color2, wcag2) {\n var readability = tinycolor.readability(color1, color2);\n var wcag2Parms, out;\n\n out = false;\n\n wcag2Parms = validateWCAG2Parms(wcag2);\n switch (wcag2Parms.level + wcag2Parms.size) {\n case \"AAsmall\":\n case \"AAAlarge\":\n out = readability >= 4.5;\n break;\n case \"AAlarge\":\n out = readability >= 3;\n break;\n case \"AAAsmall\":\n out = readability >= 7;\n break;\n }\n return out;\n\n};\n\n// `mostReadable`\n// Given a base color and a list of possible foreground or background\n// colors for that base, returns the most readable color.\n// Optionally returns Black or White if the most readable color is unreadable.\n// *Example*\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:false}).toHexString(); // \"#112255\"\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:true}).toHexString(); // \"#ffffff\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"large\"}).toHexString(); // \"#faf3f3\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"small\"}).toHexString(); // \"#ffffff\"\ntinycolor.mostReadable = function(baseColor, colorList, args) {\n var bestColor = null;\n var bestScore = 0;\n var readability;\n var includeFallbackColors, level, size ;\n args = args || {};\n includeFallbackColors = args.includeFallbackColors ;\n level = args.level;\n size = args.size;\n\n for (var i= 0; i < colorList.length ; i++) {\n readability = tinycolor.readability(baseColor, colorList[i]);\n if (readability > bestScore) {\n bestScore = readability;\n bestColor = tinycolor(colorList[i]);\n }\n }\n\n if (tinycolor.isReadable(baseColor, bestColor, {\"level\":level,\"size\":size}) || !includeFallbackColors) {\n return bestColor;\n }\n else {\n args.includeFallbackColors=false;\n return tinycolor.mostReadable(baseColor,[\"#fff\", \"#000\"],args);\n }\n};\n\n\n// Big List of Colors\n// ------------------\n// <http://www.w3.org/TR/css3-color/#svg-color>\nvar names = tinycolor.names = {\n aliceblue: \"f0f8ff\",\n antiquewhite: \"faebd7\",\n aqua: \"0ff\",\n aquamarine: \"7fffd4\",\n azure: \"f0ffff\",\n beige: \"f5f5dc\",\n bisque: \"ffe4c4\",\n black: \"000\",\n blanchedalmond: \"ffebcd\",\n blue: \"00f\",\n blueviolet: \"8a2be2\",\n brown: \"a52a2a\",\n burlywood: \"deb887\",\n burntsienna: \"ea7e5d\",\n cadetblue: \"5f9ea0\",\n chartreuse: \"7fff00\",\n chocolate: \"d2691e\",\n coral: \"ff7f50\",\n cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\",\n crimson: \"dc143c\",\n cyan: \"0ff\",\n darkblue: \"00008b\",\n darkcyan: \"008b8b\",\n darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\",\n darkgreen: \"006400\",\n darkgrey: \"a9a9a9\",\n darkkhaki: \"bdb76b\",\n darkmagenta: \"8b008b\",\n darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\",\n darkorchid: \"9932cc\",\n darkred: \"8b0000\",\n darksalmon: \"e9967a\",\n darkseagreen: \"8fbc8f\",\n darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\",\n darkslategrey: \"2f4f4f\",\n darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\",\n deeppink: \"ff1493\",\n deepskyblue: \"00bfff\",\n dimgray: \"696969\",\n dimgrey: \"696969\",\n dodgerblue: \"1e90ff\",\n firebrick: \"b22222\",\n floralwhite: \"fffaf0\",\n forestgreen: \"228b22\",\n fuchsia: \"f0f\",\n gainsboro: \"dcdcdc\",\n ghostwhite: \"f8f8ff\",\n gold: \"ffd700\",\n goldenrod: \"daa520\",\n gray: \"808080\",\n green: \"008000\",\n greenyellow: \"adff2f\",\n grey: \"808080\",\n honeydew: \"f0fff0\",\n hotpink: \"ff69b4\",\n indianred: \"cd5c5c\",\n indigo: \"4b0082\",\n ivory: \"fffff0\",\n khaki: \"f0e68c\",\n lavender: \"e6e6fa\",\n lavenderblush: \"fff0f5\",\n lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\",\n lightblue: \"add8e6\",\n lightcoral: \"f08080\",\n lightcyan: \"e0ffff\",\n lightgoldenrodyellow: \"fafad2\",\n lightgray: \"d3d3d3\",\n lightgreen: \"90ee90\",\n lightgrey: \"d3d3d3\",\n lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\",\n lightseagreen: \"20b2aa\",\n lightskyblue: \"87cefa\",\n lightslategray: \"789\",\n lightslategrey: \"789\",\n lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\",\n lime: \"0f0\",\n limegreen: \"32cd32\",\n linen: \"faf0e6\",\n magenta: \"f0f\",\n maroon: \"800000\",\n mediumaquamarine: \"66cdaa\",\n mediumblue: \"0000cd\",\n mediumorchid: \"ba55d3\",\n mediumpurple: \"9370db\",\n mediumseagreen: \"3cb371\",\n mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\",\n mediumturquoise: \"48d1cc\",\n mediumvioletred: \"c71585\",\n midnightblue: \"191970\",\n mintcream: \"f5fffa\",\n mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\",\n navajowhite: \"ffdead\",\n navy: \"000080\",\n oldlace: \"fdf5e6\",\n olive: \"808000\",\n olivedrab: \"6b8e23\",\n orange: \"ffa500\",\n orangered: \"ff4500\",\n orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\",\n palegreen: \"98fb98\",\n paleturquoise: \"afeeee\",\n palevioletred: \"db7093\",\n papayawhip: \"ffefd5\",\n peachpuff: \"ffdab9\",\n peru: \"cd853f\",\n pink: \"ffc0cb\",\n plum: \"dda0dd\",\n powderblue: \"b0e0e6\",\n purple: \"800080\",\n rebeccapurple: \"663399\",\n red: \"f00\",\n rosybrown: \"bc8f8f\",\n royalblue: \"4169e1\",\n saddlebrown: \"8b4513\",\n salmon: \"fa8072\",\n sandybrown: \"f4a460\",\n seagreen: \"2e8b57\",\n seashell: \"fff5ee\",\n sienna: \"a0522d\",\n silver: \"c0c0c0\",\n skyblue: \"87ceeb\",\n slateblue: \"6a5acd\",\n slategray: \"708090\",\n slategrey: \"708090\",\n snow: \"fffafa\",\n springgreen: \"00ff7f\",\n steelblue: \"4682b4\",\n tan: \"d2b48c\",\n teal: \"008080\",\n thistle: \"d8bfd8\",\n tomato: \"ff6347\",\n turquoise: \"40e0d0\",\n violet: \"ee82ee\",\n wheat: \"f5deb3\",\n white: \"fff\",\n whitesmoke: \"f5f5f5\",\n yellow: \"ff0\",\n yellowgreen: \"9acd32\"\n};\n\n// Make it easy to access colors via `hexNames[hex]`\nvar hexNames = tinycolor.hexNames = flip(names);\n\n\n// Utilities\n// ---------\n\n// `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\nfunction flip(o) {\n var flipped = { };\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n flipped[o[i]] = i;\n }\n }\n return flipped;\n}\n\n// Return a valid alpha value [0,1] with all invalid values being set to 1\nfunction boundAlpha(a) {\n a = parseFloat(a);\n\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n\n return a;\n}\n\n// Take input from [0, n] and return it as [0, 1]\nfunction bound01(n, max) {\n if (isOnePointZero(n)) { n = \"100%\"; }\n\n var processPercent = isPercentage(n);\n n = mathMin(max, mathMax(0, parseFloat(n)));\n\n // Automatically convert percentage into number\n if (processPercent) {\n n = parseInt(n * max, 10) / 100;\n }\n\n // Handle floating point rounding errors\n if ((Math.abs(n - max) < 0.000001)) {\n return 1;\n }\n\n // Convert into [0, 1] range if it isn't already\n return (n % max) / parseFloat(max);\n}\n\n// Force a number between 0 and 1\nfunction clamp01(val) {\n return mathMin(1, mathMax(0, val));\n}\n\n// Parse a base-16 hex value into a base-10 integer\nfunction parseIntFromHex(val) {\n return parseInt(val, 16);\n}\n\n// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n// <http://stackoverflow.com/questions/7422072/javascript-how-to-detect-number-as-a-decimal-including-1-0>\nfunction isOnePointZero(n) {\n return typeof n == \"string\" && n.indexOf('.') != -1 && parseFloat(n) === 1;\n}\n\n// Check to see if string passed in is a percentage\nfunction isPercentage(n) {\n return typeof n === \"string\" && n.indexOf('%') != -1;\n}\n\n// Force a hex value to have 2 characters\nfunction pad2(c) {\n return c.length == 1 ? '0' + c : '' + c;\n}\n\n// Replace a decimal with it's percentage value\nfunction convertToPercentage(n) {\n if (n <= 1) {\n n = (n * 100) + \"%\";\n }\n\n return n;\n}\n\n// Converts a decimal to a hex value\nfunction convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n// Converts a hex value to a decimal\nfunction convertHexToDecimal(h) {\n return (parseIntFromHex(h) / 255);\n}\n\nvar matchers = (function() {\n\n // <http://www.w3.org/TR/css3-values/#integers>\n var CSS_INTEGER = \"[-\\\\+]?\\\\d+%?\";\n\n // <http://www.w3.org/TR/css3-values/#number-value>\n var CSS_NUMBER = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\";\n\n // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\n var CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n\n // Actual matching.\n // Parentheses and commas are optional, but not required.\n // Whitespace can take the place of commas or opening paren\n var PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n var PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n\n return {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp(\"rgb\" + PERMISSIVE_MATCH3),\n rgba: new RegExp(\"rgba\" + PERMISSIVE_MATCH4),\n hsl: new RegExp(\"hsl\" + PERMISSIVE_MATCH3),\n hsla: new RegExp(\"hsla\" + PERMISSIVE_MATCH4),\n hsv: new RegExp(\"hsv\" + PERMISSIVE_MATCH3),\n hsva: new RegExp(\"hsva\" + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n };\n})();\n\n// `isValidCSSUnit`\n// Take in a single string / number and check to see if it looks like a CSS unit\n// (see `matchers` above for definition).\nfunction isValidCSSUnit(color) {\n return !!matchers.CSS_UNIT.exec(color);\n}\n\n// `stringInputToObject`\n// Permissive string parsing. Take in a number of formats, and output an object\n// based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\nfunction stringInputToObject(color) {\n\n color = color.replace(trimLeft,'').replace(trimRight, '').toLowerCase();\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color == 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: \"name\" };\n }\n\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match;\n if ((match = matchers.rgb.exec(color))) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n if ((match = matchers.rgba.exec(color))) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n if ((match = matchers.hsl.exec(color))) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n if ((match = matchers.hsla.exec(color))) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n if ((match = matchers.hsv.exec(color))) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n if ((match = matchers.hsva.exec(color))) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n if ((match = matchers.hex8.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex6.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n if ((match = matchers.hex4.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n a: convertHexToDecimal(match[4] + '' + match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex3.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n\n return false;\n}\n\nfunction validateWCAG2Parms(parms) {\n // return valid WCAG2 parms for isReadable.\n // If input parms are invalid, return {\"level\":\"AA\", \"size\":\"small\"}\n var level, size;\n parms = parms || {\"level\":\"AA\", \"size\":\"small\"};\n level = (parms.level || \"AA\").toUpperCase();\n size = (parms.size || \"small\").toLowerCase();\n if (level !== \"AA\" && level !== \"AAA\") {\n level = \"AA\";\n }\n if (size !== \"small\" && size !== \"large\") {\n size = \"small\";\n }\n return {\"level\":level, \"size\":size};\n}\n\n// Node: Export function\nif (typeof module !== \"undefined\" && module.exports) {\n module.exports = tinycolor;\n}\n// AMD/requirejs: Define the module\nelse if (typeof define === 'function' && define.amd) {\n define(function () {return tinycolor;});\n}\n// Browser: Expose to window\nelse {\n window.tinycolor = tinycolor;\n}\n\n})(Math);\n","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return ([bth[buf[i++]], bth[buf[i++]], \n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]],\n\tbth[buf[i++]], bth[buf[i++]],\n\tbth[buf[i++]], bth[buf[i++]]]).join('');\n}\n\nmodule.exports = bytesToUuid;\n","// Unique ID creation requires a high quality random # generator. In the\n// browser this is a little complicated due to unknown quality of Math.random()\n// and inconsistent support for the `crypto` API. We do the best we can via\n// feature-detection\n\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto\n// implementation. Also, find the complete implementation of crypto on IE11.\nvar getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) ||\n (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto));\n\nif (getRandomValues) {\n // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto\n var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\n module.exports = function whatwgRNG() {\n getRandomValues(rnds8);\n return rnds8;\n };\n} else {\n // Math.random()-based (RNG)\n //\n // If all else fails, use Math.random(). It's fast, but is of unspecified\n // quality.\n var rnds = new Array(16);\n\n module.exports = function mathRNG() {\n for (var i = 0, r; i < 16; i++) {\n if ((i & 0x03) === 0) r = Math.random() * 0x100000000;\n rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;\n }\n\n return rnds;\n };\n}\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof(options) == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nmodule.exports = v4;\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","(function() { module.exports = this[\"wp\"][\"a11y\"]; }());","(function() { module.exports = this[\"wp\"][\"apiFetch\"]; }());","(function() { module.exports = this[\"wp\"][\"compose\"]; }());","(function() { module.exports = this[\"wp\"][\"deprecated\"]; }());","(function() { module.exports = this[\"wp\"][\"dom\"]; }());","(function() { module.exports = this[\"wp\"][\"element\"]; }());","(function() { module.exports = this[\"wp\"][\"hooks\"]; }());","(function() { module.exports = this[\"wp\"][\"i18n\"]; }());","(function() { module.exports = this[\"wp\"][\"isShallowEqual\"]; }());","(function() { module.exports = this[\"wp\"][\"keycodes\"]; }());","(function() { module.exports = this[\"wp\"][\"richText\"]; }());","(function() { module.exports = this[\"wp\"][\"url\"]; }());","(function() { module.exports = this[\"lodash\"]; }());","(function() { module.exports = this[\"moment\"]; }());","(function() { module.exports = this[\"React\"]; }());","(function() { module.exports = this[\"ReactDOM\"]; }());"],"sourceRoot":""}